@burdenoff/microfe-subscriberbot 2026.624.1 → 2026.626.1
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/components/EmptyState.js +17 -10
- package/dist/subscriberbot/components/EmptyState.js.map +1 -1
- package/dist/subscriberbot/components/InvestmentCard.js +23 -22
- package/dist/subscriberbot/components/InvestmentCard.js.map +1 -1
- package/dist/subscriberbot/components/MetricsCard.js +15 -12
- package/dist/subscriberbot/components/MetricsCard.js.map +1 -1
- package/dist/subscriberbot/components/PageLayout.js +27 -15
- package/dist/subscriberbot/components/PageLayout.js.map +1 -1
- package/dist/subscriberbot/components/RatingDisplay.js +3 -3
- package/dist/subscriberbot/components/RatingDisplay.js.map +1 -1
- package/dist/subscriberbot/components/StatusBadge.js +25 -13
- package/dist/subscriberbot/components/StatusBadge.js.map +1 -1
- package/dist/subscriberbot/context/SubscriberBotContext.js.map +1 -1
- package/dist/subscriberbot/pages/HomePage.js +72 -63
- package/dist/subscriberbot/pages/HomePage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js +106 -100
- package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminDashboard.js +125 -85
- package/dist/subscriberbot/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminFinancialPage.js +51 -45
- package/dist/subscriberbot/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminOrdersPage.js +246 -241
- package/dist/subscriberbot/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminProfilePage.js +131 -129
- package/dist/subscriberbot/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/AdminSettingsPage.js +247 -242
- package/dist/subscriberbot/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/CartManagementPage.js +307 -302
- package/dist/subscriberbot/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/admin/UserManagementPage.js +308 -303
- package/dist/subscriberbot/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js +89 -84
- package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js +269 -264
- package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js +269 -227
- package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js +191 -186
- package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js +168 -166
- package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js +344 -347
- package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js +270 -272
- package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js +294 -289
- package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/HelpSupportPage.js +156 -158
- package/dist/subscriberbot/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/NotificationCenterPage.js +94 -87
- package/dist/subscriberbot/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/subscriberbot/pages/common/SettingsPage.js +749 -740
- package/dist/subscriberbot/pages/common/SettingsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/BookingDetailsPage.js +357 -324
- package/dist/subscriberbot/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CartDetailPage.js +281 -247
- package/dist/subscriberbot/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js +106 -98
- package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CheckoutPage.js +235 -238
- package/dist/subscriberbot/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/CustomerDashboard.js +426 -390
- 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 +522 -512
- package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/FavoritesPage.js +73 -66
- package/dist/subscriberbot/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/OrderHistoryPage.js +75 -67
- package/dist/subscriberbot/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/OrderTrackingPage.js +82 -76
- package/dist/subscriberbot/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js +100 -93
- package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/ReviewsPage.js +97 -90
- package/dist/subscriberbot/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/subscriberbot/pages/customer/SavedAddressesPage.js +86 -79
- package/dist/subscriberbot/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js +330 -293
- package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js +269 -261
- package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js +97 -91
- package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorDashboard.js +354 -322
- package/dist/subscriberbot/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js +118 -111
- package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js +75 -69
- package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/subscriberbot/pages/investor/InvestorProfilePage.js +435 -430
- package/dist/subscriberbot/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/TaskDetailsPage.js +328 -289
- package/dist/subscriberbot/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerDashboard.js +135 -103
- package/dist/subscriberbot/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js +120 -114
- package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerProfilePage.js +125 -120
- package/dist/subscriberbot/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js +354 -344
- package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -7,33 +7,34 @@ import { formatCurrency as o, formatDistance as s } from "../../utils/formatters
|
|
|
7
7
|
import { useMemo as c, useState as l } from "react";
|
|
8
8
|
import { AlertCircle as u, Calendar as d, CheckCircle2 as f, Clock as p, Home as m, Info as h, Loader2 as g, MapPin as _, Search as v, Star as y, Tag as b, TrendingUp as x, X as S } from "lucide-react";
|
|
9
9
|
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
10
|
+
import { EmphasisPanel as E, PagePurpose as ee } from "@burdenoff/fe-libs/ui";
|
|
10
11
|
//#region src/subscriberbot/pages/customer/CartDiscoveryPage.tsx
|
|
11
|
-
var
|
|
12
|
-
function
|
|
13
|
-
let { navigateTo:
|
|
12
|
+
var D = "All";
|
|
13
|
+
function O() {
|
|
14
|
+
let { navigateTo: O } = e(), [k, A] = l(""), [j, M] = l(D), [N, P] = l(""), [F, I] = l(""), [L, R] = l("rating"), [z, B] = l(9), [V, H] = l(!1), [U, W] = l(null), { data: G = [], isLoading: K, isError: q } = a(), { data: J = [] } = i(), Y = c(() => {
|
|
14
15
|
let e = /* @__PURE__ */ new Set();
|
|
15
|
-
return
|
|
16
|
+
return G.forEach((t) => {
|
|
16
17
|
t.category && e.add(t.category);
|
|
17
|
-
}), [
|
|
18
|
-
}, [
|
|
19
|
-
let e = [...
|
|
20
|
-
if (
|
|
21
|
-
let t =
|
|
18
|
+
}), [D, ...Array.from(e)];
|
|
19
|
+
}, [G]), X = c(() => {
|
|
20
|
+
let e = [...G];
|
|
21
|
+
if (k.trim()) {
|
|
22
|
+
let t = k.toLowerCase();
|
|
22
23
|
e = e.filter((e) => e.name.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
|
|
23
24
|
}
|
|
24
|
-
if (
|
|
25
|
-
let t = parseFloat(
|
|
25
|
+
if (j !== D && (e = e.filter((e) => e.category === j)), N) {
|
|
26
|
+
let t = parseFloat(N);
|
|
26
27
|
e = e.filter((e) => e.rating >= t);
|
|
27
28
|
}
|
|
28
|
-
switch (
|
|
29
|
+
switch (F && (e = e.filter((e) => {
|
|
29
30
|
let t = e.averageOrderValue ?? 0;
|
|
30
|
-
switch (
|
|
31
|
+
switch (F) {
|
|
31
32
|
case "low": return t <= 300;
|
|
32
33
|
case "medium": return t > 300 && t <= 800;
|
|
33
34
|
case "high": return t > 800;
|
|
34
35
|
default: return !0;
|
|
35
36
|
}
|
|
36
|
-
})),
|
|
37
|
+
})), L) {
|
|
37
38
|
case "rating":
|
|
38
39
|
e.sort((e, t) => t.rating - e.rating);
|
|
39
40
|
break;
|
|
@@ -49,23 +50,23 @@ function D() {
|
|
|
49
50
|
}
|
|
50
51
|
return e;
|
|
51
52
|
}, [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
]),
|
|
59
|
-
|
|
53
|
+
G,
|
|
54
|
+
k,
|
|
55
|
+
j,
|
|
56
|
+
N,
|
|
57
|
+
F,
|
|
58
|
+
L
|
|
59
|
+
]), Z = X.slice(0, z), Q = z < X.length, te = j !== D || N !== "" || F !== "" || k.trim() !== "", $ = () => {
|
|
60
|
+
A(""), M(D), P(""), I(""), R("rating"), B(9);
|
|
60
61
|
};
|
|
61
|
-
return
|
|
62
|
+
return K ? /* @__PURE__ */ w(n, {
|
|
62
63
|
title: "Discover Carts",
|
|
63
64
|
description: "Finding services and shops near you...",
|
|
64
65
|
children: /* @__PURE__ */ w("div", {
|
|
65
66
|
className: "flex h-[60vh] items-center justify-center",
|
|
66
67
|
children: /* @__PURE__ */ w(g, { className: "h-8 w-8 animate-spin text-primary" })
|
|
67
68
|
})
|
|
68
|
-
}) :
|
|
69
|
+
}) : q ? /* @__PURE__ */ w(n, {
|
|
69
70
|
title: "Discover Carts",
|
|
70
71
|
description: "Error loading carts",
|
|
71
72
|
children: /* @__PURE__ */ T("div", {
|
|
@@ -87,36 +88,42 @@ function D() {
|
|
|
87
88
|
}) : /* @__PURE__ */ T(n, {
|
|
88
89
|
title: "Discover Carts",
|
|
89
90
|
description: "Find services and shops near you",
|
|
91
|
+
titleGradient: !0,
|
|
90
92
|
actions: /* @__PURE__ */ T("span", {
|
|
91
93
|
className: "text-sm text-text-secondary",
|
|
92
|
-
children: [
|
|
94
|
+
children: [X.length, " carts found"]
|
|
93
95
|
}),
|
|
94
96
|
children: [
|
|
95
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ w(ee, {
|
|
98
|
+
icon: /* @__PURE__ */ w(v, { className: "h-4 w-4" }),
|
|
99
|
+
className: "mb-6",
|
|
100
|
+
children: "Find local carts and service providers near you. Search by name or what you need, filter by category, and compare carts by rating, distance and price before you order. This is your starting point whenever you're after food, a quick repair, a haircut or anything else on the marketplace."
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ w(E, { children: /* @__PURE__ */ T("div", {
|
|
96
103
|
className: "relative",
|
|
97
104
|
children: [
|
|
98
105
|
/* @__PURE__ */ w(v, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }),
|
|
99
106
|
/* @__PURE__ */ w("input", {
|
|
100
107
|
type: "text",
|
|
101
108
|
placeholder: "Search carts, services, or items...",
|
|
102
|
-
value:
|
|
103
|
-
onChange: (e) =>
|
|
104
|
-
className: t("w-full rounded-lg border border-border-
|
|
109
|
+
value: k,
|
|
110
|
+
onChange: (e) => A(e.target.value),
|
|
111
|
+
className: t("w-full rounded-lg border border-border-seam bg-bg-surface py-2.5 pl-10 pr-10 text-sm text-text-primary", "placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]")
|
|
105
112
|
}),
|
|
106
|
-
|
|
113
|
+
k && /* @__PURE__ */ w("button", {
|
|
107
114
|
type: "button",
|
|
108
|
-
onClick: () =>
|
|
115
|
+
onClick: () => A(""),
|
|
109
116
|
className: "absolute right-3 top-1/2 -translate-y-1/2 text-text-secondary hover:text-text-primary",
|
|
110
117
|
children: /* @__PURE__ */ w(S, { className: "h-4 w-4" })
|
|
111
118
|
})
|
|
112
119
|
]
|
|
113
|
-
}),
|
|
120
|
+
}) }),
|
|
114
121
|
/* @__PURE__ */ w("div", {
|
|
115
122
|
className: "mt-4 flex flex-wrap gap-2",
|
|
116
|
-
children:
|
|
123
|
+
children: Y.map((e) => /* @__PURE__ */ w("button", {
|
|
117
124
|
type: "button",
|
|
118
|
-
onClick: () =>
|
|
119
|
-
className: t("rounded-full px-3 py-1.5 text-xs font-medium transition-colors",
|
|
125
|
+
onClick: () => M(e),
|
|
126
|
+
className: t("rounded-full px-3 py-1.5 text-xs font-medium transition-colors", j === e ? "bg-foreground text-background" : "bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary"),
|
|
120
127
|
children: e
|
|
121
128
|
}, e))
|
|
122
129
|
}),
|
|
@@ -124,9 +131,9 @@ function D() {
|
|
|
124
131
|
className: "mt-4 flex flex-wrap items-center gap-3",
|
|
125
132
|
children: [
|
|
126
133
|
/* @__PURE__ */ T("select", {
|
|
127
|
-
value:
|
|
128
|
-
onChange: (e) =>
|
|
129
|
-
className: "rounded-lg border border-border-
|
|
134
|
+
value: N,
|
|
135
|
+
onChange: (e) => P(e.target.value),
|
|
136
|
+
className: "rounded-lg border border-border-seam bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
130
137
|
children: [
|
|
131
138
|
/* @__PURE__ */ w("option", {
|
|
132
139
|
value: "",
|
|
@@ -147,9 +154,9 @@ function D() {
|
|
|
147
154
|
]
|
|
148
155
|
}),
|
|
149
156
|
/* @__PURE__ */ T("select", {
|
|
150
|
-
value:
|
|
151
|
-
onChange: (e) =>
|
|
152
|
-
className: "rounded-lg border border-border-
|
|
157
|
+
value: F,
|
|
158
|
+
onChange: (e) => I(e.target.value),
|
|
159
|
+
className: "rounded-lg border border-border-seam bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
153
160
|
children: [
|
|
154
161
|
/* @__PURE__ */ w("option", {
|
|
155
162
|
value: "",
|
|
@@ -170,9 +177,9 @@ function D() {
|
|
|
170
177
|
]
|
|
171
178
|
}),
|
|
172
179
|
/* @__PURE__ */ T("select", {
|
|
173
|
-
value:
|
|
174
|
-
onChange: (e) =>
|
|
175
|
-
className: "rounded-lg border border-border-
|
|
180
|
+
value: L,
|
|
181
|
+
onChange: (e) => R(e.target.value),
|
|
182
|
+
className: "rounded-lg border border-border-seam bg-bg-surface px-3 py-2 text-xs text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
176
183
|
children: [
|
|
177
184
|
/* @__PURE__ */ w("option", {
|
|
178
185
|
value: "rating",
|
|
@@ -192,20 +199,20 @@ function D() {
|
|
|
192
199
|
})
|
|
193
200
|
]
|
|
194
201
|
}),
|
|
195
|
-
|
|
202
|
+
te && /* @__PURE__ */ w("button", {
|
|
196
203
|
type: "button",
|
|
197
204
|
onClick: $,
|
|
198
|
-
className: "rounded-lg border border-border-
|
|
205
|
+
className: "rounded-lg border border-border-seam px-3 py-2 text-xs font-medium text-text-secondary hover:text-text-primary transition-colors",
|
|
199
206
|
children: "Clear All Filters"
|
|
200
207
|
})
|
|
201
208
|
]
|
|
202
209
|
}),
|
|
203
|
-
|
|
210
|
+
Z.length > 0 ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("div", {
|
|
204
211
|
className: "mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
205
|
-
children:
|
|
206
|
-
let n =
|
|
212
|
+
children: Z.map((e) => {
|
|
213
|
+
let n = J.find((t) => t.cartId === e.id);
|
|
207
214
|
return /* @__PURE__ */ T("div", {
|
|
208
|
-
className: "rounded-lg border border-border-
|
|
215
|
+
className: "rounded-lg border border-border-seam bg-bg-surface shadow-sm overflow-hidden hover:shadow-md transition-shadow flex flex-col",
|
|
209
216
|
children: [/* @__PURE__ */ T("div", {
|
|
210
217
|
className: "relative h-40 bg-bg-sunken",
|
|
211
218
|
children: [
|
|
@@ -217,17 +224,17 @@ function D() {
|
|
|
217
224
|
/* @__PURE__ */ T("div", {
|
|
218
225
|
className: "absolute top-2 left-2 flex gap-1.5",
|
|
219
226
|
children: [/* @__PURE__ */ w("span", {
|
|
220
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium backdrop-blur-sm", e.isOpen ? "bg-
|
|
227
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium backdrop-blur-sm", e.isOpen ? "bg-status-success-bg/20 text-status-success-text" : "bg-status-error-bg/20 text-status-error-text"),
|
|
221
228
|
children: e.isOpen ? "Open" : "Closed"
|
|
222
229
|
}), e.isVerified && /* @__PURE__ */ T("span", {
|
|
223
|
-
className: "inline-flex items-center gap-0.5 rounded-full bg-
|
|
230
|
+
className: "inline-flex items-center gap-0.5 rounded-full bg-status-info-bg/20 px-2 py-0.5 text-xs font-medium text-status-info-text backdrop-blur-sm",
|
|
224
231
|
children: [/* @__PURE__ */ w(f, { className: "h-3 w-3" }), "Verified"]
|
|
225
232
|
})]
|
|
226
233
|
}),
|
|
227
234
|
/* @__PURE__ */ w("div", {
|
|
228
235
|
className: "absolute top-2 right-2",
|
|
229
236
|
children: /* @__PURE__ */ T("span", {
|
|
230
|
-
className: "rounded-full bg-
|
|
237
|
+
className: "rounded-full bg-bg-canvas/50 px-2 py-0.5 text-xs text-text-inverse backdrop-blur-sm",
|
|
231
238
|
children: [e.estimatedTime, " min"]
|
|
232
239
|
})
|
|
233
240
|
})
|
|
@@ -243,7 +250,7 @@ function D() {
|
|
|
243
250
|
}), /* @__PURE__ */ T("div", {
|
|
244
251
|
className: "flex items-center gap-1 shrink-0",
|
|
245
252
|
children: [
|
|
246
|
-
/* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-
|
|
253
|
+
/* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
|
|
247
254
|
/* @__PURE__ */ w("span", {
|
|
248
255
|
className: "text-xs font-medium text-text-primary",
|
|
249
256
|
children: e.rating
|
|
@@ -278,9 +285,9 @@ function D() {
|
|
|
278
285
|
})]
|
|
279
286
|
}),
|
|
280
287
|
e.serviceTypes?.includes("appointment") && /* @__PURE__ */ w("div", {
|
|
281
|
-
className: "mb-3 rounded-md bg-
|
|
288
|
+
className: "mb-3 rounded-md bg-status-info-bg/10 border border-status-info-border/20 p-2",
|
|
282
289
|
children: /* @__PURE__ */ T("div", {
|
|
283
|
-
className: "flex items-center gap-1 text-xs text-
|
|
290
|
+
className: "flex items-center gap-1 text-xs text-status-info-text",
|
|
284
291
|
children: [/* @__PURE__ */ w(d, { className: "h-3 w-3" }), /* @__PURE__ */ w("span", {
|
|
285
292
|
className: "font-medium",
|
|
286
293
|
children: "Appointment available"
|
|
@@ -288,9 +295,9 @@ function D() {
|
|
|
288
295
|
})
|
|
289
296
|
}),
|
|
290
297
|
e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ w("div", {
|
|
291
|
-
className: "mb-3 rounded-md bg-purple-
|
|
298
|
+
className: "mb-3 rounded-md bg-accent-purple-subtle border border-accent-purple/20 p-2",
|
|
292
299
|
children: /* @__PURE__ */ T("div", {
|
|
293
|
-
className: "flex items-center gap-1 text-xs text-
|
|
300
|
+
className: "flex items-center gap-1 text-xs text-accent-purple",
|
|
294
301
|
children: [/* @__PURE__ */ w(m, { className: "h-3 w-3" }), /* @__PURE__ */ w("span", {
|
|
295
302
|
className: "font-medium",
|
|
296
303
|
children: "Direct Service Available"
|
|
@@ -309,31 +316,31 @@ function D() {
|
|
|
309
316
|
children: [
|
|
310
317
|
/* @__PURE__ */ w("button", {
|
|
311
318
|
type: "button",
|
|
312
|
-
onClick: () =>
|
|
319
|
+
onClick: () => O(`/customer/cart/${e.id}`),
|
|
313
320
|
disabled: !e.isOpen,
|
|
314
321
|
className: t("flex-1 rounded-lg py-2 text-xs font-medium transition-opacity", e.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
|
|
315
322
|
children: e.isOpen ? "View Services" : "Closed"
|
|
316
323
|
}),
|
|
317
324
|
e.serviceTypes?.includes("direct_service") && /* @__PURE__ */ w("button", {
|
|
318
325
|
type: "button",
|
|
319
|
-
onClick: () =>
|
|
320
|
-
className: "rounded-lg border border-border-
|
|
326
|
+
onClick: () => O(`/customer/cart/${e.id}`),
|
|
327
|
+
className: "rounded-lg border border-border-seam px-2 py-2 text-xs text-text-primary hover:bg-accent transition-colors",
|
|
321
328
|
title: "Book Direct Service",
|
|
322
329
|
children: /* @__PURE__ */ w(m, { className: "h-3.5 w-3.5" })
|
|
323
330
|
}),
|
|
324
331
|
n && /* @__PURE__ */ w("button", {
|
|
325
332
|
type: "button",
|
|
326
333
|
onClick: () => alert("Investment opportunity available! View in Investor section."),
|
|
327
|
-
className: "rounded-lg border border-
|
|
334
|
+
className: "rounded-lg border border-status-success-border/30 bg-status-success-bg/10 px-2 py-2 text-xs text-status-success-text hover:bg-status-success-bg/20 transition-colors",
|
|
328
335
|
title: "Investment Opportunity",
|
|
329
336
|
children: /* @__PURE__ */ w(x, { className: "h-3.5 w-3.5" })
|
|
330
337
|
}),
|
|
331
338
|
/* @__PURE__ */ w("button", {
|
|
332
339
|
type: "button",
|
|
333
340
|
onClick: () => {
|
|
334
|
-
|
|
341
|
+
W(e), H(!0);
|
|
335
342
|
},
|
|
336
|
-
className: "rounded-lg border border-border-
|
|
343
|
+
className: "rounded-lg border border-border-seam px-2 py-2 text-xs text-text-primary hover:bg-accent transition-colors",
|
|
337
344
|
title: "Cart Info",
|
|
338
345
|
children: /* @__PURE__ */ w(h, { className: "h-3.5 w-3.5" })
|
|
339
346
|
})
|
|
@@ -343,20 +350,21 @@ function D() {
|
|
|
343
350
|
})]
|
|
344
351
|
}, e.id);
|
|
345
352
|
})
|
|
346
|
-
}),
|
|
353
|
+
}), Q && /* @__PURE__ */ w("div", {
|
|
347
354
|
className: "mt-8 text-center",
|
|
348
355
|
children: /* @__PURE__ */ w("button", {
|
|
349
356
|
type: "button",
|
|
350
|
-
onClick: () =>
|
|
351
|
-
className: "rounded-lg border border-border-
|
|
357
|
+
onClick: () => B((e) => e + 9),
|
|
358
|
+
className: "rounded-lg border border-border-seam px-6 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
352
359
|
children: "Load More Carts"
|
|
353
360
|
})
|
|
354
361
|
})] }) : /* @__PURE__ */ w("div", {
|
|
355
362
|
className: "mt-6",
|
|
356
363
|
children: /* @__PURE__ */ w(r, {
|
|
364
|
+
illustration: "empty-search",
|
|
357
365
|
icon: /* @__PURE__ */ w(v, { className: "h-12 w-12" }),
|
|
358
366
|
title: "No carts found",
|
|
359
|
-
description:
|
|
367
|
+
description: k ? `No results for "${k}". Try a different search term.` : "No carts available with these filters.",
|
|
360
368
|
action: /* @__PURE__ */ w("button", {
|
|
361
369
|
type: "button",
|
|
362
370
|
onClick: $,
|
|
@@ -365,10 +373,10 @@ function D() {
|
|
|
365
373
|
})
|
|
366
374
|
})
|
|
367
375
|
}),
|
|
368
|
-
|
|
369
|
-
className: "fixed inset-0 z-50 flex items-center justify-center bg-
|
|
376
|
+
V && U && /* @__PURE__ */ w("div", {
|
|
377
|
+
className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-canvas/50 p-4",
|
|
370
378
|
children: /* @__PURE__ */ w("div", {
|
|
371
|
-
className: "w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-lg border border-border-
|
|
379
|
+
className: "w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-lg border border-border-seam bg-bg-surface",
|
|
372
380
|
children: /* @__PURE__ */ T("div", {
|
|
373
381
|
className: "p-5",
|
|
374
382
|
children: [
|
|
@@ -379,7 +387,7 @@ function D() {
|
|
|
379
387
|
children: "Cart Information"
|
|
380
388
|
}), /* @__PURE__ */ w("button", {
|
|
381
389
|
type: "button",
|
|
382
|
-
onClick: () =>
|
|
390
|
+
onClick: () => H(!1),
|
|
383
391
|
className: "rounded-md p-1 text-text-secondary hover:text-text-primary transition-colors",
|
|
384
392
|
children: /* @__PURE__ */ w(S, { className: "h-5 w-5" })
|
|
385
393
|
})]
|
|
@@ -387,37 +395,37 @@ function D() {
|
|
|
387
395
|
/* @__PURE__ */ w("div", {
|
|
388
396
|
className: "h-48 rounded-lg overflow-hidden mb-4",
|
|
389
397
|
children: /* @__PURE__ */ w("img", {
|
|
390
|
-
src:
|
|
391
|
-
alt:
|
|
398
|
+
src: U.image,
|
|
399
|
+
alt: U.name,
|
|
392
400
|
className: "h-full w-full object-cover"
|
|
393
401
|
})
|
|
394
402
|
}),
|
|
395
403
|
/* @__PURE__ */ w("h4", {
|
|
396
404
|
className: "text-xl font-semibold text-text-primary mb-1",
|
|
397
|
-
children:
|
|
405
|
+
children: U.name
|
|
398
406
|
}),
|
|
399
407
|
/* @__PURE__ */ T("div", {
|
|
400
408
|
className: "flex flex-wrap items-center gap-3 mb-4",
|
|
401
409
|
children: [/* @__PURE__ */ T("div", {
|
|
402
410
|
className: "flex items-center gap-1",
|
|
403
411
|
children: [
|
|
404
|
-
/* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-
|
|
412
|
+
/* @__PURE__ */ w(y, { className: "h-3.5 w-3.5 fill-status-warning-text text-status-warning-text" }),
|
|
405
413
|
/* @__PURE__ */ w("span", {
|
|
406
414
|
className: "text-sm font-medium",
|
|
407
|
-
children:
|
|
415
|
+
children: U.rating
|
|
408
416
|
}),
|
|
409
417
|
/* @__PURE__ */ T("span", {
|
|
410
418
|
className: "text-xs text-text-secondary",
|
|
411
419
|
children: [
|
|
412
420
|
"(",
|
|
413
|
-
|
|
421
|
+
U.totalRatings,
|
|
414
422
|
" reviews)"
|
|
415
423
|
]
|
|
416
424
|
})
|
|
417
425
|
]
|
|
418
426
|
}), /* @__PURE__ */ w("span", {
|
|
419
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium",
|
|
420
|
-
children:
|
|
427
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", U.isOpen ? "bg-status-success-bg/20 text-status-success-text" : "bg-status-error-bg/20 text-status-error-text"),
|
|
428
|
+
children: U.isOpen ? "Open" : "Closed"
|
|
421
429
|
})]
|
|
422
430
|
}),
|
|
423
431
|
/* @__PURE__ */ T("div", {
|
|
@@ -430,7 +438,7 @@ function D() {
|
|
|
430
438
|
children: [/* @__PURE__ */ w(_, { className: "h-3 w-3" }), " Location"]
|
|
431
439
|
}), /* @__PURE__ */ w("p", {
|
|
432
440
|
className: "mt-1 text-sm text-text-primary",
|
|
433
|
-
children:
|
|
441
|
+
children: U.location.address
|
|
434
442
|
})]
|
|
435
443
|
}),
|
|
436
444
|
/* @__PURE__ */ T("div", {
|
|
@@ -440,17 +448,17 @@ function D() {
|
|
|
440
448
|
children: [/* @__PURE__ */ w(b, { className: "h-3 w-3" }), " Category"]
|
|
441
449
|
}), /* @__PURE__ */ w("p", {
|
|
442
450
|
className: "mt-1 text-sm text-text-primary",
|
|
443
|
-
children:
|
|
451
|
+
children: U.category
|
|
444
452
|
})]
|
|
445
453
|
}),
|
|
446
|
-
|
|
454
|
+
U.averageOrderValue && /* @__PURE__ */ T("div", {
|
|
447
455
|
className: "rounded-md bg-bg-sunken p-3",
|
|
448
456
|
children: [/* @__PURE__ */ w("p", {
|
|
449
457
|
className: "text-xs font-medium text-text-secondary",
|
|
450
458
|
children: "Average Order"
|
|
451
459
|
}), /* @__PURE__ */ w("p", {
|
|
452
460
|
className: "mt-1 text-sm text-text-primary",
|
|
453
|
-
children: o(
|
|
461
|
+
children: o(U.averageOrderValue, { minimumFractionDigits: 0 })
|
|
454
462
|
})]
|
|
455
463
|
}),
|
|
456
464
|
/* @__PURE__ */ T("div", {
|
|
@@ -460,7 +468,7 @@ function D() {
|
|
|
460
468
|
children: [/* @__PURE__ */ w(p, { className: "h-3 w-3" }), " Estimated Time"]
|
|
461
469
|
}), /* @__PURE__ */ T("p", {
|
|
462
470
|
className: "mt-1 text-sm text-text-primary",
|
|
463
|
-
children: [
|
|
471
|
+
children: [U.estimatedTime, " minutes"]
|
|
464
472
|
})]
|
|
465
473
|
}),
|
|
466
474
|
/* @__PURE__ */ T("div", {
|
|
@@ -470,10 +478,10 @@ function D() {
|
|
|
470
478
|
children: "Distance"
|
|
471
479
|
}), /* @__PURE__ */ w("p", {
|
|
472
480
|
className: "mt-1 text-sm text-text-primary",
|
|
473
|
-
children: s(
|
|
481
|
+
children: s(U.distance)
|
|
474
482
|
})]
|
|
475
483
|
}),
|
|
476
|
-
|
|
484
|
+
U.isVerified && /* @__PURE__ */ T("div", {
|
|
477
485
|
className: "rounded-md bg-bg-sunken p-3",
|
|
478
486
|
children: [/* @__PURE__ */ T("p", {
|
|
479
487
|
className: "text-xs font-medium text-text-secondary flex items-center gap-1",
|
|
@@ -485,27 +493,27 @@ function D() {
|
|
|
485
493
|
})
|
|
486
494
|
]
|
|
487
495
|
}),
|
|
488
|
-
|
|
496
|
+
U.serviceTypes && U.serviceTypes.length > 0 && /* @__PURE__ */ T("div", {
|
|
489
497
|
className: "mb-4",
|
|
490
498
|
children: [/* @__PURE__ */ w("p", {
|
|
491
499
|
className: "text-xs font-medium text-text-secondary mb-2",
|
|
492
500
|
children: "Service Types"
|
|
493
501
|
}), /* @__PURE__ */ w("div", {
|
|
494
502
|
className: "flex flex-wrap gap-2",
|
|
495
|
-
children:
|
|
503
|
+
children: U.serviceTypes.map((e) => /* @__PURE__ */ w("span", {
|
|
496
504
|
className: "rounded-full bg-bg-sunken px-2.5 py-1 text-xs text-text-secondary capitalize",
|
|
497
505
|
children: e.replace(/_/g, " ")
|
|
498
506
|
}, e))
|
|
499
507
|
})]
|
|
500
508
|
}),
|
|
501
|
-
|
|
509
|
+
U.businessHours && Object.keys(U.businessHours).length > 0 && /* @__PURE__ */ T("div", {
|
|
502
510
|
className: "mb-4",
|
|
503
511
|
children: [/* @__PURE__ */ w("p", {
|
|
504
512
|
className: "text-xs font-medium text-text-secondary mb-2",
|
|
505
513
|
children: "Operating Hours"
|
|
506
514
|
}), /* @__PURE__ */ w("div", {
|
|
507
515
|
className: "space-y-1",
|
|
508
|
-
children: Object.entries(
|
|
516
|
+
children: Object.entries(U.businessHours).map(([e, t]) => /* @__PURE__ */ T("div", {
|
|
509
517
|
className: "flex justify-between text-xs",
|
|
510
518
|
children: [/* @__PURE__ */ w("span", {
|
|
511
519
|
className: "capitalize text-text-primary",
|
|
@@ -522,15 +530,15 @@ function D() {
|
|
|
522
530
|
children: [/* @__PURE__ */ w("button", {
|
|
523
531
|
type: "button",
|
|
524
532
|
onClick: () => {
|
|
525
|
-
|
|
533
|
+
H(!1), O(`/customer/carts/${U.id}`);
|
|
526
534
|
},
|
|
527
|
-
disabled: !
|
|
528
|
-
className: t("flex-1 rounded-lg py-2.5 text-sm font-medium transition-opacity",
|
|
529
|
-
children:
|
|
535
|
+
disabled: !U.isOpen,
|
|
536
|
+
className: t("flex-1 rounded-lg py-2.5 text-sm font-medium transition-opacity", U.isOpen ? "bg-foreground text-background hover:opacity-90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
|
|
537
|
+
children: U.isOpen ? "View Menu" : "Currently Closed"
|
|
530
538
|
}), /* @__PURE__ */ w("button", {
|
|
531
539
|
type: "button",
|
|
532
|
-
onClick: () =>
|
|
533
|
-
className: "rounded-lg border border-border-
|
|
540
|
+
onClick: () => H(!1),
|
|
541
|
+
className: "rounded-lg border border-border-seam px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
|
|
534
542
|
children: "Close"
|
|
535
543
|
})]
|
|
536
544
|
})
|
|
@@ -542,6 +550,6 @@ function D() {
|
|
|
542
550
|
});
|
|
543
551
|
}
|
|
544
552
|
//#endregion
|
|
545
|
-
export {
|
|
553
|
+
export { O as CartDiscoveryPage };
|
|
546
554
|
|
|
547
555
|
//# sourceMappingURL=CartDiscoveryPage.js.map
|