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