@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
|
@@ -3,13 +3,13 @@ import { cn as t } from "../../utils/cn.js";
|
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
4
|
import { EmptyState as r } from "../../components/EmptyState.js";
|
|
5
5
|
import { useInvest as i, useInvestmentOpportunities as a } from "../../hooks/useKadaikodiApi.js";
|
|
6
|
-
import { formatCurrency as o
|
|
7
|
-
import { useCallback as
|
|
8
|
-
import { Briefcase as
|
|
9
|
-
import { jsx as
|
|
10
|
-
import { EmphasisPanel as
|
|
6
|
+
import { formatCurrency as o } from "../../utils/formatters.js";
|
|
7
|
+
import { useCallback as s, useMemo as c, useState as l } from "react";
|
|
8
|
+
import { Briefcase as u, CheckCircle2 as d, Eye as f, FileText as p, IndianRupee as m, Search as h, X as g } from "lucide-react";
|
|
9
|
+
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
10
|
+
import { EmphasisPanel as y, PagePurpose as b } from "@burdenoff/fe-libs/ui";
|
|
11
11
|
//#region src/kadaikodi/pages/investor/InvestmentOpportunitiesPage.tsx
|
|
12
|
-
function
|
|
12
|
+
function x(e) {
|
|
13
13
|
let t = e.expiresAt ? Math.max(0, Math.ceil((new Date(e.expiresAt).getTime() - Date.now()) / 864e5)) : 0;
|
|
14
14
|
return {
|
|
15
15
|
id: e.id,
|
|
@@ -57,7 +57,7 @@ function w(e) {
|
|
|
57
57
|
status: e.status
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function S(e) {
|
|
61
61
|
switch (e) {
|
|
62
62
|
case "low": return "bg-status-success-bg-subtle text-status-success-text";
|
|
63
63
|
case "medium": return "bg-status-warning-bg-subtle text-status-warning-text";
|
|
@@ -65,7 +65,7 @@ function T(e) {
|
|
|
65
65
|
default: return "bg-bg-sunken text-text-secondary";
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function C(e) {
|
|
69
69
|
switch (e) {
|
|
70
70
|
case "low": return "Low Risk";
|
|
71
71
|
case "medium": return "Medium Risk";
|
|
@@ -73,41 +73,40 @@ function E(e) {
|
|
|
73
73
|
default: return e;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
function
|
|
76
|
+
function w(e, t) {
|
|
77
77
|
return t > 0 ? Math.min(e / t * 100, 100) : 0;
|
|
78
78
|
}
|
|
79
|
-
function
|
|
80
|
-
let { navigateTo:
|
|
79
|
+
function T() {
|
|
80
|
+
let { navigateTo: T, currentUser: E } = e(), { data: D = [], isLoading: O } = a(), k = i(), [A, j] = l(null), [M, N] = l(!1), [P, F] = l(""), [I, L] = l("idle"), [R, z] = l({
|
|
81
81
|
searchQuery: "",
|
|
82
82
|
category: "",
|
|
83
83
|
riskLevel: "",
|
|
84
84
|
minimumAmount: "",
|
|
85
|
-
location: "",
|
|
86
85
|
sortBy: "featured"
|
|
87
|
-
}),
|
|
88
|
-
let e =
|
|
86
|
+
}), B = c(() => D.map(x), [D]), V = c(() => {
|
|
87
|
+
let e = B.length;
|
|
89
88
|
return {
|
|
90
89
|
totalOpportunities: e,
|
|
91
|
-
averageReturns: e ? Number((
|
|
92
|
-
totalFunded:
|
|
93
|
-
totalTarget:
|
|
90
|
+
averageReturns: e ? Number((B.reduce((e, t) => e + t.expectedReturns, 0) / e).toFixed(1)) : 0,
|
|
91
|
+
totalFunded: B.reduce((e, t) => e + t.raisedAmount, 0),
|
|
92
|
+
totalTarget: B.reduce((e, t) => e + t.targetAmount, 0)
|
|
94
93
|
};
|
|
95
|
-
}, [
|
|
96
|
-
|
|
94
|
+
}, [B]), H = s((e, t) => {
|
|
95
|
+
z((n) => ({
|
|
97
96
|
...n,
|
|
98
97
|
[e]: t
|
|
99
98
|
}));
|
|
100
|
-
}, []),
|
|
101
|
-
let e = [...
|
|
102
|
-
if (
|
|
103
|
-
let t =
|
|
99
|
+
}, []), U = c(() => {
|
|
100
|
+
let e = [...B];
|
|
101
|
+
if (R.searchQuery.trim()) {
|
|
102
|
+
let t = R.searchQuery.toLowerCase();
|
|
104
103
|
e = e.filter((e) => e.cartName.toLowerCase().includes(t) || e.description.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
|
|
105
104
|
}
|
|
106
|
-
if (
|
|
107
|
-
let t = parseInt(
|
|
105
|
+
if (R.category && (e = e.filter((e) => e.category === R.category)), R.riskLevel && (e = e.filter((e) => e.riskLevel === R.riskLevel)), R.minimumAmount) {
|
|
106
|
+
let t = parseInt(R.minimumAmount, 10);
|
|
108
107
|
e = e.filter((e) => e.minimumInvestment <= t);
|
|
109
108
|
}
|
|
110
|
-
switch (
|
|
109
|
+
switch (R.sortBy) {
|
|
111
110
|
case "returns":
|
|
112
111
|
e.sort((e, t) => t.expectedReturns - e.expectedReturns);
|
|
113
112
|
break;
|
|
@@ -123,112 +122,112 @@ function O() {
|
|
|
123
122
|
default: break;
|
|
124
123
|
}
|
|
125
124
|
return e;
|
|
126
|
-
}, [
|
|
127
|
-
if (!
|
|
128
|
-
let e = parseInt(
|
|
125
|
+
}, [R, B]), W = s(() => {
|
|
126
|
+
if (!A || !P) return;
|
|
127
|
+
let e = parseInt(P, 10);
|
|
129
128
|
if (!isNaN(e)) {
|
|
130
|
-
if (e <
|
|
131
|
-
|
|
129
|
+
if (e < A.minimumInvestment) {
|
|
130
|
+
L("error");
|
|
132
131
|
return;
|
|
133
132
|
}
|
|
134
|
-
if (e >
|
|
135
|
-
|
|
133
|
+
if (e > A.maximumInvestment) {
|
|
134
|
+
L("error");
|
|
136
135
|
return;
|
|
137
136
|
}
|
|
138
|
-
|
|
137
|
+
k.mutate({
|
|
139
138
|
amount: e,
|
|
140
|
-
investorId:
|
|
141
|
-
opportunityId:
|
|
139
|
+
investorId: E?.id ?? "",
|
|
140
|
+
opportunityId: A.id
|
|
142
141
|
}, {
|
|
143
142
|
onSuccess: () => {
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
L("success"), setTimeout(() => {
|
|
144
|
+
N(!1), F(""), L("idle"), T("/investor/portfolio");
|
|
146
145
|
}, 1500);
|
|
147
146
|
},
|
|
148
|
-
onError: () =>
|
|
147
|
+
onError: () => L("error")
|
|
149
148
|
});
|
|
150
149
|
}
|
|
151
150
|
}, [
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
]),
|
|
158
|
-
|
|
151
|
+
A,
|
|
152
|
+
P,
|
|
153
|
+
T,
|
|
154
|
+
k,
|
|
155
|
+
E?.id
|
|
156
|
+
]), G = s((e) => {
|
|
157
|
+
j(e), F(""), L("idle"), N(!0);
|
|
159
158
|
}, []);
|
|
160
|
-
return
|
|
159
|
+
return O ? /* @__PURE__ */ _(n, {
|
|
161
160
|
title: "Investment Opportunities",
|
|
162
161
|
description: "Loading opportunities...",
|
|
163
|
-
children: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ _("div", {
|
|
164
163
|
className: "flex items-center justify-center py-20",
|
|
165
|
-
children: /* @__PURE__ */
|
|
164
|
+
children: /* @__PURE__ */ v("div", {
|
|
166
165
|
className: "text-center",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
166
|
+
children: [/* @__PURE__ */ _("div", { className: "mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-b-2 border-primary" }), /* @__PURE__ */ _("p", {
|
|
168
167
|
className: "text-sm text-text-secondary",
|
|
169
168
|
children: "Loading opportunities..."
|
|
170
169
|
})]
|
|
171
170
|
})
|
|
172
171
|
})
|
|
173
|
-
}) : /* @__PURE__ */
|
|
172
|
+
}) : /* @__PURE__ */ v(n, {
|
|
174
173
|
title: "Investment Opportunities",
|
|
175
174
|
description: "Discover and invest in growing local businesses",
|
|
176
|
-
actions: /* @__PURE__ */
|
|
175
|
+
actions: /* @__PURE__ */ v("span", {
|
|
177
176
|
className: "text-sm text-text-secondary",
|
|
178
|
-
children: [
|
|
177
|
+
children: [U.length, " opportunities"]
|
|
179
178
|
}),
|
|
180
179
|
children: [
|
|
181
|
-
/* @__PURE__ */ b
|
|
180
|
+
/* @__PURE__ */ _(b, {
|
|
182
181
|
className: "mb-6",
|
|
183
182
|
children: "The deal flow — local carts and businesses looking for funding right now. Use this page to discover opportunities that fit your strategy, compare projected returns and equity on offer, filter by category or funding stage, and back the ones you believe in. The stats up top show how the platform is performing so you can gauge typical returns and success rates before you commit."
|
|
184
183
|
}),
|
|
185
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ v(y, { children: [/* @__PURE__ */ _("h2", {
|
|
186
185
|
className: "mb-4 text-base font-semibold text-text-primary",
|
|
187
186
|
children: "Platform Performance"
|
|
188
|
-
}), /* @__PURE__ */
|
|
187
|
+
}), /* @__PURE__ */ v("div", {
|
|
189
188
|
className: "grid grid-cols-2 gap-3 sm:gap-4 lg:grid-cols-4",
|
|
190
189
|
children: [
|
|
191
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ v("div", {
|
|
192
191
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
|
|
193
|
-
children: [/* @__PURE__ */
|
|
192
|
+
children: [/* @__PURE__ */ _("p", {
|
|
194
193
|
className: "text-xs text-text-secondary",
|
|
195
194
|
children: "Active Opportunities"
|
|
196
|
-
}), /* @__PURE__ */
|
|
195
|
+
}), /* @__PURE__ */ _("p", {
|
|
197
196
|
className: "text-lg font-bold text-text-primary sm:text-2xl",
|
|
198
|
-
children:
|
|
197
|
+
children: V.totalOpportunities
|
|
199
198
|
})]
|
|
200
199
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ v("div", {
|
|
202
201
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
|
|
203
|
-
children: [/* @__PURE__ */
|
|
202
|
+
children: [/* @__PURE__ */ _("p", {
|
|
204
203
|
className: "text-xs text-text-secondary",
|
|
205
204
|
children: "Average Returns"
|
|
206
|
-
}), /* @__PURE__ */
|
|
205
|
+
}), /* @__PURE__ */ v("p", {
|
|
207
206
|
className: "text-lg font-bold text-status-success-text sm:text-2xl",
|
|
208
|
-
children: [
|
|
207
|
+
children: [V.averageReturns, "%"]
|
|
209
208
|
})]
|
|
210
209
|
}),
|
|
211
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ v("div", {
|
|
212
211
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
|
|
213
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ _("p", {
|
|
214
213
|
className: "text-xs text-text-secondary",
|
|
215
214
|
children: "Total Funded"
|
|
216
|
-
}), /* @__PURE__ */
|
|
215
|
+
}), /* @__PURE__ */ _("p", {
|
|
217
216
|
className: "text-lg font-bold text-text-primary sm:text-2xl",
|
|
218
|
-
children: o(
|
|
217
|
+
children: o(V.totalFunded, {
|
|
219
218
|
minimumFractionDigits: 0,
|
|
220
219
|
notation: "compact"
|
|
221
220
|
})
|
|
222
221
|
})]
|
|
223
222
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ v("div", {
|
|
225
224
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3 sm:p-4",
|
|
226
|
-
children: [/* @__PURE__ */
|
|
225
|
+
children: [/* @__PURE__ */ _("p", {
|
|
227
226
|
className: "text-xs text-text-secondary",
|
|
228
227
|
children: "Total Target"
|
|
229
|
-
}), /* @__PURE__ */
|
|
228
|
+
}), /* @__PURE__ */ _("p", {
|
|
230
229
|
className: "text-lg font-bold text-text-primary sm:text-2xl",
|
|
231
|
-
children: o(
|
|
230
|
+
children: o(V.totalTarget, {
|
|
232
231
|
minimumFractionDigits: 0,
|
|
233
232
|
notation: "compact"
|
|
234
233
|
})
|
|
@@ -236,151 +235,124 @@ function O() {
|
|
|
236
235
|
})
|
|
237
236
|
]
|
|
238
237
|
})] }),
|
|
239
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ _("div", {
|
|
240
239
|
className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface p-4 sm:p-6",
|
|
241
|
-
children: /* @__PURE__ */
|
|
242
|
-
className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-
|
|
240
|
+
children: /* @__PURE__ */ v("div", {
|
|
241
|
+
className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
|
|
243
242
|
children: [
|
|
244
|
-
/* @__PURE__ */
|
|
243
|
+
/* @__PURE__ */ v("div", {
|
|
245
244
|
className: "relative sm:col-span-2 lg:col-span-1",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
245
|
+
children: [/* @__PURE__ */ _(h, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _("input", {
|
|
247
246
|
type: "text",
|
|
248
247
|
placeholder: "Search opportunities...",
|
|
249
|
-
value:
|
|
250
|
-
onChange: (e) =>
|
|
248
|
+
value: R.searchQuery,
|
|
249
|
+
onChange: (e) => H("searchQuery", e.target.value),
|
|
251
250
|
className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
252
251
|
})]
|
|
253
252
|
}),
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
value:
|
|
256
|
-
onChange: (e) =>
|
|
253
|
+
/* @__PURE__ */ v("select", {
|
|
254
|
+
value: R.category,
|
|
255
|
+
onChange: (e) => H("category", e.target.value),
|
|
257
256
|
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)]",
|
|
258
257
|
children: [
|
|
259
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ _("option", {
|
|
260
259
|
value: "",
|
|
261
260
|
children: "All Categories"
|
|
262
261
|
}),
|
|
263
|
-
/* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ _("option", {
|
|
264
263
|
value: "Healthy Food",
|
|
265
264
|
children: "Healthy Food"
|
|
266
265
|
}),
|
|
267
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ _("option", {
|
|
268
267
|
value: "Fast Food",
|
|
269
268
|
children: "Fast Food"
|
|
270
269
|
}),
|
|
271
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ _("option", {
|
|
272
271
|
value: "Fusion Food",
|
|
273
272
|
children: "Fusion Food"
|
|
274
273
|
}),
|
|
275
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ _("option", {
|
|
276
275
|
value: "Beverages",
|
|
277
276
|
children: "Beverages"
|
|
278
277
|
}),
|
|
279
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ _("option", {
|
|
280
279
|
value: "Street Food",
|
|
281
280
|
children: "Street Food"
|
|
282
281
|
})
|
|
283
282
|
]
|
|
284
283
|
}),
|
|
285
|
-
/* @__PURE__ */
|
|
286
|
-
value:
|
|
287
|
-
onChange: (e) =>
|
|
284
|
+
/* @__PURE__ */ v("select", {
|
|
285
|
+
value: R.riskLevel,
|
|
286
|
+
onChange: (e) => H("riskLevel", e.target.value),
|
|
288
287
|
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)]",
|
|
289
288
|
children: [
|
|
290
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ _("option", {
|
|
291
290
|
value: "",
|
|
292
291
|
children: "All Risk Levels"
|
|
293
292
|
}),
|
|
294
|
-
/* @__PURE__ */
|
|
293
|
+
/* @__PURE__ */ _("option", {
|
|
295
294
|
value: "low",
|
|
296
295
|
children: "Low Risk"
|
|
297
296
|
}),
|
|
298
|
-
/* @__PURE__ */
|
|
297
|
+
/* @__PURE__ */ _("option", {
|
|
299
298
|
value: "medium",
|
|
300
299
|
children: "Medium Risk"
|
|
301
300
|
}),
|
|
302
|
-
/* @__PURE__ */
|
|
301
|
+
/* @__PURE__ */ _("option", {
|
|
303
302
|
value: "high",
|
|
304
303
|
children: "High Risk"
|
|
305
304
|
})
|
|
306
305
|
]
|
|
307
306
|
}),
|
|
308
|
-
/* @__PURE__ */
|
|
309
|
-
value:
|
|
310
|
-
onChange: (e) =>
|
|
307
|
+
/* @__PURE__ */ v("select", {
|
|
308
|
+
value: R.minimumAmount,
|
|
309
|
+
onChange: (e) => H("minimumAmount", e.target.value),
|
|
311
310
|
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)]",
|
|
312
311
|
children: [
|
|
313
|
-
/* @__PURE__ */
|
|
312
|
+
/* @__PURE__ */ _("option", {
|
|
314
313
|
value: "",
|
|
315
314
|
children: "Any Amount"
|
|
316
315
|
}),
|
|
317
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ _("option", {
|
|
318
317
|
value: "15000",
|
|
319
318
|
children: "Under ₹15,000"
|
|
320
319
|
}),
|
|
321
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ _("option", {
|
|
322
321
|
value: "25000",
|
|
323
322
|
children: "Under ₹25,000"
|
|
324
323
|
}),
|
|
325
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ _("option", {
|
|
326
325
|
value: "50000",
|
|
327
326
|
children: "Under ₹50,000"
|
|
328
327
|
}),
|
|
329
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ _("option", {
|
|
330
329
|
value: "100000",
|
|
331
330
|
children: "Under ₹1,00,000"
|
|
332
331
|
})
|
|
333
332
|
]
|
|
334
333
|
}),
|
|
335
|
-
/* @__PURE__ */
|
|
336
|
-
value:
|
|
337
|
-
onChange: (e) =>
|
|
338
|
-
className: "rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
339
|
-
children: [
|
|
340
|
-
/* @__PURE__ */ b("option", {
|
|
341
|
-
value: "",
|
|
342
|
-
children: "All Locations"
|
|
343
|
-
}),
|
|
344
|
-
/* @__PURE__ */ b("option", {
|
|
345
|
-
value: "Whitefield",
|
|
346
|
-
children: "Whitefield"
|
|
347
|
-
}),
|
|
348
|
-
/* @__PURE__ */ b("option", {
|
|
349
|
-
value: "Koramangala",
|
|
350
|
-
children: "Koramangala"
|
|
351
|
-
}),
|
|
352
|
-
/* @__PURE__ */ b("option", {
|
|
353
|
-
value: "Indiranagar",
|
|
354
|
-
children: "Indiranagar"
|
|
355
|
-
}),
|
|
356
|
-
/* @__PURE__ */ b("option", {
|
|
357
|
-
value: "Electronic City",
|
|
358
|
-
children: "Electronic City"
|
|
359
|
-
})
|
|
360
|
-
]
|
|
361
|
-
}),
|
|
362
|
-
/* @__PURE__ */ x("select", {
|
|
363
|
-
value: V.sortBy,
|
|
364
|
-
onChange: (e) => G("sortBy", e.target.value),
|
|
334
|
+
/* @__PURE__ */ v("select", {
|
|
335
|
+
value: R.sortBy,
|
|
336
|
+
onChange: (e) => H("sortBy", e.target.value),
|
|
365
337
|
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)]",
|
|
366
338
|
children: [
|
|
367
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ _("option", {
|
|
368
340
|
value: "featured",
|
|
369
341
|
children: "Featured"
|
|
370
342
|
}),
|
|
371
|
-
/* @__PURE__ */
|
|
343
|
+
/* @__PURE__ */ _("option", {
|
|
372
344
|
value: "returns",
|
|
373
345
|
children: "Highest Returns"
|
|
374
346
|
}),
|
|
375
|
-
/* @__PURE__ */
|
|
347
|
+
/* @__PURE__ */ _("option", {
|
|
376
348
|
value: "funding",
|
|
377
349
|
children: "Most Funded"
|
|
378
350
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ _("option", {
|
|
380
352
|
value: "closing",
|
|
381
353
|
children: "Closing Soon"
|
|
382
354
|
}),
|
|
383
|
-
/* @__PURE__ */
|
|
355
|
+
/* @__PURE__ */ _("option", {
|
|
384
356
|
value: "minimum",
|
|
385
357
|
children: "Lowest Minimum"
|
|
386
358
|
})
|
|
@@ -389,224 +361,155 @@ function O() {
|
|
|
389
361
|
]
|
|
390
362
|
})
|
|
391
363
|
}),
|
|
392
|
-
|
|
364
|
+
U.length === 0 ? /* @__PURE__ */ _("div", {
|
|
393
365
|
className: "mt-6",
|
|
394
|
-
children: /* @__PURE__ */
|
|
395
|
-
icon: /* @__PURE__ */
|
|
366
|
+
children: /* @__PURE__ */ _(r, {
|
|
367
|
+
icon: /* @__PURE__ */ _(h, { className: "h-10 w-10" }),
|
|
396
368
|
title: "No opportunities found",
|
|
397
369
|
description: "Try adjusting your filters to find more opportunities",
|
|
398
|
-
action: /* @__PURE__ */
|
|
370
|
+
action: /* @__PURE__ */ _("button", {
|
|
399
371
|
type: "button",
|
|
400
|
-
onClick: () =>
|
|
372
|
+
onClick: () => z({
|
|
401
373
|
searchQuery: "",
|
|
402
374
|
category: "",
|
|
403
375
|
riskLevel: "",
|
|
404
376
|
minimumAmount: "",
|
|
405
|
-
location: "",
|
|
406
377
|
sortBy: "featured"
|
|
407
378
|
}),
|
|
408
379
|
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",
|
|
409
380
|
children: "Clear Filters"
|
|
410
381
|
})
|
|
411
382
|
})
|
|
412
|
-
}) : /* @__PURE__ */
|
|
383
|
+
}) : /* @__PURE__ */ _("div", {
|
|
413
384
|
className: "mt-6 grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
414
|
-
children:
|
|
415
|
-
let n =
|
|
416
|
-
return /* @__PURE__ */
|
|
385
|
+
children: U.map((e) => {
|
|
386
|
+
let n = w(e.raisedAmount, e.targetAmount);
|
|
387
|
+
return /* @__PURE__ */ v("div", {
|
|
417
388
|
className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm hover:shadow-md transition-shadow",
|
|
418
|
-
children: [/* @__PURE__ */
|
|
389
|
+
children: [/* @__PURE__ */ v("div", {
|
|
419
390
|
className: "relative",
|
|
420
391
|
children: [
|
|
421
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ _("div", {
|
|
422
393
|
className: "flex h-40 w-full items-center justify-center overflow-hidden rounded-t-lg bg-bg-sunken sm:h-48",
|
|
423
|
-
children: /* @__PURE__ */
|
|
394
|
+
children: /* @__PURE__ */ _(u, { className: "h-10 w-10 text-text-secondary" })
|
|
424
395
|
}),
|
|
425
|
-
e.status === "funded" && /* @__PURE__ */
|
|
396
|
+
e.status === "funded" && /* @__PURE__ */ _("div", {
|
|
426
397
|
className: "absolute right-2 top-2 rounded-full bg-status-success-text px-2 py-1 text-xs font-medium text-white sm:right-4 sm:top-4 sm:px-3",
|
|
427
398
|
children: "Fully Funded"
|
|
428
399
|
}),
|
|
429
|
-
e.daysLeft > 0 && e.daysLeft <= 7 && /* @__PURE__ */
|
|
400
|
+
e.daysLeft > 0 && e.daysLeft <= 7 && /* @__PURE__ */ v("div", {
|
|
430
401
|
className: "absolute left-2 top-2 rounded-full bg-status-error-text px-2 py-1 text-xs font-medium text-white sm:left-4 sm:top-4 sm:px-3",
|
|
431
402
|
children: [e.daysLeft, " days left"]
|
|
432
403
|
})
|
|
433
404
|
]
|
|
434
|
-
}), /* @__PURE__ */
|
|
405
|
+
}), /* @__PURE__ */ v("div", {
|
|
435
406
|
className: "p-4 sm:p-6",
|
|
436
407
|
children: [
|
|
437
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ v("div", {
|
|
438
409
|
className: "mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
|
|
439
|
-
children: [/* @__PURE__ */
|
|
410
|
+
children: [/* @__PURE__ */ v("div", {
|
|
440
411
|
className: "flex-1",
|
|
441
412
|
children: [
|
|
442
|
-
/* @__PURE__ */
|
|
413
|
+
/* @__PURE__ */ _("h3", {
|
|
443
414
|
className: "text-base font-semibold text-text-primary sm:text-xl",
|
|
444
415
|
children: e.cartName
|
|
445
416
|
}),
|
|
446
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ v("p", {
|
|
447
418
|
className: "text-xs text-text-secondary sm:text-sm",
|
|
448
419
|
children: ["by ", e.cartOwner]
|
|
449
420
|
}),
|
|
450
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ v("div", {
|
|
451
422
|
className: "mt-2 flex flex-wrap items-center gap-2",
|
|
452
|
-
children: [/* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ _("span", {
|
|
453
424
|
className: "text-xs text-text-secondary sm:text-sm",
|
|
454
425
|
children: e.category
|
|
455
|
-
}), /* @__PURE__ */
|
|
456
|
-
className: t("rounded-full px-2 py-0.5 text-xs font-medium",
|
|
457
|
-
children:
|
|
426
|
+
}), /* @__PURE__ */ _("span", {
|
|
427
|
+
className: t("rounded-full px-2 py-0.5 text-xs font-medium", S(e.riskLevel)),
|
|
428
|
+
children: C(e.riskLevel)
|
|
458
429
|
})]
|
|
459
430
|
})
|
|
460
431
|
]
|
|
461
|
-
}), /* @__PURE__ */
|
|
432
|
+
}), /* @__PURE__ */ v("div", {
|
|
462
433
|
className: "text-left sm:text-right",
|
|
463
|
-
children: [/* @__PURE__ */
|
|
434
|
+
children: [/* @__PURE__ */ v("p", {
|
|
464
435
|
className: "text-xl font-bold text-status-success-text sm:text-2xl",
|
|
465
436
|
children: [e.expectedReturns, "%"]
|
|
466
|
-
}), /* @__PURE__ */
|
|
437
|
+
}), /* @__PURE__ */ _("p", {
|
|
467
438
|
className: "text-xs text-text-secondary",
|
|
468
439
|
children: "Expected Returns"
|
|
469
440
|
})]
|
|
470
441
|
})]
|
|
471
442
|
}),
|
|
472
|
-
/* @__PURE__ */
|
|
443
|
+
/* @__PURE__ */ _("p", {
|
|
473
444
|
className: "mb-4 text-sm leading-relaxed text-text-secondary line-clamp-2",
|
|
474
445
|
children: e.description
|
|
475
446
|
}),
|
|
476
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ v("div", {
|
|
477
448
|
className: "mb-4",
|
|
478
449
|
children: [
|
|
479
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ v("div", {
|
|
480
451
|
className: "mb-1 flex justify-between text-xs sm:text-sm",
|
|
481
|
-
children: [/* @__PURE__ */
|
|
452
|
+
children: [/* @__PURE__ */ v("span", {
|
|
482
453
|
className: "font-medium text-text-primary",
|
|
483
454
|
children: [
|
|
484
455
|
o(e.raisedAmount, { minimumFractionDigits: 0 }),
|
|
485
456
|
" ",
|
|
486
457
|
"raised"
|
|
487
458
|
]
|
|
488
|
-
}), /* @__PURE__ */
|
|
459
|
+
}), /* @__PURE__ */ v("span", {
|
|
489
460
|
className: "text-text-secondary",
|
|
490
461
|
children: ["of ", o(e.targetAmount, { minimumFractionDigits: 0 })]
|
|
491
462
|
})]
|
|
492
463
|
}),
|
|
493
|
-
/* @__PURE__ */
|
|
464
|
+
/* @__PURE__ */ _("div", {
|
|
494
465
|
className: "h-2 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
495
|
-
children: /* @__PURE__ */
|
|
466
|
+
children: /* @__PURE__ */ _("div", {
|
|
496
467
|
className: "h-full rounded-full bg-action-primary-bg transition-all duration-300",
|
|
497
468
|
style: { width: `${n}%` }
|
|
498
469
|
})
|
|
499
470
|
}),
|
|
500
|
-
/* @__PURE__ */
|
|
471
|
+
/* @__PURE__ */ v("div", {
|
|
501
472
|
className: "mt-1 flex justify-between text-xs text-text-secondary",
|
|
502
|
-
children: [/* @__PURE__ */
|
|
473
|
+
children: [/* @__PURE__ */ v("span", { children: [e.investorCount, " investors"] }), /* @__PURE__ */ v("span", { children: [n.toFixed(0), "% funded"] })]
|
|
503
474
|
})
|
|
504
475
|
]
|
|
505
476
|
}),
|
|
506
|
-
/* @__PURE__ */
|
|
507
|
-
className: "mb-4 grid grid-cols-
|
|
508
|
-
children: [
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
|
|
524
|
-
className: "flex items-center justify-center gap-1",
|
|
525
|
-
children: [/* @__PURE__ */ b(v, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ b("p", {
|
|
526
|
-
className: "text-sm font-bold text-text-primary sm:text-lg",
|
|
527
|
-
children: e.businessMetrics.rating
|
|
528
|
-
})]
|
|
529
|
-
}), /* @__PURE__ */ b("p", {
|
|
530
|
-
className: "text-xs text-text-secondary",
|
|
531
|
-
children: "Rating"
|
|
532
|
-
})] })
|
|
533
|
-
]
|
|
534
|
-
}),
|
|
535
|
-
/* @__PURE__ */ x("div", {
|
|
536
|
-
className: "mb-4 border-t border-border-subtle pt-3 sm:pt-4",
|
|
537
|
-
children: [/* @__PURE__ */ b("p", {
|
|
538
|
-
className: "mb-2 text-xs font-medium text-text-secondary sm:text-sm",
|
|
539
|
-
children: "Business Performance"
|
|
540
|
-
}), /* @__PURE__ */ x("div", {
|
|
541
|
-
className: "grid grid-cols-1 gap-2 text-xs sm:grid-cols-2 sm:text-sm",
|
|
542
|
-
children: [
|
|
543
|
-
/* @__PURE__ */ x("div", {
|
|
544
|
-
className: "flex justify-between",
|
|
545
|
-
children: [/* @__PURE__ */ b("span", {
|
|
546
|
-
className: "text-text-secondary",
|
|
547
|
-
children: "Monthly Revenue:"
|
|
548
|
-
}), /* @__PURE__ */ b("span", {
|
|
549
|
-
className: "font-medium text-text-primary",
|
|
550
|
-
children: o(e.businessMetrics.monthlyRevenue, { minimumFractionDigits: 0 })
|
|
551
|
-
})]
|
|
552
|
-
}),
|
|
553
|
-
/* @__PURE__ */ x("div", {
|
|
554
|
-
className: "flex justify-between",
|
|
555
|
-
children: [/* @__PURE__ */ b("span", {
|
|
556
|
-
className: "text-text-secondary",
|
|
557
|
-
children: "Gross Margin:"
|
|
558
|
-
}), /* @__PURE__ */ x("span", {
|
|
559
|
-
className: "font-medium text-text-primary",
|
|
560
|
-
children: [e.financials.grossMargin, "%"]
|
|
561
|
-
})]
|
|
562
|
-
}),
|
|
563
|
-
/* @__PURE__ */ x("div", {
|
|
564
|
-
className: "flex justify-between",
|
|
565
|
-
children: [/* @__PURE__ */ b("span", {
|
|
566
|
-
className: "text-text-secondary",
|
|
567
|
-
children: "Monthly Orders:"
|
|
568
|
-
}), /* @__PURE__ */ b("span", {
|
|
569
|
-
className: "font-medium text-text-primary",
|
|
570
|
-
children: s(e.businessMetrics.monthlyOrders)
|
|
571
|
-
})]
|
|
572
|
-
}),
|
|
573
|
-
/* @__PURE__ */ x("div", {
|
|
574
|
-
className: "flex justify-between",
|
|
575
|
-
children: [/* @__PURE__ */ b("span", {
|
|
576
|
-
className: "text-text-secondary",
|
|
577
|
-
children: "Net Margin:"
|
|
578
|
-
}), /* @__PURE__ */ x("span", {
|
|
579
|
-
className: "font-medium text-text-primary",
|
|
580
|
-
children: [e.financials.netMargin, "%"]
|
|
581
|
-
})]
|
|
582
|
-
})
|
|
583
|
-
]
|
|
584
|
-
})]
|
|
585
|
-
}),
|
|
586
|
-
/* @__PURE__ */ b("div", {
|
|
477
|
+
/* @__PURE__ */ v("div", {
|
|
478
|
+
className: "mb-4 grid grid-cols-2 gap-2 text-center sm:gap-4",
|
|
479
|
+
children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
480
|
+
className: "text-sm font-bold text-text-primary sm:text-lg",
|
|
481
|
+
children: o(e.minimumInvestment, { minimumFractionDigits: 0 })
|
|
482
|
+
}), /* @__PURE__ */ _("p", {
|
|
483
|
+
className: "text-xs text-text-secondary",
|
|
484
|
+
children: "Min Investment"
|
|
485
|
+
})] }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ v("p", {
|
|
486
|
+
className: "text-sm font-bold text-text-primary sm:text-lg",
|
|
487
|
+
children: [e.paybackPeriod, " mo"]
|
|
488
|
+
}), /* @__PURE__ */ _("p", {
|
|
489
|
+
className: "text-xs text-text-secondary",
|
|
490
|
+
children: "Lock-in Period"
|
|
491
|
+
})] })]
|
|
492
|
+
}),
|
|
493
|
+
e.documents.length > 0 && /* @__PURE__ */ _("div", {
|
|
587
494
|
className: "mb-4 border-t border-border-subtle pt-3",
|
|
588
|
-
children: /* @__PURE__ */
|
|
495
|
+
children: /* @__PURE__ */ v("div", {
|
|
589
496
|
className: "flex items-center gap-1.5 text-xs text-text-secondary",
|
|
590
|
-
children: [/* @__PURE__ */
|
|
497
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ v("span", { children: [e.documents.length, " documents available"] })]
|
|
591
498
|
})
|
|
592
499
|
}),
|
|
593
|
-
/* @__PURE__ */
|
|
594
|
-
className: "mb-4 flex items-center gap-1.5 text-xs text-text-secondary",
|
|
595
|
-
children: [/* @__PURE__ */ b(g, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ b("span", { children: e.location })]
|
|
596
|
-
}),
|
|
597
|
-
/* @__PURE__ */ x("div", {
|
|
500
|
+
/* @__PURE__ */ v("div", {
|
|
598
501
|
className: "flex flex-col gap-2 sm:flex-row sm:gap-3",
|
|
599
|
-
children: [/* @__PURE__ */
|
|
502
|
+
children: [/* @__PURE__ */ _("button", {
|
|
600
503
|
type: "button",
|
|
601
|
-
onClick: () =>
|
|
504
|
+
onClick: () => G(e),
|
|
602
505
|
disabled: e.status === "funded",
|
|
603
506
|
className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", e.status === "funded" ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
|
|
604
507
|
children: e.status === "funded" ? "Fully Funded" : "Invest Now"
|
|
605
|
-
}), /* @__PURE__ */
|
|
508
|
+
}), /* @__PURE__ */ v("button", {
|
|
606
509
|
type: "button",
|
|
607
|
-
onClick: () =>
|
|
510
|
+
onClick: () => T(`/investor/opportunity/${e.id}`),
|
|
608
511
|
className: "flex flex-1 items-center justify-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
609
|
-
children: [/* @__PURE__ */
|
|
512
|
+
children: [/* @__PURE__ */ _(f, { className: "h-4 w-4" }), "View Details"]
|
|
610
513
|
})]
|
|
611
514
|
})
|
|
612
515
|
]
|
|
@@ -614,168 +517,154 @@ function O() {
|
|
|
614
517
|
}, e.id);
|
|
615
518
|
})
|
|
616
519
|
}),
|
|
617
|
-
|
|
520
|
+
M && A && /* @__PURE__ */ _("div", {
|
|
618
521
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
619
|
-
children: /* @__PURE__ */
|
|
522
|
+
children: /* @__PURE__ */ v("div", {
|
|
620
523
|
className: "relative max-h-[90vh] w-full max-w-md overflow-y-auto rounded-lg border border-border-subtle bg-bg-surface p-4 sm:p-6",
|
|
621
524
|
children: [
|
|
622
|
-
/* @__PURE__ */
|
|
525
|
+
/* @__PURE__ */ _("button", {
|
|
623
526
|
type: "button",
|
|
624
527
|
onClick: () => {
|
|
625
|
-
|
|
528
|
+
N(!1), F(""), L("idle");
|
|
626
529
|
},
|
|
627
530
|
className: "absolute right-3 top-3 rounded-lg p-1 text-text-secondary hover:bg-accent transition-colors",
|
|
628
|
-
children: /* @__PURE__ */
|
|
531
|
+
children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
|
|
629
532
|
}),
|
|
630
|
-
/* @__PURE__ */
|
|
533
|
+
/* @__PURE__ */ v("h3", {
|
|
631
534
|
className: "mb-4 text-base font-semibold text-text-primary sm:text-lg",
|
|
632
|
-
children: ["Invest in ",
|
|
535
|
+
children: ["Invest in ", A.cartName]
|
|
633
536
|
}),
|
|
634
|
-
|
|
537
|
+
I === "success" ? /* @__PURE__ */ v("div", {
|
|
635
538
|
className: "py-8 text-center",
|
|
636
539
|
children: [
|
|
637
|
-
/* @__PURE__ */
|
|
638
|
-
/* @__PURE__ */
|
|
540
|
+
/* @__PURE__ */ _(d, { className: "mx-auto mb-3 h-12 w-12 text-status-success-text" }),
|
|
541
|
+
/* @__PURE__ */ _("p", {
|
|
639
542
|
className: "text-sm font-medium text-text-primary",
|
|
640
543
|
children: "Investment successful!"
|
|
641
544
|
}),
|
|
642
|
-
/* @__PURE__ */
|
|
545
|
+
/* @__PURE__ */ _("p", {
|
|
643
546
|
className: "mt-1 text-xs text-text-secondary",
|
|
644
547
|
children: "Redirecting to your portfolio..."
|
|
645
548
|
})
|
|
646
549
|
]
|
|
647
|
-
}) : /* @__PURE__ */
|
|
550
|
+
}) : /* @__PURE__ */ v("div", {
|
|
648
551
|
className: "space-y-4",
|
|
649
552
|
children: [
|
|
650
|
-
/* @__PURE__ */
|
|
553
|
+
/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
651
554
|
className: "mb-1 text-xs text-text-secondary sm:text-sm",
|
|
652
555
|
children: "Investment Range"
|
|
653
|
-
}), /* @__PURE__ */
|
|
556
|
+
}), /* @__PURE__ */ v("p", {
|
|
654
557
|
className: "text-sm font-medium text-text-primary sm:text-base",
|
|
655
558
|
children: [
|
|
656
|
-
o(
|
|
559
|
+
o(A.minimumInvestment, { minimumFractionDigits: 0 }),
|
|
657
560
|
" ",
|
|
658
561
|
"-",
|
|
659
562
|
" ",
|
|
660
|
-
o(
|
|
563
|
+
o(A.maximumInvestment, { minimumFractionDigits: 0 })
|
|
661
564
|
]
|
|
662
565
|
})] }),
|
|
663
|
-
/* @__PURE__ */
|
|
664
|
-
/* @__PURE__ */
|
|
566
|
+
/* @__PURE__ */ v("div", { children: [
|
|
567
|
+
/* @__PURE__ */ _("label", {
|
|
665
568
|
className: "mb-1 block text-xs font-medium text-text-primary sm:text-sm",
|
|
666
569
|
children: "Investment Amount"
|
|
667
570
|
}),
|
|
668
|
-
/* @__PURE__ */
|
|
571
|
+
/* @__PURE__ */ v("div", {
|
|
669
572
|
className: "relative",
|
|
670
|
-
children: [/* @__PURE__ */
|
|
573
|
+
children: [/* @__PURE__ */ _(m, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _("input", {
|
|
671
574
|
type: "number",
|
|
672
|
-
value:
|
|
575
|
+
value: P,
|
|
673
576
|
onChange: (e) => {
|
|
674
|
-
|
|
577
|
+
F(e.target.value), L("idle");
|
|
675
578
|
},
|
|
676
579
|
placeholder: "Enter amount",
|
|
677
580
|
className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 pl-10 pr-4 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
678
581
|
})]
|
|
679
582
|
}),
|
|
680
|
-
|
|
583
|
+
I === "error" && /* @__PURE__ */ v("p", {
|
|
681
584
|
className: "mt-1 text-xs text-status-error-text",
|
|
682
585
|
children: [
|
|
683
586
|
"Amount must be between",
|
|
684
587
|
" ",
|
|
685
|
-
o(
|
|
588
|
+
o(A.minimumInvestment, { minimumFractionDigits: 0 }),
|
|
686
589
|
" ",
|
|
687
590
|
"and",
|
|
688
591
|
" ",
|
|
689
|
-
o(
|
|
592
|
+
o(A.maximumInvestment, { minimumFractionDigits: 0 })
|
|
690
593
|
]
|
|
691
594
|
})
|
|
692
595
|
] }),
|
|
693
|
-
|
|
596
|
+
P && !isNaN(parseInt(P, 10)) && parseInt(P, 10) > 0 && /* @__PURE__ */ v("div", {
|
|
694
597
|
className: "rounded-lg border border-border-subtle bg-bg-sunken/50 p-3 sm:p-4",
|
|
695
|
-
children: [/* @__PURE__ */
|
|
598
|
+
children: [/* @__PURE__ */ _("p", {
|
|
696
599
|
className: "mb-2 text-xs text-text-secondary sm:text-sm",
|
|
697
600
|
children: "Expected Returns"
|
|
698
|
-
}), /* @__PURE__ */
|
|
601
|
+
}), /* @__PURE__ */ v("div", {
|
|
699
602
|
className: "space-y-1.5",
|
|
700
603
|
children: [
|
|
701
|
-
/* @__PURE__ */
|
|
604
|
+
/* @__PURE__ */ v("div", {
|
|
702
605
|
className: "flex justify-between",
|
|
703
|
-
children: [/* @__PURE__ */
|
|
606
|
+
children: [/* @__PURE__ */ _("span", {
|
|
704
607
|
className: "text-xs text-text-primary sm:text-sm",
|
|
705
608
|
children: "Investment:"
|
|
706
|
-
}), /* @__PURE__ */
|
|
609
|
+
}), /* @__PURE__ */ _("span", {
|
|
707
610
|
className: "text-xs font-medium text-text-primary sm:text-sm",
|
|
708
|
-
children: o(parseInt(
|
|
611
|
+
children: o(parseInt(P, 10), { minimumFractionDigits: 0 })
|
|
709
612
|
})]
|
|
710
613
|
}),
|
|
711
|
-
/* @__PURE__ */
|
|
614
|
+
/* @__PURE__ */ v("div", {
|
|
712
615
|
className: "flex justify-between",
|
|
713
|
-
children: [/* @__PURE__ */
|
|
616
|
+
children: [/* @__PURE__ */ v("span", {
|
|
714
617
|
className: "text-xs text-text-primary sm:text-sm",
|
|
715
618
|
children: [
|
|
716
619
|
"Expected Return (",
|
|
717
|
-
|
|
620
|
+
A.expectedReturns,
|
|
718
621
|
"%):"
|
|
719
622
|
]
|
|
720
|
-
}), /* @__PURE__ */
|
|
623
|
+
}), /* @__PURE__ */ v("span", {
|
|
721
624
|
className: "text-xs font-medium text-status-success-text sm:text-sm",
|
|
722
|
-
children: ["+", o(parseInt(
|
|
625
|
+
children: ["+", o(parseInt(P, 10) * A.expectedReturns / 100, { minimumFractionDigits: 0 })]
|
|
723
626
|
})]
|
|
724
627
|
}),
|
|
725
|
-
/* @__PURE__ */
|
|
628
|
+
/* @__PURE__ */ v("div", {
|
|
726
629
|
className: "flex justify-between border-t border-border-subtle pt-2",
|
|
727
|
-
children: [/* @__PURE__ */
|
|
630
|
+
children: [/* @__PURE__ */ _("span", {
|
|
728
631
|
className: "text-xs font-medium text-text-primary sm:text-sm",
|
|
729
632
|
children: "Total Value:"
|
|
730
|
-
}), /* @__PURE__ */
|
|
633
|
+
}), /* @__PURE__ */ _("span", {
|
|
731
634
|
className: "text-xs font-bold text-text-primary sm:text-sm",
|
|
732
|
-
children: o(parseInt(
|
|
635
|
+
children: o(parseInt(P, 10) * (1 + A.expectedReturns / 100), { minimumFractionDigits: 0 })
|
|
733
636
|
})]
|
|
734
637
|
})
|
|
735
638
|
]
|
|
736
639
|
})]
|
|
737
640
|
}),
|
|
738
|
-
/* @__PURE__ */
|
|
641
|
+
/* @__PURE__ */ v("div", {
|
|
739
642
|
className: "space-y-1 text-xs text-text-secondary sm:text-sm",
|
|
740
|
-
children: [
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
/* @__PURE__ */ x("p", { children: [
|
|
753
|
-
"• Your equity stake:",
|
|
754
|
-
" ",
|
|
755
|
-
((parseInt(L, 10) || 0) / N.targetAmount * N.investmentTerms.equityOffered).toFixed(2),
|
|
756
|
-
"%"
|
|
757
|
-
] }),
|
|
758
|
-
/* @__PURE__ */ x("p", { children: [
|
|
759
|
-
"• Exit options:",
|
|
760
|
-
" ",
|
|
761
|
-
N.investmentTerms.exitOptions.join(", ")
|
|
762
|
-
] })
|
|
763
|
-
]
|
|
764
|
-
}),
|
|
765
|
-
/* @__PURE__ */ x("div", {
|
|
643
|
+
children: [/* @__PURE__ */ v("p", { children: [
|
|
644
|
+
"• Minimum lock-in period:",
|
|
645
|
+
" ",
|
|
646
|
+
A.investmentTerms.lockInPeriod,
|
|
647
|
+
" months"
|
|
648
|
+
] }), /* @__PURE__ */ v("p", { children: [
|
|
649
|
+
"• Expected returns: ",
|
|
650
|
+
A.expectedReturns,
|
|
651
|
+
"% over the lock-in period"
|
|
652
|
+
] })]
|
|
653
|
+
}),
|
|
654
|
+
/* @__PURE__ */ v("div", {
|
|
766
655
|
className: "flex flex-col gap-2 pt-2 sm:flex-row sm:gap-3",
|
|
767
|
-
children: [/* @__PURE__ */
|
|
656
|
+
children: [/* @__PURE__ */ _("button", {
|
|
768
657
|
type: "button",
|
|
769
658
|
onClick: () => {
|
|
770
|
-
|
|
659
|
+
N(!1), F(""), L("idle");
|
|
771
660
|
},
|
|
772
661
|
className: "flex-1 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
773
662
|
children: "Cancel"
|
|
774
|
-
}), /* @__PURE__ */
|
|
663
|
+
}), /* @__PURE__ */ _("button", {
|
|
775
664
|
type: "button",
|
|
776
|
-
onClick:
|
|
777
|
-
disabled: !
|
|
778
|
-
className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", !
|
|
665
|
+
onClick: W,
|
|
666
|
+
disabled: !P || isNaN(parseInt(P, 10)) || parseInt(P, 10) < A.minimumInvestment,
|
|
667
|
+
className: t("flex-1 rounded-lg px-4 py-2.5 text-sm font-medium transition-colors", !P || isNaN(parseInt(P, 10)) || parseInt(P, 10) < A.minimumInvestment ? "cursor-not-allowed bg-bg-sunken text-text-secondary" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90"),
|
|
779
668
|
children: "Confirm Investment"
|
|
780
669
|
})]
|
|
781
670
|
})
|
|
@@ -788,6 +677,6 @@ function O() {
|
|
|
788
677
|
});
|
|
789
678
|
}
|
|
790
679
|
//#endregion
|
|
791
|
-
export {
|
|
680
|
+
export { T as InvestmentOpportunitiesPage };
|
|
792
681
|
|
|
793
682
|
//# sourceMappingURL=InvestmentOpportunitiesPage.js.map
|