@burdenoff/microfe-subscriberbot 2026.626.1 → 2026.628.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/index.js +4 -4
  2. package/dist/subscriberbot/SubscriberBotRoot.js +61 -133
  3. package/dist/subscriberbot/SubscriberBotRoot.js.map +1 -1
  4. package/dist/subscriberbot/SubscriberBotRoutes.js +56 -187
  5. package/dist/subscriberbot/SubscriberBotRoutes.js.map +1 -1
  6. package/dist/subscriberbot/components/StateViews.js +49 -0
  7. package/dist/subscriberbot/components/StateViews.js.map +1 -0
  8. package/dist/subscriberbot/components/StatusBadge.js +45 -47
  9. package/dist/subscriberbot/components/StatusBadge.js.map +1 -1
  10. package/dist/subscriberbot/context/SubscriberBotContext.js +22 -30
  11. package/dist/subscriberbot/context/SubscriberBotContext.js.map +1 -1
  12. package/dist/subscriberbot/hooks/useSubscriberBotApi.js +342 -195
  13. package/dist/subscriberbot/hooks/useSubscriberBotApi.js.map +1 -1
  14. package/dist/subscriberbot/index.js +1 -1
  15. package/dist/subscriberbot/pages/DashboardPage.js +269 -0
  16. package/dist/subscriberbot/pages/DashboardPage.js.map +1 -0
  17. package/dist/subscriberbot/pages/InboxPage.js +186 -0
  18. package/dist/subscriberbot/pages/InboxPage.js.map +1 -0
  19. package/dist/subscriberbot/pages/InvoicesPage.js +211 -0
  20. package/dist/subscriberbot/pages/InvoicesPage.js.map +1 -0
  21. package/dist/subscriberbot/pages/WorkflowsPage.js +236 -0
  22. package/dist/subscriberbot/pages/WorkflowsPage.js.map +1 -0
  23. package/dist/subscriberbot/pages/agents/AgentDetailPage.js +160 -0
  24. package/dist/subscriberbot/pages/agents/AgentDetailPage.js.map +1 -0
  25. package/dist/subscriberbot/pages/agents/AgentNewPage.js +140 -0
  26. package/dist/subscriberbot/pages/agents/AgentNewPage.js.map +1 -0
  27. package/dist/subscriberbot/pages/agents/AgentsListPage.js +178 -0
  28. package/dist/subscriberbot/pages/agents/AgentsListPage.js.map +1 -0
  29. package/dist/subscriberbot/pages/providers/ProviderDetailPage.js +179 -0
  30. package/dist/subscriberbot/pages/providers/ProviderDetailPage.js.map +1 -0
  31. package/dist/subscriberbot/pages/providers/ProviderNewPage.js +185 -0
  32. package/dist/subscriberbot/pages/providers/ProviderNewPage.js.map +1 -0
  33. package/dist/subscriberbot/pages/providers/ProvidersListPage.js +254 -0
  34. package/dist/subscriberbot/pages/providers/ProvidersListPage.js.map +1 -0
  35. package/dist/subscriberbot/pages/relationships/RelationshipDetailPage.js +306 -0
  36. package/dist/subscriberbot/pages/relationships/RelationshipDetailPage.js.map +1 -0
  37. package/dist/subscriberbot/pages/relationships/RelationshipNewPage.js +253 -0
  38. package/dist/subscriberbot/pages/relationships/RelationshipNewPage.js.map +1 -0
  39. package/dist/subscriberbot/pages/relationships/RelationshipsListPage.js +248 -0
  40. package/dist/subscriberbot/pages/relationships/RelationshipsListPage.js.map +1 -0
  41. package/dist/subscriberbot/utils/formatters.js +50 -32
  42. package/dist/subscriberbot/utils/formatters.js.map +1 -1
  43. package/package.json +1 -1
  44. package/dist/subscriberbot/components/InvestmentCard.js +0 -97
  45. package/dist/subscriberbot/components/InvestmentCard.js.map +0 -1
  46. package/dist/subscriberbot/components/RatingDisplay.js +0 -35
  47. package/dist/subscriberbot/components/RatingDisplay.js.map +0 -1
  48. package/dist/subscriberbot/mocks/data.js +0 -1517
  49. package/dist/subscriberbot/mocks/data.js.map +0 -1
  50. package/dist/subscriberbot/mocks/users.js +0 -34
  51. package/dist/subscriberbot/mocks/users.js.map +0 -1
  52. package/dist/subscriberbot/pages/HomePage.js +0 -930
  53. package/dist/subscriberbot/pages/HomePage.js.map +0 -1
  54. package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js +0 -651
  55. package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js.map +0 -1
  56. package/dist/subscriberbot/pages/admin/AdminDashboard.js +0 -679
  57. package/dist/subscriberbot/pages/admin/AdminDashboard.js.map +0 -1
  58. package/dist/subscriberbot/pages/admin/AdminFinancialPage.js +0 -427
  59. package/dist/subscriberbot/pages/admin/AdminFinancialPage.js.map +0 -1
  60. package/dist/subscriberbot/pages/admin/AdminOrdersPage.js +0 -665
  61. package/dist/subscriberbot/pages/admin/AdminOrdersPage.js.map +0 -1
  62. package/dist/subscriberbot/pages/admin/AdminProfilePage.js +0 -261
  63. package/dist/subscriberbot/pages/admin/AdminProfilePage.js.map +0 -1
  64. package/dist/subscriberbot/pages/admin/AdminSettingsPage.js +0 -654
  65. package/dist/subscriberbot/pages/admin/AdminSettingsPage.js.map +0 -1
  66. package/dist/subscriberbot/pages/admin/CartManagementPage.js +0 -874
  67. package/dist/subscriberbot/pages/admin/CartManagementPage.js.map +0 -1
  68. package/dist/subscriberbot/pages/admin/UserManagementPage.js +0 -898
  69. package/dist/subscriberbot/pages/admin/UserManagementPage.js.map +0 -1
  70. package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js +0 -839
  71. package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  72. package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js +0 -705
  73. package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  74. package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js +0 -802
  75. package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  76. package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  77. package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  78. package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js +0 -633
  79. package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  80. package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js +0 -910
  81. package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  82. package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js +0 -879
  83. package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js.map +0 -1
  84. package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js +0 -838
  85. package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js.map +0 -1
  86. package/dist/subscriberbot/pages/common/HelpSupportPage.js +0 -1323
  87. package/dist/subscriberbot/pages/common/HelpSupportPage.js.map +0 -1
  88. package/dist/subscriberbot/pages/common/NotificationCenterPage.js +0 -672
  89. package/dist/subscriberbot/pages/common/NotificationCenterPage.js.map +0 -1
  90. package/dist/subscriberbot/pages/common/SettingsPage.js +0 -973
  91. package/dist/subscriberbot/pages/common/SettingsPage.js.map +0 -1
  92. package/dist/subscriberbot/pages/customer/BookingDetailsPage.js +0 -626
  93. package/dist/subscriberbot/pages/customer/BookingDetailsPage.js.map +0 -1
  94. package/dist/subscriberbot/pages/customer/CartDetailPage.js +0 -654
  95. package/dist/subscriberbot/pages/customer/CartDetailPage.js.map +0 -1
  96. package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js +0 -555
  97. package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js.map +0 -1
  98. package/dist/subscriberbot/pages/customer/CheckoutPage.js +0 -529
  99. package/dist/subscriberbot/pages/customer/CheckoutPage.js.map +0 -1
  100. package/dist/subscriberbot/pages/customer/CustomerDashboard.js +0 -532
  101. package/dist/subscriberbot/pages/customer/CustomerDashboard.js.map +0 -1
  102. package/dist/subscriberbot/pages/customer/CustomerProfilePage.js +0 -630
  103. package/dist/subscriberbot/pages/customer/CustomerProfilePage.js.map +0 -1
  104. package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js +0 -633
  105. package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js.map +0 -1
  106. package/dist/subscriberbot/pages/customer/FavoritesPage.js +0 -484
  107. package/dist/subscriberbot/pages/customer/FavoritesPage.js.map +0 -1
  108. package/dist/subscriberbot/pages/customer/OrderHistoryPage.js +0 -446
  109. package/dist/subscriberbot/pages/customer/OrderHistoryPage.js.map +0 -1
  110. package/dist/subscriberbot/pages/customer/OrderTrackingPage.js +0 -394
  111. package/dist/subscriberbot/pages/customer/OrderTrackingPage.js.map +0 -1
  112. package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js +0 -495
  113. package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js.map +0 -1
  114. package/dist/subscriberbot/pages/customer/ReviewsPage.js +0 -613
  115. package/dist/subscriberbot/pages/customer/ReviewsPage.js.map +0 -1
  116. package/dist/subscriberbot/pages/customer/SavedAddressesPage.js +0 -450
  117. package/dist/subscriberbot/pages/customer/SavedAddressesPage.js.map +0 -1
  118. package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js +0 -886
  119. package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js.map +0 -1
  120. package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js +0 -947
  121. package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  122. package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js +0 -687
  123. package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  124. package/dist/subscriberbot/pages/investor/InvestorDashboard.js +0 -451
  125. package/dist/subscriberbot/pages/investor/InvestorDashboard.js.map +0 -1
  126. package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js +0 -406
  127. package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  128. package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js +0 -575
  129. package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js.map +0 -1
  130. package/dist/subscriberbot/pages/investor/InvestorProfilePage.js +0 -1070
  131. package/dist/subscriberbot/pages/investor/InvestorProfilePage.js.map +0 -1
  132. package/dist/subscriberbot/pages/worker/TaskDetailsPage.js +0 -535
  133. package/dist/subscriberbot/pages/worker/TaskDetailsPage.js.map +0 -1
  134. package/dist/subscriberbot/pages/worker/WorkerDashboard.js +0 -666
  135. package/dist/subscriberbot/pages/worker/WorkerDashboard.js.map +0 -1
  136. package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js +0 -681
  137. package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js.map +0 -1
  138. package/dist/subscriberbot/pages/worker/WorkerProfilePage.js +0 -692
  139. package/dist/subscriberbot/pages/worker/WorkerProfilePage.js.map +0 -1
  140. package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js +0 -588
  141. package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1,626 +0,0 @@
