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