@burdenoff/microfe-housingvista 2026.928.2 → 2026.930.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,19 +19,19 @@ import { CoordinatePicker as Se } from "../../components/maps/CoordinatePicker.j
19
19
  import { amenityOptions as d } from "../../utils/amenities.js";
20
20
  import { currencyOptions as Ce, facingOptions as we, furnishingOptions as Te, propertyCategoryOptions as Ee, propertyTypeOptions as De } from "../../utils/propertyOptions.js";
21
21
  import { useMemo as Oe, useState as f } from "react";
22
- import { ArrowLeft as ke, BadgeCheck as Ae, Bath as je, Bed as Me, Building as Ne, Calculator as Pe, Calendar as Fe, Car as Ie, CheckCircle as p, ChevronLeft as Le, ChevronRight as Re, Compass as ze, DollarSign as Be, Download as Ve, Dumbbell as m, Flame as He, Heart as Ue, KeyRound as We, MapPin as Ge, MessageSquare as Ke, Navigation as qe, ParkingCircle as Je, Pencil as Ye, Share2 as Xe, Shield as h, Square as Ze, Trash2 as Qe, TreePine as g, TrendingUp as $e, Utensils as et, Waves as _, Wifi as v, Wind as tt } from "lucide-react";
23
- import { useLocation as nt, useNavigate as rt, useParams as it } from "react-router";
24
- import { Fragment as at, jsx as y, jsxs as b } from "react/jsx-runtime";
25
- import { Button as x, EmphasisPanel as ot, NextSteps as st, PagePurpose as ct, ResponsiveDialog as S, ResponsiveDialogContent as C, ResponsiveDialogDescription as w, ResponsiveDialogFooter as T, ResponsiveDialogHeader as E, ResponsiveDialogTitle as D } from "@burdenoff/fe-libs/ui";
22
+ import { ArrowLeft as ke, BadgeCheck as Ae, Bath as je, Bed as Me, Building as Ne, Calculator as Pe, Calendar as Fe, Car as Ie, CheckCircle as p, ChevronLeft as Le, ChevronRight as Re, Compass as ze, DollarSign as Be, Download as Ve, Dumbbell as m, Flame as He, Heart as Ue, KeyRound as We, MapPin as Ge, MessageSquare as Ke, Navigation as qe, ParkingCircle as Je, Pencil as Ye, Share2 as Xe, Shield as h, Square as Ze, Trash2 as Qe, TreePine as g, TrendingUp as $e, Utensils as et, Waves as tt, Wifi as nt, Wind as rt } from "lucide-react";
23
+ import { useLocation as it, useNavigate as at, useParams as ot } from "react-router";
24
+ import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
25
+ import { Button as b, EmphasisPanel as st, NextSteps as ct, PagePurpose as lt, ResponsiveDialog as x, ResponsiveDialogContent as S, ResponsiveDialogDescription as C, ResponsiveDialogFooter as w, ResponsiveDialogHeader as T, ResponsiveDialogTitle as E } from "@burdenoff/fe-libs/ui";
26
26
  //#region src/housingvista/pages/properties/PropertyDetailPage.tsx
