@burdenoff/microfe-housingvista 2026.703.13 → 2026.709.2

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.
Files changed (163) hide show
  1. package/dist/generated/global-operations.d.ts +2 -0
  2. package/dist/generated/global-operations.d.ts.map +1 -0
  3. package/dist/generated/global-types.d.ts +23527 -0
  4. package/dist/generated/global-types.d.ts.map +1 -0
  5. package/dist/generated/wspace-operations.d.ts +267 -0
  6. package/dist/generated/wspace-operations.d.ts.map +1 -0
  7. package/dist/generated/wspace-operations.js +67 -0
  8. package/dist/generated/wspace-operations.js.map +1 -0
  9. package/dist/generated/wspace-types.d.ts +57868 -0
  10. package/dist/generated/wspace-types.d.ts.map +1 -0
  11. package/dist/housingvista/HousingVistaRoot.d.ts +5 -0
  12. package/dist/housingvista/HousingVistaRoot.d.ts.map +1 -0
  13. package/dist/housingvista/HousingVistaRoutes.d.ts +7 -0
  14. package/dist/housingvista/HousingVistaRoutes.d.ts.map +1 -0
  15. package/dist/housingvista/components/Breadcrumbs.d.ts +13 -0
  16. package/dist/housingvista/components/Breadcrumbs.d.ts.map +1 -0
  17. package/dist/housingvista/components/ChartCard.d.ts +12 -0
  18. package/dist/housingvista/components/ChartCard.d.ts.map +1 -0
  19. package/dist/housingvista/components/ContactOwnerDialog.d.ts +33 -0
  20. package/dist/housingvista/components/ContactOwnerDialog.d.ts.map +1 -0
  21. package/dist/housingvista/components/DataTable.d.ts +42 -0
  22. package/dist/housingvista/components/DataTable.d.ts.map +1 -0
  23. package/dist/housingvista/components/EmptyState.d.ts +19 -0
  24. package/dist/housingvista/components/EmptyState.d.ts.map +1 -0
  25. package/dist/housingvista/components/ErrorBoundary.d.ts +19 -0
  26. package/dist/housingvista/components/ErrorBoundary.d.ts.map +1 -0
  27. package/dist/housingvista/components/FileUploader.d.ts +16 -0
  28. package/dist/housingvista/components/FileUploader.d.ts.map +1 -0
  29. package/dist/housingvista/components/FilterBar.d.ts +13 -0
  30. package/dist/housingvista/components/FilterBar.d.ts.map +1 -0
  31. package/dist/housingvista/components/LoadingSkeleton.d.ts +10 -0
  32. package/dist/housingvista/components/LoadingSkeleton.d.ts.map +1 -0
  33. package/dist/housingvista/components/PageLayout.d.ts +18 -0
  34. package/dist/housingvista/components/PageLayout.d.ts.map +1 -0
  35. package/dist/housingvista/components/PropertyCard.d.ts +26 -0
  36. package/dist/housingvista/components/PropertyCard.d.ts.map +1 -0
  37. package/dist/housingvista/components/ReviewsSection.d.ts +12 -0
  38. package/dist/housingvista/components/ReviewsSection.d.ts.map +1 -0
  39. package/dist/housingvista/components/StatCard.d.ts +18 -0
  40. package/dist/housingvista/components/StatCard.d.ts.map +1 -0
  41. package/dist/housingvista/components/StatusBadge.d.ts +12 -0
  42. package/dist/housingvista/components/StatusBadge.d.ts.map +1 -0
  43. package/dist/housingvista/components/index.d.ts +17 -0
  44. package/dist/housingvista/components/index.d.ts.map +1 -0
  45. package/dist/housingvista/context/HousingVistaContext.d.ts +15 -0
  46. package/dist/housingvista/context/HousingVistaContext.d.ts.map +1 -0
  47. package/dist/housingvista/hooks/index.d.ts +804 -0
  48. package/dist/housingvista/hooks/index.d.ts.map +1 -0
  49. package/dist/housingvista/hooks/index.js +1 -0
  50. package/dist/housingvista/hooks/index.js.map +1 -1
  51. package/dist/housingvista/hooks/messages.d.ts +65 -0
  52. package/dist/housingvista/hooks/messages.d.ts.map +1 -0
  53. package/dist/housingvista/hooks/platform.d.ts +140 -0
  54. package/dist/housingvista/hooks/platform.d.ts.map +1 -0
  55. package/dist/housingvista/hooks/useHousingVistaAnalytics.d.ts +16 -0
  56. package/dist/housingvista/hooks/useHousingVistaAnalytics.d.ts.map +1 -0
  57. package/dist/housingvista/hooks/useHousingVistaAnalytics.js +57 -0
  58. package/dist/housingvista/hooks/useHousingVistaAnalytics.js.map +1 -0
  59. package/dist/housingvista/hooks/useServerPagination.d.ts +12 -0
  60. package/dist/housingvista/hooks/useServerPagination.d.ts.map +1 -0
  61. package/dist/housingvista/index.d.ts +13 -0
  62. package/dist/housingvista/index.d.ts.map +1 -0
  63. package/dist/housingvista/index.js +2 -0
  64. package/dist/housingvista/lib/toast.d.ts +11 -0
  65. package/dist/housingvista/lib/toast.d.ts.map +1 -0
  66. package/dist/housingvista/pages/HomePage.d.ts +7 -0
  67. package/dist/housingvista/pages/HomePage.d.ts.map +1 -0
  68. package/dist/housingvista/pages/HomePage.js +135 -132
  69. package/dist/housingvista/pages/HomePage.js.map +1 -1
  70. package/dist/housingvista/pages/amc/AMCManagementPage.d.ts +2 -0
  71. package/dist/housingvista/pages/amc/AMCManagementPage.d.ts.map +1 -0
  72. package/dist/housingvista/pages/analytics/AnalyticsPage.d.ts +2 -0
  73. package/dist/housingvista/pages/analytics/AnalyticsPage.d.ts.map +1 -0
  74. package/dist/housingvista/pages/analytics/AnalyticsPage.js +136 -134
  75. package/dist/housingvista/pages/analytics/AnalyticsPage.js.map +1 -1
  76. package/dist/housingvista/pages/assets/AssetDetailPage.d.ts +9 -0
  77. package/dist/housingvista/pages/assets/AssetDetailPage.d.ts.map +1 -0
  78. package/dist/housingvista/pages/assets/AssetManagementPage.d.ts +2 -0
  79. package/dist/housingvista/pages/assets/AssetManagementPage.d.ts.map +1 -0
  80. package/dist/housingvista/pages/assets/AssetManagementPage.js.map +1 -1
  81. package/dist/housingvista/pages/chat/ChatPage.d.ts +14 -0
  82. package/dist/housingvista/pages/chat/ChatPage.d.ts.map +1 -0
  83. package/dist/housingvista/pages/finance/HomeLoanDetailPage.d.ts +11 -0
  84. package/dist/housingvista/pages/finance/HomeLoanDetailPage.d.ts.map +1 -0
  85. package/dist/housingvista/pages/finance/HomeLoansPage.d.ts +2 -0
  86. package/dist/housingvista/pages/finance/HomeLoansPage.d.ts.map +1 -0
  87. package/dist/housingvista/pages/investments/InvestmentDetailPage.d.ts +2 -0
  88. package/dist/housingvista/pages/investments/InvestmentDetailPage.d.ts.map +1 -0
  89. package/dist/housingvista/pages/investments/InvestmentsPage.d.ts +2 -0
  90. package/dist/housingvista/pages/investments/InvestmentsPage.d.ts.map +1 -0
  91. package/dist/housingvista/pages/investments/InvestmentsPage.js.map +1 -1
  92. package/dist/housingvista/pages/legal/LegalPage.d.ts +2 -0
  93. package/dist/housingvista/pages/legal/LegalPage.d.ts.map +1 -0
  94. package/dist/housingvista/pages/legal/LegalServiceDetailPage.d.ts +12 -0
  95. package/dist/housingvista/pages/legal/LegalServiceDetailPage.d.ts.map +1 -0
  96. package/dist/housingvista/pages/market/AreaInsightsPage.d.ts +2 -0
  97. package/dist/housingvista/pages/market/AreaInsightsPage.d.ts.map +1 -0
  98. package/dist/housingvista/pages/market/MarketAnalyticsPage.d.ts +2 -0
  99. package/dist/housingvista/pages/market/MarketAnalyticsPage.d.ts.map +1 -0
  100. package/dist/housingvista/pages/marketplace/MarketplacePage.d.ts +2 -0
  101. package/dist/housingvista/pages/marketplace/MarketplacePage.d.ts.map +1 -0
  102. package/dist/housingvista/pages/marketplace/ServiceDetailPage.d.ts +12 -0
  103. package/dist/housingvista/pages/marketplace/ServiceDetailPage.d.ts.map +1 -0
  104. package/dist/housingvista/pages/offers/OffersPage.d.ts +10 -0
  105. package/dist/housingvista/pages/offers/OffersPage.d.ts.map +1 -0
  106. package/dist/housingvista/pages/properties/AddPropertyPage.d.ts +8 -0
  107. package/dist/housingvista/pages/properties/AddPropertyPage.d.ts.map +1 -0
  108. package/dist/housingvista/pages/properties/AddPropertyPage.js +279 -278
  109. package/dist/housingvista/pages/properties/AddPropertyPage.js.map +1 -1
  110. package/dist/housingvista/pages/properties/PropertiesPage.d.ts +7 -0
  111. package/dist/housingvista/pages/properties/PropertiesPage.d.ts.map +1 -0
  112. package/dist/housingvista/pages/properties/PropertiesPage.js +93 -86
  113. package/dist/housingvista/pages/properties/PropertiesPage.js.map +1 -1
  114. package/dist/housingvista/pages/properties/PropertyDetailPage.d.ts +9 -0
  115. package/dist/housingvista/pages/properties/PropertyDetailPage.d.ts.map +1 -0
  116. package/dist/housingvista/pages/properties/PropertyDetailPage.js +514 -511
  117. package/dist/housingvista/pages/properties/PropertyDetailPage.js.map +1 -1
  118. package/dist/housingvista/pages/rental/RentalManagementPage.d.ts +2 -0
  119. package/dist/housingvista/pages/rental/RentalManagementPage.d.ts.map +1 -0
  120. package/dist/housingvista/pages/settings/ProfilePage.d.ts +2 -0
  121. package/dist/housingvista/pages/settings/ProfilePage.d.ts.map +1 -0
  122. package/dist/housingvista/pages/settings/SettingsPage.d.ts +2 -0
  123. package/dist/housingvista/pages/settings/SettingsPage.d.ts.map +1 -0
  124. package/dist/housingvista/pages/shortlist/ShortlistPage.d.ts +8 -0
  125. package/dist/housingvista/pages/shortlist/ShortlistPage.d.ts.map +1 -0
  126. package/dist/housingvista/pages/transactions/TransactionDetailPage.d.ts +8 -0
  127. package/dist/housingvista/pages/transactions/TransactionDetailPage.d.ts.map +1 -0
  128. package/dist/housingvista/pages/transactions/TransactionsPage.d.ts +7 -0
  129. package/dist/housingvista/pages/transactions/TransactionsPage.d.ts.map +1 -0
  130. package/dist/housingvista/pages/transactions/milestones.d.ts +35 -0
  131. package/dist/housingvista/pages/transactions/milestones.d.ts.map +1 -0
  132. package/dist/housingvista/pages/verification/VerificationDetailPage.d.ts +10 -0
  133. package/dist/housingvista/pages/verification/VerificationDetailPage.d.ts.map +1 -0
  134. package/dist/housingvista/pages/verification/VerificationPage.d.ts +2 -0
  135. package/dist/housingvista/pages/verification/VerificationPage.d.ts.map +1 -0
  136. package/dist/housingvista/pages/viewings/ViewingsPage.d.ts +9 -0
  137. package/dist/housingvista/pages/viewings/ViewingsPage.d.ts.map +1 -0
  138. package/dist/housingvista/services/assistantApi.d.ts +90 -0
  139. package/dist/housingvista/services/assistantApi.d.ts.map +1 -0
  140. package/dist/housingvista/services/assistantApi.js +222 -0
  141. package/dist/housingvista/services/assistantApi.js.map +1 -0
  142. package/dist/housingvista/services/createSandboxAssistantTransport.d.ts +42 -0
  143. package/dist/housingvista/services/createSandboxAssistantTransport.d.ts.map +1 -0
  144. package/dist/housingvista/services/createSandboxAssistantTransport.js +120 -0
  145. package/dist/housingvista/services/createSandboxAssistantTransport.js.map +1 -0
  146. package/dist/housingvista/store/housingvistaStore.d.ts +72 -0
  147. package/dist/housingvista/store/housingvistaStore.d.ts.map +1 -0
  148. package/dist/housingvista/types/assistant.d.ts +16 -0
  149. package/dist/housingvista/types/assistant.d.ts.map +1 -0
  150. package/dist/housingvista/types/index.d.ts +1328 -0
  151. package/dist/housingvista/types/index.d.ts.map +1 -0
  152. package/dist/housingvista/utils/helpers.d.ts +25 -0
  153. package/dist/housingvista/utils/helpers.d.ts.map +1 -0
  154. package/dist/housingvista/utils/index.d.ts +2 -0
  155. package/dist/housingvista/utils/index.d.ts.map +1 -0
  156. package/dist/housingvista/utils/pageContext.d.ts +25 -0
  157. package/dist/housingvista/utils/pageContext.d.ts.map +1 -0
  158. package/dist/housingvista/utils/pageContext.js +77 -0
  159. package/dist/housingvista/utils/pageContext.js.map +1 -0
  160. package/dist/index.d.ts +6 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +5 -3
  163. package/package.json +6 -2
