@burdenoff/microfe-subscriberbot 2026.625.1 → 2026.626.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/subscriberbot/pages/HomePage.js +19 -14
- package/dist/subscriberbot/pages/HomePage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js +66 -60
- package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminDashboard.js +83 -44
- package/dist/subscriberbot/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminFinancialPage.js +38 -32
- package/dist/subscriberbot/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminOrdersPage.js +226 -221
- package/dist/subscriberbot/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminProfilePage.js +127 -125
- package/dist/subscriberbot/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminSettingsPage.js +235 -230
- package/dist/subscriberbot/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/CartManagementPage.js +267 -262
- package/dist/subscriberbot/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/UserManagementPage.js +267 -262
- package/dist/subscriberbot/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js +46 -41
- package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js +257 -252
- package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js +231 -194
- package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js +167 -162
- package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js +128 -126
- package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js +297 -300
- package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js +220 -223
- package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js +250 -245
- package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/HelpSupportPage.js +94 -96
- package/dist/subscriberbot/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/NotificationCenterPage.js +48 -42
- package/dist/subscriberbot/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/SettingsPage.js +745 -736
- package/dist/subscriberbot/pages/common/SettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/BookingDetailsPage.js +353 -321
- package/dist/subscriberbot/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CartDetailPage.js +258 -225
- package/dist/subscriberbot/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js +82 -76
- package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CheckoutPage.js +212 -215
- package/dist/subscriberbot/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CustomerDashboard.js +416 -381
- package/dist/subscriberbot/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CustomerProfilePage.js +488 -479
- package/dist/subscriberbot/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js +521 -512
- package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/FavoritesPage.js +57 -51
- package/dist/subscriberbot/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/OrderHistoryPage.js +56 -50
- package/dist/subscriberbot/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/OrderTrackingPage.js +65 -60
- package/dist/subscriberbot/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js +79 -73
- package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/ReviewsPage.js +68 -62
- package/dist/subscriberbot/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/SavedAddressesPage.js +60 -54
- package/dist/subscriberbot/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js +292 -255
- package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js +237 -231
- package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js +60 -54
- package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorDashboard.js +350 -319
- package/dist/subscriberbot/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js +106 -100
- package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js +51 -45
- package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorProfilePage.js +387 -382
- package/dist/subscriberbot/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/TaskDetailsPage.js +320 -282
- package/dist/subscriberbot/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerDashboard.js +92 -61
- package/dist/subscriberbot/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js +82 -77
- package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerProfilePage.js +82 -77
- package/dist/subscriberbot/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js +348 -340
- package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,15 +2,16 @@ import { useSubscriberBot as e } from "../../context/SubscriberBotContext.js";
|
|
|
2
2
|
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
|
-
import { useInvestmentOpportunities as
|
|
6
|
-
import { formatCurrency as
|
|
7
|
-
import { useMemo as
|
|
8
|
-
import { ArrowLeft as
|
|
9
|
-
import { useParams as
|
|
10
|
-
import { Fragment as
|
|
5
|
+
import { useInvestmentOpportunities as ee, useOfferings as i, useProviders as a } from "../../hooks/useSubscriberBotApi.js";
|
|
6
|
+
import { formatCurrency as o, formatDistance as s, formatDuration as c } from "../../utils/formatters.js";
|
|
7
|
+
import { useMemo as l, useState as u } from "react";
|
|
8
|
+
import { ArrowLeft as d, Calendar as f, CheckCircle2 as p, Clock as m, Flame as h, Home as g, Leaf as _, MapPin as v, Minus as y, Plus as b, Search as x, ShoppingCart as S, Star as C, TrendingUp as te, X as w } from "lucide-react";
|
|
9
|
+
import { useParams as T } from "react-router-dom";
|
|
10
|
+
import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
11
|
+
import { EmphasisPanel as k, NextSteps as A, PagePurpose as j } from "@burdenoff/fe-libs/ui";
|
|
11
12
|
//#region src/subscriberbot/pages/customer/CartDetailPage.tsx
|
|
12
|
-
function
|
|
13
|
-
let { cartId:
|
|
13
|
+
function M() {
|
|
14
|
+
let { cartId: M } = T(), { navigateTo: N } = e(), { data: P = [], isLoading: ne } = a(), { data: F = [], isLoading: re } = i(M), { data: I = [], isLoading: ie } = ee(), L = l(() => P.find((e) => e.id === M), [P, M]), R = l(() => I.find((e) => e.cartId === M), [I, M]), [z, B] = u(""), [V, H] = u(""), [U, W] = u([]), [G, K] = u(!1), [q, J] = u(null), Y = l(() => F.map((e) => ({
|
|
14
15
|
id: e.id,
|
|
15
16
|
name: e.name,
|
|
16
17
|
price: e.price,
|
|
@@ -20,24 +21,24 @@ function A() {
|
|
|
20
21
|
isVeg: !0,
|
|
21
22
|
duration: e.durationMinutes,
|
|
22
23
|
serviceType: e.serviceType
|
|
23
|
-
})), [
|
|
24
|
-
let e =
|
|
25
|
-
if (
|
|
26
|
-
let t =
|
|
24
|
+
})), [F]), X = l(() => [...new Set(Y.map((e) => e.category))], [Y]), Z = l(() => {
|
|
25
|
+
let e = Y;
|
|
26
|
+
if (V && (e = e.filter((e) => e.category === V)), z.trim()) {
|
|
27
|
+
let t = z.toLowerCase();
|
|
27
28
|
e = e.filter((e) => e.name.toLowerCase().includes(t) || e.description.toLowerCase().includes(t));
|
|
28
29
|
}
|
|
29
30
|
return e;
|
|
30
31
|
}, [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
]),
|
|
32
|
+
Y,
|
|
33
|
+
V,
|
|
34
|
+
z
|
|
35
|
+
]), ae = l(() => {
|
|
35
36
|
let e = {};
|
|
36
|
-
return
|
|
37
|
+
return Z.forEach((t) => {
|
|
37
38
|
e[t.category] || (e[t.category] = []), e[t.category].push(t);
|
|
38
39
|
}), e;
|
|
39
|
-
}, [
|
|
40
|
-
|
|
40
|
+
}, [Z]), oe = (e, t = 1, n) => {
|
|
41
|
+
W((r) => r.find((t) => t.productId === e.id) ? r.map((n) => n.productId === e.id ? {
|
|
41
42
|
...n,
|
|
42
43
|
quantity: n.quantity + t
|
|
43
44
|
} : n) : [...r, {
|
|
@@ -49,64 +50,97 @@ function A() {
|
|
|
49
50
|
specialInstructions: n
|
|
50
51
|
}]);
|
|
51
52
|
}, Q = (e, t) => {
|
|
52
|
-
|
|
53
|
+
W((n) => n.map((n) => n.productId === e ? {
|
|
53
54
|
...n,
|
|
54
55
|
quantity: Math.max(0, n.quantity + t)
|
|
55
56
|
} : n).filter((e) => e.quantity > 0));
|
|
56
57
|
}, $ = (e) => {
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
|
|
58
|
+
W((t) => t.filter((t) => t.productId !== e));
|
|
59
|
+
}, se = (e) => U.find((t) => t.productId === e)?.quantity ?? 0, ce = U.reduce((e, t) => e + t.price * t.quantity, 0), le = U.reduce((e, t) => e + t.quantity, 0), ue = (e) => {
|
|
60
|
+
J({
|
|
60
61
|
product: e,
|
|
61
62
|
quantity: 1,
|
|
62
63
|
specialInstructions: ""
|
|
63
|
-
}),
|
|
64
|
+
}), K(!0);
|
|
64
65
|
};
|
|
65
|
-
return
|
|
66
|
-
title: /* @__PURE__ */
|
|
66
|
+
return L ? /* @__PURE__ */ O(n, {
|
|
67
|
+
title: /* @__PURE__ */ O("div", {
|
|
67
68
|
className: "flex items-center gap-3",
|
|
68
69
|
children: [
|
|
69
|
-
/* @__PURE__ */
|
|
70
|
+
/* @__PURE__ */ D("button", {
|
|
70
71
|
type: "button",
|
|
71
|
-
onClick: () =>
|
|
72
|
+
onClick: () => N("/customer/carts"),
|
|
72
73
|
className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
|
|
73
|
-
children: /* @__PURE__ */
|
|
74
|
+
children: /* @__PURE__ */ D(d, { className: "h-5 w-5" })
|
|
74
75
|
}),
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ D("span", {
|
|
76
77
|
className: "truncate",
|
|
77
|
-
children:
|
|
78
|
+
children: L.name
|
|
78
79
|
}),
|
|
79
|
-
|
|
80
|
+
L.isVerified && /* @__PURE__ */ D(p, { className: "h-5 w-5 text-status-info-text shrink-0" })
|
|
80
81
|
]
|
|
81
82
|
}),
|
|
82
|
-
description:
|
|
83
|
+
description: L.category,
|
|
83
84
|
children: [
|
|
84
|
-
/* @__PURE__ */
|
|
85
|
-
className: "
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
/* @__PURE__ */ D(j, {
|
|
86
|
+
icon: /* @__PURE__ */ D(S, { className: "h-4 w-4" }),
|
|
87
|
+
className: "mb-6",
|
|
88
|
+
children: "Everything this cart offers, in one place. Browse the menu and services, add items to your cart and check out — or book a direct service if you need something bespoke. Check the rating, distance and whether it's open before you order so there are no surprises."
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ D(A, {
|
|
91
|
+
storageKey: "subscriberbot-cart-detail",
|
|
92
|
+
steps: [
|
|
93
|
+
{
|
|
94
|
+
id: "add-items",
|
|
95
|
+
label: "Add items to your cart",
|
|
96
|
+
description: "Pick what you want from the menu and services below.",
|
|
97
|
+
icon: /* @__PURE__ */ D(S, { className: "h-4 w-4" }),
|
|
98
|
+
onClick: () => {
|
|
99
|
+
document.getElementById("cart-menu")?.scrollIntoView({ behavior: "smooth" });
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "book-direct",
|
|
104
|
+
label: "Book a direct service",
|
|
105
|
+
description: "Need something custom? Request a tailored booking.",
|
|
106
|
+
icon: /* @__PURE__ */ D(f, { className: "h-4 w-4" }),
|
|
107
|
+
onClick: () => N(`/customer/carts/${L.id}`)
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "checkout",
|
|
111
|
+
label: "Review cart & checkout",
|
|
112
|
+
description: "Confirm your order and pay when you are ready.",
|
|
113
|
+
icon: /* @__PURE__ */ D(p, { className: "h-4 w-4" }),
|
|
114
|
+
onClick: () => N("/customer/checkout")
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ O(k, {
|
|
119
|
+
className: "relative h-48 overflow-hidden p-0",
|
|
120
|
+
children: [/* @__PURE__ */ D("img", {
|
|
121
|
+
src: L.image,
|
|
122
|
+
alt: L.name,
|
|
89
123
|
className: "h-full w-full object-cover"
|
|
90
|
-
}), /* @__PURE__ */
|
|
124
|
+
}), /* @__PURE__ */ D("div", {
|
|
91
125
|
className: "absolute bottom-0 inset-x-0 bg-gradient-to-t from-black/60 to-transparent p-4",
|
|
92
|
-
children: /* @__PURE__ */
|
|
126
|
+
children: /* @__PURE__ */ O("div", {
|
|
93
127
|
className: "flex items-center gap-3",
|
|
94
|
-
children: [/* @__PURE__ */
|
|
95
|
-
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",
|
|
96
|
-
children:
|
|
97
|
-
}), /* @__PURE__ */
|
|
128
|
+
children: [/* @__PURE__ */ D("span", {
|
|
129
|
+
className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium", L.isOpen ? "bg-status-success-bg/20 text-status-success-text" : "bg-status-error-bg/20 text-status-error-text"),
|
|
130
|
+
children: L.isOpen ? "Open Now" : "Closed"
|
|
131
|
+
}), /* @__PURE__ */ O("div", {
|
|
98
132
|
className: "flex items-center gap-1 text-text-inverse text-sm",
|
|
99
133
|
children: [
|
|
100
|
-
/* @__PURE__ */
|
|
101
|
-
/* @__PURE__ */
|
|
134
|
+
/* @__PURE__ */ D(C, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
|
|
135
|
+
/* @__PURE__ */ D("span", {
|
|
102
136
|
className: "font-medium",
|
|
103
|
-
children:
|
|
137
|
+
children: L.rating
|
|
104
138
|
}),
|
|
105
|
-
/* @__PURE__ */
|
|
139
|
+
/* @__PURE__ */ O("span", {
|
|
106
140
|
className: "text-text-inverse/70",
|
|
107
141
|
children: [
|
|
108
142
|
"(",
|
|
109
|
-
|
|
143
|
+
L.totalRatings,
|
|
110
144
|
")"
|
|
111
145
|
]
|
|
112
146
|
})
|
|
@@ -115,238 +149,237 @@ function A() {
|
|
|
115
149
|
})
|
|
116
150
|
})]
|
|
117
151
|
}),
|
|
118
|
-
!
|
|
152
|
+
!L.isOpen && /* @__PURE__ */ D("div", {
|
|
119
153
|
className: "mt-4 rounded-lg border border-status-warning-border/30 bg-status-warning-bg/10 p-3",
|
|
120
|
-
children: /* @__PURE__ */
|
|
154
|
+
children: /* @__PURE__ */ O("p", {
|
|
121
155
|
className: "text-sm text-status-warning-text",
|
|
122
|
-
children: [/* @__PURE__ */
|
|
156
|
+
children: [/* @__PURE__ */ D("strong", { children: "This cart is currently closed." }), " You can browse the offerings but orders are not being accepted."]
|
|
123
157
|
})
|
|
124
158
|
}),
|
|
125
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ O("div", {
|
|
126
160
|
className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-3",
|
|
127
161
|
children: [
|
|
128
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ O("div", {
|
|
129
163
|
className: "rounded-lg border border-border-seam bg-bg-surface p-3",
|
|
130
164
|
children: [
|
|
131
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ O("div", {
|
|
132
166
|
className: "flex items-center gap-2 text-text-secondary text-xs mb-1",
|
|
133
|
-
children: [/* @__PURE__ */
|
|
167
|
+
children: [/* @__PURE__ */ D(v, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ D("span", {
|
|
134
168
|
className: "font-medium uppercase tracking-wider",
|
|
135
169
|
children: "Location"
|
|
136
170
|
})]
|
|
137
171
|
}),
|
|
138
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ D("p", {
|
|
139
173
|
className: "text-sm text-text-primary",
|
|
140
|
-
children:
|
|
174
|
+
children: L.location.address
|
|
141
175
|
}),
|
|
142
|
-
/* @__PURE__ */
|
|
176
|
+
/* @__PURE__ */ O("p", {
|
|
143
177
|
className: "text-xs text-text-secondary",
|
|
144
|
-
children: [
|
|
178
|
+
children: [s(L.distance), " away"]
|
|
145
179
|
})
|
|
146
180
|
]
|
|
147
181
|
}),
|
|
148
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ O("div", {
|
|
149
183
|
className: "rounded-lg border border-border-seam bg-bg-surface p-3",
|
|
150
184
|
children: [
|
|
151
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ O("div", {
|
|
152
186
|
className: "flex items-center gap-2 text-text-secondary text-xs mb-1",
|
|
153
|
-
children: [/* @__PURE__ */
|
|
187
|
+
children: [/* @__PURE__ */ D(m, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ D("span", {
|
|
154
188
|
className: "font-medium uppercase tracking-wider",
|
|
155
189
|
children: "Estimated Time"
|
|
156
190
|
})]
|
|
157
191
|
}),
|
|
158
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ D("p", {
|
|
159
193
|
className: "text-sm text-text-primary",
|
|
160
|
-
children:
|
|
194
|
+
children: c(L.estimatedTime)
|
|
161
195
|
}),
|
|
162
|
-
|
|
196
|
+
L.averageOrderValue && /* @__PURE__ */ O("p", {
|
|
163
197
|
className: "text-xs text-text-secondary",
|
|
164
|
-
children: ["Avg ",
|
|
198
|
+
children: ["Avg ", o(L.averageOrderValue, { minimumFractionDigits: 0 })]
|
|
165
199
|
})
|
|
166
200
|
]
|
|
167
201
|
}),
|
|
168
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ O("div", {
|
|
169
203
|
className: "rounded-lg border border-border-seam bg-bg-surface p-3",
|
|
170
204
|
children: [
|
|
171
|
-
/* @__PURE__ */
|
|
205
|
+
/* @__PURE__ */ O("div", {
|
|
172
206
|
className: "flex items-center gap-2 text-text-secondary text-xs mb-1",
|
|
173
|
-
children: [/* @__PURE__ */
|
|
207
|
+
children: [/* @__PURE__ */ D(C, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ D("span", {
|
|
174
208
|
className: "font-medium uppercase tracking-wider",
|
|
175
209
|
children: "Rating"
|
|
176
210
|
})]
|
|
177
211
|
}),
|
|
178
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ O("p", {
|
|
179
213
|
className: "text-sm text-text-primary",
|
|
180
|
-
children: [
|
|
214
|
+
children: [L.rating, " / 5.0"]
|
|
181
215
|
}),
|
|
182
|
-
/* @__PURE__ */
|
|
216
|
+
/* @__PURE__ */ O("p", {
|
|
183
217
|
className: "text-xs text-text-secondary",
|
|
184
|
-
children: [
|
|
218
|
+
children: [L.totalRatings, " reviews"]
|
|
185
219
|
})
|
|
186
220
|
]
|
|
187
221
|
})
|
|
188
222
|
]
|
|
189
223
|
}),
|
|
190
|
-
|
|
224
|
+
L.businessHours && Object.keys(L.businessHours).length > 0 && /* @__PURE__ */ O("section", {
|
|
191
225
|
className: "mt-6",
|
|
192
|
-
children: [/* @__PURE__ */
|
|
226
|
+
children: [/* @__PURE__ */ D("h2", {
|
|
193
227
|
className: "text-base font-semibold text-text-primary mb-2",
|
|
194
228
|
children: "Operating Hours"
|
|
195
|
-
}), /* @__PURE__ */
|
|
229
|
+
}), /* @__PURE__ */ D("div", {
|
|
196
230
|
className: "rounded-lg border border-border-seam bg-bg-surface overflow-hidden",
|
|
197
|
-
children: Object.entries(
|
|
231
|
+
children: Object.entries(L.businessHours).map(([e, t]) => /* @__PURE__ */ O("div", {
|
|
198
232
|
className: "flex items-center justify-between px-4 py-2 border-b border-border-seam last:border-b-0",
|
|
199
|
-
children: [/* @__PURE__ */
|
|
233
|
+
children: [/* @__PURE__ */ D("span", {
|
|
200
234
|
className: "text-sm font-medium text-text-primary capitalize",
|
|
201
235
|
children: e
|
|
202
|
-
}), t.isOpen ? /* @__PURE__ */
|
|
236
|
+
}), t.isOpen ? /* @__PURE__ */ O("span", {
|
|
203
237
|
className: "text-sm text-text-secondary",
|
|
204
238
|
children: [
|
|
205
239
|
t.open,
|
|
206
240
|
" - ",
|
|
207
241
|
t.close
|
|
208
242
|
]
|
|
209
|
-
}) : /* @__PURE__ */
|
|
243
|
+
}) : /* @__PURE__ */ D("span", {
|
|
210
244
|
className: "text-sm text-status-error-text",
|
|
211
245
|
children: "Closed"
|
|
212
246
|
})]
|
|
213
247
|
}, e))
|
|
214
248
|
})]
|
|
215
249
|
}),
|
|
216
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ O("div", {
|
|
217
251
|
className: "mt-6 grid grid-cols-1 gap-6 lg:grid-cols-3",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
252
|
+
children: [/* @__PURE__ */ O("div", {
|
|
219
253
|
className: "lg:col-span-2",
|
|
220
254
|
children: [
|
|
221
|
-
/* @__PURE__ */
|
|
255
|
+
/* @__PURE__ */ O("div", {
|
|
222
256
|
className: "flex flex-col gap-3 sm:flex-row mb-4",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
257
|
+
children: [/* @__PURE__ */ O("div", {
|
|
224
258
|
className: "relative flex-1",
|
|
225
|
-
children: [/* @__PURE__ */
|
|
259
|
+
children: [/* @__PURE__ */ D(x, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ D("input", {
|
|
226
260
|
type: "text",
|
|
227
261
|
placeholder: "Search offerings...",
|
|
228
|
-
value:
|
|
229
|
-
onChange: (e) =>
|
|
262
|
+
value: z,
|
|
263
|
+
onChange: (e) => B(e.target.value),
|
|
230
264
|
className: "w-full rounded-lg border border-border-seam bg-bg-surface py-2 pl-10 pr-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
231
265
|
})]
|
|
232
|
-
}), /* @__PURE__ */
|
|
233
|
-
value:
|
|
234
|
-
onChange: (e) =>
|
|
266
|
+
}), /* @__PURE__ */ O("select", {
|
|
267
|
+
value: V,
|
|
268
|
+
onChange: (e) => H(e.target.value),
|
|
235
269
|
className: "rounded-lg border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
236
|
-
children: [/* @__PURE__ */
|
|
270
|
+
children: [/* @__PURE__ */ D("option", {
|
|
237
271
|
value: "",
|
|
238
272
|
children: "All Categories"
|
|
239
|
-
}),
|
|
273
|
+
}), X.map((e) => /* @__PURE__ */ D("option", {
|
|
240
274
|
value: e,
|
|
241
275
|
children: e
|
|
242
276
|
}, e))]
|
|
243
277
|
})]
|
|
244
278
|
}),
|
|
245
|
-
/* @__PURE__ */
|
|
246
|
-
|
|
279
|
+
/* @__PURE__ */ O("h2", {
|
|
280
|
+
id: "cart-menu",
|
|
281
|
+
className: "text-lg font-semibold text-text-primary mb-3 scroll-mt-6",
|
|
247
282
|
children: [
|
|
248
283
|
"Menu & Services (",
|
|
249
|
-
|
|
284
|
+
Z.length,
|
|
250
285
|
")"
|
|
251
286
|
]
|
|
252
287
|
}),
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
})]
|
|
259
|
-
}) : /* @__PURE__ */ O("div", {
|
|
288
|
+
Z.length === 0 ? /* @__PURE__ */ D(r, {
|
|
289
|
+
illustration: "empty-search",
|
|
290
|
+
title: "No offerings found",
|
|
291
|
+
description: "No items match your search here. Try a different keyword or clear the filter to see everything this cart offers."
|
|
292
|
+
}) : /* @__PURE__ */ D("div", {
|
|
260
293
|
className: "space-y-6",
|
|
261
|
-
children: Object.entries(
|
|
294
|
+
children: Object.entries(ae).map(([e, n]) => /* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h3", {
|
|
262
295
|
className: "text-sm font-semibold text-text-primary mb-2 px-1",
|
|
263
296
|
children: e
|
|
264
|
-
}), /* @__PURE__ */
|
|
297
|
+
}), /* @__PURE__ */ D("div", {
|
|
265
298
|
className: "space-y-2",
|
|
266
299
|
children: n.map((e) => {
|
|
267
|
-
let n =
|
|
268
|
-
return /* @__PURE__ */
|
|
300
|
+
let n = se(e.id);
|
|
301
|
+
return /* @__PURE__ */ O("div", {
|
|
269
302
|
className: "flex gap-4 rounded-lg border border-border-seam bg-bg-surface p-4",
|
|
270
|
-
children: [/* @__PURE__ */
|
|
303
|
+
children: [/* @__PURE__ */ D("div", {
|
|
271
304
|
className: "h-20 w-20 shrink-0 rounded-md bg-bg-sunken overflow-hidden",
|
|
272
|
-
children: /* @__PURE__ */
|
|
305
|
+
children: /* @__PURE__ */ D("img", {
|
|
273
306
|
src: e.image,
|
|
274
307
|
alt: e.name,
|
|
275
308
|
className: "h-full w-full object-cover"
|
|
276
309
|
})
|
|
277
|
-
}), /* @__PURE__ */
|
|
310
|
+
}), /* @__PURE__ */ O("div", {
|
|
278
311
|
className: "flex-1 min-w-0",
|
|
279
312
|
children: [
|
|
280
|
-
/* @__PURE__ */
|
|
313
|
+
/* @__PURE__ */ O("div", {
|
|
281
314
|
className: "flex items-start justify-between gap-2",
|
|
282
|
-
children: [/* @__PURE__ */
|
|
315
|
+
children: [/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ O("div", {
|
|
283
316
|
className: "flex items-center gap-2",
|
|
284
|
-
children: [/* @__PURE__ */
|
|
317
|
+
children: [/* @__PURE__ */ D("h4", {
|
|
285
318
|
className: "text-sm font-semibold text-text-primary",
|
|
286
319
|
children: e.name
|
|
287
|
-
}), e.isVeg && /* @__PURE__ */
|
|
288
|
-
}), /* @__PURE__ */
|
|
320
|
+
}), e.isVeg && /* @__PURE__ */ D(_, { className: "h-3.5 w-3.5 text-status-success-text" })]
|
|
321
|
+
}), /* @__PURE__ */ D("p", {
|
|
289
322
|
className: "text-xs text-text-secondary mt-0.5",
|
|
290
323
|
children: e.category
|
|
291
|
-
})] }), /* @__PURE__ */
|
|
324
|
+
})] }), /* @__PURE__ */ D("span", {
|
|
292
325
|
className: "text-sm font-bold text-text-primary whitespace-nowrap",
|
|
293
|
-
children:
|
|
326
|
+
children: o(e.price, { minimumFractionDigits: 0 })
|
|
294
327
|
})]
|
|
295
328
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
329
|
+
/* @__PURE__ */ D("p", {
|
|
297
330
|
className: "mt-1 text-xs text-text-secondary line-clamp-2",
|
|
298
331
|
children: e.description
|
|
299
332
|
}),
|
|
300
|
-
/* @__PURE__ */
|
|
333
|
+
/* @__PURE__ */ O("div", {
|
|
301
334
|
className: "mt-2 flex flex-wrap items-center gap-2 text-[10px] text-text-secondary",
|
|
302
335
|
children: [
|
|
303
|
-
e.duration != null && e.duration > 0 && /* @__PURE__ */
|
|
336
|
+
e.duration != null && e.duration > 0 && /* @__PURE__ */ O("span", {
|
|
304
337
|
className: "flex items-center gap-0.5",
|
|
305
|
-
children: [/* @__PURE__ */
|
|
338
|
+
children: [/* @__PURE__ */ D(m, { className: "h-3 w-3" }), c(e.duration)]
|
|
306
339
|
}),
|
|
307
|
-
e.serviceType && /* @__PURE__ */
|
|
340
|
+
e.serviceType && /* @__PURE__ */ D("span", {
|
|
308
341
|
className: "rounded bg-bg-sunken px-1.5 py-0.5 capitalize",
|
|
309
342
|
children: e.serviceType
|
|
310
343
|
}),
|
|
311
|
-
e.spiceLevel && /* @__PURE__ */
|
|
344
|
+
e.spiceLevel && /* @__PURE__ */ O("span", {
|
|
312
345
|
className: "flex items-center gap-0.5 rounded bg-bg-sunken px-1.5 py-0.5 capitalize",
|
|
313
|
-
children: [/* @__PURE__ */
|
|
346
|
+
children: [/* @__PURE__ */ D(h, { className: "h-3 w-3" }), e.spiceLevel]
|
|
314
347
|
})
|
|
315
348
|
]
|
|
316
349
|
}),
|
|
317
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ D("div", {
|
|
318
351
|
className: "mt-2 flex justify-end",
|
|
319
|
-
children: n > 0 ? /* @__PURE__ */
|
|
352
|
+
children: n > 0 ? /* @__PURE__ */ O("div", {
|
|
320
353
|
className: "flex items-center gap-2",
|
|
321
354
|
children: [
|
|
322
|
-
/* @__PURE__ */
|
|
355
|
+
/* @__PURE__ */ D("button", {
|
|
323
356
|
type: "button",
|
|
324
357
|
onClick: () => Q(e.id, -1),
|
|
325
358
|
className: "flex h-7 w-7 items-center justify-center rounded-full bg-bg-sunken text-text-primary hover:bg-accent",
|
|
326
|
-
children: /* @__PURE__ */
|
|
359
|
+
children: /* @__PURE__ */ D(y, { className: "h-3.5 w-3.5" })
|
|
327
360
|
}),
|
|
328
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ D("span", {
|
|
329
362
|
className: "min-w-[2ch] text-center text-sm font-medium text-text-primary",
|
|
330
363
|
children: n
|
|
331
364
|
}),
|
|
332
|
-
/* @__PURE__ */
|
|
365
|
+
/* @__PURE__ */ D("button", {
|
|
333
366
|
type: "button",
|
|
334
367
|
onClick: () => Q(e.id, 1),
|
|
335
368
|
className: "flex h-7 w-7 items-center justify-center rounded-full bg-foreground text-background hover:opacity-90",
|
|
336
|
-
children: /* @__PURE__ */
|
|
369
|
+
children: /* @__PURE__ */ D(b, { className: "h-3.5 w-3.5" })
|
|
337
370
|
}),
|
|
338
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ D("button", {
|
|
339
372
|
type: "button",
|
|
340
373
|
onClick: () => $(e.id),
|
|
341
374
|
className: "ml-1 flex h-7 w-7 items-center justify-center rounded-full text-status-error-text hover:bg-status-error-bg/10",
|
|
342
|
-
children: /* @__PURE__ */
|
|
375
|
+
children: /* @__PURE__ */ D(w, { className: "h-3.5 w-3.5" })
|
|
343
376
|
})
|
|
344
377
|
]
|
|
345
|
-
}) : /* @__PURE__ */
|
|
378
|
+
}) : /* @__PURE__ */ D("button", {
|
|
346
379
|
type: "button",
|
|
347
|
-
disabled: !
|
|
348
|
-
onClick: () =>
|
|
349
|
-
className: t("rounded-lg px-4 py-1.5 text-xs font-medium transition-opacity",
|
|
380
|
+
disabled: !L.isOpen,
|
|
381
|
+
onClick: () => ue(e),
|
|
382
|
+
className: t("rounded-lg px-4 py-1.5 text-xs font-medium transition-opacity", L.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
|
|
350
383
|
children: "Add"
|
|
351
384
|
})
|
|
352
385
|
})
|
|
@@ -357,143 +390,143 @@ function A() {
|
|
|
357
390
|
})] }, e))
|
|
358
391
|
})
|
|
359
392
|
]
|
|
360
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ O("div", {
|
|
361
394
|
className: "space-y-4",
|
|
362
395
|
children: [
|
|
363
|
-
/* @__PURE__ */
|
|
396
|
+
/* @__PURE__ */ O("div", {
|
|
364
397
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 lg:sticky lg:top-6",
|
|
365
|
-
children: [/* @__PURE__ */
|
|
398
|
+
children: [/* @__PURE__ */ O("h3", {
|
|
366
399
|
className: "text-base font-semibold text-text-primary mb-3 flex items-center gap-2",
|
|
367
|
-
children: [/* @__PURE__ */
|
|
368
|
-
}),
|
|
400
|
+
children: [/* @__PURE__ */ D(S, { className: "h-4 w-4" }), "Your Order"]
|
|
401
|
+
}), U.length === 0 ? /* @__PURE__ */ O("div", {
|
|
369
402
|
className: "py-6 text-center",
|
|
370
|
-
children: [/* @__PURE__ */
|
|
403
|
+
children: [/* @__PURE__ */ D(S, { className: "mx-auto h-8 w-8 text-text-secondary/40" }), /* @__PURE__ */ D("p", {
|
|
371
404
|
className: "mt-2 text-sm text-text-secondary",
|
|
372
405
|
children: "Your cart is empty"
|
|
373
406
|
})]
|
|
374
|
-
}) : /* @__PURE__ */
|
|
407
|
+
}) : /* @__PURE__ */ O(E, { children: [/* @__PURE__ */ D("div", {
|
|
375
408
|
className: "space-y-2 max-h-64 overflow-y-auto mb-3",
|
|
376
|
-
children:
|
|
409
|
+
children: U.map((e) => /* @__PURE__ */ O("div", {
|
|
377
410
|
className: "flex items-center justify-between gap-2",
|
|
378
|
-
children: [/* @__PURE__ */
|
|
411
|
+
children: [/* @__PURE__ */ O("div", {
|
|
379
412
|
className: "flex-1 min-w-0",
|
|
380
|
-
children: [/* @__PURE__ */
|
|
413
|
+
children: [/* @__PURE__ */ D("p", {
|
|
381
414
|
className: "text-sm font-medium text-text-primary truncate",
|
|
382
415
|
children: e.name
|
|
383
|
-
}), /* @__PURE__ */
|
|
416
|
+
}), /* @__PURE__ */ O("p", {
|
|
384
417
|
className: "text-xs text-text-secondary",
|
|
385
418
|
children: [
|
|
386
|
-
|
|
419
|
+
o(e.price, { minimumFractionDigits: 0 }),
|
|
387
420
|
" x",
|
|
388
421
|
" ",
|
|
389
422
|
e.quantity
|
|
390
423
|
]
|
|
391
424
|
})]
|
|
392
|
-
}), /* @__PURE__ */
|
|
425
|
+
}), /* @__PURE__ */ O("div", {
|
|
393
426
|
className: "flex items-center gap-1",
|
|
394
427
|
children: [
|
|
395
|
-
/* @__PURE__ */
|
|
428
|
+
/* @__PURE__ */ D("button", {
|
|
396
429
|
type: "button",
|
|
397
430
|
onClick: () => Q(e.productId, -1),
|
|
398
431
|
className: "flex h-6 w-6 items-center justify-center rounded bg-bg-sunken text-text-primary text-xs",
|
|
399
432
|
children: "-"
|
|
400
433
|
}),
|
|
401
|
-
/* @__PURE__ */
|
|
434
|
+
/* @__PURE__ */ D("span", {
|
|
402
435
|
className: "min-w-[2ch] text-center text-xs font-medium",
|
|
403
436
|
children: e.quantity
|
|
404
437
|
}),
|
|
405
|
-
/* @__PURE__ */
|
|
438
|
+
/* @__PURE__ */ D("button", {
|
|
406
439
|
type: "button",
|
|
407
440
|
onClick: () => Q(e.productId, 1),
|
|
408
441
|
className: "flex h-6 w-6 items-center justify-center rounded bg-bg-sunken text-text-primary text-xs",
|
|
409
442
|
children: "+"
|
|
410
443
|
}),
|
|
411
|
-
/* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ D("button", {
|
|
412
445
|
type: "button",
|
|
413
446
|
onClick: () => $(e.productId),
|
|
414
447
|
className: "ml-1 text-status-error-text hover:text-status-error-text/80",
|
|
415
|
-
children: /* @__PURE__ */
|
|
448
|
+
children: /* @__PURE__ */ D(w, { className: "h-3.5 w-3.5" })
|
|
416
449
|
})
|
|
417
450
|
]
|
|
418
451
|
})]
|
|
419
452
|
}, e.id))
|
|
420
|
-
}), /* @__PURE__ */
|
|
453
|
+
}), /* @__PURE__ */ O("div", {
|
|
421
454
|
className: "border-t border-border-seam pt-3",
|
|
422
|
-
children: [/* @__PURE__ */
|
|
455
|
+
children: [/* @__PURE__ */ O("div", {
|
|
423
456
|
className: "flex justify-between items-center mb-3",
|
|
424
|
-
children: [/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ O("span", {
|
|
425
458
|
className: "text-sm font-semibold text-text-primary",
|
|
426
|
-
children: ["Total: ",
|
|
427
|
-
}), /* @__PURE__ */
|
|
459
|
+
children: ["Total: ", o(ce, { minimumFractionDigits: 0 })]
|
|
460
|
+
}), /* @__PURE__ */ O("span", {
|
|
428
461
|
className: "text-xs text-text-secondary",
|
|
429
|
-
children: [
|
|
462
|
+
children: [le, " items"]
|
|
430
463
|
})]
|
|
431
|
-
}), /* @__PURE__ */
|
|
464
|
+
}), /* @__PURE__ */ D("button", {
|
|
432
465
|
type: "button",
|
|
433
|
-
onClick: () =>
|
|
466
|
+
onClick: () => N("/customer/checkout"),
|
|
434
467
|
className: "w-full rounded-lg bg-foreground py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
435
468
|
children: "Proceed to Checkout"
|
|
436
469
|
})]
|
|
437
470
|
})] })]
|
|
438
471
|
}),
|
|
439
|
-
|
|
472
|
+
L.serviceTypes?.includes("direct_service") && /* @__PURE__ */ O("div", {
|
|
440
473
|
className: "rounded-lg border border-accent-purple/30 bg-accent-purple-subtle p-4",
|
|
441
474
|
children: [
|
|
442
|
-
/* @__PURE__ */
|
|
475
|
+
/* @__PURE__ */ O("h3", {
|
|
443
476
|
className: "text-sm font-semibold text-text-primary flex items-center gap-2 mb-2",
|
|
444
|
-
children: [/* @__PURE__ */
|
|
477
|
+
children: [/* @__PURE__ */ D(g, { className: "h-4 w-4 text-accent-purple" }), "Direct Service"]
|
|
445
478
|
}),
|
|
446
|
-
/* @__PURE__ */
|
|
479
|
+
/* @__PURE__ */ D("p", {
|
|
447
480
|
className: "text-xs text-text-secondary mb-3",
|
|
448
481
|
children: "Cart comes to your location!"
|
|
449
482
|
}),
|
|
450
|
-
/* @__PURE__ */
|
|
483
|
+
/* @__PURE__ */ D("button", {
|
|
451
484
|
type: "button",
|
|
452
|
-
onClick: () =>
|
|
485
|
+
onClick: () => N(`/customer/carts/${L.id}`),
|
|
453
486
|
className: "w-full rounded-lg bg-accent-purple py-2 text-xs font-medium text-text-inverse hover:bg-accent-purple transition-colors",
|
|
454
487
|
children: "Book Direct Service"
|
|
455
488
|
})
|
|
456
489
|
]
|
|
457
490
|
}),
|
|
458
|
-
|
|
491
|
+
L.serviceTypes?.includes("appointment") && /* @__PURE__ */ O("div", {
|
|
459
492
|
className: "rounded-lg border border-status-info-border/30 bg-status-info-bg/10 p-4",
|
|
460
|
-
children: [/* @__PURE__ */
|
|
493
|
+
children: [/* @__PURE__ */ O("h3", {
|
|
461
494
|
className: "text-sm font-semibold text-text-primary flex items-center gap-2 mb-2",
|
|
462
|
-
children: [/* @__PURE__ */
|
|
463
|
-
}), /* @__PURE__ */
|
|
495
|
+
children: [/* @__PURE__ */ D(f, { className: "h-4 w-4 text-status-info-text" }), "Appointments Available"]
|
|
496
|
+
}), /* @__PURE__ */ D("p", {
|
|
464
497
|
className: "text-xs text-text-secondary",
|
|
465
498
|
children: "This service provider accepts appointments. Contact them to schedule."
|
|
466
499
|
})]
|
|
467
500
|
}),
|
|
468
|
-
|
|
501
|
+
R && /* @__PURE__ */ O("div", {
|
|
469
502
|
className: "rounded-lg border border-status-success-border/30 bg-status-success-bg/10 p-4",
|
|
470
503
|
children: [
|
|
471
|
-
/* @__PURE__ */
|
|
504
|
+
/* @__PURE__ */ O("h3", {
|
|
472
505
|
className: "text-sm font-semibold text-text-primary flex items-center gap-2 mb-2",
|
|
473
|
-
children: [/* @__PURE__ */
|
|
506
|
+
children: [/* @__PURE__ */ D(te, { className: "h-4 w-4 text-status-success-text" }), "Investment Opportunity"]
|
|
474
507
|
}),
|
|
475
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ D("p", {
|
|
476
509
|
className: "text-xs text-text-secondary mb-2",
|
|
477
|
-
children:
|
|
510
|
+
children: R.description
|
|
478
511
|
}),
|
|
479
|
-
/* @__PURE__ */
|
|
512
|
+
/* @__PURE__ */ O("div", {
|
|
480
513
|
className: "space-y-1 text-xs text-text-secondary mb-3",
|
|
481
514
|
children: [
|
|
482
|
-
/* @__PURE__ */
|
|
483
|
-
/* @__PURE__ */
|
|
484
|
-
/* @__PURE__ */
|
|
515
|
+
/* @__PURE__ */ O("p", { children: ["Target: ", o(R.targetAmount, { minimumFractionDigits: 0 })] }),
|
|
516
|
+
/* @__PURE__ */ O("p", { children: ["Raised: ", o(R.raisedAmount, { minimumFractionDigits: 0 })] }),
|
|
517
|
+
/* @__PURE__ */ O("p", { children: [
|
|
485
518
|
"Expected Returns: ",
|
|
486
|
-
|
|
519
|
+
R.expectedReturns,
|
|
487
520
|
"%"
|
|
488
521
|
] }),
|
|
489
|
-
/* @__PURE__ */
|
|
522
|
+
/* @__PURE__ */ O("p", { children: [
|
|
490
523
|
"Min Investment:",
|
|
491
524
|
" ",
|
|
492
|
-
|
|
525
|
+
o(R.minimumInvestment, { minimumFractionDigits: 0 })
|
|
493
526
|
] })
|
|
494
527
|
]
|
|
495
528
|
}),
|
|
496
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ D("button", {
|
|
497
530
|
type: "button",
|
|
498
531
|
onClick: () => alert("Navigate to investor section to fund this business."),
|
|
499
532
|
className: "w-full rounded-lg bg-status-success-text py-2 text-xs font-medium text-text-inverse hover:bg-status-success-text transition-colors",
|
|
@@ -504,76 +537,76 @@ function A() {
|
|
|
504
537
|
]
|
|
505
538
|
})]
|
|
506
539
|
}),
|
|
507
|
-
|
|
540
|
+
G && q && /* @__PURE__ */ D("div", {
|
|
508
541
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-canvas/50 p-4",
|
|
509
|
-
children: /* @__PURE__ */
|
|
542
|
+
children: /* @__PURE__ */ D("div", {
|
|
510
543
|
className: "w-full max-w-md max-h-[90vh] overflow-y-auto rounded-lg border border-border-seam bg-bg-surface",
|
|
511
|
-
children: /* @__PURE__ */
|
|
544
|
+
children: /* @__PURE__ */ O("div", {
|
|
512
545
|
className: "p-5",
|
|
513
546
|
children: [
|
|
514
|
-
/* @__PURE__ */
|
|
547
|
+
/* @__PURE__ */ O("div", {
|
|
515
548
|
className: "flex items-center justify-between mb-4",
|
|
516
|
-
children: [/* @__PURE__ */
|
|
549
|
+
children: [/* @__PURE__ */ D("h3", {
|
|
517
550
|
className: "text-lg font-semibold text-text-primary",
|
|
518
|
-
children:
|
|
519
|
-
}), /* @__PURE__ */
|
|
551
|
+
children: q.product.name
|
|
552
|
+
}), /* @__PURE__ */ D("button", {
|
|
520
553
|
type: "button",
|
|
521
554
|
onClick: () => {
|
|
522
|
-
|
|
555
|
+
K(!1), J(null);
|
|
523
556
|
},
|
|
524
557
|
className: "rounded-md p-1 text-text-secondary hover:text-text-primary",
|
|
525
|
-
children: /* @__PURE__ */
|
|
558
|
+
children: /* @__PURE__ */ D(w, { className: "h-5 w-5" })
|
|
526
559
|
})]
|
|
527
560
|
}),
|
|
528
|
-
/* @__PURE__ */
|
|
561
|
+
/* @__PURE__ */ D("p", {
|
|
529
562
|
className: "text-sm text-text-secondary mb-4",
|
|
530
|
-
children:
|
|
563
|
+
children: q.product.description
|
|
531
564
|
}),
|
|
532
|
-
/* @__PURE__ */
|
|
565
|
+
/* @__PURE__ */ D("p", {
|
|
533
566
|
className: "text-lg font-bold text-text-primary mb-4",
|
|
534
|
-
children:
|
|
567
|
+
children: o(q.product.price, { minimumFractionDigits: 0 })
|
|
535
568
|
}),
|
|
536
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ O("div", {
|
|
537
570
|
className: "mb-4",
|
|
538
|
-
children: [/* @__PURE__ */
|
|
571
|
+
children: [/* @__PURE__ */ D("label", {
|
|
539
572
|
className: "block text-sm font-medium text-text-primary mb-2",
|
|
540
573
|
children: "Quantity"
|
|
541
|
-
}), /* @__PURE__ */
|
|
574
|
+
}), /* @__PURE__ */ O("div", {
|
|
542
575
|
className: "flex items-center gap-3",
|
|
543
576
|
children: [
|
|
544
|
-
/* @__PURE__ */
|
|
577
|
+
/* @__PURE__ */ D("button", {
|
|
545
578
|
type: "button",
|
|
546
|
-
onClick: () =>
|
|
579
|
+
onClick: () => J((e) => e && {
|
|
547
580
|
...e,
|
|
548
581
|
quantity: Math.max(1, e.quantity - 1)
|
|
549
582
|
}),
|
|
550
583
|
className: "flex h-8 w-8 items-center justify-center rounded-full bg-bg-sunken text-text-primary",
|
|
551
|
-
children: /* @__PURE__ */
|
|
584
|
+
children: /* @__PURE__ */ D(y, { className: "h-4 w-4" })
|
|
552
585
|
}),
|
|
553
|
-
/* @__PURE__ */
|
|
586
|
+
/* @__PURE__ */ D("span", {
|
|
554
587
|
className: "min-w-[2ch] text-center font-medium text-text-primary",
|
|
555
|
-
children:
|
|
588
|
+
children: q.quantity
|
|
556
589
|
}),
|
|
557
|
-
/* @__PURE__ */
|
|
590
|
+
/* @__PURE__ */ D("button", {
|
|
558
591
|
type: "button",
|
|
559
|
-
onClick: () =>
|
|
592
|
+
onClick: () => J((e) => e && {
|
|
560
593
|
...e,
|
|
561
594
|
quantity: e.quantity + 1
|
|
562
595
|
}),
|
|
563
596
|
className: "flex h-8 w-8 items-center justify-center rounded-full bg-bg-sunken text-text-primary",
|
|
564
|
-
children: /* @__PURE__ */
|
|
597
|
+
children: /* @__PURE__ */ D(b, { className: "h-4 w-4" })
|
|
565
598
|
})
|
|
566
599
|
]
|
|
567
600
|
})]
|
|
568
601
|
}),
|
|
569
|
-
/* @__PURE__ */
|
|
602
|
+
/* @__PURE__ */ O("div", {
|
|
570
603
|
className: "mb-4",
|
|
571
|
-
children: [/* @__PURE__ */
|
|
604
|
+
children: [/* @__PURE__ */ D("label", {
|
|
572
605
|
className: "block text-sm font-medium text-text-primary mb-2",
|
|
573
606
|
children: "Special Instructions"
|
|
574
|
-
}), /* @__PURE__ */
|
|
575
|
-
value:
|
|
576
|
-
onChange: (e) =>
|
|
607
|
+
}), /* @__PURE__ */ D("textarea", {
|
|
608
|
+
value: q.specialInstructions,
|
|
609
|
+
onChange: (e) => J((t) => t && {
|
|
577
610
|
...t,
|
|
578
611
|
specialInstructions: e.target.value
|
|
579
612
|
}),
|
|
@@ -582,16 +615,16 @@ function A() {
|
|
|
582
615
|
rows: 3
|
|
583
616
|
})]
|
|
584
617
|
}),
|
|
585
|
-
/* @__PURE__ */
|
|
618
|
+
/* @__PURE__ */ O("button", {
|
|
586
619
|
type: "button",
|
|
587
620
|
onClick: () => {
|
|
588
|
-
|
|
621
|
+
q && (oe(q.product, q.quantity, q.specialInstructions), K(!1), J(null), alert(`${q.product.name} added to cart`));
|
|
589
622
|
},
|
|
590
623
|
className: "w-full rounded-lg bg-foreground py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
591
624
|
children: [
|
|
592
625
|
"Add to Cart -",
|
|
593
626
|
" ",
|
|
594
|
-
|
|
627
|
+
o(q.product.price * q.quantity, { minimumFractionDigits: 0 })
|
|
595
628
|
]
|
|
596
629
|
})
|
|
597
630
|
]
|
|
@@ -599,16 +632,16 @@ function A() {
|
|
|
599
632
|
})
|
|
600
633
|
})
|
|
601
634
|
]
|
|
602
|
-
}) : /* @__PURE__ */
|
|
635
|
+
}) : /* @__PURE__ */ D(n, {
|
|
603
636
|
title: "Cart Not Found",
|
|
604
|
-
children: /* @__PURE__ */
|
|
637
|
+
children: /* @__PURE__ */ D(r, {
|
|
605
638
|
illustration: "empty-generic",
|
|
606
|
-
icon: /* @__PURE__ */
|
|
639
|
+
icon: /* @__PURE__ */ D(S, { className: "h-12 w-12" }),
|
|
607
640
|
title: "Cart not found",
|
|
608
|
-
description: `No cart found with ID "${
|
|
609
|
-
action: /* @__PURE__ */
|
|
641
|
+
description: `No cart found with ID "${M}".`,
|
|
642
|
+
action: /* @__PURE__ */ D("button", {
|
|
610
643
|
type: "button",
|
|
611
|
-
onClick: () =>
|
|
644
|
+
onClick: () => N("/customer/carts"),
|
|
612
645
|
className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
613
646
|
children: "Browse Carts"
|
|
614
647
|
})
|
|
@@ -616,6 +649,6 @@ function A() {
|
|
|
616
649
|
});
|
|
617
650
|
}
|
|
618
651
|
//#endregion
|
|
619
|
-
export {
|
|
652
|
+
export { M as CartDetailPage };
|
|
620
653
|
|
|
621
654
|
//# sourceMappingURL=CartDetailPage.js.map
|