@burdenoff/microfe-kadaikodi 2026.626.2 → 2026.704.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/kadaikodi/hooks/useKadaikodiApi.js +209 -105
  2. package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
  3. package/dist/kadaikodi/pages/HomePage.js +4 -4
  4. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  5. package/dist/kadaikodi/pages/admin/AdminDashboard.js +1 -1
  6. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +1 -1
  8. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  9. package/dist/kadaikodi/pages/admin/CartManagementPage.js +279 -333
  10. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  11. package/dist/kadaikodi/pages/admin/UserManagementPage.js +299 -372
  12. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  13. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +214 -214
  14. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  15. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +226 -230
  16. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  17. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +255 -256
  18. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  19. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +275 -278
  20. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +228 -446
  22. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  23. package/dist/kadaikodi/pages/common/NotificationCenterPage.js +1 -1
  24. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  25. package/dist/kadaikodi/pages/common/SettingsPage.js +34 -46
  26. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  27. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +193 -447
  28. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  29. package/dist/kadaikodi/pages/customer/CartDetailPage.js +6 -6
  30. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
  32. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  33. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +255 -215
  34. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/customer/FavoritesPage.js +141 -178
  36. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +155 -161
  38. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  39. package/dist/kadaikodi/pages/customer/ReviewsPage.js +14 -140
  40. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  41. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +304 -458
  42. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  43. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +1 -1
  44. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  45. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +2 -2
  46. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  47. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +361 -361
  48. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  49. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +226 -220
  50. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  51. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +15 -15
  52. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  53. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +2 -2
  54. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  55. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +252 -253
  56. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  57. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +3 -3
  58. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  59. package/package.json +1 -1
  60. package/dist/kadaikodi/mocks/data.js +0 -1517
  61. package/dist/kadaikodi/mocks/data.js.map +0 -1
  62. package/dist/kadaikodi/mocks/users.js +0 -34
  63. package/dist/kadaikodi/mocks/users.js.map +0 -1
@@ -2,236 +2,70 @@ import { useKadaikodi as e } from "../../context/KadaikodiContext.js";
2
2
  import { cn as t } from "../../utils/cn.js";
3
3
  import { PageLayout as n } from "../../components/PageLayout.js";
4
4
  import { EmptyState as r } from "../../components/EmptyState.js";
5
- import { formatCurrency as i, formatNumber as a } from "../../utils/formatters.js";
6
- import { useCallback as o, useEffect as s, useMemo as c, useState as l } from "react";
7
- import { CheckCircle2 as u, Eye as d, FileText as f, IndianRupee as p, MapPin as m, Search as h, Star as g, X as _ } from "lucide-react";
8
- import { jsx as v, jsxs as y } from "react/jsx-runtime";
9
- import { EmphasisPanel as b, PagePurpose as x } from "@burdenoff/fe-libs/ui";
5
+ import { useInvest as i, useInvestmentOpportunities as a } from "../../hooks/useKadaikodiApi.js";
6
+ import { formatCurrency as o, formatNumber as s } from "../../utils/formatters.js";
7
+ import { useCallback as c, useMemo as l, useState as u } from "react";
8
+ import { Briefcase as d, CheckCircle2 as f, Eye as p, FileText as m, IndianRupee as h, MapPin as g, Search as _, Star as v, X as y } from "lucide-react";
9
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
10
+ import { EmphasisPanel as S, PagePurpose as C } from "@burdenoff/fe-libs/ui";
10
11
  //#region src/kadaikodi/pages/investor/InvestmentOpportunitiesPage.tsx