27
- var lt = {
27
+ var ut = {
28
28
  for_sale: "success",
29
29
  for_rent: "info",
30
30
  sold: "muted",
31
31
  rented: "muted",
32
32
  under_contract: "warning",
33
33
  off_market: "error"
34
- }, ut = [
34
+ }, dt = [
35
35
  {
36
36
  value: "for_sale",
37
37
  label: "For Sale"
@@ -56,7 +56,7 @@ var lt = {
56
56
  value: "off_market",
57
57
  label: "Off Market"
58
58
  }
59
- ], dt = [
59
+ ], ft = [
60
60
  {
61
61
  value: "sale",
62
62
  label: "Sale"
@@ -69,7 +69,7 @@ var lt = {
69
69
  value: "lease",
70
70
  label: "Lease"
71
71
  }
72
- ], ft = [
72
+ ], pt = [
73
73
  {
74
74
  value: "",
75
75
  label: "— (one-time)"
@@ -86,7 +86,7 @@ var lt = {
86
86
  value: "yearly",
87
87
  label: "Yearly"
88
88
  }
89
- ], pt = {
89
+ ], mt = {
90
90
  title: "",
91
91
  description: "",
92
92
  status: "for_sale",
@@ -121,15 +121,15 @@ var lt = {
121
121
  pricePerSqft: "",
122
122
  amenities: [],
123
123
  extraAmenities: []
124
- }, O = (e) => {
124
+ }, D = (e) => {
125
125
  let t = e.trim();
126
126
  if (t === "") return null;
127
127
  let n = Number(t);
128
128
  return Number.isFinite(n) ? n : null;
129
- }, k = (e) => {
130
- let t = O(e);
129
+ }, O = (e) => {
130
+ let t = D(e);
131
131
  return t === null ? void 0 : t;
132
- }, A = (e) => e == null ? "" : String(e), mt = (e) => e.split(",").map((e) => e.trim()).filter(Boolean), ht = [
132
+ }, k = (e) => e == null ? "" : String(e), ht = (e) => e.split(",").map((e) => e.trim()).filter(Boolean), gt = [
133
133
  {
134
134
  key: "bedrooms",
135
135
  label: "Bedrooms",
@@ -190,7 +190,12 @@ var lt = {
190
190
  required: !1,
191
191
  step: "1"
192
192
  }
193
- ], gt = [
193
+ ];
194
+ function _t() {
195
+ let e = new Date(Date.now() + 10080 * 60 * 1e3);
196
+ return (/* @__PURE__ */ new Date(e.getTime() - e.getTimezoneOffset() * 6e4)).toISOString().slice(0, 16);
197
+ }
198
+ var vt = [
194
199
  {
195
200
  id: "details",
196
201
  label: "Details"
@@ -203,10 +208,10 @@ var lt = {
203
208
  id: "location",
204
209
  label: "Location"
205
210
  }
206
- ], j = "h-10 w-full rounded-md border border-border-subtle bg-bg-surface px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", _t = [
211
+ ], A = "h-10 w-full rounded-md border border-border-subtle bg-bg-surface px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", yt = [
207
212
  {
208
213
  match: /pool|swim/i,
209
- icon: _
214
+ icon: tt
210
215
  },
211
216
  {
212
217
  match: /gym|fitness/i,
@@ -226,11 +231,11 @@ var lt = {
226
231
  },
227
232
  {
228
233
  match: /wifi|internet|broadband/i,
229
- icon: v
234
+ icon: nt
230
235
  },
231
236
  {
232
237
  match: /a\/?c|air.?condition|central air|hvac/i,
233
- icon: tt
238
+ icon: rt
234
239
  },
235
240
  {
236
241
  match: /fire|chimney|heat/i,
@@ -244,8 +249,8 @@ var lt = {
244
249
  match: /car|garage/i,
245
250
  icon: Ie
246
251
  }
247
- ], vt = (e) => _t.find((t) => t.match.test(e))?.icon ?? p;
248
- function yt(e) {
252
+ ], bt = (e) => yt.find((t) => t.match.test(e))?.icon ?? p;
253
+ function xt(e) {
249
254
  switch (e.toLowerCase()) {
250
255
  case "vacant": return "Vacant — accepting applications";
251
256
  case "occupied": return "Currently occupied";
@@ -254,7 +259,7 @@ function yt(e) {
254
259
  default: return e.replace(/[-_]/g, " ");
255
260
  }
256
261
  }
257
- function bt(e) {
262
+ function St(e) {
258
263
  switch (e.toLowerCase()) {
259
264
  case "vacant": return "success";
260
265
  case "occupied": return "muted";
@@ -263,86 +268,87 @@ function bt(e) {
263
268
  default: return "muted";
264
269
  }
265
270
  }
266
- var xt = () => {
267
- let { id: p } = it(), m = rt(), He = nt(), { emit: Je, emitResource: h } = ee();
271
+ var Ct = () => {
272
+ let { id: p } = ot(), m = at(), He = it(), { emit: Je, emitResource: h } = ee();
268
273
  te("housingvista.property.viewed", p);
269
- let { data: g, loading: et } = ae(p), { data: _ } = ie({ pagination: {
274
+ let { data: g, loading: et } = ae(p), { data: tt } = ie({ pagination: {
270
275
  limit: 8,
271
276
  offset: 0
272
- } }), { data: v } = le(), { data: tt } = se({
277
+ } }), { data: nt } = le(), { data: rt } = se({
273
278
  filter: p ? { propertyId: p } : void 0,
274
279
  pagination: {
275
280
  limit: 1,
276
281
  offset: 0
277
282
  }
278
- }), { saveShortlist: _t, loading: xt } = ce(), { removeShortlist: St, loading: Ct } = oe(), { bookViewing: wt, loading: Tt } = l(), { submitOffer: Et, loading: Dt } = ue(), { updateProperty: Ot, loading: M } = fe(), { deleteProperty: kt, loading: At } = re(), { submitRentalApplication: jt, loading: Mt } = de(), { createInvestment: Nt, loading: Pt } = ne(), { updatePropertyReraStatus: Ft, loading: It } = pe(), Lt = Oe(() => _.filter((e) => e.id !== p).slice(0, 3), [_, p]), N = Oe(() => v.some((e) => e.propertyId === p), [v, p]), [P, Rt] = f(0), [F, zt] = f("details"), [Bt, I] = f(!1), [Vt, L] = f(!1), [Ht, R] = f(!1), [Ut, z] = f(!1), [Wt, B] = f(!1), [Gt, Kt] = f(!1), [qt, Jt] = f(""), [Yt, Xt] = f(""), [Zt, Qt] = f(""), [$t, en] = f(""), [tn, nn] = f(""), [rn, an] = f(""), [on, sn] = f(""), [cn, ln] = f("8"), [V, un] = f(!0), [dn, fn] = f("6"), [H, pn] = f(!1), [mn, hn] = f("20"), [gn, _n] = f("8.5"), [vn, yn] = f("20"), [U, bn] = f(""), [xn, Sn] = f("in_person"), [Cn, wn] = f(""), [Tn, En] = f(""), [Dn, On] = f(""), [kn, An] = f(""), [jn, Mn] = f(""), [W, Nn] = f(pt), [Pn, Fn] = f(pt);
279
- if (et) return /* @__PURE__ */ b("div", {
283
+ }), { saveShortlist: yt, loading: Ct } = ce(), { removeShortlist: wt, loading: Tt } = oe(), { bookViewing: Et, loading: Dt } = l(), { submitOffer: Ot, loading: kt } = ue(), { updateProperty: At, loading: j } = fe(), { deleteProperty: jt, loading: Mt } = re(), { submitRentalApplication: Nt, loading: Pt } = de(), { createInvestment: Ft, loading: It } = ne(), { updatePropertyReraStatus: Lt, loading: Rt } = pe(), zt = Oe(() => tt.filter((e) => e.id !== p).slice(0, 3), [tt, p]), M = Oe(() => nt.some((e) => e.propertyId === p), [nt, p]), [N, Bt] = f(0), [P, Vt] = f("details"), [Ht, F] = f(!1), [Ut, I] = f(!1), [Wt, L] = f(!1), [Gt, R] = f(!1), [Kt, z] = f(!1), [qt, Jt] = f(!1), [Yt, Xt] = f(""), [Zt, Qt] = f(""), [$t, en] = f(""), [tn, nn] = f(""), [rn, an] = f(""), [on, sn] = f(""), [cn, ln] = f(""), [un, dn] = f("8"), [B, fn] = f(!0), [pn, mn] = f("6"), [V, hn] = f(!1), [gn, _n] = f("20"), [vn, yn] = f("8.5"), [bn, xn] = f("20"), [H, Sn] = f(""), [Cn, wn] = f("in_person"), [Tn, En] = f(""), [Dn, On] = f(""), [kn, An] = f(""), [jn, Mn] = f(""), [Nn, Pn] = f(""), [Fn, U] = f(""), [W, In] = f(mt), [Ln, Rn] = f(mt);
284
+ if (et) return /* @__PURE__ */ y("div", {
280
285
  className: "space-y-6 p-6",
281
- children: [/* @__PURE__ */ y(c, { className: "h-80" }), /* @__PURE__ */ y(c, { variant: "detail" })]
286
+ children: [/* @__PURE__ */ v(c, { className: "h-80" }), /* @__PURE__ */ v(c, { variant: "detail" })]
282
287
  });
283
- if (!g) return /* @__PURE__ */ y("div", {
288
+ if (!g) return /* @__PURE__ */ v("div", {
284
289
  className: "p-6",
285
- children: /* @__PURE__ */ y(o, {
290
+ children: /* @__PURE__ */ v(o, {
286
291
  illustration: "empty-search",
287
- icon: /* @__PURE__ */ y(Ne, { className: "h-12 w-12" }),
292
+ icon: /* @__PURE__ */ v(Ne, { className: "h-12 w-12" }),
288
293
  title: "Property Not Found",
289
294
  description: "The property you're looking for doesn't exist or has been removed.",
290
- action: /* @__PURE__ */ b("button", {
295
+ action: /* @__PURE__ */ y("button", {
291
296
  onClick: () => m("../properties"),
292
297
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text",
293
- children: [/* @__PURE__ */ y(ke, { className: "h-4 w-4" }), "Back to Properties"]
298
+ children: [/* @__PURE__ */ v(ke, { className: "h-4 w-4" }), "Back to Properties"]
294
299
  })
295
300
  })
296
301
  });
297
- let In = [{
302
+ let zn = [{
298
303
  label: "Properties",
299
304
  href: "../"
300
- }, { label: g.title }], Ln = (e) => {
305
+ }, { label: g.title }], Bn = (e) => {
301
306
  let t = n(e.amount, e.currency);
302
307
  return e.type === "rent" && e.period ? `${t}/${e.period.replace("ly", "")}` : t;
303
- }, Rn = () => Rt((e) => e === g.images.length - 1 ? 0 : e + 1), zn = () => Rt((e) => e === 0 ? g.images.length - 1 : e - 1), Bn = () => {
308
+ }, Vn = () => Bt((e) => e === g.images.length - 1 ? 0 : e + 1), Hn = () => Bt((e) => e === 0 ? g.images.length - 1 : e - 1), Un = () => {
304
309
  navigator.share ? navigator.share({
305
310
  title: g.title,
306
311
  text: g.description,
307
312
  url: window.location.href
308
313
  }) : (navigator.clipboard.writeText(window.location.href), u.info("Link copied", "The property link is on your clipboard."));
309
- }, Vn = async () => {
314
+ }, Wn = async () => {
310
315
  try {
311
- N ? (await St(g.id), u.success("Removed from shortlist")) : (await _t(g.id), h("housingvista.shortlist.property_added", g.id), u.success("Saved to shortlist"));
316
+ M ? (await wt(g.id), u.success("Removed from shortlist")) : (await yt(g.id), h("housingvista.shortlist.property_added", g.id), u.success("Saved to shortlist"));
312
317
  } catch (e) {
313
318
  u.error("Could not update shortlist", e.message);
314
319
  }
315
- }, Hn = async (e) => {
316
- if (e.preventDefault(), U) try {
317
- await wt({
320
+ }, Gn = async (e) => {
321
+ if (e.preventDefault(), H) try {
322
+ await Et({
318
323
  propertyId: g.id,
319
- scheduledAt: new Date(U).toISOString(),
320
- type: xn,
321
- attendeeName: Cn.trim() || void 0,
322
- attendeeEmail: Tn.trim() || void 0,
323
- notes: Dn.trim() || void 0
324
- }), h("housingvista.viewing.scheduled", g.id), u.success("Viewing requested", "The owner will confirm your slot shortly."), I(!1), bn(""), wn(""), En(""), On("");
324
+ scheduledAt: new Date(H).toISOString(),
325
+ type: Cn,
326
+ attendeeName: Tn.trim() || void 0,
327
+ attendeeEmail: Dn.trim() || void 0,
328
+ notes: kn.trim() || void 0
329
+ }), h("housingvista.viewing.scheduled", g.id), u.success("Viewing requested", "The owner will confirm your slot shortly."), F(!1), Sn(""), En(""), On(""), An("");
325
330
  } catch (e) {
326
331
  u.error("Could not book viewing", e.message);
327
332
  }
328
- }, Un = async (e) => {
333
+ }, Kn = async (e) => {
329
334
  e.preventDefault();
330
- let t = Number(kn);
335
+ let t = Number(jn);
331
336
  if (!t || t <= 0) {
332
337
  u.warning("Enter a valid offer amount");
333
338
  return;
334
339
  }
335
340
  try {
336
- await Et({
341
+ await Ot({
337
342
  propertyId: g.id,
338
343
  amount: t,
339
344
  currency: g.price.currency,
340
- notes: jn.trim() || void 0
341
- }), h("housingvista.offer.created", g.id), u.success("Offer submitted", `Your offer of ${n(t, g.price.currency)} was sent.`), L(!1), An(""), Mn("");
345
+ notes: Nn.trim() || void 0,
346
+ expiresAt: Fn ? new Date(Fn).toISOString() : void 0
347
+ }), h("housingvista.offer.created", g.id), u.success("Offer submitted", `Your offer of ${n(t, g.price.currency)} was sent.`), I(!1), Mn(""), Pn(""), U("");
342
348
  } catch (e) {
343
349
  u.error("Could not submit offer", e.message);
344
350
  }
345
- }, Wn = () => {
351
+ }, qn = () => {
346
352
  let e = g.location.coordinates, t = {
347
353
  title: g.title,
348
354
  description: g.description,
@@ -360,35 +366,35 @@ var xt = () => {
360
366
  latitude: e.latitude,
361
367
  longitude: e.longitude
362
368
  } : null,
363
- bedrooms: A(g.specifications.bedrooms),
364
- bathrooms: A(g.specifications.bathrooms),
365
- totalArea: A(g.specifications.totalArea),
366
- carpetArea: A(g.specifications.carpetArea),
367
- builtUpArea: A(g.specifications.builtUpArea),
368
- floors: A(g.specifications.floors),
369
- totalFloors: A(g.specifications.totalFloors),
370
- parking: A(g.specifications.parking),
371
- balconies: A(g.specifications.balconies),
369
+ bedrooms: k(g.specifications.bedrooms),
370
+ bathrooms: k(g.specifications.bathrooms),
371
+ totalArea: k(g.specifications.totalArea),
372
+ carpetArea: k(g.specifications.carpetArea),
373
+ builtUpArea: k(g.specifications.builtUpArea),
374
+ floors: k(g.specifications.floors),
375
+ totalFloors: k(g.specifications.totalFloors),
376
+ parking: k(g.specifications.parking),
377
+ balconies: k(g.specifications.balconies),
372
378
  furnishingStatus: g.specifications.furnishingStatus,
373
- ageOfProperty: A(g.specifications.ageOfProperty),
379
+ ageOfProperty: k(g.specifications.ageOfProperty),
374
380
  facing: g.specifications.facing ?? "",
375
- price: A(g.price.amount),
381
+ price: k(g.price.amount),
376
382
  currency: g.price.currency,
377
383
  priceType: g.price.type,
378
384
  pricePeriod: g.price.period ?? "",
379
385
  negotiable: g.price.negotiable,
380
- pricePerSqft: A(g.price.pricePerSqft),
386
+ pricePerSqft: k(g.price.pricePerSqft),
381
387
  amenities: g.amenities.filter((e) => e.available).map((e) => d.find((t) => t.label === e.name)?.id ?? "").filter((e) => e !== ""),
382
388
  extraAmenities: g.amenities.filter((e) => !d.some((t) => t.label === e.name)),
383
389
  catalogAmenities: g.amenities.filter((e) => d.some((t) => t.label === e.name))
384
390
  };
385
- Nn(t), Fn(t), R(!0);
386
- }, G = (e) => Nn((t) => ({
391
+ In(t), Rn(t), L(!0);
392
+ }, G = (e) => In((t) => ({
387
393
  ...t,
388
394
  ...e
389
- })), K = (e) => e.trim(), Gn = async (e) => {
395
+ })), K = (e) => e.trim(), Jn = async (e) => {
390
396
  e.preventDefault();
391
- let t = W.title.trim(), n = W.city.trim(), r = W.state.trim(), i = O(W.bedrooms), a = O(W.bathrooms), o = O(W.totalArea), s = O(W.price);
397
+ let t = W.title.trim(), n = W.city.trim(), r = W.state.trim(), i = D(W.bedrooms), a = D(W.bathrooms), o = D(W.totalArea), s = D(W.price);
392
398
  if (!t || !n || !r) {
393
399
  u.warning("Title, city and state are required");
394
400
  return;
@@ -409,7 +415,7 @@ var xt = () => {
409
415
  u.warning("Enter a price greater than zero");
410
416
  return;
411
417
  }
412
- let c = mt(W.landmarks), ee = c.join("|") !== mt(Pn.landmarks).join("|"), te = [...W.amenities].sort().join("|") !== [...Pn.amenities].sort().join("|"), l = {
418
+ let c = ht(W.landmarks), ee = c.join("|") !== ht(Ln.landmarks).join("|"), te = [...W.amenities].sort().join("|") !== [...Ln.amenities].sort().join("|"), l = {
413
419
  title: t,
414
420
  description: K(W.description),
415
421
  status: W.status,
@@ -425,21 +431,21 @@ var xt = () => {
425
431
  bedrooms: i ?? void 0,
426
432
  bathrooms: a ?? void 0,
427
433
  totalArea: o,
428
- carpetArea: k(W.carpetArea),
429
- builtUpArea: k(W.builtUpArea),
430
- floors: k(W.floors),
431
- totalFloors: k(W.totalFloors),
432
- parking: k(W.parking),
433
- balconies: k(W.balconies),
434
+ carpetArea: O(W.carpetArea),
435
+ builtUpArea: O(W.builtUpArea),
436
+ floors: O(W.floors),
437
+ totalFloors: O(W.totalFloors),
438
+ parking: O(W.parking),
439
+ balconies: O(W.balconies),
434
440
  furnishingStatus: W.furnishingStatus,
435
- ageOfProperty: k(W.ageOfProperty),
441
+ ageOfProperty: O(W.ageOfProperty),
436
442
  facing: W.facing || void 0,
437
443
  price: s,
438
444
  currency: W.currency || void 0,
439
445
  priceType: W.priceType || void 0,
440
446
  pricePeriod: W.pricePeriod === "" ? null : W.pricePeriod,
441
447
  negotiable: W.negotiable,
442
- pricePerSqft: k(W.pricePerSqft)
448
+ pricePerSqft: O(W.pricePerSqft)
443
449
  };
444
450
  if (ee && (l.landmarks = c), te) {
445
451
  let e = new Set(W.amenities.map((e) => d.find((t) => t.id === e)?.label ?? e)), t = /* @__PURE__ */ new Map();
@@ -465,40 +471,40 @@ var xt = () => {
465
471
  l.amenities = [...t.values()];
466
472
  }
467
473
  try {
468
- await Ot(g.id, l), h("housingvista.property.updated", g.id), u.success("Property updated"), R(!1);
474
+ await At(g.id, l), h("housingvista.property.updated", g.id), u.success("Property updated"), L(!1);
469
475
  } catch (e) {
470
476
  u.error("Could not update property", e.message);
471
477
  }
472
- }, Kn = async () => {
478
+ }, Yn = async () => {
473
479
  try {
474
- await kt(g.id), h("housingvista.property.deleted", g.id), u.success("Property deleted"), m("../properties");
480
+ await jt(g.id), h("housingvista.property.deleted", g.id), u.success("Property deleted"), m("../properties");
475
481
  } catch (e) {
476
482
  u.error("Could not delete property", e.message);
477
483
  }
478
- }, q = tt[0], J = q?.id, qn = async (e) => {
484
+ }, q = rt[0], J = q?.id, Xn = async (e) => {
479
485
  if (e.preventDefault(), !J) {
480
486
  u.warning("No rental unit is available for this property yet");
481
487
  return;
482
488
  }
483
- if (!qt.trim() || !Yt.trim()) {
489
+ if (!Yt.trim() || !Zt.trim()) {
484
490
  u.warning("Enter your name and email to apply");
485
491
  return;
486
492
  }
487
493
  try {
488
- await jt({
494
+ await Nt({
489
495
  rentalUnitId: J,
490
- applicantName: qt.trim(),
491
- applicantEmail: Yt.trim(),
492
- applicantPhone: Zt.trim() || void 0,
493
- monthlyIncome: $t ? Number($t) : void 0,
494
- moveInDate: tn ? new Date(tn).toISOString() : void 0
495
- }), u.success("Application submitted", "The owner will review your rental application shortly."), B(!1), Jt(""), Xt(""), Qt(""), en(""), nn("");
496
+ applicantName: Yt.trim(),
497
+ applicantEmail: Zt.trim(),
498
+ applicantPhone: $t.trim() || void 0,
499
+ monthlyIncome: tn ? Number(tn) : void 0,
500
+ moveInDate: rn ? new Date(rn).toISOString() : void 0
501
+ }), u.success("Application submitted", "The owner will review your rental application shortly."), z(!1), Xt(""), Qt(""), en(""), nn(""), an("");
496
502
  } catch (e) {
497
503
  u.error("Could not submit application", e.message);
498
504
  }
499
- }, Jn = async () => {
505
+ }, Zn = async () => {
500
506
  try {
501
- await Nt({
507
+ await Ft({
502
508
  propertyId: g.id,
503
509
  title: `${g.title} — investment`,
504
510
  status: "active",
@@ -510,153 +516,155 @@ var xt = () => {
510
516
  } catch (e) {
511
517
  u.error("Could not track investment", e.message);
512
518
  }
513
- }, Yn = async (e) => {
519
+ }, Qn = async (e) => {
514
520
  try {
515
- await Ft(g.id, e), u.success(e === "verified" ? "RERA registration verified" : "RERA registration rejected", g.title);
521
+ await Lt(g.id, e), u.success(e === "verified" ? "RERA registration verified" : "RERA registration rejected", g.title);
516
522
  } catch (e) {
517
523
  u.error("Could not update RERA status", e.message);
518
524
  }
519
- }, Y = g.price.amount, Xn = Number(rn) || Math.round(Y * .005), Zn = Number(on) || Math.round(Y * .0015), Qn = Xn * 12, $n = Y > 0 ? Qn / Y * 100 : 0, er = Qn - Zn * 12, tr = Y > 0 ? er / Y * 100 : 0, nr = Math.max(0, Number(cn) || 0) / 100, rr = Array.from({ length: 6 }, (e, t) => ({
525
+ }, Y = g.price.amount, $n = Number(on) || Math.round(Y * .005), er = Number(cn) || Math.round(Y * .0015), tr = $n * 12, nr = Y > 0 ? tr / Y * 100 : 0, rr = tr - er * 12, ir = Y > 0 ? rr / Y * 100 : 0, ar = Math.max(0, Number(un) || 0) / 100, or = Array.from({ length: 6 }, (e, t) => ({
520
526
  label: t === 0 ? "Now" : `Yr ${t}`,
521
- value: Math.round(Y * (1 + nr) ** +t)
522
- })), ir = rr[rr.length - 1].value, ar = ir - Y + er * 5, or = Y > 0 ? ar / Y * 100 : 0, sr = Math.max(0, Number(dn) || 0), cr = V ? sr / 100 * Y : 0, lr = Math.min(100, Math.max(0, Number(mn) || 0)), ur = Math.max(0, Number(gn) || 0) / 100, dr = Math.max(1, Number(vn) || 1), fr = H ? lr / 100 * Y : Y, X = H ? Y - fr : 0, Z = ur / 12, pr = dr * 12, Q = H && X > 0 ? Z > 0 ? X * Z * (1 + Z) ** +pr / ((1 + Z) ** +pr - 1) : X / pr : 0, mr = Q * 12, $ = fr + cr, hr = er - mr, gr = $ > 0 ? hr / $ * 100 : 0;
523
- return /* @__PURE__ */ b("div", {
527
+ value: Math.round(Y * (1 + ar) ** +t)
528
+ })), sr = or[or.length - 1].value, cr = sr - Y + rr * 5, lr = Y > 0 ? cr / Y * 100 : 0, ur = Math.max(0, Number(pn) || 0), X = B ? ur / 100 * Y : 0, dr = Math.min(100, Math.max(0, Number(gn) || 0)), fr = Math.max(0, Number(vn) || 0) / 100, pr = Math.max(1, Number(bn) || 1), mr = V ? dr / 100 * Y : Y, Z = V ? Y - mr : 0, Q = fr / 12, hr = pr * 12, gr = V && Z > 0 ? Q > 0 ? Z * Q * (1 + Q) ** +hr / ((1 + Q) ** +hr - 1) : Z / hr : 0, _r = gr * 12, $ = mr + X, vr = rr - _r, yr = $ > 0 ? vr / $ * 100 : 0;
529
+ return /* @__PURE__ */ y("div", {
524
530
  className: "space-y-6 p-6",
525
531
  children: [
526
- /* @__PURE__ */ y(s, { items: In }),
527
- /* @__PURE__ */ b("div", {
532
+ /* @__PURE__ */ v(s, { items: zn }),
533
+ /* @__PURE__ */ y("div", {
528
534
  className: "flex flex-wrap items-center gap-3",
529
535
  children: [
530
- /* @__PURE__ */ b("button", {
536
+ /* @__PURE__ */ y("button", {
531
537
  onClick: () => m("../properties"),
532
538
  className: "inline-flex items-center gap-2 rounded-md border border-border-subtle px-3 py-1.5 text-sm text-text-primary transition-colors hover:bg-bg-sunken",
533
- children: [/* @__PURE__ */ y(ke, { className: "h-4 w-4" }), "Back"]
539
+ children: [/* @__PURE__ */ v(ke, { className: "h-4 w-4" }), "Back"]
534
540
  }),
535
- /* @__PURE__ */ y(a, {
541
+ /* @__PURE__ */ v(a, {
536
542
  label: g.status.replace("_", " "),
537
- variant: lt[g.status] ?? "default",
543
+ variant: ut[g.status] ?? "default",
538
544
  dot: !0
539
545
  }),
540
- g.verificationStatus === "verified" && /* @__PURE__ */ y(a, {
546
+ g.verificationStatus === "verified" && /* @__PURE__ */ v(a, {
541
547
  label: "Verified",
542
548
  variant: "success",
543
549
  dot: !0
544
550
  }),
545
- g.price.negotiable && /* @__PURE__ */ y(a, {
551
+ g.price.negotiable && /* @__PURE__ */ v(a, {
546
552
  label: "Negotiable",
547
553
  variant: "info"
548
554
  }),
549
- /* @__PURE__ */ b("div", {
555
+ /* @__PURE__ */ y("div", {
550
556
  className: "ml-auto flex items-center gap-2",
551
- children: [/* @__PURE__ */ b(x, {
557
+ children: [/* @__PURE__ */ y(b, {
552
558
  type: "button",
553
559
  variant: "outline",
554
560
  size: "sm",
555
- onClick: Wn,
556
- children: [/* @__PURE__ */ y(Ye, { className: "mr-1.5 h-4 w-4" }), "Edit"]
557
- }), /* @__PURE__ */ b(x, {
561
+ onClick: qn,
562
+ children: [/* @__PURE__ */ v(Ye, { className: "mr-1.5 h-4 w-4" }), "Edit"]
563
+ }), /* @__PURE__ */ y(b, {
558
564
  type: "button",
559
565
  variant: "outline",
560
566
  size: "sm",
561
- onClick: () => z(!0),
562
- children: [/* @__PURE__ */ y(Qe, { className: "mr-1.5 h-4 w-4" }), "Delete"]
567
+ onClick: () => R(!0),
568
+ children: [/* @__PURE__ */ v(Qe, { className: "mr-1.5 h-4 w-4" }), "Delete"]
563
569
  })]
564
570
  })
565
571
  ]
566
572
  }),
567
- /* @__PURE__ */ y(ct, {
573
+ /* @__PURE__ */ v(lt, {
568
574
  className: "max-w-3xl",
569
575
  children: "Everything you need to evaluate this property in one place — photos, specifications, amenities, and location. Use it to shortlist the property, schedule a viewing, or make an offer."
570
576
  }),
571
- /* @__PURE__ */ y(st, {
577
+ /* @__PURE__ */ v(ct, {
572
578
  storageKey: "housingvista-property-detail",
573
579
  steps: [
574
580
  {
575
581
  id: "schedule",
576
582
  label: "Schedule a viewing",
577
583
  description: "Book a time to see the property in person or virtually.",
578
- onClick: () => I(!0)
584
+ onClick: () => F(!0)
579
585
  },
580
586
  {
581
587
  id: "offer",
582
588
  label: "Make an offer",
583
589
  description: "Submit a price and let the owner respond.",
584
- onClick: () => L(!0)
590
+ onClick: () => {
591
+ U(_t()), I(!0);
592
+ }
585
593
  },
586
594
  {
587
595
  id: "location",
588
596
  label: "Explore the location",
589
597
  description: "See the neighborhood, nearby landmarks, and map.",
590
- onClick: () => zt("location")
598
+ onClick: () => Vt("location")
591
599
  }
592
600
  ]
593
601
  }),
594
- /* @__PURE__ */ b("div", {
602
+ /* @__PURE__ */ y("div", {
595
603
  className: "space-y-3",
596
- children: [/* @__PURE__ */ b("div", {
604
+ children: [/* @__PURE__ */ y("div", {
597
605
  className: "relative overflow-hidden rounded-xl border border-border-subtle bg-bg-sunken",
598
606
  children: [
599
- g.images.length > 0 ? /* @__PURE__ */ y("img", {
600
- src: g.images[P]?.url,
601
- alt: g.images[P]?.title ?? g.title,
607
+ g.images.length > 0 ? /* @__PURE__ */ v("img", {
608
+ src: g.images[N]?.url,
609
+ alt: g.images[N]?.title ?? g.title,
602
610
  className: "h-80 w-full object-cover sm:h-[26rem]"
603
- }) : /* @__PURE__ */ b("div", {
611
+ }) : /* @__PURE__ */ y("div", {
604
612
  className: "flex h-80 w-full flex-col items-center justify-center gap-3 bg-gradient-to-br from-[var(--color-action-primary-bg)]/12 via-bg-sunken to-[var(--color-accent-blue)]/12 text-text-secondary/70 sm:h-[26rem]",
605
- children: [/* @__PURE__ */ y(Ne, { className: "h-12 w-12" }), /* @__PURE__ */ y("span", {
613
+ children: [/* @__PURE__ */ v(Ne, { className: "h-12 w-12" }), /* @__PURE__ */ v("span", {
606
614
  className: "text-sm font-medium tracking-wide",
607
615
  children: "No photos yet"
608
616
  })]
609
617
  }),
610
- g.images.length > 1 && /* @__PURE__ */ b(at, { children: [/* @__PURE__ */ y("button", {
611
- onClick: zn,
618
+ g.images.length > 1 && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("button", {
619
+ onClick: Hn,
612
620
  "aria-label": "Previous photo",
613
621
  className: "absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-bg-overlay/70 p-2 text-text-inverse transition-colors hover:bg-bg-overlay",
614
- children: /* @__PURE__ */ y(Le, { className: "h-5 w-5" })
615
- }), /* @__PURE__ */ y("button", {
616
- onClick: Rn,
622
+ children: /* @__PURE__ */ v(Le, { className: "h-5 w-5" })
623
+ }), /* @__PURE__ */ v("button", {
624
+ onClick: Vn,
617
625
  "aria-label": "Next photo",
618
626
  className: "absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-bg-overlay/70 p-2 text-text-inverse transition-colors hover:bg-bg-overlay",
619
- children: /* @__PURE__ */ y(Re, { className: "h-5 w-5" })
627
+ children: /* @__PURE__ */ v(Re, { className: "h-5 w-5" })
620
628
  })] }),
621
- g.verificationStatus === "verified" && /* @__PURE__ */ b("div", {
629
+ g.verificationStatus === "verified" && /* @__PURE__ */ y("div", {
622
630
  className: "absolute left-4 top-4 inline-flex items-center gap-1.5 rounded-full bg-status-success-bg-subtle px-3 py-1 text-xs font-semibold text-status-success-text shadow-elevation-1 backdrop-blur-sm",
623
- children: [/* @__PURE__ */ y(Ae, { className: "h-4 w-4" }), "Verified listing"]
631
+ children: [/* @__PURE__ */ v(Ae, { className: "h-4 w-4" }), "Verified listing"]
624
632
  }),
625
- /* @__PURE__ */ b("div", {
633
+ /* @__PURE__ */ y("div", {
626
634
  className: "absolute right-4 top-4 flex gap-2",
627
- children: [/* @__PURE__ */ y("button", {
628
- onClick: Vn,
629
- disabled: xt || Ct,
630
- "aria-label": N ? "Remove from shortlist" : "Save to shortlist",
635
+ children: [/* @__PURE__ */ v("button", {
636
+ onClick: Wn,
637
+ disabled: Ct || Tt,
638
+ "aria-label": M ? "Remove from shortlist" : "Save to shortlist",
631
639
  className: "rounded-full bg-bg-surface/85 p-2 shadow-elevation-1 backdrop-blur-sm transition-colors hover:bg-bg-surface disabled:opacity-60",
632
- children: /* @__PURE__ */ y(Ue, { className: e("h-5 w-5", N ? "fill-status-error-text text-status-error-text" : "text-text-secondary") })
633
- }), /* @__PURE__ */ y("button", {
634
- onClick: Bn,
640
+ children: /* @__PURE__ */ v(Ue, { className: e("h-5 w-5", M ? "fill-status-error-text text-status-error-text" : "text-text-secondary") })
641
+ }), /* @__PURE__ */ v("button", {
642
+ onClick: Un,
635
643
  "aria-label": "Share this listing",
636
644
  className: "rounded-full bg-bg-surface/85 p-2 shadow-elevation-1 backdrop-blur-sm transition-colors hover:bg-bg-surface",
637
- children: /* @__PURE__ */ y(Xe, { className: "h-5 w-5 text-text-secondary" })
645
+ children: /* @__PURE__ */ v(Xe, { className: "h-5 w-5 text-text-secondary" })
638
646
  })]
639
647
  }),
640
- g.images.length > 0 && /* @__PURE__ */ y("div", {
648
+ g.images.length > 0 && /* @__PURE__ */ v("div", {
641
649
  className: "absolute bottom-4 right-4",
642
- children: /* @__PURE__ */ b("span", {
650
+ children: /* @__PURE__ */ y("span", {
643
651
  className: "rounded-md bg-bg-overlay/70 px-2 py-1 text-xs font-medium text-text-inverse",
644
652
  children: [
645
- P + 1,
653
+ N + 1,
646
654
  " / ",
647
655
  g.images.length
648
656
  ]
649
657
  })
650
658
  })
651
659
  ]
652
- }), g.images.length > 1 && /* @__PURE__ */ y("div", {
660
+ }), g.images.length > 1 && /* @__PURE__ */ v("div", {
653
661
  className: "flex gap-3 overflow-x-auto pb-1",
654
- children: g.images.map((t, n) => /* @__PURE__ */ y("button", {
655
- onClick: () => Rt(n),
662
+ children: g.images.map((t, n) => /* @__PURE__ */ v("button", {
663
+ onClick: () => Bt(n),
656
664
  "aria-label": `View photo ${n + 1}`,
657
- "aria-current": n === P,
658
- className: e("h-16 w-24 shrink-0 overflow-hidden rounded-lg border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", n === P ? "border-action-primary-border" : "border-transparent opacity-70 hover:opacity-100"),
659
- children: /* @__PURE__ */ y("img", {
665
+ "aria-current": n === N,
666
+ className: e("h-16 w-24 shrink-0 overflow-hidden rounded-lg border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", n === N ? "border-action-primary-border" : "border-transparent opacity-70 hover:opacity-100"),
667
+ children: /* @__PURE__ */ v("img", {
660
668
  src: t.url,
661
669
  alt: t.title ?? `Photo ${n + 1}`,
662
670
  className: "h-full w-full object-cover"
@@ -664,19 +672,19 @@ var xt = () => {
664
672
  }, t.id))
665
673
  })]
666
674
  }),
667
- /* @__PURE__ */ b("div", {
675
+ /* @__PURE__ */ y("div", {
668
676
  className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
669
- children: [/* @__PURE__ */ b("div", {
677
+ children: [/* @__PURE__ */ y("div", {
670
678
  className: "space-y-6 lg:col-span-2",
671
- children: [/* @__PURE__ */ b(ot, { children: [
672
- /* @__PURE__ */ b("div", {
679
+ children: [/* @__PURE__ */ y(st, { children: [
680
+ /* @__PURE__ */ y("div", {
673
681
  className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
674
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h1", {
682
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h1", {
675
683
  className: "text-2xl font-bold text-text-primary",
676
684
  children: g.title
677
- }), /* @__PURE__ */ b("div", {
685
+ }), /* @__PURE__ */ y("div", {
678
686
  className: "mt-2 flex items-center text-text-secondary",
679
- children: [/* @__PURE__ */ y(Ge, { className: "mr-1.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ y("span", {
687
+ children: [/* @__PURE__ */ v(Ge, { className: "mr-1.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ v("span", {
680
688
  className: "text-sm",
681
689
  children: [
682
690
  g.location.address,
@@ -684,18 +692,18 @@ var xt = () => {
684
692
  g.location.city
685
693
  ].filter(Boolean).join(", ")
686
694
  })]
687
- })] }), /* @__PURE__ */ b("div", {
695
+ })] }), /* @__PURE__ */ y("div", {
688
696
  className: "text-right",
689
- children: [/* @__PURE__ */ y("div", {
697
+ children: [/* @__PURE__ */ v("div", {
690
698
  className: "text-2xl font-bold text-text-primary",
691
- children: Ln(g.price)
692
- }), g.price.pricePerSqft && /* @__PURE__ */ b("div", {
699
+ children: Bn(g.price)
700
+ }), g.price.pricePerSqft && /* @__PURE__ */ y("div", {
693
701
  className: "text-sm text-text-secondary",
694
702
  children: [n(g.price.pricePerSqft), "/sqft"]
695
703
  })]
696
704
  })]
697
705
  }),
698
- /* @__PURE__ */ y("div", {
706
+ /* @__PURE__ */ v("div", {
699
707
  className: "mt-6 grid grid-cols-2 gap-3 border-t border-border-subtle pt-6 sm:grid-cols-4",
700
708
  children: [
701
709
  g.specifications.bedrooms != null && {
@@ -724,15 +732,15 @@ var xt = () => {
724
732
  } : !1
725
733
  ].filter((e) => !!e).map((e) => {
726
734
  let t = e.icon;
727
- return /* @__PURE__ */ b("div", {
735
+ return /* @__PURE__ */ y("div", {
728
736
  className: "flex flex-col items-center gap-1 rounded-lg border border-border-subtle bg-bg-sunken/40 p-3 text-center",
729
737
  children: [
730
- /* @__PURE__ */ y(t, { className: "h-5 w-5 text-text-secondary" }),
731
- /* @__PURE__ */ y("span", {
738
+ /* @__PURE__ */ v(t, { className: "h-5 w-5 text-text-secondary" }),
739
+ /* @__PURE__ */ v("span", {
732
740
  className: "text-base font-semibold text-text-primary",
733
741
  children: e.value
734
742
  }),
735
- /* @__PURE__ */ y("span", {
743
+ /* @__PURE__ */ v("span", {
736
744
  className: "text-xs text-text-secondary",
737
745
  children: e.label
738
746
  })
@@ -740,95 +748,95 @@ var xt = () => {
740
748
  }, e.label);
741
749
  })
742
750
  }),
743
- g.description && /* @__PURE__ */ b("div", {
751
+ g.description && /* @__PURE__ */ y("div", {
744
752
  className: "mt-6 border-t border-border-subtle pt-6",
745
- children: [/* @__PURE__ */ y("h3", {
753
+ children: [/* @__PURE__ */ v("h3", {
746
754
  className: "mb-3 text-base font-semibold text-text-primary",
747
755
  children: "Description"
748
- }), /* @__PURE__ */ y("p", {
756
+ }), /* @__PURE__ */ v("p", {
749
757
  className: "text-sm leading-relaxed text-text-secondary",
750
758
  children: g.description
751
759
  })]
752
760
  })
753
- ] }), /* @__PURE__ */ b("div", {
761
+ ] }), /* @__PURE__ */ y("div", {
754
762
  className: "rounded-lg border border-border-subtle bg-bg-surface",
755
- children: [/* @__PURE__ */ y("div", {
763
+ children: [/* @__PURE__ */ v("div", {
756
764
  className: "border-b border-border-subtle",
757
- children: /* @__PURE__ */ y("nav", {
765
+ children: /* @__PURE__ */ v("nav", {
758
766
  className: "flex space-x-6 overflow-x-auto px-6",
759
- children: gt.map((t) => /* @__PURE__ */ y("button", {
760
- onClick: () => zt(t.id),
761
- className: e("whitespace-nowrap border-b-2 py-3 text-sm font-medium transition-colors", F === t.id ? "border-action-primary-border text-text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
767
+ children: vt.map((t) => /* @__PURE__ */ v("button", {
768
+ onClick: () => Vt(t.id),
769
+ className: e("whitespace-nowrap border-b-2 py-3 text-sm font-medium transition-colors", P === t.id ? "border-action-primary-border text-text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
762
770
  children: t.label
763
771
  }, t.id))
764
772
  })
765
- }), /* @__PURE__ */ b("div", {
773
+ }), /* @__PURE__ */ y("div", {
766
774
  className: "p-6",
767
775
  children: [
768
- F === "details" && /* @__PURE__ */ b("div", {
776
+ P === "details" && /* @__PURE__ */ y("div", {
769
777
  className: "grid grid-cols-1 gap-6 sm:grid-cols-2",
770
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h4", {
778
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h4", {
771
779
  className: "mb-3 text-sm font-semibold text-text-primary",
772
780
  children: "Property Information"
773
- }), /* @__PURE__ */ b("dl", {
781
+ }), /* @__PURE__ */ y("dl", {
774
782
  className: "space-y-2 text-sm",
775
783
  children: [
776
- /* @__PURE__ */ b("div", {
784
+ /* @__PURE__ */ y("div", {
777
785
  className: "flex justify-between",
778
- children: [/* @__PURE__ */ y("dt", {
786
+ children: [/* @__PURE__ */ v("dt", {
779
787
  className: "text-text-secondary",
780
788
  children: "Property Type"
781
- }), /* @__PURE__ */ y("dd", {
789
+ }), /* @__PURE__ */ v("dd", {
782
790
  className: "font-medium capitalize text-text-primary",
783
791
  children: g.type
784
792
  })]
785
793
  }),
786
- /* @__PURE__ */ b("div", {
794
+ /* @__PURE__ */ y("div", {
787
795
  className: "flex justify-between",
788
- children: [/* @__PURE__ */ y("dt", {
796
+ children: [/* @__PURE__ */ v("dt", {
789
797
  className: "text-text-secondary",
790
798
  children: "Category"
791
- }), /* @__PURE__ */ y("dd", {
799
+ }), /* @__PURE__ */ v("dd", {
792
800
  className: "font-medium capitalize text-text-primary",
793
801
  children: g.category
794
802
  })]
795
803
  }),
796
- g.specifications.ageOfProperty != null && /* @__PURE__ */ b("div", {
804
+ g.specifications.ageOfProperty != null && /* @__PURE__ */ y("div", {
797
805
  className: "flex justify-between",
798
- children: [/* @__PURE__ */ y("dt", {
806
+ children: [/* @__PURE__ */ v("dt", {
799
807
  className: "text-text-secondary",
800
808
  children: "Age of Property"
801
- }), /* @__PURE__ */ b("dd", {
809
+ }), /* @__PURE__ */ y("dd", {
802
810
  className: "font-medium text-text-primary",
803
811
  children: [g.specifications.ageOfProperty, " years"]
804
812
  })]
805
813
  }),
806
- /* @__PURE__ */ b("div", {
814
+ /* @__PURE__ */ y("div", {
807
815
  className: "flex justify-between",
808
- children: [/* @__PURE__ */ y("dt", {
816
+ children: [/* @__PURE__ */ v("dt", {
809
817
  className: "text-text-secondary",
810
818
  children: "Furnishing"
811
- }), /* @__PURE__ */ y("dd", {
819
+ }), /* @__PURE__ */ v("dd", {
812
820
  className: "font-medium capitalize text-text-primary",
813
821
  children: g.specifications.furnishingStatus?.replace("_", " ")
814
822
  })]
815
823
  }),
816
- g.specifications.facing && /* @__PURE__ */ b("div", {
824
+ g.specifications.facing && /* @__PURE__ */ y("div", {
817
825
  className: "flex justify-between",
818
- children: [/* @__PURE__ */ y("dt", {
826
+ children: [/* @__PURE__ */ v("dt", {
819
827
  className: "text-text-secondary",
820
828
  children: "Facing"
821
- }), /* @__PURE__ */ y("dd", {
829
+ }), /* @__PURE__ */ v("dd", {
822
830
  className: "font-medium text-text-primary",
823
831
  children: g.specifications.facing
824
832
  })]
825
833
  }),
826
- g.specifications.floors != null && /* @__PURE__ */ b("div", {
834
+ g.specifications.floors != null && /* @__PURE__ */ y("div", {
827
835
  className: "flex justify-between",
828
- children: [/* @__PURE__ */ y("dt", {
836
+ children: [/* @__PURE__ */ v("dt", {
829
837
  className: "text-text-secondary",
830
838
  children: "Floor"
831
- }), /* @__PURE__ */ b("dd", {
839
+ }), /* @__PURE__ */ y("dd", {
832
840
  className: "font-medium text-text-primary",
833
841
  children: [
834
842
  g.specifications.floors,
@@ -838,48 +846,48 @@ var xt = () => {
838
846
  })]
839
847
  })
840
848
  ]
841
- })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h4", {
849
+ })] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h4", {
842
850
  className: "mb-3 text-sm font-semibold text-text-primary",
843
851
  children: "Area Details"
844
- }), /* @__PURE__ */ b("dl", {
852
+ }), /* @__PURE__ */ y("dl", {
845
853
  className: "space-y-2 text-sm",
846
854
  children: [
847
- /* @__PURE__ */ b("div", {
855
+ /* @__PURE__ */ y("div", {
848
856
  className: "flex justify-between",
849
- children: [/* @__PURE__ */ y("dt", {
857
+ children: [/* @__PURE__ */ v("dt", {
850
858
  className: "text-text-secondary",
851
859
  children: "Total Area"
852
- }), /* @__PURE__ */ b("dd", {
860
+ }), /* @__PURE__ */ y("dd", {
853
861
  className: "font-medium text-text-primary",
854
862
  children: [i(g.specifications.totalArea), " sqft"]
855
863
  })]
856
864
  }),
857
- g.specifications.carpetArea && /* @__PURE__ */ b("div", {
865
+ g.specifications.carpetArea && /* @__PURE__ */ y("div", {
858
866
  className: "flex justify-between",
859
- children: [/* @__PURE__ */ y("dt", {
867
+ children: [/* @__PURE__ */ v("dt", {
860
868
  className: "text-text-secondary",
861
869
  children: "Carpet Area"
862
- }), /* @__PURE__ */ b("dd", {
870
+ }), /* @__PURE__ */ y("dd", {
863
871
  className: "font-medium text-text-primary",
864
872
  children: [i(g.specifications.carpetArea), " sqft"]
865
873
  })]
866
874
  }),
867
- g.specifications.builtUpArea && /* @__PURE__ */ b("div", {
875
+ g.specifications.builtUpArea && /* @__PURE__ */ y("div", {
868
876
  className: "flex justify-between",
869
- children: [/* @__PURE__ */ y("dt", {
877
+ children: [/* @__PURE__ */ v("dt", {
870
878
  className: "text-text-secondary",
871
879
  children: "Built-up Area"
872
- }), /* @__PURE__ */ b("dd", {
880
+ }), /* @__PURE__ */ y("dd", {
873
881
  className: "font-medium text-text-primary",
874
882
  children: [i(g.specifications.builtUpArea), " sqft"]
875
883
  })]
876
884
  }),
877
- g.price.pricePerSqft && /* @__PURE__ */ b("div", {
885
+ g.price.pricePerSqft && /* @__PURE__ */ y("div", {
878
886
  className: "flex justify-between",
879
- children: [/* @__PURE__ */ y("dt", {
887
+ children: [/* @__PURE__ */ v("dt", {
880
888
  className: "text-text-secondary",
881
889
  children: "Price per sqft"
882
- }), /* @__PURE__ */ y("dd", {
890
+ }), /* @__PURE__ */ v("dd", {
883
891
  className: "font-medium text-text-primary",
884
892
  children: n(g.price.pricePerSqft)
885
893
  })]
@@ -887,84 +895,84 @@ var xt = () => {
887
895
  ]
888
896
  })] })]
889
897
  }),
890
- F === "amenities" && /* @__PURE__ */ y("div", { children: g.amenities.length > 0 ? /* @__PURE__ */ y("div", {
898
+ P === "amenities" && /* @__PURE__ */ v("div", { children: g.amenities.length > 0 ? /* @__PURE__ */ v("div", {
891
899
  className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",
892
- children: g.amenities.map((e) => /* @__PURE__ */ b("div", {
900
+ children: g.amenities.map((e) => /* @__PURE__ */ y("div", {
893
901
  className: "flex flex-col items-center gap-2 rounded-lg border border-border-subtle bg-bg-sunken/40 p-4 text-center",
894
- children: [/* @__PURE__ */ y("span", {
902
+ children: [/* @__PURE__ */ v("span", {
895
903
  className: "flex h-10 w-10 items-center justify-center rounded-full bg-status-success-bg-subtle text-status-success-text",
896
- children: /* @__PURE__ */ y(vt(e.name), { className: "h-5 w-5" })
897
- }), /* @__PURE__ */ y("span", {
904
+ children: /* @__PURE__ */ v(bt(e.name), { className: "h-5 w-5" })
905
+ }), /* @__PURE__ */ v("span", {
898
906
  className: "text-sm font-medium text-text-primary",
899
907
  children: e.name
900
908
  })]
901
909
  }, e.id))
902
- }) : /* @__PURE__ */ y(o, {
910
+ }) : /* @__PURE__ */ v(o, {
903
911
  illustration: "empty-generic",
904
912
  title: "No amenities listed",
905
913
  description: "This property has no amenities recorded yet.",
906
914
  className: "border-0 bg-transparent p-6"
907
915
  }) }),
908
- F === "location" && /* @__PURE__ */ b("div", {
916
+ P === "location" && /* @__PURE__ */ y("div", {
909
917
  className: "space-y-4",
910
918
  children: [
911
- /* @__PURE__ */ b("div", {
919
+ /* @__PURE__ */ y("div", {
912
920
  className: "relative h-56 overflow-hidden rounded-xl border border-border-subtle bg-bg-sunken",
913
921
  children: [
914
- /* @__PURE__ */ y("div", {
922
+ /* @__PURE__ */ v("div", {
915
923
  className: "absolute inset-0 opacity-60",
916
924
  style: {
917
925
  backgroundImage: "linear-gradient(var(--color-border-seam, rgba(120,120,120,.18)) 1px, transparent 1px), linear-gradient(90deg, var(--color-border-seam, rgba(120,120,120,.18)) 1px, transparent 1px)",
918
926
  backgroundSize: "32px 32px"
919
927
  }
920
928
  }),
921
- /* @__PURE__ */ b("div", {
929
+ /* @__PURE__ */ y("div", {
922
930
  className: "absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col items-center gap-1 text-center",
923
931
  children: [
924
- /* @__PURE__ */ y("span", {
932
+ /* @__PURE__ */ v("span", {
925
933
  className: "flex h-11 w-11 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text shadow-pop",
926
- children: /* @__PURE__ */ y(Ge, { className: "h-5 w-5" })
934
+ children: /* @__PURE__ */ v(Ge, { className: "h-5 w-5" })
927
935
  }),
928
- /* @__PURE__ */ y("span", {
936
+ /* @__PURE__ */ v("span", {
929
937
  className: "mt-1 rounded-md bg-bg-surface/90 px-2 py-0.5 text-sm font-semibold text-text-primary shadow-elevation-1 backdrop-blur-sm",
930
938
  children: g.location.neighborhood || g.location.city
931
939
  }),
932
- /* @__PURE__ */ y("span", {
940
+ /* @__PURE__ */ v("span", {
933
941
  className: "text-xs text-text-secondary",
934
942
  children: [g.location.city, g.location.state].filter(Boolean).join(", ")
935
943
  })
936
944
  ]
937
945
  }),
938
- g.location.coordinates?.latitude != null && g.location.coordinates?.longitude != null && /* @__PURE__ */ b("a", {
946
+ g.location.coordinates?.latitude != null && g.location.coordinates?.longitude != null && /* @__PURE__ */ y("a", {
939
947
  href: `https://www.google.com/maps/search/?api=1&query=${g.location.coordinates.latitude},${g.location.coordinates.longitude}`,
940
948
  target: "_blank",
941
949
  rel: "noreferrer",
942
950
  className: "absolute bottom-3 right-3 inline-flex items-center gap-1.5 rounded-md bg-bg-surface/90 px-2.5 py-1.5 text-xs font-medium text-text-primary shadow-elevation-1 backdrop-blur-sm transition-colors hover:bg-bg-surface",
943
- children: [/* @__PURE__ */ y(qe, { className: "h-3.5 w-3.5" }), "Open in Maps"]
951
+ children: [/* @__PURE__ */ v(qe, { className: "h-3.5 w-3.5" }), "Open in Maps"]
944
952
  })
945
953
  ]
946
954
  }),
947
- g.location.address && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("div", {
955
+ g.location.address && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
948
956
  className: "mb-1 text-xs text-text-secondary",
949
957
  children: "Full Address"
950
- }), /* @__PURE__ */ y("div", {
958
+ }), /* @__PURE__ */ v("div", {
951
959
  className: "text-sm font-medium text-text-primary",
952
960
  children: g.location.address
953
961
  })] }),
954
- /* @__PURE__ */ b("div", {
962
+ /* @__PURE__ */ y("div", {
955
963
  className: "grid grid-cols-1 gap-4 text-sm sm:grid-cols-3",
956
964
  children: [
957
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("div", {
965
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
958
966
  className: "mb-1 text-xs text-text-secondary",
959
967
  children: "Neighborhood"
960
- }), /* @__PURE__ */ y("div", {
968
+ }), /* @__PURE__ */ v("div", {
961
969
  className: "font-medium text-text-primary",
962
970
  children: g.location.neighborhood || "—"
963
971
  })] }),
964
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("div", {
972
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
965
973
  className: "mb-1 text-xs text-text-secondary",
966
974
  children: "City, State"
967
- }), /* @__PURE__ */ b("div", {
975
+ }), /* @__PURE__ */ y("div", {
968
976
  className: "font-medium text-text-primary",
969
977
  children: [
970
978
  g.location.city,
@@ -972,23 +980,23 @@ var xt = () => {
972
980
  g.location.state
973
981
  ]
974
982
  })] }),
975
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("div", {
983
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
976
984
  className: "mb-1 text-xs text-text-secondary",
977
985
  children: "PIN / ZIP"
978
- }), /* @__PURE__ */ y("div", {
986
+ }), /* @__PURE__ */ v("div", {
979
987
  className: "font-medium text-text-primary",
980
988
  children: g.location.pincode || "—"
981
989
  })] })
982
990
  ]
983
991
  }),
984
- g.location.landmarks.length > 0 && /* @__PURE__ */ b("div", {
992
+ g.location.landmarks.length > 0 && /* @__PURE__ */ y("div", {
985
993
  className: "border-t border-border-subtle pt-4",
986
- children: [/* @__PURE__ */ y("h4", {
994
+ children: [/* @__PURE__ */ v("h4", {
987
995
  className: "mb-2 text-xs font-medium text-text-secondary",
988
996
  children: "Nearby Landmarks"
989
- }), /* @__PURE__ */ y("div", {
997
+ }), /* @__PURE__ */ v("div", {
990
998
  className: "flex flex-wrap gap-2",
991
- children: g.location.landmarks.map((e) => /* @__PURE__ */ y("span", {
999
+ children: g.location.landmarks.map((e) => /* @__PURE__ */ v("span", {
992
1000
  className: "rounded-full bg-bg-sunken px-3 py-1 text-xs text-text-primary",
993
1001
  children: e
994
1002
  }, e))
@@ -999,235 +1007,237 @@ var xt = () => {
999
1007
  ]
1000
1008
  })]
1001
1009
  })]
1002
- }), /* @__PURE__ */ b("div", {
1010
+ }), /* @__PURE__ */ y("div", {
1003
1011
  className: "space-y-6",
1004
1012
  children: [
1005
- /* @__PURE__ */ b("div", {
1013
+ /* @__PURE__ */ y("div", {
1006
1014
  id: "property-actions",
1007
1015
  className: "scroll-mt-6 rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-elevation-1 lg:sticky lg:top-6",
1008
1016
  children: [
1009
- /* @__PURE__ */ b("div", {
1017
+ /* @__PURE__ */ y("div", {
1010
1018
  className: "flex flex-wrap items-baseline gap-x-2 gap-y-1",
1011
- children: [/* @__PURE__ */ y("span", {
1019
+ children: [/* @__PURE__ */ v("span", {
1012
1020
  className: "text-3xl font-bold text-text-primary",
1013
- children: Ln(g.price)
1014
- }), g.price.negotiable && /* @__PURE__ */ y("span", {
1021
+ children: Bn(g.price)
1022
+ }), g.price.negotiable && /* @__PURE__ */ v("span", {
1015
1023
  className: "text-sm text-text-secondary",
1016
1024
  children: "· Negotiable"
1017
1025
  })]
1018
1026
  }),
1019
- g.price.pricePerSqft && /* @__PURE__ */ b("p", {
1027
+ g.price.pricePerSqft && /* @__PURE__ */ y("p", {
1020
1028
  className: "mt-1 text-sm text-text-secondary",
1021
1029
  children: [n(g.price.pricePerSqft, g.price.currency), "/sqft"]
1022
1030
  }),
1023
- /* @__PURE__ */ b("div", {
1031
+ /* @__PURE__ */ y("div", {
1024
1032
  className: "mt-4 space-y-2",
1025
1033
  children: [
1026
- /* @__PURE__ */ b(x, {
1034
+ /* @__PURE__ */ y(b, {
1027
1035
  type: "button",
1028
1036
  className: "w-full justify-center",
1029
- onClick: () => L(!0),
1030
- children: [/* @__PURE__ */ y(Be, { className: "mr-2 h-4 w-4" }), "Make Offer"]
1037
+ onClick: () => {
1038
+ U(_t()), I(!0);
1039
+ },
1040
+ children: [/* @__PURE__ */ v(Be, { className: "mr-2 h-4 w-4" }), "Make Offer"]
1031
1041
  }),
1032
- g.status === "for_rent" && /* @__PURE__ */ b(at, { children: [/* @__PURE__ */ b(x, {
1042
+ g.status === "for_rent" && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y(b, {
1033
1043
  type: "button",
1034
1044
  className: "w-full justify-center",
1035
- onClick: () => B(!0),
1045
+ onClick: () => z(!0),
1036
1046
  disabled: !J,
1037
- children: [/* @__PURE__ */ y(We, { className: "mr-2 h-4 w-4" }), "Apply to Rent"]
1038
- }), !J && /* @__PURE__ */ y("p", {
1047
+ children: [/* @__PURE__ */ v(We, { className: "mr-2 h-4 w-4" }), "Apply to Rent"]
1048
+ }), !J && /* @__PURE__ */ v("p", {
1039
1049
  className: "px-1 text-xs text-text-secondary",
1040
1050
  children: "No rental unit is listed for this property yet — applications open once a unit is added."
1041
1051
  })] }),
1042
- /* @__PURE__ */ b("div", {
1052
+ /* @__PURE__ */ y("div", {
1043
1053
  className: "grid grid-cols-2 gap-2",
1044
- children: [/* @__PURE__ */ b(x, {
1054
+ children: [/* @__PURE__ */ y(b, {
1045
1055
  type: "button",
1046
1056
  variant: "outline",
1047
1057
  className: "w-full justify-center",
1048
- onClick: () => I(!0),
1049
- children: [/* @__PURE__ */ y(Fe, { className: "mr-2 h-4 w-4" }), "Viewing"]
1050
- }), /* @__PURE__ */ b(x, {
1058
+ onClick: () => F(!0),
1059
+ children: [/* @__PURE__ */ v(Fe, { className: "mr-2 h-4 w-4" }), "Viewing"]
1060
+ }), /* @__PURE__ */ y(b, {
1051
1061
  type: "button",
1052
1062
  variant: "outline",
1053
1063
  className: "w-full justify-center",
1054
- onClick: () => Kt(!0),
1055
- children: [/* @__PURE__ */ y(Ke, { className: "mr-2 h-4 w-4" }), "Contact"]
1064
+ onClick: () => Jt(!0),
1065
+ children: [/* @__PURE__ */ v(Ke, { className: "mr-2 h-4 w-4" }), "Contact"]
1056
1066
  })]
1057
1067
  }),
1058
- /* @__PURE__ */ b(x, {
1068
+ /* @__PURE__ */ y(b, {
1059
1069
  type: "button",
1060
1070
  variant: "outline",
1061
1071
  className: "w-full justify-center",
1062
- onClick: Vn,
1063
- disabled: xt || Ct,
1064
- children: [/* @__PURE__ */ y(Ue, { className: e("mr-2 h-4 w-4", N && "fill-status-error-text text-status-error-text") }), N ? "Saved to Shortlist" : "Save to Shortlist"]
1072
+ onClick: Wn,
1073
+ disabled: Ct || Tt,
1074
+ children: [/* @__PURE__ */ v(Ue, { className: e("mr-2 h-4 w-4", M && "fill-status-error-text text-status-error-text") }), M ? "Saved to Shortlist" : "Save to Shortlist"]
1065
1075
  })
1066
1076
  ]
1067
1077
  }),
1068
- g.verificationStatus === "verified" && /* @__PURE__ */ b("div", {
1078
+ g.verificationStatus === "verified" && /* @__PURE__ */ y("div", {
1069
1079
  className: "mt-4 flex items-center gap-2 border-t border-border-subtle pt-4 text-sm font-medium text-status-success-text",
1070
- children: [/* @__PURE__ */ y(Ae, { className: "h-4 w-4" }), "Verified listing"]
1080
+ children: [/* @__PURE__ */ v(Ae, { className: "h-4 w-4" }), "Verified listing"]
1071
1081
  })
1072
1082
  ]
1073
1083
  }),
1074
- /* @__PURE__ */ b("div", {
1084
+ /* @__PURE__ */ y("div", {
1075
1085
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
1076
1086
  children: [
1077
- /* @__PURE__ */ b("div", {
1087
+ /* @__PURE__ */ y("div", {
1078
1088
  className: "mb-4 flex items-center gap-2",
1079
- children: [/* @__PURE__ */ y(Pe, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ y("h3", {
1089
+ children: [/* @__PURE__ */ v(Pe, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
1080
1090
  className: "text-base font-semibold text-text-primary",
1081
1091
  children: "Investment Analysis"
1082
1092
  })]
1083
1093
  }),
1084
- /* @__PURE__ */ b("div", {
1094
+ /* @__PURE__ */ y("div", {
1085
1095
  className: "space-y-3",
1086
1096
  children: [
1087
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("label", {
1097
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("label", {
1088
1098
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
1089
1099
  children: [
1090
1100
  "Expected monthly rent (",
1091
1101
  g.price.currency,
1092
1102
  ")"
1093
1103
  ]
1094
- }), /* @__PURE__ */ y("input", {
1104
+ }), /* @__PURE__ */ v("input", {
1095
1105
  type: "number",
1096
1106
  min: 0,
1097
- value: rn,
1098
- onChange: (e) => an(e.target.value),
1099
- placeholder: String(Xn),
1100
- className: j
1107
+ value: on,
1108
+ onChange: (e) => sn(e.target.value),
1109
+ placeholder: String($n),
1110
+ className: A
1101
1111
  })] }),
1102
- /* @__PURE__ */ b("div", {
1112
+ /* @__PURE__ */ y("div", {
1103
1113
  className: "grid grid-cols-2 gap-3",
1104
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("label", {
1114
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("label", {
1105
1115
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
1106
1116
  children: [
1107
1117
  "Monthly costs (",
1108
1118
  g.price.currency,
1109
1119
  ")"
1110
1120
  ]
1111
- }), /* @__PURE__ */ y("input", {
1121
+ }), /* @__PURE__ */ v("input", {
1112
1122
  type: "number",
1113
1123
  min: 0,
1114
- value: on,
1115
- onChange: (e) => sn(e.target.value),
1116
- placeholder: String(Zn),
1117
- className: j
1118
- })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1124
+ value: cn,
1125
+ onChange: (e) => ln(e.target.value),
1126
+ placeholder: String(er),
1127
+ className: A
1128
+ })] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1119
1129
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
1120
1130
  children: "Appreciation (%/yr)"
1121
- }), /* @__PURE__ */ y("input", {
1131
+ }), /* @__PURE__ */ v("input", {
1122
1132
  type: "number",
1123
1133
  min: 0,
1124
1134
  step: .5,
1125
- value: cn,
1126
- onChange: (e) => ln(e.target.value),
1127
- className: j
1135
+ value: un,
1136
+ onChange: (e) => dn(e.target.value),
1137
+ className: A
1128
1138
  })] })]
1129
1139
  }),
1130
- /* @__PURE__ */ y("p", {
1140
+ /* @__PURE__ */ v("p", {
1131
1141
  className: "text-[11px] text-text-secondary",
1132
1142
  children: "Costs cover maintenance, tax, insurance, and management."
1133
1143
  })
1134
1144
  ]
1135
1145
  }),
1136
- /* @__PURE__ */ b("div", {
1146
+ /* @__PURE__ */ y("div", {
1137
1147
  className: "mt-4 space-y-3 border-t border-border-subtle pt-4",
1138
1148
  children: [
1139
- /* @__PURE__ */ b("div", {
1149
+ /* @__PURE__ */ y("div", {
1140
1150
  className: "flex items-center justify-between gap-3",
1141
- children: [/* @__PURE__ */ b("label", {
1151
+ children: [/* @__PURE__ */ y("label", {
1142
1152
  className: "flex items-center gap-2 text-xs font-medium text-text-secondary",
1143
- children: [/* @__PURE__ */ y("input", {
1153
+ children: [/* @__PURE__ */ v("input", {
1144
1154
  type: "checkbox",
1145
- checked: V,
1146
- onChange: (e) => un(e.target.checked),
1155
+ checked: B,
1156
+ onChange: (e) => fn(e.target.checked),
1147
1157
  className: "h-3.5 w-3.5 rounded border-border-subtle"
1148
1158
  }), "Include stamp duty & registration"]
1149
- }), V && /* @__PURE__ */ y("input", {
1159
+ }), B && /* @__PURE__ */ v("input", {
1150
1160
  type: "number",
1151
1161
  min: 0,
1152
1162
  step: .5,
1153
- value: dn,
1154
- onChange: (e) => fn(e.target.value),
1163
+ value: pn,
1164
+ onChange: (e) => mn(e.target.value),
1155
1165
  "aria-label": "Stamp duty rate percent",
1156
1166
  className: "h-7 w-16 rounded-md border border-border-subtle bg-bg-surface px-2 text-right text-xs text-text-primary"
1157
1167
  })]
1158
1168
  }),
1159
- /* @__PURE__ */ y("div", {
1169
+ /* @__PURE__ */ v("div", {
1160
1170
  className: "flex items-center justify-between gap-3",
1161
- children: /* @__PURE__ */ b("label", {
1171
+ children: /* @__PURE__ */ y("label", {
1162
1172
  className: "flex items-center gap-2 text-xs font-medium text-text-secondary",
1163
- children: [/* @__PURE__ */ y("input", {
1173
+ children: [/* @__PURE__ */ v("input", {
1164
1174
  type: "checkbox",
1165
- checked: H,
1166
- onChange: (e) => pn(e.target.checked),
1175
+ checked: V,
1176
+ onChange: (e) => hn(e.target.checked),
1167
1177
  className: "h-3.5 w-3.5 rounded border-border-subtle"
1168
1178
  }), "Include financing (loan)"]
1169
1179
  })
1170
1180
  }),
1171
- H && /* @__PURE__ */ b("div", {
1181
+ V && /* @__PURE__ */ y("div", {
1172
1182
  className: "grid grid-cols-3 gap-2",
1173
1183
  children: [
1174
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1184
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1175
1185
  className: "mb-1 block text-[10px] text-text-secondary",
1176
1186
  children: "Down payment %"
1177
- }), /* @__PURE__ */ y("input", {
1187
+ }), /* @__PURE__ */ v("input", {
1178
1188
  type: "number",
1179
1189
  min: 0,
1180
1190
  max: 100,
1181
- value: mn,
1182
- onChange: (e) => hn(e.target.value),
1183
- className: j
1191
+ value: gn,
1192
+ onChange: (e) => _n(e.target.value),
1193
+ className: A
1184
1194
  })] }),
1185
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1195
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1186
1196
  className: "mb-1 block text-[10px] text-text-secondary",
1187
1197
  children: "Loan rate %"
1188
- }), /* @__PURE__ */ y("input", {
1198
+ }), /* @__PURE__ */ v("input", {
1189
1199
  type: "number",
1190
1200
  min: 0,
1191
1201
  step: .1,
1192
- value: gn,
1193
- onChange: (e) => _n(e.target.value),
1194
- className: j
1202
+ value: vn,
1203
+ onChange: (e) => yn(e.target.value),
1204
+ className: A
1195
1205
  })] }),
1196
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1206
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1197
1207
  className: "mb-1 block text-[10px] text-text-secondary",
1198
1208
  children: "Tenure (yrs)"
1199
- }), /* @__PURE__ */ y("input", {
1209
+ }), /* @__PURE__ */ v("input", {
1200
1210
  type: "number",
1201
1211
  min: 1,
1202
- value: vn,
1203
- onChange: (e) => yn(e.target.value),
1204
- className: j
1212
+ value: bn,
1213
+ onChange: (e) => xn(e.target.value),
1214
+ className: A
1205
1215
  })] })
1206
1216
  ]
1207
1217
  }),
1208
- (V || H) && /* @__PURE__ */ b("div", {
1218
+ (B || V) && /* @__PURE__ */ y("div", {
1209
1219
  className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-[11px] text-text-secondary",
1210
1220
  children: [
1211
- V && /* @__PURE__ */ b("span", { children: [
1221
+ B && /* @__PURE__ */ y("span", { children: [
1212
1222
  "Stamp duty:",
1213
1223
  " ",
1214
- /* @__PURE__ */ y("span", {
1224
+ /* @__PURE__ */ v("span", {
1215
1225
  className: "font-semibold text-text-primary",
1216
- children: t(cr, g.price.currency)
1226
+ children: t(X, g.price.currency)
1217
1227
  })
1218
1228
  ] }),
1219
- H && /* @__PURE__ */ b("span", { children: [
1229
+ V && /* @__PURE__ */ y("span", { children: [
1220
1230
  "Monthly EMI:",
1221
1231
  " ",
1222
- /* @__PURE__ */ y("span", {
1232
+ /* @__PURE__ */ v("span", {
1223
1233
  className: "font-semibold text-text-primary",
1224
- children: t(Q, g.price.currency)
1234
+ children: t(gr, g.price.currency)
1225
1235
  })
1226
1236
  ] }),
1227
- /* @__PURE__ */ b("span", { children: [
1237
+ /* @__PURE__ */ y("span", { children: [
1228
1238
  "Net cash outlay:",
1229
1239
  " ",
1230
- /* @__PURE__ */ y("span", {
1240
+ /* @__PURE__ */ v("span", {
1231
1241
  className: "font-semibold text-text-primary",
1232
1242
  children: t($, g.price.currency)
1233
1243
  })
@@ -1236,61 +1246,61 @@ var xt = () => {
1236
1246
  })
1237
1247
  ]
1238
1248
  }),
1239
- /* @__PURE__ */ b("div", {
1249
+ /* @__PURE__ */ y("div", {
1240
1250
  className: "mt-4 grid grid-cols-3 gap-2 border-t border-border-subtle pt-4",
1241
1251
  children: [
1242
- /* @__PURE__ */ b("div", {
1252
+ /* @__PURE__ */ y("div", {
1243
1253
  className: "rounded-lg border border-status-success-border bg-status-success-bg-subtle p-2.5 text-center",
1244
- children: [/* @__PURE__ */ y("div", {
1254
+ children: [/* @__PURE__ */ v("div", {
1245
1255
  className: "text-[11px] font-medium text-status-success-text",
1246
1256
  children: "Gross Yield"
1247
- }), /* @__PURE__ */ b("div", {
1257
+ }), /* @__PURE__ */ y("div", {
1248
1258
  className: "mt-0.5 text-lg font-bold text-status-success-text",
1249
- children: [$n.toFixed(1), "%"]
1259
+ children: [nr.toFixed(1), "%"]
1250
1260
  })]
1251
1261
  }),
1252
- /* @__PURE__ */ b("div", {
1262
+ /* @__PURE__ */ y("div", {
1253
1263
  className: "rounded-lg border border-border-subtle bg-bg-sunken/40 p-2.5 text-center",
1254
- children: [/* @__PURE__ */ y("div", {
1264
+ children: [/* @__PURE__ */ v("div", {
1255
1265
  className: "text-[11px] font-medium text-text-secondary",
1256
1266
  children: "Net Yield"
1257
- }), /* @__PURE__ */ b("div", {
1267
+ }), /* @__PURE__ */ y("div", {
1258
1268
  className: "mt-0.5 text-lg font-bold text-text-primary",
1259
- children: [tr.toFixed(1), "%"]
1269
+ children: [ir.toFixed(1), "%"]
1260
1270
  })]
1261
1271
  }),
1262
- /* @__PURE__ */ b("div", {
1272
+ /* @__PURE__ */ y("div", {
1263
1273
  className: "rounded-lg border border-border-subtle bg-bg-sunken/40 p-2.5 text-center",
1264
- children: [/* @__PURE__ */ y("div", {
1274
+ children: [/* @__PURE__ */ v("div", {
1265
1275
  className: "text-[11px] font-medium text-text-secondary",
1266
- children: H ? "Cash-on-Cash" : "5-yr ROI"
1267
- }), /* @__PURE__ */ b("div", {
1276
+ children: V ? "Cash-on-Cash" : "5-yr ROI"
1277
+ }), /* @__PURE__ */ y("div", {
1268
1278
  className: "mt-0.5 text-lg font-bold text-text-primary",
1269
- children: [H ? gr.toFixed(1) : or.toFixed(0), "%"]
1279
+ children: [V ? yr.toFixed(1) : lr.toFixed(0), "%"]
1270
1280
  })]
1271
1281
  })
1272
1282
  ]
1273
1283
  }),
1274
- /* @__PURE__ */ b("div", {
1284
+ /* @__PURE__ */ y("div", {
1275
1285
  className: "mt-4",
1276
1286
  children: [
1277
- /* @__PURE__ */ b("div", {
1287
+ /* @__PURE__ */ y("div", {
1278
1288
  className: "mb-1 flex items-center justify-between",
1279
- children: [/* @__PURE__ */ y("span", {
1289
+ children: [/* @__PURE__ */ v("span", {
1280
1290
  className: "text-xs font-medium text-text-secondary",
1281
1291
  children: "Projected Value Growth"
1282
- }), /* @__PURE__ */ y("span", {
1292
+ }), /* @__PURE__ */ v("span", {
1283
1293
  className: "text-xs font-semibold text-text-primary",
1284
- children: t(ir, g.price.currency)
1294
+ children: t(sr, g.price.currency)
1285
1295
  })]
1286
1296
  }),
1287
- /* @__PURE__ */ y("div", {
1297
+ /* @__PURE__ */ v("div", {
1288
1298
  className: "h-32",
1289
- children: /* @__PURE__ */ y(_e, {
1299
+ children: /* @__PURE__ */ v(_e, {
1290
1300
  width: "100%",
1291
1301
  height: "100%",
1292
- children: /* @__PURE__ */ b(xe, {
1293
- data: rr,
1302
+ children: /* @__PURE__ */ y(xe, {
1303
+ data: or,
1294
1304
  margin: {
1295
1305
  top: 4,
1296
1306
  right: 4,
@@ -1298,37 +1308,37 @@ var xt = () => {
1298
1308
  left: 0
1299
1309
  },
1300
1310
  children: [
1301
- /* @__PURE__ */ y("defs", { children: /* @__PURE__ */ b("linearGradient", {
1311
+ /* @__PURE__ */ v("defs", { children: /* @__PURE__ */ y("linearGradient", {
1302
1312
  id: "hvValueGrad",
1303
1313
  x1: "0",
1304
1314
  y1: "0",
1305
1315
  x2: "0",
1306
1316
  y2: "1",
1307
- children: [/* @__PURE__ */ y("stop", {
1317
+ children: [/* @__PURE__ */ v("stop", {
1308
1318
  offset: "5%",
1309
1319
  stopColor: "var(--color-chart-2)",
1310
1320
  stopOpacity: .35
1311
- }), /* @__PURE__ */ y("stop", {
1321
+ }), /* @__PURE__ */ v("stop", {
1312
1322
  offset: "95%",
1313
1323
  stopColor: "var(--color-chart-2)",
1314
1324
  stopOpacity: 0
1315
1325
  })]
1316
1326
  }) }),
1317
- /* @__PURE__ */ y(ye, {
1327
+ /* @__PURE__ */ v(ye, {
1318
1328
  dataKey: "label",
1319
1329
  tick: { fontSize: 10 },
1320
1330
  axisLine: !1,
1321
1331
  tickLine: !1
1322
1332
  }),
1323
- /* @__PURE__ */ y(be, {
1333
+ /* @__PURE__ */ v(be, {
1324
1334
  hide: !0,
1325
1335
  domain: ["dataMin", "dataMax"]
1326
1336
  }),
1327
- /* @__PURE__ */ y(ge, {
1337
+ /* @__PURE__ */ v(ge, {
1328
1338
  formatter: (e) => [t(e, g.price.currency), "Value"],
1329
1339
  labelClassName: "text-text-primary"
1330
1340
  }),
1331
- /* @__PURE__ */ y(ve, {
1341
+ /* @__PURE__ */ v(ve, {
1332
1342
  type: "monotone",
1333
1343
  dataKey: "value",
1334
1344
  stroke: "var(--color-chart-2)",
@@ -1339,22 +1349,22 @@ var xt = () => {
1339
1349
  })
1340
1350
  })
1341
1351
  }),
1342
- /* @__PURE__ */ y("p", {
1352
+ /* @__PURE__ */ v("p", {
1343
1353
  className: "mt-1 text-[11px] text-text-secondary",
1344
1354
  children: "Projection based on your inputs and market appreciation. Consult a financial advisor before investing."
1345
1355
  })
1346
1356
  ]
1347
1357
  }),
1348
- /* @__PURE__ */ b("div", {
1358
+ /* @__PURE__ */ y("div", {
1349
1359
  className: "mt-4 flex gap-2",
1350
- children: [/* @__PURE__ */ b(x, {
1360
+ children: [/* @__PURE__ */ y(b, {
1351
1361
  type: "button",
1352
1362
  variant: "outline",
1353
1363
  className: "flex-1 justify-center",
1354
- onClick: Jn,
1355
- disabled: Pt,
1356
- children: [/* @__PURE__ */ y($e, { className: "mr-2 h-4 w-4" }), Pt ? "Adding…" : "Track as Investment"]
1357
- }), /* @__PURE__ */ y(x, {
1364
+ onClick: Zn,
1365
+ disabled: It,
1366
+ children: [/* @__PURE__ */ v($e, { className: "mr-2 h-4 w-4" }), It ? "Adding…" : "Track as Investment"]
1367
+ }), /* @__PURE__ */ v(b, {
1358
1368
  type: "button",
1359
1369
  variant: "ghost",
1360
1370
  className: "justify-center",
@@ -1364,148 +1374,148 @@ var xt = () => {
1364
1374
  `Generated: ${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}`,
1365
1375
  "",
1366
1376
  `Listing price,${Y}`,
1367
- `Expected monthly rent,${Xn}`,
1368
- `Monthly holding costs,${Zn}`,
1369
- `Gross rental yield,${$n.toFixed(2)}%`,
1370
- `Net rental yield,${tr.toFixed(2)}%`,
1371
- `Appreciation rate (input),${(nr * 100).toFixed(2)}%`,
1372
- `Projected value (5yr),${ir}`,
1373
- `Projected ROI (5yr, unleveraged),${or.toFixed(2)}%`,
1377
+ `Expected monthly rent,${$n}`,
1378
+ `Monthly holding costs,${er}`,
1379
+ `Gross rental yield,${nr.toFixed(2)}%`,
1380
+ `Net rental yield,${ir.toFixed(2)}%`,
1381
+ `Appreciation rate (input),${(ar * 100).toFixed(2)}%`,
1382
+ `Projected value (5yr),${sr}`,
1383
+ `Projected ROI (5yr, unleveraged),${lr.toFixed(2)}%`,
1374
1384
  "",
1375
- `Stamp duty & registration included,${V ? "Yes" : "No"}`,
1376
- `Stamp duty rate,${sr}%`,
1377
- `Stamp duty & registration cost,${cr.toFixed(0)}`,
1385
+ `Stamp duty & registration included,${B ? "Yes" : "No"}`,
1386
+ `Stamp duty rate,${ur}%`,
1387
+ `Stamp duty & registration cost,${X.toFixed(0)}`,
1378
1388
  "",
1379
- `Financing included,${H ? "Yes" : "No"}`,
1380
- ...H ? [
1381
- `Down payment (${lr}%),${fr.toFixed(0)}`,
1382
- `Loan amount,${X.toFixed(0)}`,
1383
- `Loan rate,${(ur * 100).toFixed(2)}%`,
1384
- `Loan tenure (years),${dr}`,
1385
- `Monthly EMI,${Q.toFixed(0)}`,
1386
- `Annual debt service,${mr.toFixed(0)}`
1389
+ `Financing included,${V ? "Yes" : "No"}`,
1390
+ ...V ? [
1391
+ `Down payment (${dr}%),${mr.toFixed(0)}`,
1392
+ `Loan amount,${Z.toFixed(0)}`,
1393
+ `Loan rate,${(fr * 100).toFixed(2)}%`,
1394
+ `Loan tenure (years),${pr}`,
1395
+ `Monthly EMI,${gr.toFixed(0)}`,
1396
+ `Annual debt service,${_r.toFixed(0)}`
1387
1397
  ] : [],
1388
1398
  `Net cash outlay,${$.toFixed(0)}`,
1389
- `Cash-on-cash return,${gr.toFixed(2)}%`,
1399
+ `Cash-on-cash return,${yr.toFixed(2)}%`,
1390
1400
  "",
1391
1401
  "This is not financial advice. Consult a licensed financial advisor before investing."
1392
1402
  ], t = new Blob([e.join("\n")], { type: "text/csv;charset=utf-8;" }), n = URL.createObjectURL(t), r = document.createElement("a");
1393
1403
  r.href = n, r.download = `${g.id}-investment-analysis.csv`, r.click(), URL.revokeObjectURL(n);
1394
1404
  },
1395
1405
  "aria-label": "Download investment analysis report",
1396
- children: /* @__PURE__ */ y(Ve, { className: "h-4 w-4" })
1406
+ children: /* @__PURE__ */ v(Ve, { className: "h-4 w-4" })
1397
1407
  })]
1398
1408
  })
1399
1409
  ]
1400
1410
  }),
1401
- /* @__PURE__ */ b("div", {
1411
+ /* @__PURE__ */ y("div", {
1402
1412
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
1403
1413
  children: [
1404
- /* @__PURE__ */ y("h3", {
1414
+ /* @__PURE__ */ v("h3", {
1405
1415
  className: "mb-4 text-base font-semibold text-text-primary",
1406
1416
  children: "At a Glance"
1407
1417
  }),
1408
- /* @__PURE__ */ b("div", {
1418
+ /* @__PURE__ */ y("div", {
1409
1419
  className: "space-y-3 text-sm",
1410
1420
  children: [
1411
- /* @__PURE__ */ b("div", {
1421
+ /* @__PURE__ */ y("div", {
1412
1422
  className: "flex items-center justify-between",
1413
- children: [/* @__PURE__ */ y("span", {
1423
+ children: [/* @__PURE__ */ v("span", {
1414
1424
  className: "text-text-secondary",
1415
1425
  children: "Status"
1416
- }), /* @__PURE__ */ y(a, {
1426
+ }), /* @__PURE__ */ v(a, {
1417
1427
  label: g.status.replace("_", " "),
1418
- variant: lt[g.status] ?? "default"
1428
+ variant: ut[g.status] ?? "default"
1419
1429
  })]
1420
1430
  }),
1421
- /* @__PURE__ */ b("div", {
1431
+ /* @__PURE__ */ y("div", {
1422
1432
  className: "flex items-center justify-between",
1423
- children: [/* @__PURE__ */ y("span", {
1433
+ children: [/* @__PURE__ */ v("span", {
1424
1434
  className: "text-text-secondary",
1425
1435
  children: "Verification"
1426
- }), /* @__PURE__ */ y("span", {
1436
+ }), /* @__PURE__ */ v("span", {
1427
1437
  className: "font-medium capitalize text-text-primary",
1428
1438
  children: g.verificationStatus
1429
1439
  })]
1430
1440
  }),
1431
- g.reraVerificationStatus !== "not_applicable" && /* @__PURE__ */ b("div", {
1441
+ g.reraVerificationStatus !== "not_applicable" && /* @__PURE__ */ y("div", {
1432
1442
  className: "flex items-center justify-between",
1433
- children: [/* @__PURE__ */ y("span", {
1443
+ children: [/* @__PURE__ */ v("span", {
1434
1444
  className: "text-text-secondary",
1435
1445
  children: "RERA status"
1436
- }), /* @__PURE__ */ b("span", {
1446
+ }), /* @__PURE__ */ y("span", {
1437
1447
  className: "flex items-center gap-1.5 font-medium capitalize text-text-primary",
1438
- children: [g.reraVerificationStatus === "verified" && /* @__PURE__ */ y(Ae, { className: "h-4 w-4 text-status-success-text" }), g.reraVerificationStatus.replace("_", " ")]
1448
+ children: [g.reraVerificationStatus === "verified" && /* @__PURE__ */ v(Ae, { className: "h-4 w-4 text-status-success-text" }), g.reraVerificationStatus.replace("_", " ")]
1439
1449
  })]
1440
1450
  }),
1441
- g.reraRegistrationNo && /* @__PURE__ */ b("div", {
1451
+ g.reraRegistrationNo && /* @__PURE__ */ y("div", {
1442
1452
  className: "flex items-center justify-between",
1443
- children: [/* @__PURE__ */ y("span", {
1453
+ children: [/* @__PURE__ */ v("span", {
1444
1454
  className: "text-text-secondary",
1445
1455
  children: "RERA reg. no."
1446
- }), /* @__PURE__ */ y("span", {
1456
+ }), /* @__PURE__ */ v("span", {
1447
1457
  className: "font-medium text-text-primary",
1448
1458
  children: g.reraRegistrationNo
1449
1459
  })]
1450
1460
  }),
1451
- /* @__PURE__ */ b("div", {
1461
+ /* @__PURE__ */ y("div", {
1452
1462
  className: "flex items-center justify-between",
1453
- children: [/* @__PURE__ */ y("span", {
1463
+ children: [/* @__PURE__ */ v("span", {
1454
1464
  className: "text-text-secondary",
1455
1465
  children: "Listed"
1456
- }), /* @__PURE__ */ y("span", {
1466
+ }), /* @__PURE__ */ v("span", {
1457
1467
  className: "font-medium text-text-primary",
1458
1468
  children: r(String(g.createdAt))
1459
1469
  })]
1460
1470
  })
1461
1471
  ]
1462
1472
  }),
1463
- g.reraVerificationStatus === "pending" && /* @__PURE__ */ b("div", {
1473
+ g.reraVerificationStatus === "pending" && /* @__PURE__ */ y("div", {
1464
1474
  className: "mt-4 flex gap-2 border-t border-border-subtle pt-4",
1465
- children: [/* @__PURE__ */ y(x, {
1475
+ children: [/* @__PURE__ */ v(b, {
1466
1476
  type: "button",
1467
1477
  variant: "outline",
1468
1478
  className: "flex-1 justify-center",
1469
- disabled: It,
1470
- onClick: () => Yn("verified"),
1479
+ disabled: Rt,
1480
+ onClick: () => Qn("verified"),
1471
1481
  children: "Verify RERA"
1472
- }), /* @__PURE__ */ y(x, {
1482
+ }), /* @__PURE__ */ v(b, {
1473
1483
  type: "button",
1474
1484
  variant: "ghost",
1475
1485
  className: "flex-1 justify-center",
1476
- disabled: It,
1477
- onClick: () => Yn("rejected"),
1486
+ disabled: Rt,
1487
+ onClick: () => Qn("rejected"),
1478
1488
  children: "Reject"
1479
1489
  })]
1480
1490
  })
1481
1491
  ]
1482
1492
  }),
1483
- Lt.length > 0 && /* @__PURE__ */ b("div", {
1493
+ zt.length > 0 && /* @__PURE__ */ y("div", {
1484
1494
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
1485
- children: [/* @__PURE__ */ y("h3", {
1495
+ children: [/* @__PURE__ */ v("h3", {
1486
1496
  className: "mb-4 text-base font-semibold text-text-primary",
1487
1497
  children: "Similar Properties"
1488
- }), /* @__PURE__ */ y("div", {
1498
+ }), /* @__PURE__ */ v("div", {
1489
1499
  className: "space-y-3",
1490
- children: Lt.map((e) => /* @__PURE__ */ b("button", {
1500
+ children: zt.map((e) => /* @__PURE__ */ y("button", {
1491
1501
  onClick: () => m(`../properties/${e.id}`),
1492
1502
  className: "flex w-full items-start gap-3 rounded-lg border border-border-subtle p-3 text-left transition-colors hover:bg-bg-sunken/50",
1493
- children: [e.images[0] && /* @__PURE__ */ y("img", {
1503
+ children: [e.images[0] && /* @__PURE__ */ v("img", {
1494
1504
  src: e.images[0].url,
1495
1505
  alt: e.title,
1496
1506
  className: "h-14 w-14 rounded object-cover"
1497
- }), /* @__PURE__ */ b("div", {
1507
+ }), /* @__PURE__ */ y("div", {
1498
1508
  className: "min-w-0 flex-1",
1499
1509
  children: [
1500
- /* @__PURE__ */ y("div", {
1510
+ /* @__PURE__ */ v("div", {
1501
1511
  className: "truncate text-sm font-medium text-text-primary",
1502
1512
  children: e.title
1503
1513
  }),
1504
- /* @__PURE__ */ y("div", {
1514
+ /* @__PURE__ */ v("div", {
1505
1515
  className: "text-sm font-semibold text-text-primary",
1506
1516
  children: n(e.price.amount)
1507
1517
  }),
1508
- /* @__PURE__ */ y("div", {
1518
+ /* @__PURE__ */ v("div", {
1509
1519
  className: "truncate text-xs text-text-secondary",
1510
1520
  children: [e.location.neighborhood, e.location.city].filter(Boolean).join(", ")
1511
1521
  })
@@ -1517,13 +1527,13 @@ var xt = () => {
1517
1527
  ]
1518
1528
  })]
1519
1529
  }),
1520
- /* @__PURE__ */ y(he, {
1530
+ /* @__PURE__ */ v(he, {
1521
1531
  entityId: g.id,
1522
1532
  entityType: "housingvista-property"
1523
1533
  }),
1524
- /* @__PURE__ */ y(me, {
1525
- open: Gt,
1526
- onOpenChange: Kt,
1534
+ /* @__PURE__ */ v(me, {
1535
+ open: qt,
1536
+ onOpenChange: Jt,
1527
1537
  entityId: g.id,
1528
1538
  entityType: "housingvista-property",
1529
1539
  title: g.title,
@@ -1531,166 +1541,166 @@ var xt = () => {
1531
1541
  heading: "Contact owner",
1532
1542
  description: `Ask a question or start a conversation about ${g.title}.`
1533
1543
  }),
1534
- /* @__PURE__ */ y(S, {
1535
- open: Wt,
1536
- onOpenChange: B,
1537
- children: /* @__PURE__ */ y(C, {
1544
+ /* @__PURE__ */ v(x, {
1545
+ open: Kt,
1546
+ onOpenChange: z,
1547
+ children: /* @__PURE__ */ v(S, {
1538
1548
  className: "sm:max-w-2xl",
1539
- children: /* @__PURE__ */ b("form", {
1540
- onSubmit: qn,
1549
+ children: /* @__PURE__ */ y("form", {
1550
+ onSubmit: Xn,
1541
1551
  children: [
1542
- /* @__PURE__ */ b(E, { children: [/* @__PURE__ */ y(D, { children: "Apply to rent" }), /* @__PURE__ */ b(w, { children: [
1552
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, { children: "Apply to rent" }), /* @__PURE__ */ y(C, { children: [
1543
1553
  "Submit a rental application for ",
1544
1554
  g.title,
1545
1555
  ". The owner will review and respond."
1546
1556
  ] })] }),
1547
- /* @__PURE__ */ b("div", {
1557
+ /* @__PURE__ */ y("div", {
1548
1558
  className: "grid grid-cols-1 gap-4 py-2 sm:grid-cols-[1fr_16rem]",
1549
- children: [/* @__PURE__ */ b("div", {
1559
+ children: [/* @__PURE__ */ y("div", {
1550
1560
  className: "space-y-3",
1551
1561
  children: [
1552
- /* @__PURE__ */ b("div", {
1562
+ /* @__PURE__ */ y("div", {
1553
1563
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1554
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1564
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1555
1565
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1556
1566
  children: "Full name *"
1557
- }), /* @__PURE__ */ y("input", {
1567
+ }), /* @__PURE__ */ v("input", {
1558
1568
  type: "text",
1559
1569
  required: !0,
1560
- value: qt,
1561
- onChange: (e) => Jt(e.target.value),
1562
- className: j
1563
- })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1570
+ value: Yt,
1571
+ onChange: (e) => Xt(e.target.value),
1572
+ className: A
1573
+ })] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1564
1574
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1565
1575
  children: "Email *"
1566
- }), /* @__PURE__ */ y("input", {
1576
+ }), /* @__PURE__ */ v("input", {
1567
1577
  type: "email",
1568
1578
  required: !0,
1569
- value: Yt,
1570
- onChange: (e) => Xt(e.target.value),
1571
- className: j
1579
+ value: Zt,
1580
+ onChange: (e) => Qt(e.target.value),
1581
+ className: A
1572
1582
  })] })]
1573
1583
  }),
1574
- /* @__PURE__ */ b("div", {
1584
+ /* @__PURE__ */ y("div", {
1575
1585
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1576
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1586
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1577
1587
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1578
1588
  children: "Phone"
1579
- }), /* @__PURE__ */ y("input", {
1589
+ }), /* @__PURE__ */ v("input", {
1580
1590
  type: "tel",
1581
- value: Zt,
1582
- onChange: (e) => Qt(e.target.value),
1583
- className: j
1584
- })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("label", {
1591
+ value: $t,
1592
+ onChange: (e) => en(e.target.value),
1593
+ className: A
1594
+ })] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("label", {
1585
1595
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1586
1596
  children: [
1587
1597
  "Monthly income (",
1588
1598
  g.price.currency,
1589
1599
  ")"
1590
1600
  ]
1591
- }), /* @__PURE__ */ y("input", {
1601
+ }), /* @__PURE__ */ v("input", {
1592
1602
  type: "number",
1593
1603
  min: 0,
1594
- value: $t,
1595
- onChange: (e) => en(e.target.value),
1596
- className: j
1604
+ value: tn,
1605
+ onChange: (e) => nn(e.target.value),
1606
+ className: A
1597
1607
  })] })]
1598
1608
  }),
1599
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1609
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1600
1610
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1601
1611
  children: "Preferred move-in date"
1602
- }), /* @__PURE__ */ y("input", {
1612
+ }), /* @__PURE__ */ v("input", {
1603
1613
  type: "date",
1604
- value: tn,
1605
- onChange: (e) => nn(e.target.value),
1606
- className: j
1614
+ value: rn,
1615
+ onChange: (e) => an(e.target.value),
1616
+ className: A
1607
1617
  })] })
1608
1618
  ]
1609
- }), /* @__PURE__ */ b("aside", {
1619
+ }), /* @__PURE__ */ y("aside", {
1610
1620
  className: "rounded-lg border border-border-subtle bg-bg-sunken/40 p-3",
1611
1621
  children: [
1612
- /* @__PURE__ */ y("h3", {
1622
+ /* @__PURE__ */ v("h3", {
1613
1623
  className: "text-sm font-semibold text-text-primary",
1614
1624
  children: "Rental summary"
1615
1625
  }),
1616
- /* @__PURE__ */ b("div", {
1626
+ /* @__PURE__ */ y("div", {
1617
1627
  className: "mt-3 flex items-start gap-3",
1618
- children: [g.images[0]?.url && /* @__PURE__ */ y("img", {
1628
+ children: [g.images[0]?.url && /* @__PURE__ */ v("img", {
1619
1629
  src: g.images[0].url,
1620
1630
  alt: "",
1621
1631
  "aria-hidden": !0,
1622
1632
  className: "h-14 w-14 shrink-0 rounded-md object-cover"
1623
- }), /* @__PURE__ */ b("div", {
1633
+ }), /* @__PURE__ */ y("div", {
1624
1634
  className: "min-w-0",
1625
- children: [/* @__PURE__ */ y("p", {
1635
+ children: [/* @__PURE__ */ v("p", {
1626
1636
  className: "text-sm font-medium text-text-primary",
1627
1637
  children: g.title
1628
- }), /* @__PURE__ */ y("p", {
1638
+ }), /* @__PURE__ */ v("p", {
1629
1639
  className: "truncate text-xs text-text-secondary",
1630
1640
  children: [g.location.neighborhood, g.location.city].filter(Boolean).join(", ")
1631
1641
  })]
1632
1642
  })]
1633
1643
  }),
1634
- q ? /* @__PURE__ */ b(at, { children: [/* @__PURE__ */ b("dl", {
1644
+ q ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y("dl", {
1635
1645
  className: "mt-3 grid grid-cols-2 gap-3 border-t border-border-subtle pt-3",
1636
1646
  children: [
1637
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("dt", {
1647
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
1638
1648
  className: "text-xs text-text-secondary",
1639
1649
  children: "Rent"
1640
- }), /* @__PURE__ */ b("dd", {
1650
+ }), /* @__PURE__ */ y("dd", {
1641
1651
  className: "text-sm font-semibold text-text-primary",
1642
1652
  children: [n(q.monthlyRent), "/mo"]
1643
1653
  })] }),
1644
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("dt", {
1654
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
1645
1655
  className: "text-xs text-text-secondary",
1646
1656
  children: "Deposit"
1647
- }), /* @__PURE__ */ y("dd", {
1657
+ }), /* @__PURE__ */ v("dd", {
1648
1658
  className: "text-sm font-semibold text-text-primary",
1649
1659
  children: q.securityDeposit ? n(q.securityDeposit) : "—"
1650
1660
  })] }),
1651
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("dt", {
1661
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
1652
1662
  className: "text-xs text-text-secondary",
1653
1663
  children: "Unit"
1654
- }), /* @__PURE__ */ y("dd", {
1664
+ }), /* @__PURE__ */ v("dd", {
1655
1665
  className: "text-sm font-medium text-text-primary",
1656
1666
  children: q.unitNumber
1657
1667
  })] }),
1658
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("dt", {
1668
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
1659
1669
  className: "text-xs text-text-secondary",
1660
1670
  children: "Availability"
1661
- }), /* @__PURE__ */ y("dd", {
1671
+ }), /* @__PURE__ */ v("dd", {
1662
1672
  className: "mt-0.5",
1663
- children: /* @__PURE__ */ y(a, {
1664
- label: yt(q.status),
1665
- variant: bt(q.status)
1673
+ children: /* @__PURE__ */ v(a, {
1674
+ label: xt(q.status),
1675
+ variant: St(q.status)
1666
1676
  })
1667
1677
  })] })
1668
1678
  ]
1669
- }), (q.status === "occupied" || q.status === "notice_period") && q.leaseEnd && /* @__PURE__ */ b("p", {
1679
+ }), (q.status === "occupied" || q.status === "notice_period") && q.leaseEnd && /* @__PURE__ */ y("p", {
1670
1680
  className: "mt-2 text-xs text-text-secondary",
1671
1681
  children: ["Current lease ends ", r(q.leaseEnd)]
1672
- })] }) : /* @__PURE__ */ y("p", {
1682
+ })] }) : /* @__PURE__ */ v("p", {
1673
1683
  className: "mt-3 border-t border-border-subtle pt-3 text-xs text-text-secondary",
1674
1684
  children: "No rental unit is listed for this property yet, so rent and deposit are not available."
1675
1685
  }),
1676
- g.amenities.length > 0 && /* @__PURE__ */ b("div", {
1686
+ g.amenities.length > 0 && /* @__PURE__ */ y("div", {
1677
1687
  className: "mt-3 border-t border-border-subtle pt-3",
1678
1688
  children: [
1679
- /* @__PURE__ */ y("p", {
1689
+ /* @__PURE__ */ v("p", {
1680
1690
  className: "text-xs text-text-secondary",
1681
1691
  children: "Amenities"
1682
1692
  }),
1683
- /* @__PURE__ */ y("ul", {
1693
+ /* @__PURE__ */ v("ul", {
1684
1694
  className: "mt-1.5 space-y-1.5",
1685
- children: g.amenities.slice(0, 5).map((e) => /* @__PURE__ */ b("li", {
1695
+ children: g.amenities.slice(0, 5).map((e) => /* @__PURE__ */ y("li", {
1686
1696
  className: "flex items-center gap-2 text-sm text-text-primary",
1687
- children: [/* @__PURE__ */ y(vt(e.name), { className: "h-4 w-4 shrink-0 text-text-secondary" }), /* @__PURE__ */ y("span", {
1697
+ children: [/* @__PURE__ */ v(bt(e.name), { className: "h-4 w-4 shrink-0 text-text-secondary" }), /* @__PURE__ */ v("span", {
1688
1698
  className: "truncate",
1689
1699
  children: e.name
1690
1700
  })]
1691
1701
  }, e.id))
1692
1702
  }),
1693
- g.amenities.length > 5 && /* @__PURE__ */ b("p", {
1703
+ g.amenities.length > 5 && /* @__PURE__ */ y("p", {
1694
1704
  className: "mt-1.5 text-xs text-text-secondary",
1695
1705
  children: [
1696
1706
  "+",
@@ -1703,225 +1713,246 @@ var xt = () => {
1703
1713
  ]
1704
1714
  })]
1705
1715
  }),
1706
- /* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(x, {
1716
+ /* @__PURE__ */ y(w, { children: [/* @__PURE__ */ v(b, {
1707
1717
  type: "button",
1708
1718
  variant: "outline",
1709
- onClick: () => B(!1),
1719
+ onClick: () => z(!1),
1710
1720
  children: "Cancel"
1711
- }), /* @__PURE__ */ y(x, {
1721
+ }), /* @__PURE__ */ v(b, {
1712
1722
  type: "submit",
1713
- disabled: Mt || !J,
1714
- children: Mt ? "Submitting…" : "Submit application"
1723
+ disabled: Pt || !J,
1724
+ children: Pt ? "Submitting…" : "Submit application"
1715
1725
  })] })
1716
1726
  ]
1717
1727
  })
1718
1728
  })
1719
1729
  }),
1720
- /* @__PURE__ */ y(S, {
1721
- open: Bt,
1722
- onOpenChange: I,
1723
- children: /* @__PURE__ */ y(C, {
1730
+ /* @__PURE__ */ v(x, {
1731
+ open: Ht,
1732
+ onOpenChange: F,
1733
+ children: /* @__PURE__ */ v(S, {
1724
1734
  className: "sm:max-w-md",
1725
- children: /* @__PURE__ */ b("form", {
1726
- onSubmit: Hn,
1735
+ children: /* @__PURE__ */ y("form", {
1736
+ onSubmit: Gn,
1727
1737
  children: [
1728
- /* @__PURE__ */ b(E, { children: [/* @__PURE__ */ y(D, { children: "Schedule a viewing" }), /* @__PURE__ */ b(w, { children: [
1738
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, { children: "Schedule a viewing" }), /* @__PURE__ */ y(C, { children: [
1729
1739
  "Pick a date and time to see ",
1730
1740
  g.title,
1731
1741
  "."
1732
1742
  ] })] }),
1733
- /* @__PURE__ */ b("div", {
1743
+ /* @__PURE__ */ y("div", {
1734
1744
  className: "space-y-3 py-2",
1735
1745
  children: [
1736
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1746
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1737
1747
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1738
1748
  children: "Date & time *"
1739
- }), /* @__PURE__ */ y("input", {
1749
+ }), /* @__PURE__ */ v("input", {
1740
1750
  type: "datetime-local",
1741
1751
  required: !0,
1742
- value: U,
1743
- onChange: (e) => bn(e.target.value),
1744
- className: j
1752
+ value: H,
1753
+ onChange: (e) => Sn(e.target.value),
1754
+ className: A
1745
1755
  })] }),
1746
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1756
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1747
1757
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1748
1758
  children: "Type"
1749
- }), /* @__PURE__ */ b("select", {
1750
- value: xn,
1751
- onChange: (e) => Sn(e.target.value),
1752
- className: j,
1753
- children: [/* @__PURE__ */ y("option", {
1759
+ }), /* @__PURE__ */ y("select", {
1760
+ value: Cn,
1761
+ onChange: (e) => wn(e.target.value),
1762
+ className: A,
1763
+ children: [/* @__PURE__ */ v("option", {
1754
1764
  value: "in_person",
1755
1765
  children: "In person"
1756
- }), /* @__PURE__ */ y("option", {
1766
+ }), /* @__PURE__ */ v("option", {
1757
1767
  value: "virtual",
1758
1768
  children: "Virtual"
1759
1769
  })]
1760
1770
  })] }),
1761
- /* @__PURE__ */ b("div", {
1771
+ /* @__PURE__ */ y("div", {
1762
1772
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1763
- children: [/* @__PURE__ */ y("input", {
1773
+ children: [/* @__PURE__ */ v("input", {
1764
1774
  type: "text",
1765
1775
  placeholder: "Your name",
1766
- value: Cn,
1767
- onChange: (e) => wn(e.target.value),
1768
- className: j
1769
- }), /* @__PURE__ */ y("input", {
1770
- type: "email",
1771
- placeholder: "Your email",
1772
1776
  value: Tn,
1773
1777
  onChange: (e) => En(e.target.value),
1774
- className: j
1778
+ className: A
1779
+ }), /* @__PURE__ */ v("input", {
1780
+ type: "email",
1781
+ placeholder: "Your email",
1782
+ value: Dn,
1783
+ onChange: (e) => On(e.target.value),
1784
+ className: A
1775
1785
  })]
1776
1786
  }),
1777
- /* @__PURE__ */ y("textarea", {
1787
+ /* @__PURE__ */ v("textarea", {
1778
1788
  placeholder: "Notes (optional)",
1779
1789
  rows: 2,
1780
- value: Dn,
1781
- onChange: (e) => On(e.target.value),
1790
+ value: kn,
1791
+ onChange: (e) => An(e.target.value),
1782
1792
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
1783
1793
  })
1784
1794
  ]
1785
1795
  }),
1786
- /* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(x, {
1796
+ /* @__PURE__ */ y(w, { children: [/* @__PURE__ */ v(b, {
1787
1797
  type: "button",
1788
1798
  variant: "outline",
1789
- onClick: () => I(!1),
1799
+ onClick: () => F(!1),
1790
1800
  children: "Cancel"
1791
- }), /* @__PURE__ */ y(x, {
1801
+ }), /* @__PURE__ */ v(b, {
1792
1802
  type: "submit",
1793
- disabled: Tt || !U,
1794
- children: Tt ? "Booking…" : "Request viewing"
1803
+ disabled: Dt || !H,
1804
+ children: Dt ? "Booking…" : "Request viewing"
1795
1805
  })] })
1796
1806
  ]
1797
1807
  })
1798
1808
  })
1799
1809
  }),
1800
- /* @__PURE__ */ y(S, {
1801
- open: Vt,
1802
- onOpenChange: L,
1803
- children: /* @__PURE__ */ y(C, {
1810
+ /* @__PURE__ */ v(x, {
1811
+ open: Ut,
1812
+ onOpenChange: I,
1813
+ children: /* @__PURE__ */ v(S, {
1804
1814
  className: "sm:max-w-md",
1805
- children: /* @__PURE__ */ b("form", {
1806
- onSubmit: Un,
1815
+ children: /* @__PURE__ */ y("form", {
1816
+ onSubmit: Kn,
1807
1817
  children: [
1808
- /* @__PURE__ */ b(E, { children: [/* @__PURE__ */ y(D, { children: "Make an offer" }), /* @__PURE__ */ b(w, { children: [
1818
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, { children: "Make an offer" }), /* @__PURE__ */ y(C, { children: [
1809
1819
  "Listing price is ",
1810
- Ln(g.price),
1820
+ Bn(g.price),
1811
1821
  "."
1812
1822
  ] })] }),
1813
- /* @__PURE__ */ b("div", {
1823
+ /* @__PURE__ */ y("div", {
1814
1824
  className: "space-y-3 py-2",
1815
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("label", {
1816
- className: "mb-1.5 block text-sm font-medium text-text-primary",
1817
- children: [
1818
- "Your offer (",
1819
- g.price.currency,
1820
- ") *"
1821
- ]
1822
- }), /* @__PURE__ */ y("input", {
1823
- type: "number",
1824
- required: !0,
1825
- min: 1,
1826
- value: kn,
1827
- onChange: (e) => An(e.target.value),
1828
- placeholder: "Enter amount",
1829
- className: j
1830
- })] }), /* @__PURE__ */ y("textarea", {
1831
- placeholder: "Message to the owner (optional)",
1832
- rows: 3,
1833
- value: jn,
1834
- onChange: (e) => Mn(e.target.value),
1835
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
1836
- })]
1825
+ children: [
1826
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("label", {
1827
+ className: "mb-1.5 block text-sm font-medium text-text-primary",
1828
+ children: [
1829
+ "Your offer (",
1830
+ g.price.currency,
1831
+ ") *"
1832
+ ]
1833
+ }), /* @__PURE__ */ v("input", {
1834
+ type: "number",
1835
+ required: !0,
1836
+ min: 1,
1837
+ value: jn,
1838
+ onChange: (e) => Mn(e.target.value),
1839
+ placeholder: "Enter amount",
1840
+ className: A
1841
+ })] }),
1842
+ /* @__PURE__ */ v("textarea", {
1843
+ placeholder: "Message to the owner (optional)",
1844
+ rows: 3,
1845
+ value: Nn,
1846
+ onChange: (e) => Pn(e.target.value),
1847
+ className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
1848
+ }),
1849
+ /* @__PURE__ */ y("div", { children: [
1850
+ /* @__PURE__ */ v("label", {
1851
+ htmlFor: "offer-expires",
1852
+ className: "mb-1.5 block text-sm font-medium text-text-primary",
1853
+ children: "Valid until (optional)"
1854
+ }),
1855
+ /* @__PURE__ */ v("input", {
1856
+ id: "offer-expires",
1857
+ type: "datetime-local",
1858
+ value: Fn,
1859
+ onChange: (e) => U(e.target.value),
1860
+ className: A
1861
+ }),
1862
+ /* @__PURE__ */ v("p", {
1863
+ className: "mt-1 text-xs text-text-secondary",
1864
+ children: "The offer becomes non-actionable after this time. Clear the field for no expiry."
1865
+ })
1866
+ ] })
1867
+ ]
1837
1868
  }),
1838
- /* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(x, {
1869
+ /* @__PURE__ */ y(w, { children: [/* @__PURE__ */ v(b, {
1839
1870
  type: "button",
1840
1871
  variant: "outline",
1841
- onClick: () => L(!1),
1872
+ onClick: () => I(!1),
1842
1873
  children: "Cancel"
1843
- }), /* @__PURE__ */ y(x, {
1874
+ }), /* @__PURE__ */ v(b, {
1844
1875
  type: "submit",
1845
- disabled: Dt,
1846
- children: Dt ? "Submitting…" : "Submit offer"
1876
+ disabled: kt,
1877
+ children: kt ? "Submitting…" : "Submit offer"
1847
1878
  })] })
1848
1879
  ]
1849
1880
  })
1850
1881
  })
1851
1882
  }),
1852
- /* @__PURE__ */ y(S, {
1853
- open: Ht,
1854
- onOpenChange: (e) => !e && !M && R(!1),
1855
- children: /* @__PURE__ */ y(C, {
1883
+ /* @__PURE__ */ v(x, {
1884
+ open: Wt,
1885
+ onOpenChange: (e) => !e && !j && L(!1),
1886
+ children: /* @__PURE__ */ v(S, {
1856
1887
  className: "sm:max-w-2xl",
1857
- children: /* @__PURE__ */ b("form", {
1858
- onSubmit: Gn,
1888
+ children: /* @__PURE__ */ y("form", {
1889
+ onSubmit: Jn,
1859
1890
  children: [
1860
- /* @__PURE__ */ b(E, { children: [/* @__PURE__ */ y(D, { children: "Edit property" }), /* @__PURE__ */ y(w, { children: "Update the listing details — basics, location, specifications and pricing. Photos are managed separately from the gallery." })] }),
1861
- /* @__PURE__ */ b("div", {
1891
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, { children: "Edit property" }), /* @__PURE__ */ v(C, { children: "Update the listing details — basics, location, specifications and pricing. Photos are managed separately from the gallery." })] }),
1892
+ /* @__PURE__ */ y("div", {
1862
1893
  className: "max-h-[65vh] space-y-6 overflow-y-auto py-2 pr-1",
1863
1894
  children: [
1864
- /* @__PURE__ */ b("section", {
1895
+ /* @__PURE__ */ y("section", {
1865
1896
  className: "space-y-3",
1866
1897
  children: [
1867
- /* @__PURE__ */ y("h3", {
1898
+ /* @__PURE__ */ v("h3", {
1868
1899
  className: "text-sm font-semibold text-text-primary",
1869
1900
  children: "Basics"
1870
1901
  }),
1871
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1902
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1872
1903
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1873
1904
  children: "Title *"
1874
- }), /* @__PURE__ */ y("input", {
1905
+ }), /* @__PURE__ */ v("input", {
1875
1906
  type: "text",
1876
1907
  required: !0,
1877
1908
  value: W.title,
1878
1909
  onChange: (e) => G({ title: e.target.value }),
1879
- className: j
1910
+ className: A
1880
1911
  })] }),
1881
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1912
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1882
1913
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1883
1914
  children: "Description"
1884
- }), /* @__PURE__ */ y("textarea", {
1915
+ }), /* @__PURE__ */ v("textarea", {
1885
1916
  rows: 3,
1886
1917
  value: W.description,
1887
1918
  onChange: (e) => G({ description: e.target.value }),
1888
1919
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
1889
1920
  })] }),
1890
- /* @__PURE__ */ b("div", {
1921
+ /* @__PURE__ */ y("div", {
1891
1922
  className: "grid grid-cols-1 gap-3 sm:grid-cols-3",
1892
1923
  children: [
1893
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1924
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1894
1925
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1895
1926
  children: "Status"
1896
- }), /* @__PURE__ */ y("select", {
1927
+ }), /* @__PURE__ */ v("select", {
1897
1928
  value: W.status,
1898
1929
  onChange: (e) => G({ status: e.target.value }),
1899
- className: j,
1900
- children: ut.map((e) => /* @__PURE__ */ y("option", {
1930
+ className: A,
1931
+ children: dt.map((e) => /* @__PURE__ */ v("option", {
1901
1932
  value: e.value,
1902
1933
  children: e.label
1903
1934
  }, e.value))
1904
1935
  })] }),
1905
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1936
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1906
1937
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1907
1938
  children: "Type"
1908
- }), /* @__PURE__ */ y("select", {
1939
+ }), /* @__PURE__ */ v("select", {
1909
1940
  value: W.type,
1910
1941
  onChange: (e) => G({ type: e.target.value }),
1911
- className: j,
1912
- children: De.map((e) => /* @__PURE__ */ y("option", {
1942
+ className: A,
1943
+ children: De.map((e) => /* @__PURE__ */ v("option", {
1913
1944
  value: e.value,
1914
1945
  children: e.label
1915
1946
  }, e.value))
1916
1947
  })] }),
1917
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1948
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1918
1949
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1919
1950
  children: "Category"
1920
- }), /* @__PURE__ */ y("select", {
1951
+ }), /* @__PURE__ */ v("select", {
1921
1952
  value: W.category,
1922
1953
  onChange: (e) => G({ category: e.target.value }),
1923
- className: j,
1924
- children: Ee.map((e) => /* @__PURE__ */ y("option", {
1954
+ className: A,
1955
+ children: Ee.map((e) => /* @__PURE__ */ v("option", {
1925
1956
  value: e.value,
1926
1957
  children: e.label
1927
1958
  }, e.value))
@@ -1930,139 +1961,139 @@ var xt = () => {
1930
1961
  })
1931
1962
  ]
1932
1963
  }),
1933
- /* @__PURE__ */ b("section", {
1964
+ /* @__PURE__ */ y("section", {
1934
1965
  className: "space-y-3",
1935
1966
  children: [
1936
- /* @__PURE__ */ y("h3", {
1967
+ /* @__PURE__ */ v("h3", {
1937
1968
  className: "text-sm font-semibold text-text-primary",
1938
1969
  children: "Location"
1939
1970
  }),
1940
- /* @__PURE__ */ b("div", {
1971
+ /* @__PURE__ */ y("div", {
1941
1972
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1942
1973
  children: [
1943
- /* @__PURE__ */ b("div", {
1974
+ /* @__PURE__ */ y("div", {
1944
1975
  className: "sm:col-span-2",
1945
- children: [/* @__PURE__ */ y("label", {
1976
+ children: [/* @__PURE__ */ v("label", {
1946
1977
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1947
1978
  children: "Address"
1948
- }), /* @__PURE__ */ y("input", {
1979
+ }), /* @__PURE__ */ v("input", {
1949
1980
  type: "text",
1950
1981
  value: W.address,
1951
1982
  onChange: (e) => G({ address: e.target.value }),
1952
- className: j
1983
+ className: A
1953
1984
  })]
1954
1985
  }),
1955
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1986
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1956
1987
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1957
1988
  children: "City *"
1958
- }), /* @__PURE__ */ y("input", {
1989
+ }), /* @__PURE__ */ v("input", {
1959
1990
  type: "text",
1960
1991
  required: !0,
1961
1992
  value: W.city,
1962
1993
  onChange: (e) => G({ city: e.target.value }),
1963
- className: j
1994
+ className: A
1964
1995
  })] }),
1965
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
1996
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1966
1997
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1967
1998
  children: "State *"
1968
- }), /* @__PURE__ */ y("input", {
1999
+ }), /* @__PURE__ */ v("input", {
1969
2000
  type: "text",
1970
2001
  required: !0,
1971
2002
  value: W.state,
1972
2003
  onChange: (e) => G({ state: e.target.value }),
1973
- className: j
2004
+ className: A
1974
2005
  })] }),
1975
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2006
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1976
2007
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1977
2008
  children: "Country"
1978
- }), /* @__PURE__ */ y("input", {
2009
+ }), /* @__PURE__ */ v("input", {
1979
2010
  type: "text",
1980
2011
  value: W.country,
1981
2012
  onChange: (e) => G({ country: e.target.value }),
1982
- className: j
2013
+ className: A
1983
2014
  })] }),
1984
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2015
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1985
2016
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1986
2017
  children: "Pincode"
1987
- }), /* @__PURE__ */ y("input", {
2018
+ }), /* @__PURE__ */ v("input", {
1988
2019
  type: "text",
1989
2020
  value: W.pincode,
1990
2021
  onChange: (e) => G({ pincode: e.target.value }),
1991
- className: j
2022
+ className: A
1992
2023
  })] }),
1993
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2024
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
1994
2025
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1995
2026
  children: "Neighborhood"
1996
- }), /* @__PURE__ */ y("input", {
2027
+ }), /* @__PURE__ */ v("input", {
1997
2028
  type: "text",
1998
2029
  value: W.neighborhood,
1999
2030
  onChange: (e) => G({ neighborhood: e.target.value }),
2000
- className: j
2031
+ className: A
2001
2032
  })] }),
2002
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2033
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2003
2034
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2004
2035
  children: "Landmarks"
2005
- }), /* @__PURE__ */ y("input", {
2036
+ }), /* @__PURE__ */ v("input", {
2006
2037
  type: "text",
2007
2038
  value: W.landmarks,
2008
2039
  onChange: (e) => G({ landmarks: e.target.value }),
2009
2040
  placeholder: "Comma-separated",
2010
- className: j
2041
+ className: A
2011
2042
  })] })
2012
2043
  ]
2013
2044
  }),
2014
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("span", {
2045
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("span", {
2015
2046
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2016
2047
  children: "Map location"
2017
- }), /* @__PURE__ */ y(Se, {
2048
+ }), /* @__PURE__ */ v(Se, {
2018
2049
  value: W.coordinates,
2019
2050
  onChange: (e) => G({ coordinates: e })
2020
2051
  })] })
2021
2052
  ]
2022
2053
  }),
2023
- /* @__PURE__ */ b("section", {
2054
+ /* @__PURE__ */ y("section", {
2024
2055
  className: "space-y-3",
2025
- children: [/* @__PURE__ */ y("h3", {
2056
+ children: [/* @__PURE__ */ v("h3", {
2026
2057
  className: "text-sm font-semibold text-text-primary",
2027
2058
  children: "Specifications"
2028
- }), /* @__PURE__ */ b("div", {
2059
+ }), /* @__PURE__ */ y("div", {
2029
2060
  className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
2030
2061
  children: [
2031
- ht.map((e) => /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2062
+ gt.map((e) => /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2032
2063
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2033
2064
  children: e.label
2034
- }), /* @__PURE__ */ y("input", {
2065
+ }), /* @__PURE__ */ v("input", {
2035
2066
  type: "number",
2036
2067
  min: 0,
2037
2068
  step: e.step,
2038
2069
  required: e.required,
2039
2070
  value: W[e.key],
2040
2071
  onChange: (t) => G({ [e.key]: t.target.value }),
2041
- className: j
2072
+ className: A
2042
2073
  })] }, e.key)),
2043
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2074
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2044
2075
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2045
2076
  children: "Furnishing"
2046
- }), /* @__PURE__ */ y("select", {
2077
+ }), /* @__PURE__ */ v("select", {
2047
2078
  value: W.furnishingStatus,
2048
2079
  onChange: (e) => G({ furnishingStatus: e.target.value }),
2049
- className: j,
2050
- children: Te.map((e) => /* @__PURE__ */ y("option", {
2080
+ className: A,
2081
+ children: Te.map((e) => /* @__PURE__ */ v("option", {
2051
2082
  value: e.value,
2052
2083
  children: e.label
2053
2084
  }, e.value))
2054
2085
  })] }),
2055
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2086
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2056
2087
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2057
2088
  children: "Facing"
2058
- }), /* @__PURE__ */ b("select", {
2089
+ }), /* @__PURE__ */ y("select", {
2059
2090
  value: W.facing,
2060
2091
  onChange: (e) => G({ facing: e.target.value }),
2061
- className: j,
2062
- children: [/* @__PURE__ */ y("option", {
2092
+ className: A,
2093
+ children: [/* @__PURE__ */ v("option", {
2063
2094
  value: "",
2064
2095
  children: "— (unset)"
2065
- }), we.map((e) => /* @__PURE__ */ y("option", {
2096
+ }), we.map((e) => /* @__PURE__ */ v("option", {
2066
2097
  value: e,
2067
2098
  children: e
2068
2099
  }, e))]
@@ -2070,75 +2101,75 @@ var xt = () => {
2070
2101
  ]
2071
2102
  })]
2072
2103
  }),
2073
- /* @__PURE__ */ b("section", {
2104
+ /* @__PURE__ */ y("section", {
2074
2105
  className: "space-y-3",
2075
- children: [/* @__PURE__ */ y("h3", {
2106
+ children: [/* @__PURE__ */ v("h3", {
2076
2107
  className: "text-sm font-semibold text-text-primary",
2077
2108
  children: "Pricing"
2078
- }), /* @__PURE__ */ b("div", {
2109
+ }), /* @__PURE__ */ y("div", {
2079
2110
  className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
2080
2111
  children: [
2081
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2112
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2082
2113
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2083
2114
  children: "Price *"
2084
- }), /* @__PURE__ */ y("input", {
2115
+ }), /* @__PURE__ */ v("input", {
2085
2116
  type: "number",
2086
2117
  min: 0,
2087
2118
  required: !0,
2088
2119
  value: W.price,
2089
2120
  onChange: (e) => G({ price: e.target.value }),
2090
- className: j
2121
+ className: A
2091
2122
  })] }),
2092
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2123
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2093
2124
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2094
2125
  children: "Price type"
2095
- }), /* @__PURE__ */ y("select", {
2126
+ }), /* @__PURE__ */ v("select", {
2096
2127
  value: W.priceType,
2097
2128
  onChange: (e) => G({ priceType: e.target.value }),
2098
- className: j,
2099
- children: dt.map((e) => /* @__PURE__ */ y("option", {
2129
+ className: A,
2130
+ children: ft.map((e) => /* @__PURE__ */ v("option", {
2100
2131
  value: e.value,
2101
2132
  children: e.label
2102
2133
  }, e.value))
2103
2134
  })] }),
2104
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2135
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2105
2136
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2106
2137
  children: "Price period"
2107
- }), /* @__PURE__ */ y("select", {
2138
+ }), /* @__PURE__ */ v("select", {
2108
2139
  value: W.pricePeriod,
2109
2140
  onChange: (e) => G({ pricePeriod: e.target.value }),
2110
- className: j,
2111
- children: ft.map((e) => /* @__PURE__ */ y("option", {
2141
+ className: A,
2142
+ children: pt.map((e) => /* @__PURE__ */ v("option", {
2112
2143
  value: e.value,
2113
2144
  children: e.label
2114
2145
  }, e.value))
2115
2146
  })] }),
2116
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2147
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2117
2148
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2118
2149
  children: "Currency"
2119
- }), /* @__PURE__ */ y("select", {
2150
+ }), /* @__PURE__ */ v("select", {
2120
2151
  value: W.currency,
2121
2152
  onChange: (e) => G({ currency: e.target.value }),
2122
- className: j,
2123
- children: Ce.map((e) => /* @__PURE__ */ y("option", {
2153
+ className: A,
2154
+ children: Ce.map((e) => /* @__PURE__ */ v("option", {
2124
2155
  value: e.value,
2125
2156
  children: e.label
2126
2157
  }, e.value))
2127
2158
  })] }),
2128
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
2159
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
2129
2160
  className: "mb-1.5 block text-sm font-medium text-text-primary",
2130
2161
  children: "Price / sqft"
2131
- }), /* @__PURE__ */ y("input", {
2162
+ }), /* @__PURE__ */ v("input", {
2132
2163
  type: "number",
2133
2164
  min: 0,
2134
2165
  step: "0.01",
2135
2166
  value: W.pricePerSqft,
2136
2167
  onChange: (e) => G({ pricePerSqft: e.target.value }),
2137
- className: j
2168
+ className: A
2138
2169
  })] }),
2139
- /* @__PURE__ */ b("label", {
2170
+ /* @__PURE__ */ y("label", {
2140
2171
  className: "flex items-end gap-2 pb-2.5 text-sm font-medium text-text-primary",
2141
- children: [/* @__PURE__ */ y("input", {
2172
+ children: [/* @__PURE__ */ v("input", {
2142
2173
  type: "checkbox",
2143
2174
  checked: W.negotiable,
2144
2175
  onChange: (e) => G({ negotiable: e.target.checked }),
@@ -2148,58 +2179,58 @@ var xt = () => {
2148
2179
  ]
2149
2180
  })]
2150
2181
  }),
2151
- /* @__PURE__ */ b("section", {
2182
+ /* @__PURE__ */ y("section", {
2152
2183
  className: "space-y-3",
2153
- children: [/* @__PURE__ */ y("h3", {
2184
+ children: [/* @__PURE__ */ v("h3", {
2154
2185
  className: "text-sm font-semibold text-text-primary",
2155
2186
  children: "Amenities"
2156
- }), /* @__PURE__ */ y("div", {
2187
+ }), /* @__PURE__ */ v("div", {
2157
2188
  className: "flex flex-wrap gap-2",
2158
2189
  children: d.map((t) => {
2159
2190
  let n = t.icon, r = W.amenities.includes(t.id);
2160
- return /* @__PURE__ */ b("button", {
2191
+ return /* @__PURE__ */ y("button", {
2161
2192
  type: "button",
2162
2193
  "aria-pressed": r,
2163
2194
  onClick: () => G({ amenities: r ? W.amenities.filter((e) => e !== t.id) : [...W.amenities, t.id] }),
2164
2195
  className: e("inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors", r ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-surface text-text-secondary hover:bg-bg-sunken hover:text-text-primary"),
2165
- children: [/* @__PURE__ */ y(n, { className: "h-3.5 w-3.5" }), t.label]
2196
+ children: [/* @__PURE__ */ v(n, { className: "h-3.5 w-3.5" }), t.label]
2166
2197
  }, t.id);
2167
2198
  })
2168
2199
  })]
2169
2200
  })
2170
2201
  ]
2171
2202
  }),
2172
- /* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(x, {
2203
+ /* @__PURE__ */ y(w, { children: [/* @__PURE__ */ v(b, {
2173
2204
  type: "button",
2174
2205
  variant: "outline",
2175
- onClick: () => R(!1),
2176
- disabled: M,
2206
+ onClick: () => L(!1),
2207
+ disabled: j,
2177
2208
  children: "Cancel"
2178
- }), /* @__PURE__ */ y(x, {
2209
+ }), /* @__PURE__ */ v(b, {
2179
2210
  type: "submit",
2180
- disabled: M,
2181
- children: M ? "Saving…" : "Save changes"
2211
+ disabled: j,
2212
+ children: j ? "Saving…" : "Save changes"
2182
2213
  })] })
2183
2214
  ]
2184
2215
  })
2185
2216
  })
2186
2217
  }),
2187
- /* @__PURE__ */ y(S, {
2188
- open: Ut,
2189
- onOpenChange: z,
2190
- children: /* @__PURE__ */ b(C, {
2218
+ /* @__PURE__ */ v(x, {
2219
+ open: Gt,
2220
+ onOpenChange: R,
2221
+ children: /* @__PURE__ */ y(S, {
2191
2222
  className: "sm:max-w-md",
2192
- children: [/* @__PURE__ */ b(E, { children: [/* @__PURE__ */ y(D, { children: "Delete this property?" }), /* @__PURE__ */ b(w, { children: [g.title, " will be permanently removed. This cannot be undone."] })] }), /* @__PURE__ */ b(T, { children: [/* @__PURE__ */ y(x, {
2223
+ children: [/* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, { children: "Delete this property?" }), /* @__PURE__ */ y(C, { children: [g.title, " will be permanently removed. This cannot be undone."] })] }), /* @__PURE__ */ y(w, { children: [/* @__PURE__ */ v(b, {
2193
2224
  type: "button",
2194
2225
  variant: "outline",
2195
- onClick: () => z(!1),
2226
+ onClick: () => R(!1),
2196
2227
  children: "Cancel"
2197
- }), /* @__PURE__ */ y(x, {
2228
+ }), /* @__PURE__ */ v(b, {
2198
2229
  type: "button",
2199
2230
  variant: "destructive",
2200
- onClick: Kn,
2201
- disabled: At,
2202
- children: At ? "Deleting…" : "Delete property"
2231
+ onClick: Yn,
2232
+ disabled: Mt,
2233
+ children: Mt ? "Deleting…" : "Delete property"
2203
2234
  })] })]
2204
2235
  })
2205
2236
  })
@@ -2207,6 +2238,6 @@ var xt = () => {
2207
2238
  });
2208
2239
  };
2209
2240
  //#endregion
2210
- export { xt as PropertyDetailPage };
2241
+ export { Ct as PropertyDetailPage };
2211
2242
 
2212
2243
  //# sourceMappingURL=PropertyDetailPage.js.map