1import{r as n,j as e}from"./query-vendor-Dp9tfhuh.js";import{I as r}from"./input-go5takyh.js";import{u as I,L as i}from"./index-CgOeqv80.js";import{S as o}from"./slider-BJvr272o.js";import{u as S}from"./useCurrency-BJBh1UrQ.js";import"./react-vendor-DfslLuwi.js";import"./ui-vendor-DW4RoVmg.js";import"./chart-vendor-BoynbIzZ.js";import"./index-BdQq_4o_.js";const H=()=>{const{t:E}=I(),{formatCurrency:a}=S(),[l,g]=n.useState(15e4),[d,N]=n.useState(3),[c,j]=n.useState(5),[t,f]=n.useState(6.5),[x,v]=n.useState(3),u=l*Math.pow(1+d/100,c),m=t>0?u/(t/100):0,C=m*(x/100),b=m-C,p=t>0?l/(t/100):0,h=m-p,y=p>0?h/p*100:0;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(i,{htmlFor:"currentNOI",children:"Current Annual NOI"}),e.jsx(r,{id:"currentNOI",type:"number",value:l,onChange:s=>g(Number(s.target.value)),className:"font-medium"}),e.jsx(o,{value:[l],onValueChange:([s])=>g(s),min:1e4,max:2e6,step:5e3,className:"mt-2"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(i,{htmlFor:"annualNOIGrowth",children:"Annual NOI Growth (%)"}),e.jsx(r,{id:"annualNOIGrowth",type:"number",step:"0.5",value:d,onChange:s=>N(Number(s.target.value)),className:"font-medium"}),e.jsx(o,{value:[d],onValueChange:([s])=>N(s),min:-5,max:15,step:.5,className:"mt-2"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(i,{htmlFor:"holdPeriod",children:"Hold Period (Years)"}),e.jsx(r,{id:"holdPeriod",type:"number",value:c,onChange:s=>j(Number(s.target.value)),className:"font-medium"}),e.jsx(o,{value:[c],onValueChange:([s])=>j(s),min:1,max:20,step:1,className:"mt-2"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(i,{htmlFor:"exitCapRate",children:"Exit Cap Rate (%)"}),e.jsx(r,{id:"exitCapRate",type:"number",step:"0.1",value:t,onChange:s=>f(Number(s.target.value)),className:"font-medium"}),e.jsx(o,{value:[t],onValueChange:([s])=>f(s),min:3,max:15,step:.1,className:"mt-2"})]}),e.jsxs("div",{className:"space-y-2 md:col-span-2",children:[e.jsx(i,{htmlFor:"sellingCosts",children:"Selling Costs (%)"}),e.jsx(r,{id:"sellingCosts",type:"number",step:"0.5",value:x,onChange:s=>v(Number(s.target.value)),className:"font-medium"}),e.jsx(o,{value:[x],onValueChange:([s])=>v(s),min:0,max:10,step:.5,className:"mt-2"})]})]}),e.jsxs("div",{className:"mt-8 space-y-4 rounded-lg bg-muted p-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Net Exit Value (Year ",c,")"]}),e.jsx("span",{className:"text-3xl font-bold text-primary",children:a(b)})]}),e.jsxs("div",{className:"border-t pt-4 grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-muted-foreground text-sm",children:"NOI at Exit"}),e.jsxs("span",{className:"text-lg font-semibold",children:[a(u),e.jsxs("span",{className:"text-sm text-green-600 ml-2",children:["(+",((u/l-1)*100).toFixed(1),"%)"]})]})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-muted-foreground text-sm",children:"Gross Exit Value"}),e.jsx("span",{className:"text-lg font-semibold",children:a(m)})]})]}),e.jsxs("div",{className:"border-t pt-4 grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-muted-foreground text-sm",children:"Value Appreciation"}),e.jsxs("span",{className:`text-lg font-semibold ${h>=0?"text-green-600":"text-destructive"}`,children:[a(h),e.jsxs("span",{className:"text-sm ml-2",children:["(",y.toFixed(1),"%)"]})]})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-muted-foreground text-sm",children:"Selling Costs"}),e.jsxs("span",{className:"text-lg font-semibold text-destructive",children:["-",a(C)]})]})]})]}),e.jsxs("div",{className:"text-sm text-muted-foreground bg-muted/50 p-4 rounded-lg",children:[e.jsx("p",{className:"font-medium mb-2",children:"Exit Strategy Considerations:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Cap rate expansion:"})," Higher exit cap rates reduce value"]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"NOI growth:"})," Strong operations can offset cap rate changes"]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Selling costs:"})," Budget 2-4% for brokerage, legal, and closing"]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Market timing:"})," Consider refinancing vs. selling based on market conditions"]})]})]})]})};export{H as ExitValueCalculator};
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.