1import{f as I,h as P,j as e,r as M,b6 as Q,b8 as H,aW as X,aX as Y,L as y,aw as S,ax as J,a as Z,p as ee}from"./Handoff-Du4K0JfI.js";import{p as te,a as $}from"./decisions-QyfHOsKd.js";import{S as D}from"./ScreenPitch-B_8ey-VN.js";import{u as se}from"./Container-CpKNjfc0.js";import{E as re}from"./eye-DoYO7q2O.js";import{C as ie}from"./copy-IBigNSZR.js";import{T as ae}from"./trash-2-ZOGD4OOS.js";import{T as E}from"./TierBadge-CNcfh7L-.js";import{P as B}from"./PropertyMap-BmLCykeS.js";import{u as O,s as b,p as ne}from"./propertyStatus-lY_S_cIv.js";import{c as le,w as R}from"./format-DIcZDY88.js";import{E as _}from"./EmptyScreen-midLjD70.js";import{F as oe}from"./FailureNote-BqhV9fN3.js";import{u as de}from"./LoadState-fyQI3WJY.js";import{b as A,C as ce,S as q,L as me}from"./pieces-CI8y9jSM.js";import{P as W}from"./plus-B0mnlUCv.js";import{B as h}from"./building-2-Cekli6B9.js";import{S as z}from"./search-BOeeMMsm.js";import{L as K}from"./layout-grid-yC5hazX4.js";import{L as G}from"./list-Pbk7Nw0e.js";import{M as U}from"./map-ByGKx06L.js";import{M as L}from"./map-pin-ChmG0X-b.js";import{L as xe}from"./loader-circle-CnossK4H.js";import"./photoPurpose-_15me3ht.js";import"./dictionary-CU4fASqc.js";import"./tiers-BbwFhB23.js";import"./useOnboarding-BNqo_bFC.js";import"./failureText-DIhoxDt1.js";import"./failureKinds-LVdKS9Le.js";import"./types-B3KojXNx.js";import"./DemoVideo-DAUgVz9A.js";import"./external-link-CNBExBK3.js";import"./screenPitches-Bq_F5C83.js";import"./demoVideos-hkfyEMCa.js";import"./featureGroups-D2Uao2OX.js";import"./ownerCta-3ghPjgzM.js";import"./economics-Df3E7wII.js";import"./TierSoonBadge-DhS6mb_Z.js";import"./tierTone-Dw9Y0QVJ.js";import"./specialPrice-zSjqe4XU.js";import"./leaflet-Wx8zyclM.js";import"./preferenceStorage-CzxfDNt0.js";import"./minus-CFAPU2U0.js";import"./clock-nb4ZuriS.js";import"./arrow-up-right-D_nu5ae3.js";/** 2 * @license lucide-react v1.7.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const pe=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],ue=I("ellipsis",pe);/** 7 * @license lucide-react v1.7.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const he=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],fe=I("pen",he);function F({onEdit:s,onDelete:i,onView:n,onDuplicate:o,showView:c}){const{t:p}=P(),{open:u,setOpen:m,ref:r}=se();return e.jsxs("div",{ref:r,className:"relative",children:[e.jsx("button",{type:"button",onClick:a=>{a.preventDefault(),a.stopPropagation(),m(!u)},className:"p-1.5 rounded-lg bg-white/90 hover:bg-white text-ink shadow-sm transition-colors",children:e.jsx(ue,{className:"w-4 h-4"})}),u&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-44 bg-white rounded-xl shadow-[0_6px_20px_rgba(0,0,0,0.12)] border border-gray-100 py-1.5 z-50",children:[c&&n&&e.jsxs("button",{onClick:a=>{a.preventDefault(),a.stopPropagation(),n(),m(!1)},className:"w-full flex items-center gap-2 px-3.5 py-2 text-sm text-ink hover:bg-surface-muted",children:[e.jsx(re,{className:"w-4 h-4"})," ",p("properties.viewListing")||"View listing"]}),e.jsxs("button",{onClick:a=>{a.preventDefault(),a.stopPropagation(),s(),m(!1)},className:"w-full flex items-center gap-2 px-3.5 py-2 text-sm text-ink hover:bg-surface-muted",children:[e.jsx(fe,{className:"w-4 h-4"})," ",p("properties.editListing")||"Edit"]}),o&&e.jsxs("button",{onClick:a=>{a.preventDefault(),a.stopPropagation(),o(),m(!1)},className:"w-full flex items-center gap-2 px-3.5 py-2 text-sm text-ink hover:bg-surface-muted",children:[e.jsx(ie,{className:"w-4 h-4"})," ",p("common.duplicate")||"Duplicate"]}),e.jsxs("button",{onClick:a=>{a.preventDefault(),a.stopPropagation(),i(),m(!1)},className:"w-full flex items-center gap-2 px-3.5 py-2 text-sm text-red-600 hover:bg-red-50",children:[e.jsx(ae,{className:"w-4 h-4"})," ",p("common.remove")||"Delete"]})]})]})}function be(s){const i=new Map;
11for(const n of te(s)){if(!n.propertyId)continue;const o=i.get(n.propertyId)??[];o.push(n),i.set(n.propertyId,o)}return i}const ge=[{mode:"grid",icon:K,key:"nextCabinet.pViewGrid"},{mode:"list",icon:G,key:"nextCabinet.pViewList"},{mode:"map",icon:U,key:"nextCabinet.pViewMap"}],C=(s,i)=>s.catch(()=>i);function je(){const{t:s}=P(),i=O(),[n,o]=M.useState(null),c=M.useCallback(async()=>{const[r,a,g,j]=await Promise.all([C(Q.getMy(),[]),C(H.getMy(),[]),C(X.getMy(),[]),C(Y.forLandlord(),[])]);o({leases:r,repairs:a,viewings:g,applications:j})},[]);de(c);const p=M.useMemo(()=>n?be({...n,properties:i.list}):new Map,[n,i.list]),u=r=>(n==null?void 0:n.leases.find(a=>a.propertyId===r&&a.status==="active"))??null;if(i.loading)return e.jsx("div",{className:"py-24 text-center text-[15px] text-nx-muted",children:s("common.loading")});if(i.error)return e.jsxs("div",{className:"py-16",children:[e.jsx(oe,{error:i.error,align:"start"}),e.jsx("button",{type:"button",onClick:()=>void i.reload(),className:`${A} mt-4`,children:s("common.tryAgain")})]});const m=i.counts.all;return e.jsxs("div",{className:"font-next mx-auto max-w-[1160px] space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-[22px] font-bold tracking-[-0.02em] text-nx-ink md:text-[26px]",children:s("nav.properties")}),e.jsxs("p",{className:"mt-1 text-[14px] text-nx-muted",children:[s("nextCabinet.pCount",{n:m}),i.counts.active>0&&e.jsxs(e.Fragment,{children:[" · ",i.counts.active," ",b("active",s).toLowerCase()]}),i.counts.pending_review>0&&e.jsxs(e.Fragment,{children:[" · ",i.counts.pending_review," ",b("pending_review",s).toLowerCase()]}),i.counts.draft>0&&e.jsxs(e.Fragment,{children:[" · ",i.counts.draft," ",b("draft",s).toLowerCase()]})]})]}),e.jsxs(y,{to:S.propertyNew,className:A,children:[e.jsx(W,{className:"mr-1.5 h-4 w-4",strokeWidth:2.5,"aria-hidden":"true"}),s("properties.addProperty")]})]}),m===0?e.jsx(_,{icon:h,title:s("emptyStates.propertiesTitle"),body:s("emptyStates.propertiesBody"),to:S.propertyNew,actionLabel:s("emptyStates.propertiesAction")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:i.filterOptions.map(r=>{const a=i.filter===r.value;return e.jsx("button",{type:"button",onClick:()=>i.setFilter(r.value),"aria-pressed":a,className:`inline-flex min-h-10 items-center rounded-full px-4 text-[14px] font-bold transition-colors ${a?"bg-nx-ink text-white":"bg-white text-nx-ink-light hover:text-nx-ink"}`,children:r.label},r.value)})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"relative flex-1 md:w-64",children:[e.jsx(z,{className:"pointer-events-none absolute left-3.5 top-1/2 h-4 w-4 -translate-y-1/2 text-nx-muted","aria-hidden":"true"}),e.jsx("input",{type:"search",value:i.query,onChange:r=>i.setQuery(r.target.value),placeholder:s("nextCabinet.pSearch"),"aria-label":s("nextCabinet.pSearch"),className:"h-10 w-full rounded-full bg-white pl-10 pr-4 text-[14px] text-nx-ink placeholder:text-nx-muted focus:outline-none focus:ring-2 focus:ring-nx-cta/30"})]}),e.jsx("div",{className:"inline-flex shrink-0 rounded-full bg-white p-1",role:"group","aria-label":s("nextCabinet.pView"),children:ge.map(r=>e.jsx("button",{type:"button",onClick:()=>i.setViewMode(r.mode),"aria-label":s(r.key),"aria-pressed":i.viewMode===r.mode,className:`grid h-8 w-9 place-items-center rounded-full transition-colors ${i.viewMode===r.mode?"bg-nx-ink text-white":"text-nx-muted hover:text-nx-ink"}`,children:e.jsx(r.icon,{className:"h-4 w-4",strokeWidth:2.2})},r.mode))})]})]}),i.filtered.length===0?e.jsx(_,{compact:!0,icon:h,title:s("properties.noFilterMatchTitle"),body:s("properties.noFilterMatch")}):i.viewMode==="map"?e.jsx("div",{className:"overflow-hidden rounded-[22px]",children:e.jsx(B,{properties:i.filtered.map(r=>({id:r.id,label:r.internalName||r.title,sublabel:`${r.streetAddress}, ${r.city}`,status:r.status,latitude:r.latitude,longitude:r.longitude})),onSelect:i.edit})}):e.jsx("ul",{className:i.viewMode==="grid"?"grid gap-4 sm:grid-cols-2 xl:grid-cols-3":"grid gap-3",children:i.filtered.map(r=>{var a;return e.jsx(we,{p:r,layout:i.viewMode==="grid"?"tile":"row",marks:((a=p.get(r.id))==null?void 0:a.length)??0,lease:u(r.id),onDelete:()=>void i.remove(r.id,r.title),onDuplicate:()=>i.duplicate(r.id),onView:()=>i.view(r.id),onEdit:()=>i.edit(r.id)},r.id)})}),e.jsx(D,{screen:"properties",isEmpty:!1,properties:i.list})]})]})}function we({p:s,layout:i,marks:n,lease:o,onEdit:c,onDelete:p,onDuplicate:u,onView:m}){const{t:r}
11=P(),a=$(s),g=ne(s.status),j=`${s.bedrooms} ${r("properties.bd")} · ${s.bathrooms} ${r("properties.ba")} · ${s.areaSqm} m²`,k=o!=null&&o.startDate?r("nextCabinet.tenantSince",{day:le(o.startDate)}):r("nextCabinet.noTenant"),x=a?e.jsx("img",{src:a,alt:"",className:"h-full w-full object-cover",loading:"lazy"}):e.jsxs("span",{className:"grid h-full w-full place-content-center justify-items-center gap-1.5 bg-nx-wash text-nx-muted",children:[e.jsx(h,{className:"h-7 w-7",strokeWidth:1.6}),e.jsx("span",{className:`${i==="tile"?"":"sr-only"} text-[12.5px] font-semibold`,children:r("nextCabinet.pNoPhotos")})]}),f=e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-1 text-[12px] font-bold ${g}`,children:b(s.status,r)}),e.jsx(E,{managementType:s.managementType,effectiveFeePct:s.managementFeePctEffective}),n>0&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-nx-cta px-2.5 py-1 text-[12px] font-bold text-white",children:[r("nextCabinet.pNeedsYou")," · ",n]})]}),w=e.jsx(F,{onEdit:c,onDelete:p,onView:m,onDuplicate:u,showView:s.status==="active"}),l=J(s.id);return i==="row"?e.jsxs("li",{className:`${ce} relative flex min-w-0 items-center gap-4 !p-3 md:!p-4`,children:[e.jsx(y,{to:l,className:"h-20 w-24 shrink-0 overflow-hidden rounded-2xl",children:x}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(y,{to:l,className:"block truncate text-[15.5px] font-bold text-nx-ink",children:s.internalName||s.title}),e.jsxs("div",{className:"mt-0.5 flex items-center gap-1 truncate text-[13px] text-nx-muted",children:[e.jsx(L,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),s.streetAddress,", ",s.city]}),e.jsx("div",{className:"mt-2",children:f})]}),e.jsxs("div",{className:"hidden text-right sm:block",children:[e.jsx("div",{className:"text-[18px] font-bold tracking-[-0.03em] text-nx-ink",children:R(Number(s.monthlyRent))}),e.jsxs("div",{className:q,children:[r("nextCabinet.aMonth")," · ",k]})]}),e.jsx("div",{className:"shrink-0",children:w})]}):e.jsxs("li",{className:"group relative min-w-0 overflow-hidden rounded-[22px] bg-white",children:[e.jsx(y,{to:l,className:"block aspect-[4/3] overflow-hidden",children:x}),e.jsx("div",{className:"absolute right-3 top-3",children:w}),e.jsxs("div",{className:"p-4 md:p-5",children:[f,e.jsx(y,{to:l,className:"mt-3 line-clamp-2 text-[16px] font-bold leading-snug text-nx-ink",children:s.internalName||s.title}),e.jsxs("div",{className:"mt-1 flex items-center gap-1 truncate text-[13px] text-nx-muted",children:[e.jsx(L,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),s.streetAddress,", ",s.city]}),e.jsx("div",{className:"mt-3 flex items-end justify-between gap-3",children:e.jsxs("div",{children:[e.jsx("div",{className:"text-[22px] font-bold leading-none tracking-[-0.03em] text-nx-ink",children:R(Number(s.monthlyRent))}),e.jsxs("div",{className:`mt-1 ${q}`,children:[r("nextCabinet.aMonth")," · ",j]})]})}),e.jsx("div",{className:`mt-3 border-t border-nx-line pt-3 ${me}`,children:e.jsx("span",{className:"font-semibold text-nx-ink-light",children:k})}),s.status==="changes_requested"&&s.rejectionReason&&e.jsxs("p",{className:"mt-3 rounded-xl bg-nx-soft px-3 py-2 text-[13px] text-nx-ink",children:[e.jsxs("b",{children:[r("properties.changesRequestedReason"),":"]})," ",s.rejectionReason]})]})]})}const V={active:"text-green-700 bg-green-50",draft:"text-ink-muted bg-gray-100",pending_review:"text-amber-700 bg-amber-50",changes_requested:"text-red-600 bg-red-50",rented:"text-blue-700 bg-blue-50",maintenance:"text-amber-700 bg-amber-50",inactive:"text-ink-muted bg-gray-100"};function pt(){return Z()==="next"?e.jsx(je,{}):e.jsx(ve,{})}function ve(){const{t:s}=P(),i=ee(),{list:n,filtered:o,counts:c,filterOptions:p,loading:u,error:m,reload:r,filter:a,setFilter:g,query:j,setQuery:k,viewMode:x,setViewMode:f,remove:w,edit:l,duplicate:T}=O();return u?e.jsx("div",{className:"flex items-center justify-center py-24",children:e.jsx(xe,{className:"w-6 h-6 animate-spin text-ink-muted"})}):m?e.jsxs("div",{className:"text-center py-24",children:[e.jsx("p",{className:"text-red-600 text-sm mb-3",children:m}),e.jsx("button",{onClick:r,className:"bg-white text-ink border border-gray-200 hover:bg-surface-muted text-sm font-semibold rounded-xl px-4 py-2.5 transition-colors",children:s("common.tryAgain")})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-semibold text-ink mb-1",children:s("nav.properties")}),e.jsxs("p",{className:"text-sm text-ink-muted",children:[c.all," ",s("properties.properties")," · ",c.active," ",s("statuses.active").toLowerCase(),c.pending_review>0&&e.jsxs(e.Fragment,{children:[" · ",c.pending_review," ",(s("statuses.pendingReview")||"pending review").toLowerCase()]}),c.changes_requested>0&&e.jsxs(e.Fragment,{children:[" · ",c.changes_requested," ",(s("statuses.changesRequested")||"changes requested").toLowerCase()]}),c.draft>0&&e.jsxs(e.Fragment,{children:[" · ",c.draft," ",s("statuses.draft").toLowerCase()]})]})]}),e.jsxs("button",{onClick:()=>i("/landlord/properties/new"),className:"inline-flex items-center gap-2 bg-brand text-white text-sm font-semibold rounded-xl px-4 py-2.5 hover:bg-brand-dark transition-colors active:scale-[0.97]",children:[e.jsx(W,{className:"w-4 h-4"})," ",s("properties.addProperty")]})]}),n.length>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:p.map(t=>{const v=a===t.value;return e.jsx("button",{onClick:()=>g(t.value),className:`inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-full border transition-colors ${v?"bg-brand-50 text-brand-dark border-brand-100":"bg-white text-ink border-gray-200 hover:bg-surface-muted"}`,children:t.label},t.value)})}),e.jsxs("div",{className:"flex items-center gap-2 w-full sm:w-auto",children:[e.jsxs("div",{className:"flex-1 sm:max-w-xs relative",children:[e.jsx(z,{className:"absolute left-3.5 to
11p-1/2 -translate-y-1/2 w-4 h-4 text-ink-muted"}),e.jsx("input",{type:"text",value:j,onChange:t=>k(t.target.value),placeholder:s("properties.searchPlaceholder")||"Search properties",className:"w-full h-10 pl-10 pr-4 rounded-xl border border-gray-200 text-sm text-ink placeholder:text-ink-muted focus:border-brand focus:ring-2 focus:ring-brand-100 outline-none transition-colors"})]}),e.jsxs("div",{className:"inline-flex items-center rounded-xl border border-gray-200 overflow-hidden shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>f("grid"),"aria-label":"Grid view","aria-pressed":x==="grid",className:`h-10 w-10 inline-flex items-center justify-center transition-colors ${x==="grid"?"bg-brand text-white":"bg-white text-ink-muted hover:bg-surface-muted"}`,children:e.jsx(K,{className:"w-4 h-4"})}),e.jsx("button",{type:"button",onClick:()=>f("list"),"aria-label":"List view","aria-pressed":x==="list",className:`h-10 w-10 inline-flex items-center justify-center border-l border-gray-200 transition-colors ${x==="list"?"bg-brand text-white":"bg-white text-ink-muted hover:bg-surface-muted"}`,children:e.jsx(G,{className:"w-4 h-4"})}),e.jsx("button",{type:"button",onClick:()=>f("map"),"aria-label":"Map view","aria-pressed":x==="map",className:`h-10 w-10 inline-flex items-center justify-center border-l border-gray-200 transition-colors ${x==="map"?"bg-brand text-white":"bg-white text-ink-muted hover:bg-surface-muted"}`,children:e.jsx(U,{className:"w-4 h-4"})})]})]})]}),n.length===0?e.jsx(D,{screen:"properties",isEmpty:!0,properties:n,head:{icon:h,title:s("emptyStates.propertiesTitle"),body:s("emptyStates.propertiesBody"),to:S.propertyNew,actionLabel:s("emptyStates.propertiesAction")}}):o.length===0?e.jsxs("div",{className:"bg-white border border-gray-100 rounded-2xl p-10 text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-surface-muted text-ink-muted mx-auto flex items-center justify-center mb-4",children:e.jsx(h,{className:"w-6 h-6"})}),e.jsx("h3",{className:"font-semibold text-ink mb-1",children:s("properties.noFilterMatchTitle")||"No matches"}),e.jsx("p",{className:"text-sm text-ink-muted",children:s("properties.noFilterMatch")})]}):x==="map"?e.jsx(B,{properties:o.map(t=>({id:t.id,label:t.internalName||t.title,sublabel:`${t.streetAddress}, ${t.city}`,status:t.status,latitude:t.latitude,longitude:t.longitude})),onSelect:t=>l(t)}):x==="list"?e.jsx("div",{className:"flex flex-col gap-2",children:o.map(t=>{const v=V[t.status]||"text-ink-muted bg-gray-100",N=$(t);return e.jsxs("div",{className:"bg-white rounded-xl border border-gray-100 hover:shadow-sm transition-all flex flex-col sm:flex-row sm:items-center gap-3 p-3",children:[e.jsx("div",{className:"w-full sm:w-20 h-32 sm:h-20 shrink-0 rounded-lg bg-surface-muted overflow-hidden cursor-pointer",onClick:()=>l(t.id),role:"button",tabIndex:0,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&l(t.id)},children:N?e.jsx("img",{src:N,alt:t.title,className:"w-full h-full object-cover"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center text-ink-muted",children:e.jsx(h,{className:"w-6 h-6"})})}),e.jsxs("div",{className:"flex-1 min-w-0 cursor-pointer",onClick:()=>l(t.id),role:"button",tabIndex:0,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&l(t.id)},children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx("div",{className:"text-sm font-semibold text-ink truncate",children:t.title}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-semibold ${v}`,children:b(t.status,s)}),e.jsx(E,{managementType:t.managementType,effectiveFeePct:t.managementFeePctEffective})]}),t.internalName&&e.jsx("div",{className:"text-xs text-ink-muted truncate mb-0.5",children:t.internalName}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-ink-muted truncate",children:[e.jsx(L,{className:"w-3 h-3 shrink-0"}),e.jsxs("span",{className:"truncate",children:[t.streetAddress,", ",t.city]})]}),e.jsxs("div",{className:"text-xs text-ink-muted mt-1",children:[t.bedrooms," ",s("properties.bd")||"bd"," · ",t.bathrooms," ",s("properties.ba")||"ba"," · ",t.areaSqm," m²"]})]}),e.jsxs("div",{className:"flex items-center justify-between sm:justify-end gap-3 sm:gap-4 sm:shrink-0",children:[e.jsxs("div",{className:"text-sm font-bold text-ink whitespace-nowrap",children:[t.currency==="EUR"?"â¬":"",Number(t.monthlyRent).toLocaleStr
11ing(),e.jsx("span",{className:"text-xs font-normal text-ink-muted",children:"/mo"})]}),e.jsx("button",{type:"button",onClick:d=>{d.preventDefault(),d.stopPropagation(),l(t.id)},className:"text-sm font-semibold text-brand hover:text-brand-dark transition-colors",children:s("properties.manage")||"Manage"}),e.jsx(F,{onEdit:()=>l(t.id),onDelete:()=>w(t.id,t.title),onView:()=>i(`/property/${t.id}`),onDuplicate:()=>T(t.id),showView:t.status==="active"})]})]},t.id)})}):e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:o.map(t=>{const v=V[t.status]||"text-ink-muted bg-gray-100",N=$(t);return e.jsxs("div",{className:"bg-white rounded-2xl border border-gray-100 overflow-hidden flex flex-col hover:shadow-md transition-all",children:[e.jsxs("div",{className:"relative aspect-[4/3] bg-surface-muted overflow-hidden cursor-pointer",onClick:()=>l(t.id),role:"button",tabIndex:0,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&l(t.id)},children:[N?e.jsx("img",{src:N,alt:t.title,className:"w-full h-full object-cover"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center text-ink-muted",children:e.jsx(h,{className:"w-8 h-8"})}),e.jsxs("div",{className:"absolute top-3 left-3 flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:`inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold ${v}`,children:b(t.status,s)}),e.jsx(E,{managementType:t.managementType,effectiveFeePct:t.managementFeePctEffective})]}),e.jsx("div",{className:"absolute top-3 right-3",children:e.jsx(F,{onEdit:()=>l(t.id),onDelete:()=>w(t.id,t.title),onView:()=>i(`/property/${t.id}`),onDuplicate:()=>T(t.id),showView:t.status==="active"})})]}),e.jsxs("div",{className:"p-4 cursor-pointer flex-1",onClick:()=>l(t.id),role:"button",tabIndex:0,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&l(t.id)},children:[e.jsx("div",{className:"text-sm font-semibold text-ink truncate",children:t.title}),t.internalName&&e.jsx("div",{className:"text-xs text-ink-muted truncate mt-0.5",children:t.internalName}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-ink-muted mt-1 truncate",children:[e.jsx(L,{className:"w-3 h-3 shrink-0"}),e.jsxs("span",{className:"truncate",children:[t.streetAddress,", ",t.city]})]}),e.jsxs("div",{className:"text-xs text-ink-muted mt-3",children:[t.bedrooms," ",s("properties.bd")||"bd"," · ",t.bathrooms," ",s("properties.ba")||"ba"," · ",t.areaSqm," m²"]}),e.jsxs("div",{className:"text-sm font-bold text-ink mt-2",children:[t.currency==="EUR"?"â¬":"",Number(t.monthlyRent).toLocaleString(),e.jsx("span",{className:"text-xs font-normal text-ink-muted",children:"/mo"})]}),t.status==="changes_requested"&&t.rejectionReason&&e.jsxs("div",{className:"mt-3 text-xs bg-amber-50 border border-amber-100 text-ink rounded-lg px-3 py-2",children:[e.jsxs("span",{className:"font-semibold",children:[s("properties.changesRequestedReason"),":"]})," ",t.rejectionReason]})]}),e.jsx("div",{className:"border-t border-gray-100 px-4 py-3 flex items-center justify-end",children:e.jsx("button",{type:"button",onClick:d=>{d.preventDefault(),d.stopPropagation(),l(t.id)},className:"text-sm font-semibold text-brand hover:text-brand-dark transition-colors",children:s("properties.manage")||"Manage"})})]},t.id)})}),n.length>0&&e.jsx(D,{screen:"properties",isEmpty:!1,properties:n})]})}export{pt as LandlordProperties};
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.