@burdenoff/microfe-atheletebridge 2026.624.1 → 2026.625.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/atheletebridge/components/EmptyState.js +18 -11
  2. package/dist/atheletebridge/components/EmptyState.js.map +1 -1
  3. package/dist/atheletebridge/components/InvestmentCard.js +7 -7
  4. package/dist/atheletebridge/components/InvestmentCard.js.map +1 -1
  5. package/dist/atheletebridge/components/MetricsCard.js +20 -14
  6. package/dist/atheletebridge/components/MetricsCard.js.map +1 -1
  7. package/dist/atheletebridge/components/PageLayout.js +30 -19
  8. package/dist/atheletebridge/components/PageLayout.js.map +1 -1
  9. package/dist/atheletebridge/pages/HomePage.js +210 -195
  10. package/dist/atheletebridge/pages/HomePage.js.map +1 -1
  11. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +90 -82
  12. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +1 -1
  13. package/dist/atheletebridge/pages/admin/AdminDashboard.js +76 -44
  14. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +1 -1
  15. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +63 -55
  16. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +1 -1
  17. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +244 -237
  18. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +1 -1
  19. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +59 -57
  20. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +1 -1
  21. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +110 -106
  22. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +1 -1
  23. package/dist/atheletebridge/pages/admin/CartManagementPage.js +166 -159
  24. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +1 -1
  25. package/dist/atheletebridge/pages/admin/UserManagementPage.js +310 -303
  26. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +1 -1
  27. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +86 -81
  28. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  29. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +170 -166
  30. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  31. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +141 -109
  32. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  33. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +139 -134
  34. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  35. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +109 -107
  36. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  37. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +318 -318
  38. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  39. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +262 -262
  40. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +1 -1
  41. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +170 -162
  42. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +1 -1
  43. package/dist/atheletebridge/pages/common/HelpSupportPage.js +292 -298
  44. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +1 -1
  45. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +100 -91
  46. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +1 -1
  47. package/dist/atheletebridge/pages/common/SettingsPage.js +742 -734
  48. package/dist/atheletebridge/pages/common/SettingsPage.js.map +1 -1
  49. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +365 -356
  50. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +1 -1
  51. package/dist/atheletebridge/pages/customer/CartDetailPage.js +277 -241
  52. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +1 -1
  53. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +261 -250
  54. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +1 -1
  55. package/dist/atheletebridge/pages/customer/CheckoutPage.js +93 -89
  56. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +1 -1
  57. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +430 -387
  58. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +1 -1
  59. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +526 -490
  60. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +1 -1
  61. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +524 -512
  62. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +1 -1
  63. package/dist/atheletebridge/pages/customer/FavoritesPage.js +84 -75
  64. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +1 -1
  65. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +117 -108
  66. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +1 -1
  67. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +66 -61
  68. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +1 -1
  69. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +81 -75
  70. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +1 -1
  71. package/dist/atheletebridge/pages/customer/ReviewsPage.js +81 -72
  72. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +1 -1
  73. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +63 -55
  74. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +1 -1
  75. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +93 -61
  76. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +1 -1
  77. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +90 -84
  78. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  79. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +60 -55
  80. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  81. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +345 -311
  82. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +1 -1
  83. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +38 -32
  84. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  85. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +75 -67
  86. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +1 -1
  87. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +385 -381
  88. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +1 -1
  89. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +353 -319
  90. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +1 -1
  91. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +353 -318
  92. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +1 -1
  93. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +134 -128
  94. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +1 -1
  95. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +81 -77
  96. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +1 -1
  97. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +352 -342
  98. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +1 -1
  99. package/package.json +3 -3
@@ -8,8 +8,9 @@ import { useMemo as s, useState as c } from "react";
8
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
9
  import { useParams as S } from "react-router-dom";
10
10
  import { jsx as C, jsxs as w } from "react/jsx-runtime";