@@ -3,31 +3,32 @@ import { StatusBadge as i } from "../../components/StatusBadge.js";
3
3
  import { EmptyState as a } from "../../components/EmptyState.js";
4
4
  import { Breadcrumbs as te } from "../../components/Breadcrumbs.js";
5
5
  import { LoadingSkeleton as o } from "../../components/LoadingSkeleton.js";
6
- import { useBookViewing as ne, useCreateInvestment as re, useDeleteProperty as ie, useProperties as ae, useProperty as oe, useRemoveShortlist as se, useRentalUnits as ce, useSaveShortlist as le, useShortlists as ue, useSubmitOffer as de, useSubmitRentalApplication as fe, useUpdateProperty as pe } from "../../hooks/index.js";
6
+ import { useHousingVistaAnalytics as ne, useTrackPageView as re } from "../../hooks/useHousingVistaAnalytics.js";
7
+ import { useBookViewing as ie, useCreateInvestment as ae, useDeleteProperty as oe, useProperties as se, useProperty as ce, useRemoveShortlist as le, useRentalUnits as ue, useSaveShortlist as de, useShortlists as fe, useSubmitOffer as pe, useSubmitRentalApplication as me, useUpdateProperty as he } from "../../hooks/index.js";
7
8
  import { notify as s } from "../../lib/toast.js";
8
- import { ContactOwnerDialog as me } from "../../components/ContactOwnerDialog.js";
9
- import { ReviewsSection as he } from "../../components/ReviewsSection.js";
9
+ import { ContactOwnerDialog as ge } from "../../components/ContactOwnerDialog.js";
10
+ import { ReviewsSection as _e } from "../../components/ReviewsSection.js";
10
11
  import "../../components/index.js";
11
- import { Tooltip as ge } from "../../../node_modules/recharts/es6/component/Tooltip.js";
12
- import { ResponsiveContainer as _e } from "../../../node_modules/recharts/es6/component/ResponsiveContainer.js";
13
- import { Area as ve } from "../../../node_modules/recharts/es6/cartesian/Area.js";
14
- import { XAxis as ye } from "../../../node_modules/recharts/es6/cartesian/XAxis.js";
15
- import { YAxis as be } from "../../../node_modules/recharts/es6/cartesian/YAxis.js";
16
- import { AreaChart as xe } from "../../../node_modules/recharts/es6/chart/AreaChart.js";
17
- import { useMemo as Se, useState as c } from "react";
18
- import { ArrowLeft as Ce, BadgeCheck as we, Bath as Te, Bed as Ee, Building as De, Calculator as Oe, Calendar as ke, Car as Ae, CheckCircle as l, ChevronLeft as je, ChevronRight as Me, Compass as Ne, DollarSign as Pe, Dumbbell as u, Flame as d, Heart as f, KeyRound as Fe, MapPin as p, MessageSquare as Ie, Navigation as Le, ParkingCircle as m, Pencil as Re, Share2 as ze, Shield as h, Square as Be, Trash2 as Ve, TreePine as g, TrendingUp as He, Utensils as _, Waves as v, Wifi as y, Wind as b } from "lucide-react";
19
- import { useLocation as Ue, useNavigate as We, useParams as Ge } from "react-router-dom";
20
- import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
21
- import { Button as w, EmphasisPanel as Ke, NextSteps as qe, PagePurpose as Je, ResponsiveDialog as T, ResponsiveDialogContent as E, ResponsiveDialogDescription as D, ResponsiveDialogFooter as O, ResponsiveDialogHeader as k, ResponsiveDialogTitle as A } from "@burdenoff/fe-libs/ui";
12
+ import { Tooltip as ve } from "../../../node_modules/recharts/es6/component/Tooltip.js";
13
+ import { ResponsiveContainer as ye } from "../../../node_modules/recharts/es6/component/ResponsiveContainer.js";
14
+ import { Area as be } from "../../../node_modules/recharts/es6/cartesian/Area.js";
15
+ import { XAxis as xe } from "../../../node_modules/recharts/es6/cartesian/XAxis.js";
16
+ import { YAxis as Se } from "../../../node_modules/recharts/es6/cartesian/YAxis.js";
17
+ import { AreaChart as Ce } from "../../../node_modules/recharts/es6/chart/AreaChart.js";
18
+ import { useMemo as we, useState as c } from "react";
19
+ import { ArrowLeft as Te, BadgeCheck as Ee, Bath as De, Bed as Oe, Building as ke, Calculator as Ae, Calendar as je, Car as Me, CheckCircle as l, ChevronLeft as Ne, ChevronRight as Pe, Compass as Fe, DollarSign as Ie, Dumbbell as u, Flame as d, Heart as f, KeyRound as Le, MapPin as p, MessageSquare as Re, Navigation as ze, ParkingCircle as Be, Pencil as Ve, Share2 as He, Shield as m, Square as Ue, Trash2 as We, TreePine as h, TrendingUp as Ge, Utensils as g, Waves as _, Wifi as v, Wind as y } from "lucide-react";
20
+ import { useLocation as Ke, useNavigate as qe, useParams as Je } from "react-router-dom";
21
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
22
+ import { Button as C, EmphasisPanel as Ye, NextSteps as Xe, PagePurpose as Ze, ResponsiveDialog as w, ResponsiveDialogContent as T, ResponsiveDialogDescription as E, ResponsiveDialogFooter as D, ResponsiveDialogHeader as O, ResponsiveDialogTitle as k } from "@burdenoff/fe-libs/ui";
22
23
  //#region src/housingvista/pages/properties/PropertyDetailPage.tsx
