@burdenoff/microfe-kadaikodi 2026.625.1 → 2026.626.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 (91) hide show
  1. package/dist/kadaikodi/pages/HomePage.js +19 -14
  2. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  3. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +118 -83
  4. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/kadaikodi/pages/admin/AdminDashboard.js +75 -46
  6. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +144 -128
  8. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +255 -237
  10. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/kadaikodi/pages/admin/AdminProfilePage.js +129 -128
  12. package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +178 -150
  14. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/kadaikodi/pages/admin/CartManagementPage.js +182 -159
  16. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/kadaikodi/pages/admin/UserManagementPage.js +325 -303
  18. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +500 -469
  20. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +534 -503
  22. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +73 -48
  24. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +103 -96
  26. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +130 -129
  28. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +673 -670
  30. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +517 -514
  32. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +140 -125
  34. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/common/HelpSupportPage.js +302 -311
  36. package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/common/NotificationCenterPage.js +102 -91
  38. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/kadaikodi/pages/common/SettingsPage.js +766 -734
  40. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +366 -356
  42. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/kadaikodi/pages/customer/CartDetailPage.js +243 -213
  44. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +200 -195
  46. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/kadaikodi/pages/customer/CheckoutPage.js +95 -89
  48. package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +430 -387
  50. package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +488 -478
  52. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +523 -512
  54. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/kadaikodi/pages/customer/FavoritesPage.js +83 -75
  56. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +116 -108
  58. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +67 -61
  60. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +90 -73
  62. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/kadaikodi/pages/customer/ReviewsPage.js +80 -72
  64. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +70 -53
  66. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +289 -255
  68. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +92 -84
  70. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +63 -55
  72. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +339 -311
  74. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +40 -32
  76. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +174 -150
  78. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +385 -381
  80. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +302 -273
  82. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +87 -59
  84. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +82 -75
  86. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +81 -77
  88. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +78 -71
  90. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +2 -2
