@burdenoff/microfe-kadaikodi 2026.626.2 → 2026.704.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kadaikodi/hooks/useKadaikodiApi.js +260 -105
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/HomePage.js +4 -4
- package/dist/kadaikodi/pages/HomePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +341 -461
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +115 -399
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +140 -283
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +282 -453
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js +115 -242
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +2 -2
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +279 -333
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +299 -372
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +503 -627
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +339 -282
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +329 -432
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +374 -384
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +249 -208
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +276 -279
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +229 -447
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +171 -627
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +331 -415
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js +18 -670
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +34 -46
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +193 -447
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +6 -6
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -2
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +191 -369
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +233 -389
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +255 -215
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +141 -178
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +155 -161
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +76 -118
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +14 -140
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +135 -213
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +272 -774
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +258 -523
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +112 -600
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js +128 -295
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +205 -291
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +159 -500
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +426 -514
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +231 -225
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js +197 -301
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +247 -399
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +294 -327
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +179 -397
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
- package/dist/kadaikodi/mocks/data.js +0 -1517
- package/dist/kadaikodi/mocks/data.js.map +0 -1
- package/dist/kadaikodi/mocks/users.js +0 -34
- package/dist/kadaikodi/mocks/users.js.map +0 -1
|
@@ -2,13 +2,13 @@ import { useKadaikodi as e } from "../../context/KadaikodiContext.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 {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { AlertCircle as
|
|
9
|
-
import { useParams as
|
|
10
|
-
import { Fragment as
|
|
11
|
-
import { EmphasisPanel as
|
|
5
|
+
import { useOfferings as i, usePlaceOrder as a, useProvider as o } from "../../hooks/useKadaikodiApi.js";
|
|
6
|
+
import { formatCurrency as s } from "../../utils/formatters.js";
|
|
7
|
+
import { useState as c } from "react";
|
|
8
|
+
import { AlertCircle as l, ArrowLeft as u, ArrowRight as d, Calendar as f, CheckCircle2 as p, Clock as m, CreditCard as h, Home as g, Loader2 as _, MapPin as v, Navigation as y, Phone as b, Smartphone as x, Wallet as S } from "lucide-react";
|
|
9
|
+
import { useParams as C } from "react-router-dom";
|
|
10
|
+
import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
11
|
+
import { EmphasisPanel as ee, PagePurpose as D } from "@burdenoff/fe-libs/ui";
|
|
12
12
|
//#region src/kadaikodi/pages/customer/DirectServiceBookingPage.tsx
|
|
13
13
|
var O = [
|
|
14
14
|
"location",
|
|
@@ -36,23 +36,30 @@ function A() {
|
|
|
36
36
|
return e;
|
|
37
37
|
}
|
|
38
38
|
function j() {
|
|
39
|
-
let { cartId: j } =
|
|
39
|
+
let { cartId: j } = C(), { navigateTo: M, currentUser: N } = e(), { data: P, isLoading: F } = o(j), { data: I = [] } = i(j), L = a(), R = I[0], [z, B] = c("location"), [V, H] = c(!1), [U, W] = c({
|
|
40
40
|
address: "",
|
|
41
41
|
landmark: "",
|
|
42
42
|
instructions: "",
|
|
43
43
|
phoneNumber: ""
|
|
44
|
-
}), [
|
|
44
|
+
}), [G, K] = c({
|
|
45
45
|
preferredTime: "",
|
|
46
46
|
specialInstructions: "",
|
|
47
47
|
isUrgent: !1
|
|
48
|
-
}), [
|
|
49
|
-
if (
|
|
48
|
+
}), [q, J] = c("upi"), [Y, X] = c(null), Z = R?.price ?? 0, Q = Math.round(Z * .2), $ = Z - Q, te = Z;
|
|
49
|
+
if (F) return /* @__PURE__ */ T(n, {
|
|
50
|
+
title: "Book Direct Service",
|
|
51
|
+
children: /* @__PURE__ */ T("div", {
|
|
52
|
+
className: "flex items-center justify-center py-20",
|
|
53
|
+
children: /* @__PURE__ */ T("div", { className: "h-12 w-12 animate-spin rounded-full border-b-2 border-foreground" })
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
if (!P) return /* @__PURE__ */ T(n, {
|
|
50
57
|
title: "Cart Not Found",
|
|
51
|
-
children: /* @__PURE__ */
|
|
52
|
-
icon: /* @__PURE__ */
|
|
58
|
+
children: /* @__PURE__ */ T(r, {
|
|
59
|
+
icon: /* @__PURE__ */ T(g, { className: "h-12 w-12" }),
|
|
53
60
|
title: "Service not available",
|
|
54
61
|
description: "Direct service is not available for this cart.",
|
|
55
|
-
action: /* @__PURE__ */
|
|
62
|
+
action: /* @__PURE__ */ T("button", {
|
|
56
63
|
type: "button",
|
|
57
64
|
onClick: () => M("/customer/carts"),
|
|
58
65
|
className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
@@ -60,154 +67,187 @@ function j() {
|
|
|
60
67
|
})
|
|
61
68
|
})
|
|
62
69
|
});
|
|
63
|
-
let
|
|
70
|
+
let ne = A(), re = O.indexOf(z), ie = () => {
|
|
64
71
|
if (!navigator.geolocation) {
|
|
65
72
|
alert("Geolocation is not supported by this browser.");
|
|
66
73
|
return;
|
|
67
74
|
}
|
|
68
75
|
navigator.geolocation.getCurrentPosition(() => {
|
|
69
|
-
|
|
76
|
+
W((e) => ({
|
|
70
77
|
...e,
|
|
71
78
|
address: e.address || "Current location detected"
|
|
72
79
|
})), alert("Location detected successfully!");
|
|
73
80
|
}, () => {
|
|
74
81
|
alert("Failed to get your location. Please enter address manually.");
|
|
75
82
|
});
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
}, ae = () => U.address.trim() ? U.phoneNumber.trim() ? !0 : (alert("Please enter your phone number."), !1) : (alert("Please enter your address."), !1), oe = () => G.preferredTime ? !0 : (alert("Please select a preferred time slot."), !1), se = () => {
|
|
84
|
+
z === "location" && ae() ? B("details") : z === "details" && oe() ? B("payment") : z === "payment" && le();
|
|
85
|
+
}, ce = () => {
|
|
86
|
+
z === "details" ? B("location") : z === "payment" && B("details");
|
|
87
|
+
}, le = () => {
|
|
88
|
+
H(!0);
|
|
89
|
+
let e = new Date(Date.now() + 30 * 6e4).toISOString();
|
|
90
|
+
if (P && R && N?.id) {
|
|
91
|
+
L.mutate({
|
|
92
|
+
providerId: P.id,
|
|
93
|
+
customerId: N.id,
|
|
94
|
+
fulfillmentType: "delivery",
|
|
95
|
+
paymentMethod: q,
|
|
96
|
+
tax: 0,
|
|
97
|
+
items: [{
|
|
98
|
+
name: R.name,
|
|
99
|
+
offeringId: R.id,
|
|
100
|
+
quantity: 1,
|
|
101
|
+
unitPrice: Z
|
|
102
|
+
}],
|
|
103
|
+
notes: [U.instructions, G.specialInstructions].filter(Boolean).join(" | ") || void 0,
|
|
104
|
+
deliveryAddress: {
|
|
105
|
+
street: U.address,
|
|
106
|
+
landmark: U.landmark
|
|
107
|
+
}
|
|
108
|
+
}, {
|
|
109
|
+
onSuccess: (t) => {
|
|
110
|
+
X({
|
|
111
|
+
bookingId: t.orderNumber || t.id,
|
|
112
|
+
transactionId: `TXN-${t.id}`,
|
|
113
|
+
estimatedArrival: e
|
|
114
|
+
}), B("confirmation"), H(!1);
|
|
115
|
+
},
|
|
116
|
+
onError: () => {
|
|
117
|
+
H(!1), alert("Could not place your booking. Please try again.");
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
let t = `BK-${Date.now()}`;
|
|
123
|
+
X({
|
|
124
|
+
bookingId: t,
|
|
125
|
+
transactionId: t,
|
|
126
|
+
estimatedArrival: e
|
|
127
|
+
}), B("confirmation"), H(!1);
|
|
88
128
|
};
|
|
89
|
-
return /* @__PURE__ */
|
|
90
|
-
title: /* @__PURE__ */
|
|
129
|
+
return /* @__PURE__ */ E(n, {
|
|
130
|
+
title: /* @__PURE__ */ E("div", {
|
|
91
131
|
className: "flex items-center gap-3",
|
|
92
|
-
children: [/* @__PURE__ */
|
|
132
|
+
children: [/* @__PURE__ */ T("button", {
|
|
93
133
|
type: "button",
|
|
94
|
-
onClick: () => M(`/customer/carts/${
|
|
134
|
+
onClick: () => M(`/customer/carts/${P.id}`),
|
|
95
135
|
className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
|
|
96
|
-
children: /* @__PURE__ */
|
|
97
|
-
}), /* @__PURE__ */
|
|
136
|
+
children: /* @__PURE__ */ T(u, { className: "h-5 w-5" })
|
|
137
|
+
}), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", { children: "Book Direct Service" }), /* @__PURE__ */ T("p", {
|
|
98
138
|
className: "text-xs font-normal text-text-secondary",
|
|
99
|
-
children:
|
|
139
|
+
children: P.name
|
|
100
140
|
})] })]
|
|
101
141
|
}),
|
|
102
142
|
children: [
|
|
103
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ T(D, {
|
|
104
144
|
className: "mb-6",
|
|
105
145
|
children: "Book a service directly from this cart in a few guided steps — tell us where and when you need it, add any details, then confirm. Follow the progress bar below to know what's left."
|
|
106
146
|
}),
|
|
107
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ T(ee, {
|
|
108
148
|
className: "mb-6",
|
|
109
|
-
children: /* @__PURE__ */
|
|
149
|
+
children: /* @__PURE__ */ T("div", {
|
|
110
150
|
className: "flex items-center justify-between px-2",
|
|
111
151
|
children: O.map((e, n) => {
|
|
112
|
-
let r = n <
|
|
113
|
-
return /* @__PURE__ */
|
|
152
|
+
let r = n < re, i = e === z;
|
|
153
|
+
return /* @__PURE__ */ E("div", {
|
|
114
154
|
className: "flex items-center",
|
|
115
|
-
children: [/* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ E("div", {
|
|
116
156
|
className: "flex flex-col items-center",
|
|
117
|
-
children: [/* @__PURE__ */
|
|
157
|
+
children: [/* @__PURE__ */ T("div", {
|
|
118
158
|
className: t("flex h-8 w-8 items-center justify-center rounded-full text-xs font-medium", r ? "bg-status-success-bg-subtle text-status-success-text" : i ? "bg-foreground text-background" : "bg-bg-sunken text-text-secondary"),
|
|
119
|
-
children: r ? /* @__PURE__ */
|
|
120
|
-
}), /* @__PURE__ */
|
|
159
|
+
children: r ? /* @__PURE__ */ T(p, { className: "h-4 w-4" }) : n + 1
|
|
160
|
+
}), /* @__PURE__ */ T("span", {
|
|
121
161
|
className: t("mt-1 text-[10px]", i ? "font-medium text-text-primary" : "text-text-secondary"),
|
|
122
162
|
children: k[e]
|
|
123
163
|
})]
|
|
124
|
-
}), n < O.length - 1 && /* @__PURE__ */
|
|
164
|
+
}), n < O.length - 1 && /* @__PURE__ */ T("div", { className: t("mx-2 h-0.5 w-8 sm:w-16", r ? "bg-status-success-bg-subtle" : "bg-border") })]
|
|
125
165
|
}, e);
|
|
126
166
|
})
|
|
127
167
|
})
|
|
128
168
|
}),
|
|
129
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ E("div", {
|
|
130
170
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
171
|
+
children: [/* @__PURE__ */ E("div", {
|
|
132
172
|
className: "lg:col-span-2",
|
|
133
173
|
children: [
|
|
134
|
-
|
|
174
|
+
z === "location" && /* @__PURE__ */ E("div", {
|
|
135
175
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
136
176
|
children: [
|
|
137
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ E("h2", {
|
|
138
178
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
179
|
+
children: [/* @__PURE__ */ T(v, { className: "h-4 w-4" }), "Service Location"]
|
|
140
180
|
}),
|
|
141
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ T("p", {
|
|
142
182
|
className: "text-xs text-text-secondary mb-5",
|
|
143
183
|
children: "Where should the cart come?"
|
|
144
184
|
}),
|
|
145
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ E("div", {
|
|
146
186
|
className: "space-y-4",
|
|
147
187
|
children: [
|
|
148
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("label", {
|
|
149
189
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
150
|
-
children: ["Your Address ", /* @__PURE__ */
|
|
190
|
+
children: ["Your Address ", /* @__PURE__ */ T("span", {
|
|
151
191
|
className: "text-status-error-text",
|
|
152
192
|
children: "*"
|
|
153
193
|
})]
|
|
154
|
-
}), /* @__PURE__ */
|
|
194
|
+
}), /* @__PURE__ */ E("div", {
|
|
155
195
|
className: "flex gap-2",
|
|
156
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ T("input", {
|
|
157
197
|
type: "text",
|
|
158
198
|
placeholder: "Enter your full address",
|
|
159
|
-
value:
|
|
160
|
-
onChange: (e) =>
|
|
199
|
+
value: U.address,
|
|
200
|
+
onChange: (e) => W((t) => ({
|
|
161
201
|
...t,
|
|
162
202
|
address: e.target.value
|
|
163
203
|
})),
|
|
164
204
|
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)]"
|
|
165
|
-
}), /* @__PURE__ */
|
|
205
|
+
}), /* @__PURE__ */ E("button", {
|
|
166
206
|
type: "button",
|
|
167
|
-
onClick:
|
|
207
|
+
onClick: ie,
|
|
168
208
|
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",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
209
|
+
children: [/* @__PURE__ */ T(y, { className: "h-3.5 w-3.5" }), "Use Current Location"]
|
|
170
210
|
})]
|
|
171
211
|
})] }),
|
|
172
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
|
|
173
213
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
174
214
|
children: "Nearby Landmark"
|
|
175
|
-
}), /* @__PURE__ */
|
|
215
|
+
}), /* @__PURE__ */ T("input", {
|
|
176
216
|
type: "text",
|
|
177
217
|
placeholder: "e.g., Near Metro Station, Opposite Mall",
|
|
178
|
-
value:
|
|
179
|
-
onChange: (e) =>
|
|
218
|
+
value: U.landmark,
|
|
219
|
+
onChange: (e) => W((t) => ({
|
|
180
220
|
...t,
|
|
181
221
|
landmark: e.target.value
|
|
182
222
|
})),
|
|
183
223
|
className: "w-full 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)]"
|
|
184
224
|
})] }),
|
|
185
|
-
/* @__PURE__ */
|
|
225
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
|
|
186
226
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
187
227
|
children: "Instructions for Cart Owner"
|
|
188
|
-
}), /* @__PURE__ */
|
|
228
|
+
}), /* @__PURE__ */ T("textarea", {
|
|
189
229
|
rows: 3,
|
|
190
230
|
placeholder: "Any specific instructions to help us find you...",
|
|
191
|
-
value:
|
|
192
|
-
onChange: (e) =>
|
|
231
|
+
value: U.instructions,
|
|
232
|
+
onChange: (e) => W((t) => ({
|
|
193
233
|
...t,
|
|
194
234
|
instructions: e.target.value
|
|
195
235
|
})),
|
|
196
236
|
className: "w-full 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)] resize-none"
|
|
197
237
|
})] }),
|
|
198
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("label", {
|
|
199
239
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
200
|
-
children: ["Phone Number ", /* @__PURE__ */
|
|
240
|
+
children: ["Phone Number ", /* @__PURE__ */ T("span", {
|
|
201
241
|
className: "text-status-error-text",
|
|
202
242
|
children: "*"
|
|
203
243
|
})]
|
|
204
|
-
}), /* @__PURE__ */
|
|
244
|
+
}), /* @__PURE__ */ E("div", {
|
|
205
245
|
className: "relative",
|
|
206
|
-
children: [/* @__PURE__ */
|
|
246
|
+
children: [/* @__PURE__ */ T(b, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ T("input", {
|
|
207
247
|
type: "tel",
|
|
208
248
|
placeholder: "Enter your phone number",
|
|
209
|
-
value:
|
|
210
|
-
onChange: (e) =>
|
|
249
|
+
value: U.phoneNumber,
|
|
250
|
+
onChange: (e) => W((t) => ({
|
|
211
251
|
...t,
|
|
212
252
|
phoneNumber: e.target.value
|
|
213
253
|
})),
|
|
@@ -218,62 +258,62 @@ function j() {
|
|
|
218
258
|
})
|
|
219
259
|
]
|
|
220
260
|
}),
|
|
221
|
-
|
|
261
|
+
z === "details" && /* @__PURE__ */ E("div", {
|
|
222
262
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
223
263
|
children: [
|
|
224
|
-
/* @__PURE__ */
|
|
264
|
+
/* @__PURE__ */ E("h2", {
|
|
225
265
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
226
|
-
children: [/* @__PURE__ */
|
|
266
|
+
children: [/* @__PURE__ */ T(f, { className: "h-4 w-4" }), "Booking Details"]
|
|
227
267
|
}),
|
|
228
|
-
/* @__PURE__ */
|
|
268
|
+
/* @__PURE__ */ T("p", {
|
|
229
269
|
className: "text-xs text-text-secondary mb-5",
|
|
230
270
|
children: "Choose your preferred timing"
|
|
231
271
|
}),
|
|
232
|
-
/* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ E("div", {
|
|
233
273
|
className: "space-y-4",
|
|
234
274
|
children: [
|
|
235
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("label", {
|
|
236
276
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
237
|
-
children: ["Preferred Time Slot ", /* @__PURE__ */
|
|
277
|
+
children: ["Preferred Time Slot ", /* @__PURE__ */ T("span", {
|
|
238
278
|
className: "text-status-error-text",
|
|
239
279
|
children: "*"
|
|
240
280
|
})]
|
|
241
|
-
}), /* @__PURE__ */
|
|
281
|
+
}), /* @__PURE__ */ T("div", {
|
|
242
282
|
className: "grid grid-cols-4 gap-2",
|
|
243
|
-
children:
|
|
283
|
+
children: ne.map((e) => /* @__PURE__ */ T("button", {
|
|
244
284
|
type: "button",
|
|
245
|
-
onClick: () =>
|
|
285
|
+
onClick: () => K((t) => ({
|
|
246
286
|
...t,
|
|
247
287
|
preferredTime: e.value
|
|
248
288
|
})),
|
|
249
|
-
className: t("rounded-lg border py-2 px-2 text-xs font-medium transition-colors",
|
|
289
|
+
className: t("rounded-lg border py-2 px-2 text-xs font-medium transition-colors", G.preferredTime === e.value ? "border-foreground bg-accent text-text-primary" : "border-border-subtle text-text-secondary hover:bg-accent hover:text-text-primary"),
|
|
250
290
|
children: e.label
|
|
251
291
|
}, e.value))
|
|
252
292
|
})] }),
|
|
253
|
-
/* @__PURE__ */
|
|
293
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
|
|
254
294
|
className: "block text-sm font-medium text-text-primary mb-1.5",
|
|
255
295
|
children: "Special Instructions"
|
|
256
|
-
}), /* @__PURE__ */
|
|
296
|
+
}), /* @__PURE__ */ T("textarea", {
|
|
257
297
|
rows: 3,
|
|
258
298
|
placeholder: "Any special requests or dietary preferences...",
|
|
259
|
-
value:
|
|
260
|
-
onChange: (e) =>
|
|
299
|
+
value: G.specialInstructions,
|
|
300
|
+
onChange: (e) => K((t) => ({
|
|
261
301
|
...t,
|
|
262
302
|
specialInstructions: e.target.value
|
|
263
303
|
})),
|
|
264
304
|
className: "w-full 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)] resize-none"
|
|
265
305
|
})] }),
|
|
266
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ E("label", {
|
|
267
307
|
className: "flex items-center gap-2 cursor-pointer",
|
|
268
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ T("input", {
|
|
269
309
|
type: "checkbox",
|
|
270
|
-
checked:
|
|
271
|
-
onChange: (e) =>
|
|
310
|
+
checked: G.isUrgent,
|
|
311
|
+
onChange: (e) => K((t) => ({
|
|
272
312
|
...t,
|
|
273
313
|
isUrgent: e.target.checked
|
|
274
314
|
})),
|
|
275
315
|
className: "h-4 w-4 rounded border-border-subtle"
|
|
276
|
-
}), /* @__PURE__ */
|
|
316
|
+
}), /* @__PURE__ */ T("span", {
|
|
277
317
|
className: "text-sm text-text-secondary",
|
|
278
318
|
children: "This is urgent (additional charges may apply)"
|
|
279
319
|
})]
|
|
@@ -282,110 +322,110 @@ function j() {
|
|
|
282
322
|
})
|
|
283
323
|
]
|
|
284
324
|
}),
|
|
285
|
-
|
|
325
|
+
z === "payment" && /* @__PURE__ */ E("div", {
|
|
286
326
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
287
327
|
children: [
|
|
288
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ E("h2", {
|
|
289
329
|
className: "text-base font-semibold text-text-primary mb-1 flex items-center gap-2",
|
|
290
|
-
children: [/* @__PURE__ */
|
|
330
|
+
children: [/* @__PURE__ */ T(h, { className: "h-4 w-4" }), "Advance Payment"]
|
|
291
331
|
}),
|
|
292
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ T("p", {
|
|
293
333
|
className: "text-xs text-text-secondary mb-5",
|
|
294
334
|
children: "Select your payment method"
|
|
295
335
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
336
|
+
/* @__PURE__ */ E("div", {
|
|
297
337
|
className: "space-y-4",
|
|
298
338
|
children: [
|
|
299
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ E("div", {
|
|
300
340
|
className: "flex items-start gap-2 rounded-lg border border-border-focus/20 bg-[var(--color-accent-soft)] p-3",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
341
|
+
children: [/* @__PURE__ */ T(l, { className: "h-4 w-4 text-text-primary shrink-0 mt-0.5" }), /* @__PURE__ */ E("p", {
|
|
302
342
|
className: "text-xs text-text-primary",
|
|
303
343
|
children: [
|
|
304
344
|
"You need to pay ",
|
|
305
|
-
|
|
345
|
+
s(Q, { minimumFractionDigits: 0 }),
|
|
306
346
|
" ",
|
|
307
347
|
"in advance to confirm your booking. Pay the remaining when the cart arrives."
|
|
308
348
|
]
|
|
309
349
|
})]
|
|
310
350
|
}),
|
|
311
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ T("div", {
|
|
312
352
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
313
353
|
children: [
|
|
314
354
|
{
|
|
315
355
|
value: "upi",
|
|
316
356
|
label: "UPI",
|
|
317
357
|
sub: "Instant payment",
|
|
318
|
-
Icon:
|
|
358
|
+
Icon: x
|
|
319
359
|
},
|
|
320
360
|
{
|
|
321
361
|
value: "card",
|
|
322
362
|
label: "Card",
|
|
323
363
|
sub: "Secure payment",
|
|
324
|
-
Icon:
|
|
364
|
+
Icon: h
|
|
325
365
|
},
|
|
326
366
|
{
|
|
327
367
|
value: "wallet",
|
|
328
368
|
label: "Wallet",
|
|
329
369
|
sub: "Quick payment",
|
|
330
|
-
Icon:
|
|
370
|
+
Icon: S
|
|
331
371
|
}
|
|
332
|
-
].map(({ value: e, label: n, sub: r, Icon: i }) => /* @__PURE__ */
|
|
372
|
+
].map(({ value: e, label: n, sub: r, Icon: i }) => /* @__PURE__ */ E("button", {
|
|
333
373
|
type: "button",
|
|
334
|
-
onClick: () =>
|
|
335
|
-
className: t("rounded-lg border p-3 text-center transition-colors",
|
|
374
|
+
onClick: () => J(e),
|
|
375
|
+
className: t("rounded-lg border p-3 text-center transition-colors", q === e ? "border-foreground bg-accent" : "border-border-subtle hover:bg-accent"),
|
|
336
376
|
children: [
|
|
337
|
-
/* @__PURE__ */
|
|
338
|
-
/* @__PURE__ */
|
|
377
|
+
/* @__PURE__ */ T(i, { className: "mx-auto h-5 w-5 text-text-secondary mb-1" }),
|
|
378
|
+
/* @__PURE__ */ T("p", {
|
|
339
379
|
className: "text-sm font-medium text-text-primary",
|
|
340
380
|
children: n
|
|
341
381
|
}),
|
|
342
|
-
/* @__PURE__ */
|
|
382
|
+
/* @__PURE__ */ T("p", {
|
|
343
383
|
className: "text-[10px] text-text-secondary",
|
|
344
384
|
children: r
|
|
345
385
|
})
|
|
346
386
|
]
|
|
347
387
|
}, e))
|
|
348
388
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
389
|
+
/* @__PURE__ */ E("div", {
|
|
350
390
|
className: "rounded-lg bg-bg-sunken p-4",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
391
|
+
children: [/* @__PURE__ */ T("h3", {
|
|
352
392
|
className: "text-sm font-medium text-text-primary mb-2",
|
|
353
393
|
children: "Payment Summary"
|
|
354
|
-
}), /* @__PURE__ */
|
|
394
|
+
}), /* @__PURE__ */ E("div", {
|
|
355
395
|
className: "space-y-2 text-sm",
|
|
356
396
|
children: [
|
|
357
|
-
/* @__PURE__ */
|
|
397
|
+
/* @__PURE__ */ E("div", {
|
|
358
398
|
className: "flex justify-between",
|
|
359
|
-
children: [/* @__PURE__ */
|
|
399
|
+
children: [/* @__PURE__ */ T("span", {
|
|
360
400
|
className: "text-text-secondary",
|
|
361
401
|
children: "Advance Payment:"
|
|
362
|
-
}), /* @__PURE__ */
|
|
402
|
+
}), /* @__PURE__ */ T("span", {
|
|
363
403
|
className: "text-text-primary",
|
|
364
|
-
children:
|
|
404
|
+
children: s(Q, { minimumFractionDigits: 0 })
|
|
365
405
|
})]
|
|
366
406
|
}),
|
|
367
|
-
/* @__PURE__ */
|
|
407
|
+
/* @__PURE__ */ E("div", {
|
|
368
408
|
className: "flex justify-between",
|
|
369
|
-
children: [/* @__PURE__ */
|
|
409
|
+
children: [/* @__PURE__ */ T("span", {
|
|
370
410
|
className: "text-text-secondary",
|
|
371
411
|
children: "Service Fee:"
|
|
372
|
-
}), /* @__PURE__ */
|
|
412
|
+
}), /* @__PURE__ */ T("span", {
|
|
373
413
|
className: "text-text-primary",
|
|
374
|
-
children:
|
|
414
|
+
children: s(Z, { minimumFractionDigits: 0 })
|
|
375
415
|
})]
|
|
376
416
|
}),
|
|
377
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ E("div", {
|
|
378
418
|
className: "flex justify-between text-text-secondary",
|
|
379
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ T("span", { children: "Balance Payment (at arrival):" }), /* @__PURE__ */ T("span", { children: s($, { minimumFractionDigits: 0 }) })]
|
|
380
420
|
}),
|
|
381
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ E("div", {
|
|
382
422
|
className: "flex justify-between border-t border-border-subtle pt-2 font-semibold",
|
|
383
|
-
children: [/* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ T("span", {
|
|
384
424
|
className: "text-text-primary",
|
|
385
425
|
children: "Total Amount:"
|
|
386
|
-
}), /* @__PURE__ */
|
|
426
|
+
}), /* @__PURE__ */ T("span", {
|
|
387
427
|
className: "text-text-primary",
|
|
388
|
-
children:
|
|
428
|
+
children: s(te, { minimumFractionDigits: 0 })
|
|
389
429
|
})]
|
|
390
430
|
})
|
|
391
431
|
]
|
|
@@ -395,140 +435,140 @@ function j() {
|
|
|
395
435
|
})
|
|
396
436
|
]
|
|
397
437
|
}),
|
|
398
|
-
|
|
438
|
+
z === "confirmation" && Y && /* @__PURE__ */ E("div", {
|
|
399
439
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
400
440
|
children: [
|
|
401
|
-
/* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ E("div", {
|
|
402
442
|
className: "text-center mb-6",
|
|
403
443
|
children: [
|
|
404
|
-
/* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ T("div", {
|
|
405
445
|
className: "mx-auto mb-3 flex h-14 w-14 items-center justify-center rounded-full bg-status-success-bg-subtle",
|
|
406
|
-
children: /* @__PURE__ */
|
|
446
|
+
children: /* @__PURE__ */ T(p, { className: "h-7 w-7 text-status-success-text" })
|
|
407
447
|
}),
|
|
408
|
-
/* @__PURE__ */
|
|
448
|
+
/* @__PURE__ */ T("h2", {
|
|
409
449
|
className: "text-lg font-semibold text-text-primary mb-1",
|
|
410
450
|
children: "Booking Confirmed!"
|
|
411
451
|
}),
|
|
412
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ T("p", {
|
|
413
453
|
className: "text-sm text-text-secondary",
|
|
414
454
|
children: "Your direct service booking has been confirmed and payment processed."
|
|
415
455
|
})
|
|
416
456
|
]
|
|
417
457
|
}),
|
|
418
|
-
/* @__PURE__ */
|
|
458
|
+
/* @__PURE__ */ E("div", {
|
|
419
459
|
className: "rounded-lg bg-bg-sunken p-4 mb-4",
|
|
420
|
-
children: [/* @__PURE__ */
|
|
460
|
+
children: [/* @__PURE__ */ T("h3", {
|
|
421
461
|
className: "text-sm font-medium text-text-primary mb-3",
|
|
422
462
|
children: "Booking Details"
|
|
423
|
-
}), /* @__PURE__ */
|
|
463
|
+
}), /* @__PURE__ */ E("div", {
|
|
424
464
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm",
|
|
425
465
|
children: [
|
|
426
|
-
/* @__PURE__ */
|
|
466
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
427
467
|
className: "text-xs text-text-secondary",
|
|
428
468
|
children: "Booking ID"
|
|
429
|
-
}), /* @__PURE__ */
|
|
469
|
+
}), /* @__PURE__ */ T("p", {
|
|
430
470
|
className: "font-mono text-xs text-text-primary",
|
|
431
|
-
children:
|
|
471
|
+
children: Y.bookingId
|
|
432
472
|
})] }),
|
|
433
|
-
/* @__PURE__ */
|
|
473
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
434
474
|
className: "text-xs text-text-secondary",
|
|
435
475
|
children: "Est. Arrival"
|
|
436
|
-
}), /* @__PURE__ */
|
|
476
|
+
}), /* @__PURE__ */ T("p", {
|
|
437
477
|
className: "text-text-primary",
|
|
438
|
-
children: new Date(
|
|
478
|
+
children: new Date(Y.estimatedArrival).toLocaleTimeString([], {
|
|
439
479
|
hour: "2-digit",
|
|
440
480
|
minute: "2-digit"
|
|
441
481
|
})
|
|
442
482
|
})] }),
|
|
443
|
-
/* @__PURE__ */
|
|
483
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
444
484
|
className: "text-xs text-text-secondary",
|
|
445
485
|
children: "Location"
|
|
446
|
-
}), /* @__PURE__ */
|
|
486
|
+
}), /* @__PURE__ */ T("p", {
|
|
447
487
|
className: "text-text-primary truncate",
|
|
448
|
-
children:
|
|
488
|
+
children: U.address
|
|
449
489
|
})] }),
|
|
450
|
-
/* @__PURE__ */
|
|
490
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
451
491
|
className: "text-xs text-text-secondary",
|
|
452
492
|
children: "Phone"
|
|
453
|
-
}), /* @__PURE__ */
|
|
493
|
+
}), /* @__PURE__ */ T("p", {
|
|
454
494
|
className: "text-text-primary",
|
|
455
|
-
children:
|
|
495
|
+
children: U.phoneNumber
|
|
456
496
|
})] })
|
|
457
497
|
]
|
|
458
498
|
})]
|
|
459
499
|
}),
|
|
460
|
-
/* @__PURE__ */
|
|
500
|
+
/* @__PURE__ */ E("div", {
|
|
461
501
|
className: "rounded-lg border border-status-success-text/20 bg-status-success-bg-subtle p-4 mb-4",
|
|
462
|
-
children: [/* @__PURE__ */
|
|
502
|
+
children: [/* @__PURE__ */ E("h3", {
|
|
463
503
|
className: "text-sm font-medium text-status-success-text mb-2 flex items-center gap-2",
|
|
464
|
-
children: [/* @__PURE__ */
|
|
465
|
-
}), /* @__PURE__ */
|
|
504
|
+
children: [/* @__PURE__ */ T(p, { className: "h-4 w-4" }), "Payment Processed"]
|
|
505
|
+
}), /* @__PURE__ */ E("div", {
|
|
466
506
|
className: "grid grid-cols-2 gap-3 text-sm",
|
|
467
507
|
children: [
|
|
468
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
469
509
|
className: "text-xs text-text-secondary",
|
|
470
510
|
children: "Transaction ID"
|
|
471
|
-
}), /* @__PURE__ */
|
|
511
|
+
}), /* @__PURE__ */ T("p", {
|
|
472
512
|
className: "font-mono text-xs text-text-primary",
|
|
473
|
-
children:
|
|
513
|
+
children: Y.transactionId
|
|
474
514
|
})] }),
|
|
475
|
-
/* @__PURE__ */
|
|
515
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
476
516
|
className: "text-xs text-text-secondary",
|
|
477
517
|
children: "Advance Paid"
|
|
478
|
-
}), /* @__PURE__ */
|
|
518
|
+
}), /* @__PURE__ */ T("p", {
|
|
479
519
|
className: "font-medium text-text-primary",
|
|
480
|
-
children:
|
|
520
|
+
children: s(Q, { minimumFractionDigits: 0 })
|
|
481
521
|
})] }),
|
|
482
|
-
/* @__PURE__ */
|
|
522
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
483
523
|
className: "text-xs text-text-secondary",
|
|
484
524
|
children: "Method"
|
|
485
|
-
}), /* @__PURE__ */
|
|
525
|
+
}), /* @__PURE__ */ T("p", {
|
|
486
526
|
className: "capitalize text-text-primary",
|
|
487
|
-
children:
|
|
527
|
+
children: q
|
|
488
528
|
})] }),
|
|
489
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("span", {
|
|
490
530
|
className: "text-xs text-text-secondary",
|
|
491
531
|
children: "Status"
|
|
492
|
-
}), /* @__PURE__ */
|
|
532
|
+
}), /* @__PURE__ */ T("p", {
|
|
493
533
|
className: "font-medium text-status-success-text",
|
|
494
534
|
children: "Paid"
|
|
495
535
|
})] })
|
|
496
536
|
]
|
|
497
537
|
})]
|
|
498
538
|
}),
|
|
499
|
-
/* @__PURE__ */
|
|
539
|
+
/* @__PURE__ */ E("div", {
|
|
500
540
|
className: "rounded-lg border border-border-focus/20 bg-[var(--color-accent-soft)] p-4 mb-6",
|
|
501
|
-
children: [/* @__PURE__ */
|
|
541
|
+
children: [/* @__PURE__ */ T("h3", {
|
|
502
542
|
className: "text-sm font-medium text-text-primary mb-2",
|
|
503
543
|
children: "Next Steps"
|
|
504
|
-
}), /* @__PURE__ */
|
|
544
|
+
}), /* @__PURE__ */ E("div", {
|
|
505
545
|
className: "space-y-2 text-xs text-text-primary",
|
|
506
546
|
children: [
|
|
507
|
-
/* @__PURE__ */
|
|
547
|
+
/* @__PURE__ */ E("div", {
|
|
508
548
|
className: "flex items-start gap-2",
|
|
509
|
-
children: [/* @__PURE__ */
|
|
549
|
+
children: [/* @__PURE__ */ T(p, { className: "h-3.5 w-3.5 text-status-success-text mt-0.5 shrink-0" }), /* @__PURE__ */ E("span", { children: [
|
|
510
550
|
"Payment confirmed -",
|
|
511
551
|
" ",
|
|
512
|
-
|
|
552
|
+
s(Q, { minimumFractionDigits: 0 }),
|
|
513
553
|
" paid"
|
|
514
554
|
] })]
|
|
515
555
|
}),
|
|
516
|
-
/* @__PURE__ */
|
|
556
|
+
/* @__PURE__ */ E("div", {
|
|
517
557
|
className: "flex items-start gap-2",
|
|
518
|
-
children: [/* @__PURE__ */
|
|
558
|
+
children: [/* @__PURE__ */ T(m, { className: "h-3.5 w-3.5 mt-0.5 shrink-0" }), /* @__PURE__ */ E("span", { children: [
|
|
519
559
|
"Cart will arrive around",
|
|
520
560
|
" ",
|
|
521
|
-
new Date(
|
|
561
|
+
new Date(Y.estimatedArrival).toLocaleTimeString([], {
|
|
522
562
|
hour: "2-digit",
|
|
523
563
|
minute: "2-digit"
|
|
524
564
|
})
|
|
525
565
|
] })]
|
|
526
566
|
}),
|
|
527
|
-
/* @__PURE__ */
|
|
567
|
+
/* @__PURE__ */ E("div", {
|
|
528
568
|
className: "flex items-start gap-2",
|
|
529
|
-
children: [/* @__PURE__ */
|
|
569
|
+
children: [/* @__PURE__ */ T(h, { className: "h-3.5 w-3.5 mt-0.5 shrink-0" }), /* @__PURE__ */ E("span", { children: [
|
|
530
570
|
"Pay remaining ",
|
|
531
|
-
|
|
571
|
+
s($, { minimumFractionDigits: 0 }),
|
|
532
572
|
" ",
|
|
533
573
|
"when cart arrives"
|
|
534
574
|
] })]
|
|
@@ -536,14 +576,14 @@ function j() {
|
|
|
536
576
|
]
|
|
537
577
|
})]
|
|
538
578
|
}),
|
|
539
|
-
/* @__PURE__ */
|
|
579
|
+
/* @__PURE__ */ E("div", {
|
|
540
580
|
className: "flex gap-3",
|
|
541
|
-
children: [/* @__PURE__ */
|
|
581
|
+
children: [/* @__PURE__ */ T("button", {
|
|
542
582
|
type: "button",
|
|
543
|
-
onClick: () => M(`/customer/bookings/${
|
|
583
|
+
onClick: () => M(`/customer/bookings/${Y.bookingId}`),
|
|
544
584
|
className: "flex-1 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
|
|
545
585
|
children: "View Booking"
|
|
546
|
-
}), /* @__PURE__ */
|
|
586
|
+
}), /* @__PURE__ */ T("button", {
|
|
547
587
|
type: "button",
|
|
548
588
|
onClick: () => M("/customer/carts"),
|
|
549
589
|
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",
|
|
@@ -552,71 +592,71 @@ function j() {
|
|
|
552
592
|
})
|
|
553
593
|
]
|
|
554
594
|
}),
|
|
555
|
-
|
|
595
|
+
z !== "confirmation" && /* @__PURE__ */ E("div", {
|
|
556
596
|
className: "flex justify-between mt-5",
|
|
557
|
-
children: [/* @__PURE__ */
|
|
597
|
+
children: [/* @__PURE__ */ E("button", {
|
|
558
598
|
type: "button",
|
|
559
|
-
onClick:
|
|
560
|
-
disabled:
|
|
561
|
-
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",
|
|
562
|
-
children: [/* @__PURE__ */
|
|
563
|
-
}), /* @__PURE__ */
|
|
599
|
+
onClick: ce,
|
|
600
|
+
disabled: z === "location",
|
|
601
|
+
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", z === "location" ? "opacity-40 cursor-not-allowed" : "hover:bg-accent"),
|
|
602
|
+
children: [/* @__PURE__ */ T(u, { className: "h-4 w-4" }), "Previous"]
|
|
603
|
+
}), /* @__PURE__ */ T("button", {
|
|
564
604
|
type: "button",
|
|
565
|
-
onClick:
|
|
566
|
-
disabled:
|
|
567
|
-
className: t("flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background transition-opacity",
|
|
568
|
-
children:
|
|
605
|
+
onClick: se,
|
|
606
|
+
disabled: V,
|
|
607
|
+
className: t("flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background transition-opacity", V ? "opacity-60 cursor-not-allowed" : "hover:opacity-90"),
|
|
608
|
+
children: V ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(_, { className: "h-4 w-4 animate-spin" }), z === "payment" ? "Processing Payment..." : "Processing..."] }) : /* @__PURE__ */ E(w, { children: [z === "payment" ? "Confirm & Pay" : "Next", /* @__PURE__ */ T(d, { className: "h-4 w-4" })] })
|
|
569
609
|
})]
|
|
570
610
|
})
|
|
571
611
|
]
|
|
572
|
-
}), /* @__PURE__ */
|
|
612
|
+
}), /* @__PURE__ */ T("div", {
|
|
573
613
|
className: "lg:col-span-1",
|
|
574
|
-
children: /* @__PURE__ */
|
|
614
|
+
children: /* @__PURE__ */ E("div", {
|
|
575
615
|
className: "sticky top-6 rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
576
616
|
children: [
|
|
577
|
-
/* @__PURE__ */
|
|
617
|
+
/* @__PURE__ */ T("h3", {
|
|
578
618
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
579
619
|
children: "Service Summary"
|
|
580
620
|
}),
|
|
581
|
-
/* @__PURE__ */
|
|
621
|
+
/* @__PURE__ */ E("div", {
|
|
582
622
|
className: "flex items-center gap-3 mb-4",
|
|
583
|
-
children: [/* @__PURE__ */
|
|
584
|
-
src:
|
|
585
|
-
alt:
|
|
623
|
+
children: [/* @__PURE__ */ T("img", {
|
|
624
|
+
src: P.image,
|
|
625
|
+
alt: P.name,
|
|
586
626
|
className: "h-12 w-12 rounded-lg object-cover"
|
|
587
|
-
}), /* @__PURE__ */
|
|
627
|
+
}), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
|
|
588
628
|
className: "text-sm font-medium text-text-primary",
|
|
589
|
-
children:
|
|
590
|
-
}), /* @__PURE__ */
|
|
629
|
+
children: P.name
|
|
630
|
+
}), /* @__PURE__ */ T("p", {
|
|
591
631
|
className: "text-xs text-text-secondary",
|
|
592
|
-
children:
|
|
632
|
+
children: P.category
|
|
593
633
|
})] })]
|
|
594
634
|
}),
|
|
595
|
-
/* @__PURE__ */
|
|
635
|
+
/* @__PURE__ */ E("div", {
|
|
596
636
|
className: "space-y-2 text-sm border-t border-border-subtle pt-3",
|
|
597
|
-
children: [/* @__PURE__ */
|
|
637
|
+
children: [/* @__PURE__ */ E("div", {
|
|
598
638
|
className: "flex justify-between",
|
|
599
|
-
children: [/* @__PURE__ */
|
|
639
|
+
children: [/* @__PURE__ */ T("span", {
|
|
600
640
|
className: "text-text-secondary",
|
|
601
641
|
children: "Service Fee:"
|
|
602
|
-
}), /* @__PURE__ */
|
|
642
|
+
}), /* @__PURE__ */ T("span", {
|
|
603
643
|
className: "text-text-primary",
|
|
604
|
-
children:
|
|
644
|
+
children: s(Z, { minimumFractionDigits: 0 })
|
|
605
645
|
})]
|
|
606
|
-
}), /* @__PURE__ */
|
|
646
|
+
}), /* @__PURE__ */ E("div", {
|
|
607
647
|
className: "flex justify-between",
|
|
608
|
-
children: [/* @__PURE__ */
|
|
648
|
+
children: [/* @__PURE__ */ T("span", {
|
|
609
649
|
className: "text-text-secondary",
|
|
610
650
|
children: "Advance Payment:"
|
|
611
|
-
}), /* @__PURE__ */
|
|
651
|
+
}), /* @__PURE__ */ T("span", {
|
|
612
652
|
className: "font-medium text-text-primary",
|
|
613
|
-
children:
|
|
653
|
+
children: s(Q, { minimumFractionDigits: 0 })
|
|
614
654
|
})]
|
|
615
655
|
})]
|
|
616
656
|
}),
|
|
617
|
-
/* @__PURE__ */
|
|
657
|
+
/* @__PURE__ */ E("div", {
|
|
618
658
|
className: "flex items-center gap-2 mt-3 pt-3 border-t border-border-subtle text-status-success-text",
|
|
619
|
-
children: [/* @__PURE__ */
|
|
659
|
+
children: [/* @__PURE__ */ T(p, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ T("span", {
|
|
620
660
|
className: "text-xs",
|
|
621
661
|
children: "Pay remaining amount at cart"
|
|
622
662
|
})]
|