@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.
Files changed (96) hide show
  1. package/dist/kadaikodi/hooks/useKadaikodiApi.js +260 -105
  2. package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
  3. package/dist/kadaikodi/pages/HomePage.js +4 -4
  4. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  5. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +341 -461
  6. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  7. package/dist/kadaikodi/pages/admin/AdminDashboard.js +115 -399
  8. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  9. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +140 -283
  10. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
  11. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +282 -453
  12. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  13. package/dist/kadaikodi/pages/admin/AdminProfilePage.js +115 -242
  14. package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
  15. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +2 -2
  16. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
  17. package/dist/kadaikodi/pages/admin/CartManagementPage.js +279 -333
  18. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  19. package/dist/kadaikodi/pages/admin/UserManagementPage.js +299 -372
  20. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +503 -627
  22. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  23. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +339 -282
  24. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  25. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +329 -432
  26. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  27. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +374 -384
  28. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  29. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +249 -208
  30. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +276 -279
  32. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  33. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +229 -447
  34. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +171 -627
  36. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/common/HelpSupportPage.js +331 -415
  38. package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
  39. package/dist/kadaikodi/pages/common/NotificationCenterPage.js +18 -670
  40. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  41. package/dist/kadaikodi/pages/common/SettingsPage.js +34 -46
  42. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  43. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +193 -447
  44. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  45. package/dist/kadaikodi/pages/customer/CartDetailPage.js +6 -6
  46. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  47. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
  48. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  49. package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -2
  50. package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
  51. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +191 -369
  52. package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
  53. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +233 -389
  54. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  55. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +255 -215
  56. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  57. package/dist/kadaikodi/pages/customer/FavoritesPage.js +141 -178
  58. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  59. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
  60. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +155 -161
  61. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  62. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +76 -118
  63. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
  64. package/dist/kadaikodi/pages/customer/ReviewsPage.js +14 -140
  65. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  66. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +135 -213
  67. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
  68. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +272 -774
  69. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  70. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +258 -523
  71. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  72. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +112 -600
  73. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  74. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +128 -295
  75. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  76. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +205 -291
  77. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  78. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +159 -500
  79. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
  80. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +426 -514
  81. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  82. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +231 -225
  83. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  84. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +197 -301
  85. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  86. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +247 -399
  87. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  88. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +294 -327
  89. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  90. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +179 -397
  91. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/kadaikodi/mocks/data.js +0 -1517
  94. package/dist/kadaikodi/mocks/data.js.map +0 -1
  95. package/dist/kadaikodi/mocks/users.js +0 -34
  96. package/dist/kadaikodi/mocks/users.js.map +0 -1
@@ -3,593 +3,339 @@ import { cn as t } from "../../utils/cn.js";
3
3
  import { PageLayout as n } from "../../components/PageLayout.js";
4
4
  import { StatusBadge as r } from "../../components/StatusBadge.js";
5
5
  import { EmptyState as i } from "../../components/EmptyState.js";