1
- import { useSubscriberBot as e } from "../../context/SubscriberBotContext.js";
2
- import { cn as t } from "../../utils/cn.js";
3
- import { PageLayout as n } from "../../components/PageLayout.js";
4
- import { StatusBadge as r } from "../../components/StatusBadge.js";
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 { EmphasisPanel as T, NextSteps as E, PagePurpose as D } from "@burdenoff/fe-libs/ui";
12
- //#region src/subscriberbot/pages/customer/BookingDetailsPage.tsx
13
- var O = [
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
- ], 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);
192
- };
193
- if (!N) return /* @__PURE__ */ C(n, {
194
- title: "Booking Not Found",
195
- children: /* @__PURE__ */ C(i, {
196
- illustration: "empty-generic",
197
- icon: /* @__PURE__ */ C(f, { className: "h-12 w-12" }),
198
- title: "Booking not found",
199
- description: `No booking found with ID "${O}".`,
200
- action: /* @__PURE__ */ C("button", {
201
- type: "button",
202
- onClick: () => A("/customer/dashboard"),
203
- className: "rounded-lg bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90 transition-opacity",
204
- children: "Go to Dashboard"
205
- })
206
- })
207
- });
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
- };
213
- return /* @__PURE__ */ w(n, {
214
- title: /* @__PURE__ */ w("div", {
215
- className: "flex items-center gap-3",
216
- children: [/* @__PURE__ */ C("button", {
217
- type: "button",
218
- onClick: () => A("/customer/dashboard"),
219
- className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
220
- children: /* @__PURE__ */ C(u, { className: "h-5 w-5" })
221
- }), /* @__PURE__ */ w("span", { children: ["Booking #", N.id] })]
222
- }),
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: [
269
- /* @__PURE__ */ C("h2", {
270
- className: "text-lg font-semibold text-text-primary",
271
- children: N.serviceName
272
- }),
273
- /* @__PURE__ */ C("p", {
274
- className: "mt-1 text-sm text-text-secondary",
275
- children: N.serviceDescription
276
- }),
277
- /* @__PURE__ */ w("div", {
278
- className: "mt-4 flex flex-wrap gap-4 text-sm text-text-secondary",
279
- children: [
280
- /* @__PURE__ */ w("div", {
281
- className: "flex items-center gap-1.5",
282
- children: [/* @__PURE__ */ C(d, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: N.scheduledDate })]
283
- }),
284
- /* @__PURE__ */ w("div", {
285
- className: "flex items-center gap-1.5",
286
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: N.scheduledTime })]
287
- }),
288
- /* @__PURE__ */ w("div", {
289
- className: "flex items-center gap-1.5",
290
- children: [/* @__PURE__ */ C(h, { className: "h-4 w-4" }), /* @__PURE__ */ w("span", { children: [N.duration, " min"] })]
291
- })
292
- ]
293
- }),
294
- N.notes && /* @__PURE__ */ w("div", {
295
- className: "mt-4 rounded-md bg-bg-sunken p-3",
296
- children: [/* @__PURE__ */ C("p", {
297
- className: "text-xs text-text-secondary mb-1",
298
- children: "Notes"
299
- }), /* @__PURE__ */ C("p", {
300
- className: "text-sm text-text-primary",
301
- children: N.notes
302
- })]
303
- }),
304
- N.cancellationReason && /* @__PURE__ */ w("div", {
305
- className: "mt-4 rounded-md bg-status-error-bg/5 border border-status-error-border/20 p-3",
306
- children: [/* @__PURE__ */ w("div", {
307
- className: "flex items-center gap-2 mb-1",
308
- children: [/* @__PURE__ */ C(l, { className: "h-3.5 w-3.5 text-status-error-text" }), /* @__PURE__ */ C("p", {
309
- className: "text-xs font-medium text-status-error-text",
310
- children: "Cancellation Reason"
311
- })]
312
- }), /* @__PURE__ */ C("p", {
313
- className: "text-sm text-text-primary",
314
- children: N.cancellationReason
315
- })]
316
- })
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",
327
- children: [
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" })
331
- }),
332
- /* @__PURE__ */ w("div", {
333
- className: "flex-1 min-w-0",
334
- children: [
335
- /* @__PURE__ */ C("p", {
336
- className: "text-sm font-semibold text-text-primary",
337
- children: N.provider.name
338
- }),
339
- /* @__PURE__ */ C("p", {
340
- className: "text-xs text-text-secondary",
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
- })]
349
- })
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" })
356
- })
357
- ]
358
- }),
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}`);
393
- })
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",
416
- children: [
417
- /* @__PURE__ */ C("h3", {
418
- className: "text-base font-semibold text-text-primary mb-3",
419
- children: "Cart Information"
420
- }),
421
- /* @__PURE__ */ w("div", {
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
- ]
457
- })]
458
- }),
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
- })
468
- }),
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"
474
- })
475
- ]
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", {
486
- className: "text-sm text-text-primary",
487
- children: N.location.street
488
- }),
489
- /* @__PURE__ */ w("p", {
490
- className: "text-sm text-text-secondary",
491
- children: [
492
- N.location.area,
493
- ", ",
494
- N.location.city,
495
- " - ",
496
- N.location.pincode
497
- ]
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
- ]
621
- });
622
- }
623
- //#endregion
624
- export { A as BookingDetailsPage };
625
-
626
- //# sourceMappingURL=BookingDetailsPage.js.map