11
+ import { EmphasisPanel as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
11
12
  //#region src/atheletebridge/pages/customer/BookingDetailsPage.tsx
12
- var T = [
13
+ var D = [
13
14
  {
14
15
  id: "BK-001",
15
16
  serviceName: "Men's Haircut + Beard Trim",
@@ -184,410 +185,418 @@ var T = [
184
185
  }
185
186
  ]
186
187
  }
187
- ], E = (e) => T.find((t) => t.id === e);
188
- function D() {
189
- let { bookingId: T } = S(), { navigateTo: D } = e(), [O, k] = c(null), A = s(() => T ? E(T) : void 0, [T]), j = (e) => {
190
- k(e), setTimeout(() => k(null), 3e3);
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);
191
192
  };
192
- if (!A) return /* @__PURE__ */ C(n, {
193
+ if (!M) return /* @__PURE__ */ C(n, {
193
194
  title: "Booking Not Found",
194
195
  children: /* @__PURE__ */ C(i, {
196
+ illustration: "empty-generic",
195
197
  icon: /* @__PURE__ */ C(f, { className: "h-12 w-12" }),
196
198
  title: "Booking not found",
197
- description: `No booking found with ID "${T}".`,
199
+ description: `No booking found with ID "${D}".`,
198
200
  action: /* @__PURE__ */ C("button", {
199
201
  type: "button",
200
- onClick: () => D("/customer/dashboard"),
202
+ onClick: () => k("/customer/dashboard"),
201
203
  className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
202
204
  children: "Go to Dashboard"
203
205
  })
204
206
  })
205
207
  });
206
- let M = A.status === "cancelled", N = A.status === "completed", P = !M && !N;
208
+ let P = M.status === "cancelled", F = M.status === "completed", I = !P && !F;
207
209
  return /* @__PURE__ */ w(n, {
208
210
  title: /* @__PURE__ */ w("div", {
209
211
  className: "flex items-center gap-3",
210
212
  children: [/* @__PURE__ */ C("button", {
211
213
  type: "button",
212
- onClick: () => D("/customer/dashboard"),
214
+ onClick: () => k("/customer/dashboard"),
213
215
  className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
214
216
  children: /* @__PURE__ */ C(u, { className: "h-5 w-5" })
215
- }), /* @__PURE__ */ w("span", { children: ["Booking #", A.id] })]
217
+ }), /* @__PURE__ */ w("span", { children: ["Booking #", M.id] })]
216
218
  }),
217
- actions: /* @__PURE__ */ C(r, { status: A.status }),
218
- children: [O && /* @__PURE__ */ w("div", {
219
- className: "mb-4 rounded-lg border border-green-500/30 bg-green-500/10 p-3 flex items-center gap-2",
220
- children: [/* @__PURE__ */ C(p, { className: "h-4 w-4 text-green-600 dark:text-green-400 shrink-0" }), /* @__PURE__ */ C("p", {
221
- className: "text-sm text-green-600 dark:text-green-400",
222
- children: O
223
- })]
224
- }), /* @__PURE__ */ w("div", {
225
- className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
226
- children: [/* @__PURE__ */ w("div", {
227
- className: "lg:col-span-2 space-y-6",
228
- children: [
229
- /* @__PURE__ */ w("div", {
230
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
231
- children: [
232
- /* @__PURE__ */ C("h2", {
233
- className: "text-lg font-semibold text-text-primary",
234
- children: A.serviceName
235
- }),
236
- /* @__PURE__ */ C("p", {
237
- className: "mt-1 text-sm text-text-secondary",
238
- children: A.serviceDescription
239
- }),
240
- /* @__PURE__ */ w("div", {
241
- className: "mt-4 flex flex-wrap gap-4 text-sm text-text-secondary",
242
- children: [
243
- /* @__PURE__ */ w("div", {
244
- className: "flex items-center gap-1.5",
245
- children: [/* @__PURE__ */ C(d, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: A.scheduledDate })]
246
- }),
247
- /* @__PURE__ */ w("div", {
248
- className: "flex items-center gap-1.5",
249
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: A.scheduledTime })]
250
- }),
251
- /* @__PURE__ */ w("div", {
252
- className: "flex items-center gap-1.5",
253
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: [A.duration, " min"] })]
254
- })
255
- ]
256
- }),
257
- A.notes && /* @__PURE__ */ w("div", {
258
- className: "mt-4 rounded-md bg-bg-sunken p-3",
259
- children: [/* @__PURE__ */ C("p", {
260
- className: "text-xs text-text-secondary mb-1",
261
- children: "Notes"
262
- }), /* @__PURE__ */ C("p", {
263
- className: "text-sm text-text-primary",
264
- children: A.notes
265
- })]
266
- }),
267
- A.cancellationReason && /* @__PURE__ */ w("div", {
268
- className: "mt-4 rounded-md bg-red-500/5 border border-red-500/20 p-3",
269
- children: [/* @__PURE__ */ w("div", {
270
- className: "flex items-center gap-2 mb-1",
271
- children: [/* @__PURE__ */ C(l, { className: "h-3.5 w-3.5 text-red-600 dark:text-red-400" }), /* @__PURE__ */ C("p", {
272
- className: "text-xs font-medium text-red-600 dark:text-red-400",
273
- children: "Cancellation Reason"
219
+ actions: /* @__PURE__ */ C(r, { status: M.status }),
220
+ children: [
221
+ /* @__PURE__ */ C(E, {
222
+ className: "mb-6",
223
+ children: "Everything about this service booking in one view — what was booked, when it's scheduled, who's providing it, and the price. Use this page to confirm details, read any notes, and manage or cancel the booking if your plans change."
224
+ }),
225
+ A && /* @__PURE__ */ w("div", {
226
+ className: "mb-4 rounded-lg border border-green-500/30 bg-green-500/10 p-3 flex items-center gap-2",
227
+ children: [/* @__PURE__ */ C(p, { className: "h-4 w-4 text-green-600 dark:text-green-400 shrink-0" }), /* @__PURE__ */ C("p", {
228
+ className: "text-sm text-green-600 dark:text-green-400",
229
+ children: A
230
+ })]
231
+ }),
232
+ /* @__PURE__ */ w("div", {
233
+ className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
234
+ children: [/* @__PURE__ */ w("div", {
235
+ className: "lg:col-span-2 space-y-6",
236
+ children: [
237
+ /* @__PURE__ */ w(T, {
238
+ className: "p-6",
239
+ children: [
240
+ /* @__PURE__ */ C("h2", {
241
+ className: "text-lg font-semibold text-text-primary",
242
+ children: M.serviceName
243
+ }),
244
+ /* @__PURE__ */ C("p", {
245
+ className: "mt-1 text-sm text-text-secondary",
246
+ children: M.serviceDescription
247
+ }),
248
+ /* @__PURE__ */ w("div", {
249
+ className: "mt-4 flex flex-wrap gap-4 text-sm text-text-secondary",
250
+ children: [
251
+ /* @__PURE__ */ w("div", {
252
+ className: "flex items-center gap-1.5",
253
+ children: [/* @__PURE__ */ C(d, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: M.scheduledDate })]
254
+ }),
255
+ /* @__PURE__ */ w("div", {
256
+ className: "flex items-center gap-1.5",
257
+ children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: M.scheduledTime })]
258
+ }),
259
+ /* @__PURE__ */ w("div", {
260
+ className: "flex items-center gap-1.5",
261
+ children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: [M.duration, " min"] })]
262
+ })
263
+ ]
264
+ }),
265
+ M.notes && /* @__PURE__ */ w("div", {
266
+ className: "mt-4 rounded-md bg-bg-sunken p-3",
267
+ children: [/* @__PURE__ */ C("p", {
268
+ className: "text-xs text-text-secondary mb-1",
269
+ children: "Notes"
270
+ }), /* @__PURE__ */ C("p", {
271
+ className: "text-sm text-text-primary",
272
+ children: M.notes
274
273
  })]
275
- }), /* @__PURE__ */ C("p", {
276
- className: "text-sm text-text-primary",
277
- children: A.cancellationReason
278
- })]
279
- })
280
- ]
281
- }),
282
- /* @__PURE__ */ w("div", {
283
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
284
- children: [
285
- /* @__PURE__ */ C("h2", {
286
- className: "text-base font-semibold text-text-primary mb-4",
287
- children: "Service Provider"
288
- }),
289
- /* @__PURE__ */ w("div", {
290
- className: "flex items-center gap-4",
291
- children: [
292
- /* @__PURE__ */ C("div", {
293
- className: "flex h-12 w-12 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
294
- children: /* @__PURE__ */ C(y, { className: "h-6 w-6" })
295
- }),
296
- /* @__PURE__ */ w("div", {
297
- className: "flex-1 min-w-0",
298
- children: [
299
- /* @__PURE__ */ C("p", {
300
- className: "text-sm font-semibold text-text-primary",
301
- children: A.provider.name
302
- }),
303
- /* @__PURE__ */ C("p", {
304
- className: "text-xs text-text-secondary",
305
- children: A.provider.category
306
- }),
307
- /* @__PURE__ */ w("div", {
308
- className: "flex items-center gap-1 mt-1",
309
- children: [/* @__PURE__ */ C(b, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), /* @__PURE__ */ C("span", {
310
- className: "text-xs font-medium text-text-primary",
311
- children: A.provider.rating
312
- })]
313
- })
314
- ]
315
- }),
316
- /* @__PURE__ */ C("a", {
317
- href: `tel:${A.provider.phone}`,
318
- 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",
319
- children: /* @__PURE__ */ C(v, { className: "h-4 w-4" })
320
- })
321
- ]
322
- }),
323
- /* @__PURE__ */ w("div", {
324
- className: "mt-3 flex items-center gap-2 text-sm text-text-secondary",
325
- children: [/* @__PURE__ */ C(v, { className: "h-4 w-4 shrink-0" }), /* @__PURE__ */ C("span", { children: A.provider.phone })]
326
- })
327
- ]
328
- }),
329
- /* @__PURE__ */ w("div", {
330
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
331
- children: [/* @__PURE__ */ C("h2", {
332
- className: "text-base font-semibold text-text-primary mb-5",
333
- children: "Booking Timeline"
334
- }), /* @__PURE__ */ C("div", {
335
- className: "relative",
336
- children: A.timeline.map((e, n) => {
337
- let r = n === A.timeline.length - 1, i = e.status === "cancelled", a = i ? x : e.completed ? p : m;
338
- return /* @__PURE__ */ w("div", {
339
- className: "flex gap-4",
274
+ }),
275
+ M.cancellationReason && /* @__PURE__ */ w("div", {
276
+ className: "mt-4 rounded-md bg-red-500/5 border border-red-500/20 p-3",
340
277
  children: [/* @__PURE__ */ w("div", {
341
- className: "flex flex-col items-center",
342
- children: [/* @__PURE__ */ C("div", {
343
- className: t("flex h-8 w-8 shrink-0 items-center justify-center rounded-full", i ? "bg-red-500/10 text-red-600 dark:text-red-400" : e.completed ? "bg-green-500/10 text-green-600 dark:text-green-400" : "bg-bg-sunken text-text-secondary"),
344
- children: /* @__PURE__ */ C(a, { className: "h-4 w-4" })
345
- }), !r && /* @__PURE__ */ C("div", { className: t("w-0.5 flex-1 my-1", e.completed ? "bg-green-500/30" : "bg-border") })]
346
- }), /* @__PURE__ */ w("div", {
347
- className: t("pb-6", r && "pb-0"),
348
- children: [/* @__PURE__ */ C("p", {
349
- className: "text-sm font-medium text-text-primary",
350
- children: e.label
351
- }), /* @__PURE__ */ C("p", {
352
- className: "mt-0.5 text-xs text-text-secondary",
353
- children: e.timestamp ? o(e.timestamp) : "Pending"
278
+ className: "flex items-center gap-2 mb-1",
279
+ children: [/* @__PURE__ */ C(l, { className: "h-3.5 w-3.5 text-red-600 dark:text-red-400" }), /* @__PURE__ */ C("p", {
280
+ className: "text-xs font-medium text-red-600 dark:text-red-400",
281
+ children: "Cancellation Reason"
354
282
  })]
283
+ }), /* @__PURE__ */ C("p", {
284
+ className: "text-sm text-text-primary",
285
+ children: M.cancellationReason
355
286
  })]
356
- }, `${e.status}-${n}`);
357
- })
358
- })]
359
- }),
360
- /* @__PURE__ */ w("div", {
361
- className: "flex flex-col sm:flex-row gap-3",
362
- children: [/* @__PURE__ */ w("button", {
363
- type: "button",
364
- onClick: () => {
365
- j("Support team will contact you shortly.");
366
- },
367
- 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",
368
- children: [/* @__PURE__ */ C(g, { className: "h-4 w-4" }), "Contact Support"]
369
- }), N && /* @__PURE__ */ w("button", {
370
- type: "button",
371
- onClick: () => {
372
- j("Thank you! Rating feature coming soon.");
373
- },
374
- 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",
375
- children: [/* @__PURE__ */ C(b, { className: "h-4 w-4" }), "Rate Service"]
376
- })]
377
- })
378
- ]
379
- }), /* @__PURE__ */ w("div", {
380
- className: "space-y-6",
381
- children: [
382
- /* @__PURE__ */ w("div", {
383
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
384
- children: [
385
- /* @__PURE__ */ C("h3", {
386
- className: "text-base font-semibold text-text-primary mb-3",
387
- children: "Cart Information"
388
- }),
389
- /* @__PURE__ */ w("div", {
390
- className: "flex items-center gap-3 mb-4",
391
- children: [/* @__PURE__ */ C("img", {
392
- src: A.provider.image,
393
- alt: A.provider.name,
394
- className: "h-14 w-14 rounded-lg object-cover"
395
- }), /* @__PURE__ */ w("div", {
396
- className: "min-w-0",
287
+ })
288
+ ]
289
+ }),
290
+ /* @__PURE__ */ w("div", {
291
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
292
+ children: [
293
+ /* @__PURE__ */ C("h2", {
294
+ className: "text-base font-semibold text-text-primary mb-4",
295
+ children: "Service Provider"
296
+ }),
297
+ /* @__PURE__ */ w("div", {
298
+ className: "flex items-center gap-4",
397
299
  children: [
398
- /* @__PURE__ */ C("p", {
399
- className: "text-sm font-semibold text-text-primary",
400
- children: A.provider.name
401
- }),
402
- /* @__PURE__ */ C("p", {
403
- className: "text-xs text-text-secondary",
404
- children: A.provider.category
300
+ /* @__PURE__ */ C("div", {
301
+ className: "flex h-12 w-12 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
302
+ children: /* @__PURE__ */ C(y, { className: "h-6 w-6" })
405
303
  }),
406
304
  /* @__PURE__ */ w("div", {
407
- className: "flex items-center gap-1 mt-0.5",
305
+ className: "flex-1 min-w-0",
408
306
  children: [
409
- /* @__PURE__ */ C(b, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }),
410
- /* @__PURE__ */ C("span", {
411
- className: "text-xs font-medium text-text-primary",
412
- children: A.provider.rating
307
+ /* @__PURE__ */ C("p", {
308
+ className: "text-sm font-semibold text-text-primary",
309
+ children: M.provider.name
413
310
  }),
414
- /* @__PURE__ */ w("span", {
311
+ /* @__PURE__ */ C("p", {
415
312
  className: "text-xs text-text-secondary",
416
- children: [
417
- "(",
418
- A.provider.reviewCount,
419
- ")"
420
- ]
313
+ children: M.provider.category
314
+ }),
315
+ /* @__PURE__ */ w("div", {
316
+ className: "flex items-center gap-1 mt-1",
317
+ children: [/* @__PURE__ */ C(b, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), /* @__PURE__ */ C("span", {
318
+ className: "text-xs font-medium text-text-primary",
319
+ children: M.provider.rating
320
+ })]
421
321
  })
422
322
  ]
323
+ }),
324
+ /* @__PURE__ */ C("a", {
325
+ href: `tel:${M.provider.phone}`,
326
+ 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",
327
+ children: /* @__PURE__ */ C(v, { className: "h-4 w-4" })
423
328
  })
424
329
  ]
425
- })]
426
- }),
427
- /* @__PURE__ */ C("div", {
428
- className: "space-y-2 text-sm mb-4",
429
- children: /* @__PURE__ */ w("div", {
430
- className: "flex items-start gap-2",
431
- children: [/* @__PURE__ */ C(_, { className: "h-4 w-4 text-text-secondary shrink-0 mt-0.5" }), /* @__PURE__ */ C("span", {
432
- className: "text-text-secondary",
433
- children: A.provider.location
434
- })]
435
- })
436
- }),
437
- /* @__PURE__ */ C("button", {
438
- type: "button",
439
- onClick: () => D(`/customer/carts/${A.provider.id}`),
440
- 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",
441
- children: "View Cart Menu"
442
- })
443
- ]
444
- }),
445
- /* @__PURE__ */ w("div", {
446
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
447
- children: [/* @__PURE__ */ C("h3", {
448
- className: "text-base font-semibold text-text-primary mb-3",
449
- children: "Service Location"
450
- }), /* @__PURE__ */ w("div", {
451
- className: "flex items-start gap-3",
452
- children: [/* @__PURE__ */ C(_, { className: "mt-0.5 h-5 w-5 shrink-0 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [
453
- /* @__PURE__ */ C("p", {
454
- className: "text-sm text-text-primary",
455
- children: A.location.street
456
330
  }),
457
- /* @__PURE__ */ w("p", {
458
- className: "text-sm text-text-secondary",
459
- children: [
460
- A.location.area,
461
- ", ",
462
- A.location.city,
463
- " - ",
464
- A.location.pincode
465
- ]
466
- }),
467
- A.location.landmark && /* @__PURE__ */ w("p", {
468
- className: "text-xs text-text-secondary mt-1",
469
- children: ["Landmark: ", A.location.landmark]
331
+ /* @__PURE__ */ w("div", {
332
+ className: "mt-3 flex items-center gap-2 text-sm text-text-secondary",
333
+ children: [/* @__PURE__ */ C(v, { className: "h-4 w-4 shrink-0" }), /* @__PURE__ */ C("span", { children: M.provider.phone })]
334
+ })
335
+ ]
336
+ }),
337
+ /* @__PURE__ */ w("div", {
338
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
339
+ children: [/* @__PURE__ */ C("h2", {
340
+ className: "text-base font-semibold text-text-primary mb-5",
341
+ children: "Booking Timeline"
342
+ }), /* @__PURE__ */ C("div", {
343
+ className: "relative",
344
+ children: M.timeline.map((e, n) => {
345
+ let r = n === M.timeline.length - 1, i = e.status === "cancelled", a = i ? x : e.completed ? p : m;
346
+ return /* @__PURE__ */ w("div", {
347
+ className: "flex gap-4",
348
+ children: [/* @__PURE__ */ w("div", {
349
+ className: "flex flex-col items-center",
350
+ children: [/* @__PURE__ */ C("div", {
351
+ className: t("flex h-8 w-8 shrink-0 items-center justify-center rounded-full", i ? "bg-red-500/10 text-red-600 dark:text-red-400" : e.completed ? "bg-green-500/10 text-green-600 dark:text-green-400" : "bg-bg-sunken text-text-secondary"),
352
+ children: /* @__PURE__ */ C(a, { className: "h-4 w-4" })
353
+ }), !r && /* @__PURE__ */ C("div", { className: t("w-0.5 flex-1 my-1", e.completed ? "bg-green-500/30" : "bg-border") })]
354
+ }), /* @__PURE__ */ w("div", {
355
+ className: t("pb-6", r && "pb-0"),
356
+ children: [/* @__PURE__ */ C("p", {
357
+ className: "text-sm font-medium text-text-primary",
358
+ children: e.label
359
+ }), /* @__PURE__ */ C("p", {
360
+ className: "mt-0.5 text-xs text-text-secondary",
361
+ children: e.timestamp ? o(e.timestamp) : "Pending"
362
+ })]
363
+ })]
364
+ }, `${e.status}-${n}`);
470
365
  })
471
- ] })]
472
- })]
473
- }),
474
- /* @__PURE__ */ w("div", {
475
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
476
- children: [/* @__PURE__ */ C("h3", {
477
- className: "text-base font-semibold text-text-primary mb-3",
478
- children: "Price Breakdown"
479
- }), /* @__PURE__ */ w("div", {
480
- className: "space-y-2.5 text-sm",
366
+ })]
367
+ }),
368
+ /* @__PURE__ */ w("div", {
369
+ className: "flex flex-col sm:flex-row gap-3",
370
+ children: [/* @__PURE__ */ w("button", {
371
+ type: "button",
372
+ onClick: () => {
373
+ N("Support team will contact you shortly.");
374
+ },
375
+ 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",
376
+ children: [/* @__PURE__ */ C(g, { className: "h-4 w-4" }), "Contact Support"]
377
+ }), F && /* @__PURE__ */ w("button", {
378
+ type: "button",
379
+ onClick: () => {
380
+ N("Thank you! Rating feature coming soon.");
381
+ },
382
+ 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",
383
+ children: [/* @__PURE__ */ C(b, { className: "h-4 w-4" }), "Rate Service"]
384
+ })]
385
+ })
386
+ ]
387
+ }), /* @__PURE__ */ w("div", {
388
+ className: "space-y-6",
389
+ children: [
390
+ /* @__PURE__ */ w("div", {
391
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
481
392
  children: [
482
- /* @__PURE__ */ w("div", {
483
- className: "flex justify-between",
484
- children: [/* @__PURE__ */ C("span", {
485
- className: "text-text-secondary",
486
- children: "Service Charge"
487
- }), /* @__PURE__ */ C("span", {
488
- className: "text-text-primary",
489
- children: a(A.pricing.serviceCharge, { minimumFractionDigits: 0 })
490
- })]
393
+ /* @__PURE__ */ C("h3", {
394
+ className: "text-base font-semibold text-text-primary mb-3",
395
+ children: "Cart Information"
491
396
  }),
492
397
  /* @__PURE__ */ w("div", {
493
- className: "flex justify-between",
494
- children: [/* @__PURE__ */ C("span", {
495
- className: "text-text-secondary",
496
- children: "Convenience Fee"
497
- }), /* @__PURE__ */ C("span", {
498
- className: "text-text-primary",
499
- children: a(A.pricing.convenienceFee, { minimumFractionDigits: 0 })
500
- })]
501
- }),
502
- /* @__PURE__ */ w("div", {
503
- className: "flex justify-between",
504
- children: [/* @__PURE__ */ C("span", {
505
- className: "text-text-secondary",
506
- children: "Tax"
507
- }), /* @__PURE__ */ C("span", {
508
- className: "text-text-primary",
509
- children: a(A.pricing.tax, { minimumFractionDigits: 0 })
398
+ className: "flex items-center gap-3 mb-4",
399
+ children: [/* @__PURE__ */ C("img", {
400
+ src: M.provider.image,
401
+ alt: M.provider.name,
402
+ className: "h-14 w-14 rounded-lg object-cover"
403
+ }), /* @__PURE__ */ w("div", {
404
+ className: "min-w-0",
405
+ children: [
406
+ /* @__PURE__ */ C("p", {
407
+ className: "text-sm font-semibold text-text-primary",
408
+ children: M.provider.name
409
+ }),
410
+ /* @__PURE__ */ C("p", {
411
+ className: "text-xs text-text-secondary",
412
+ children: M.provider.category
413
+ }),
414
+ /* @__PURE__ */ w("div", {
415
+ className: "flex items-center gap-1 mt-0.5",
416
+ children: [
417
+ /* @__PURE__ */ C(b, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }),
418
+ /* @__PURE__ */ C("span", {
419
+ className: "text-xs font-medium text-text-primary",
420
+ children: M.provider.rating
421
+ }),
422
+ /* @__PURE__ */ w("span", {
423
+ className: "text-xs text-text-secondary",
424
+ children: [
425
+ "(",
426
+ M.provider.reviewCount,
427
+ ")"
428
+ ]
429
+ })
430
+ ]
431
+ })
432
+ ]
510
433
  })]
511
434
  }),
512
- A.pricing.discount > 0 && /* @__PURE__ */ w("div", {
513
- className: "flex justify-between",
514
- children: [/* @__PURE__ */ C("span", {
515
- className: "text-green-600 dark:text-green-400",
516
- children: "Discount"
517
- }), /* @__PURE__ */ w("span", {
518
- className: "text-green-600 dark:text-green-400",
519
- children: ["-", a(A.pricing.discount, { minimumFractionDigits: 0 })]
520
- })]
435
+ /* @__PURE__ */ C("div", {
436
+ className: "space-y-2 text-sm mb-4",
437
+ children: /* @__PURE__ */ w("div", {
438
+ className: "flex items-start gap-2",
439
+ children: [/* @__PURE__ */ C(_, { className: "h-4 w-4 text-text-secondary shrink-0 mt-0.5" }), /* @__PURE__ */ C("span", {
440
+ className: "text-text-secondary",
441
+ children: M.provider.location
442
+ })]
443
+ })
521
444
  }),
522
- /* @__PURE__ */ w("div", {
523
- className: "flex justify-between border-t border-border-subtle pt-2.5",
524
- children: [/* @__PURE__ */ C("span", {
525
- className: "font-semibold text-text-primary",
526
- children: "Total"
527
- }), /* @__PURE__ */ C("span", {
528
- className: "font-bold text-text-primary",
529
- children: a(A.pricing.total, { minimumFractionDigits: 0 })
530
- })]
445
+ /* @__PURE__ */ C("button", {
446
+ type: "button",
447
+ onClick: () => k(`/customer/carts/${M.provider.id}`),
448
+ 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",
449
+ children: "View Cart Menu"
531
450
  })
532
451
  ]
533
- })]
534
- }),
535
- /* @__PURE__ */ w("div", {
536
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
537
- children: [/* @__PURE__ */ C("h3", {
538
- className: "text-base font-semibold text-text-primary mb-3",
539
- children: "Booking Info"
540
- }), /* @__PURE__ */ w("div", {
541
- className: "space-y-3",
542
- children: [
543
- /* @__PURE__ */ w("div", {
544
- className: "flex items-center gap-2",
545
- children: [/* @__PURE__ */ C(f, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
546
- className: "text-xs text-text-secondary",
547
- children: "Booked On"
548
- }), /* @__PURE__ */ C("p", {
549
- className: "text-sm text-text-primary",
550
- children: o(A.createdAt)
551
- })] })]
552
- }),
553
- /* @__PURE__ */ w("div", {
554
- className: "flex items-center gap-2",
555
- children: [/* @__PURE__ */ C(d, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
556
- className: "text-xs text-text-secondary",
557
- children: "Scheduled"
558
- }), /* @__PURE__ */ w("p", {
452
+ }),
453
+ /* @__PURE__ */ w("div", {
454
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
455
+ children: [/* @__PURE__ */ C("h3", {
456
+ className: "text-base font-semibold text-text-primary mb-3",
457
+ children: "Service Location"
458
+ }), /* @__PURE__ */ w("div", {
459
+ className: "flex items-start gap-3",
460
+ children: [/* @__PURE__ */ C(_, { className: "mt-0.5 h-5 w-5 shrink-0 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [
461
+ /* @__PURE__ */ C("p", {
559
462
  className: "text-sm text-text-primary",
463
+ children: M.location.street
464
+ }),
465
+ /* @__PURE__ */ w("p", {
466
+ className: "text-sm text-text-secondary",
560
467
  children: [
561
- A.scheduledDate,
562
- " at ",
563
- A.scheduledTime
468
+ M.location.area,
469
+ ", ",
470
+ M.location.city,
471
+ " - ",
472
+ M.location.pincode
564
473
  ]
565
- })] })]
566
- }),
567
- /* @__PURE__ */ w("div", {
568
- className: "flex items-center gap-2",
569
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
570
- className: "text-xs text-text-secondary",
571
- children: "Duration"
572
- }), /* @__PURE__ */ w("p", {
573
- className: "text-sm text-text-primary",
574
- children: [A.duration, " minutes"]
575
- })] })]
576
- })
577
- ]
578
- })]
579
- }),
580
- P && /* @__PURE__ */ w("button", {
581
- type: "button",
582
- className: "w-full inline-flex items-center justify-center gap-2 rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3 text-sm font-medium text-red-600 dark:text-red-400 hover:bg-red-500/10 transition-colors",
583
- children: [/* @__PURE__ */ C(x, { className: "h-4 w-4" }), "Cancel Booking"]
584
- })
585
- ]
586
- })]
587
- })]
474
+ }),
475
+ M.location.landmark && /* @__PURE__ */ w("p", {
476
+ className: "text-xs text-text-secondary mt-1",
477
+ children: ["Landmark: ", M.location.landmark]
478
+ })
479
+ ] })]
480
+ })]
481
+ }),
482
+ /* @__PURE__ */ w("div", {
483
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
484
+ children: [/* @__PURE__ */ C("h3", {
485
+ className: "text-base font-semibold text-text-primary mb-3",
486
+ children: "Price Breakdown"
487
+ }), /* @__PURE__ */ w("div", {
488
+ className: "space-y-2.5 text-sm",
489
+ children: [
490
+ /* @__PURE__ */ w("div", {
491
+ className: "flex justify-between",
492
+ children: [/* @__PURE__ */ C("span", {
493
+ className: "text-text-secondary",
494
+ children: "Service Charge"
495
+ }), /* @__PURE__ */ C("span", {
496
+ className: "text-text-primary",
497
+ children: a(M.pricing.serviceCharge, { minimumFractionDigits: 0 })
498
+ })]
499
+ }),
500
+ /* @__PURE__ */ w("div", {
501
+ className: "flex justify-between",
502
+ children: [/* @__PURE__ */ C("span", {
503
+ className: "text-text-secondary",
504
+ children: "Convenience Fee"
505
+ }), /* @__PURE__ */ C("span", {
506
+ className: "text-text-primary",
507
+ children: a(M.pricing.convenienceFee, { minimumFractionDigits: 0 })
508
+ })]
509
+ }),
510
+ /* @__PURE__ */ w("div", {
511
+ className: "flex justify-between",
512
+ children: [/* @__PURE__ */ C("span", {
513
+ className: "text-text-secondary",
514
+ children: "Tax"
515
+ }), /* @__PURE__ */ C("span", {
516
+ className: "text-text-primary",
517
+ children: a(M.pricing.tax, { minimumFractionDigits: 0 })
518
+ })]
519
+ }),
520
+ M.pricing.discount > 0 && /* @__PURE__ */ w("div", {
521
+ className: "flex justify-between",
522
+ children: [/* @__PURE__ */ C("span", {
523
+ className: "text-green-600 dark:text-green-400",
524
+ children: "Discount"
525
+ }), /* @__PURE__ */ w("span", {
526
+ className: "text-green-600 dark:text-green-400",
527
+ children: ["-", a(M.pricing.discount, { minimumFractionDigits: 0 })]
528
+ })]
529
+ }),
530
+ /* @__PURE__ */ w("div", {
531
+ className: "flex justify-between border-t border-border-subtle pt-2.5",
532
+ children: [/* @__PURE__ */ C("span", {
533
+ className: "font-semibold text-text-primary",
534
+ children: "Total"
535
+ }), /* @__PURE__ */ C("span", {
536
+ className: "font-bold text-text-primary",
537
+ children: a(M.pricing.total, { minimumFractionDigits: 0 })
538
+ })]
539
+ })
540
+ ]
541
+ })]
542
+ }),
543
+ /* @__PURE__ */ w("div", {
544
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
545
+ children: [/* @__PURE__ */ C("h3", {
546
+ className: "text-base font-semibold text-text-primary mb-3",
547
+ children: "Booking Info"
548
+ }), /* @__PURE__ */ w("div", {
549
+ className: "space-y-3",
550
+ children: [
551
+ /* @__PURE__ */ w("div", {
552
+ className: "flex items-center gap-2",
553
+ children: [/* @__PURE__ */ C(f, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
554
+ className: "text-xs text-text-secondary",
555
+ children: "Booked On"
556
+ }), /* @__PURE__ */ C("p", {
557
+ className: "text-sm text-text-primary",
558
+ children: o(M.createdAt)
559
+ })] })]
560
+ }),
561
+ /* @__PURE__ */ w("div", {
562
+ className: "flex items-center gap-2",
563
+ children: [/* @__PURE__ */ C(d, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
564
+ className: "text-xs text-text-secondary",
565
+ children: "Scheduled"
566
+ }), /* @__PURE__ */ w("p", {
567
+ className: "text-sm text-text-primary",
568
+ children: [
569
+ M.scheduledDate,
570
+ " at ",
571
+ M.scheduledTime
572
+ ]
573
+ })] })]
574
+ }),
575
+ /* @__PURE__ */ w("div", {
576
+ className: "flex items-center gap-2",
577
+ children: [/* @__PURE__ */ C(h, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
578
+ className: "text-xs text-text-secondary",
579
+ children: "Duration"
580
+ }), /* @__PURE__ */ w("p", {
581
+ className: "text-sm text-text-primary",
582
+ children: [M.duration, " minutes"]
583
+ })] })]
584
+ })
585
+ ]
586
+ })]
587
+ }),
588
+ I && /* @__PURE__ */ w("button", {
589
+ type: "button",
590
+ className: "w-full inline-flex items-center justify-center gap-2 rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3 text-sm font-medium text-red-600 dark:text-red-400 hover:bg-red-500/10 transition-colors",
591
+ children: [/* @__PURE__ */ C(x, { className: "h-4 w-4" }), "Cancel Booking"]
592
+ })
593
+ ]
594
+ })]
595
+ })
596
+ ]
588
597
  });
589
598
  }
590
599
  //#endregion
591
- export { D as BookingDetailsPage };
600
+ export { k as BookingDetailsPage };
592
601
 
593
602
  //# sourceMappingURL=BookingDetailsPage.js.map