6
- import { formatCurrency as a, formatDate as o } from "../../utils/formatters.js";
7
- import { useMemo as s, useState as c } from "react";
8
- import { AlertTriangle as l, ArrowLeft as u, Calendar as d, CalendarCheck as f, CheckCircle2 as p, Circle as m, Clock as h, Headphones as g, MapPin as _, Phone as v, ShoppingBag as y, Star as b, XCircle as x } from "lucide-react";
9
- import { useParams as S } from "react-router-dom";
10
- import { jsx as C, jsxs as w } from "react/jsx-runtime";
11
- import { GlassCard as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
6
+ import { useOrder as a } from "../../hooks/useKadaikodiApi.js";
7
+ import { formatCurrency as o, formatDate as s } from "../../utils/formatters.js";
8
+ import { useMemo as c, useState as l } from "react";
9
+ import { ArrowLeft as u, CalendarCheck as d, CheckCircle2 as f, Circle as p, Headphones as m, MapPin as h, ShoppingBag as g, Star as _, XCircle as v } from "lucide-react";
10
+ import { useParams as y } from "react-router-dom";
11
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
12
+ import { GlassCard as S, PagePurpose as C } from "@burdenoff/fe-libs/ui";
12
13
  //#region src/kadaikodi/pages/customer/BookingDetailsPage.tsx
13
- var D = [
14
- {
15
- id: "BK-001",
16
- serviceName: "Men's Haircut + Beard Trim",
17
- serviceDescription: "Professional haircut and beard grooming service at your doorstep",
18
- provider: {
19
- id: "SERV-001",
20
- name: "Quick Cuts Salon",
21
- phone: "+91-9876543210",
22
- rating: 4.6,
23
- reviewCount: 248,
24
- category: "Personal Care & Beauty",
25
- image: "https://images.unsplash.com/photo-1562322140-8baeececf3df?w=400",
26
- location: "Indiranagar, Bangalore"
27
- },
28
- scheduledDate: "2024-01-20",
29
- scheduledTime: "10:00 AM",
30
- duration: 50,
31
- status: "confirmed",
32
- location: {
33
- street: "123 Main Street",
34
- area: "Koramangala",
35
- city: "Bangalore",
36
- pincode: "560034",
37
- landmark: "Near Metro Station"
38
- },
39
- pricing: {
40
- serviceCharge: 450,
41
- convenienceFee: 30,
42
- tax: 48,
43
- discount: 50,
44
- total: 478
45
- },
46
- createdAt: "2024-01-16T14:30:00Z",
47
- notes: "Please bring your own equipment",
48
- timeline: [
49
- {
50
- status: "booked",
51
- label: "Booking Placed",
52
- timestamp: "2024-01-16T14:30:00Z",
53
- completed: !0
54
- },
55
- {
56
- status: "confirmed",
57
- label: "Booking Confirmed",
58
- timestamp: "2024-01-16T14:35:00Z",
59
- completed: !0
60
- },
61
- {
62
- status: "in_progress",
63
- label: "Service Started",
64
- timestamp: null,
65
- completed: !1
66
- },
67
- {
68
- status: "completed",
69
- label: "Service Completed",
70
- timestamp: null,
71
- completed: !1
72
- }
73
- ]
74
- },
75
- {
76
- id: "BK-002",
77
- serviceName: "Deep House Cleaning",
78
- serviceDescription: "Complete house cleaning service including kitchen, bathrooms, and living areas",
79
- provider: {
80
- id: "SERV-005",
81
- name: "Spotless Cleaning Services",
82
- phone: "+91-9876543215",
83
- rating: 4.8,
84
- reviewCount: 312,
85
- category: "Home Services",
86
- image: "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400",
87
- location: "Whitefield, Bangalore"
88
- },
89
- scheduledDate: "2024-01-18",
90
- scheduledTime: "09:00 AM",
91
- duration: 180,
92
- status: "completed",
93
- location: {
94
- street: "456 Park Avenue",
95
- area: "Indiranagar",
96
- city: "Bangalore",
97
- pincode: "560038"
98
- },
99
- pricing: {
100
- serviceCharge: 1500,
101
- convenienceFee: 50,
102
- tax: 155,
103
- discount: 0,
104
- total: 1705
105
- },
106
- createdAt: "2024-01-15T10:00:00Z",
107
- timeline: [
108
- {
109
- status: "booked",
110
- label: "Booking Placed",
111
- timestamp: "2024-01-15T10:00:00Z",
112
- completed: !0
113
- },
114
- {
115
- status: "confirmed",
116
- label: "Booking Confirmed",
117
- timestamp: "2024-01-15T10:05:00Z",
118
- completed: !0
119
- },
120
- {
121
- status: "in_progress",
122
- label: "Service Started",
123
- timestamp: "2024-01-18T09:10:00Z",
124
- completed: !0
125
- },
126
- {
127
- status: "completed",
128
- label: "Service Completed",
129
- timestamp: "2024-01-18T12:15:00Z",
130
- completed: !0
131
- }
132
- ]
133
- },
134
- {
135
- id: "BK-003",
136
- serviceName: "Facial Treatment",
137
- serviceDescription: "Deep cleansing facial with natural ingredients for glowing skin",
138
- provider: {
139
- id: "SERV-002",
140
- name: "Glow Beauty Services",
141
- phone: "+91-9876543212",
142
- rating: 4.7,
143
- reviewCount: 180,
144
- category: "Personal Care & Beauty",
145
- image: "https://images.unsplash.com/photo-1560066984-138dadb4c035?w=400",
146
- location: "HSR Layout, Bangalore"
147
- },
148
- scheduledDate: "2024-01-22",
149
- scheduledTime: "02:00 PM",
150
- duration: 60,
151
- status: "cancelled",
152
- location: {
153
- street: "789 Lake View",
154
- area: "HSR Layout",
155
- city: "Bangalore",
156
- pincode: "560102"
157
- },
158
- pricing: {
159
- serviceCharge: 800,
160
- convenienceFee: 30,
161
- tax: 83,
162
- discount: 0,
163
- total: 913
164
- },
165
- createdAt: "2024-01-17T16:00:00Z",
166
- cancellationReason: "Schedule conflict - need to reschedule",
167
- timeline: [
168
- {
169
- status: "booked",
170
- label: "Booking Placed",
171
- timestamp: "2024-01-17T16:00:00Z",
172
- completed: !0
173
- },
174
- {
175
- status: "confirmed",
176
- label: "Booking Confirmed",
177
- timestamp: "2024-01-17T16:10:00Z",
178
- completed: !0
179
- },
180
- {
181
- status: "cancelled",
182
- label: "Booking Cancelled",
183
- timestamp: "2024-01-18T09:00:00Z",
184
- completed: !0
185
- }
186
- ]
187
- }
188
- ], O = (e) => D.find((t) => t.id === e);
189
- function k() {
190
- let { bookingId: D } = S(), { navigateTo: k } = e(), [A, j] = c(null), M = s(() => D ? O(D) : void 0, [D]), N = (e) => {
191
- j(e), setTimeout(() => j(null), 3e3);
192
- };
193
- if (!M) return /* @__PURE__ */ C(n, {
14
+ function w() {
15
+ let { bookingId: w } = y(), { navigateTo: T } = e(), { data: E, isLoading: D } = a(w), [O, k] = l(null), A = (e) => {
16
+ k(e), setTimeout(() => k(null), 3e3);
17
+ }, j = c(() => E ? E.timeline.length > 0 ? E.timeline.map((e) => ({
18
+ status: e.status,
19
+ label: e.description || e.status,
20
+ timestamp: e.timestamp,
21
+ completed: !0
22
+ })) : [{
23
+ status: "placed",
24
+ label: "Order placed",
25
+ timestamp: E.orderDate,
26
+ completed: !0
27
+ }] : [], [E]);
28
+ if (D) return /* @__PURE__ */ b(n, {
29
+ title: "Booking Details",
30
+ children: /* @__PURE__ */ b("div", {
31
+ className: "flex items-center justify-center py-20",
32
+ children: /* @__PURE__ */ b("div", { className: "h-12 w-12 animate-spin rounded-full border-b-2 border-foreground" })
33
+ })
34
+ });
35
+ if (!E) return /* @__PURE__ */ b(n, {
194
36
  title: "Booking Not Found",
195
- children: /* @__PURE__ */ C(i, {
196
- icon: /* @__PURE__ */ C(f, { className: "h-12 w-12" }),
37
+ children: /* @__PURE__ */ b(i, {
38
+ icon: /* @__PURE__ */ b(d, { className: "h-12 w-12" }),
197
39
  title: "Booking not found",
198
- description: `No booking found with ID "${D}".`,
199
- action: /* @__PURE__ */ C("button", {
40
+ description: `No booking found with ID "${w}".`,
41
+ action: /* @__PURE__ */ b("button", {
200
42
  type: "button",
201
- onClick: () => k("/customer/dashboard"),
43
+ onClick: () => T("/customer/dashboard"),
202
44
  className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
203
45
  children: "Go to Dashboard"
204
46
  })
205
47
  })
206
48
  });
207
- let P = M.status === "cancelled", F = M.status === "completed", I = !P && !F;
208
- return /* @__PURE__ */ w(n, {
209
- title: /* @__PURE__ */ w("div", {
49
+ let M = E.status === "cancelled", N = E.status === "delivered", P = !M && !N, F = E.deliveryAddress, I = !!(F.street || F.area || F.city);
50
+ return /* @__PURE__ */ x(n, {
51
+ title: /* @__PURE__ */ x("div", {
210
52
  className: "flex items-center gap-3",
211
- children: [/* @__PURE__ */ C("button", {
53
+ children: [/* @__PURE__ */ b("button", {
212
54
  type: "button",
213
- onClick: () => k("/customer/dashboard"),
55
+ onClick: () => T("/customer/dashboard"),
214
56
  className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
215
- children: /* @__PURE__ */ C(u, { className: "h-5 w-5" })
216
- }), /* @__PURE__ */ w("span", { children: ["Booking #", M.id] })]
57
+ children: /* @__PURE__ */ b(u, { className: "h-5 w-5" })
58
+ }), /* @__PURE__ */ x("span", { children: ["Booking #", E.id] })]
217
59
  }),
218
- actions: /* @__PURE__ */ C(r, { status: M.status }),
60
+ actions: /* @__PURE__ */ b(r, { status: E.status }),
219
61
  children: [
220
- /* @__PURE__ */ C(E, {
62
+ /* @__PURE__ */ b(C, {
221
63
  className: "mb-4",
222
- children: "The full picture of one service booking — when and where it's happening, who's providing it, what it costs, and the actions you can take such as rescheduling or cancelling."
64
+ children: "The full picture of one service booking — who's providing it, what was ordered, what it costs, and the actions you can take such as contacting support or cancelling."
223
65
  }),
224
- A && /* @__PURE__ */ w("div", {
66
+ O && /* @__PURE__ */ x("div", {
225
67
  className: "mb-4 rounded-lg border border-status-success-text/30 bg-status-success-bg-subtle p-3 flex items-center gap-2",
226
- children: [/* @__PURE__ */ C(p, { className: "h-4 w-4 text-status-success-text shrink-0" }), /* @__PURE__ */ C("p", {
68
+ children: [/* @__PURE__ */ b(f, { className: "h-4 w-4 text-status-success-text shrink-0" }), /* @__PURE__ */ b("p", {
227
69
  className: "text-sm text-status-success-text",
228
- children: A
70
+ children: O
229
71
  })]
230
72
  }),
231
- /* @__PURE__ */ w("div", {
73
+ /* @__PURE__ */ x("div", {
232
74
  className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
233
- children: [/* @__PURE__ */ w("div", {
75
+ children: [/* @__PURE__ */ x("div", {
234
76
  className: "lg:col-span-2 space-y-6",
235
77
  children: [
236
- /* @__PURE__ */ w(T, {
78
+ /* @__PURE__ */ x(S, {
237
79
  treatment: "glass",
238
80
  glow: !0,
239
81
  className: "p-6",
240
82
  children: [
241
- /* @__PURE__ */ C("h2", {
83
+ /* @__PURE__ */ b("h2", {
242
84
  className: "text-lg font-semibold text-text-primary",
243
- children: M.serviceName
85
+ children: E.cartName
244
86
  }),
245
- /* @__PURE__ */ C("p", {
87
+ /* @__PURE__ */ x("p", {
246
88
  className: "mt-1 text-sm text-text-secondary",
247
- children: M.serviceDescription
248
- }),
249
- /* @__PURE__ */ w("div", {
250
- className: "mt-4 flex flex-wrap gap-4 text-sm text-text-secondary",
251
- children: [
252
- /* @__PURE__ */ w("div", {
253
- className: "flex items-center gap-1.5",
254
- children: [/* @__PURE__ */ C(d, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: M.scheduledDate })]
255
- }),
256
- /* @__PURE__ */ w("div", {
257
- className: "flex items-center gap-1.5",
258
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: M.scheduledTime })]
259
- }),
260
- /* @__PURE__ */ w("div", {
261
- className: "flex items-center gap-1.5",
262
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: [M.duration, " min"] })]
263
- })
264
- ]
265
- }),
266
- M.notes && /* @__PURE__ */ w("div", {
267
- className: "mt-4 rounded-md bg-bg-sunken p-3",
268
- children: [/* @__PURE__ */ C("p", {
269
- className: "text-xs text-text-secondary mb-1",
270
- children: "Notes"
271
- }), /* @__PURE__ */ C("p", {
272
- className: "text-sm text-text-primary",
273
- children: M.notes
274
- })]
89
+ children: ["Order placed on ", s(E.orderDate)]
275
90
  }),
276
- M.cancellationReason && /* @__PURE__ */ w("div", {
277
- className: "mt-4 rounded-md bg-status-error-bg-subtle border border-status-error-text/20 p-3",
278
- children: [/* @__PURE__ */ w("div", {
279
- className: "flex items-center gap-2 mb-1",
280
- children: [/* @__PURE__ */ C(l, { className: "h-3.5 w-3.5 text-status-error-text" }), /* @__PURE__ */ C("p", {
281
- className: "text-xs font-medium text-status-error-text",
282
- children: "Cancellation Reason"
91
+ E.items.length > 0 && /* @__PURE__ */ b("div", {
92
+ className: "mt-4 space-y-1.5",
93
+ children: E.items.map((e, t) => /* @__PURE__ */ x("div", {
94
+ className: "flex justify-between text-sm",
95
+ children: [/* @__PURE__ */ x("span", {
96
+ className: "text-text-primary",
97
+ children: [
98
+ e.quantity,
99
+ "x ",
100
+ e.name
101
+ ]
102
+ }), /* @__PURE__ */ b("span", {
103
+ className: "text-text-secondary",
104
+ children: o(e.price * e.quantity, { minimumFractionDigits: 0 })
283
105
  })]
284
- }), /* @__PURE__ */ C("p", {
285
- className: "text-sm text-text-primary",
286
- children: M.cancellationReason
287
- })]
106
+ }, e.id || t))
288
107
  })
289
108
  ]
290
109
  }),
291
- /* @__PURE__ */ w("div", {
110
+ /* @__PURE__ */ x("div", {
292
111
  className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
293
- children: [
294
- /* @__PURE__ */ C("h2", {
295
- className: "text-base font-semibold text-text-primary mb-4",
296
- children: "Service Provider"
297
- }),
298
- /* @__PURE__ */ w("div", {
299
- className: "flex items-center gap-4",
300
- children: [
301
- /* @__PURE__ */ C("div", {
302
- className: "flex h-12 w-12 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
303
- children: /* @__PURE__ */ C(y, { className: "h-6 w-6" })
304
- }),
305
- /* @__PURE__ */ w("div", {
306
- className: "flex-1 min-w-0",
307
- children: [
308
- /* @__PURE__ */ C("p", {
309
- className: "text-sm font-semibold text-text-primary",
310
- children: M.provider.name
311
- }),
312
- /* @__PURE__ */ C("p", {
313
- className: "text-xs text-text-secondary",
314
- children: M.provider.category
315
- }),
316
- /* @__PURE__ */ w("div", {
317
- className: "flex items-center gap-1 mt-1",
318
- children: [/* @__PURE__ */ C(b, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ C("span", {
319
- className: "text-xs font-medium text-text-primary",
320
- children: M.provider.rating
321
- })]
322
- })
323
- ]
324
- }),
325
- /* @__PURE__ */ C("a", {
326
- href: `tel:${M.provider.phone}`,
327
- className: "flex h-10 w-10 items-center justify-center rounded-full bg-bg-sunken text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
328
- children: /* @__PURE__ */ C(v, { className: "h-4 w-4" })
112
+ children: [/* @__PURE__ */ b("h2", {
113
+ className: "text-base font-semibold text-text-primary mb-4",
114
+ children: "Service Provider"
115
+ }), /* @__PURE__ */ x("div", {
116
+ className: "flex items-center gap-4",
117
+ children: [
118
+ /* @__PURE__ */ b("div", {
119
+ className: "flex h-12 w-12 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
120
+ children: /* @__PURE__ */ b(g, { className: "h-6 w-6" })
121
+ }),
122
+ /* @__PURE__ */ b("div", {
123
+ className: "flex-1 min-w-0",
124
+ children: /* @__PURE__ */ b("p", {
125
+ className: "text-sm font-semibold text-text-primary",
126
+ children: E.cartName
329
127
  })
330
- ]
331
- }),
332
- /* @__PURE__ */ w("div", {
333
- className: "mt-3 flex items-center gap-2 text-sm text-text-secondary",
334
- children: [/* @__PURE__ */ C(v, { className: "h-4 w-4 shrink-0" }), /* @__PURE__ */ C("span", { children: M.provider.phone })]
335
- })
336
- ]
128
+ }),
129
+ /* @__PURE__ */ b("button", {
130
+ type: "button",
131
+ onClick: () => T(`/customer/carts/${E.cartId}`),
132
+ className: "rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
133
+ children: "View Cart"
134
+ })
135
+ ]
136
+ })]
337
137
  }),
338
- /* @__PURE__ */ w("div", {
138
+ /* @__PURE__ */ x("div", {
339
139
  className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
340
- children: [/* @__PURE__ */ C("h2", {
140
+ children: [/* @__PURE__ */ b("h2", {
341
141
  className: "text-base font-semibold text-text-primary mb-5",
342
142
  children: "Booking Timeline"
343
- }), /* @__PURE__ */ C("div", {
143
+ }), /* @__PURE__ */ b("div", {
344
144
  className: "relative",
345
- children: M.timeline.map((e, n) => {
346
- let r = n === M.timeline.length - 1, i = e.status === "cancelled", a = i ? x : e.completed ? p : m;
347
- return /* @__PURE__ */ w("div", {
145
+ children: j.map((e, n) => {
146
+ let r = n === j.length - 1, i = e.status === "cancelled", a = i ? v : e.completed ? f : p;
147
+ return /* @__PURE__ */ x("div", {
348
148
  className: "flex gap-4",
349
- children: [/* @__PURE__ */ w("div", {
149
+ children: [/* @__PURE__ */ x("div", {
350
150
  className: "flex flex-col items-center",
351
- children: [/* @__PURE__ */ C("div", {
151
+ children: [/* @__PURE__ */ b("div", {
352
152
  className: t("flex h-8 w-8 shrink-0 items-center justify-center rounded-full", i ? "bg-status-error-bg-subtle text-status-error-text" : e.completed ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-secondary"),
353
- children: /* @__PURE__ */ C(a, { className: "h-4 w-4" })
354
- }), !r && /* @__PURE__ */ C("div", { className: t("w-0.5 flex-1 my-1", e.completed ? "bg-status-success-bg-subtle" : "bg-border") })]
355
- }), /* @__PURE__ */ w("div", {
153
+ children: /* @__PURE__ */ b(a, { className: "h-4 w-4" })
154
+ }), !r && /* @__PURE__ */ b("div", { className: t("w-0.5 flex-1 my-1", e.completed ? "bg-status-success-bg-subtle" : "bg-border") })]
155
+ }), /* @__PURE__ */ x("div", {
356
156
  className: t("pb-6", r && "pb-0"),
357
- children: [/* @__PURE__ */ C("p", {
157
+ children: [/* @__PURE__ */ b("p", {
358
158
  className: "text-sm font-medium text-text-primary",
359
159
  children: e.label
360
- }), /* @__PURE__ */ C("p", {
160
+ }), /* @__PURE__ */ b("p", {
361
161
  className: "mt-0.5 text-xs text-text-secondary",
362
- children: e.timestamp ? o(e.timestamp) : "Pending"
162
+ children: e.timestamp ? s(e.timestamp) : "Pending"
363
163
  })]
364
164
  })]
365
165
  }, `${e.status}-${n}`);
366
166
  })
367
167
  })]
368
168
  }),
369
- /* @__PURE__ */ w("div", {
169
+ /* @__PURE__ */ x("div", {
370
170
  className: "flex flex-col sm:flex-row gap-3",
371
- children: [/* @__PURE__ */ w("button", {
171
+ children: [/* @__PURE__ */ x("button", {
372
172
  type: "button",
373
173
  onClick: () => {
374
- N("Support team will contact you shortly.");
174
+ A("Support team will contact you shortly.");
375
175
  },
376
176
  className: "flex-1 flex items-center justify-center gap-2 rounded-lg border border-border-subtle px-4 py-3 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
377
- children: [/* @__PURE__ */ C(g, { className: "h-4 w-4" }), "Contact Support"]
378
- }), F && /* @__PURE__ */ w("button", {
177
+ children: [/* @__PURE__ */ b(m, { className: "h-4 w-4" }), "Contact Support"]
178
+ }), N && /* @__PURE__ */ x("button", {
379
179
  type: "button",
380
180
  onClick: () => {
381
- N("Thank you! Rating feature coming soon.");
181
+ A("Thank you! Rating feature coming soon.");
382
182
  },
383
183
  className: "flex-1 flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-3 text-sm font-medium text-background hover:opacity-90 transition-opacity",
384
- children: [/* @__PURE__ */ C(b, { className: "h-4 w-4" }), "Rate Service"]
184
+ children: [/* @__PURE__ */ b(_, { className: "h-4 w-4" }), "Rate Service"]
385
185
  })]
386
186
  })
387
187
  ]
388
- }), /* @__PURE__ */ w("div", {
188
+ }), /* @__PURE__ */ x("div", {
389
189
  className: "space-y-6",
390
190
  children: [
391
- /* @__PURE__ */ w("div", {
191
+ /* @__PURE__ */ x("div", {
392
192
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
393
193
  children: [
394
- /* @__PURE__ */ C("h3", {
194
+ /* @__PURE__ */ b("h3", {
395
195
  className: "text-base font-semibold text-text-primary mb-3",
396
196
  children: "Cart Information"
397
197
  }),
398
- /* @__PURE__ */ w("div", {
198
+ /* @__PURE__ */ x("div", {
399
199
  className: "flex items-center gap-3 mb-4",
400
- children: [/* @__PURE__ */ C("img", {
401
- src: M.provider.image,
402
- alt: M.provider.name,
403
- className: "h-14 w-14 rounded-lg object-cover"
404
- }), /* @__PURE__ */ w("div", {
200
+ children: [/* @__PURE__ */ b("div", {
201
+ className: "flex h-14 w-14 shrink-0 items-center justify-center rounded-lg bg-bg-sunken text-text-secondary",
202
+ children: /* @__PURE__ */ b(g, { className: "h-6 w-6" })
203
+ }), /* @__PURE__ */ b("div", {
405
204
  className: "min-w-0",
406
- children: [
407
- /* @__PURE__ */ C("p", {
408
- className: "text-sm font-semibold text-text-primary",
409
- children: M.provider.name
410
- }),
411
- /* @__PURE__ */ C("p", {
412
- className: "text-xs text-text-secondary",
413
- children: M.provider.category
414
- }),
415
- /* @__PURE__ */ w("div", {
416
- className: "flex items-center gap-1 mt-0.5",
417
- children: [
418
- /* @__PURE__ */ C(b, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }),
419
- /* @__PURE__ */ C("span", {
420
- className: "text-xs font-medium text-text-primary",
421
- children: M.provider.rating
422
- }),
423
- /* @__PURE__ */ w("span", {
424
- className: "text-xs text-text-secondary",
425
- children: [
426
- "(",
427
- M.provider.reviewCount,
428
- ")"
429
- ]
430
- })
431
- ]
432
- })
433
- ]
205
+ children: /* @__PURE__ */ b("p", {
206
+ className: "text-sm font-semibold text-text-primary",
207
+ children: E.cartName
208
+ })
434
209
  })]
435
210
  }),
436
- /* @__PURE__ */ C("div", {
437
- className: "space-y-2 text-sm mb-4",
438
- children: /* @__PURE__ */ w("div", {
439
- className: "flex items-start gap-2",
440
- children: [/* @__PURE__ */ C(_, { className: "h-4 w-4 text-text-secondary shrink-0 mt-0.5" }), /* @__PURE__ */ C("span", {
441
- className: "text-text-secondary",
442
- children: M.provider.location
443
- })]
444
- })
445
- }),
446
- /* @__PURE__ */ C("button", {
211
+ /* @__PURE__ */ b("button", {
447
212
  type: "button",
448
- onClick: () => k(`/customer/carts/${M.provider.id}`),
213
+ onClick: () => T(`/customer/carts/${E.cartId}`),
449
214
  className: "w-full rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
450
215
  children: "View Cart Menu"
451
216
  })
452
217
  ]
453
218
  }),
454
- /* @__PURE__ */ w("div", {
219
+ I && /* @__PURE__ */ x("div", {
455
220
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
456
- children: [/* @__PURE__ */ C("h3", {
221
+ children: [/* @__PURE__ */ b("h3", {
457
222
  className: "text-base font-semibold text-text-primary mb-3",
458
223
  children: "Service Location"
459
- }), /* @__PURE__ */ w("div", {
224
+ }), /* @__PURE__ */ x("div", {
460
225
  className: "flex items-start gap-3",
461
- children: [/* @__PURE__ */ C(_, { className: "mt-0.5 h-5 w-5 shrink-0 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [
462
- /* @__PURE__ */ C("p", {
226
+ children: [/* @__PURE__ */ b(h, { className: "mt-0.5 h-5 w-5 shrink-0 text-text-secondary" }), /* @__PURE__ */ x("div", { children: [
227
+ F.street && /* @__PURE__ */ b("p", {
463
228
  className: "text-sm text-text-primary",
464
- children: M.location.street
229
+ children: F.street
465
230
  }),
466
- /* @__PURE__ */ w("p", {
231
+ /* @__PURE__ */ x("p", {
467
232
  className: "text-sm text-text-secondary",
468
- children: [
469
- M.location.area,
470
- ", ",
471
- M.location.city,
472
- " - ",
473
- M.location.pincode
474
- ]
233
+ children: [[F.area, F.city].filter(Boolean).join(", "), F.pincode ? ` - ${F.pincode}` : ""]
475
234
  }),
476
- M.location.landmark && /* @__PURE__ */ w("p", {
235
+ F.landmark && /* @__PURE__ */ x("p", {
477
236
  className: "text-xs text-text-secondary mt-1",
478
- children: ["Landmark: ", M.location.landmark]
237
+ children: ["Landmark: ", F.landmark]
479
238
  })
480
239
  ] })]
481
240
  })]
482
241
  }),
483
- /* @__PURE__ */ w("div", {
242
+ /* @__PURE__ */ x("div", {
484
243
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
485
- children: [/* @__PURE__ */ C("h3", {
244
+ children: [/* @__PURE__ */ b("h3", {
486
245
  className: "text-base font-semibold text-text-primary mb-3",
487
246
  children: "Price Breakdown"
488
- }), /* @__PURE__ */ w("div", {
247
+ }), /* @__PURE__ */ x("div", {
489
248
  className: "space-y-2.5 text-sm",
490
249
  children: [
491
- /* @__PURE__ */ w("div", {
250
+ /* @__PURE__ */ x("div", {
492
251
  className: "flex justify-between",
493
- children: [/* @__PURE__ */ C("span", {
252
+ children: [/* @__PURE__ */ b("span", {
494
253
  className: "text-text-secondary",
495
- children: "Service Charge"
496
- }), /* @__PURE__ */ C("span", {
254
+ children: "Subtotal"
255
+ }), /* @__PURE__ */ b("span", {
497
256
  className: "text-text-primary",
498
- children: a(M.pricing.serviceCharge, { minimumFractionDigits: 0 })
257
+ children: o(E.subtotal, { minimumFractionDigits: 0 })
499
258
  })]
500
259
  }),
501
- /* @__PURE__ */ w("div", {
260
+ /* @__PURE__ */ x("div", {
502
261
  className: "flex justify-between",
503
- children: [/* @__PURE__ */ C("span", {
262
+ children: [/* @__PURE__ */ b("span", {
504
263
  className: "text-text-secondary",
505
- children: "Convenience Fee"
506
- }), /* @__PURE__ */ C("span", {
264
+ children: "Delivery Fee"
265
+ }), /* @__PURE__ */ b("span", {
507
266
  className: "text-text-primary",
508
- children: a(M.pricing.convenienceFee, { minimumFractionDigits: 0 })
267
+ children: E.deliveryFee === 0 ? "FREE" : o(E.deliveryFee, { minimumFractionDigits: 0 })
509
268
  })]
510
269
  }),
511
- /* @__PURE__ */ w("div", {
270
+ /* @__PURE__ */ x("div", {
512
271
  className: "flex justify-between",
513
- children: [/* @__PURE__ */ C("span", {
272
+ children: [/* @__PURE__ */ b("span", {
514
273
  className: "text-text-secondary",
515
274
  children: "Tax"
516
- }), /* @__PURE__ */ C("span", {
275
+ }), /* @__PURE__ */ b("span", {
517
276
  className: "text-text-primary",
518
- children: a(M.pricing.tax, { minimumFractionDigits: 0 })
277
+ children: o(E.taxes, { minimumFractionDigits: 0 })
519
278
  })]
520
279
  }),
521
- M.pricing.discount > 0 && /* @__PURE__ */ w("div", {
280
+ E.discount != null && E.discount > 0 && /* @__PURE__ */ x("div", {
522
281
  className: "flex justify-between",
523
- children: [/* @__PURE__ */ C("span", {
282
+ children: [/* @__PURE__ */ b("span", {
524
283
  className: "text-status-success-text",
525
284
  children: "Discount"
526
- }), /* @__PURE__ */ w("span", {
285
+ }), /* @__PURE__ */ x("span", {
527
286
  className: "text-status-success-text",
528
- children: ["-", a(M.pricing.discount, { minimumFractionDigits: 0 })]
287
+ children: ["-", o(E.discount, { minimumFractionDigits: 0 })]
529
288
  })]
530
289
  }),
531
- /* @__PURE__ */ w("div", {
290
+ /* @__PURE__ */ x("div", {
532
291
  className: "flex justify-between border-t border-border-subtle pt-2.5",
533
- children: [/* @__PURE__ */ C("span", {
292
+ children: [/* @__PURE__ */ b("span", {
534
293
  className: "font-semibold text-text-primary",
535
294
  children: "Total"
536
- }), /* @__PURE__ */ C("span", {
295
+ }), /* @__PURE__ */ b("span", {
537
296
  className: "font-bold text-text-primary",
538
- children: a(M.pricing.total, { minimumFractionDigits: 0 })
297
+ children: o(E.total, { minimumFractionDigits: 0 })
539
298
  })]
540
299
  })
541
300
  ]
542
301
  })]
543
302
  }),
544
- /* @__PURE__ */ w("div", {
303
+ /* @__PURE__ */ x("div", {
545
304
  className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
546
- children: [/* @__PURE__ */ C("h3", {
305
+ children: [/* @__PURE__ */ b("h3", {
547
306
  className: "text-base font-semibold text-text-primary mb-3",
548
307
  children: "Booking Info"
549
- }), /* @__PURE__ */ w("div", {
308
+ }), /* @__PURE__ */ x("div", {
550
309
  className: "space-y-3",
551
- children: [
552
- /* @__PURE__ */ w("div", {
553
- className: "flex items-center gap-2",
554
- children: [/* @__PURE__ */ C(f, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
555
- className: "text-xs text-text-secondary",
556
- children: "Booked On"
557
- }), /* @__PURE__ */ C("p", {
558
- className: "text-sm text-text-primary",
559
- children: o(M.createdAt)
560
- })] })]
561
- }),
562
- /* @__PURE__ */ w("div", {
563
- className: "flex items-center gap-2",
564
- children: [/* @__PURE__ */ C(d, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
565
- className: "text-xs text-text-secondary",
566
- children: "Scheduled"
567
- }), /* @__PURE__ */ w("p", {
568
- className: "text-sm text-text-primary",
569
- children: [
570
- M.scheduledDate,
571
- " at ",
572
- M.scheduledTime
573
- ]
574
- })] })]
575
- }),
576
- /* @__PURE__ */ w("div", {
577
- className: "flex items-center gap-2",
578
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
579
- className: "text-xs text-text-secondary",
580
- children: "Duration"
581
- }), /* @__PURE__ */ w("p", {
582
- className: "text-sm text-text-primary",
583
- children: [M.duration, " minutes"]
584
- })] })]
585
- })
586
- ]
310
+ children: [/* @__PURE__ */ x("div", {
311
+ className: "flex items-center gap-2",
312
+ children: [/* @__PURE__ */ b(d, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
313
+ className: "text-xs text-text-secondary",
314
+ children: "Booked On"
315
+ }), /* @__PURE__ */ b("p", {
316
+ className: "text-sm text-text-primary",
317
+ children: s(E.orderDate)
318
+ })] })]
319
+ }), /* @__PURE__ */ x("div", {
320
+ className: "flex items-center gap-2",
321
+ children: [/* @__PURE__ */ b(f, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
322
+ className: "text-xs text-text-secondary",
323
+ children: "Payment"
324
+ }), /* @__PURE__ */ x("p", {
325
+ className: "text-sm text-text-primary capitalize",
326
+ children: [
327
+ E.paymentMethod,
328
+ " · ",
329
+ E.paymentStatus
330
+ ]
331
+ })] })]
332
+ })]
587
333
  })]
588
334
  }),
589
- I && /* @__PURE__ */ w("button", {
335
+ P && /* @__PURE__ */ x("button", {
590
336
  type: "button",
591
337
  className: "w-full inline-flex items-center justify-center gap-2 rounded-lg border border-status-error-text/30 bg-status-error-bg-subtle px-4 py-3 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle transition-colors",
592
- children: [/* @__PURE__ */ C(x, { className: "h-4 w-4" }), "Cancel Booking"]
338
+ children: [/* @__PURE__ */ b(v, { className: "h-4 w-4" }), "Cancel Booking"]
593
339
  })
594
340
  ]
595
341
  })]
@@ -598,6 +344,6 @@ function k() {
598
344
  });
599
345
  }
600
346
  //#endregion
601
- export { k as BookingDetailsPage };
347
+ export { w as BookingDetailsPage };
602
348
 
603
349
  //# sourceMappingURL=BookingDetailsPage.js.map