23
- var j = {
24
+ var A = {
24
25
  for_sale: "success",
25
26
  for_rent: "info",
26
27
  sold: "muted",
27
28
  rented: "muted",
28
29
  under_contract: "warning",
29
30
  off_market: "error"
30
- }, Ye = [
31
+ }, Qe = [
31
32
  {
32
33
  value: "for_sale",
33
34
  label: "For Sale"
@@ -52,7 +53,7 @@ var j = {
52
53
  value: "off_market",
53
54
  label: "Off Market"
54
55
  }
55
- ], Xe = [
56
+ ], $e = [
56
57
  {
57
58
  id: "details",
58
59
  label: "Details"
@@ -65,10 +66,10 @@ var j = {
65
66
  id: "location",
66
67
  label: "Location"
67
68
  }
68
- ], M = "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)]", N = [
69
+ ], 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)]", M = [
69
70
  {
70
71
  match: /pool|swim/i,
71
- icon: v
72
+ icon: _
72
73
  },
73
74
  {
74
75
  match: /gym|fitness/i,
@@ -76,23 +77,23 @@ var j = {
76
77
  },
77
78
  {
78
79
  match: /park/i,
79
- icon: m
80
+ icon: Be
80
81
  },
81
82
  {
82
83
  match: /garden|green|lawn|park/i,
83
- icon: g
84
+ icon: h
84
85
  },
85
86
  {
86
87
  match: /security|guard|cctv|gated/i,
87
- icon: h
88
+ icon: m
88
89
  },
89
90
  {
90
91
  match: /wifi|internet|broadband/i,
91
- icon: y
92
+ icon: v
92
93
  },
93
94
  {
94
95
  match: /a\/?c|air.?condition|central air|hvac/i,
95
- icon: b
96
+ icon: y
96
97
  },
97
98
  {
98
99
  match: /fire|chimney|heat/i,
@@ -100,110 +101,112 @@ var j = {
100
101
  },
101
102
  {
102
103
  match: /kitchen|modular|dining/i,
103
- icon: _
104
+ icon: g
104
105
  },
105
106
  {
106
107
  match: /car|garage/i,
107
- icon: Ae
108
+ icon: Me
108
109
  }
109
- ], Ze = (e) => N.find((t) => t.match.test(e))?.icon ?? l, P = () => {
110
- let { id: l } = Ge(), u = We(), d = Ue(), { data: m, loading: h } = oe(l), { data: g } = ae({ pagination: {
110
+ ], et = (e) => M.find((t) => t.match.test(e))?.icon ?? l, N = () => {
111
+ let { id: l } = Je(), u = qe(), d = Ke(), { emit: Be, emitResource: m } = ne();
112
+ re("housingvista.property.viewed", l);
113
+ let { data: h, loading: g } = ce(l), { data: _ } = se({ pagination: {
111
114
  limit: 8,
112
115
  offset: 0
113
- } }), { data: _ } = ue(), { data: v } = ce({
116
+ } }), { data: v } = fe(), { data: y } = ue({
114
117
  filter: l ? { propertyId: l } : void 0,
115
118
  pagination: {
116
119
  limit: 1,
117
120
  offset: 0
118
121
  }
119
- }), { saveShortlist: y, loading: b } = le(), { removeShortlist: N, loading: P } = se(), { bookViewing: Qe, loading: F } = ne(), { submitOffer: $e, loading: et } = de(), { updateProperty: tt, loading: nt } = pe(), { deleteProperty: rt, loading: it } = ie(), { submitRentalApplication: at, loading: ot } = fe(), { createInvestment: st, loading: ct } = re(), lt = Se(() => g.filter((e) => e.id !== l).slice(0, 3), [g, l]), I = Se(() => _.some((e) => e.propertyId === l), [_, l]), [L, R] = c(0), [z, ut] = c("details"), [dt, B] = c(!1), [ft, V] = c(!1), [pt, H] = c(!1), [mt, U] = c(!1), [ht, W] = c(!1), [gt, _t] = c(!1), [G, vt] = c(""), [K, yt] = c(""), [bt, xt] = c(""), [q, St] = c(""), [J, Ct] = c(""), [wt, Tt] = c(""), [Et, Dt] = c(""), [Ot, kt] = c("8"), [Y, At] = c(""), [jt, Mt] = c("in_person"), [Nt, Pt] = c(""), [Ft, It] = c(""), [Lt, Rt] = c(""), [zt, Bt] = c(""), [Vt, Ht] = c(""), [Ut, Wt] = c(""), [Gt, Kt] = c(""), [qt, Jt] = c("for_sale"), [Yt, Xt] = c("");
120
- if (h) return /* @__PURE__ */ C("div", {
122
+ }), { saveShortlist: M, loading: N } = de(), { removeShortlist: tt, loading: P } = le(), { bookViewing: nt, loading: F } = ie(), { submitOffer: rt, loading: it } = pe(), { updateProperty: at, loading: ot } = he(), { deleteProperty: st, loading: ct } = oe(), { submitRentalApplication: lt, loading: ut } = me(), { createInvestment: dt, loading: ft } = ae(), pt = we(() => _.filter((e) => e.id !== l).slice(0, 3), [_, l]), I = we(() => v.some((e) => e.propertyId === l), [v, l]), [L, R] = c(0), [z, mt] = c("details"), [ht, B] = c(!1), [gt, V] = c(!1), [_t, H] = c(!1), [vt, U] = c(!1), [yt, W] = c(!1), [bt, xt] = c(!1), [G, St] = c(""), [K, Ct] = c(""), [wt, Tt] = c(""), [q, Et] = c(""), [J, Dt] = c(""), [Ot, kt] = c(""), [At, jt] = c(""), [Mt, Nt] = c("8"), [Y, Pt] = c(""), [Ft, It] = c("in_person"), [Lt, Rt] = c(""), [zt, Bt] = c(""), [Vt, Ht] = c(""), [Ut, Wt] = c(""), [Gt, Kt] = c(""), [qt, Jt] = c(""), [Yt, Xt] = c(""), [Zt, Qt] = c("for_sale"), [$t, en] = c("");
123
+ if (g) return /* @__PURE__ */ S("div", {
121
124
  className: "space-y-6 p-6",
122
- children: [/* @__PURE__ */ S(o, { className: "h-80" }), /* @__PURE__ */ S(o, { variant: "detail" })]
125
+ children: [/* @__PURE__ */ x(o, { className: "h-80" }), /* @__PURE__ */ x(o, { variant: "detail" })]
123
126
  });
124
- if (!m) return /* @__PURE__ */ S("div", {
127
+ if (!h) return /* @__PURE__ */ x("div", {
125
128
  className: "p-6",
126
- children: /* @__PURE__ */ S(a, {
129
+ children: /* @__PURE__ */ x(a, {
127
130
  illustration: "empty-search",
128
- icon: /* @__PURE__ */ S(De, { className: "h-12 w-12" }),
131
+ icon: /* @__PURE__ */ x(ke, { className: "h-12 w-12" }),
129
132
  title: "Property Not Found",
130
133
  description: "The property you're looking for doesn't exist or has been removed.",
131
- action: /* @__PURE__ */ C("button", {
134
+ action: /* @__PURE__ */ S("button", {
132
135
  onClick: () => u("../properties"),
133
136
  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",
134
- children: [/* @__PURE__ */ S(Ce, { className: "h-4 w-4" }), "Back to Properties"]
137
+ children: [/* @__PURE__ */ x(Te, { className: "h-4 w-4" }), "Back to Properties"]
135
138
  })
136
139
  })
137
140
  });
138
- let Zt = [{
141
+ let tn = [{
139
142
  label: "Properties",
140
143
  href: "../"
141
- }, { label: m.title }], X = (e) => {
144
+ }, { label: h.title }], X = (e) => {
142
145
  let t = n(e.amount, e.currency);
143
146
  return e.type === "rent" && e.period ? `${t}/${e.period.replace("ly", "")}` : t;
144
- }, Qt = () => R((e) => e === m.images.length - 1 ? 0 : e + 1), $t = () => R((e) => e === 0 ? m.images.length - 1 : e - 1), en = () => {
147
+ }, nn = () => R((e) => e === h.images.length - 1 ? 0 : e + 1), rn = () => R((e) => e === 0 ? h.images.length - 1 : e - 1), an = () => {
145
148
  navigator.share ? navigator.share({
146
- title: m.title,
147
- text: m.description,
149
+ title: h.title,
150
+ text: h.description,
148
151
  url: window.location.href
149
152
  }) : (navigator.clipboard.writeText(window.location.href), s.info("Link copied", "The property link is on your clipboard."));
150
- }, tn = async () => {
153
+ }, on = async () => {
151
154
  try {
152
- I ? (await N(m.id), s.success("Removed from shortlist")) : (await y(m.id), s.success("Saved to shortlist"));
155
+ I ? (await tt(h.id), s.success("Removed from shortlist")) : (await M(h.id), m("housingvista.shortlist.property_added", h.id), s.success("Saved to shortlist"));
153
156
  } catch (e) {
154
157
  s.error("Could not update shortlist", e.message);
155
158
  }
156
- }, nn = async (e) => {
159
+ }, sn = async (e) => {
157
160
  if (e.preventDefault(), Y) try {
158
- await Qe({
159
- propertyId: m.id,
161
+ await nt({
162
+ propertyId: h.id,
160
163
  scheduledAt: new Date(Y).toISOString(),
161
- type: jt,
162
- attendeeName: Nt.trim() || void 0,
163
- attendeeEmail: Ft.trim() || void 0,
164
- notes: Lt.trim() || void 0
165
- }), s.success("Viewing requested", "The owner will confirm your slot shortly."), B(!1), At(""), Pt(""), It(""), Rt("");
164
+ type: Ft,
165
+ attendeeName: Lt.trim() || void 0,
166
+ attendeeEmail: zt.trim() || void 0,
167
+ notes: Vt.trim() || void 0
168
+ }), m("housingvista.viewing.scheduled", h.id), s.success("Viewing requested", "The owner will confirm your slot shortly."), B(!1), Pt(""), Rt(""), Bt(""), Ht("");
166
169
  } catch (e) {
167
170
  s.error("Could not book viewing", e.message);
168
171
  }
169
- }, rn = async (e) => {
172
+ }, cn = async (e) => {
170
173
  e.preventDefault();
171
- let t = Number(zt);
174
+ let t = Number(Ut);
172
175
  if (!t || t <= 0) {
173
176
  s.warning("Enter a valid offer amount");
174
177
  return;
175
178
  }
176
179
  try {
177
- await $e({
178
- propertyId: m.id,
180
+ await rt({
181
+ propertyId: h.id,
179
182
  amount: t,
180
- currency: m.price.currency,
181
- notes: Vt.trim() || void 0
182
- }), s.success("Offer submitted", `Your offer of ${n(t, m.price.currency)} was sent.`), V(!1), Bt(""), Ht("");
183
+ currency: h.price.currency,
184
+ notes: Gt.trim() || void 0
185
+ }), m("housingvista.offer.created", h.id), s.success("Offer submitted", `Your offer of ${n(t, h.price.currency)} was sent.`), V(!1), Wt(""), Kt("");
183
186
  } catch (e) {
184
187
  s.error("Could not submit offer", e.message);
185
188
  }
186
- }, an = () => {
187
- Wt(m.title), Kt(m.description), Jt(m.status), Xt(String(m.price.amount)), H(!0);
188
- }, on = async (e) => {
189
+ }, ln = () => {
190
+ Jt(h.title), Xt(h.description), Qt(h.status), en(String(h.price.amount)), H(!0);
191
+ }, un = async (e) => {
189
192
  e.preventDefault();
190
193
  try {
191
- await tt(m.id, {
192
- title: Ut.trim(),
193
- description: Gt.trim(),
194
- status: qt,
195
- price: Number(Yt) || m.price.amount
196
- }), s.success("Property updated"), H(!1);
194
+ await at(h.id, {
195
+ title: qt.trim(),
196
+ description: Yt.trim(),
197
+ status: Zt,
198
+ price: Number($t) || h.price.amount
199
+ }), m("housingvista.property.updated", h.id), s.success("Property updated"), H(!1);
197
200
  } catch (e) {
198
201
  s.error("Could not update property", e.message);
199
202
  }
200
- }, sn = async () => {
203
+ }, dn = async () => {
201
204
  try {
202
- await rt(m.id), s.success("Property deleted"), u("../properties");
205
+ await st(h.id), m("housingvista.property.deleted", h.id), s.success("Property deleted"), u("../properties");
203
206
  } catch (e) {
204
207
  s.error("Could not delete property", e.message);
205
208
  }
206
- }, Z = v[0]?.id, cn = async (e) => {
209
+ }, Z = y[0]?.id, fn = async (e) => {
207
210
  if (e.preventDefault(), !Z) {
208
211
  s.warning("No rental unit is available for this property yet");
209
212
  return;
@@ -213,84 +216,84 @@ var j = {
213
216
  return;
214
217
  }
215
218
  try {
216
- await at({
219
+ await lt({
217
220
  rentalUnitId: Z,
218
221
  applicantName: G.trim(),
219
222
  applicantEmail: K.trim(),
220
- applicantPhone: bt.trim() || void 0,
223
+ applicantPhone: wt.trim() || void 0,
221
224
  monthlyIncome: q ? Number(q) : void 0,
222
225
  moveInDate: J ? new Date(J).toISOString() : void 0
223
- }), s.success("Application submitted", "The owner will review your rental application shortly."), W(!1), vt(""), yt(""), xt(""), St(""), Ct("");
226
+ }), s.success("Application submitted", "The owner will review your rental application shortly."), W(!1), St(""), Ct(""), Tt(""), Et(""), Dt("");
224
227
  } catch (e) {
225
228
  s.error("Could not submit application", e.message);
226
229
  }
227
- }, ln = async () => {
230
+ }, pn = async () => {
228
231
  try {
229
- await st({
230
- propertyId: m.id,
231
- title: `${m.title} — investment`,
232
+ await dt({
233
+ propertyId: h.id,
234
+ title: `${h.title} — investment`,
232
235
  status: "active",
233
236
  investmentType: "full_ownership",
234
237
  riskLevel: "medium",
235
- totalValue: m.price.amount,
238
+ totalValue: h.price.amount,
236
239
  startDate: (/* @__PURE__ */ new Date()).toISOString()
237
- }), s.success("Tracking investment", `${m.title} was added to your portfolio.`);
240
+ }), s.success("Tracking investment", `${h.title} was added to your portfolio.`);
238
241
  } catch (e) {
239
242
  s.error("Could not track investment", e.message);
240
243
  }
241
- }, Q = m.price.amount, un = Number(wt) || Math.round(Q * .005), dn = Number(Et) || Math.round(Q * .0015), fn = un * 12, pn = Q > 0 ? fn / Q * 100 : 0, mn = fn - dn * 12, hn = Q > 0 ? mn / Q * 100 : 0, gn = Math.max(0, Number(Ot) || 0) / 100, $ = Array.from({ length: 6 }, (e, t) => ({
244
+ }, Q = h.price.amount, mn = Number(Ot) || Math.round(Q * .005), hn = Number(At) || Math.round(Q * .0015), gn = mn * 12, _n = Q > 0 ? gn / Q * 100 : 0, vn = gn - hn * 12, yn = Q > 0 ? vn / Q * 100 : 0, bn = Math.max(0, Number(Mt) || 0) / 100, $ = Array.from({ length: 6 }, (e, t) => ({
242
245
  label: t === 0 ? "Now" : `Yr ${t}`,
243
- value: Math.round(Q * (1 + gn) ** +t)
244
- })), _n = $[$.length - 1].value, vn = _n - Q + mn * 5, yn = Q > 0 ? vn / Q * 100 : 0;
245
- return /* @__PURE__ */ C("div", {
246
+ value: Math.round(Q * (1 + bn) ** +t)
247
+ })), xn = $[$.length - 1].value, Sn = xn - Q + vn * 5, Cn = Q > 0 ? Sn / Q * 100 : 0;
248
+ return /* @__PURE__ */ S("div", {
246
249
  className: "space-y-6 p-6",
247
250
  children: [
248
- /* @__PURE__ */ S(te, { items: Zt }),
249
- /* @__PURE__ */ C("div", {
251
+ /* @__PURE__ */ x(te, { items: tn }),
252
+ /* @__PURE__ */ S("div", {
250
253
  className: "flex flex-wrap items-center gap-3",
251
254
  children: [
252
- /* @__PURE__ */ C("button", {
255
+ /* @__PURE__ */ S("button", {
253
256
  onClick: () => u("../properties"),
254
257
  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",
255
- children: [/* @__PURE__ */ S(Ce, { className: "h-4 w-4" }), "Back"]
258
+ children: [/* @__PURE__ */ x(Te, { className: "h-4 w-4" }), "Back"]
256
259
  }),
257
- /* @__PURE__ */ S(i, {
258
- label: m.status.replace("_", " "),
259
- variant: j[m.status] ?? "default",
260
+ /* @__PURE__ */ x(i, {
261
+ label: h.status.replace("_", " "),
262
+ variant: A[h.status] ?? "default",
260
263
  dot: !0
261
264
  }),
262
- m.verificationStatus === "verified" && /* @__PURE__ */ S(i, {
265
+ h.verificationStatus === "verified" && /* @__PURE__ */ x(i, {
263
266
  label: "Verified",
264
267
  variant: "success",
265
268
  dot: !0
266
269
  }),
267
- m.price.negotiable && /* @__PURE__ */ S(i, {
270
+ h.price.negotiable && /* @__PURE__ */ x(i, {
268
271
  label: "Negotiable",
269
272
  variant: "info"
270
273
  }),
271
- /* @__PURE__ */ C("div", {
274
+ /* @__PURE__ */ S("div", {
272
275
  className: "ml-auto flex items-center gap-2",
273
- children: [/* @__PURE__ */ C(w, {
276
+ children: [/* @__PURE__ */ S(C, {
274
277
  type: "button",
275
278
  variant: "outline",
276
279
  size: "sm",
277
- onClick: an,
278
- children: [/* @__PURE__ */ S(Re, { className: "mr-1.5 h-4 w-4" }), "Edit"]
279
- }), /* @__PURE__ */ C(w, {
280
+ onClick: ln,
281
+ children: [/* @__PURE__ */ x(Ve, { className: "mr-1.5 h-4 w-4" }), "Edit"]
282
+ }), /* @__PURE__ */ S(C, {
280
283
  type: "button",
281
284
  variant: "outline",
282
285
  size: "sm",
283
286
  onClick: () => U(!0),
284
- children: [/* @__PURE__ */ S(Ve, { className: "mr-1.5 h-4 w-4" }), "Delete"]
287
+ children: [/* @__PURE__ */ x(We, { className: "mr-1.5 h-4 w-4" }), "Delete"]
285
288
  })]
286
289
  })
287
290
  ]
288
291
  }),
289
- /* @__PURE__ */ S(Je, {
292
+ /* @__PURE__ */ x(Ze, {
290
293
  className: "max-w-3xl",
291
294
  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."
292
295
  }),
293
- /* @__PURE__ */ S(qe, {
296
+ /* @__PURE__ */ x(Xe, {
294
297
  storageKey: "housingvista-property-detail",
295
298
  steps: [
296
299
  {
@@ -309,76 +312,76 @@ var j = {
309
312
  id: "location",
310
313
  label: "Explore the location",
311
314
  description: "See the neighborhood, nearby landmarks, and map.",
312
- onClick: () => ut("location")
315
+ onClick: () => mt("location")
313
316
  }
314
317
  ]
315
318
  }),
316
- /* @__PURE__ */ C("div", {
319
+ /* @__PURE__ */ S("div", {
317
320
  className: "space-y-3",
318
- children: [/* @__PURE__ */ C("div", {
321
+ children: [/* @__PURE__ */ S("div", {
319
322
  className: "relative overflow-hidden rounded-xl border border-border-subtle bg-bg-sunken",
320
323
  children: [
321
- m.images.length > 0 ? /* @__PURE__ */ S("img", {
322
- src: m.images[L]?.url,
323
- alt: m.images[L]?.title ?? m.title,
324
+ h.images.length > 0 ? /* @__PURE__ */ x("img", {
325
+ src: h.images[L]?.url,
326
+ alt: h.images[L]?.title ?? h.title,
324
327
  className: "h-80 w-full object-cover sm:h-[26rem]"
325
- }) : /* @__PURE__ */ C("div", {
328
+ }) : /* @__PURE__ */ S("div", {
326
329
  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]",
327
- children: [/* @__PURE__ */ S(De, { className: "h-12 w-12" }), /* @__PURE__ */ S("span", {
330
+ children: [/* @__PURE__ */ x(ke, { className: "h-12 w-12" }), /* @__PURE__ */ x("span", {
328
331
  className: "text-sm font-medium tracking-wide",
329
332
  children: "No photos yet"
330
333
  })]
331
334
  }),
332
- m.images.length > 1 && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S("button", {
333
- onClick: $t,
335
+ h.images.length > 1 && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x("button", {
336
+ onClick: rn,
334
337
  "aria-label": "Previous photo",
335
338
  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",
336
- children: /* @__PURE__ */ S(je, { className: "h-5 w-5" })
337
- }), /* @__PURE__ */ S("button", {
338
- onClick: Qt,
339
+ children: /* @__PURE__ */ x(Ne, { className: "h-5 w-5" })
340
+ }), /* @__PURE__ */ x("button", {
341
+ onClick: nn,
339
342
  "aria-label": "Next photo",
340
343
  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",
341
- children: /* @__PURE__ */ S(Me, { className: "h-5 w-5" })
344
+ children: /* @__PURE__ */ x(Pe, { className: "h-5 w-5" })
342
345
  })] }),
343
- m.verificationStatus === "verified" && /* @__PURE__ */ C("div", {
346
+ h.verificationStatus === "verified" && /* @__PURE__ */ S("div", {
344
347
  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",
345
- children: [/* @__PURE__ */ S(we, { className: "h-4 w-4" }), "Verified listing"]
348
+ children: [/* @__PURE__ */ x(Ee, { className: "h-4 w-4" }), "Verified listing"]
346
349
  }),
347
- /* @__PURE__ */ C("div", {
350
+ /* @__PURE__ */ S("div", {
348
351
  className: "absolute right-4 top-4 flex gap-2",
349
- children: [/* @__PURE__ */ S("button", {
350
- onClick: tn,
351
- disabled: b || P,
352
+ children: [/* @__PURE__ */ x("button", {
353
+ onClick: on,
354
+ disabled: N || P,
352
355
  "aria-label": I ? "Remove from shortlist" : "Save to shortlist",
353
356
  className: "rounded-full bg-bg-surface/85 p-2 shadow-elevation-1 backdrop-blur-sm transition-colors hover:bg-bg-surface disabled:opacity-60",
354
- children: /* @__PURE__ */ S(f, { className: e("h-5 w-5", I ? "fill-status-error-text text-status-error-text" : "text-text-secondary") })
355
- }), /* @__PURE__ */ S("button", {
356
- onClick: en,
357
+ children: /* @__PURE__ */ x(f, { className: e("h-5 w-5", I ? "fill-status-error-text text-status-error-text" : "text-text-secondary") })
358
+ }), /* @__PURE__ */ x("button", {
359
+ onClick: an,
357
360
  "aria-label": "Share this listing",
358
361
  className: "rounded-full bg-bg-surface/85 p-2 shadow-elevation-1 backdrop-blur-sm transition-colors hover:bg-bg-surface",
359
- children: /* @__PURE__ */ S(ze, { className: "h-5 w-5 text-text-secondary" })
362
+ children: /* @__PURE__ */ x(He, { className: "h-5 w-5 text-text-secondary" })
360
363
  })]
361
364
  }),
362
- m.images.length > 0 && /* @__PURE__ */ S("div", {
365
+ h.images.length > 0 && /* @__PURE__ */ x("div", {
363
366
  className: "absolute bottom-4 right-4",
364
- children: /* @__PURE__ */ C("span", {
367
+ children: /* @__PURE__ */ S("span", {
365
368
  className: "rounded-md bg-bg-overlay/70 px-2 py-1 text-xs font-medium text-text-inverse",
366
369
  children: [
367
370
  L + 1,
368
371
  " / ",
369
- m.images.length
372
+ h.images.length
370
373
  ]
371
374
  })
372
375
  })
373
376
  ]
374
- }), m.images.length > 1 && /* @__PURE__ */ S("div", {
377
+ }), h.images.length > 1 && /* @__PURE__ */ x("div", {
375
378
  className: "flex gap-3 overflow-x-auto pb-1",
376
- children: m.images.map((t, n) => /* @__PURE__ */ S("button", {
379
+ children: h.images.map((t, n) => /* @__PURE__ */ x("button", {
377
380
  onClick: () => R(n),
378
381
  "aria-label": `View photo ${n + 1}`,
379
382
  "aria-current": n === L,
380
383
  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 === L ? "border-action-primary-border" : "border-transparent opacity-70 hover:opacity-100"),
381
- children: /* @__PURE__ */ S("img", {
384
+ children: /* @__PURE__ */ x("img", {
382
385
  src: t.url,
383
386
  alt: t.title ?? `Photo ${n + 1}`,
384
387
  className: "h-full w-full object-cover"
@@ -386,75 +389,75 @@ var j = {
386
389
  }, t.id))
387
390
  })]
388
391
  }),
389
- /* @__PURE__ */ C("div", {
392
+ /* @__PURE__ */ S("div", {
390
393
  className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
391
- children: [/* @__PURE__ */ C("div", {
394
+ children: [/* @__PURE__ */ S("div", {
392
395
  className: "space-y-6 lg:col-span-2",
393
- children: [/* @__PURE__ */ C(Ke, { children: [
394
- /* @__PURE__ */ C("div", {
396
+ children: [/* @__PURE__ */ S(Ye, { children: [
397
+ /* @__PURE__ */ S("div", {
395
398
  className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
396
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h1", {
399
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h1", {
397
400
  className: "text-2xl font-bold text-text-primary",
398
- children: m.title
399
- }), /* @__PURE__ */ C("div", {
401
+ children: h.title
402
+ }), /* @__PURE__ */ S("div", {
400
403
  className: "mt-2 flex items-center text-text-secondary",
401
- children: [/* @__PURE__ */ S(p, { className: "mr-1.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ S("span", {
404
+ children: [/* @__PURE__ */ x(p, { className: "mr-1.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ x("span", {
402
405
  className: "text-sm",
403
406
  children: [
404
- m.location.address,
405
- m.location.neighborhood,
406
- m.location.city
407
+ h.location.address,
408
+ h.location.neighborhood,
409
+ h.location.city
407
410
  ].filter(Boolean).join(", ")
408
411
  })]
409
- })] }), /* @__PURE__ */ C("div", {
412
+ })] }), /* @__PURE__ */ S("div", {
410
413
  className: "text-right",
411
- children: [/* @__PURE__ */ S("div", {
414
+ children: [/* @__PURE__ */ x("div", {
412
415
  className: "text-2xl font-bold text-text-primary",
413
- children: X(m.price)
414
- }), m.price.pricePerSqft && /* @__PURE__ */ C("div", {
416
+ children: X(h.price)
417
+ }), h.price.pricePerSqft && /* @__PURE__ */ S("div", {
415
418
  className: "text-sm text-text-secondary",
416
- children: [n(m.price.pricePerSqft), "/sqft"]
419
+ children: [n(h.price.pricePerSqft), "/sqft"]
417
420
  })]
418
421
  })]
419
422
  }),
420
- /* @__PURE__ */ S("div", {
423
+ /* @__PURE__ */ x("div", {
421
424
  className: "mt-6 grid grid-cols-2 gap-3 border-t border-border-subtle pt-6 sm:grid-cols-4",
422
425
  children: [
423
- m.specifications.bedrooms != null && {
424
- icon: Ee,
425
- value: String(m.specifications.bedrooms),
426
- label: m.specifications.bedrooms === 1 ? "Bedroom" : "Bedrooms"
426
+ h.specifications.bedrooms != null && {
427
+ icon: Oe,
428
+ value: String(h.specifications.bedrooms),
429
+ label: h.specifications.bedrooms === 1 ? "Bedroom" : "Bedrooms"
427
430
  },
428
- m.specifications.bathrooms != null && {
429
- icon: Te,
430
- value: String(m.specifications.bathrooms),
431
- label: m.specifications.bathrooms === 1 ? "Bathroom" : "Bathrooms"
431
+ h.specifications.bathrooms != null && {
432
+ icon: De,
433
+ value: String(h.specifications.bathrooms),
434
+ label: h.specifications.bathrooms === 1 ? "Bathroom" : "Bathrooms"
432
435
  },
433
436
  {
434
- icon: Be,
435
- value: r(m.specifications.totalArea),
437
+ icon: Ue,
438
+ value: r(h.specifications.totalArea),
436
439
  label: "sq ft"
437
440
  },
438
- m.specifications.parking != null && m.specifications.parking > 0 ? {
439
- icon: Ae,
440
- value: String(m.specifications.parking),
441
+ h.specifications.parking != null && h.specifications.parking > 0 ? {
442
+ icon: Me,
443
+ value: String(h.specifications.parking),
441
444
  label: "Parking"
442
- } : m.specifications.facing ? {
443
- icon: Ne,
444
- value: m.specifications.facing,
445
+ } : h.specifications.facing ? {
446
+ icon: Fe,
447
+ value: h.specifications.facing,
445
448
  label: "Facing"
446
449
  } : !1
447
450
  ].filter((e) => !!e).map((e) => {
448
451
  let t = e.icon;
449
- return /* @__PURE__ */ C("div", {
452
+ return /* @__PURE__ */ S("div", {
450
453
  className: "flex flex-col items-center gap-1 rounded-lg border border-border-subtle bg-bg-sunken/40 p-3 text-center",
451
454
  children: [
452
- /* @__PURE__ */ S(t, { className: "h-5 w-5 text-text-secondary" }),
453
- /* @__PURE__ */ S("span", {
455
+ /* @__PURE__ */ x(t, { className: "h-5 w-5 text-text-secondary" }),
456
+ /* @__PURE__ */ x("span", {
454
457
  className: "text-base font-semibold text-text-primary",
455
458
  children: e.value
456
459
  }),
457
- /* @__PURE__ */ S("span", {
460
+ /* @__PURE__ */ x("span", {
458
461
  className: "text-xs text-text-secondary",
459
462
  children: e.label
460
463
  })
@@ -462,255 +465,255 @@ var j = {
462
465
  }, e.label);
463
466
  })
464
467
  }),
465
- m.description && /* @__PURE__ */ C("div", {
468
+ h.description && /* @__PURE__ */ S("div", {
466
469
  className: "mt-6 border-t border-border-subtle pt-6",
467
- children: [/* @__PURE__ */ S("h3", {
470
+ children: [/* @__PURE__ */ x("h3", {
468
471
  className: "mb-3 text-base font-semibold text-text-primary",
469
472
  children: "Description"
470
- }), /* @__PURE__ */ S("p", {
473
+ }), /* @__PURE__ */ x("p", {
471
474
  className: "text-sm leading-relaxed text-text-secondary",
472
- children: m.description
475
+ children: h.description
473
476
  })]
474
477
  })
475
- ] }), /* @__PURE__ */ C("div", {
478
+ ] }), /* @__PURE__ */ S("div", {
476
479
  className: "rounded-lg border border-border-subtle bg-bg-surface",
477
- children: [/* @__PURE__ */ S("div", {
480
+ children: [/* @__PURE__ */ x("div", {
478
481
  className: "border-b border-border-subtle",
479
- children: /* @__PURE__ */ S("nav", {
482
+ children: /* @__PURE__ */ x("nav", {
480
483
  className: "flex space-x-6 overflow-x-auto px-6",
481
- children: Xe.map((t) => /* @__PURE__ */ S("button", {
482
- onClick: () => ut(t.id),
484
+ children: $e.map((t) => /* @__PURE__ */ x("button", {
485
+ onClick: () => mt(t.id),
483
486
  className: e("whitespace-nowrap border-b-2 py-3 text-sm font-medium transition-colors", z === t.id ? "border-action-primary-border text-text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
484
487
  children: t.label
485
488
  }, t.id))
486
489
  })
487
- }), /* @__PURE__ */ C("div", {
490
+ }), /* @__PURE__ */ S("div", {
488
491
  className: "p-6",
489
492
  children: [
490
- z === "details" && /* @__PURE__ */ C("div", {
493
+ z === "details" && /* @__PURE__ */ S("div", {
491
494
  className: "grid grid-cols-1 gap-6 sm:grid-cols-2",
492
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h4", {
495
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h4", {
493
496
  className: "mb-3 text-sm font-semibold text-text-primary",
494
497
  children: "Property Information"
495
- }), /* @__PURE__ */ C("dl", {
498
+ }), /* @__PURE__ */ S("dl", {
496
499
  className: "space-y-2 text-sm",
497
500
  children: [
498
- /* @__PURE__ */ C("div", {
501
+ /* @__PURE__ */ S("div", {
499
502
  className: "flex justify-between",
500
- children: [/* @__PURE__ */ S("dt", {
503
+ children: [/* @__PURE__ */ x("dt", {
501
504
  className: "text-text-secondary",
502
505
  children: "Property Type"
503
- }), /* @__PURE__ */ S("dd", {
506
+ }), /* @__PURE__ */ x("dd", {
504
507
  className: "font-medium capitalize text-text-primary",
505
- children: m.type
508
+ children: h.type
506
509
  })]
507
510
  }),
508
- /* @__PURE__ */ C("div", {
511
+ /* @__PURE__ */ S("div", {
509
512
  className: "flex justify-between",
510
- children: [/* @__PURE__ */ S("dt", {
513
+ children: [/* @__PURE__ */ x("dt", {
511
514
  className: "text-text-secondary",
512
515
  children: "Category"
513
- }), /* @__PURE__ */ S("dd", {
516
+ }), /* @__PURE__ */ x("dd", {
514
517
  className: "font-medium capitalize text-text-primary",
515
- children: m.category
518
+ children: h.category
516
519
  })]
517
520
  }),
518
- m.specifications.ageOfProperty != null && /* @__PURE__ */ C("div", {
521
+ h.specifications.ageOfProperty != null && /* @__PURE__ */ S("div", {
519
522
  className: "flex justify-between",
520
- children: [/* @__PURE__ */ S("dt", {
523
+ children: [/* @__PURE__ */ x("dt", {
521
524
  className: "text-text-secondary",
522
525
  children: "Age of Property"
523
- }), /* @__PURE__ */ C("dd", {
526
+ }), /* @__PURE__ */ S("dd", {
524
527
  className: "font-medium text-text-primary",
525
- children: [m.specifications.ageOfProperty, " years"]
528
+ children: [h.specifications.ageOfProperty, " years"]
526
529
  })]
527
530
  }),
528
- /* @__PURE__ */ C("div", {
531
+ /* @__PURE__ */ S("div", {
529
532
  className: "flex justify-between",
530
- children: [/* @__PURE__ */ S("dt", {
533
+ children: [/* @__PURE__ */ x("dt", {
531
534
  className: "text-text-secondary",
532
535
  children: "Furnishing"
533
- }), /* @__PURE__ */ S("dd", {
536
+ }), /* @__PURE__ */ x("dd", {
534
537
  className: "font-medium capitalize text-text-primary",
535
- children: m.specifications.furnishingStatus?.replace("_", " ")
538
+ children: h.specifications.furnishingStatus?.replace("_", " ")
536
539
  })]
537
540
  }),
538
- m.specifications.facing && /* @__PURE__ */ C("div", {
541
+ h.specifications.facing && /* @__PURE__ */ S("div", {
539
542
  className: "flex justify-between",
540
- children: [/* @__PURE__ */ S("dt", {
543
+ children: [/* @__PURE__ */ x("dt", {
541
544
  className: "text-text-secondary",
542
545
  children: "Facing"
543
- }), /* @__PURE__ */ S("dd", {
546
+ }), /* @__PURE__ */ x("dd", {
544
547
  className: "font-medium text-text-primary",
545
- children: m.specifications.facing
548
+ children: h.specifications.facing
546
549
  })]
547
550
  }),
548
- m.specifications.floors != null && /* @__PURE__ */ C("div", {
551
+ h.specifications.floors != null && /* @__PURE__ */ S("div", {
549
552
  className: "flex justify-between",
550
- children: [/* @__PURE__ */ S("dt", {
553
+ children: [/* @__PURE__ */ x("dt", {
551
554
  className: "text-text-secondary",
552
555
  children: "Floor"
553
- }), /* @__PURE__ */ C("dd", {
556
+ }), /* @__PURE__ */ S("dd", {
554
557
  className: "font-medium text-text-primary",
555
558
  children: [
556
- m.specifications.floors,
559
+ h.specifications.floors,
557
560
  " of ",
558
- m.specifications.totalFloors
561
+ h.specifications.totalFloors
559
562
  ]
560
563
  })]
561
564
  })
562
565
  ]
563
- })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h4", {
566
+ })] }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h4", {
564
567
  className: "mb-3 text-sm font-semibold text-text-primary",
565
568
  children: "Area Details"
566
- }), /* @__PURE__ */ C("dl", {
569
+ }), /* @__PURE__ */ S("dl", {
567
570
  className: "space-y-2 text-sm",
568
571
  children: [
569
- /* @__PURE__ */ C("div", {
572
+ /* @__PURE__ */ S("div", {
570
573
  className: "flex justify-between",
571
- children: [/* @__PURE__ */ S("dt", {
574
+ children: [/* @__PURE__ */ x("dt", {
572
575
  className: "text-text-secondary",
573
576
  children: "Total Area"
574
- }), /* @__PURE__ */ C("dd", {
577
+ }), /* @__PURE__ */ S("dd", {
575
578
  className: "font-medium text-text-primary",
576
- children: [r(m.specifications.totalArea), " sqft"]
579
+ children: [r(h.specifications.totalArea), " sqft"]
577
580
  })]
578
581
  }),
579
- m.specifications.carpetArea && /* @__PURE__ */ C("div", {
582
+ h.specifications.carpetArea && /* @__PURE__ */ S("div", {
580
583
  className: "flex justify-between",
581
- children: [/* @__PURE__ */ S("dt", {
584
+ children: [/* @__PURE__ */ x("dt", {
582
585
  className: "text-text-secondary",
583
586
  children: "Carpet Area"
584
- }), /* @__PURE__ */ C("dd", {
587
+ }), /* @__PURE__ */ S("dd", {
585
588
  className: "font-medium text-text-primary",
586
- children: [r(m.specifications.carpetArea), " sqft"]
589
+ children: [r(h.specifications.carpetArea), " sqft"]
587
590
  })]
588
591
  }),
589
- m.specifications.builtUpArea && /* @__PURE__ */ C("div", {
592
+ h.specifications.builtUpArea && /* @__PURE__ */ S("div", {
590
593
  className: "flex justify-between",
591
- children: [/* @__PURE__ */ S("dt", {
594
+ children: [/* @__PURE__ */ x("dt", {
592
595
  className: "text-text-secondary",
593
596
  children: "Built-up Area"
594
- }), /* @__PURE__ */ C("dd", {
597
+ }), /* @__PURE__ */ S("dd", {
595
598
  className: "font-medium text-text-primary",
596
- children: [r(m.specifications.builtUpArea), " sqft"]
599
+ children: [r(h.specifications.builtUpArea), " sqft"]
597
600
  })]
598
601
  }),
599
- m.price.pricePerSqft && /* @__PURE__ */ C("div", {
602
+ h.price.pricePerSqft && /* @__PURE__ */ S("div", {
600
603
  className: "flex justify-between",
601
- children: [/* @__PURE__ */ S("dt", {
604
+ children: [/* @__PURE__ */ x("dt", {
602
605
  className: "text-text-secondary",
603
606
  children: "Price per sqft"
604
- }), /* @__PURE__ */ S("dd", {
607
+ }), /* @__PURE__ */ x("dd", {
605
608
  className: "font-medium text-text-primary",
606
- children: n(m.price.pricePerSqft)
609
+ children: n(h.price.pricePerSqft)
607
610
  })]
608
611
  })
609
612
  ]
610
613
  })] })]
611
614
  }),
612
- z === "amenities" && /* @__PURE__ */ S("div", { children: m.amenities.length > 0 ? /* @__PURE__ */ S("div", {
615
+ z === "amenities" && /* @__PURE__ */ x("div", { children: h.amenities.length > 0 ? /* @__PURE__ */ x("div", {
613
616
  className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4",
614
- children: m.amenities.map((e) => /* @__PURE__ */ C("div", {
617
+ children: h.amenities.map((e) => /* @__PURE__ */ S("div", {
615
618
  className: "flex flex-col items-center gap-2 rounded-lg border border-border-subtle bg-bg-sunken/40 p-4 text-center",
616
- children: [/* @__PURE__ */ S("span", {
619
+ children: [/* @__PURE__ */ x("span", {
617
620
  className: "flex h-10 w-10 items-center justify-center rounded-full bg-status-success-bg-subtle text-status-success-text",
618
- children: /* @__PURE__ */ S(Ze(e.name), { className: "h-5 w-5" })
619
- }), /* @__PURE__ */ S("span", {
621
+ children: /* @__PURE__ */ x(et(e.name), { className: "h-5 w-5" })
622
+ }), /* @__PURE__ */ x("span", {
620
623
  className: "text-sm font-medium text-text-primary",
621
624
  children: e.name
622
625
  })]
623
626
  }, e.id))
624
- }) : /* @__PURE__ */ S(a, {
627
+ }) : /* @__PURE__ */ x(a, {
625
628
  illustration: "empty-generic",
626
629
  title: "No amenities listed",
627
630
  description: "This property has no amenities recorded yet.",
628
631
  className: "border-0 bg-transparent p-6"
629
632
  }) }),
630
- z === "location" && /* @__PURE__ */ C("div", {
633
+ z === "location" && /* @__PURE__ */ S("div", {
631
634
  className: "space-y-4",
632
635
  children: [
633
- /* @__PURE__ */ C("div", {
636
+ /* @__PURE__ */ S("div", {
634
637
  className: "relative h-56 overflow-hidden rounded-xl border border-border-subtle bg-bg-sunken",
635
638
  children: [
636
- /* @__PURE__ */ S("div", {
639
+ /* @__PURE__ */ x("div", {
637
640
  className: "absolute inset-0 opacity-60",
638
641
  style: {
639
642
  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)",
640
643
  backgroundSize: "32px 32px"
641
644
  }
642
645
  }),
643
- /* @__PURE__ */ C("div", {
646
+ /* @__PURE__ */ S("div", {
644
647
  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",
645
648
  children: [
646
- /* @__PURE__ */ S("span", {
649
+ /* @__PURE__ */ x("span", {
647
650
  className: "flex h-11 w-11 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text shadow-pop",
648
- children: /* @__PURE__ */ S(p, { className: "h-5 w-5" })
651
+ children: /* @__PURE__ */ x(p, { className: "h-5 w-5" })
649
652
  }),
650
- /* @__PURE__ */ S("span", {
653
+ /* @__PURE__ */ x("span", {
651
654
  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",
652
- children: m.location.neighborhood || m.location.city
655
+ children: h.location.neighborhood || h.location.city
653
656
  }),
654
- /* @__PURE__ */ S("span", {
657
+ /* @__PURE__ */ x("span", {
655
658
  className: "text-xs text-text-secondary",
656
- children: [m.location.city, m.location.state].filter(Boolean).join(", ")
659
+ children: [h.location.city, h.location.state].filter(Boolean).join(", ")
657
660
  })
658
661
  ]
659
662
  }),
660
- m.location.coordinates?.latitude != null && m.location.coordinates?.longitude != null && /* @__PURE__ */ C("a", {
661
- href: `https://www.google.com/maps/search/?api=1&query=${m.location.coordinates.latitude},${m.location.coordinates.longitude}`,
663
+ h.location.coordinates?.latitude != null && h.location.coordinates?.longitude != null && /* @__PURE__ */ S("a", {
664
+ href: `https://www.google.com/maps/search/?api=1&query=${h.location.coordinates.latitude},${h.location.coordinates.longitude}`,
662
665
  target: "_blank",
663
666
  rel: "noreferrer",
664
667
  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",
665
- children: [/* @__PURE__ */ S(Le, { className: "h-3.5 w-3.5" }), "Open in Maps"]
668
+ children: [/* @__PURE__ */ x(ze, { className: "h-3.5 w-3.5" }), "Open in Maps"]
666
669
  })
667
670
  ]
668
671
  }),
669
- m.location.address && /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("div", {
672
+ h.location.address && /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("div", {
670
673
  className: "mb-1 text-xs text-text-secondary",
671
674
  children: "Full Address"
672
- }), /* @__PURE__ */ S("div", {
675
+ }), /* @__PURE__ */ x("div", {
673
676
  className: "text-sm font-medium text-text-primary",
674
- children: m.location.address
677
+ children: h.location.address
675
678
  })] }),
676
- /* @__PURE__ */ C("div", {
679
+ /* @__PURE__ */ S("div", {
677
680
  className: "grid grid-cols-1 gap-4 text-sm sm:grid-cols-3",
678
681
  children: [
679
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("div", {
682
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("div", {
680
683
  className: "mb-1 text-xs text-text-secondary",
681
684
  children: "Neighborhood"
682
- }), /* @__PURE__ */ S("div", {
685
+ }), /* @__PURE__ */ x("div", {
683
686
  className: "font-medium text-text-primary",
684
- children: m.location.neighborhood || "—"
687
+ children: h.location.neighborhood || "—"
685
688
  })] }),
686
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("div", {
689
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("div", {
687
690
  className: "mb-1 text-xs text-text-secondary",
688
691
  children: "City, State"
689
- }), /* @__PURE__ */ C("div", {
692
+ }), /* @__PURE__ */ S("div", {
690
693
  className: "font-medium text-text-primary",
691
694
  children: [
692
- m.location.city,
695
+ h.location.city,
693
696
  ", ",
694
- m.location.state
697
+ h.location.state
695
698
  ]
696
699
  })] }),
697
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("div", {
700
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("div", {
698
701
  className: "mb-1 text-xs text-text-secondary",
699
702
  children: "PIN / ZIP"
700
- }), /* @__PURE__ */ S("div", {
703
+ }), /* @__PURE__ */ x("div", {
701
704
  className: "font-medium text-text-primary",
702
- children: m.location.pincode || "—"
705
+ children: h.location.pincode || "—"
703
706
  })] })
704
707
  ]
705
708
  }),
706
- m.location.landmarks.length > 0 && /* @__PURE__ */ C("div", {
709
+ h.location.landmarks.length > 0 && /* @__PURE__ */ S("div", {
707
710
  className: "border-t border-border-subtle pt-4",
708
- children: [/* @__PURE__ */ S("h4", {
711
+ children: [/* @__PURE__ */ x("h4", {
709
712
  className: "mb-2 text-xs font-medium text-text-secondary",
710
713
  children: "Nearby Landmarks"
711
- }), /* @__PURE__ */ S("div", {
714
+ }), /* @__PURE__ */ x("div", {
712
715
  className: "flex flex-wrap gap-2",
713
- children: m.location.landmarks.map((e) => /* @__PURE__ */ S("span", {
716
+ children: h.location.landmarks.map((e) => /* @__PURE__ */ x("span", {
714
717
  className: "rounded-full bg-bg-sunken px-3 py-1 text-xs text-text-primary",
715
718
  children: e
716
719
  }, e))
@@ -721,194 +724,194 @@ var j = {
721
724
  ]
722
725
  })]
723
726
  })]
724
- }), /* @__PURE__ */ C("div", {
727
+ }), /* @__PURE__ */ S("div", {
725
728
  className: "space-y-6",
726
729
  children: [
727
- /* @__PURE__ */ C("div", {
730
+ /* @__PURE__ */ S("div", {
728
731
  id: "property-actions",
729
732
  className: "scroll-mt-6 rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-elevation-1 lg:sticky lg:top-6",
730
733
  children: [
731
- /* @__PURE__ */ C("div", {
734
+ /* @__PURE__ */ S("div", {
732
735
  className: "flex flex-wrap items-baseline gap-x-2 gap-y-1",
733
- children: [/* @__PURE__ */ S("span", {
736
+ children: [/* @__PURE__ */ x("span", {
734
737
  className: "text-3xl font-bold text-text-primary",
735
- children: X(m.price)
736
- }), m.price.negotiable && /* @__PURE__ */ S("span", {
738
+ children: X(h.price)
739
+ }), h.price.negotiable && /* @__PURE__ */ x("span", {
737
740
  className: "text-sm text-text-secondary",
738
741
  children: "· Negotiable"
739
742
  })]
740
743
  }),
741
- m.price.pricePerSqft && /* @__PURE__ */ C("p", {
744
+ h.price.pricePerSqft && /* @__PURE__ */ S("p", {
742
745
  className: "mt-1 text-sm text-text-secondary",
743
- children: [n(m.price.pricePerSqft, m.price.currency), "/sqft"]
746
+ children: [n(h.price.pricePerSqft, h.price.currency), "/sqft"]
744
747
  }),
745
- /* @__PURE__ */ C("div", {
748
+ /* @__PURE__ */ S("div", {
746
749
  className: "mt-4 space-y-2",
747
750
  children: [
748
- /* @__PURE__ */ C(w, {
751
+ /* @__PURE__ */ S(C, {
749
752
  type: "button",
750
753
  className: "w-full justify-center",
751
754
  onClick: () => V(!0),
752
- children: [/* @__PURE__ */ S(Pe, { className: "mr-2 h-4 w-4" }), "Make Offer"]
755
+ children: [/* @__PURE__ */ x(Ie, { className: "mr-2 h-4 w-4" }), "Make Offer"]
753
756
  }),
754
- m.status === "for_rent" && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ C(w, {
757
+ h.status === "for_rent" && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ S(C, {
755
758
  type: "button",
756
759
  className: "w-full justify-center",
757
760
  onClick: () => W(!0),
758
761
  disabled: !Z,
759
- children: [/* @__PURE__ */ S(Fe, { className: "mr-2 h-4 w-4" }), "Apply to Rent"]
760
- }), !Z && /* @__PURE__ */ S("p", {
762
+ children: [/* @__PURE__ */ x(Le, { className: "mr-2 h-4 w-4" }), "Apply to Rent"]
763
+ }), !Z && /* @__PURE__ */ x("p", {
761
764
  className: "px-1 text-xs text-text-secondary",
762
765
  children: "No rental unit is listed for this property yet — applications open once a unit is added."
763
766
  })] }),
764
- /* @__PURE__ */ C("div", {
767
+ /* @__PURE__ */ S("div", {
765
768
  className: "grid grid-cols-2 gap-2",
766
- children: [/* @__PURE__ */ C(w, {
769
+ children: [/* @__PURE__ */ S(C, {
767
770
  type: "button",
768
771
  variant: "outline",
769
772
  className: "w-full justify-center",
770
773
  onClick: () => B(!0),
771
- children: [/* @__PURE__ */ S(ke, { className: "mr-2 h-4 w-4" }), "Viewing"]
772
- }), /* @__PURE__ */ C(w, {
774
+ children: [/* @__PURE__ */ x(je, { className: "mr-2 h-4 w-4" }), "Viewing"]
775
+ }), /* @__PURE__ */ S(C, {
773
776
  type: "button",
774
777
  variant: "outline",
775
778
  className: "w-full justify-center",
776
- onClick: () => _t(!0),
777
- children: [/* @__PURE__ */ S(Ie, { className: "mr-2 h-4 w-4" }), "Contact"]
779
+ onClick: () => xt(!0),
780
+ children: [/* @__PURE__ */ x(Re, { className: "mr-2 h-4 w-4" }), "Contact"]
778
781
  })]
779
782
  }),
780
- /* @__PURE__ */ C(w, {
783
+ /* @__PURE__ */ S(C, {
781
784
  type: "button",
782
785
  variant: "outline",
783
786
  className: "w-full justify-center",
784
- onClick: tn,
785
- disabled: b || P,
786
- children: [/* @__PURE__ */ S(f, { className: e("mr-2 h-4 w-4", I && "fill-status-error-text text-status-error-text") }), I ? "Saved to Shortlist" : "Save to Shortlist"]
787
+ onClick: on,
788
+ disabled: N || P,
789
+ children: [/* @__PURE__ */ x(f, { className: e("mr-2 h-4 w-4", I && "fill-status-error-text text-status-error-text") }), I ? "Saved to Shortlist" : "Save to Shortlist"]
787
790
  })
788
791
  ]
789
792
  }),
790
- m.verificationStatus === "verified" && /* @__PURE__ */ C("div", {
793
+ h.verificationStatus === "verified" && /* @__PURE__ */ S("div", {
791
794
  className: "mt-4 flex items-center gap-2 border-t border-border-subtle pt-4 text-sm font-medium text-status-success-text",
792
- children: [/* @__PURE__ */ S(we, { className: "h-4 w-4" }), "Verified listing"]
795
+ children: [/* @__PURE__ */ x(Ee, { className: "h-4 w-4" }), "Verified listing"]
793
796
  })
794
797
  ]
795
798
  }),
796
- /* @__PURE__ */ C("div", {
799
+ /* @__PURE__ */ S("div", {
797
800
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
798
801
  children: [
799
- /* @__PURE__ */ C("div", {
802
+ /* @__PURE__ */ S("div", {
800
803
  className: "mb-4 flex items-center gap-2",
801
- children: [/* @__PURE__ */ S(Oe, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ S("h3", {
804
+ children: [/* @__PURE__ */ x(Ae, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ x("h3", {
802
805
  className: "text-base font-semibold text-text-primary",
803
806
  children: "Investment Analysis"
804
807
  })]
805
808
  }),
806
- /* @__PURE__ */ C("div", {
809
+ /* @__PURE__ */ S("div", {
807
810
  className: "space-y-3",
808
811
  children: [
809
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
812
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("label", {
810
813
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
811
814
  children: [
812
815
  "Expected monthly rent (",
813
- m.price.currency,
816
+ h.price.currency,
814
817
  ")"
815
818
  ]
816
- }), /* @__PURE__ */ S("input", {
819
+ }), /* @__PURE__ */ x("input", {
817
820
  type: "number",
818
821
  min: 0,
819
- value: wt,
820
- onChange: (e) => Tt(e.target.value),
821
- placeholder: String(un),
822
- className: M
822
+ value: Ot,
823
+ onChange: (e) => kt(e.target.value),
824
+ placeholder: String(mn),
825
+ className: j
823
826
  })] }),
824
- /* @__PURE__ */ C("div", {
827
+ /* @__PURE__ */ S("div", {
825
828
  className: "grid grid-cols-2 gap-3",
826
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
829
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("label", {
827
830
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
828
831
  children: [
829
832
  "Monthly costs (",
830
- m.price.currency,
833
+ h.price.currency,
831
834
  ")"
832
835
  ]
833
- }), /* @__PURE__ */ S("input", {
836
+ }), /* @__PURE__ */ x("input", {
834
837
  type: "number",
835
838
  min: 0,
836
- value: Et,
837
- onChange: (e) => Dt(e.target.value),
838
- placeholder: String(dn),
839
- className: M
840
- })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
839
+ value: At,
840
+ onChange: (e) => jt(e.target.value),
841
+ placeholder: String(hn),
842
+ className: j
843
+ })] }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
841
844
  className: "mb-1.5 block text-xs font-medium text-text-secondary",
842
845
  children: "Appreciation (%/yr)"
843
- }), /* @__PURE__ */ S("input", {
846
+ }), /* @__PURE__ */ x("input", {
844
847
  type: "number",
845
848
  min: 0,
846
849
  step: .5,
847
- value: Ot,
848
- onChange: (e) => kt(e.target.value),
849
- className: M
850
+ value: Mt,
851
+ onChange: (e) => Nt(e.target.value),
852
+ className: j
850
853
  })] })]
851
854
  }),
852
- /* @__PURE__ */ S("p", {
855
+ /* @__PURE__ */ x("p", {
853
856
  className: "text-[11px] text-text-secondary",
854
857
  children: "Costs cover maintenance, tax, insurance, and management."
855
858
  })
856
859
  ]
857
860
  }),
858
- /* @__PURE__ */ C("div", {
861
+ /* @__PURE__ */ S("div", {
859
862
  className: "mt-4 grid grid-cols-3 gap-2 border-t border-border-subtle pt-4",
860
863
  children: [
861
- /* @__PURE__ */ C("div", {
864
+ /* @__PURE__ */ S("div", {
862
865
  className: "rounded-lg border border-status-success-border bg-status-success-bg-subtle p-2.5 text-center",
863
- children: [/* @__PURE__ */ S("div", {
866
+ children: [/* @__PURE__ */ x("div", {
864
867
  className: "text-[11px] font-medium text-status-success-text",
865
868
  children: "Gross Yield"
866
- }), /* @__PURE__ */ C("div", {
869
+ }), /* @__PURE__ */ S("div", {
867
870
  className: "mt-0.5 text-lg font-bold text-status-success-text",
868
- children: [pn.toFixed(1), "%"]
871
+ children: [_n.toFixed(1), "%"]
869
872
  })]
870
873
  }),
871
- /* @__PURE__ */ C("div", {
874
+ /* @__PURE__ */ S("div", {
872
875
  className: "rounded-lg border border-border-subtle bg-bg-sunken/40 p-2.5 text-center",
873
- children: [/* @__PURE__ */ S("div", {
876
+ children: [/* @__PURE__ */ x("div", {
874
877
  className: "text-[11px] font-medium text-text-secondary",
875
878
  children: "Net Yield"
876
- }), /* @__PURE__ */ C("div", {
879
+ }), /* @__PURE__ */ S("div", {
877
880
  className: "mt-0.5 text-lg font-bold text-text-primary",
878
- children: [hn.toFixed(1), "%"]
881
+ children: [yn.toFixed(1), "%"]
879
882
  })]
880
883
  }),
881
- /* @__PURE__ */ C("div", {
884
+ /* @__PURE__ */ S("div", {
882
885
  className: "rounded-lg border border-border-subtle bg-bg-sunken/40 p-2.5 text-center",
883
- children: [/* @__PURE__ */ S("div", {
886
+ children: [/* @__PURE__ */ x("div", {
884
887
  className: "text-[11px] font-medium text-text-secondary",
885
888
  children: "5-yr ROI"
886
- }), /* @__PURE__ */ C("div", {
889
+ }), /* @__PURE__ */ S("div", {
887
890
  className: "mt-0.5 text-lg font-bold text-text-primary",
888
- children: [yn.toFixed(0), "%"]
891
+ children: [Cn.toFixed(0), "%"]
889
892
  })]
890
893
  })
891
894
  ]
892
895
  }),
893
- /* @__PURE__ */ C("div", {
896
+ /* @__PURE__ */ S("div", {
894
897
  className: "mt-4",
895
898
  children: [
896
- /* @__PURE__ */ C("div", {
899
+ /* @__PURE__ */ S("div", {
897
900
  className: "mb-1 flex items-center justify-between",
898
- children: [/* @__PURE__ */ S("span", {
901
+ children: [/* @__PURE__ */ x("span", {
899
902
  className: "text-xs font-medium text-text-secondary",
900
903
  children: "Projected Value Growth"
901
- }), /* @__PURE__ */ S("span", {
904
+ }), /* @__PURE__ */ x("span", {
902
905
  className: "text-xs font-semibold text-text-primary",
903
- children: t(_n, m.price.currency)
906
+ children: t(xn, h.price.currency)
904
907
  })]
905
908
  }),
906
- /* @__PURE__ */ S("div", {
909
+ /* @__PURE__ */ x("div", {
907
910
  className: "h-32",
908
- children: /* @__PURE__ */ S(_e, {
911
+ children: /* @__PURE__ */ x(ye, {
909
912
  width: "100%",
910
913
  height: "100%",
911
- children: /* @__PURE__ */ C(xe, {
914
+ children: /* @__PURE__ */ S(Ce, {
912
915
  data: $,
913
916
  margin: {
914
917
  top: 4,
@@ -917,37 +920,37 @@ var j = {
917
920
  left: 0
918
921
  },
919
922
  children: [
920
- /* @__PURE__ */ S("defs", { children: /* @__PURE__ */ C("linearGradient", {
923
+ /* @__PURE__ */ x("defs", { children: /* @__PURE__ */ S("linearGradient", {
921
924
  id: "hvValueGrad",
922
925
  x1: "0",
923
926
  y1: "0",
924
927
  x2: "0",
925
928
  y2: "1",
926
- children: [/* @__PURE__ */ S("stop", {
929
+ children: [/* @__PURE__ */ x("stop", {
927
930
  offset: "5%",
928
931
  stopColor: "var(--color-chart-2)",
929
932
  stopOpacity: .35
930
- }), /* @__PURE__ */ S("stop", {
933
+ }), /* @__PURE__ */ x("stop", {
931
934
  offset: "95%",
932
935
  stopColor: "var(--color-chart-2)",
933
936
  stopOpacity: 0
934
937
  })]
935
938
  }) }),
936
- /* @__PURE__ */ S(ye, {
939
+ /* @__PURE__ */ x(xe, {
937
940
  dataKey: "label",
938
941
  tick: { fontSize: 10 },
939
942
  axisLine: !1,
940
943
  tickLine: !1
941
944
  }),
942
- /* @__PURE__ */ S(be, {
945
+ /* @__PURE__ */ x(Se, {
943
946
  hide: !0,
944
947
  domain: ["dataMin", "dataMax"]
945
948
  }),
946
- /* @__PURE__ */ S(ge, {
947
- formatter: (e) => [t(e, m.price.currency), "Value"],
949
+ /* @__PURE__ */ x(ve, {
950
+ formatter: (e) => [t(e, h.price.currency), "Value"],
948
951
  labelClassName: "text-text-primary"
949
952
  }),
950
- /* @__PURE__ */ S(ve, {
953
+ /* @__PURE__ */ x(be, {
951
954
  type: "monotone",
952
955
  dataKey: "value",
953
956
  stroke: "var(--color-chart-2)",
@@ -958,89 +961,89 @@ var j = {
958
961
  })
959
962
  })
960
963
  }),
961
- /* @__PURE__ */ S("p", {
964
+ /* @__PURE__ */ x("p", {
962
965
  className: "mt-1 text-[11px] text-text-secondary",
963
966
  children: "Projection based on your inputs and market appreciation. Consult a financial advisor before investing."
964
967
  })
965
968
  ]
966
969
  }),
967
- /* @__PURE__ */ C(w, {
970
+ /* @__PURE__ */ S(C, {
968
971
  type: "button",
969
972
  variant: "outline",
970
973
  className: "mt-4 w-full justify-center",
971
- onClick: ln,
972
- disabled: ct,
973
- children: [/* @__PURE__ */ S(He, { className: "mr-2 h-4 w-4" }), ct ? "Adding…" : "Track as Investment"]
974
+ onClick: pn,
975
+ disabled: ft,
976
+ children: [/* @__PURE__ */ x(Ge, { className: "mr-2 h-4 w-4" }), ft ? "Adding…" : "Track as Investment"]
974
977
  })
975
978
  ]
976
979
  }),
977
- /* @__PURE__ */ C("div", {
980
+ /* @__PURE__ */ S("div", {
978
981
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
979
- children: [/* @__PURE__ */ S("h3", {
982
+ children: [/* @__PURE__ */ x("h3", {
980
983
  className: "mb-4 text-base font-semibold text-text-primary",
981
984
  children: "At a Glance"
982
- }), /* @__PURE__ */ C("div", {
985
+ }), /* @__PURE__ */ S("div", {
983
986
  className: "space-y-3 text-sm",
984
987
  children: [
985
- /* @__PURE__ */ C("div", {
988
+ /* @__PURE__ */ S("div", {
986
989
  className: "flex items-center justify-between",
987
- children: [/* @__PURE__ */ S("span", {
990
+ children: [/* @__PURE__ */ x("span", {
988
991
  className: "text-text-secondary",
989
992
  children: "Status"
990
- }), /* @__PURE__ */ S(i, {
991
- label: m.status.replace("_", " "),
992
- variant: j[m.status] ?? "default"
993
+ }), /* @__PURE__ */ x(i, {
994
+ label: h.status.replace("_", " "),
995
+ variant: A[h.status] ?? "default"
993
996
  })]
994
997
  }),
995
- /* @__PURE__ */ C("div", {
998
+ /* @__PURE__ */ S("div", {
996
999
  className: "flex items-center justify-between",
997
- children: [/* @__PURE__ */ S("span", {
1000
+ children: [/* @__PURE__ */ x("span", {
998
1001
  className: "text-text-secondary",
999
1002
  children: "Verification"
1000
- }), /* @__PURE__ */ S("span", {
1003
+ }), /* @__PURE__ */ x("span", {
1001
1004
  className: "font-medium capitalize text-text-primary",
1002
- children: m.verificationStatus
1005
+ children: h.verificationStatus
1003
1006
  })]
1004
1007
  }),
1005
- /* @__PURE__ */ C("div", {
1008
+ /* @__PURE__ */ S("div", {
1006
1009
  className: "flex items-center justify-between",
1007
- children: [/* @__PURE__ */ S("span", {
1010
+ children: [/* @__PURE__ */ x("span", {
1008
1011
  className: "text-text-secondary",
1009
1012
  children: "Listed"
1010
- }), /* @__PURE__ */ S("span", {
1013
+ }), /* @__PURE__ */ x("span", {
1011
1014
  className: "font-medium text-text-primary",
1012
- children: ee(String(m.createdAt))
1015
+ children: ee(String(h.createdAt))
1013
1016
  })]
1014
1017
  })
1015
1018
  ]
1016
1019
  })]
1017
1020
  }),
1018
- lt.length > 0 && /* @__PURE__ */ C("div", {
1021
+ pt.length > 0 && /* @__PURE__ */ S("div", {
1019
1022
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
1020
- children: [/* @__PURE__ */ S("h3", {
1023
+ children: [/* @__PURE__ */ x("h3", {
1021
1024
  className: "mb-4 text-base font-semibold text-text-primary",
1022
1025
  children: "Similar Properties"
1023
- }), /* @__PURE__ */ S("div", {
1026
+ }), /* @__PURE__ */ x("div", {
1024
1027
  className: "space-y-3",
1025
- children: lt.map((e) => /* @__PURE__ */ C("button", {
1028
+ children: pt.map((e) => /* @__PURE__ */ S("button", {
1026
1029
  onClick: () => u(`../properties/${e.id}`),
1027
1030
  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",
1028
- children: [e.images[0] && /* @__PURE__ */ S("img", {
1031
+ children: [e.images[0] && /* @__PURE__ */ x("img", {
1029
1032
  src: e.images[0].url,
1030
1033
  alt: e.title,
1031
1034
  className: "h-14 w-14 rounded object-cover"
1032
- }), /* @__PURE__ */ C("div", {
1035
+ }), /* @__PURE__ */ S("div", {
1033
1036
  className: "min-w-0 flex-1",
1034
1037
  children: [
1035
- /* @__PURE__ */ S("div", {
1038
+ /* @__PURE__ */ x("div", {
1036
1039
  className: "truncate text-sm font-medium text-text-primary",
1037
1040
  children: e.title
1038
1041
  }),
1039
- /* @__PURE__ */ S("div", {
1042
+ /* @__PURE__ */ x("div", {
1040
1043
  className: "text-sm font-semibold text-text-primary",
1041
1044
  children: n(e.price.amount)
1042
1045
  }),
1043
- /* @__PURE__ */ S("div", {
1046
+ /* @__PURE__ */ x("div", {
1044
1047
  className: "truncate text-xs text-text-secondary",
1045
1048
  children: [e.location.neighborhood, e.location.city].filter(Boolean).join(", ")
1046
1049
  })
@@ -1052,180 +1055,180 @@ var j = {
1052
1055
  ]
1053
1056
  })]
1054
1057
  }),
1055
- /* @__PURE__ */ S(he, {
1056
- entityId: m.id,
1058
+ /* @__PURE__ */ x(_e, {
1059
+ entityId: h.id,
1057
1060
  entityType: "housingvista-property"
1058
1061
  }),
1059
- /* @__PURE__ */ S(me, {
1060
- open: gt,
1061
- onOpenChange: _t,
1062
- entityId: m.id,
1062
+ /* @__PURE__ */ x(ge, {
1063
+ open: bt,
1064
+ onOpenChange: xt,
1065
+ entityId: h.id,
1063
1066
  entityType: "housingvista-property",
1064
- title: m.title,
1067
+ title: h.title,
1065
1068
  pagePath: d.pathname,
1066
1069
  heading: "Contact owner",
1067
- description: `Ask a question or start a conversation about ${m.title}.`
1070
+ description: `Ask a question or start a conversation about ${h.title}.`
1068
1071
  }),
1069
- /* @__PURE__ */ S(T, {
1070
- open: ht,
1072
+ /* @__PURE__ */ x(w, {
1073
+ open: yt,
1071
1074
  onOpenChange: W,
1072
- children: /* @__PURE__ */ S(E, {
1075
+ children: /* @__PURE__ */ x(T, {
1073
1076
  className: "sm:max-w-md",
1074
- children: /* @__PURE__ */ C("form", {
1075
- onSubmit: cn,
1077
+ children: /* @__PURE__ */ S("form", {
1078
+ onSubmit: fn,
1076
1079
  children: [
1077
- /* @__PURE__ */ C(k, { children: [/* @__PURE__ */ S(A, { children: "Apply to rent" }), /* @__PURE__ */ C(D, { children: [
1080
+ /* @__PURE__ */ S(O, { children: [/* @__PURE__ */ x(k, { children: "Apply to rent" }), /* @__PURE__ */ S(E, { children: [
1078
1081
  "Submit a rental application for ",
1079
- m.title,
1082
+ h.title,
1080
1083
  ". The owner will review and respond."
1081
1084
  ] })] }),
1082
- /* @__PURE__ */ C("div", {
1085
+ /* @__PURE__ */ S("div", {
1083
1086
  className: "space-y-3 py-2",
1084
1087
  children: [
1085
- /* @__PURE__ */ C("div", {
1088
+ /* @__PURE__ */ S("div", {
1086
1089
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1087
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1090
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1088
1091
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1089
1092
  children: "Full name *"
1090
- }), /* @__PURE__ */ S("input", {
1093
+ }), /* @__PURE__ */ x("input", {
1091
1094
  type: "text",
1092
1095
  required: !0,
1093
1096
  value: G,
1094
- onChange: (e) => vt(e.target.value),
1095
- className: M
1096
- })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1097
+ onChange: (e) => St(e.target.value),
1098
+ className: j
1099
+ })] }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1097
1100
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1098
1101
  children: "Email *"
1099
- }), /* @__PURE__ */ S("input", {
1102
+ }), /* @__PURE__ */ x("input", {
1100
1103
  type: "email",
1101
1104
  required: !0,
1102
1105
  value: K,
1103
- onChange: (e) => yt(e.target.value),
1104
- className: M
1106
+ onChange: (e) => Ct(e.target.value),
1107
+ className: j
1105
1108
  })] })]
1106
1109
  }),
1107
- /* @__PURE__ */ C("div", {
1110
+ /* @__PURE__ */ S("div", {
1108
1111
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1109
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1112
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1110
1113
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1111
1114
  children: "Phone"
1112
- }), /* @__PURE__ */ S("input", {
1115
+ }), /* @__PURE__ */ x("input", {
1113
1116
  type: "tel",
1114
- value: bt,
1115
- onChange: (e) => xt(e.target.value),
1116
- className: M
1117
- })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
1117
+ value: wt,
1118
+ onChange: (e) => Tt(e.target.value),
1119
+ className: j
1120
+ })] }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("label", {
1118
1121
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1119
1122
  children: [
1120
1123
  "Monthly income (",
1121
- m.price.currency,
1124
+ h.price.currency,
1122
1125
  ")"
1123
1126
  ]
1124
- }), /* @__PURE__ */ S("input", {
1127
+ }), /* @__PURE__ */ x("input", {
1125
1128
  type: "number",
1126
1129
  min: 0,
1127
1130
  value: q,
1128
- onChange: (e) => St(e.target.value),
1129
- className: M
1131
+ onChange: (e) => Et(e.target.value),
1132
+ className: j
1130
1133
  })] })]
1131
1134
  }),
1132
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1135
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1133
1136
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1134
1137
  children: "Preferred move-in date"
1135
- }), /* @__PURE__ */ S("input", {
1138
+ }), /* @__PURE__ */ x("input", {
1136
1139
  type: "date",
1137
1140
  value: J,
1138
- onChange: (e) => Ct(e.target.value),
1139
- className: M
1141
+ onChange: (e) => Dt(e.target.value),
1142
+ className: j
1140
1143
  })] })
1141
1144
  ]
1142
1145
  }),
1143
- /* @__PURE__ */ C(O, { children: [/* @__PURE__ */ S(w, {
1146
+ /* @__PURE__ */ S(D, { children: [/* @__PURE__ */ x(C, {
1144
1147
  type: "button",
1145
1148
  variant: "outline",
1146
1149
  onClick: () => W(!1),
1147
1150
  children: "Cancel"
1148
- }), /* @__PURE__ */ S(w, {
1151
+ }), /* @__PURE__ */ x(C, {
1149
1152
  type: "submit",
1150
- disabled: ot || !Z,
1151
- children: ot ? "Submitting…" : "Submit application"
1153
+ disabled: ut || !Z,
1154
+ children: ut ? "Submitting…" : "Submit application"
1152
1155
  })] })
1153
1156
  ]
1154
1157
  })
1155
1158
  })
1156
1159
  }),
1157
- /* @__PURE__ */ S(T, {
1158
- open: dt,
1160
+ /* @__PURE__ */ x(w, {
1161
+ open: ht,
1159
1162
  onOpenChange: B,
1160
- children: /* @__PURE__ */ S(E, {
1163
+ children: /* @__PURE__ */ x(T, {
1161
1164
  className: "sm:max-w-md",
1162
- children: /* @__PURE__ */ C("form", {
1163
- onSubmit: nn,
1165
+ children: /* @__PURE__ */ S("form", {
1166
+ onSubmit: sn,
1164
1167
  children: [
1165
- /* @__PURE__ */ C(k, { children: [/* @__PURE__ */ S(A, { children: "Schedule a viewing" }), /* @__PURE__ */ C(D, { children: [
1168
+ /* @__PURE__ */ S(O, { children: [/* @__PURE__ */ x(k, { children: "Schedule a viewing" }), /* @__PURE__ */ S(E, { children: [
1166
1169
  "Pick a date and time to see ",
1167
- m.title,
1170
+ h.title,
1168
1171
  "."
1169
1172
  ] })] }),
1170
- /* @__PURE__ */ C("div", {
1173
+ /* @__PURE__ */ S("div", {
1171
1174
  className: "space-y-3 py-2",
1172
1175
  children: [
1173
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1176
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1174
1177
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1175
1178
  children: "Date & time *"
1176
- }), /* @__PURE__ */ S("input", {
1179
+ }), /* @__PURE__ */ x("input", {
1177
1180
  type: "datetime-local",
1178
1181
  required: !0,
1179
1182
  value: Y,
1180
- onChange: (e) => At(e.target.value),
1181
- className: M
1183
+ onChange: (e) => Pt(e.target.value),
1184
+ className: j
1182
1185
  })] }),
1183
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1186
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1184
1187
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1185
1188
  children: "Type"
1186
- }), /* @__PURE__ */ C("select", {
1187
- value: jt,
1188
- onChange: (e) => Mt(e.target.value),
1189
- className: M,
1190
- children: [/* @__PURE__ */ S("option", {
1189
+ }), /* @__PURE__ */ S("select", {
1190
+ value: Ft,
1191
+ onChange: (e) => It(e.target.value),
1192
+ className: j,
1193
+ children: [/* @__PURE__ */ x("option", {
1191
1194
  value: "in_person",
1192
1195
  children: "In person"
1193
- }), /* @__PURE__ */ S("option", {
1196
+ }), /* @__PURE__ */ x("option", {
1194
1197
  value: "virtual",
1195
1198
  children: "Virtual"
1196
1199
  })]
1197
1200
  })] }),
1198
- /* @__PURE__ */ C("div", {
1201
+ /* @__PURE__ */ S("div", {
1199
1202
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1200
- children: [/* @__PURE__ */ S("input", {
1203
+ children: [/* @__PURE__ */ x("input", {
1201
1204
  type: "text",
1202
1205
  placeholder: "Your name",
1203
- value: Nt,
1204
- onChange: (e) => Pt(e.target.value),
1205
- className: M
1206
- }), /* @__PURE__ */ S("input", {
1206
+ value: Lt,
1207
+ onChange: (e) => Rt(e.target.value),
1208
+ className: j
1209
+ }), /* @__PURE__ */ x("input", {
1207
1210
  type: "email",
1208
1211
  placeholder: "Your email",
1209
- value: Ft,
1210
- onChange: (e) => It(e.target.value),
1211
- className: M
1212
+ value: zt,
1213
+ onChange: (e) => Bt(e.target.value),
1214
+ className: j
1212
1215
  })]
1213
1216
  }),
1214
- /* @__PURE__ */ S("textarea", {
1217
+ /* @__PURE__ */ x("textarea", {
1215
1218
  placeholder: "Notes (optional)",
1216
1219
  rows: 2,
1217
- value: Lt,
1218
- onChange: (e) => Rt(e.target.value),
1220
+ value: Vt,
1221
+ onChange: (e) => Ht(e.target.value),
1219
1222
  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)]"
1220
1223
  })
1221
1224
  ]
1222
1225
  }),
1223
- /* @__PURE__ */ C(O, { children: [/* @__PURE__ */ S(w, {
1226
+ /* @__PURE__ */ S(D, { children: [/* @__PURE__ */ x(C, {
1224
1227
  type: "button",
1225
1228
  variant: "outline",
1226
1229
  onClick: () => B(!1),
1227
1230
  children: "Cancel"
1228
- }), /* @__PURE__ */ S(w, {
1231
+ }), /* @__PURE__ */ x(C, {
1229
1232
  type: "submit",
1230
1233
  disabled: F || !Y,
1231
1234
  children: F ? "Booking…" : "Request viewing"
@@ -1234,149 +1237,149 @@ var j = {
1234
1237
  })
1235
1238
  })
1236
1239
  }),
1237
- /* @__PURE__ */ S(T, {
1238
- open: ft,
1240
+ /* @__PURE__ */ x(w, {
1241
+ open: gt,
1239
1242
  onOpenChange: V,
1240
- children: /* @__PURE__ */ S(E, {
1243
+ children: /* @__PURE__ */ x(T, {
1241
1244
  className: "sm:max-w-md",
1242
- children: /* @__PURE__ */ C("form", {
1243
- onSubmit: rn,
1245
+ children: /* @__PURE__ */ S("form", {
1246
+ onSubmit: cn,
1244
1247
  children: [
1245
- /* @__PURE__ */ C(k, { children: [/* @__PURE__ */ S(A, { children: "Make an offer" }), /* @__PURE__ */ C(D, { children: [
1248
+ /* @__PURE__ */ S(O, { children: [/* @__PURE__ */ x(k, { children: "Make an offer" }), /* @__PURE__ */ S(E, { children: [
1246
1249
  "Listing price is ",
1247
- X(m.price),
1250
+ X(h.price),
1248
1251
  "."
1249
1252
  ] })] }),
1250
- /* @__PURE__ */ C("div", {
1253
+ /* @__PURE__ */ S("div", {
1251
1254
  className: "space-y-3 py-2",
1252
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
1255
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("label", {
1253
1256
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1254
1257
  children: [
1255
1258
  "Your offer (",
1256
- m.price.currency,
1259
+ h.price.currency,
1257
1260
  ") *"
1258
1261
  ]
1259
- }), /* @__PURE__ */ S("input", {
1262
+ }), /* @__PURE__ */ x("input", {
1260
1263
  type: "number",
1261
1264
  required: !0,
1262
1265
  min: 1,
1263
- value: zt,
1264
- onChange: (e) => Bt(e.target.value),
1266
+ value: Ut,
1267
+ onChange: (e) => Wt(e.target.value),
1265
1268
  placeholder: "Enter amount",
1266
- className: M
1267
- })] }), /* @__PURE__ */ S("textarea", {
1269
+ className: j
1270
+ })] }), /* @__PURE__ */ x("textarea", {
1268
1271
  placeholder: "Message to the owner (optional)",
1269
1272
  rows: 3,
1270
- value: Vt,
1271
- onChange: (e) => Ht(e.target.value),
1273
+ value: Gt,
1274
+ onChange: (e) => Kt(e.target.value),
1272
1275
  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)]"
1273
1276
  })]
1274
1277
  }),
1275
- /* @__PURE__ */ C(O, { children: [/* @__PURE__ */ S(w, {
1278
+ /* @__PURE__ */ S(D, { children: [/* @__PURE__ */ x(C, {
1276
1279
  type: "button",
1277
1280
  variant: "outline",
1278
1281
  onClick: () => V(!1),
1279
1282
  children: "Cancel"
1280
- }), /* @__PURE__ */ S(w, {
1283
+ }), /* @__PURE__ */ x(C, {
1281
1284
  type: "submit",
1282
- disabled: et,
1283
- children: et ? "Submitting…" : "Submit offer"
1285
+ disabled: it,
1286
+ children: it ? "Submitting…" : "Submit offer"
1284
1287
  })] })
1285
1288
  ]
1286
1289
  })
1287
1290
  })
1288
1291
  }),
1289
- /* @__PURE__ */ S(T, {
1290
- open: pt,
1292
+ /* @__PURE__ */ x(w, {
1293
+ open: _t,
1291
1294
  onOpenChange: H,
1292
- children: /* @__PURE__ */ S(E, {
1295
+ children: /* @__PURE__ */ x(T, {
1293
1296
  className: "sm:max-w-md",
1294
- children: /* @__PURE__ */ C("form", {
1295
- onSubmit: on,
1297
+ children: /* @__PURE__ */ S("form", {
1298
+ onSubmit: un,
1296
1299
  children: [
1297
- /* @__PURE__ */ C(k, { children: [/* @__PURE__ */ S(A, { children: "Edit property" }), /* @__PURE__ */ S(D, { children: "Update the core listing details." })] }),
1298
- /* @__PURE__ */ C("div", {
1300
+ /* @__PURE__ */ S(O, { children: [/* @__PURE__ */ x(k, { children: "Edit property" }), /* @__PURE__ */ x(E, { children: "Update the core listing details." })] }),
1301
+ /* @__PURE__ */ S("div", {
1299
1302
  className: "space-y-3 py-2",
1300
1303
  children: [
1301
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1304
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1302
1305
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1303
1306
  children: "Title *"
1304
- }), /* @__PURE__ */ S("input", {
1307
+ }), /* @__PURE__ */ x("input", {
1305
1308
  type: "text",
1306
1309
  required: !0,
1307
- value: Ut,
1308
- onChange: (e) => Wt(e.target.value),
1309
- className: M
1310
+ value: qt,
1311
+ onChange: (e) => Jt(e.target.value),
1312
+ className: j
1310
1313
  })] }),
1311
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1314
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1312
1315
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1313
1316
  children: "Description"
1314
- }), /* @__PURE__ */ S("textarea", {
1317
+ }), /* @__PURE__ */ x("textarea", {
1315
1318
  rows: 3,
1316
- value: Gt,
1317
- onChange: (e) => Kt(e.target.value),
1319
+ value: Yt,
1320
+ onChange: (e) => Xt(e.target.value),
1318
1321
  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)]"
1319
1322
  })] }),
1320
- /* @__PURE__ */ C("div", {
1323
+ /* @__PURE__ */ S("div", {
1321
1324
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
1322
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1325
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
1323
1326
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1324
1327
  children: "Status"
1325
- }), /* @__PURE__ */ S("select", {
1326
- value: qt,
1327
- onChange: (e) => Jt(e.target.value),
1328
- className: M,
1329
- children: Ye.map((e) => /* @__PURE__ */ S("option", {
1328
+ }), /* @__PURE__ */ x("select", {
1329
+ value: Zt,
1330
+ onChange: (e) => Qt(e.target.value),
1331
+ className: j,
1332
+ children: Qe.map((e) => /* @__PURE__ */ x("option", {
1330
1333
  value: e.value,
1331
1334
  children: e.label
1332
1335
  }, e.value))
1333
- })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
1336
+ })] }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("label", {
1334
1337
  className: "mb-1.5 block text-sm font-medium text-text-primary",
1335
1338
  children: [
1336
1339
  "Price (",
1337
- m.price.currency,
1340
+ h.price.currency,
1338
1341
  ")"
1339
1342
  ]
1340
- }), /* @__PURE__ */ S("input", {
1343
+ }), /* @__PURE__ */ x("input", {
1341
1344
  type: "number",
1342
1345
  min: 0,
1343
- value: Yt,
1344
- onChange: (e) => Xt(e.target.value),
1345
- className: M
1346
+ value: $t,
1347
+ onChange: (e) => en(e.target.value),
1348
+ className: j
1346
1349
  })] })]
1347
1350
  })
1348
1351
  ]
1349
1352
  }),
1350
- /* @__PURE__ */ C(O, { children: [/* @__PURE__ */ S(w, {
1353
+ /* @__PURE__ */ S(D, { children: [/* @__PURE__ */ x(C, {
1351
1354
  type: "button",
1352
1355
  variant: "outline",
1353
1356
  onClick: () => H(!1),
1354
1357
  children: "Cancel"
1355
- }), /* @__PURE__ */ S(w, {
1358
+ }), /* @__PURE__ */ x(C, {
1356
1359
  type: "submit",
1357
- disabled: nt,
1358
- children: nt ? "Saving…" : "Save changes"
1360
+ disabled: ot,
1361
+ children: ot ? "Saving…" : "Save changes"
1359
1362
  })] })
1360
1363
  ]
1361
1364
  })
1362
1365
  })
1363
1366
  }),
1364
- /* @__PURE__ */ S(T, {
1365
- open: mt,
1367
+ /* @__PURE__ */ x(w, {
1368
+ open: vt,
1366
1369
  onOpenChange: U,
1367
- children: /* @__PURE__ */ C(E, {
1370
+ children: /* @__PURE__ */ S(T, {
1368
1371
  className: "sm:max-w-md",
1369
- children: [/* @__PURE__ */ C(k, { children: [/* @__PURE__ */ S(A, { children: "Delete this property?" }), /* @__PURE__ */ C(D, { children: [m.title, " will be permanently removed. This cannot be undone."] })] }), /* @__PURE__ */ C(O, { children: [/* @__PURE__ */ S(w, {
1372
+ children: [/* @__PURE__ */ S(O, { children: [/* @__PURE__ */ x(k, { children: "Delete this property?" }), /* @__PURE__ */ S(E, { children: [h.title, " will be permanently removed. This cannot be undone."] })] }), /* @__PURE__ */ S(D, { children: [/* @__PURE__ */ x(C, {
1370
1373
  type: "button",
1371
1374
  variant: "outline",
1372
1375
  onClick: () => U(!1),
1373
1376
  children: "Cancel"
1374
- }), /* @__PURE__ */ S(w, {
1377
+ }), /* @__PURE__ */ x(C, {
1375
1378
  type: "button",
1376
1379
  variant: "destructive",
1377
- onClick: sn,
1378
- disabled: it,
1379
- children: it ? "Deleting…" : "Delete property"
1380
+ onClick: dn,
1381
+ disabled: ct,
1382
+ children: ct ? "Deleting…" : "Delete property"
1380
1383
  })] })]
1381
1384
  })
1382
1385
  })
@@ -1384,6 +1387,6 @@ var j = {
1384
1387
  });
1385
1388
  };
1386
1389
  //#endregion
1387
- export { P as PropertyDetailPage };
1390
+ export { N as PropertyDetailPage };
1388
1391
 
1389
1392
  //# sourceMappingURL=PropertyDetailPage.js.map