11
- var S = [
12
- {
13
- id: "opp-001",
14
- cartId: "cart-005",
15
- cartName: "Organic Salad Bar",
16
- cartOwner: "Sarah Johnson",
17
- description: "Premium organic salad bar serving health-conscious customers in tech parks. Looking to expand to 3 new locations.",
18
- targetAmount: 5e5,
19
- raisedAmount: 325e3,
20
- minimumInvestment: 25e3,
21
- maximumInvestment: 1e5,
22
- investorCount: 8,
23
- daysLeft: 15,
24
- expectedReturns: 22,
25
- paybackPeriod: 36,
26
- riskLevel: "low",
27
- category: "Healthy Food",
28
- location: "Whitefield, Bangalore",
29
- image: "https://images.unsplash.com/photo-1512621776951-a57141f2eefd?w=400",
30
- businessMetrics: {
31
- monthlyRevenue: 28e4,
32
- monthlyOrders: 1800,
33
- averageOrderValue: 156,
34
- rating: 4.9,
35
- reviewCount: 342,
36
- operatingSince: "2022-03-15"
37
- },
38
- financials: {
39
- grossMargin: 65,
40
- netMargin: 28,
41
- monthlyExpenses: 78e3,
42
- breakEvenAchieved: !0
43
- },
44
- investmentTerms: {
45
- equityOffered: 25,
46
- dividendFrequency: "monthly",
47
- lockInPeriod: 24,
48
- exitOptions: [
49
- "Buyback",
50
- "Secondary Sale",
51
- "IPO"
52
- ]
53
- },
54
- documents: [
55
- {
56
- name: "Business Plan",
57
- type: "PDF",
58
- uploadedOn: "2024-06-01"
59
- },
60
- {
61
- name: "Financial Statements",
62
- type: "PDF",
63
- uploadedOn: "2024-06-01"
64
- },
65
- {
66
- name: "Legal Documents",
67
- type: "PDF",
68
- uploadedOn: "2024-06-01"
69
- }
70
- ],
71
- status: "active"
72
- },
73
- {
74
- id: "opp-002",
75
- cartId: "cart-006",
76
- cartName: "Midnight Munchies",
77
- cartOwner: "Ravi Mehta",
78
- description: "Late-night food delivery cart specializing in comfort food for night shift workers and students. Operating near IT corridors.",
79
- targetAmount: 3e5,
80
- raisedAmount: 18e4,
81
- minimumInvestment: 15e3,
82
- maximumInvestment: 75e3,
83
- investorCount: 12,
84
- daysLeft: 22,
85
- expectedReturns: 18,
86
- paybackPeriod: 30,
87
- riskLevel: "medium",
88
- category: "Fast Food",
89
- location: "Electronic City, Bangalore",
90
- image: "https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?w=400",
91
- businessMetrics: {
92
- monthlyRevenue: 195e3,
93
- monthlyOrders: 1200,
94
- averageOrderValue: 163,
95
- rating: 4.7,
96
- reviewCount: 256,
97
- operatingSince: "2023-01-10"
98
- },
99
- financials: {
100
- grossMargin: 58,
101
- netMargin: 22,
102
- monthlyExpenses: 65e3,
103
- breakEvenAchieved: !0
104
- },
105
- investmentTerms: {
106
- equityOffered: 20,
107
- dividendFrequency: "quarterly",
108
- lockInPeriod: 18,
109
- exitOptions: ["Buyback", "Secondary Sale"]
110
- },
111
- documents: [{
112
- name: "Business Plan",
113
- type: "PDF",
114
- uploadedOn: "2024-06-05"
115
- }, {
116
- name: "Market Analysis",
117
- type: "PDF",
118
- uploadedOn: "2024-06-05"
119
- }],
120
- status: "active"
121
- },
122
- {
123
- id: "opp-003",
124
- cartId: "cart-007",
125
- cartName: "Fusion Street Tacos",
126
- cartOwner: "Maria Rodriguez",
127
- description: "Innovative fusion taco cart combining Mexican and Indian flavors. Winner of Street Food Awards 2023.",
128
- targetAmount: 4e5,
129
- raisedAmount: 4e5,
130
- minimumInvestment: 2e4,
131
- maximumInvestment: 8e4,
132
- investorCount: 15,
133
- daysLeft: 0,
134
- expectedReturns: 25,
135
- paybackPeriod: 24,
136
- riskLevel: "low",
137
- category: "Fusion Food",
138
- location: "Indiranagar, Bangalore",
139
- image: "https://images.unsplash.com/photo-1551504734-5ee1c4a1479b?w=400",
140
- businessMetrics: {
141
- monthlyRevenue: 32e4,
142
- monthlyOrders: 2100,
143
- averageOrderValue: 152,
144
- rating: 4.8,
145
- reviewCount: 512,
146
- operatingSince: "2021-08-20"
147
- },
148
- financials: {
149
- grossMargin: 68,
150
- netMargin: 32,
151
- monthlyExpenses: 85e3,
152
- breakEvenAchieved: !0
153
- },
154
- investmentTerms: {
155
- equityOffered: 30,
156
- dividendFrequency: "monthly",
157
- lockInPeriod: 12,
158
- exitOptions: ["Buyback", "Franchise Conversion"]
159
- },
160
- documents: [{
161
- name: "Business Plan",
162
- type: "PDF",
163
- uploadedOn: "2024-05-20"
164
- }, {
165
- name: "Awards & Recognition",
166
- type: "PDF",
167
- uploadedOn: "2024-05-20"
168
- }],
169
- status: "funded"
170
- },
171
- {
172
- id: "opp-004",
173
- cartId: "cart-008",
174
- cartName: "Bubble Tea Express",
175
- cartOwner: "Chen Wei",
176
- description: "Trendy bubble tea cart with proprietary recipes. Planning expansion through franchise model.",
177
- targetAmount: 6e5,
178
- raisedAmount: 12e4,
179
- minimumInvestment: 3e4,
180
- maximumInvestment: 15e4,
181
- investorCount: 4,
182
- daysLeft: 45,
183
- expectedReturns: 20,
184
- paybackPeriod: 36,
185
- riskLevel: "high",
186
- category: "Beverages",
187
- location: "Koramangala, Bangalore",
188
- image: "https://images.unsplash.com/photo-1558857563-b371033873b8?w=400",
12
+ function w(e) {
13
+ let t = e.expiresAt ? Math.max(0, Math.ceil((new Date(e.expiresAt).getTime() - Date.now()) / 864e5)) : 0;
14
+ return {
15
+ id: e.id,
16
+ cartId: e.cartId,
17
+ cartName: e.cartName,
18
+ cartOwner: e.businessOwner || "",
19
+ description: e.description,
20
+ targetAmount: e.targetAmount,
21
+ raisedAmount: e.raisedAmount,
22
+ minimumInvestment: e.minimumInvestment,
23
+ maximumInvestment: Math.max(e.minimumInvestment, e.targetAmount - e.raisedAmount),
24
+ investorCount: e.investors.length,
25
+ daysLeft: t,
26
+ expectedReturns: e.expectedReturns,
27
+ paybackPeriod: e.investmentPeriod,
28
+ riskLevel: e.riskLevel,
29
+ category: "",
30
+ location: "",
31
+ image: "",
189
32
  businessMetrics: {
190
- monthlyRevenue: 15e4,
191
- monthlyOrders: 900,
192
- averageOrderValue: 167,
193
- rating: 4.6,
194
- reviewCount: 189,
195
- operatingSince: "2023-11-01"
33
+ monthlyRevenue: 0,
34
+ monthlyOrders: 0,
35
+ averageOrderValue: 0,
36
+ rating: 0,
37
+ reviewCount: 0,
38
+ operatingSince: ""
196
39
  },
197
40
  financials: {
198
- grossMargin: 72,
199
- netMargin: 18,
200
- monthlyExpenses: 55e3,
41
+ grossMargin: 0,
42
+ netMargin: 0,
43
+ monthlyExpenses: 0,
201
44
  breakEvenAchieved: !1
202
45
  },
203
46
  investmentTerms: {
204
- equityOffered: 35,
47
+ equityOffered: 0,
205
48
  dividendFrequency: "quarterly",
206
- lockInPeriod: 36,
207
- exitOptions: ["Franchise Sale", "Acquisition"]
49
+ lockInPeriod: e.investmentPeriod,
50
+ exitOptions: []
208
51
  },
209
- documents: [{
210
- name: "Franchise Plan",
211
- type: "PDF",
212
- uploadedOn: "2024-06-10"
213
- }, {
214
- name: "Recipe Patents",
52
+ documents: e.documents.map((e) => ({
53
+ name: e,
215
54
  type: "PDF",
216
- uploadedOn: "2024-06-10"
217
- }],
218
- status: "active"
219
- }
220
- ], C = {
221
- totalOpportunities: 24,
222
- averageReturns: 21.5,
223
- totalFunded: 156e5,
224
- successRate: 89
225
- };
226
- function w(e) {
55
+ uploadedOn: ""
56
+ })),
57
+ status: e.status
58
+ };
59
+ }
60
+ function T(e) {
227
61
  switch (e) {
228
62
  case "low": return "bg-status-success-bg-subtle text-status-success-text";
229
63
  case "medium": return "bg-status-warning-bg-subtle text-status-warning-text";
230
64
  case "high": return "bg-status-error-bg-subtle text-status-error-text";
231
- default: return "bg-secondary text-secondary-foreground";
65
+ default: return "bg-bg-sunken text-text-secondary";
232
66
  }
233
67
  }
234
- function T(e) {
68
+ function E(e) {
235
69
  switch (e) {
236
70
  case "low": return "Low Risk";
237
71
  case "medium": return "Medium Risk";
@@ -239,38 +73,41 @@ function T(e) {
239
73
  default: return e;
240
74
  }
241
75
  }
242
- function E(e, t) {
76
+ function D(e, t) {
243
77
  return t > 0 ? Math.min(e / t * 100, 100) : 0;
244
78
  }
245
- function D() {
246
- let { navigateTo: D } = e(), [O, k] = l(!0), [A, j] = l(null), [M, N] = l(!1), [P, F] = l(""), [I, L] = l("idle"), [R, z] = l({
79
+ function O() {
80
+ let { navigateTo: O, currentUser: k } = e(), { data: A = [], isLoading: j } = a(), M = i(), [N, P] = u(null), [F, I] = u(!1), [L, R] = u(""), [z, B] = u("idle"), [V, H] = u({
247
81
  searchQuery: "",
248
82
  category: "",
249
83
  riskLevel: "",
250
84
  minimumAmount: "",
251
85
  location: "",
252
86
  sortBy: "featured"
253
- });
254
- s(() => {
255
- let e = setTimeout(() => k(!1), 600);
256
- return () => clearTimeout(e);
257
- }, []);
258
- let B = o((e, t) => {
259
- z((n) => ({
87
+ }), U = l(() => A.map(w), [A]), W = l(() => {
88
+ let e = U.length;
89
+ return {
90
+ totalOpportunities: e,
91
+ averageReturns: e ? Number((U.reduce((e, t) => e + t.expectedReturns, 0) / e).toFixed(1)) : 0,
92
+ totalFunded: U.reduce((e, t) => e + t.raisedAmount, 0),
93
+ totalTarget: U.reduce((e, t) => e + t.targetAmount, 0)
94
+ };
95
+ }, [U]), G = c((e, t) => {
96
+ H((n) => ({
260
97
  ...n,
261
98
  [e]: t
262
99
  }));
263
- }, []), V = c(() => {
264
- let e = [...S];
265
- if (R.searchQuery.trim()) {
266
- let t = R.searchQuery.toLowerCase();
100
+ }, []), K = l(() => {
101
+ let e = [...U];
102
+ if (V.searchQuery.trim()) {
103
+ let t = V.searchQuery.toLowerCase();
267
104
  e = e.filter((e) => e.cartName.toLowerCase().includes(t) || e.description.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
268
105
  }
269
- if (R.category && (e = e.filter((e) => e.category === R.category)), R.riskLevel && (e = e.filter((e) => e.riskLevel === R.riskLevel)), R.location && (e = e.filter((e) => e.location.includes(R.location))), R.minimumAmount) {
270
- let t = parseInt(R.minimumAmount, 10);
106
+ if (V.category && (e = e.filter((e) => e.category === V.category)), V.riskLevel && (e = e.filter((e) => e.riskLevel === V.riskLevel)), V.location && (e = e.filter((e) => e.location.includes(V.location))), V.minimumAmount) {
107
+ let t = parseInt(V.minimumAmount, 10);
271
108
  e = e.filter((e) => e.minimumInvestment <= t);
272
109
  }
273
- switch (R.sortBy) {
110
+ switch (V.sortBy) {
274
111
  case "returns":
275
112
  e.sort((e, t) => t.expectedReturns - e.expectedReturns);
276
113
  break;
@@ -286,250 +123,264 @@ function D() {
286
123
  default: break;
287
124
  }
288
125
  return e;
289
- }, [R]), H = o(() => {
290
- if (!A || !P) return;
291
- let e = parseInt(P, 10);
126
+ }, [V, U]), q = c(() => {
127
+ if (!N || !L) return;
128
+ let e = parseInt(L, 10);
292
129
  if (!isNaN(e)) {
293
- if (e < A.minimumInvestment) {
294
- L("error");
130
+ if (e < N.minimumInvestment) {
131
+ B("error");
295
132
  return;
296
133
  }
297
- if (e > A.maximumInvestment) {
298
- L("error");
134
+ if (e > N.maximumInvestment) {
135
+ B("error");
299
136
  return;
300
137
  }
301
- L("success"), setTimeout(() => {
302
- N(!1), F(""), L("idle"), D("/investor/portfolio");
303
- }, 1500);
138
+ M.mutate({
139
+ amount: e,
140
+ investorId: k?.id ?? "",
141
+ opportunityId: N.id
142
+ }, {
143
+ onSuccess: () => {
144
+ B("success"), setTimeout(() => {
145
+ I(!1), R(""), B("idle"), O("/investor/portfolio");
146
+ }, 1500);
147
+ },
148
+ onError: () => B("error")
149
+ });
304
150
  }
305
151
  }, [
306
- A,
307
- P,
308
- D
309
- ]), U = o((e) => {
310
- j(e), F(""), L("idle"), N(!0);
152
+ N,
153
+ L,
154
+ O,
155
+ M,
156
+ k?.id
157
+ ]), J = c((e) => {
158
+ P(e), R(""), B("idle"), I(!0);
311
159
  }, []);
312
- return O ? /* @__PURE__ */ v(n, {
160
+ return j ? /* @__PURE__ */ b(n, {
313
161
  title: "Investment Opportunities",
314
162
  description: "Loading opportunities...",
315
- children: /* @__PURE__ */ v("div", {
163
+ children: /* @__PURE__ */ b("div", {
316
164
  className: "flex items-center justify-center py-20",
317
- children: /* @__PURE__ */ y("div", {
165
+ children: /* @__PURE__ */ x("div", {
318
166
  className: "text-center",
319
- children: [/* @__PURE__ */ v("div", { className: "mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-b-2 border-primary" }), /* @__PURE__ */ v("p", {
167
+ children: [/* @__PURE__ */ b("div", { className: "mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-b-2 border-primary" }), /* @__PURE__ */ b("p", {
320
168
  className: "text-sm text-text-secondary",
321
169
  children: "Loading opportunities..."
322
170
  })]
323
171
  })
324
172
  })
325
- }) : /* @__PURE__ */ y(n, {
173
+ }) : /* @__PURE__ */ x(n, {
326
174
  title: "Investment Opportunities",
327
175
  description: "Discover and invest in growing local businesses",
328
- actions: /* @__PURE__ */ y("span", {
176
+ actions: /* @__PURE__ */ x("span", {
329
177
  className: "text-sm text-text-secondary",
330
- children: [V.length, " opportunities"]
178
+ children: [K.length, " opportunities"]
331
179
  }),
332
180
  children: [
333
- /* @__PURE__ */ v(x, {
181
+ /* @__PURE__ */ b(C, {
334
182
  className: "mb-6",
335
183
  children: "The deal flow — local carts and businesses looking for funding right now. Use this page to discover opportunities that fit your strategy, compare projected returns and equity on offer, filter by category or funding stage, and back the ones you believe in. The stats up top show how the platform is performing so you can gauge typical returns and success rates before you commit."
336
184
  }),
337
- /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v("h2", {
185
+ /* @__PURE__ */ x(S, { children: [/* @__PURE__ */ b("h2", {
338
186
  className: "mb-4 text-base font-semibold text-text-primary",
339
187
  children: "Platform Performance"
340
- }), /* @__PURE__ */ y("div", {
188
+ }), /* @__PURE__ */ x("div", {
341
189
  className: "grid grid-cols-2 gap-3 sm:gap-4 lg:grid-cols-4",
342
190
  children: [
343
- /* @__PURE__ */ y("div", {
191
+ /* @__PURE__ */ x("div", {
344
192
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
345
- children: [/* @__PURE__ */ v("p", {
193
+ children: [/* @__PURE__ */ b("p", {
346
194
  className: "text-xs text-text-secondary",
347
195
  children: "Active Opportunities"
348
- }), /* @__PURE__ */ v("p", {
196
+ }), /* @__PURE__ */ b("p", {
349
197
  className: "text-lg font-bold text-text-primary sm:text-2xl",
350
- children: C.totalOpportunities
198
+ children: W.totalOpportunities
351
199
  })]
352
200
  }),
353
- /* @__PURE__ */ y("div", {
201
+ /* @__PURE__ */ x("div", {
354
202
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
355
- children: [/* @__PURE__ */ v("p", {
203
+ children: [/* @__PURE__ */ b("p", {
356
204
  className: "text-xs text-text-secondary",
357
205
  children: "Average Returns"
358
- }), /* @__PURE__ */ y("p", {
206
+ }), /* @__PURE__ */ x("p", {
359
207
  className: "text-lg font-bold text-status-success-text sm:text-2xl",
360
- children: [C.averageReturns, "%"]
208
+ children: [W.averageReturns, "%"]
361
209
  })]
362
210
  }),
363
- /* @__PURE__ */ y("div", {
211
+ /* @__PURE__ */ x("div", {
364
212
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
365
- children: [/* @__PURE__ */ v("p", {
213
+ children: [/* @__PURE__ */ b("p", {
366
214
  className: "text-xs text-text-secondary",
367
215
  children: "Total Funded"
368
- }), /* @__PURE__ */ v("p", {
216
+ }), /* @__PURE__ */ b("p", {
369
217
  className: "text-lg font-bold text-text-primary sm:text-2xl",
370
- children: i(C.totalFunded, {
218
+ children: o(W.totalFunded, {
371
219
  minimumFractionDigits: 0,
372
220
  notation: "compact"
373
221
  })
374
222
  })]
375
223
  }),
376
- /* @__PURE__ */ y("div", {
224
+ /* @__PURE__ */ x("div", {
377
225
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
378
- children: [/* @__PURE__ */ v("p", {
226
+ children: [/* @__PURE__ */ b("p", {
379
227
  className: "text-xs text-text-secondary",
380
- children: "Success Rate"
381
- }), /* @__PURE__ */ y("p", {
228
+ children: "Total Target"
229
+ }), /* @__PURE__ */ b("p", {
382
230
  className: "text-lg font-bold text-text-primary sm:text-2xl",
383
- children: [C.successRate, "%"]
231
+ children: o(W.totalTarget, {
232
+ minimumFractionDigits: 0,
233
+ notation: "compact"
234
+ })
384
235
  })]
385
236
  })
386
237
  ]
387
238
  })] }),
388
- /* @__PURE__ */ v("div", {
239
+ /* @__PURE__ */ b("div", {
389
240
  className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface p-4 sm:p-6",
390
- children: /* @__PURE__ */ y("div", {
241
+ children: /* @__PURE__ */ x("div", {
391
242
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6",
392
243
  children: [
393
- /* @__PURE__ */ y("div", {
244
+ /* @__PURE__ */ x("div", {
394
245
  className: "relative sm:col-span-2 lg:col-span-1",
395
- children: [/* @__PURE__ */ v(h, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ v("input", {
246
+ children: [/* @__PURE__ */ b(_, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ b("input", {
396
247
  type: "text",
397
248
  placeholder: "Search opportunities...",
398
- value: R.searchQuery,
399
- onChange: (e) => B("searchQuery", e.target.value),
249
+ value: V.searchQuery,
250
+ onChange: (e) => G("searchQuery", e.target.value),
400
251
  className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
401
252
  })]
402
253
  }),
403
- /* @__PURE__ */ y("select", {
404
- value: R.category,
405
- onChange: (e) => B("category", e.target.value),
254
+ /* @__PURE__ */ x("select", {
255
+ value: V.category,
256
+ onChange: (e) => G("category", e.target.value),
406
257
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
407
258
  children: [
408
- /* @__PURE__ */ v("option", {
259
+ /* @__PURE__ */ b("option", {
409
260
  value: "",
410
261
  children: "All Categories"
411
262
  }),
412
- /* @__PURE__ */ v("option", {
263
+ /* @__PURE__ */ b("option", {
413
264
  value: "Healthy Food",
414
265
  children: "Healthy Food"
415
266
  }),
416
- /* @__PURE__ */ v("option", {
267
+ /* @__PURE__ */ b("option", {
417
268
  value: "Fast Food",
418
269
  children: "Fast Food"
419
270
  }),
420
- /* @__PURE__ */ v("option", {
271
+ /* @__PURE__ */ b("option", {
421
272
  value: "Fusion Food",
422
273
  children: "Fusion Food"
423
274
  }),
424
- /* @__PURE__ */ v("option", {
275
+ /* @__PURE__ */ b("option", {
425
276
  value: "Beverages",
426
277
  children: "Beverages"
427
278
  }),
428
- /* @__PURE__ */ v("option", {
279
+ /* @__PURE__ */ b("option", {
429
280
  value: "Street Food",
430
281
  children: "Street Food"
431
282
  })
432
283
  ]
433
284
  }),
434
- /* @__PURE__ */ y("select", {
435
- value: R.riskLevel,
436
- onChange: (e) => B("riskLevel", e.target.value),
285
+ /* @__PURE__ */ x("select", {
286
+ value: V.riskLevel,
287
+ onChange: (e) => G("riskLevel", e.target.value),
437
288
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
438
289
  children: [
439
- /* @__PURE__ */ v("option", {
290
+ /* @__PURE__ */ b("option", {
440
291
  value: "",
441
292
  children: "All Risk Levels"
442
293
  }),
443
- /* @__PURE__ */ v("option", {
294
+ /* @__PURE__ */ b("option", {
444
295
  value: "low",
445
296
  children: "Low Risk"
446
297
  }),
447
- /* @__PURE__ */ v("option", {
298
+ /* @__PURE__ */ b("option", {
448
299
  value: "medium",
449
300
  children: "Medium Risk"
450
301
  }),
451
- /* @__PURE__ */ v("option", {
302
+ /* @__PURE__ */ b("option", {
452
303
  value: "high",
453
304
  children: "High Risk"
454
305
  })
455
306
  ]
456
307
  }),
457
- /* @__PURE__ */ y("select", {
458
- value: R.minimumAmount,
459
- onChange: (e) => B("minimumAmount", e.target.value),
308
+ /* @__PURE__ */ x("select", {
309
+ value: V.minimumAmount,
310
+ onChange: (e) => G("minimumAmount", e.target.value),
460
311
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
461
312
  children: [
462
- /* @__PURE__ */ v("option", {
313
+ /* @__PURE__ */ b("option", {
463
314
  value: "",
464
315
  children: "Any Amount"
465
316
  }),
466
- /* @__PURE__ */ v("option", {
317
+ /* @__PURE__ */ b("option", {
467
318
  value: "15000",
468
319
  children: "Under ₹15,000"
469
320
  }),
470
- /* @__PURE__ */ v("option", {
321
+ /* @__PURE__ */ b("option", {
471
322
  value: "25000",
472
323
  children: "Under ₹25,000"
473
324
  }),
474
- /* @__PURE__ */ v("option", {
325
+ /* @__PURE__ */ b("option", {
475
326
  value: "50000",
476
327
  children: "Under ₹50,000"
477
328
  }),
478
- /* @__PURE__ */ v("option", {
329
+ /* @__PURE__ */ b("option", {
479
330
  value: "100000",
480
331
  children: "Under ₹1,00,000"
481
332
  })
482
333
  ]
483
334
  }),
484
- /* @__PURE__ */ y("select", {
485
- value: R.location,
486
- onChange: (e) => B("location", e.target.value),
335
+ /* @__PURE__ */ x("select", {
336
+ value: V.location,
337
+ onChange: (e) => G("location", e.target.value),
487
338
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
488
339
  children: [
489
- /* @__PURE__ */ v("option", {
340
+ /* @__PURE__ */ b("option", {
490
341
  value: "",
491
342
  children: "All Locations"
492
343
  }),
493
- /* @__PURE__ */ v("option", {
344
+ /* @__PURE__ */ b("option", {
494
345
  value: "Whitefield",
495
346
  children: "Whitefield"
496
347
  }),
497
- /* @__PURE__ */ v("option", {
348
+ /* @__PURE__ */ b("option", {
498
349
  value: "Koramangala",
499
350
  children: "Koramangala"
500
351
  }),
501
- /* @__PURE__ */ v("option", {
352
+ /* @__PURE__ */ b("option", {
502
353
  value: "Indiranagar",
503
354
  children: "Indiranagar"
504
355
  }),
505
- /* @__PURE__ */ v("option", {
356
+ /* @__PURE__ */ b("option", {
506
357
  value: "Electronic City",
507
358
  children: "Electronic City"
508
359
  })
509
360
  ]
510
361
  }),
511
- /* @__PURE__ */ y("select", {
512
- value: R.sortBy,
513
- onChange: (e) => B("sortBy", e.target.value),
362
+ /* @__PURE__ */ x("select", {
363
+ value: V.sortBy,
364
+ onChange: (e) => G("sortBy", e.target.value),
514
365
  className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
515
366
  children: [
516
- /* @__PURE__ */ v("option", {
367
+ /* @__PURE__ */ b("option", {
517
368
  value: "featured",
518
369
  children: "Featured"
519
370
  }),
520
- /* @__PURE__ */ v("option", {
371
+ /* @__PURE__ */ b("option", {
521
372
  value: "returns",
522
373
  children: "Highest Returns"
523
374
  }),
524
- /* @__PURE__ */ v("option", {
375
+ /* @__PURE__ */ b("option", {
525
376
  value: "funding",
526
377
  children: "Most Funded"
527
378
  }),
528
- /* @__PURE__ */ v("option", {
379
+ /* @__PURE__ */ b("option", {
529
380
  value: "closing",
530
381
  children: "Closing Soon"
531
382
  }),
532
- /* @__PURE__ */ v("option", {
383
+ /* @__PURE__ */ b("option", {
533
384
  value: "minimum",
534
385
  children: "Lowest Minimum"
535
386
  })
@@ -538,15 +389,15 @@ function D() {
538
389
  ]
539
390
  })
540
391
  }),
541
- V.length === 0 ? /* @__PURE__ */ v("div", {
392
+ K.length === 0 ? /* @__PURE__ */ b("div", {
542
393
  className: "mt-6",
543
- children: /* @__PURE__ */ v(r, {
544
- icon: /* @__PURE__ */ v(h, { className: "h-10 w-10" }),
394
+ children: /* @__PURE__ */ b(r, {
395
+ icon: /* @__PURE__ */ b(_, { className: "h-10 w-10" }),
545
396
  title: "No opportunities found",
546
397
  description: "Try adjusting your filters to find more opportunities",
547
- action: /* @__PURE__ */ v("button", {
398
+ action: /* @__PURE__ */ b("button", {
548
399
  type: "button",
549
- onClick: () => z({
400
+ onClick: () => H({
550
401
  searchQuery: "",
551
402
  category: "",
552
403
  riskLevel: "",
@@ -558,178 +409,173 @@ function D() {
558
409
  children: "Clear Filters"
559
410
  })
560
411
  })
561
- }) : /* @__PURE__ */ v("div", {
412
+ }) : /* @__PURE__ */ b("div", {
562
413
  className: "mt-6 grid grid-cols-1 gap-4 lg:grid-cols-2",
563
- children: V.map((e) => {
564
- let n = E(e.raisedAmount, e.targetAmount);
565
- return /* @__PURE__ */ y("div", {
414
+ children: K.map((e) => {
415
+ let n = D(e.raisedAmount, e.targetAmount);
416
+ return /* @__PURE__ */ x("div", {
566
417
  className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm hover:shadow-md transition-shadow",
567
- children: [/* @__PURE__ */ y("div", {
418
+ children: [/* @__PURE__ */ x("div", {
568
419
  className: "relative",
569
420
  children: [
570
- /* @__PURE__ */ v("div", {
571
- className: "h-40 w-full overflow-hidden rounded-t-lg bg-bg-sunken sm:h-48",
572
- children: /* @__PURE__ */ v("img", {
573
- src: e.image,
574
- alt: e.cartName,
575
- className: "h-full w-full object-cover",
576
- loading: "lazy"
577
- })
421
+ /* @__PURE__ */ b("div", {
422
+ className: "flex h-40 w-full items-center justify-center overflow-hidden rounded-t-lg bg-bg-sunken sm:h-48",
423
+ children: /* @__PURE__ */ b(d, { className: "h-10 w-10 text-text-secondary" })
578
424
  }),
579
- e.status === "funded" && /* @__PURE__ */ v("div", {
425
+ e.status === "funded" && /* @__PURE__ */ b("div", {
580
426
  className: "absolute right-2 top-2 rounded-full bg-status-success-text px-2 py-1 text-xs font-medium text-white sm:right-4 sm:top-4 sm:px-3",
581
427
  children: "Fully Funded"
582
428
  }),
583
- e.daysLeft > 0 && e.daysLeft <= 7 && /* @__PURE__ */ y("div", {
429
+ e.daysLeft > 0 && e.daysLeft <= 7 && /* @__PURE__ */ x("div", {
584
430
  className: "absolute left-2 top-2 rounded-full bg-status-error-text px-2 py-1 text-xs font-medium text-white sm:left-4 sm:top-4 sm:px-3",
585
431
  children: [e.daysLeft, " days left"]
586
432
  })
587
433
  ]
588
- }), /* @__PURE__ */ y("div", {
434
+ }), /* @__PURE__ */ x("div", {
589
435
  className: "p-4 sm:p-6",
590
436
  children: [
591
- /* @__PURE__ */ y("div", {
437
+ /* @__PURE__ */ x("div", {
592
438
  className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
593
- children: [/* @__PURE__ */ y("div", {
439
+ children: [/* @__PURE__ */ x("div", {
594
440
  className: "flex-1",
595
441
  children: [
596
- /* @__PURE__ */ v("h3", {
442
+ /* @__PURE__ */ b("h3", {
597
443
  className: "text-base font-semibold text-text-primary sm:text-xl",
598
444
  children: e.cartName
599
445
  }),
600
- /* @__PURE__ */ y("p", {
446
+ /* @__PURE__ */ x("p", {
601
447
  className: "text-xs text-text-secondary sm:text-sm",
602
448
  children: ["by ", e.cartOwner]
603
449
  }),
604
- /* @__PURE__ */ y("div", {
450
+ /* @__PURE__ */ x("div", {
605
451
  className: "mt-2 flex flex-wrap items-center gap-2",
606
- children: [/* @__PURE__ */ v("span", {
452
+ children: [/* @__PURE__ */ b("span", {
607
453
  className: "text-xs text-text-secondary sm:text-sm",
608
454
  children: e.category
609
- }), /* @__PURE__ */ v("span", {
610
- className: t("rounded-full px-2 py-0.5 text-xs font-medium", w(e.riskLevel)),
611
- children: T(e.riskLevel)
455
+ }), /* @__PURE__ */ b("span", {
456
+ className: t("rounded-full px-2 py-0.5 text-xs font-medium", T(e.riskLevel)),
457
+ children: E(e.riskLevel)
612
458
  })]
613
459
  })
614
460
  ]
615
- }), /* @__PURE__ */ y("div", {
461
+ }), /* @__PURE__ */ x("div", {
616
462
  className: "text-left sm:text-right",
617
- children: [/* @__PURE__ */ y("p", {
463
+ children: [/* @__PURE__ */ x("p", {
618
464
  className: "text-xl font-bold text-status-success-text sm:text-2xl",
619
465
  children: [e.expectedReturns, "%"]
620
- }), /* @__PURE__ */ v("p", {
466
+ }), /* @__PURE__ */ b("p", {
621
467
  className: "text-xs text-text-secondary",
622
468
  children: "Expected Returns"
623
469
  })]
624
470
  })]
625
471
  }),
626
- /* @__PURE__ */ v("p", {
472
+ /* @__PURE__ */ b("p", {
627
473
  className: "mb-4 text-sm leading-relaxed text-text-secondary line-clamp-2",
628
474
  children: e.description
629
475
  }),
630
- /* @__PURE__ */ y("div", {
476
+ /* @__PURE__ */ x("div", {
631
477
  className: "mb-4",
632
478
  children: [
633
- /* @__PURE__ */ y("div", {
479
+ /* @__PURE__ */ x("div", {
634
480
  className: "mb-1 flex justify-between text-xs sm:text-sm",
635
- children: [/* @__PURE__ */ y("span", {
481
+ children: [/* @__PURE__ */ x("span", {
636
482
  className: "font-medium text-text-primary",
637
483
  children: [
638
- i(e.raisedAmount, { minimumFractionDigits: 0 }),
484
+ o(e.raisedAmount, { minimumFractionDigits: 0 }),
639
485
  " ",
640
486
  "raised"
641
487
  ]
642
- }), /* @__PURE__ */ y("span", {
488
+ }), /* @__PURE__ */ x("span", {
643
489
  className: "text-text-secondary",
644
- children: ["of ", i(e.targetAmount, { minimumFractionDigits: 0 })]
490
+ children: ["of ", o(e.targetAmount, { minimumFractionDigits: 0 })]
645
491
  })]
646
492
  }),
647
- /* @__PURE__ */ v("div", {
493
+ /* @__PURE__ */ b("div", {
648
494
  className: "h-2 w-full overflow-hidden rounded-full bg-bg-sunken",
649
- children: /* @__PURE__ */ v("div", {
495
+ children: /* @__PURE__ */ b("div", {
650
496
  className: "h-full rounded-full bg-action-primary-bg transition-all duration-300",
651
497
  style: { width: `${n}%` }
652
498
  })
653
499
  }),
654
- /* @__PURE__ */ y("div", {
500
+ /* @__PURE__ */ x("div", {
655
501
  className: "mt-1 flex justify-between text-xs text-text-secondary",
656
- children: [/* @__PURE__ */ y("span", { children: [e.investorCount, " investors"] }), /* @__PURE__ */ y("span", { children: [n.toFixed(0), "% funded"] })]
502
+ children: [/* @__PURE__ */ x("span", { children: [e.investorCount, " investors"] }), /* @__PURE__ */ x("span", { children: [n.toFixed(0), "% funded"] })]
657
503
  })
658
504
  ]
659
505
  }),
660
- /* @__PURE__ */ y("div", {
506
+ /* @__PURE__ */ x("div", {
661
507
  className: "mb-4 grid grid-cols-3 gap-2 text-center sm:gap-4",
662
508
  children: [
663
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
509
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
664
510
  className: "text-sm font-bold text-text-primary sm:text-lg",
665
- children: i(e.minimumInvestment, { minimumFractionDigits: 0 })
666
- }), /* @__PURE__ */ v("p", {
511
+ children: o(e.minimumInvestment, { minimumFractionDigits: 0 })
512
+ }), /* @__PURE__ */ b("p", {
667
513
  className: "text-xs text-text-secondary",
668
514
  children: "Min Investment"
669
515
  })] }),
670
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("p", {
516
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
671
517
  className: "text-sm font-bold text-text-primary sm:text-lg",
672
518
  children: [e.paybackPeriod, " mo"]
673
- }), /* @__PURE__ */ v("p", {
519
+ }), /* @__PURE__ */ b("p", {
674
520
  className: "text-xs text-text-secondary",
675
521
  children: "Payback Period"
676
522
  })] }),
677
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
523
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
678
524
  className: "flex items-center justify-center gap-1",
679
- children: [/* @__PURE__ */ v(g, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ v("p", {
525
+ children: [/* @__PURE__ */ b(v, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ b("p", {
680
526
  className: "text-sm font-bold text-text-primary sm:text-lg",
681
527
  children: e.businessMetrics.rating
682
528
  })]
683
- }), /* @__PURE__ */ v("p", {
529
+ }), /* @__PURE__ */ b("p", {
684
530
  className: "text-xs text-text-secondary",
685
531
  children: "Rating"
686
532
  })] })
687
533
  ]
688
534
  }),
689
- /* @__PURE__ */ y("div", {
535
+ /* @__PURE__ */ x("div", {
690
536
  className: "mb-4 border-t border-border-subtle pt-3 sm:pt-4",
691
- children: [/* @__PURE__ */ v("p", {
537
+ children: [/* @__PURE__ */ b("p", {
692
538
  className: "mb-2 text-xs font-medium text-text-secondary sm:text-sm",
693
539
  children: "Business Performance"
694
- }), /* @__PURE__ */ y("div", {
540
+ }), /* @__PURE__ */ x("div", {
695
541
  className: "grid grid-cols-1 gap-2 text-xs sm:grid-cols-2 sm:text-sm",
696
542
  children: [
697
- /* @__PURE__ */ y("div", {
543
+ /* @__PURE__ */ x("div", {
698
544
  className: "flex justify-between",
699
- children: [/* @__PURE__ */ v("span", {
545
+ children: [/* @__PURE__ */ b("span", {
700
546
  className: "text-text-secondary",
701
547
  children: "Monthly Revenue:"
702
- }), /* @__PURE__ */ v("span", {
548
+ }), /* @__PURE__ */ b("span", {
703
549
  className: "font-medium text-text-primary",
704
- children: i(e.businessMetrics.monthlyRevenue, { minimumFractionDigits: 0 })
550
+ children: o(e.businessMetrics.monthlyRevenue, { minimumFractionDigits: 0 })
705
551
  })]
706
552
  }),
707
- /* @__PURE__ */ y("div", {
553
+ /* @__PURE__ */ x("div", {
708
554
  className: "flex justify-between",
709
- children: [/* @__PURE__ */ v("span", {
555
+ children: [/* @__PURE__ */ b("span", {
710
556
  className: "text-text-secondary",
711
557
  children: "Gross Margin:"
712
- }), /* @__PURE__ */ y("span", {
558
+ }), /* @__PURE__ */ x("span", {
713
559
  className: "font-medium text-text-primary",
714
560
  children: [e.financials.grossMargin, "%"]
715
561
  })]
716
562
  }),
717
- /* @__PURE__ */ y("div", {
563
+ /* @__PURE__ */ x("div", {
718
564
  className: "flex justify-between",
719
- children: [/* @__PURE__ */ v("span", {
565
+ children: [/* @__PURE__ */ b("span", {
720
566
  className: "text-text-secondary",
721
567
  children: "Monthly Orders:"
722
- }), /* @__PURE__ */ v("span", {
568
+ }), /* @__PURE__ */ b("span", {
723
569
  className: "font-medium text-text-primary",
724
- children: a(e.businessMetrics.monthlyOrders)
570
+ children: s(e.businessMetrics.monthlyOrders)
725
571
  })]
726
572
  }),
727
- /* @__PURE__ */ y("div", {
573
+ /* @__PURE__ */ x("div", {
728
574
  className: "flex justify-between",
729
- children: [/* @__PURE__ */ v("span", {
575
+ children: [/* @__PURE__ */ b("span", {
730
576
  className: "text-text-secondary",
731
577
  children: "Net Margin:"
732
- }), /* @__PURE__ */ y("span", {
578
+ }), /* @__PURE__ */ x("span", {
733
579
  className: "font-medium text-text-primary",
734
580
  children: [e.financials.netMargin, "%"]
735
581
  })]
@@ -737,30 +583,30 @@ function D() {
737
583
  ]
738
584
  })]
739
585
  }),
740
- /* @__PURE__ */ v("div", {
586
+ /* @__PURE__ */ b("div", {
741
587
  className: "mb-4 border-t border-border-subtle pt-3",
742
- children: /* @__PURE__ */ y("div", {
588
+ children: /* @__PURE__ */ x("div", {
743
589
  className: "flex items-center gap-1.5 text-xs text-text-secondary",
744
- children: [/* @__PURE__ */ v(f, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ y("span", { children: [e.documents.length, " documents available"] })]
590
+ children: [/* @__PURE__ */ b(m, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ x("span", { children: [e.documents.length, " documents available"] })]
745
591
  })
746
592
  }),
747
- /* @__PURE__ */ y("div", {
593
+ /* @__PURE__ */ x("div", {
748
594
  className: "mb-4 flex items-center gap-1.5 text-xs text-text-secondary",
749
- children: [/* @__PURE__ */ v(m, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ v("span", { children: e.location })]
595
+ children: [/* @__PURE__ */ b(g, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ b("span", { children: e.location })]
750
596
  }),
751
- /* @__PURE__ */ y("div", {
597
+ /* @__PURE__ */ x("div", {
752
598
  className: "flex flex-col gap-2 sm:flex-row sm:gap-3",
753
- children: [/* @__PURE__ */ v("button", {
599
+ children: [/* @__PURE__ */ b("button", {
754
600
  type: "button",
755
- onClick: () => U(e),
601
+ onClick: () => J(e),
756
602
  disabled: e.status === "funded",
757
603
  className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", e.status === "funded" ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
758
604
  children: e.status === "funded" ? "Fully Funded" : "Invest Now"
759
- }), /* @__PURE__ */ y("button", {
605
+ }), /* @__PURE__ */ x("button", {
760
606
  type: "button",
761
- onClick: () => D(`/investor/opportunities/${e.id}`),
607
+ onClick: () => O(`/investor/opportunities/${e.id}`),
762
608
  className: "flex flex-1 items-center justify-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
763
- children: [/* @__PURE__ */ v(d, { className: "h-4 w-4" }), "View Details"]
609
+ children: [/* @__PURE__ */ b(p, { className: "h-4 w-4" }), "View Details"]
764
610
  })]
765
611
  })
766
612
  ]
@@ -768,168 +614,168 @@ function D() {
768
614
  }, e.id);
769
615
  })
770
616
  }),
771
- M && A && /* @__PURE__ */ v("div", {
617
+ F && N && /* @__PURE__ */ b("div", {
772
618
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
773
- children: /* @__PURE__ */ y("div", {
619
+ children: /* @__PURE__ */ x("div", {
774
620
  className: "relative max-h-[90vh] w-full max-w-md overflow-y-auto rounded-lg border border-border-subtle bg-bg-surface p-4 sm:p-6",
775
621
  children: [
776
- /* @__PURE__ */ v("button", {
622
+ /* @__PURE__ */ b("button", {
777
623
  type: "button",
778
624
  onClick: () => {
779
- N(!1), F(""), L("idle");
625
+ I(!1), R(""), B("idle");
780
626
  },
781
627
  className: "absolute right-3 top-3 rounded-lg p-1 text-text-secondary hover:bg-accent transition-colors",
782
- children: /* @__PURE__ */ v(_, { className: "h-5 w-5" })
628
+ children: /* @__PURE__ */ b(y, { className: "h-5 w-5" })
783
629
  }),
784
- /* @__PURE__ */ y("h3", {
630
+ /* @__PURE__ */ x("h3", {
785
631
  className: "mb-4 text-base font-semibold text-text-primary sm:text-lg",
786
- children: ["Invest in ", A.cartName]
632
+ children: ["Invest in ", N.cartName]
787
633
  }),
788
- I === "success" ? /* @__PURE__ */ y("div", {
634
+ z === "success" ? /* @__PURE__ */ x("div", {
789
635
  className: "py-8 text-center",
790
636
  children: [
791
- /* @__PURE__ */ v(u, { className: "mx-auto mb-3 h-12 w-12 text-status-success-text" }),
792
- /* @__PURE__ */ v("p", {
637
+ /* @__PURE__ */ b(f, { className: "mx-auto mb-3 h-12 w-12 text-status-success-text" }),
638
+ /* @__PURE__ */ b("p", {
793
639
  className: "text-sm font-medium text-text-primary",
794
640
  children: "Investment successful!"
795
641
  }),
796
- /* @__PURE__ */ v("p", {
642
+ /* @__PURE__ */ b("p", {
797
643
  className: "mt-1 text-xs text-text-secondary",
798
644
  children: "Redirecting to your portfolio..."
799
645
  })
800
646
  ]
801
- }) : /* @__PURE__ */ y("div", {
647
+ }) : /* @__PURE__ */ x("div", {
802
648
  className: "space-y-4",
803
649
  children: [
804
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
650
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
805
651
  className: "mb-1 text-xs text-text-secondary sm:text-sm",
806
652
  children: "Investment Range"
807
- }), /* @__PURE__ */ y("p", {
653
+ }), /* @__PURE__ */ x("p", {
808
654
  className: "text-sm font-medium text-text-primary sm:text-base",
809
655
  children: [
810
- i(A.minimumInvestment, { minimumFractionDigits: 0 }),
656
+ o(N.minimumInvestment, { minimumFractionDigits: 0 }),
811
657
  " ",
812
658
  "-",
813
659
  " ",
814
- i(A.maximumInvestment, { minimumFractionDigits: 0 })
660
+ o(N.maximumInvestment, { minimumFractionDigits: 0 })
815
661
  ]
816
662
  })] }),
817
- /* @__PURE__ */ y("div", { children: [
818
- /* @__PURE__ */ v("label", {
663
+ /* @__PURE__ */ x("div", { children: [
664
+ /* @__PURE__ */ b("label", {
819
665
  className: "mb-1 block text-xs font-medium text-text-primary sm:text-sm",
820
666
  children: "Investment Amount"
821
667
  }),
822
- /* @__PURE__ */ y("div", {
668
+ /* @__PURE__ */ x("div", {
823
669
  className: "relative",
824
- children: [/* @__PURE__ */ v(p, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ v("input", {
670
+ children: [/* @__PURE__ */ b(h, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ b("input", {
825
671
  type: "number",
826
- value: P,
672
+ value: L,
827
673
  onChange: (e) => {
828
- F(e.target.value), L("idle");
674
+ R(e.target.value), B("idle");
829
675
  },
830
676
  placeholder: "Enter amount",
831
677
  className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
832
678
  })]
833
679
  }),
834
- I === "error" && /* @__PURE__ */ y("p", {
680
+ z === "error" && /* @__PURE__ */ x("p", {
835
681
  className: "mt-1 text-xs text-status-error-text",
836
682
  children: [
837
683
  "Amount must be between",
838
684
  " ",
839
- i(A.minimumInvestment, { minimumFractionDigits: 0 }),
685
+ o(N.minimumInvestment, { minimumFractionDigits: 0 }),
840
686
  " ",
841
687
  "and",
842
688
  " ",
843
- i(A.maximumInvestment, { minimumFractionDigits: 0 })
689
+ o(N.maximumInvestment, { minimumFractionDigits: 0 })
844
690
  ]
845
691
  })
846
692
  ] }),
847
- P && !isNaN(parseInt(P, 10)) && parseInt(P, 10) > 0 && /* @__PURE__ */ y("div", {
693
+ L && !isNaN(parseInt(L, 10)) && parseInt(L, 10) > 0 && /* @__PURE__ */ x("div", {
848
694
  className: "rounded-lg border border-border-subtle bg-bg-sunken/50 p-3 sm:p-4",
849
- children: [/* @__PURE__ */ v("p", {
695
+ children: [/* @__PURE__ */ b("p", {
850
696
  className: "mb-2 text-xs text-text-secondary sm:text-sm",
851
697
  children: "Expected Returns"
852
- }), /* @__PURE__ */ y("div", {
698
+ }), /* @__PURE__ */ x("div", {
853
699
  className: "space-y-1.5",
854
700
  children: [
855
- /* @__PURE__ */ y("div", {
701
+ /* @__PURE__ */ x("div", {
856
702
  className: "flex justify-between",
857
- children: [/* @__PURE__ */ v("span", {
703
+ children: [/* @__PURE__ */ b("span", {
858
704
  className: "text-xs text-text-primary sm:text-sm",
859
705
  children: "Investment:"
860
- }), /* @__PURE__ */ v("span", {
706
+ }), /* @__PURE__ */ b("span", {
861
707
  className: "text-xs font-medium text-text-primary sm:text-sm",
862
- children: i(parseInt(P, 10), { minimumFractionDigits: 0 })
708
+ children: o(parseInt(L, 10), { minimumFractionDigits: 0 })
863
709
  })]
864
710
  }),
865
- /* @__PURE__ */ y("div", {
711
+ /* @__PURE__ */ x("div", {
866
712
  className: "flex justify-between",
867
- children: [/* @__PURE__ */ y("span", {
713
+ children: [/* @__PURE__ */ x("span", {
868
714
  className: "text-xs text-text-primary sm:text-sm",
869
715
  children: [
870
716
  "Expected Return (",
871
- A.expectedReturns,
717
+ N.expectedReturns,
872
718
  "%):"
873
719
  ]
874
- }), /* @__PURE__ */ y("span", {
720
+ }), /* @__PURE__ */ x("span", {
875
721
  className: "text-xs font-medium text-status-success-text sm:text-sm",
876
- children: ["+", i(parseInt(P, 10) * A.expectedReturns / 100, { minimumFractionDigits: 0 })]
722
+ children: ["+", o(parseInt(L, 10) * N.expectedReturns / 100, { minimumFractionDigits: 0 })]
877
723
  })]
878
724
  }),
879
- /* @__PURE__ */ y("div", {
725
+ /* @__PURE__ */ x("div", {
880
726
  className: "flex justify-between border-t border-border-subtle pt-2",
881
- children: [/* @__PURE__ */ v("span", {
727
+ children: [/* @__PURE__ */ b("span", {
882
728
  className: "text-xs font-medium text-text-primary sm:text-sm",
883
729
  children: "Total Value:"
884
- }), /* @__PURE__ */ v("span", {
730
+ }), /* @__PURE__ */ b("span", {
885
731
  className: "text-xs font-bold text-text-primary sm:text-sm",
886
- children: i(parseInt(P, 10) * (1 + A.expectedReturns / 100), { minimumFractionDigits: 0 })
732
+ children: o(parseInt(L, 10) * (1 + N.expectedReturns / 100), { minimumFractionDigits: 0 })
887
733
  })]
888
734
  })
889
735
  ]
890
736
  })]
891
737
  }),
892
- /* @__PURE__ */ y("div", {
738
+ /* @__PURE__ */ x("div", {
893
739
  className: "space-y-1 text-xs text-text-secondary sm:text-sm",
894
740
  children: [
895
- /* @__PURE__ */ y("p", { children: [
741
+ /* @__PURE__ */ x("p", { children: [
896
742
  "• Minimum lock-in period:",
897
743
  " ",
898
- A.investmentTerms.lockInPeriod,
744
+ N.investmentTerms.lockInPeriod,
899
745
  " months"
900
746
  ] }),
901
- /* @__PURE__ */ y("p", { children: [
747
+ /* @__PURE__ */ x("p", { children: [
902
748
  "• Dividend frequency:",
903
749
  " ",
904
- A.investmentTerms.dividendFrequency
750
+ N.investmentTerms.dividendFrequency
905
751
  ] }),
906
- /* @__PURE__ */ y("p", { children: [
752
+ /* @__PURE__ */ x("p", { children: [
907
753
  "• Your equity stake:",
908
754
  " ",
909
- ((parseInt(P, 10) || 0) / A.targetAmount * A.investmentTerms.equityOffered).toFixed(2),
755
+ ((parseInt(L, 10) || 0) / N.targetAmount * N.investmentTerms.equityOffered).toFixed(2),
910
756
  "%"
911
757
  ] }),
912
- /* @__PURE__ */ y("p", { children: [
758
+ /* @__PURE__ */ x("p", { children: [
913
759
  "• Exit options:",
914
760
  " ",
915
- A.investmentTerms.exitOptions.join(", ")
761
+ N.investmentTerms.exitOptions.join(", ")
916
762
  ] })
917
763
  ]
918
764
  }),
919
- /* @__PURE__ */ y("div", {
765
+ /* @__PURE__ */ x("div", {
920
766
  className: "flex flex-col gap-2 pt-2 sm:flex-row sm:gap-3",
921
- children: [/* @__PURE__ */ v("button", {
767
+ children: [/* @__PURE__ */ b("button", {
922
768
  type: "button",
923
769
  onClick: () => {
924
- N(!1), F(""), L("idle");
770
+ I(!1), R(""), B("idle");
925
771
  },
926
772
  className: "flex-1 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
927
773
  children: "Cancel"
928
- }), /* @__PURE__ */ v("button", {
774
+ }), /* @__PURE__ */ b("button", {
929
775
  type: "button",
930
- onClick: H,
931
- disabled: !P || isNaN(parseInt(P, 10)) || parseInt(P, 10) < A.minimumInvestment,
932
- className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", !P || isNaN(parseInt(P, 10)) || parseInt(P, 10) < A.minimumInvestment ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
776
+ onClick: q,
777
+ disabled: !L || isNaN(parseInt(L, 10)) || parseInt(L, 10) < N.minimumInvestment,
778
+ className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", !L || isNaN(parseInt(L, 10)) || parseInt(L, 10) < N.minimumInvestment ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
933
779
  children: "Confirm Investment"
934
780
  })]
935
781
  })
@@ -942,6 +788,6 @@ function D() {
942
788
  });
943
789
  }
944
790
  //#endregion
945
- export { D as InvestmentOpportunitiesPage };
791
+ export { O as InvestmentOpportunitiesPage };
946
792
 
947
793
  //# sourceMappingURL=InvestmentOpportunitiesPage.js.map