@burdenoff/microfe-adaptercloud 2026.624.1 → 2026.625.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adaptercloud/components/EmptyState.js +17 -21
- package/dist/adaptercloud/components/EmptyState.js.map +1 -1
- package/dist/adaptercloud/components/InvestmentCard.js +25 -23
- package/dist/adaptercloud/components/InvestmentCard.js.map +1 -1
- package/dist/adaptercloud/components/MetricsCard.js +18 -12
- package/dist/adaptercloud/components/MetricsCard.js.map +1 -1
- package/dist/adaptercloud/components/PageLayout.js +45 -19
- package/dist/adaptercloud/components/PageLayout.js.map +1 -1
- package/dist/adaptercloud/components/RatingDisplay.js +3 -3
- package/dist/adaptercloud/components/RatingDisplay.js.map +1 -1
- package/dist/adaptercloud/components/StatusBadge.js +36 -16
- package/dist/adaptercloud/components/StatusBadge.js.map +1 -1
- package/dist/adaptercloud/pages/HomePage.js +244 -231
- package/dist/adaptercloud/pages/HomePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +121 -113
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminDashboard.js +102 -76
- package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +70 -65
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +108 -103
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js +61 -59
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +119 -105
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/CartManagementPage.js +165 -160
- package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/UserManagementPage.js +174 -169
- package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +103 -97
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +186 -172
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +109 -81
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +111 -109
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +127 -124
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +310 -316
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +251 -257
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +142 -148
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/HelpSupportPage.js +287 -283
- package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js +120 -114
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/SettingsPage.js +754 -736
- package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +83 -80
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDetailPage.js +120 -117
- package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +231 -226
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CheckoutPage.js +97 -95
- package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js +418 -389
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +134 -132
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +108 -102
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/FavoritesPage.js +62 -59
- package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +117 -111
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +71 -68
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +97 -81
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/ReviewsPage.js +83 -80
- package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +82 -66
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +93 -91
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +100 -97
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +83 -81
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js +344 -311
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +43 -40
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +59 -57
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +394 -392
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +354 -324
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js +122 -97
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +107 -104
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +109 -107
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +94 -90
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -8,19 +8,20 @@ import { useMemo as o, useState as s } from "react";
|
|
|
8
8
|
import { AlertCircle as c, ArrowLeft as l, ArrowRight as u, Calendar as d, CheckCircle2 as f, Clock as p, CreditCard as m, Home as h, Loader2 as g, MapPin as _, Navigation as v, Phone as y, Smartphone as b, Wallet as x } from "lucide-react";
|
|
9
9
|
import { useParams as S } from "react-router-dom";
|
|
10
10
|
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
11
|
+
import { EmphasisPanel as E } from "@burdenoff/fe-libs/ui";
|
|
11
12
|
//#region src/adaptercloud/pages/customer/DirectServiceBookingPage.tsx
|
|
12
|
-
var
|
|
13
|
+
var D = [
|
|
13
14
|
"location",
|
|
14
15
|
"details",
|
|
15
16
|
"payment",
|
|
16
17
|
"confirmation"
|
|
17
|
-
],
|
|
18
|
+
], O = {
|
|
18
19
|
location: "Location",
|
|
19
20
|
details: "Details",
|
|
20
21
|
payment: "Payment",
|
|
21
22
|
confirmation: "Confirmation"
|
|
22
23
|
};
|
|
23
|
-
function
|
|
24
|
+
function k() {
|
|
24
25
|
let e = [], t = new Date((/* @__PURE__ */ new Date()).getTime() + 30 * 6e4);
|
|
25
26
|
for (let n = 0; n < 8; n++) {
|
|
26
27
|
let r = new Date(t.getTime() + n * 30 * 6e4), i = r.toTimeString().slice(0, 5), a = r.toLocaleTimeString([], {
|
|
@@ -34,55 +35,56 @@ function O() {
|
|
|
34
35
|
}
|
|
35
36
|
return e;
|
|
36
37
|
}
|
|
37
|
-
function
|
|
38
|
-
let { cartId:
|
|
38
|
+
function A() {
|
|
39
|
+
let { cartId: A } = S(), { navigateTo: j } = e(), M = o(() => A ? a(A) : void 0, [A]), [N, P] = s("location"), [F, I] = s(!1), [L, R] = s({
|
|
39
40
|
address: "",
|
|
40
41
|
landmark: "",
|
|
41
42
|
instructions: "",
|
|
42
43
|
phoneNumber: ""
|
|
43
|
-
}), [
|
|
44
|
+
}), [z, B] = s({
|
|
44
45
|
preferredTime: "",
|
|
45
46
|
specialInstructions: "",
|
|
46
47
|
isUrgent: !1
|
|
47
|
-
}), [
|
|
48
|
-
if (!
|
|
48
|
+
}), [V, H] = s("upi"), [U, W] = s(null);
|
|
49
|
+
if (!M) return /* @__PURE__ */ w(n, {
|
|
49
50
|
title: "Cart Not Found",
|
|
50
51
|
children: /* @__PURE__ */ w(r, {
|
|
52
|
+
illustration: "empty-search",
|
|
51
53
|
icon: /* @__PURE__ */ w(h, { className: "h-12 w-12" }),
|
|
52
54
|
title: "Service not available",
|
|
53
55
|
description: "Direct service is not available for this cart.",
|
|
54
56
|
action: /* @__PURE__ */ w("button", {
|
|
55
57
|
type: "button",
|
|
56
|
-
onClick: () =>
|
|
58
|
+
onClick: () => j("/customer/carts"),
|
|
57
59
|
className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
58
60
|
children: "Browse Carts"
|
|
59
61
|
})
|
|
60
62
|
})
|
|
61
63
|
});
|
|
62
|
-
let
|
|
64
|
+
let G = k(), K = D.indexOf(N), q = () => {
|
|
63
65
|
if (!navigator.geolocation) {
|
|
64
66
|
alert("Geolocation is not supported by this browser.");
|
|
65
67
|
return;
|
|
66
68
|
}
|
|
67
69
|
navigator.geolocation.getCurrentPosition(() => {
|
|
68
|
-
|
|
70
|
+
R((e) => ({
|
|
69
71
|
...e,
|
|
70
72
|
address: e.address || "Current location detected"
|
|
71
73
|
})), alert("Location detected successfully!");
|
|
72
74
|
}, () => {
|
|
73
75
|
alert("Failed to get your location. Please enter address manually.");
|
|
74
76
|
});
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
}, X = () => {
|
|
78
|
-
M === "details" ? N("location") : M === "payment" && N("details");
|
|
77
|
+
}, J = () => L.address.trim() ? L.phoneNumber.trim() ? !0 : (alert("Please enter your phone number."), !1) : (alert("Please enter your address."), !1), Y = () => z.preferredTime ? !0 : (alert("Please select a preferred time slot."), !1), X = () => {
|
|
78
|
+
N === "location" && J() ? P("details") : N === "details" && Y() ? P("payment") : N === "payment" && Q();
|
|
79
79
|
}, Z = () => {
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
N === "details" ? P("location") : N === "payment" && P("details");
|
|
81
|
+
}, Q = () => {
|
|
82
|
+
I(!0), setTimeout(() => {
|
|
83
|
+
W({
|
|
82
84
|
bookingId: `BK-${Date.now()}`,
|
|
83
85
|
transactionId: `TXN-${Date.now()}`,
|
|
84
86
|
estimatedArrival: new Date(Date.now() + 30 * 6e4).toISOString()
|
|
85
|
-
}),
|
|
87
|
+
}), P("confirmation"), I(!1);
|
|
86
88
|
}, 1500);
|
|
87
89
|
};
|
|
88
90
|
return /* @__PURE__ */ T(n, {
|
|
@@ -90,39 +92,43 @@ function k() {
|
|
|
90
92
|
className: "flex items-center gap-3",
|
|
91
93
|
children: [/* @__PURE__ */ w("button", {
|
|
92
94
|
type: "button",
|
|
93
|
-
onClick: () =>
|
|
95
|
+
onClick: () => j(`/customer/carts/${M.id}`),
|
|
94
96
|
className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
|
|
95
97
|
children: /* @__PURE__ */ w(l, { className: "h-5 w-5" })
|
|
96
98
|
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("span", { children: "Book Direct Service" }), /* @__PURE__ */ w("p", {
|
|
97
99
|
className: "text-xs font-normal text-text-secondary",
|
|
98
|
-
children:
|
|
100
|
+
children: M.name
|
|
99
101
|
})] })]
|
|
100
102
|
}),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
103
|
+
purpose: "Book a service from this cart in a few guided steps — pick the service, choose a date and time, add any details, and confirm. Follow the steps top to bottom and you'll have a confirmed booking at the end.",
|
|
104
|
+
children: [/* @__PURE__ */ w(E, {
|
|
105
|
+
className: "mb-6",
|
|
106
|
+
children: /* @__PURE__ */ w("div", {
|
|
107
|
+
className: "flex items-center justify-between px-2",
|
|
108
|
+
children: D.map((e, n) => {
|
|
109
|
+
let r = n < K, i = e === N;
|
|
110
|
+
return /* @__PURE__ */ T("div", {
|
|
111
|
+
className: "flex items-center",
|
|
112
|
+
children: [/* @__PURE__ */ T("div", {
|
|
113
|
+
className: "flex flex-col items-center",
|
|
114
|
+
children: [/* @__PURE__ */ w("div", {
|
|
115
|
+
className: t("flex h-8 w-8 items-center justify-center rounded-full text-xs font-medium", r ? "bg-status-success-bg-subtle/20 text-status-success-text" : i ? "bg-foreground text-background" : "bg-bg-sunken text-text-secondary"),
|
|
116
|
+
children: r ? /* @__PURE__ */ w(f, { className: "h-4 w-4" }) : n + 1
|
|
117
|
+
}), /* @__PURE__ */ w("span", {
|
|
118
|
+
className: t("mt-1 text-[10px]", i ? "font-medium text-text-primary" : "text-text-secondary"),
|
|
119
|
+
children: O[e]
|
|
120
|
+
})]
|
|
121
|
+
}), n < D.length - 1 && /* @__PURE__ */ w("div", { className: t("mx-2 h-0.5 w-8 sm:w-16", r ? "bg-status-success-bg-subtle/30" : "bg-border") })]
|
|
122
|
+
}, e);
|
|
123
|
+
})
|
|
118
124
|
})
|
|
119
125
|
}), /* @__PURE__ */ T("div", {
|
|
120
126
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
121
127
|
children: [/* @__PURE__ */ T("div", {
|
|
122
128
|
className: "lg:col-span-2",
|
|
123
129
|
children: [
|
|
124
|
-
|
|
125
|
-
className: "rounded-lg border border-border-
|
|
130
|
+
N === "location" && /* @__PURE__ */ T("div", {
|
|
131
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-5 bg-gloss-card shadow-pop",
|
|
126
132
|
children: [
|
|
127
133
|
/* @__PURE__ */ T("h2", {
|
|
128
134
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
@@ -138,7 +144,7 @@ function k() {
|
|
|
138
144
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("label", {
|
|
139
145
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
140
146
|
children: ["Your Address ", /* @__PURE__ */ w("span", {
|
|
141
|
-
className: "text-
|
|
147
|
+
className: "text-status-error-text",
|
|
142
148
|
children: "*"
|
|
143
149
|
})]
|
|
144
150
|
}), /* @__PURE__ */ T("div", {
|
|
@@ -146,15 +152,15 @@ function k() {
|
|
|
146
152
|
children: [/* @__PURE__ */ w("input", {
|
|
147
153
|
type: "text",
|
|
148
154
|
placeholder: "Enter your full address",
|
|
149
|
-
value:
|
|
150
|
-
onChange: (e) =>
|
|
155
|
+
value: L.address,
|
|
156
|
+
onChange: (e) => R((t) => ({
|
|
151
157
|
...t,
|
|
152
158
|
address: e.target.value
|
|
153
159
|
})),
|
|
154
160
|
className: "flex-1 rounded-lg border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
155
161
|
}), /* @__PURE__ */ T("button", {
|
|
156
162
|
type: "button",
|
|
157
|
-
onClick:
|
|
163
|
+
onClick: q,
|
|
158
164
|
className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-2 text-xs font-medium text-text-primary hover:bg-accent transition-colors whitespace-nowrap",
|
|
159
165
|
children: [/* @__PURE__ */ w(v, { className: "h-3.5 w-3.5" }), "Use Current Location"]
|
|
160
166
|
})]
|
|
@@ -165,8 +171,8 @@ function k() {
|
|
|
165
171
|
}), /* @__PURE__ */ w("input", {
|
|
166
172
|
type: "text",
|
|
167
173
|
placeholder: "e.g., Near Metro Station, Opposite Mall",
|
|
168
|
-
value:
|
|
169
|
-
onChange: (e) =>
|
|
174
|
+
value: L.landmark,
|
|
175
|
+
onChange: (e) => R((t) => ({
|
|
170
176
|
...t,
|
|
171
177
|
landmark: e.target.value
|
|
172
178
|
})),
|
|
@@ -178,8 +184,8 @@ function k() {
|
|
|
178
184
|
}), /* @__PURE__ */ w("textarea", {
|
|
179
185
|
rows: 3,
|
|
180
186
|
placeholder: "Any specific instructions to help us find you...",
|
|
181
|
-
value:
|
|
182
|
-
onChange: (e) =>
|
|
187
|
+
value: L.instructions,
|
|
188
|
+
onChange: (e) => R((t) => ({
|
|
183
189
|
...t,
|
|
184
190
|
instructions: e.target.value
|
|
185
191
|
})),
|
|
@@ -188,7 +194,7 @@ function k() {
|
|
|
188
194
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("label", {
|
|
189
195
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
190
196
|
children: ["Phone Number ", /* @__PURE__ */ w("span", {
|
|
191
|
-
className: "text-
|
|
197
|
+
className: "text-status-error-text",
|
|
192
198
|
children: "*"
|
|
193
199
|
})]
|
|
194
200
|
}), /* @__PURE__ */ T("div", {
|
|
@@ -196,8 +202,8 @@ function k() {
|
|
|
196
202
|
children: [/* @__PURE__ */ w(y, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("input", {
|
|
197
203
|
type: "tel",
|
|
198
204
|
placeholder: "Enter your phone number",
|
|
199
|
-
value:
|
|
200
|
-
onChange: (e) =>
|
|
205
|
+
value: L.phoneNumber,
|
|
206
|
+
onChange: (e) => R((t) => ({
|
|
201
207
|
...t,
|
|
202
208
|
phoneNumber: e.target.value
|
|
203
209
|
})),
|
|
@@ -208,8 +214,8 @@ function k() {
|
|
|
208
214
|
})
|
|
209
215
|
]
|
|
210
216
|
}),
|
|
211
|
-
|
|
212
|
-
className: "rounded-lg border border-border-
|
|
217
|
+
N === "details" && /* @__PURE__ */ T("div", {
|
|
218
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-5 bg-gloss-card shadow-pop",
|
|
213
219
|
children: [
|
|
214
220
|
/* @__PURE__ */ T("h2", {
|
|
215
221
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
@@ -225,18 +231,18 @@ function k() {
|
|
|
225
231
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("label", {
|
|
226
232
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
227
233
|
children: ["Preferred Time Slot ", /* @__PURE__ */ w("span", {
|
|
228
|
-
className: "text-
|
|
234
|
+
className: "text-status-error-text",
|
|
229
235
|
children: "*"
|
|
230
236
|
})]
|
|
231
237
|
}), /* @__PURE__ */ w("div", {
|
|
232
238
|
className: "grid grid-cols-4 gap-2",
|
|
233
|
-
children:
|
|
239
|
+
children: G.map((e) => /* @__PURE__ */ w("button", {
|
|
234
240
|
type: "button",
|
|
235
|
-
onClick: () =>
|
|
241
|
+
onClick: () => B((t) => ({
|
|
236
242
|
...t,
|
|
237
243
|
preferredTime: e.value
|
|
238
244
|
})),
|
|
239
|
-
className: t("rounded-lg border py-2 px-2 text-xs font-medium transition-colors",
|
|
245
|
+
className: t("rounded-lg border py-2 px-2 text-xs font-medium transition-colors", z.preferredTime === e.value ? "border-foreground bg-accent text-text-primary" : "border-border-subtle text-text-secondary hover:bg-accent hover:text-text-primary"),
|
|
240
246
|
children: e.label
|
|
241
247
|
}, e.value))
|
|
242
248
|
})] }),
|
|
@@ -246,8 +252,8 @@ function k() {
|
|
|
246
252
|
}), /* @__PURE__ */ w("textarea", {
|
|
247
253
|
rows: 3,
|
|
248
254
|
placeholder: "Any special requests or dietary preferences...",
|
|
249
|
-
value:
|
|
250
|
-
onChange: (e) =>
|
|
255
|
+
value: z.specialInstructions,
|
|
256
|
+
onChange: (e) => B((t) => ({
|
|
251
257
|
...t,
|
|
252
258
|
specialInstructions: e.target.value
|
|
253
259
|
})),
|
|
@@ -257,8 +263,8 @@ function k() {
|
|
|
257
263
|
className: "flex items-center gap-2 cursor-pointer",
|
|
258
264
|
children: [/* @__PURE__ */ w("input", {
|
|
259
265
|
type: "checkbox",
|
|
260
|
-
checked:
|
|
261
|
-
onChange: (e) =>
|
|
266
|
+
checked: z.isUrgent,
|
|
267
|
+
onChange: (e) => B((t) => ({
|
|
262
268
|
...t,
|
|
263
269
|
isUrgent: e.target.checked
|
|
264
270
|
})),
|
|
@@ -272,8 +278,8 @@ function k() {
|
|
|
272
278
|
})
|
|
273
279
|
]
|
|
274
280
|
}),
|
|
275
|
-
|
|
276
|
-
className: "rounded-lg border border-border-
|
|
281
|
+
N === "payment" && /* @__PURE__ */ T("div", {
|
|
282
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-5 bg-gloss-card shadow-pop",
|
|
277
283
|
children: [
|
|
278
284
|
/* @__PURE__ */ T("h2", {
|
|
279
285
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
@@ -287,9 +293,9 @@ function k() {
|
|
|
287
293
|
className: "space-y-4",
|
|
288
294
|
children: [
|
|
289
295
|
/* @__PURE__ */ T("div", {
|
|
290
|
-
className: "flex items-start gap-2 rounded-lg border border-blue-
|
|
291
|
-
children: [/* @__PURE__ */ w(c, { className: "h-4 w-4 text-
|
|
292
|
-
className: "text-xs text-
|
|
296
|
+
className: "flex items-start gap-2 rounded-lg border border-accent-blue-subtle/20 bg-accent-blue-subtle/5 p-3",
|
|
297
|
+
children: [/* @__PURE__ */ w(c, { className: "h-4 w-4 text-accent-blue shrink-0 mt-0.5" }), /* @__PURE__ */ T("p", {
|
|
298
|
+
className: "text-xs text-accent-blue",
|
|
293
299
|
children: [
|
|
294
300
|
"You need to pay ",
|
|
295
301
|
i(100, { minimumFractionDigits: 0 }),
|
|
@@ -321,8 +327,8 @@ function k() {
|
|
|
321
327
|
}
|
|
322
328
|
].map(({ value: e, label: n, sub: r, Icon: i }) => /* @__PURE__ */ T("button", {
|
|
323
329
|
type: "button",
|
|
324
|
-
onClick: () =>
|
|
325
|
-
className: t("rounded-lg border p-3 text-center transition-colors",
|
|
330
|
+
onClick: () => H(e),
|
|
331
|
+
className: t("rounded-lg border p-3 text-center transition-colors", V === e ? "border-foreground bg-accent" : "border-border-subtle hover:bg-accent"),
|
|
326
332
|
children: [
|
|
327
333
|
/* @__PURE__ */ w(i, { className: "mx-auto h-5 w-5 text-text-secondary mb-1" }),
|
|
328
334
|
/* @__PURE__ */ w("p", {
|
|
@@ -385,15 +391,15 @@ function k() {
|
|
|
385
391
|
})
|
|
386
392
|
]
|
|
387
393
|
}),
|
|
388
|
-
|
|
389
|
-
className: "rounded-lg border border-border-
|
|
394
|
+
N === "confirmation" && U && /* @__PURE__ */ T("div", {
|
|
395
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-5 bg-gloss-card shadow-pop",
|
|
390
396
|
children: [
|
|
391
397
|
/* @__PURE__ */ T("div", {
|
|
392
398
|
className: "text-center mb-6",
|
|
393
399
|
children: [
|
|
394
400
|
/* @__PURE__ */ w("div", {
|
|
395
|
-
className: "mx-auto mb-3 flex h-14 w-14 items-center justify-center rounded-full bg-
|
|
396
|
-
children: /* @__PURE__ */ w(f, { className: "h-7 w-7 text-
|
|
401
|
+
className: "mx-auto mb-3 flex h-14 w-14 items-center justify-center rounded-full bg-status-success-bg-subtle/10",
|
|
402
|
+
children: /* @__PURE__ */ w(f, { className: "h-7 w-7 text-status-success-text" })
|
|
397
403
|
}),
|
|
398
404
|
/* @__PURE__ */ w("h2", {
|
|
399
405
|
className: "text-lg font-semibold text-text-primary mb-1",
|
|
@@ -418,14 +424,14 @@ function k() {
|
|
|
418
424
|
children: "Booking ID"
|
|
419
425
|
}), /* @__PURE__ */ w("p", {
|
|
420
426
|
className: "font-mono text-xs text-text-primary",
|
|
421
|
-
children:
|
|
427
|
+
children: U.bookingId
|
|
422
428
|
})] }),
|
|
423
429
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("span", {
|
|
424
430
|
className: "text-xs text-text-secondary",
|
|
425
431
|
children: "Est. Arrival"
|
|
426
432
|
}), /* @__PURE__ */ w("p", {
|
|
427
433
|
className: "text-text-primary",
|
|
428
|
-
children: new Date(
|
|
434
|
+
children: new Date(U.estimatedArrival).toLocaleTimeString([], {
|
|
429
435
|
hour: "2-digit",
|
|
430
436
|
minute: "2-digit"
|
|
431
437
|
})
|
|
@@ -435,22 +441,22 @@ function k() {
|
|
|
435
441
|
children: "Location"
|
|
436
442
|
}), /* @__PURE__ */ w("p", {
|
|
437
443
|
className: "text-text-primary truncate",
|
|
438
|
-
children:
|
|
444
|
+
children: L.address
|
|
439
445
|
})] }),
|
|
440
446
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("span", {
|
|
441
447
|
className: "text-xs text-text-secondary",
|
|
442
448
|
children: "Phone"
|
|
443
449
|
}), /* @__PURE__ */ w("p", {
|
|
444
450
|
className: "text-text-primary",
|
|
445
|
-
children:
|
|
451
|
+
children: L.phoneNumber
|
|
446
452
|
})] })
|
|
447
453
|
]
|
|
448
454
|
})]
|
|
449
455
|
}),
|
|
450
456
|
/* @__PURE__ */ T("div", {
|
|
451
|
-
className: "rounded-lg border border-
|
|
457
|
+
className: "rounded-lg border border-status-success-border/20 bg-status-success-bg-subtle/5 p-4 mb-4",
|
|
452
458
|
children: [/* @__PURE__ */ T("h3", {
|
|
453
|
-
className: "text-sm font-medium text-
|
|
459
|
+
className: "text-sm font-medium text-status-success-text mb-2 flex items-center gap-2",
|
|
454
460
|
children: [/* @__PURE__ */ w(f, { className: "h-4 w-4" }), "Payment Processed"]
|
|
455
461
|
}), /* @__PURE__ */ T("div", {
|
|
456
462
|
className: "grid grid-cols-2 gap-3 text-sm",
|
|
@@ -460,7 +466,7 @@ function k() {
|
|
|
460
466
|
children: "Transaction ID"
|
|
461
467
|
}), /* @__PURE__ */ w("p", {
|
|
462
468
|
className: "font-mono text-xs text-text-primary",
|
|
463
|
-
children:
|
|
469
|
+
children: U.transactionId
|
|
464
470
|
})] }),
|
|
465
471
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("span", {
|
|
466
472
|
className: "text-xs text-text-secondary",
|
|
@@ -474,29 +480,29 @@ function k() {
|
|
|
474
480
|
children: "Method"
|
|
475
481
|
}), /* @__PURE__ */ w("p", {
|
|
476
482
|
className: "capitalize text-text-primary",
|
|
477
|
-
children:
|
|
483
|
+
children: V
|
|
478
484
|
})] }),
|
|
479
485
|
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("span", {
|
|
480
486
|
className: "text-xs text-text-secondary",
|
|
481
487
|
children: "Status"
|
|
482
488
|
}), /* @__PURE__ */ w("p", {
|
|
483
|
-
className: "font-medium text-
|
|
489
|
+
className: "font-medium text-status-success-text",
|
|
484
490
|
children: "Paid"
|
|
485
491
|
})] })
|
|
486
492
|
]
|
|
487
493
|
})]
|
|
488
494
|
}),
|
|
489
495
|
/* @__PURE__ */ T("div", {
|
|
490
|
-
className: "rounded-lg border border-blue-
|
|
496
|
+
className: "rounded-lg border border-accent-blue-subtle/20 bg-accent-blue-subtle/5 p-4 mb-6",
|
|
491
497
|
children: [/* @__PURE__ */ w("h3", {
|
|
492
|
-
className: "text-sm font-medium text-
|
|
498
|
+
className: "text-sm font-medium text-accent-blue mb-2",
|
|
493
499
|
children: "Next Steps"
|
|
494
500
|
}), /* @__PURE__ */ T("div", {
|
|
495
|
-
className: "space-y-2 text-xs text-
|
|
501
|
+
className: "space-y-2 text-xs text-accent-blue",
|
|
496
502
|
children: [
|
|
497
503
|
/* @__PURE__ */ T("div", {
|
|
498
504
|
className: "flex items-start gap-2",
|
|
499
|
-
children: [/* @__PURE__ */ w(f, { className: "h-3.5 w-3.5 text-
|
|
505
|
+
children: [/* @__PURE__ */ w(f, { className: "h-3.5 w-3.5 text-status-success-text mt-0.5 shrink-0" }), /* @__PURE__ */ T("span", { children: [
|
|
500
506
|
"Payment confirmed -",
|
|
501
507
|
" ",
|
|
502
508
|
i(100, { minimumFractionDigits: 0 }),
|
|
@@ -508,7 +514,7 @@ function k() {
|
|
|
508
514
|
children: [/* @__PURE__ */ w(p, { className: "h-3.5 w-3.5 mt-0.5 shrink-0" }), /* @__PURE__ */ T("span", { children: [
|
|
509
515
|
"Cart will arrive around",
|
|
510
516
|
" ",
|
|
511
|
-
new Date(
|
|
517
|
+
new Date(U.estimatedArrival).toLocaleTimeString([], {
|
|
512
518
|
hour: "2-digit",
|
|
513
519
|
minute: "2-digit"
|
|
514
520
|
})
|
|
@@ -530,39 +536,39 @@ function k() {
|
|
|
530
536
|
className: "flex gap-3",
|
|
531
537
|
children: [/* @__PURE__ */ w("button", {
|
|
532
538
|
type: "button",
|
|
533
|
-
onClick: () =>
|
|
539
|
+
onClick: () => j(`/customer/bookings/${U.bookingId}`),
|
|
534
540
|
className: "flex-1 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
535
541
|
children: "View Booking"
|
|
536
542
|
}), /* @__PURE__ */ w("button", {
|
|
537
543
|
type: "button",
|
|
538
|
-
onClick: () =>
|
|
544
|
+
onClick: () => j("/customer/carts"),
|
|
539
545
|
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",
|
|
540
546
|
children: "Browse More"
|
|
541
547
|
})]
|
|
542
548
|
})
|
|
543
549
|
]
|
|
544
550
|
}),
|
|
545
|
-
|
|
551
|
+
N !== "confirmation" && /* @__PURE__ */ T("div", {
|
|
546
552
|
className: "flex justify-between mt-5",
|
|
547
553
|
children: [/* @__PURE__ */ T("button", {
|
|
548
554
|
type: "button",
|
|
549
|
-
onClick:
|
|
550
|
-
disabled:
|
|
551
|
-
className: t("flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary transition-colors",
|
|
555
|
+
onClick: Z,
|
|
556
|
+
disabled: N === "location",
|
|
557
|
+
className: t("flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary transition-colors", N === "location" ? "opacity-40 cursor-not-allowed" : "hover:bg-accent"),
|
|
552
558
|
children: [/* @__PURE__ */ w(l, { className: "h-4 w-4" }), "Previous"]
|
|
553
559
|
}), /* @__PURE__ */ w("button", {
|
|
554
560
|
type: "button",
|
|
555
|
-
onClick:
|
|
556
|
-
disabled:
|
|
557
|
-
className: t("flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background transition-opacity",
|
|
558
|
-
children:
|
|
561
|
+
onClick: X,
|
|
562
|
+
disabled: F,
|
|
563
|
+
className: t("flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background transition-opacity", F ? "opacity-60 cursor-not-allowed" : "hover:opacity-90"),
|
|
564
|
+
children: F ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(g, { className: "h-4 w-4 animate-spin" }), N === "payment" ? "Processing Payment..." : "Processing..."] }) : /* @__PURE__ */ T(C, { children: [N === "payment" ? "Confirm & Pay" : "Next", /* @__PURE__ */ w(u, { className: "h-4 w-4" })] })
|
|
559
565
|
})]
|
|
560
566
|
})
|
|
561
567
|
]
|
|
562
568
|
}), /* @__PURE__ */ w("div", {
|
|
563
569
|
className: "lg:col-span-1",
|
|
564
570
|
children: /* @__PURE__ */ T("div", {
|
|
565
|
-
className: "sticky top-6 rounded-lg border border-border-
|
|
571
|
+
className: "sticky top-6 rounded-lg border border-border-seam bg-bg-surface p-5 bg-gloss-card shadow-pop",
|
|
566
572
|
children: [
|
|
567
573
|
/* @__PURE__ */ w("h3", {
|
|
568
574
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
@@ -571,15 +577,15 @@ function k() {
|
|
|
571
577
|
/* @__PURE__ */ T("div", {
|
|
572
578
|
className: "flex items-center gap-3 mb-4",
|
|
573
579
|
children: [/* @__PURE__ */ w("img", {
|
|
574
|
-
src:
|
|
575
|
-
alt:
|
|
580
|
+
src: M.image,
|
|
581
|
+
alt: M.name,
|
|
576
582
|
className: "h-12 w-12 rounded-lg object-cover"
|
|
577
583
|
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
578
584
|
className: "text-sm font-medium text-text-primary",
|
|
579
|
-
children:
|
|
585
|
+
children: M.name
|
|
580
586
|
}), /* @__PURE__ */ w("p", {
|
|
581
587
|
className: "text-xs text-text-secondary",
|
|
582
|
-
children:
|
|
588
|
+
children: M.category
|
|
583
589
|
})] })]
|
|
584
590
|
}),
|
|
585
591
|
/* @__PURE__ */ T("div", {
|
|
@@ -605,7 +611,7 @@ function k() {
|
|
|
605
611
|
})]
|
|
606
612
|
}),
|
|
607
613
|
/* @__PURE__ */ T("div", {
|
|
608
|
-
className: "flex items-center gap-2 mt-3 pt-3 border-t border-border-subtle text-
|
|
614
|
+
className: "flex items-center gap-2 mt-3 pt-3 border-t border-border-subtle text-status-success-text",
|
|
609
615
|
children: [/* @__PURE__ */ w(f, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ w("span", {
|
|
610
616
|
className: "text-xs",
|
|
611
617
|
children: "Pay remaining amount at cart"
|
|
@@ -618,6 +624,6 @@ function k() {
|
|
|
618
624
|
});
|
|
619
625
|
}
|
|
620
626
|
//#endregion
|
|
621
|
-
export {
|
|
627
|
+
export { A as DirectServiceBookingPage };
|
|
622
628
|
|
|
623
629
|
//# sourceMappingURL=DirectServiceBookingPage.js.map
|