@@ -2,12 +2,14 @@ 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 { MetricsCard as r } from "../../components/MetricsCard.js";
5
- import { formatCurrency as i, formatDate as a } from "../../utils/formatters.js";
6
- import { useCallback as o, useMemo as s, useState as c } from "react";
7
- import { ArrowDownCircle as l, BarChart3 as u, Briefcase as d, CreditCard as f, Eye as p, IndianRupee as m, Star as h, TrendingDown as g, TrendingUp as _, Wallet as v } from "lucide-react";
8
- import { jsx as y, jsxs as b } from "react/jsx-runtime";
5
+ import { EmptyState as i } from "../../components/EmptyState.js";
6
+ import { formatCurrency as a, formatDate as o } from "../../utils/formatters.js";
7
+ import { useCallback as s, useMemo as c, useState as l } from "react";
8
+ import { ArrowDownCircle as u, BarChart3 as d, Briefcase as f, CreditCard as p, Eye as m, IndianRupee as h, Star as g, TrendingDown as _, TrendingUp as v, Wallet 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";
9
11
  //#region src/kadaikodi/pages/investor/InvestorPortfolioPage.tsx
10
- var x = [
12
+ var w = [
11
13
  {
12
14
  id: "inv-001",
13
15
  cartId: "SERV-001",
@@ -104,7 +106,7 @@ var x = [
104
106
  growthRate: 5
105
107
  }
106
108
  }
107
- ], S = [
109
+ ], T = [
108
110
  {
109
111
  id: "txn-001",
110
112
  type: "investment",
@@ -145,14 +147,14 @@ var x = [
145
147
  date: "2024-06-01",
146
148
  status: "pending"
147
149
  }
148
- ], C = [
150
+ ], E = [
149
151
  "",
150
152
  "Personal Care & Beauty",
151
153
  "Repair & Maintenance",
152
154
  "Home Services",
153
155
  "Food & Beverage"
154
156
  ];
155
- function w(e) {
157
+ function D(e) {
156
158
  let { color: n, label: r } = {
157
159
  low: {
158
160
  color: "bg-status-success-bg-subtle text-status-success-text",
@@ -167,123 +169,130 @@ function w(e) {
167
169
  label: "High Risk"
168
170
  }
169
171
  }[e];
170
- return /* @__PURE__ */ y("span", {
172
+ return /* @__PURE__ */ b("span", {
171
173
  className: t("rounded-full px-2 py-0.5 text-xs font-medium", n),
172
174
  children: r
173
175
  });
174
176
  }
175
- function T(e) {
177
+ function O(e) {
176
178
  return `${e > 0 ? "+" : ""}${e.toFixed(1)}%`;
177
179
  }
178
- function E() {
179
- let { navigateTo: E } = e(), [D, O] = c("overview"), [k, A] = c(""), j = s(() => k ? x.filter((e) => e.category === k) : x, [k]), M = j.reduce((e, t) => e + t.amount, 0), N = j.reduce((e, t) => e + t.currentValue, 0), P = N - M, F = M > 0 ? P / M * 100 : 0, I = j.reduce((e, t) => e + t.monthlyDividend, 0), L = j.filter((e) => e.status === "active").length, R = {
180
+ function k() {
181
+ let { navigateTo: k } = e(), [A, j] = l("overview"), [M, N] = l(""), P = c(() => M ? w.filter((e) => e.category === M) : w, [M]), F = P.reduce((e, t) => e + t.amount, 0), I = P.reduce((e, t) => e + t.currentValue, 0), L = I - F, R = F > 0 ? L / F * 100 : 0, z = P.reduce((e, t) => e + t.monthlyDividend, 0), B = P.filter((e) => e.status === "active").length, V = {
180
182
  low: 1,
181
183
  medium: 2,
182
184
  high: 3
183
- }, z = j.length > 0 ? j.reduce((e, t) => e + R[t.riskLevel], 0) / j.length : 0, B = j.reduce((e, t) => t.returnsPercentage > e.returnsPercentage ? t : e, j[0] || {
185
+ }, H = P.length > 0 ? P.reduce((e, t) => e + V[t.riskLevel], 0) / P.length : 0, U = P.reduce((e, t) => t.returnsPercentage > e.returnsPercentage ? t : e, P[0] || {
184
186
  cartName: "",
185
187
  returnsPercentage: 0
186
- }), V = o((e) => {
188
+ }), W = s((e) => {
187
189
  alert(`Withdrawal request submitted for ${e}`);
188
- }, []), H = j.reduce((e, t) => (e[t.category] = (e[t.category] || 0) + t.currentValue, e), {});
189
- return /* @__PURE__ */ b(n, {
190
+ }, []), G = P.reduce((e, t) => (e[t.category] = (e[t.category] || 0) + t.currentValue, e), {});
191
+ return /* @__PURE__ */ x(n, {
190
192
  title: "My Portfolio",
191
193
  description: "Track your investment performance and holdings",
192
194
  children: [
193
- /* @__PURE__ */ b("div", {
195
+ /* @__PURE__ */ b(C, {
196
+ className: "mb-6",
197
+ children: "The complete picture of your money on Kadaikodi. Use this page to see how your portfolio is performing overall, how it's split across categories and risk levels, the dividends coming your way, and a full history of your transactions. Switch tabs to drill into your holdings or activity, and open any holding to manage it."
198
+ }),
199
+ /* @__PURE__ */ x(S, { children: [/* @__PURE__ */ b("h2", {
200
+ className: "mb-4 text-base font-semibold text-text-primary",
201
+ children: "Portfolio at a Glance"
202
+ }), /* @__PURE__ */ x("div", {
194
203
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
195
204
  children: [
196
- /* @__PURE__ */ y(r, {
197
- icon: /* @__PURE__ */ y(v, { className: "h-5 w-5" }),
198
- value: i(M, { minimumFractionDigits: 0 }),
205
+ /* @__PURE__ */ b(r, {
206
+ icon: /* @__PURE__ */ b(y, { className: "h-5 w-5" }),
207
+ value: a(F, { minimumFractionDigits: 0 }),
199
208
  label: "Total Invested",
200
209
  trend: "up",
201
- trendValue: `${L} active`
210
+ trendValue: `${B} active`
202
211
  }),
203
- /* @__PURE__ */ y(r, {
204
- icon: /* @__PURE__ */ y(m, { className: "h-5 w-5" }),
205
- value: i(N, { minimumFractionDigits: 0 }),
212
+ /* @__PURE__ */ b(r, {
213
+ icon: /* @__PURE__ */ b(h, { className: "h-5 w-5" }),
214
+ value: a(I, { minimumFractionDigits: 0 }),
206
215
  label: "Current Value",
207
- trend: F > 0 ? "up" : "down",
208
- trendValue: T(F)
216
+ trend: R > 0 ? "up" : "down",
217
+ trendValue: O(R)
209
218
  }),
210
- /* @__PURE__ */ y(r, {
211
- icon: /* @__PURE__ */ y(_, { className: "h-5 w-5" }),
212
- value: i(Math.abs(P), { minimumFractionDigits: 0 }),
219
+ /* @__PURE__ */ b(r, {
220
+ icon: /* @__PURE__ */ b(v, { className: "h-5 w-5" }),
221
+ value: a(Math.abs(L), { minimumFractionDigits: 0 }),
213
222
  label: "Total Returns",
214
- trend: P >= 0 ? "up" : "down",
215
- trendValue: T(F)
223
+ trend: L >= 0 ? "up" : "down",
224
+ trendValue: O(R)
216
225
  }),
217
- /* @__PURE__ */ y(r, {
218
- icon: /* @__PURE__ */ y(d, { className: "h-5 w-5" }),
219
- value: i(I, { minimumFractionDigits: 0 }),
226
+ /* @__PURE__ */ b(r, {
227
+ icon: /* @__PURE__ */ b(f, { className: "h-5 w-5" }),
228
+ value: a(z, { minimumFractionDigits: 0 }),
220
229
  label: "Monthly Dividend",
221
230
  trend: "up",
222
231
  trendValue: "Next: July 1"
223
232
  })
224
233
  ]
225
- }),
226
- /* @__PURE__ */ b("div", {
234
+ })] }),
235
+ /* @__PURE__ */ x("div", {
227
236
  className: "mt-4 grid grid-cols-2 gap-3 lg:grid-cols-4",
228
237
  children: [
229
- /* @__PURE__ */ b("div", {
238
+ /* @__PURE__ */ x("div", {
230
239
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
231
- children: [/* @__PURE__ */ y("p", {
240
+ children: [/* @__PURE__ */ b("p", {
232
241
  className: "text-xs text-text-secondary",
233
242
  children: "Active Investments"
234
- }), /* @__PURE__ */ y("p", {
243
+ }), /* @__PURE__ */ b("p", {
235
244
  className: "text-xl font-bold text-text-primary",
236
- children: L
245
+ children: B
237
246
  })]
238
247
  }),
239
- /* @__PURE__ */ b("div", {
248
+ /* @__PURE__ */ x("div", {
240
249
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
241
- children: [/* @__PURE__ */ y("p", {
250
+ children: [/* @__PURE__ */ b("p", {
242
251
  className: "text-xs text-text-secondary",
243
252
  children: "Avg Risk Score"
244
- }), /* @__PURE__ */ b("div", {
253
+ }), /* @__PURE__ */ x("div", {
245
254
  className: "mt-1 flex items-center gap-2",
246
- children: [/* @__PURE__ */ y("div", {
255
+ children: [/* @__PURE__ */ b("div", {
247
256
  className: "h-2 flex-1 rounded-full bg-bg-sunken overflow-hidden",
248
- children: /* @__PURE__ */ y("div", {
249
- className: t("h-full rounded-full", z <= 1.5 ? "bg-status-success-text" : z <= 2.5 ? "bg-status-warning-text" : "bg-status-error-text"),
250
- style: { width: `${z / 3 * 100}%` }
257
+ children: /* @__PURE__ */ b("div", {
258
+ className: t("h-full rounded-full", H <= 1.5 ? "bg-status-success-text" : H <= 2.5 ? "bg-status-warning-text" : "bg-status-error-text"),
259
+ style: { width: `${H / 3 * 100}%` }
251
260
  })
252
- }), /* @__PURE__ */ b("span", {
261
+ }), /* @__PURE__ */ x("span", {
253
262
  className: "text-sm font-medium text-text-primary",
254
- children: [z.toFixed(1), "/3"]
263
+ children: [H.toFixed(1), "/3"]
255
264
  })]
256
265
  })]
257
266
  }),
258
- /* @__PURE__ */ b("div", {
267
+ /* @__PURE__ */ x("div", {
259
268
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
260
269
  children: [
261
- /* @__PURE__ */ y("p", {
270
+ /* @__PURE__ */ b("p", {
262
271
  className: "text-xs text-text-secondary",
263
272
  children: "Best Performer"
264
273
  }),
265
- /* @__PURE__ */ y("p", {
274
+ /* @__PURE__ */ b("p", {
266
275
  className: "truncate text-sm font-bold text-text-primary",
267
- children: B.cartName
276
+ children: U.cartName
268
277
  }),
269
- /* @__PURE__ */ y("p", {
278
+ /* @__PURE__ */ b("p", {
270
279
  className: "text-xs text-status-success-text",
271
- children: T(B.returnsPercentage)
280
+ children: O(U.returnsPercentage)
272
281
  })
273
282
  ]
274
283
  }),
275
- /* @__PURE__ */ b("div", {
284
+ /* @__PURE__ */ x("div", {
276
285
  className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
277
286
  children: [
278
- /* @__PURE__ */ y("p", {
287
+ /* @__PURE__ */ b("p", {
279
288
  className: "text-xs text-text-secondary",
280
289
  children: "Next Payout"
281
290
  }),
282
- /* @__PURE__ */ y("p", {
291
+ /* @__PURE__ */ b("p", {
283
292
  className: "text-lg font-bold text-text-primary",
284
293
  children: "July 1"
285
294
  }),
286
- /* @__PURE__ */ y("p", {
295
+ /* @__PURE__ */ b("p", {
287
296
  className: "text-xs text-text-secondary",
288
297
  children: "In 7 days"
289
298
  })
@@ -291,113 +300,128 @@ function E() {
291
300
  })
292
301
  ]
293
302
  }),
294
- /* @__PURE__ */ b("div", {
303
+ /* @__PURE__ */ x("div", {
295
304
  className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface shadow-sm",
296
- children: [/* @__PURE__ */ y("div", {
305
+ children: [/* @__PURE__ */ b("div", {
297
306
  className: "flex border-b border-border-subtle overflow-x-auto",
298
307
  children: [
299
308
  {
300
309
  key: "overview",
301
310
  label: "Overview",
302
- Icon: u
311
+ Icon: d
303
312
  },
304
313
  {
305
314
  key: "investments",
306
- label: `Investments (${j.length})`,
307
- Icon: d
315
+ label: `Investments (${P.length})`,
316
+ Icon: f
308
317
  },
309
318
  {
310
319
  key: "transactions",
311
320
  label: "Transactions",
312
- Icon: f
321
+ Icon: p
313
322
  }
314
- ].map(({ key: e, label: n, Icon: r }) => /* @__PURE__ */ b("button", {
323
+ ].map(({ key: e, label: n, Icon: r }) => /* @__PURE__ */ x("button", {
315
324
  type: "button",
316
- onClick: () => O(e),
317
- className: t("flex items-center gap-2 whitespace-nowrap px-4 py-3 text-sm font-medium transition-colors", D === e ? "border-b-2 border-primary text-text-primary" : "text-text-secondary hover:text-text-primary"),
318
- children: [/* @__PURE__ */ y(r, { className: "h-4 w-4" }), n]
325
+ onClick: () => j(e),
326
+ className: t("flex items-center gap-2 whitespace-nowrap px-4 py-3 text-sm font-medium transition-colors", A === e ? "border-b-2 border-primary text-text-primary" : "text-text-secondary hover:text-text-primary"),
327
+ children: [/* @__PURE__ */ b(r, { className: "h-4 w-4" }), n]
319
328
  }, e))
320
- }), /* @__PURE__ */ b("div", {
329
+ }), /* @__PURE__ */ x("div", {
321
330
  className: "p-4",
322
331
  children: [
323
- D === "overview" && /* @__PURE__ */ b("div", {
332
+ A === "overview" && /* @__PURE__ */ x("div", {
324
333
  className: "space-y-6",
325
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h3", {
334
+ children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h3", {
326
335
  className: "mb-4 text-base font-semibold text-text-primary",
327
336
  children: "Portfolio Performance"
328
- }), /* @__PURE__ */ b("div", {
337
+ }), /* @__PURE__ */ x("div", {
329
338
  className: "rounded-lg border border-border-subtle bg-bg-sunken/50 p-8 text-center",
330
339
  children: [
331
- /* @__PURE__ */ y(u, { className: "mx-auto mb-2 h-8 w-8 text-text-secondary/50" }),
332
- /* @__PURE__ */ y("p", {
340
+ /* @__PURE__ */ b(d, { className: "mx-auto mb-2 h-8 w-8 text-text-secondary/50" }),
341
+ /* @__PURE__ */ b("p", {
333
342
  className: "text-sm text-text-secondary",
334
343
  children: "Performance chart visualization"
335
344
  }),
336
- /* @__PURE__ */ y("p", {
345
+ /* @__PURE__ */ b("p", {
337
346
  className: "mt-1 text-xs text-text-secondary",
338
347
  children: "Shows portfolio value over time"
339
348
  })
340
349
  ]
341
- })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h3", {
350
+ })] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h3", {
342
351
  className: "mb-4 text-base font-semibold text-text-primary",
343
352
  children: "Asset Allocation"
344
- }), /* @__PURE__ */ y("div", {
353
+ }), /* @__PURE__ */ b("div", {
345
354
  className: "space-y-3",
346
- children: Object.entries(H).map(([e, t]) => /* @__PURE__ */ b("div", {
355
+ children: Object.entries(G).map(([e, t]) => /* @__PURE__ */ x("div", {
347
356
  className: "flex items-center",
348
357
  children: [
349
- /* @__PURE__ */ y("span", {
358
+ /* @__PURE__ */ b("span", {
350
359
  className: "w-40 truncate text-sm text-text-primary",
351
360
  children: e
352
361
  }),
353
- /* @__PURE__ */ y("div", {
362
+ /* @__PURE__ */ b("div", {
354
363
  className: "mx-3 h-6 flex-1 rounded-full bg-bg-sunken overflow-hidden",
355
- children: /* @__PURE__ */ y("div", {
364
+ children: /* @__PURE__ */ b("div", {
356
365
  className: "flex h-6 items-center justify-end rounded-full bg-action-primary-bg pr-2",
357
- style: { width: `${N > 0 ? t / N * 100 : 0}%` },
358
- children: /* @__PURE__ */ b("span", {
366
+ style: { width: `${I > 0 ? t / I * 100 : 0}%` },
367
+ children: /* @__PURE__ */ x("span", {
359
368
  className: "text-xs font-medium text-action-primary-text",
360
- children: [N > 0 ? (t / N * 100).toFixed(1) : 0, "%"]
369
+ children: [I > 0 ? (t / I * 100).toFixed(1) : 0, "%"]
361
370
  })
362
371
  })
363
372
  }),
364
- /* @__PURE__ */ y("span", {
373
+ /* @__PURE__ */ b("span", {
365
374
  className: "ml-2 text-sm font-medium text-text-primary",
366
- children: i(t, { minimumFractionDigits: 0 })
375
+ children: a(t, { minimumFractionDigits: 0 })
367
376
  })
368
377
  ]
369
378
  }, e))
370
379
  })] })]
371
380
  }),
372
- D === "investments" && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("div", {
381
+ A === "investments" && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("div", {
373
382
  className: "mb-4",
374
- children: /* @__PURE__ */ b("select", {
375
- value: k,
376
- onChange: (e) => A(e.target.value),
383
+ children: /* @__PURE__ */ x("select", {
384
+ value: M,
385
+ onChange: (e) => N(e.target.value),
377
386
  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)]",
378
- children: [/* @__PURE__ */ y("option", {
387
+ children: [/* @__PURE__ */ b("option", {
379
388
  value: "",
380
389
  children: "All Categories"
381
- }), C.filter(Boolean).map((e) => /* @__PURE__ */ y("option", {
390
+ }), E.filter(Boolean).map((e) => /* @__PURE__ */ b("option", {
382
391
  value: e,
383
392
  children: e
384
393
  }, e))]
385
394
  })
386
- }), /* @__PURE__ */ y("div", {
395
+ }), P.length === 0 ? /* @__PURE__ */ b(i, {
396
+ illustration: M ? "empty-search" : "empty-data",
397
+ title: "No holdings to show",
398
+ description: M ? "No holdings in this category. Try a different one or clear the filter." : "You don't hold any investments yet. Explore opportunities to start building your portfolio.",
399
+ action: M ? /* @__PURE__ */ b("button", {
400
+ type: "button",
401
+ onClick: () => N(""),
402
+ className: "rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
403
+ children: "Clear filter"
404
+ }) : /* @__PURE__ */ b("button", {
405
+ type: "button",
406
+ onClick: () => k("/investor/opportunities"),
407
+ className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
408
+ children: "Browse Opportunities"
409
+ })
410
+ }) : /* @__PURE__ */ b("div", {
387
411
  className: "space-y-4",
388
- children: j.map((e) => /* @__PURE__ */ b("div", {
412
+ children: P.map((e) => /* @__PURE__ */ x("div", {
389
413
  className: "rounded-lg border border-border-subtle p-4 hover:bg-accent/50 transition-colors",
390
414
  children: [
391
- /* @__PURE__ */ b("div", {
415
+ /* @__PURE__ */ x("div", {
392
416
  className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
393
- children: [/* @__PURE__ */ b("div", {
417
+ children: [/* @__PURE__ */ x("div", {
394
418
  className: "flex-1",
395
419
  children: [
396
- /* @__PURE__ */ y("h4", {
420
+ /* @__PURE__ */ b("h4", {
397
421
  className: "text-base font-semibold text-text-primary",
398
422
  children: e.cartName
399
423
  }),
400
- /* @__PURE__ */ b("p", {
424
+ /* @__PURE__ */ x("p", {
401
425
  className: "text-sm text-text-secondary",
402
426
  children: [
403
427
  "Owned by ",
@@ -406,151 +430,151 @@ function E() {
406
430
  e.location
407
431
  ]
408
432
  }),
409
- /* @__PURE__ */ b("div", {
433
+ /* @__PURE__ */ x("div", {
410
434
  className: "mt-2 flex flex-wrap items-center gap-2",
411
- children: [/* @__PURE__ */ y("span", {
435
+ children: [/* @__PURE__ */ b("span", {
412
436
  className: "text-sm text-text-secondary",
413
437
  children: e.category
414
- }), w(e.riskLevel)]
438
+ }), D(e.riskLevel)]
415
439
  })
416
440
  ]
417
- }), /* @__PURE__ */ b("div", {
441
+ }), /* @__PURE__ */ x("div", {
418
442
  className: "text-left sm:text-right",
419
- children: [/* @__PURE__ */ y("p", {
443
+ children: [/* @__PURE__ */ b("p", {
420
444
  className: "text-xl font-bold text-text-primary",
421
- children: i(e.currentValue, { minimumFractionDigits: 0 })
422
- }), /* @__PURE__ */ b("p", {
445
+ children: a(e.currentValue, { minimumFractionDigits: 0 })
446
+ }), /* @__PURE__ */ x("p", {
423
447
  className: t("text-sm", e.returns > 0 ? "text-status-success-text" : "text-status-error-text"),
424
448
  children: [
425
- i(Math.abs(e.returns), { minimumFractionDigits: 0 }),
449
+ a(Math.abs(e.returns), { minimumFractionDigits: 0 }),
426
450
  " (",
427
- T(e.returnsPercentage),
451
+ O(e.returnsPercentage),
428
452
  ")"
429
453
  ]
430
454
  })]
431
455
  })]
432
456
  }),
433
- /* @__PURE__ */ b("div", {
457
+ /* @__PURE__ */ x("div", {
434
458
  className: "mb-4 grid grid-cols-2 gap-3 lg:grid-cols-4",
435
459
  children: [
436
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
460
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
437
461
  className: "text-xs text-text-secondary",
438
462
  children: "Invested"
439
- }), /* @__PURE__ */ y("p", {
463
+ }), /* @__PURE__ */ b("p", {
440
464
  className: "text-sm font-medium text-text-primary",
441
- children: i(e.amount, { minimumFractionDigits: 0 })
465
+ children: a(e.amount, { minimumFractionDigits: 0 })
442
466
  })] }),
443
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
467
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
444
468
  className: "text-xs text-text-secondary",
445
469
  children: "Ownership"
446
- }), /* @__PURE__ */ b("p", {
470
+ }), /* @__PURE__ */ x("p", {
447
471
  className: "text-sm font-medium text-text-primary",
448
472
  children: [e.ownership, "%"]
449
473
  })] }),
450
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
474
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
451
475
  className: "text-xs text-text-secondary",
452
476
  children: "Monthly Dividend"
453
- }), /* @__PURE__ */ y("p", {
477
+ }), /* @__PURE__ */ b("p", {
454
478
  className: "text-sm font-medium text-text-primary",
455
- children: i(e.monthlyDividend, { minimumFractionDigits: 0 })
479
+ children: a(e.monthlyDividend, { minimumFractionDigits: 0 })
456
480
  })] }),
457
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
481
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
458
482
  className: "text-xs text-text-secondary",
459
483
  children: "Investment Date"
460
- }), /* @__PURE__ */ y("p", {
484
+ }), /* @__PURE__ */ b("p", {
461
485
  className: "text-sm font-medium text-text-primary",
462
- children: a(e.investmentDate, {
486
+ children: o(e.investmentDate, {
463
487
  hour: void 0,
464
488
  minute: void 0
465
489
  })
466
490
  })] })
467
491
  ]
468
492
  }),
469
- /* @__PURE__ */ b("div", {
493
+ /* @__PURE__ */ x("div", {
470
494
  className: "border-t border-border-subtle pt-4",
471
- children: [/* @__PURE__ */ y("p", {
495
+ children: [/* @__PURE__ */ b("p", {
472
496
  className: "mb-2 text-sm font-medium text-text-secondary",
473
497
  children: "Performance Metrics"
474
- }), /* @__PURE__ */ b("div", {
498
+ }), /* @__PURE__ */ x("div", {
475
499
  className: "grid grid-cols-3 gap-3 text-center",
476
500
  children: [
477
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
501
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
478
502
  className: "text-lg font-bold text-text-primary",
479
503
  children: e.performanceMetrics.monthlyOrders
480
- }), /* @__PURE__ */ y("p", {
504
+ }), /* @__PURE__ */ b("p", {
481
505
  className: "text-xs text-text-secondary",
482
506
  children: "Monthly Orders"
483
507
  })] }),
484
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("div", {
508
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
485
509
  className: "flex items-center justify-center gap-1",
486
- children: [/* @__PURE__ */ y(h, { className: "h-4 w-4 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ y("p", {
510
+ children: [/* @__PURE__ */ b(g, { className: "h-4 w-4 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ b("p", {
487
511
  className: "text-lg font-bold text-text-primary",
488
512
  children: e.performanceMetrics.averageRating
489
513
  })]
490
- }), /* @__PURE__ */ y("p", {
514
+ }), /* @__PURE__ */ b("p", {
491
515
  className: "text-xs text-text-secondary",
492
516
  children: "Rating"
493
517
  })] }),
494
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("p", {
518
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
495
519
  className: "text-lg font-bold text-status-success-text",
496
520
  children: [
497
521
  "+",
498
522
  e.performanceMetrics.growthRate,
499
523
  "%"
500
524
  ]
501
- }), /* @__PURE__ */ y("p", {
525
+ }), /* @__PURE__ */ b("p", {
502
526
  className: "text-xs text-text-secondary",
503
527
  children: "Growth Rate"
504
528
  })] })
505
529
  ]
506
530
  })]
507
531
  }),
508
- /* @__PURE__ */ b("div", {
532
+ /* @__PURE__ */ x("div", {
509
533
  className: "mt-4 flex flex-wrap gap-2",
510
- children: [/* @__PURE__ */ b("button", {
534
+ children: [/* @__PURE__ */ x("button", {
511
535
  type: "button",
512
- onClick: () => E(`/investor/investments/${e.id}`),
536
+ onClick: () => k(`/investor/investments/${e.id}`),
513
537
  className: "flex items-center gap-2 rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
514
- children: [/* @__PURE__ */ y(p, { className: "h-4 w-4" }), "View Details"]
515
- }), e.status === "active" && /* @__PURE__ */ b("button", {
538
+ children: [/* @__PURE__ */ b(m, { className: "h-4 w-4" }), "View Details"]
539
+ }), e.status === "active" && /* @__PURE__ */ x("button", {
516
540
  type: "button",
517
- onClick: () => V(e.id),
541
+ onClick: () => W(e.id),
518
542
  className: "flex items-center gap-2 rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
519
- children: [/* @__PURE__ */ y(l, { className: "h-4 w-4" }), "Withdraw"]
543
+ children: [/* @__PURE__ */ b(u, { className: "h-4 w-4" }), "Withdraw"]
520
544
  })]
521
545
  })
522
546
  ]
523
547
  }, e.id))
524
548
  })] }),
525
- D === "transactions" && /* @__PURE__ */ y("div", {
549
+ A === "transactions" && /* @__PURE__ */ b("div", {
526
550
  className: "space-y-3",
527
- children: S.map((e) => /* @__PURE__ */ b("div", {
551
+ children: T.map((e) => /* @__PURE__ */ x("div", {
528
552
  className: "flex flex-col gap-3 rounded-lg border border-border-subtle p-4 hover:bg-accent/50 transition-colors sm:flex-row sm:items-center sm:justify-between",
529
- children: [/* @__PURE__ */ b("div", {
553
+ children: [/* @__PURE__ */ x("div", {
530
554
  className: "flex items-center gap-3",
531
- children: [/* @__PURE__ */ y("div", {
555
+ children: [/* @__PURE__ */ b("div", {
532
556
  className: t("flex h-10 w-10 shrink-0 items-center justify-center rounded-full", e.type === "investment" ? "bg-[var(--color-accent-soft)]" : e.type === "dividend" ? "bg-status-success-bg-subtle" : "bg-status-error-bg-subtle"),
533
- children: e.type === "investment" ? /* @__PURE__ */ y(v, { className: "h-5 w-5 text-text-primary" }) : e.type === "dividend" ? /* @__PURE__ */ y(_, { className: "h-5 w-5 text-status-success-text" }) : /* @__PURE__ */ y(g, { className: "h-5 w-5 text-status-error-text" })
534
- }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("p", {
557
+ children: e.type === "investment" ? /* @__PURE__ */ b(y, { className: "h-5 w-5 text-text-primary" }) : e.type === "dividend" ? /* @__PURE__ */ b(v, { className: "h-5 w-5 text-status-success-text" }) : /* @__PURE__ */ b(_, { className: "h-5 w-5 text-status-error-text" })
558
+ }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
535
559
  className: "text-sm font-medium text-text-primary",
536
560
  children: [
537
561
  e.type === "investment" ? "Investment in" : e.type === "dividend" ? "Dividend from" : "Withdrawal from",
538
562
  " ",
539
563
  e.cartName
540
564
  ]
541
- }), /* @__PURE__ */ y("p", {
565
+ }), /* @__PURE__ */ b("p", {
542
566
  className: "text-xs text-text-secondary",
543
- children: a(e.date, {
567
+ children: o(e.date, {
544
568
  hour: void 0,
545
569
  minute: void 0
546
570
  })
547
571
  })] })]
548
- }), /* @__PURE__ */ b("div", {
572
+ }), /* @__PURE__ */ x("div", {
549
573
  className: "flex items-center justify-between sm:gap-4",
550
- children: [/* @__PURE__ */ b("p", {
574
+ children: [/* @__PURE__ */ x("p", {
551
575
  className: t("text-sm font-bold", e.type === "dividend" ? "text-status-success-text" : "text-text-primary"),
552
- children: [e.type === "dividend" ? "+" : "-", i(e.amount, { minimumFractionDigits: 0 })]
553
- }), /* @__PURE__ */ y("span", {
576
+ children: [e.type === "dividend" ? "+" : "-", a(e.amount, { minimumFractionDigits: 0 })]
577
+ }), /* @__PURE__ */ b("span", {
554
578
  className: t("rounded-full px-2.5 py-0.5 text-xs font-medium", e.status === "completed" ? "bg-status-success-bg-subtle text-status-success-text" : e.status === "pending" ? "bg-status-warning-bg-subtle text-status-warning-text" : "bg-status-error-bg-subtle text-status-error-text"),
555
579
  children: e.status
556
580
  })]
@@ -564,6 +588,6 @@ function E() {
564
588
  });
565
589
  }
566
590
  //#endregion
567
- export { E as InvestorPortfolioPage };
591
+ export { k as InvestorPortfolioPage };
568
592
 
569
593
  //# sourceMappingURL=InvestorPortfolioPage.js.map