@burdenoff/microfe-adaptercloud 2026.624.1 → 2026.625.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/adaptercloud/components/EmptyState.js +17 -21
- package/dist/adaptercloud/components/EmptyState.js.map +1 -1
- package/dist/adaptercloud/components/InvestmentCard.js +25 -23
- package/dist/adaptercloud/components/InvestmentCard.js.map +1 -1
- package/dist/adaptercloud/components/MetricsCard.js +18 -12
- package/dist/adaptercloud/components/MetricsCard.js.map +1 -1
- package/dist/adaptercloud/components/PageLayout.js +45 -19
- package/dist/adaptercloud/components/PageLayout.js.map +1 -1
- package/dist/adaptercloud/components/RatingDisplay.js +3 -3
- package/dist/adaptercloud/components/RatingDisplay.js.map +1 -1
- package/dist/adaptercloud/components/StatusBadge.js +36 -16
- package/dist/adaptercloud/components/StatusBadge.js.map +1 -1
- package/dist/adaptercloud/pages/HomePage.js +244 -231
- package/dist/adaptercloud/pages/HomePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +121 -113
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminDashboard.js +102 -76
- package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +70 -65
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +108 -103
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js +61 -59
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +119 -105
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/CartManagementPage.js +165 -160
- package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/UserManagementPage.js +174 -169
- package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +103 -97
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +186 -172
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +109 -81
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +111 -109
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +127 -124
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +310 -316
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +251 -257
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +142 -148
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/HelpSupportPage.js +287 -283
- package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js +120 -114
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/SettingsPage.js +754 -736
- package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +83 -80
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDetailPage.js +120 -117
- package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +231 -226
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CheckoutPage.js +97 -95
- package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js +418 -389
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +134 -132
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +108 -102
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/FavoritesPage.js +62 -59
- package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +117 -111
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +71 -68
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +97 -81
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/ReviewsPage.js +83 -80
- package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +82 -66
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +93 -91
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +100 -97
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +83 -81
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js +344 -311
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +43 -40
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +59 -57
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +394 -392
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +354 -324
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js +122 -97
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +107 -104
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +109 -107
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +94 -90
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -6,8 +6,9 @@ import { formatCurrency as i } from "../../utils/formatters.js";
|
|
|
6
6
|
import { useCallback as a, useEffect as o, useState as s } from "react";
|
|
7
7
|
import { Activity as c, ArrowDown as l, ArrowUp as u, BarChart3 as d, Calendar as f, Download as p, Lightbulb as m, PieChart as h, Shield as g, Target as _, TrendingUp as v, Wallet as y } from "lucide-react";
|
|
8
8
|
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
9
|
+
import { EmphasisPanel as S } from "@burdenoff/fe-libs/ui";
|
|
9
10
|
//#region src/adaptercloud/pages/investor/InvestorAnalyticsPage.tsx
|
|
10
|
-
var
|
|
11
|
+
var C = {
|
|
11
12
|
portfolioMetrics: {
|
|
12
13
|
totalValue: 283700,
|
|
13
14
|
totalInvested: 255e3,
|
|
@@ -131,51 +132,51 @@ var S = {
|
|
|
131
132
|
]
|
|
132
133
|
}
|
|
133
134
|
};
|
|
134
|
-
function
|
|
135
|
+
function w(e) {
|
|
135
136
|
return e <= 2 ? {
|
|
136
137
|
label: "Low Risk",
|
|
137
|
-
color: "text-
|
|
138
|
+
color: "text-status-success-text"
|
|
138
139
|
} : e <= 4 ? {
|
|
139
140
|
label: "Moderate Risk",
|
|
140
|
-
color: "text-
|
|
141
|
+
color: "text-status-warning-text"
|
|
141
142
|
} : {
|
|
142
143
|
label: "High Risk",
|
|
143
|
-
color: "text-
|
|
144
|
+
color: "text-status-error-text"
|
|
144
145
|
};
|
|
145
146
|
}
|
|
146
|
-
function w(e) {
|
|
147
|
-
return e <= 2 ? "bg-green-500" : e <= 4 ? "bg-yellow-500" : "bg-red-500";
|
|
148
|
-
}
|
|
149
147
|
function T(e) {
|
|
148
|
+
return e <= 2 ? "bg-status-success-bg-subtle" : e <= 4 ? "bg-status-warning-bg-subtle" : "bg-status-error-bg-subtle";
|
|
149
|
+
}
|
|
150
|
+
function E(e) {
|
|
150
151
|
return e >= 8 ? {
|
|
151
152
|
label: "Well Diversified",
|
|
152
|
-
color: "text-
|
|
153
|
+
color: "text-status-success-text"
|
|
153
154
|
} : e >= 6 ? {
|
|
154
155
|
label: "Moderately Diversified",
|
|
155
|
-
color: "text-
|
|
156
|
+
color: "text-status-warning-text"
|
|
156
157
|
} : {
|
|
157
158
|
label: "Poorly Diversified",
|
|
158
|
-
color: "text-
|
|
159
|
+
color: "text-status-error-text"
|
|
159
160
|
};
|
|
160
161
|
}
|
|
161
|
-
function
|
|
162
|
-
return e >= 8 ? "bg-
|
|
162
|
+
function D(e) {
|
|
163
|
+
return e >= 8 ? "bg-status-success-bg-subtle" : e >= 6 ? "bg-status-warning-bg-subtle" : "bg-status-error-bg-subtle";
|
|
163
164
|
}
|
|
164
|
-
function
|
|
165
|
-
let { navigateTo:
|
|
165
|
+
function O() {
|
|
166
|
+
let { navigateTo: O } = e(), [k, A] = s(!0), [j, M] = s("6m"), [N, P] = s(null), [F, I] = s("idle");
|
|
166
167
|
o(() => {
|
|
167
|
-
|
|
168
|
+
A(!0);
|
|
168
169
|
let e = setTimeout(() => {
|
|
169
|
-
|
|
170
|
+
P(C), A(!1);
|
|
170
171
|
}, 600);
|
|
171
172
|
return () => clearTimeout(e);
|
|
172
|
-
}, [
|
|
173
|
-
let
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
}, [j]);
|
|
174
|
+
let L = a(() => {
|
|
175
|
+
I("exporting"), setTimeout(() => {
|
|
176
|
+
I("done"), setTimeout(() => I("idle"), 2e3);
|
|
176
177
|
}, 1200);
|
|
177
178
|
}, []);
|
|
178
|
-
if (
|
|
179
|
+
if (k || !N) return /* @__PURE__ */ b(n, {
|
|
179
180
|
title: "Investment Analytics",
|
|
180
181
|
description: "Loading analytics...",
|
|
181
182
|
children: /* @__PURE__ */ b("div", {
|
|
@@ -189,15 +190,16 @@ function D() {
|
|
|
189
190
|
})
|
|
190
191
|
})
|
|
191
192
|
});
|
|
192
|
-
let
|
|
193
|
+
let R = w(N.riskAnalysis.riskScore), z = E(N.riskAnalysis.diversificationScore), B = [...N.performanceByCart].sort((e, t) => t.roi - e.roi);
|
|
193
194
|
return /* @__PURE__ */ x(n, {
|
|
194
195
|
title: "Investment Analytics",
|
|
195
196
|
description: "Comprehensive analysis of your portfolio performance",
|
|
197
|
+
purpose: "Go deep on how your money is working — returns over time, performance by cart and category, and risk spread across your holdings. Use it to rebalance, double down on winners, and trim what's lagging.",
|
|
196
198
|
actions: /* @__PURE__ */ x("div", {
|
|
197
199
|
className: "flex items-center gap-3",
|
|
198
200
|
children: [/* @__PURE__ */ x("select", {
|
|
199
|
-
value:
|
|
200
|
-
onChange: (e) =>
|
|
201
|
+
value: j,
|
|
202
|
+
onChange: (e) => M(e.target.value),
|
|
201
203
|
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)]",
|
|
202
204
|
children: [
|
|
203
205
|
/* @__PURE__ */ b("option", {
|
|
@@ -223,71 +225,71 @@ function D() {
|
|
|
223
225
|
]
|
|
224
226
|
}), /* @__PURE__ */ x("button", {
|
|
225
227
|
type: "button",
|
|
226
|
-
onClick:
|
|
227
|
-
disabled:
|
|
228
|
-
className: t("flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors",
|
|
229
|
-
children: [/* @__PURE__ */ b(p, { className: "h-4 w-4" }),
|
|
228
|
+
onClick: L,
|
|
229
|
+
disabled: F === "exporting",
|
|
230
|
+
className: t("flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors", F === "exporting" ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : F === "done" ? "bg-status-success-bg-subtle text-white" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
|
|
231
|
+
children: [/* @__PURE__ */ b(p, { className: "h-4 w-4" }), F === "exporting" ? "Exporting..." : F === "done" ? "Exported!" : "Export Report"]
|
|
230
232
|
})]
|
|
231
233
|
}),
|
|
232
234
|
children: [
|
|
233
|
-
/* @__PURE__ */ x("div", {
|
|
235
|
+
/* @__PURE__ */ b(S, { children: /* @__PURE__ */ x("div", {
|
|
234
236
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
235
237
|
children: [
|
|
236
238
|
/* @__PURE__ */ b(r, {
|
|
237
239
|
icon: /* @__PURE__ */ b(y, { className: "h-5 w-5" }),
|
|
238
|
-
value: i(
|
|
240
|
+
value: i(N.portfolioMetrics.totalValue, { minimumFractionDigits: 0 }),
|
|
239
241
|
label: "Portfolio Value",
|
|
240
242
|
trend: "up",
|
|
241
|
-
trendValue: `+${
|
|
243
|
+
trendValue: `+${N.portfolioMetrics.portfolioGrowth}% total growth`
|
|
242
244
|
}),
|
|
243
245
|
/* @__PURE__ */ b(r, {
|
|
244
246
|
icon: /* @__PURE__ */ b(v, { className: "h-5 w-5" }),
|
|
245
|
-
value: i(
|
|
247
|
+
value: i(N.portfolioMetrics.totalReturns, { minimumFractionDigits: 0 }),
|
|
246
248
|
label: "Total Returns",
|
|
247
249
|
trend: "up",
|
|
248
250
|
trendValue: "Profit earned so far"
|
|
249
251
|
}),
|
|
250
252
|
/* @__PURE__ */ b(r, {
|
|
251
253
|
icon: /* @__PURE__ */ b(_, { className: "h-5 w-5" }),
|
|
252
|
-
value: `${
|
|
254
|
+
value: `${N.portfolioMetrics.averageRoi}%`,
|
|
253
255
|
label: "Average ROI",
|
|
254
256
|
trend: "up",
|
|
255
257
|
trendValue: "Across all investments"
|
|
256
258
|
}),
|
|
257
259
|
/* @__PURE__ */ b(r, {
|
|
258
260
|
icon: /* @__PURE__ */ b(c, { className: "h-5 w-5" }),
|
|
259
|
-
value: `${
|
|
261
|
+
value: `${N.riskAnalysis.riskScore}/5`,
|
|
260
262
|
label: "Risk Score",
|
|
261
263
|
trend: "neutral",
|
|
262
|
-
trendValue:
|
|
264
|
+
trendValue: R.label
|
|
263
265
|
})
|
|
264
266
|
]
|
|
265
|
-
}),
|
|
267
|
+
}) }),
|
|
266
268
|
/* @__PURE__ */ x("div", {
|
|
267
269
|
className: "mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2",
|
|
268
270
|
children: [/* @__PURE__ */ x("div", {
|
|
269
|
-
className: "flex items-center gap-3 rounded-lg border border-border-
|
|
271
|
+
className: "flex items-center gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
270
272
|
children: [/* @__PURE__ */ b("div", {
|
|
271
|
-
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-
|
|
272
|
-
children: /* @__PURE__ */ b(u, { className: "h-5 w-5 text-
|
|
273
|
+
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-status-success-bg-subtle/10",
|
|
274
|
+
children: /* @__PURE__ */ b(u, { className: "h-5 w-5 text-status-success-text" })
|
|
273
275
|
}), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
274
276
|
className: "text-xs text-text-secondary",
|
|
275
277
|
children: "Best Performing"
|
|
276
278
|
}), /* @__PURE__ */ b("p", {
|
|
277
|
-
className: "text-sm font-semibold text-
|
|
278
|
-
children:
|
|
279
|
+
className: "text-sm font-semibold text-status-success-text",
|
|
280
|
+
children: N.portfolioMetrics.bestPerforming
|
|
279
281
|
})] })]
|
|
280
282
|
}), /* @__PURE__ */ x("div", {
|
|
281
|
-
className: "flex items-center gap-3 rounded-lg border border-border-
|
|
283
|
+
className: "flex items-center gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
282
284
|
children: [/* @__PURE__ */ b("div", {
|
|
283
|
-
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-
|
|
284
|
-
children: /* @__PURE__ */ b(l, { className: "h-5 w-5 text-
|
|
285
|
+
className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-status-error-bg-subtle/10",
|
|
286
|
+
children: /* @__PURE__ */ b(l, { className: "h-5 w-5 text-status-error-text" })
|
|
285
287
|
}), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
286
288
|
className: "text-xs text-text-secondary",
|
|
287
289
|
children: "Worst Performing"
|
|
288
290
|
}), /* @__PURE__ */ b("p", {
|
|
289
291
|
className: "text-sm font-semibold text-text-primary",
|
|
290
|
-
children:
|
|
292
|
+
children: N.portfolioMetrics.worstPerforming
|
|
291
293
|
})] })]
|
|
292
294
|
})]
|
|
293
295
|
}),
|
|
@@ -301,7 +303,7 @@ function D() {
|
|
|
301
303
|
})]
|
|
302
304
|
}), /* @__PURE__ */ b("div", {
|
|
303
305
|
className: "space-y-3",
|
|
304
|
-
children:
|
|
306
|
+
children: B.map((e, n) => /* @__PURE__ */ x("div", {
|
|
305
307
|
className: "flex items-center justify-between rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
306
308
|
children: [/* @__PURE__ */ x("div", {
|
|
307
309
|
className: "flex items-center gap-3",
|
|
@@ -318,10 +320,10 @@ function D() {
|
|
|
318
320
|
}), /* @__PURE__ */ x("div", {
|
|
319
321
|
className: "text-right",
|
|
320
322
|
children: [/* @__PURE__ */ x("p", {
|
|
321
|
-
className: t("text-sm font-semibold", e.returns >= 0 ? "text-
|
|
323
|
+
className: t("text-sm font-semibold", e.returns >= 0 ? "text-status-success-text" : "text-status-error-text"),
|
|
322
324
|
children: [e.returns >= 0 ? "+" : "", i(e.returns, { minimumFractionDigits: 0 })]
|
|
323
325
|
}), /* @__PURE__ */ x("p", {
|
|
324
|
-
className: t("text-xs", e.roi >= 0 ? "text-
|
|
326
|
+
className: t("text-xs", e.roi >= 0 ? "text-status-success-text" : "text-status-error-text"),
|
|
325
327
|
children: [
|
|
326
328
|
e.roi >= 0 ? "+" : "",
|
|
327
329
|
e.roi,
|
|
@@ -338,7 +340,7 @@ function D() {
|
|
|
338
340
|
})]
|
|
339
341
|
}), /* @__PURE__ */ b("div", {
|
|
340
342
|
className: "space-y-4",
|
|
341
|
-
children:
|
|
343
|
+
children: N.performanceByCategory.map((e) => /* @__PURE__ */ x("div", {
|
|
342
344
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3",
|
|
343
345
|
children: [
|
|
344
346
|
/* @__PURE__ */ x("div", {
|
|
@@ -364,7 +366,7 @@ function D() {
|
|
|
364
366
|
className: "text-xs text-text-secondary",
|
|
365
367
|
children: [i(e.investedAmount, { minimumFractionDigits: 0 }), " invested"]
|
|
366
368
|
}), /* @__PURE__ */ x("span", {
|
|
367
|
-
className: t("text-xs font-semibold", e.returns >= 0 ? "text-
|
|
369
|
+
className: t("text-xs font-semibold", e.returns >= 0 ? "text-status-success-text" : "text-status-error-text"),
|
|
368
370
|
children: [e.returns >= 0 ? "+" : "", i(e.returns, { minimumFractionDigits: 0 })]
|
|
369
371
|
})]
|
|
370
372
|
})
|
|
@@ -412,7 +414,7 @@ function D() {
|
|
|
412
414
|
]
|
|
413
415
|
}) }), /* @__PURE__ */ b("tbody", {
|
|
414
416
|
className: "divide-y divide-border",
|
|
415
|
-
children:
|
|
417
|
+
children: N.monthlyPerformance.map((e) => {
|
|
416
418
|
let n = e.invested > 0 ? ((e.value - e.invested) / e.invested * 100).toFixed(1) : "0.0";
|
|
417
419
|
return /* @__PURE__ */ x("tr", {
|
|
418
420
|
className: "hover:bg-accent/50 transition-colors",
|
|
@@ -432,14 +434,14 @@ function D() {
|
|
|
432
434
|
/* @__PURE__ */ b("td", {
|
|
433
435
|
className: "whitespace-nowrap px-4 py-4 text-sm sm:px-6",
|
|
434
436
|
children: /* @__PURE__ */ x("span", {
|
|
435
|
-
className: t("font-semibold", e.returns >= 0 ? "text-
|
|
437
|
+
className: t("font-semibold", e.returns >= 0 ? "text-status-success-text" : "text-status-error-text"),
|
|
436
438
|
children: [e.returns >= 0 ? "+" : "", i(e.returns, { minimumFractionDigits: 0 })]
|
|
437
439
|
})
|
|
438
440
|
}),
|
|
439
441
|
/* @__PURE__ */ b("td", {
|
|
440
442
|
className: "whitespace-nowrap px-4 py-4 text-sm sm:px-6",
|
|
441
443
|
children: /* @__PURE__ */ x("span", {
|
|
442
|
-
className: t("font-medium", parseFloat(n) >= 0 ? "text-
|
|
444
|
+
className: t("font-medium", parseFloat(n) >= 0 ? "text-status-success-text" : "text-status-error-text"),
|
|
443
445
|
children: [
|
|
444
446
|
parseFloat(n) >= 0 ? "+" : "",
|
|
445
447
|
n,
|
|
@@ -464,7 +466,7 @@ function D() {
|
|
|
464
466
|
children: "Risk Analysis"
|
|
465
467
|
})]
|
|
466
468
|
}), /* @__PURE__ */ b("div", {
|
|
467
|
-
className: "rounded-lg border border-border-
|
|
469
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop",
|
|
468
470
|
children: /* @__PURE__ */ x("div", {
|
|
469
471
|
className: "space-y-5",
|
|
470
472
|
children: [
|
|
@@ -474,19 +476,19 @@ function D() {
|
|
|
474
476
|
className: "text-sm text-text-primary",
|
|
475
477
|
children: "Risk Score"
|
|
476
478
|
}), /* @__PURE__ */ x("span", {
|
|
477
|
-
className: t("text-sm font-semibold",
|
|
479
|
+
className: t("text-sm font-semibold", R.color),
|
|
478
480
|
children: [
|
|
479
|
-
|
|
481
|
+
N.riskAnalysis.riskScore,
|
|
480
482
|
"/5 (",
|
|
481
|
-
|
|
483
|
+
R.label,
|
|
482
484
|
")"
|
|
483
485
|
]
|
|
484
486
|
})]
|
|
485
487
|
}), /* @__PURE__ */ b("div", {
|
|
486
488
|
className: "h-3 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
487
489
|
children: /* @__PURE__ */ b("div", {
|
|
488
|
-
className: t("h-full rounded-full transition-all duration-300",
|
|
489
|
-
style: { width: `${
|
|
490
|
+
className: t("h-full rounded-full transition-all duration-300", T(N.riskAnalysis.riskScore)),
|
|
491
|
+
style: { width: `${N.riskAnalysis.riskScore / 5 * 100}%` }
|
|
490
492
|
})
|
|
491
493
|
})] }),
|
|
492
494
|
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
|
|
@@ -495,19 +497,19 @@ function D() {
|
|
|
495
497
|
className: "text-sm text-text-primary",
|
|
496
498
|
children: "Diversification"
|
|
497
499
|
}), /* @__PURE__ */ x("span", {
|
|
498
|
-
className: t("text-sm font-semibold",
|
|
500
|
+
className: t("text-sm font-semibold", z.color),
|
|
499
501
|
children: [
|
|
500
|
-
|
|
502
|
+
N.riskAnalysis.diversificationScore,
|
|
501
503
|
"/10 (",
|
|
502
|
-
|
|
504
|
+
z.label,
|
|
503
505
|
")"
|
|
504
506
|
]
|
|
505
507
|
})]
|
|
506
508
|
}), /* @__PURE__ */ b("div", {
|
|
507
509
|
className: "h-3 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
508
510
|
children: /* @__PURE__ */ b("div", {
|
|
509
|
-
className: t("h-full rounded-full transition-all duration-300",
|
|
510
|
-
style: { width: `${
|
|
511
|
+
className: t("h-full rounded-full transition-all duration-300", D(N.riskAnalysis.diversificationScore)),
|
|
512
|
+
style: { width: `${N.riskAnalysis.diversificationScore / 10 * 100}%` }
|
|
511
513
|
})
|
|
512
514
|
})] }),
|
|
513
515
|
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
|
|
@@ -516,14 +518,14 @@ function D() {
|
|
|
516
518
|
className: "text-sm text-text-primary",
|
|
517
519
|
children: "Volatility"
|
|
518
520
|
}), /* @__PURE__ */ x("span", {
|
|
519
|
-
className: t("text-sm font-semibold",
|
|
520
|
-
children: [
|
|
521
|
+
className: t("text-sm font-semibold", w(N.riskAnalysis.volatilityScore).color),
|
|
522
|
+
children: [N.riskAnalysis.volatilityScore, "/5"]
|
|
521
523
|
})]
|
|
522
524
|
}), /* @__PURE__ */ b("div", {
|
|
523
525
|
className: "h-3 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
524
526
|
children: /* @__PURE__ */ b("div", {
|
|
525
|
-
className: t("h-full rounded-full transition-all duration-300",
|
|
526
|
-
style: { width: `${
|
|
527
|
+
className: t("h-full rounded-full transition-all duration-300", T(N.riskAnalysis.volatilityScore)),
|
|
528
|
+
style: { width: `${N.riskAnalysis.volatilityScore / 5 * 100}%` }
|
|
527
529
|
})
|
|
528
530
|
})] }),
|
|
529
531
|
/* @__PURE__ */ x("div", {
|
|
@@ -532,7 +534,7 @@ function D() {
|
|
|
532
534
|
className: "rounded-lg bg-bg-sunken/50 p-3 text-center",
|
|
533
535
|
children: [/* @__PURE__ */ b("p", {
|
|
534
536
|
className: "text-lg font-bold text-text-primary",
|
|
535
|
-
children:
|
|
537
|
+
children: N.performanceByCart.length
|
|
536
538
|
}), /* @__PURE__ */ b("p", {
|
|
537
539
|
className: "text-xs text-text-secondary",
|
|
538
540
|
children: "Active Investments"
|
|
@@ -541,7 +543,7 @@ function D() {
|
|
|
541
543
|
className: "rounded-lg bg-bg-sunken/50 p-3 text-center",
|
|
542
544
|
children: [/* @__PURE__ */ b("p", {
|
|
543
545
|
className: "text-lg font-bold text-text-primary",
|
|
544
|
-
children:
|
|
546
|
+
children: N.performanceByCategory.length
|
|
545
547
|
}), /* @__PURE__ */ b("p", {
|
|
546
548
|
className: "text-xs text-text-secondary",
|
|
547
549
|
children: "Sectors Covered"
|
|
@@ -552,15 +554,15 @@ function D() {
|
|
|
552
554
|
})
|
|
553
555
|
})] }), /* @__PURE__ */ x("section", { children: [/* @__PURE__ */ x("div", {
|
|
554
556
|
className: "mb-4 flex items-center gap-2",
|
|
555
|
-
children: [/* @__PURE__ */ b(m, { className: "h-5 w-5 text-
|
|
557
|
+
children: [/* @__PURE__ */ b(m, { className: "h-5 w-5 text-status-warning-text" }), /* @__PURE__ */ b("h2", {
|
|
556
558
|
className: "text-lg font-semibold text-text-primary",
|
|
557
559
|
children: "Recommendations"
|
|
558
560
|
})]
|
|
559
561
|
}), /* @__PURE__ */ x("div", {
|
|
560
|
-
className: "rounded-lg border border-border-
|
|
562
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 sm:p-6 bg-gloss-card shadow-pop",
|
|
561
563
|
children: [/* @__PURE__ */ b("div", {
|
|
562
564
|
className: "space-y-3",
|
|
563
|
-
children:
|
|
565
|
+
children: N.riskAnalysis.recommendations.map((e, t) => /* @__PURE__ */ x("div", {
|
|
564
566
|
className: "flex items-start gap-3 rounded-lg border border-border-subtle bg-bg-sunken/30 p-3",
|
|
565
567
|
children: [/* @__PURE__ */ b("div", {
|
|
566
568
|
className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-action-primary-bg text-xs font-bold text-action-primary-text",
|
|
@@ -593,7 +595,7 @@ function D() {
|
|
|
593
595
|
3,
|
|
594
596
|
4,
|
|
595
597
|
5
|
|
596
|
-
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 4 ? "bg-
|
|
598
|
+
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 4 ? "bg-status-success-bg-subtle" : "bg-bg-sunken") }, e))
|
|
597
599
|
}), /* @__PURE__ */ b("span", {
|
|
598
600
|
className: "text-xs font-medium text-text-primary",
|
|
599
601
|
children: "4/5"
|
|
@@ -615,7 +617,7 @@ function D() {
|
|
|
615
617
|
3,
|
|
616
618
|
4,
|
|
617
619
|
5
|
|
618
|
-
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 3 ? "bg-
|
|
620
|
+
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 3 ? "bg-status-warning-bg-subtle" : "bg-bg-sunken") }, e))
|
|
619
621
|
}), /* @__PURE__ */ b("span", {
|
|
620
622
|
className: "text-xs font-medium text-text-primary",
|
|
621
623
|
children: "3/5"
|
|
@@ -637,7 +639,7 @@ function D() {
|
|
|
637
639
|
3,
|
|
638
640
|
4,
|
|
639
641
|
5
|
|
640
|
-
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 4 ? "bg-
|
|
642
|
+
].map((e) => /* @__PURE__ */ b("div", { className: t("h-2 w-4 rounded-sm", e <= 4 ? "bg-status-success-bg-subtle" : "bg-bg-sunken") }, e))
|
|
641
643
|
}), /* @__PURE__ */ b("span", {
|
|
642
644
|
className: "text-xs font-medium text-text-primary",
|
|
643
645
|
children: "4/5"
|
|
@@ -654,19 +656,19 @@ function D() {
|
|
|
654
656
|
children: [
|
|
655
657
|
/* @__PURE__ */ x("button", {
|
|
656
658
|
type: "button",
|
|
657
|
-
onClick: () =>
|
|
659
|
+
onClick: () => O("/investor/portfolio"),
|
|
658
660
|
className: "flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
659
661
|
children: [/* @__PURE__ */ b(h, { className: "h-4 w-4" }), "View Portfolio"]
|
|
660
662
|
}),
|
|
661
663
|
/* @__PURE__ */ x("button", {
|
|
662
664
|
type: "button",
|
|
663
|
-
onClick: () =>
|
|
665
|
+
onClick: () => O("/investor/opportunities"),
|
|
664
666
|
className: "flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
665
667
|
children: [/* @__PURE__ */ b(_, { className: "h-4 w-4" }), "Browse Opportunities"]
|
|
666
668
|
}),
|
|
667
669
|
/* @__PURE__ */ x("button", {
|
|
668
670
|
type: "button",
|
|
669
|
-
onClick: () =>
|
|
671
|
+
onClick: () => O("/investor/investments"),
|
|
670
672
|
className: "flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
671
673
|
children: [/* @__PURE__ */ b(y, { className: "h-4 w-4" }), "My Investments"]
|
|
672
674
|
})
|
|
@@ -676,6 +678,6 @@ function D() {
|
|
|
676
678
|
});
|
|
677
679
|
}
|
|
678
680
|
//#endregion
|
|
679
|
-
export {
|
|
681
|
+
export { O as InvestorAnalyticsPage };
|
|
680
682
|
|
|
681
683
|
//# sourceMappingURL=InvestorAnalyticsPage.js.map
|