@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.
- package/dist/kadaikodi/pages/HomePage.js +19 -14
- package/dist/kadaikodi/pages/HomePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +118 -83
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +75 -46
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +144 -128
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +255 -237
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js +129 -128
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +178 -150
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +182 -159
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +325 -303
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +500 -469
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +534 -503
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +73 -48
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +103 -96
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +130 -129
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +673 -670
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +517 -514
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +140 -125
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +302 -311
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js +102 -91
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +766 -734
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +366 -356
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +243 -213
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +200 -195
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +95 -89
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +430 -387
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +488 -478
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +523 -512
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +83 -75
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +116 -108
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +67 -61
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +90 -73
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +80 -72
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +70 -53
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +289 -255
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +92 -84
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +63 -55
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js +339 -311
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +40 -32
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +174 -150
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +385 -381
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +302 -273
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js +87 -59
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +82 -75
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +81 -77
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +78 -71
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- 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 {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
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
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
|
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__ */
|
|
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
|
|
177
|
+
function O(e) {
|
|
176
178
|
return `${e > 0 ? "+" : ""}${e.toFixed(1)}%`;
|
|
177
179
|
}
|
|
178
|
-
function
|
|
179
|
-
let { navigateTo:
|
|
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
|
-
},
|
|
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
|
-
}),
|
|
188
|
+
}), W = s((e) => {
|
|
187
189
|
alert(`Withdrawal request submitted for ${e}`);
|
|
188
|
-
}, []),
|
|
189
|
-
return /* @__PURE__ */
|
|
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(
|
|
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__ */
|
|
197
|
-
icon: /* @__PURE__ */ y
|
|
198
|
-
value:
|
|
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: `${
|
|
210
|
+
trendValue: `${B} active`
|
|
202
211
|
}),
|
|
203
|
-
/* @__PURE__ */
|
|
204
|
-
icon: /* @__PURE__ */
|
|
205
|
-
value:
|
|
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:
|
|
208
|
-
trendValue:
|
|
216
|
+
trend: R > 0 ? "up" : "down",
|
|
217
|
+
trendValue: O(R)
|
|
209
218
|
}),
|
|
210
|
-
/* @__PURE__ */
|
|
211
|
-
icon: /* @__PURE__ */
|
|
212
|
-
value:
|
|
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:
|
|
215
|
-
trendValue:
|
|
223
|
+
trend: L >= 0 ? "up" : "down",
|
|
224
|
+
trendValue: O(R)
|
|
216
225
|
}),
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
icon: /* @__PURE__ */
|
|
219
|
-
value:
|
|
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__ */
|
|
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__ */
|
|
238
|
+
/* @__PURE__ */ x("div", {
|
|
230
239
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
231
|
-
children: [/* @__PURE__ */
|
|
240
|
+
children: [/* @__PURE__ */ b("p", {
|
|
232
241
|
className: "text-xs text-text-secondary",
|
|
233
242
|
children: "Active Investments"
|
|
234
|
-
}), /* @__PURE__ */
|
|
243
|
+
}), /* @__PURE__ */ b("p", {
|
|
235
244
|
className: "text-xl font-bold text-text-primary",
|
|
236
|
-
children:
|
|
245
|
+
children: B
|
|
237
246
|
})]
|
|
238
247
|
}),
|
|
239
|
-
/* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ x("div", {
|
|
240
249
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
241
|
-
children: [/* @__PURE__ */
|
|
250
|
+
children: [/* @__PURE__ */ b("p", {
|
|
242
251
|
className: "text-xs text-text-secondary",
|
|
243
252
|
children: "Avg Risk Score"
|
|
244
|
-
}), /* @__PURE__ */
|
|
253
|
+
}), /* @__PURE__ */ x("div", {
|
|
245
254
|
className: "mt-1 flex items-center gap-2",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
255
|
+
children: [/* @__PURE__ */ b("div", {
|
|
247
256
|
className: "h-2 flex-1 rounded-full bg-bg-sunken overflow-hidden",
|
|
248
|
-
children: /* @__PURE__ */
|
|
249
|
-
className: t("h-full rounded-full",
|
|
250
|
-
style: { width: `${
|
|
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__ */
|
|
261
|
+
}), /* @__PURE__ */ x("span", {
|
|
253
262
|
className: "text-sm font-medium text-text-primary",
|
|
254
|
-
children: [
|
|
263
|
+
children: [H.toFixed(1), "/3"]
|
|
255
264
|
})]
|
|
256
265
|
})]
|
|
257
266
|
}),
|
|
258
|
-
/* @__PURE__ */
|
|
267
|
+
/* @__PURE__ */ x("div", {
|
|
259
268
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
260
269
|
children: [
|
|
261
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ b("p", {
|
|
262
271
|
className: "text-xs text-text-secondary",
|
|
263
272
|
children: "Best Performer"
|
|
264
273
|
}),
|
|
265
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ b("p", {
|
|
266
275
|
className: "truncate text-sm font-bold text-text-primary",
|
|
267
|
-
children:
|
|
276
|
+
children: U.cartName
|
|
268
277
|
}),
|
|
269
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ b("p", {
|
|
270
279
|
className: "text-xs text-status-success-text",
|
|
271
|
-
children:
|
|
280
|
+
children: O(U.returnsPercentage)
|
|
272
281
|
})
|
|
273
282
|
]
|
|
274
283
|
}),
|
|
275
|
-
/* @__PURE__ */
|
|
284
|
+
/* @__PURE__ */ x("div", {
|
|
276
285
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
277
286
|
children: [
|
|
278
|
-
/* @__PURE__ */
|
|
287
|
+
/* @__PURE__ */ b("p", {
|
|
279
288
|
className: "text-xs text-text-secondary",
|
|
280
289
|
children: "Next Payout"
|
|
281
290
|
}),
|
|
282
|
-
/* @__PURE__ */
|
|
291
|
+
/* @__PURE__ */ b("p", {
|
|
283
292
|
className: "text-lg font-bold text-text-primary",
|
|
284
293
|
children: "July 1"
|
|
285
294
|
}),
|
|
286
|
-
/* @__PURE__ */
|
|
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__ */
|
|
303
|
+
/* @__PURE__ */ x("div", {
|
|
295
304
|
className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface shadow-sm",
|
|
296
|
-
children: [/* @__PURE__ */
|
|
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:
|
|
311
|
+
Icon: d
|
|
303
312
|
},
|
|
304
313
|
{
|
|
305
314
|
key: "investments",
|
|
306
|
-
label: `Investments (${
|
|
307
|
-
Icon:
|
|
315
|
+
label: `Investments (${P.length})`,
|
|
316
|
+
Icon: f
|
|
308
317
|
},
|
|
309
318
|
{
|
|
310
319
|
key: "transactions",
|
|
311
320
|
label: "Transactions",
|
|
312
|
-
Icon:
|
|
321
|
+
Icon: p
|
|
313
322
|
}
|
|
314
|
-
].map(({ key: e, label: n, Icon: r }) => /* @__PURE__ */
|
|
323
|
+
].map(({ key: e, label: n, Icon: r }) => /* @__PURE__ */ x("button", {
|
|
315
324
|
type: "button",
|
|
316
|
-
onClick: () =>
|
|
317
|
-
className: t("flex items-center gap-2 whitespace-nowrap px-4 py-3 text-sm font-medium transition-colors",
|
|
318
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
329
|
+
}), /* @__PURE__ */ x("div", {
|
|
321
330
|
className: "p-4",
|
|
322
331
|
children: [
|
|
323
|
-
|
|
332
|
+
A === "overview" && /* @__PURE__ */ x("div", {
|
|
324
333
|
className: "space-y-6",
|
|
325
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
332
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
353
|
+
}), /* @__PURE__ */ b("div", {
|
|
345
354
|
className: "space-y-3",
|
|
346
|
-
children: Object.entries(
|
|
355
|
+
children: Object.entries(G).map(([e, t]) => /* @__PURE__ */ x("div", {
|
|
347
356
|
className: "flex items-center",
|
|
348
357
|
children: [
|
|
349
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ b("span", {
|
|
350
359
|
className: "w-40 truncate text-sm text-text-primary",
|
|
351
360
|
children: e
|
|
352
361
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
362
|
+
/* @__PURE__ */ b("div", {
|
|
354
363
|
className: "mx-3 h-6 flex-1 rounded-full bg-bg-sunken overflow-hidden",
|
|
355
|
-
children: /* @__PURE__ */
|
|
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: `${
|
|
358
|
-
children: /* @__PURE__ */
|
|
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: [
|
|
369
|
+
children: [I > 0 ? (t / I * 100).toFixed(1) : 0, "%"]
|
|
361
370
|
})
|
|
362
371
|
})
|
|
363
372
|
}),
|
|
364
|
-
/* @__PURE__ */
|
|
373
|
+
/* @__PURE__ */ b("span", {
|
|
365
374
|
className: "ml-2 text-sm font-medium text-text-primary",
|
|
366
|
-
children:
|
|
375
|
+
children: a(t, { minimumFractionDigits: 0 })
|
|
367
376
|
})
|
|
368
377
|
]
|
|
369
378
|
}, e))
|
|
370
379
|
})] })]
|
|
371
380
|
}),
|
|
372
|
-
|
|
381
|
+
A === "investments" && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("div", {
|
|
373
382
|
className: "mb-4",
|
|
374
|
-
children: /* @__PURE__ */
|
|
375
|
-
value:
|
|
376
|
-
onChange: (e) =>
|
|
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__ */
|
|
387
|
+
children: [/* @__PURE__ */ b("option", {
|
|
379
388
|
value: "",
|
|
380
389
|
children: "All Categories"
|
|
381
|
-
}),
|
|
390
|
+
}), E.filter(Boolean).map((e) => /* @__PURE__ */ b("option", {
|
|
382
391
|
value: e,
|
|
383
392
|
children: e
|
|
384
393
|
}, e))]
|
|
385
394
|
})
|
|
386
|
-
}), /* @__PURE__ */
|
|
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:
|
|
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__ */
|
|
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__ */
|
|
417
|
+
children: [/* @__PURE__ */ x("div", {
|
|
394
418
|
className: "flex-1",
|
|
395
419
|
children: [
|
|
396
|
-
/* @__PURE__ */
|
|
420
|
+
/* @__PURE__ */ b("h4", {
|
|
397
421
|
className: "text-base font-semibold text-text-primary",
|
|
398
422
|
children: e.cartName
|
|
399
423
|
}),
|
|
400
|
-
/* @__PURE__ */
|
|
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__ */
|
|
433
|
+
/* @__PURE__ */ x("div", {
|
|
410
434
|
className: "mt-2 flex flex-wrap items-center gap-2",
|
|
411
|
-
children: [/* @__PURE__ */
|
|
435
|
+
children: [/* @__PURE__ */ b("span", {
|
|
412
436
|
className: "text-sm text-text-secondary",
|
|
413
437
|
children: e.category
|
|
414
|
-
}),
|
|
438
|
+
}), D(e.riskLevel)]
|
|
415
439
|
})
|
|
416
440
|
]
|
|
417
|
-
}), /* @__PURE__ */
|
|
441
|
+
}), /* @__PURE__ */ x("div", {
|
|
418
442
|
className: "text-left sm:text-right",
|
|
419
|
-
children: [/* @__PURE__ */
|
|
443
|
+
children: [/* @__PURE__ */ b("p", {
|
|
420
444
|
className: "text-xl font-bold text-text-primary",
|
|
421
|
-
children:
|
|
422
|
-
}), /* @__PURE__ */
|
|
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
|
-
|
|
449
|
+
a(Math.abs(e.returns), { minimumFractionDigits: 0 }),
|
|
426
450
|
" (",
|
|
427
|
-
|
|
451
|
+
O(e.returnsPercentage),
|
|
428
452
|
")"
|
|
429
453
|
]
|
|
430
454
|
})]
|
|
431
455
|
})]
|
|
432
456
|
}),
|
|
433
|
-
/* @__PURE__ */
|
|
457
|
+
/* @__PURE__ */ x("div", {
|
|
434
458
|
className: "mb-4 grid grid-cols-2 gap-3 lg:grid-cols-4",
|
|
435
459
|
children: [
|
|
436
|
-
/* @__PURE__ */
|
|
460
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
437
461
|
className: "text-xs text-text-secondary",
|
|
438
462
|
children: "Invested"
|
|
439
|
-
}), /* @__PURE__ */
|
|
463
|
+
}), /* @__PURE__ */ b("p", {
|
|
440
464
|
className: "text-sm font-medium text-text-primary",
|
|
441
|
-
children:
|
|
465
|
+
children: a(e.amount, { minimumFractionDigits: 0 })
|
|
442
466
|
})] }),
|
|
443
|
-
/* @__PURE__ */
|
|
467
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
444
468
|
className: "text-xs text-text-secondary",
|
|
445
469
|
children: "Ownership"
|
|
446
|
-
}), /* @__PURE__ */
|
|
470
|
+
}), /* @__PURE__ */ x("p", {
|
|
447
471
|
className: "text-sm font-medium text-text-primary",
|
|
448
472
|
children: [e.ownership, "%"]
|
|
449
473
|
})] }),
|
|
450
|
-
/* @__PURE__ */
|
|
474
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
451
475
|
className: "text-xs text-text-secondary",
|
|
452
476
|
children: "Monthly Dividend"
|
|
453
|
-
}), /* @__PURE__ */
|
|
477
|
+
}), /* @__PURE__ */ b("p", {
|
|
454
478
|
className: "text-sm font-medium text-text-primary",
|
|
455
|
-
children:
|
|
479
|
+
children: a(e.monthlyDividend, { minimumFractionDigits: 0 })
|
|
456
480
|
})] }),
|
|
457
|
-
/* @__PURE__ */
|
|
481
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
458
482
|
className: "text-xs text-text-secondary",
|
|
459
483
|
children: "Investment Date"
|
|
460
|
-
}), /* @__PURE__ */
|
|
484
|
+
}), /* @__PURE__ */ b("p", {
|
|
461
485
|
className: "text-sm font-medium text-text-primary",
|
|
462
|
-
children:
|
|
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__ */
|
|
493
|
+
/* @__PURE__ */ x("div", {
|
|
470
494
|
className: "border-t border-border-subtle pt-4",
|
|
471
|
-
children: [/* @__PURE__ */
|
|
495
|
+
children: [/* @__PURE__ */ b("p", {
|
|
472
496
|
className: "mb-2 text-sm font-medium text-text-secondary",
|
|
473
497
|
children: "Performance Metrics"
|
|
474
|
-
}), /* @__PURE__ */
|
|
498
|
+
}), /* @__PURE__ */ x("div", {
|
|
475
499
|
className: "grid grid-cols-3 gap-3 text-center",
|
|
476
500
|
children: [
|
|
477
|
-
/* @__PURE__ */
|
|
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__ */
|
|
504
|
+
}), /* @__PURE__ */ b("p", {
|
|
481
505
|
className: "text-xs text-text-secondary",
|
|
482
506
|
children: "Monthly Orders"
|
|
483
507
|
})] }),
|
|
484
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
|
|
485
509
|
className: "flex items-center justify-center gap-1",
|
|
486
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
514
|
+
}), /* @__PURE__ */ b("p", {
|
|
491
515
|
className: "text-xs text-text-secondary",
|
|
492
516
|
children: "Rating"
|
|
493
517
|
})] }),
|
|
494
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
532
|
+
/* @__PURE__ */ x("div", {
|
|
509
533
|
className: "mt-4 flex flex-wrap gap-2",
|
|
510
|
-
children: [/* @__PURE__ */
|
|
534
|
+
children: [/* @__PURE__ */ x("button", {
|
|
511
535
|
type: "button",
|
|
512
|
-
onClick: () =>
|
|
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__ */
|
|
515
|
-
}), e.status === "active" && /* @__PURE__ */
|
|
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: () =>
|
|
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__ */
|
|
543
|
+
children: [/* @__PURE__ */ b(u, { className: "h-4 w-4" }), "Withdraw"]
|
|
520
544
|
})]
|
|
521
545
|
})
|
|
522
546
|
]
|
|
523
547
|
}, e.id))
|
|
524
548
|
})] }),
|
|
525
|
-
|
|
549
|
+
A === "transactions" && /* @__PURE__ */ b("div", {
|
|
526
550
|
className: "space-y-3",
|
|
527
|
-
children:
|
|
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__ */
|
|
553
|
+
children: [/* @__PURE__ */ x("div", {
|
|
530
554
|
className: "flex items-center gap-3",
|
|
531
|
-
children: [/* @__PURE__ */
|
|
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
|
|
534
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
565
|
+
}), /* @__PURE__ */ b("p", {
|
|
542
566
|
className: "text-xs text-text-secondary",
|
|
543
|
-
children:
|
|
567
|
+
children: o(e.date, {
|
|
544
568
|
hour: void 0,
|
|
545
569
|
minute: void 0
|
|
546
570
|
})
|
|
547
571
|
})] })]
|
|
548
|
-
}), /* @__PURE__ */
|
|
572
|
+
}), /* @__PURE__ */ x("div", {
|
|
549
573
|
className: "flex items-center justify-between sm:gap-4",
|
|
550
|
-
children: [/* @__PURE__ */
|
|
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" ? "+" : "-",
|
|
553
|
-
}), /* @__PURE__ */
|
|
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 {
|
|
591
|
+
export { k as InvestorPortfolioPage };
|
|
568
592
|
|
|
569
593
|
//# sourceMappingURL=InvestorPortfolioPage.js.map
|