@burdenoff/microfe-kadaikodi 2026.704.1 → 2026.704.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/hooks/useKadaikodiApi.js +77 -26
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +341 -461
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +115 -399
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +140 -283
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +282 -453
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js +115 -242
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +2 -2
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +503 -627
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +339 -282
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +323 -422
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +374 -383
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +249 -208
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +1 -1
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +171 -627
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +331 -415
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js +18 -670
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -2
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +191 -369
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +233 -389
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +76 -118
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +135 -213
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +272 -774
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +232 -343
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +112 -600
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js +127 -294
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +204 -290
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +159 -500
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +399 -487
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +13 -13
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js +192 -296
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +245 -397
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +85 -117
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +177 -395
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,103 +7,50 @@ import { useInvestmentOpportunities as a, useInvestments as o } from "../../hook
|
|
|
7
7
|
import { formatCurrency as s } from "../../utils/formatters.js";
|
|
8
8
|
import { InvestmentCard as c } from "../../components/InvestmentCard.js";
|
|
9
9
|
import { useMemo as l, useState as u } from "react";
|
|
10
|
-
import {
|
|
11
|
-
import { jsx as
|
|
12
|
-
import { EmphasisPanel as
|
|
10
|
+
import { Award as d, BarChart3 as f, Eye as p, Filter as m, IndianRupee as h, PieChart as g, Plus as _, Target as v, Wallet as y } from "lucide-react";
|
|
11
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
12
|
+
import { EmphasisPanel as S, NextSteps as C, PagePurpose as w } from "@burdenoff/fe-libs/ui";
|
|
13
13
|
//#region src/kadaikodi/pages/investor/InvestorDashboard.tsx
|
|
14
|
-
|
|
15
|
-
{
|
|
16
|
-
id: "1",
|
|
17
|
-
type: "opportunity",
|
|
18
|
-
title: "High-Potential Business Detected",
|
|
19
|
-
description: "Glow Beauty Services in Koramangala shows 95% growth potential based on location analytics and market demand.",
|
|
20
|
-
confidence: 94
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "2",
|
|
24
|
-
type: "suggestion",
|
|
25
|
-
title: "Portfolio Diversification Recommended",
|
|
26
|
-
description: "Consider investing in Education & Skills to balance your services-heavy portfolio. Current allocation: 70% services, 30% retail.",
|
|
27
|
-
confidence: 87
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
id: "3",
|
|
31
|
-
type: "trend",
|
|
32
|
-
title: "Market Trend Alert",
|
|
33
|
-
description: "Health & Wellness businesses in tech hubs are experiencing 40% higher returns. Whitefield shows promising opportunities.",
|
|
34
|
-
confidence: 91
|
|
35
|
-
}
|
|
36
|
-
], k = [
|
|
37
|
-
{
|
|
38
|
-
id: "act-1",
|
|
39
|
-
type: "dividend",
|
|
40
|
-
description: "Dividend received from Quick Cuts Salon",
|
|
41
|
-
amount: 4200,
|
|
42
|
-
date: "2024-01-14T10:00:00Z"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: "act-2",
|
|
46
|
-
type: "investment",
|
|
47
|
-
description: "Invested in Spotless Cleaning Services",
|
|
48
|
-
amount: -4e4,
|
|
49
|
-
date: "2024-01-10T09:30:00Z"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: "act-3",
|
|
53
|
-
type: "return",
|
|
54
|
-
description: "Returns from Fix-It Mobile Repair",
|
|
55
|
-
amount: 6800,
|
|
56
|
-
date: "2024-01-05T14:00:00Z"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: "act-4",
|
|
60
|
-
type: "investment",
|
|
61
|
-
description: "Invested in Fix-It Mobile Repair",
|
|
62
|
-
amount: -75e3,
|
|
63
|
-
date: "2023-12-20T11:00:00Z"
|
|
64
|
-
}
|
|
65
|
-
];
|
|
66
|
-
function A(e) {
|
|
14
|
+
function T(e) {
|
|
67
15
|
switch (e) {
|
|
68
16
|
case "active": return "bg-status-success-bg-subtle text-status-success-text";
|
|
69
|
-
case "pending": return "bg-status-warning-bg-subtle text-status-warning-text";
|
|
70
17
|
case "completed": return "bg-[var(--color-accent-soft)] text-text-primary";
|
|
18
|
+
case "exited": return "bg-bg-sunken text-text-secondary";
|
|
71
19
|
default: return "bg-bg-sunken text-text-secondary";
|
|
72
20
|
}
|
|
73
21
|
}
|
|
74
|
-
function
|
|
75
|
-
let { navigateTo:
|
|
76
|
-
let e =
|
|
22
|
+
function E() {
|
|
23
|
+
let { navigateTo: E, currentUser: D } = e(), [O, k] = u("portfolio"), { data: A = [], isLoading: j } = a(), { data: M = [], isLoading: N } = o(D?.id || ""), P = D?.firstName ?? D?.name ?? "Investor", F = A.filter((e) => e.status === "active"), I = l(() => {
|
|
24
|
+
let e = M.reduce((e, t) => e + t.investedAmount, 0), t = M.reduce((e, t) => e + t.currentValue, 0);
|
|
77
25
|
return {
|
|
78
26
|
totalInvested: e,
|
|
79
27
|
currentValue: t,
|
|
80
|
-
totalReturns:
|
|
81
|
-
|
|
82
|
-
roi: e > 0 ? n / e * 100 : 0
|
|
28
|
+
totalReturns: M.reduce((e, t) => e + t.returns, 0),
|
|
29
|
+
roi: e > 0 ? (t - e) / e * 100 : 0
|
|
83
30
|
};
|
|
84
|
-
}, [
|
|
85
|
-
return
|
|
31
|
+
}, [M]);
|
|
32
|
+
return j || N ? /* @__PURE__ */ b(n, {
|
|
86
33
|
title: "Investment Dashboard",
|
|
87
34
|
description: "Loading your portfolio...",
|
|
88
|
-
children: /* @__PURE__ */
|
|
35
|
+
children: /* @__PURE__ */ b("div", {
|
|
89
36
|
className: "flex items-center justify-center py-20",
|
|
90
|
-
children: /* @__PURE__ */
|
|
37
|
+
children: /* @__PURE__ */ x("div", {
|
|
91
38
|
className: "text-center",
|
|
92
|
-
children: [/* @__PURE__ */
|
|
39
|
+
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", {
|
|
93
40
|
className: "text-sm text-text-secondary",
|
|
94
41
|
children: "Loading your portfolio..."
|
|
95
42
|
})]
|
|
96
43
|
})
|
|
97
44
|
})
|
|
98
|
-
}) : /* @__PURE__ */
|
|
99
|
-
title: `Welcome back, ${
|
|
45
|
+
}) : /* @__PURE__ */ x(n, {
|
|
46
|
+
title: `Welcome back, ${P}!`,
|
|
100
47
|
description: "Here's your investment portfolio overview.",
|
|
101
48
|
children: [
|
|
102
|
-
/* @__PURE__ */
|
|
49
|
+
/* @__PURE__ */ b(w, {
|
|
103
50
|
className: "mb-6",
|
|
104
51
|
children: "Track how your money is working across the mobile carts you've backed — see what you've invested, what it's worth today, and the returns flowing in. Review your active investments below or browse new opportunities to diversify."
|
|
105
52
|
}),
|
|
106
|
-
/* @__PURE__ */ C
|
|
53
|
+
/* @__PURE__ */ b(C, {
|
|
107
54
|
storageKey: "kadaikodi-investor-dashboard",
|
|
108
55
|
className: "mb-6",
|
|
109
56
|
steps: [
|
|
@@ -111,157 +58,142 @@ function j() {
|
|
|
111
58
|
id: "opportunities",
|
|
112
59
|
label: "Explore new opportunities",
|
|
113
60
|
description: "Discover carts seeking funding and their projected returns.",
|
|
114
|
-
onClick: () =>
|
|
61
|
+
onClick: () => E("/investor/opportunities")
|
|
115
62
|
},
|
|
116
63
|
{
|
|
117
64
|
id: "portfolio",
|
|
118
65
|
label: "Review your portfolio",
|
|
119
66
|
description: "Dig into each active investment and its performance.",
|
|
120
|
-
onClick: () =>
|
|
67
|
+
onClick: () => E("/investor/portfolio")
|
|
121
68
|
},
|
|
122
69
|
{
|
|
123
70
|
id: "analytics",
|
|
124
71
|
label: "Analyse your returns",
|
|
125
72
|
description: "See trends and projections across your whole portfolio.",
|
|
126
|
-
onClick: () =>
|
|
73
|
+
onClick: () => E("/investor/analytics")
|
|
127
74
|
}
|
|
128
75
|
]
|
|
129
76
|
}),
|
|
130
|
-
/* @__PURE__ */
|
|
77
|
+
/* @__PURE__ */ x(S, { children: [/* @__PURE__ */ b("h2", {
|
|
131
78
|
className: "mb-4 text-lg font-semibold text-text-primary",
|
|
132
79
|
children: "Portfolio Overview"
|
|
133
|
-
}), /* @__PURE__ */
|
|
134
|
-
className: "grid grid-cols-1 gap-4 sm:grid-cols-
|
|
80
|
+
}), /* @__PURE__ */ x("div", {
|
|
81
|
+
className: "grid grid-cols-1 gap-4 sm:grid-cols-3",
|
|
135
82
|
children: [
|
|
136
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ b(r, {
|
|
137
84
|
featured: !0,
|
|
138
|
-
icon: /* @__PURE__ */
|
|
139
|
-
value: s(
|
|
85
|
+
icon: /* @__PURE__ */ b(y, { className: "h-5 w-5" }),
|
|
86
|
+
value: s(I.totalInvested, { minimumFractionDigits: 0 }),
|
|
140
87
|
label: "Total Invested",
|
|
141
88
|
trend: "up",
|
|
142
89
|
trendValue: "Across all businesses"
|
|
143
90
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
-
icon: /* @__PURE__ */
|
|
146
|
-
value: s(
|
|
91
|
+
/* @__PURE__ */ b(r, {
|
|
92
|
+
icon: /* @__PURE__ */ b(h, { className: "h-5 w-5" }),
|
|
93
|
+
value: s(I.currentValue, { minimumFractionDigits: 0 }),
|
|
147
94
|
label: "Current Value",
|
|
148
|
-
trend: "up",
|
|
149
|
-
trendValue:
|
|
150
|
-
}),
|
|
151
|
-
/* @__PURE__ */ C(r, {
|
|
152
|
-
icon: /* @__PURE__ */ C(x, { className: "h-5 w-5" }),
|
|
153
|
-
value: s(V.totalReturns, { minimumFractionDigits: 0 }),
|
|
154
|
-
label: "Total Returns",
|
|
155
|
-
trend: "up",
|
|
156
|
-
trendValue: "+15.2% this month"
|
|
95
|
+
trend: I.roi >= 0 ? "up" : "down",
|
|
96
|
+
trendValue: `${I.roi >= 0 ? "+" : ""}${I.roi.toFixed(1)}%`
|
|
157
97
|
}),
|
|
158
|
-
/* @__PURE__ */
|
|
159
|
-
icon: /* @__PURE__ */
|
|
160
|
-
value: s(
|
|
161
|
-
label: "
|
|
162
|
-
trend: "up",
|
|
163
|
-
trendValue: "+8.5% vs last month"
|
|
98
|
+
/* @__PURE__ */ b(r, {
|
|
99
|
+
icon: /* @__PURE__ */ b(v, { className: "h-5 w-5" }),
|
|
100
|
+
value: s(I.totalReturns, { minimumFractionDigits: 0 }),
|
|
101
|
+
label: "Total Returns"
|
|
164
102
|
})
|
|
165
103
|
]
|
|
166
104
|
})] }),
|
|
167
|
-
/* @__PURE__ */
|
|
105
|
+
/* @__PURE__ */ x("div", {
|
|
168
106
|
className: "mt-8 grid grid-cols-1 gap-6 lg:grid-cols-3",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
107
|
+
children: [/* @__PURE__ */ x("div", {
|
|
170
108
|
className: "lg:col-span-2",
|
|
171
109
|
children: [
|
|
172
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ x("div", {
|
|
173
111
|
className: "mb-6 flex rounded-lg bg-bg-sunken p-1",
|
|
174
|
-
children: [/* @__PURE__ */
|
|
112
|
+
children: [/* @__PURE__ */ b("button", {
|
|
175
113
|
type: "button",
|
|
176
|
-
onClick: () =>
|
|
177
|
-
className: t("flex-1 rounded-md px-4 py-2 text-sm font-medium transition-colors",
|
|
114
|
+
onClick: () => k("portfolio"),
|
|
115
|
+
className: t("flex-1 rounded-md px-4 py-2 text-sm font-medium transition-colors", O === "portfolio" ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-secondary hover:text-text-primary"),
|
|
178
116
|
children: "My Investments"
|
|
179
|
-
}), /* @__PURE__ */
|
|
117
|
+
}), /* @__PURE__ */ b("button", {
|
|
180
118
|
type: "button",
|
|
181
|
-
onClick: () =>
|
|
182
|
-
className: t("flex-1 rounded-md px-4 py-2 text-sm font-medium transition-colors",
|
|
119
|
+
onClick: () => k("opportunities"),
|
|
120
|
+
className: t("flex-1 rounded-md px-4 py-2 text-sm font-medium transition-colors", O === "opportunities" ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-secondary hover:text-text-primary"),
|
|
183
121
|
children: "New Opportunities"
|
|
184
122
|
})]
|
|
185
123
|
}),
|
|
186
|
-
|
|
124
|
+
O === "portfolio" && /* @__PURE__ */ x("div", {
|
|
187
125
|
className: "space-y-4",
|
|
188
|
-
children: [/* @__PURE__ */
|
|
126
|
+
children: [/* @__PURE__ */ x("div", {
|
|
189
127
|
className: "flex items-center justify-between",
|
|
190
|
-
children: [/* @__PURE__ */
|
|
128
|
+
children: [/* @__PURE__ */ b("h3", {
|
|
191
129
|
className: "text-base font-semibold text-text-primary",
|
|
192
130
|
children: "Active Investments"
|
|
193
|
-
}), /* @__PURE__ */
|
|
131
|
+
}), /* @__PURE__ */ x("button", {
|
|
194
132
|
type: "button",
|
|
195
|
-
onClick: () =>
|
|
133
|
+
onClick: () => E("/investor/investments"),
|
|
196
134
|
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",
|
|
197
|
-
children: [/* @__PURE__ */
|
|
135
|
+
children: [/* @__PURE__ */ b(m, { className: "h-4 w-4" }), "View all"]
|
|
198
136
|
})]
|
|
199
|
-
}),
|
|
137
|
+
}), M.length === 0 ? /* @__PURE__ */ b(i, {
|
|
200
138
|
illustration: "empty-data",
|
|
201
139
|
title: "No active investments yet",
|
|
202
140
|
description: "Once you back a cart, your investments will appear here. Browse open opportunities to get started.",
|
|
203
|
-
action: /* @__PURE__ */
|
|
141
|
+
action: /* @__PURE__ */ b("button", {
|
|
204
142
|
type: "button",
|
|
205
|
-
onClick: () =>
|
|
143
|
+
onClick: () => k("opportunities"),
|
|
206
144
|
className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
207
145
|
children: "Browse opportunities"
|
|
208
146
|
})
|
|
209
|
-
}) :
|
|
147
|
+
}) : M.map((e) => /* @__PURE__ */ x("div", {
|
|
210
148
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm hover:shadow-md transition-shadow",
|
|
211
|
-
children: [/* @__PURE__ */
|
|
149
|
+
children: [/* @__PURE__ */ x("div", {
|
|
212
150
|
className: "flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
|
|
213
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ b("div", {
|
|
214
152
|
className: "flex-1",
|
|
215
|
-
children:
|
|
153
|
+
children: /* @__PURE__ */ x("div", {
|
|
216
154
|
className: "mb-2 flex flex-wrap items-center gap-2",
|
|
217
|
-
children: [/* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ b("h4", {
|
|
218
156
|
className: "text-base font-semibold text-text-primary",
|
|
219
157
|
children: e.cartName
|
|
220
|
-
}), /* @__PURE__ */
|
|
221
|
-
className: t("rounded-full px-2 py-0.5 text-xs font-medium",
|
|
158
|
+
}), /* @__PURE__ */ b("span", {
|
|
159
|
+
className: t("rounded-full px-2 py-0.5 text-xs font-medium", T(e.status)),
|
|
222
160
|
children: e.status
|
|
223
161
|
})]
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
children: [/* @__PURE__ */ w("span", {
|
|
227
|
-
className: "flex items-center gap-1",
|
|
228
|
-
children: [/* @__PURE__ */ C(v, { className: "h-3.5 w-3.5" }), "India"]
|
|
229
|
-
}), /* @__PURE__ */ C("span", { children: "Services" })]
|
|
230
|
-
})]
|
|
231
|
-
}), /* @__PURE__ */ w("button", {
|
|
162
|
+
})
|
|
163
|
+
}), /* @__PURE__ */ x("button", {
|
|
232
164
|
type: "button",
|
|
233
|
-
onClick: () =>
|
|
165
|
+
onClick: () => E(`/investor/investments/${e.id}`),
|
|
234
166
|
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",
|
|
235
|
-
children: [/* @__PURE__ */
|
|
167
|
+
children: [/* @__PURE__ */ b(p, { className: "h-4 w-4" }), "View Details"]
|
|
236
168
|
})]
|
|
237
|
-
}), /* @__PURE__ */
|
|
238
|
-
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
169
|
+
}), /* @__PURE__ */ x("div", {
|
|
170
|
+
className: "mt-3 grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
239
171
|
children: [
|
|
240
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
241
173
|
className: "text-xs text-text-secondary",
|
|
242
174
|
children: "Invested"
|
|
243
|
-
}), /* @__PURE__ */
|
|
175
|
+
}), /* @__PURE__ */ b("p", {
|
|
244
176
|
className: "text-sm font-semibold text-text-primary",
|
|
245
177
|
children: s(e.investedAmount, { minimumFractionDigits: 0 })
|
|
246
178
|
})] }),
|
|
247
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
248
180
|
className: "text-xs text-text-secondary",
|
|
249
181
|
children: "Current Value"
|
|
250
|
-
}), /* @__PURE__ */
|
|
182
|
+
}), /* @__PURE__ */ b("p", {
|
|
251
183
|
className: "text-sm font-semibold text-status-success-text",
|
|
252
184
|
children: s(e.currentValue, { minimumFractionDigits: 0 })
|
|
253
185
|
})] }),
|
|
254
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
255
187
|
className: "text-xs text-text-secondary",
|
|
256
188
|
children: "Returns"
|
|
257
|
-
}), /* @__PURE__ */
|
|
189
|
+
}), /* @__PURE__ */ b("p", {
|
|
258
190
|
className: "text-sm font-semibold text-text-primary",
|
|
259
191
|
children: s(e.returns, { minimumFractionDigits: 0 })
|
|
260
192
|
})] }),
|
|
261
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
262
194
|
className: "text-xs text-text-secondary",
|
|
263
|
-
children: "
|
|
264
|
-
}), /* @__PURE__ */
|
|
195
|
+
children: "Expected Return"
|
|
196
|
+
}), /* @__PURE__ */ x("p", {
|
|
265
197
|
className: "text-sm font-semibold text-status-success-text",
|
|
266
198
|
children: [e.returnsPercentage, "%"]
|
|
267
199
|
})] })
|
|
@@ -269,22 +201,26 @@ function j() {
|
|
|
269
201
|
})]
|
|
270
202
|
}, e.id))]
|
|
271
203
|
}),
|
|
272
|
-
|
|
204
|
+
O === "opportunities" && /* @__PURE__ */ x("div", {
|
|
273
205
|
className: "space-y-4",
|
|
274
|
-
children: [/* @__PURE__ */
|
|
206
|
+
children: [/* @__PURE__ */ x("div", {
|
|
275
207
|
className: "flex items-center justify-between",
|
|
276
|
-
children: [/* @__PURE__ */
|
|
208
|
+
children: [/* @__PURE__ */ b("h3", {
|
|
277
209
|
className: "text-base font-semibold text-text-primary",
|
|
278
210
|
children: "Investment Opportunities"
|
|
279
|
-
}), /* @__PURE__ */
|
|
211
|
+
}), /* @__PURE__ */ x("button", {
|
|
280
212
|
type: "button",
|
|
281
|
-
onClick: () =>
|
|
213
|
+
onClick: () => E("/investor/opportunities"),
|
|
282
214
|
className: "flex items-center gap-2 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",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
215
|
+
children: [/* @__PURE__ */ b(_, { className: "h-4 w-4" }), "Browse All"]
|
|
284
216
|
})]
|
|
285
|
-
}), /* @__PURE__ */
|
|
217
|
+
}), F.length === 0 ? /* @__PURE__ */ b(i, {
|
|
218
|
+
illustration: "empty-data",
|
|
219
|
+
title: "No open opportunities right now",
|
|
220
|
+
description: "New carts seeking funding will show up here. Check back soon."
|
|
221
|
+
}) : /* @__PURE__ */ b("div", {
|
|
286
222
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
|
|
287
|
-
children:
|
|
223
|
+
children: F.slice(0, 4).map((e) => /* @__PURE__ */ b(c, {
|
|
288
224
|
id: e.id,
|
|
289
225
|
cartName: e.cartName,
|
|
290
226
|
targetAmount: e.targetAmount,
|
|
@@ -292,157 +228,54 @@ function j() {
|
|
|
292
228
|
expectedReturns: `${e.expectedReturns}%`,
|
|
293
229
|
riskLevel: e.riskLevel,
|
|
294
230
|
status: e.status,
|
|
295
|
-
onClick: (e) =>
|
|
296
|
-
}, e.id))
|
|
297
|
-
})]
|
|
298
|
-
}),
|
|
299
|
-
/* @__PURE__ */ w("section", {
|
|
300
|
-
className: "mt-8",
|
|
301
|
-
children: [/* @__PURE__ */ C("h2", {
|
|
302
|
-
className: "mb-4 text-lg font-semibold text-text-primary",
|
|
303
|
-
children: "Recent Activity"
|
|
304
|
-
}), /* @__PURE__ */ C("div", {
|
|
305
|
-
className: "divide-y divide-border rounded-lg border border-border-subtle bg-bg-surface",
|
|
306
|
-
children: k.map((e) => /* @__PURE__ */ w("div", {
|
|
307
|
-
className: "flex items-center justify-between px-4 py-3",
|
|
308
|
-
children: [/* @__PURE__ */ w("div", {
|
|
309
|
-
className: "flex items-center gap-3",
|
|
310
|
-
children: [/* @__PURE__ */ C("div", {
|
|
311
|
-
className: t("flex h-8 w-8 items-center justify-center rounded-full", e.amount > 0 ? "bg-status-success-bg-subtle" : "bg-bg-sunken"),
|
|
312
|
-
children: /* @__PURE__ */ C(d, { className: t("h-4 w-4", e.amount > 0 ? "text-status-success-text" : "text-text-secondary") })
|
|
313
|
-
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
|
|
314
|
-
className: "text-sm font-medium text-text-primary",
|
|
315
|
-
children: e.description
|
|
316
|
-
}), /* @__PURE__ */ C("p", {
|
|
317
|
-
className: "text-xs text-text-secondary",
|
|
318
|
-
children: new Date(e.date).toLocaleDateString("en-IN", {
|
|
319
|
-
day: "numeric",
|
|
320
|
-
month: "short",
|
|
321
|
-
year: "numeric"
|
|
322
|
-
})
|
|
323
|
-
})] })]
|
|
324
|
-
}), /* @__PURE__ */ w("span", {
|
|
325
|
-
className: t("text-sm font-semibold", e.amount > 0 ? "text-status-success-text" : "text-text-primary"),
|
|
326
|
-
children: [e.amount > 0 ? "+" : "", s(Math.abs(e.amount), { minimumFractionDigits: 0 })]
|
|
327
|
-
})]
|
|
231
|
+
onClick: (e) => E(`/investor/opportunity/${e}`)
|
|
328
232
|
}, e.id))
|
|
329
233
|
})]
|
|
330
234
|
})
|
|
331
235
|
]
|
|
332
|
-
}), /* @__PURE__ */
|
|
236
|
+
}), /* @__PURE__ */ b("div", {
|
|
333
237
|
className: "space-y-6",
|
|
334
|
-
children:
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
className: "
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
className: "space-y-2",
|
|
370
|
-
children: [
|
|
371
|
-
/* @__PURE__ */ w("button", {
|
|
372
|
-
type: "button",
|
|
373
|
-
onClick: () => j("/investor/portfolio"),
|
|
374
|
-
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
375
|
-
children: [/* @__PURE__ */ C(y, { className: "h-4 w-4 text-text-secondary" }), "View Full Portfolio"]
|
|
376
|
-
}),
|
|
377
|
-
/* @__PURE__ */ w("button", {
|
|
378
|
-
type: "button",
|
|
379
|
-
onClick: () => j("/investor/opportunities"),
|
|
380
|
-
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
381
|
-
children: [/* @__PURE__ */ C(x, { className: "h-4 w-4 text-text-secondary" }), "Browse Opportunities"]
|
|
382
|
-
}),
|
|
383
|
-
/* @__PURE__ */ w("button", {
|
|
384
|
-
type: "button",
|
|
385
|
-
onClick: () => j("/investor/analytics"),
|
|
386
|
-
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
387
|
-
children: [/* @__PURE__ */ C(p, { className: "h-4 w-4 text-text-secondary" }), "Investment Analytics"]
|
|
388
|
-
}),
|
|
389
|
-
/* @__PURE__ */ w("button", {
|
|
390
|
-
type: "button",
|
|
391
|
-
onClick: () => j("/investor/profile"),
|
|
392
|
-
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
393
|
-
children: [/* @__PURE__ */ C(f, { className: "h-4 w-4 text-text-secondary" }), "View Profile"]
|
|
394
|
-
})
|
|
395
|
-
]
|
|
396
|
-
})]
|
|
397
|
-
}),
|
|
398
|
-
/* @__PURE__ */ w("div", {
|
|
399
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface p-4",
|
|
400
|
-
children: [/* @__PURE__ */ C("h3", {
|
|
401
|
-
className: "mb-3 text-base font-semibold text-text-primary",
|
|
402
|
-
children: "Market Updates"
|
|
403
|
-
}), /* @__PURE__ */ w("div", {
|
|
404
|
-
className: "space-y-3",
|
|
405
|
-
children: [
|
|
406
|
-
/* @__PURE__ */ w("div", {
|
|
407
|
-
className: "border-l-4 border-status-success-text pl-3",
|
|
408
|
-
children: [/* @__PURE__ */ C("h4", {
|
|
409
|
-
className: "text-xs font-semibold text-text-primary",
|
|
410
|
-
children: "Mobile Services Market Growing"
|
|
411
|
-
}), /* @__PURE__ */ C("p", {
|
|
412
|
-
className: "mt-1 text-xs leading-relaxed text-text-secondary",
|
|
413
|
-
children: "Mobile service industry shows 35% growth in Q4 2024"
|
|
414
|
-
})]
|
|
415
|
-
}),
|
|
416
|
-
/* @__PURE__ */ w("div", {
|
|
417
|
-
className: "border-l-4 border-border-focus pl-3",
|
|
418
|
-
children: [/* @__PURE__ */ C("h4", {
|
|
419
|
-
className: "text-xs font-semibold text-text-primary",
|
|
420
|
-
children: "New Investment Tax Benefits"
|
|
421
|
-
}), /* @__PURE__ */ C("p", {
|
|
422
|
-
className: "mt-1 text-xs leading-relaxed text-text-secondary",
|
|
423
|
-
children: "Government announces SME investment incentives"
|
|
424
|
-
})]
|
|
425
|
-
}),
|
|
426
|
-
/* @__PURE__ */ w("div", {
|
|
427
|
-
className: "border-l-4 border-status-warning-text pl-3",
|
|
428
|
-
children: [/* @__PURE__ */ C("h4", {
|
|
429
|
-
className: "text-xs font-semibold text-text-primary",
|
|
430
|
-
children: "Home Services Demand Surge"
|
|
431
|
-
}), /* @__PURE__ */ C("p", {
|
|
432
|
-
className: "mt-1 text-xs leading-relaxed text-text-secondary",
|
|
433
|
-
children: "Cleaning and maintenance businesses up 25% this quarter"
|
|
434
|
-
})]
|
|
435
|
-
})
|
|
436
|
-
]
|
|
437
|
-
})]
|
|
438
|
-
})
|
|
439
|
-
]
|
|
238
|
+
children: /* @__PURE__ */ x("div", {
|
|
239
|
+
className: "rounded-lg border border-border-subtle bg-bg-surface p-4",
|
|
240
|
+
children: [/* @__PURE__ */ b("h3", {
|
|
241
|
+
className: "mb-3 text-base font-semibold text-text-primary",
|
|
242
|
+
children: "Quick Actions"
|
|
243
|
+
}), /* @__PURE__ */ x("div", {
|
|
244
|
+
className: "space-y-2",
|
|
245
|
+
children: [
|
|
246
|
+
/* @__PURE__ */ x("button", {
|
|
247
|
+
type: "button",
|
|
248
|
+
onClick: () => E("/investor/portfolio"),
|
|
249
|
+
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
250
|
+
children: [/* @__PURE__ */ b(g, { className: "h-4 w-4 text-text-secondary" }), "View Full Portfolio"]
|
|
251
|
+
}),
|
|
252
|
+
/* @__PURE__ */ x("button", {
|
|
253
|
+
type: "button",
|
|
254
|
+
onClick: () => E("/investor/opportunities"),
|
|
255
|
+
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
256
|
+
children: [/* @__PURE__ */ b(v, { className: "h-4 w-4 text-text-secondary" }), "Browse Opportunities"]
|
|
257
|
+
}),
|
|
258
|
+
/* @__PURE__ */ x("button", {
|
|
259
|
+
type: "button",
|
|
260
|
+
onClick: () => E("/investor/analytics"),
|
|
261
|
+
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
262
|
+
children: [/* @__PURE__ */ b(f, { className: "h-4 w-4 text-text-secondary" }), "Investment Analytics"]
|
|
263
|
+
}),
|
|
264
|
+
/* @__PURE__ */ x("button", {
|
|
265
|
+
type: "button",
|
|
266
|
+
onClick: () => E("/investor/profile"),
|
|
267
|
+
className: "flex w-full items-center gap-2 rounded-lg border border-border-subtle px-3 py-2.5 text-left text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
268
|
+
children: [/* @__PURE__ */ b(d, { className: "h-4 w-4 text-text-secondary" }), "View Profile"]
|
|
269
|
+
})
|
|
270
|
+
]
|
|
271
|
+
})]
|
|
272
|
+
})
|
|
440
273
|
})]
|
|
441
274
|
})
|
|
442
275
|
]
|
|
443
276
|
});
|
|
444
277
|
}
|
|
445
278
|
//#endregion
|
|
446
|
-
export {
|
|
279
|
+
export { E as InvestorDashboard };
|
|
447
280
|
|
|
448
281
|
//# sourceMappingURL=InvestorDashboard.js.map
|