@burdenoff/microfe-atheletebridge 2026.625.2 → 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 (162) hide show
  1. package/dist/atheletebridge/AthleteBridgeRoot.js +49 -129
  2. package/dist/atheletebridge/AthleteBridgeRoot.js.map +1 -1
  3. package/dist/atheletebridge/AthleteBridgeRoutes.js +65 -184
  4. package/dist/atheletebridge/AthleteBridgeRoutes.js.map +1 -1
  5. package/dist/atheletebridge/components/CursorPager.js +34 -0
  6. package/dist/atheletebridge/components/CursorPager.js.map +1 -0
  7. package/dist/atheletebridge/components/FilterSelect.js +22 -0
  8. package/dist/atheletebridge/components/FilterSelect.js.map +1 -0
  9. package/dist/atheletebridge/components/FixtureCard.js +76 -0
  10. package/dist/atheletebridge/components/FixtureCard.js.map +1 -0
  11. package/dist/atheletebridge/components/LoadingState.js +36 -0
  12. package/dist/atheletebridge/components/LoadingState.js.map +1 -0
  13. package/dist/atheletebridge/components/ProgramCard.js +69 -0
  14. package/dist/atheletebridge/components/ProgramCard.js.map +1 -0
  15. package/dist/atheletebridge/components/SessionCard.js +76 -0
  16. package/dist/atheletebridge/components/SessionCard.js.map +1 -0
  17. package/dist/atheletebridge/components/StatusBadge.js +44 -35
  18. package/dist/atheletebridge/components/StatusBadge.js.map +1 -1
  19. package/dist/atheletebridge/components/TeamCard.js +81 -0
  20. package/dist/atheletebridge/components/TeamCard.js.map +1 -0
  21. package/dist/atheletebridge/components/domain.js +47 -0
  22. package/dist/atheletebridge/components/domain.js.map +1 -0
  23. package/dist/atheletebridge/components/form.js +29 -0
  24. package/dist/atheletebridge/components/form.js.map +1 -0
  25. package/dist/atheletebridge/context/AthleteBridgeContext.js +6 -6
  26. package/dist/atheletebridge/context/AthleteBridgeContext.js.map +1 -1
  27. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js +342 -165
  28. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js.map +1 -1
  29. package/dist/atheletebridge/index.js +1 -1
  30. package/dist/atheletebridge/pages/DashboardPage.js +169 -0
  31. package/dist/atheletebridge/pages/DashboardPage.js.map +1 -0
  32. package/dist/atheletebridge/pages/StandingsPage.js +166 -0
  33. package/dist/atheletebridge/pages/StandingsPage.js.map +1 -0
  34. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js +201 -0
  35. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js.map +1 -0
  36. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js +205 -0
  37. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js.map +1 -0
  38. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js +92 -0
  39. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js.map +1 -0
  40. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js +374 -0
  41. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js.map +1 -0
  42. package/dist/atheletebridge/pages/programs/ProgramFormPage.js +207 -0
  43. package/dist/atheletebridge/pages/programs/ProgramFormPage.js.map +1 -0
  44. package/dist/atheletebridge/pages/programs/ProgramsListPage.js +113 -0
  45. package/dist/atheletebridge/pages/programs/ProgramsListPage.js.map +1 -0
  46. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js +224 -0
  47. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js.map +1 -0
  48. package/dist/atheletebridge/pages/sessions/SessionFormPage.js +206 -0
  49. package/dist/atheletebridge/pages/sessions/SessionFormPage.js.map +1 -0
  50. package/dist/atheletebridge/pages/sessions/SessionsListPage.js +92 -0
  51. package/dist/atheletebridge/pages/sessions/SessionsListPage.js.map +1 -0
  52. package/dist/atheletebridge/pages/teams/TeamDetailPage.js +350 -0
  53. package/dist/atheletebridge/pages/teams/TeamDetailPage.js.map +1 -0
  54. package/dist/atheletebridge/pages/teams/TeamFormPage.js +222 -0
  55. package/dist/atheletebridge/pages/teams/TeamFormPage.js.map +1 -0
  56. package/dist/atheletebridge/pages/teams/TeamsListPage.js +101 -0
  57. package/dist/atheletebridge/pages/teams/TeamsListPage.js.map +1 -0
  58. package/dist/atheletebridge/store/atheletebridgeStore.js +2 -13
  59. package/dist/atheletebridge/store/atheletebridgeStore.js.map +1 -1
  60. package/dist/atheletebridge/utils/datetime.js +10 -0
  61. package/dist/atheletebridge/utils/datetime.js.map +1 -0
  62. package/dist/atheletebridge/utils/formatters.js +1 -4
  63. package/dist/atheletebridge/utils/formatters.js.map +1 -1
  64. package/package.json +1 -1
  65. package/dist/atheletebridge/components/InvestmentCard.js +0 -96
  66. package/dist/atheletebridge/components/InvestmentCard.js.map +0 -1
  67. package/dist/atheletebridge/components/RatingDisplay.js +0 -35
  68. package/dist/atheletebridge/components/RatingDisplay.js.map +0 -1
  69. package/dist/atheletebridge/mocks/data.js +0 -1517
  70. package/dist/atheletebridge/mocks/data.js.map +0 -1
  71. package/dist/atheletebridge/mocks/users.js +0 -34
  72. package/dist/atheletebridge/mocks/users.js.map +0 -1
  73. package/dist/atheletebridge/pages/HomePage.js +0 -936
  74. package/dist/atheletebridge/pages/HomePage.js.map +0 -1
  75. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +0 -653
  76. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +0 -1
  77. package/dist/atheletebridge/pages/admin/AdminDashboard.js +0 -671
  78. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +0 -1
  79. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +0 -429
  80. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +0 -1
  81. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +0 -667
  82. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +0 -1
  83. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +0 -261
  84. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +0 -1
  85. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +0 -653
  86. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +0 -1
  87. package/dist/atheletebridge/pages/admin/CartManagementPage.js +0 -876
  88. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +0 -1
  89. package/dist/atheletebridge/pages/admin/UserManagementPage.js +0 -900
  90. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +0 -1
  91. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +0 -839
  92. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  93. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +0 -704
  94. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  95. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +0 -792
  96. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  97. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  98. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  99. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +0 -633
  100. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  101. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +0 -913
  102. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  103. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +0 -881
  104. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +0 -1
  105. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +0 -841
  106. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +0 -1
  107. package/dist/atheletebridge/pages/common/HelpSupportPage.js +0 -1319
  108. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +0 -1
  109. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +0 -674
  110. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +0 -1
  111. package/dist/atheletebridge/pages/common/SettingsPage.js +0 -972
  112. package/dist/atheletebridge/pages/common/SettingsPage.js.map +0 -1
  113. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +0 -602
  114. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +0 -1
  115. package/dist/atheletebridge/pages/customer/CartDetailPage.js +0 -656
  116. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +0 -1
  117. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +0 -558
  118. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +0 -1
  119. package/dist/atheletebridge/pages/customer/CheckoutPage.js +0 -536
  120. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +0 -1
  121. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +0 -539
  122. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +0 -1
  123. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +0 -657
  124. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +0 -1
  125. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +0 -635
  126. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +0 -1
  127. package/dist/atheletebridge/pages/customer/FavoritesPage.js +0 -486
  128. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +0 -1
  129. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +0 -447
  130. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +0 -1
  131. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +0 -393
  132. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +0 -1
  133. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +0 -494
  134. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +0 -1
  135. package/dist/atheletebridge/pages/customer/ReviewsPage.js +0 -615
  136. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +0 -1
  137. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +0 -451
  138. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +0 -1
  139. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +0 -881
  140. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +0 -1
  141. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +0 -945
  142. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  143. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +0 -686
  144. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  145. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +0 -453
  146. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +0 -1
  147. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +0 -405
  148. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  149. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +0 -577
  150. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +0 -1
  151. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +0 -1069
  152. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +0 -1
  153. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +0 -530
  154. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +0 -1
  155. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +0 -669
  156. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +0 -1
  157. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +0 -681
  158. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +0 -1
  159. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +0 -691
  160. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +0 -1
  161. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +0 -588
  162. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1,602 +0,0 @@
1
- import { useAthleteBridge as e } from "../../context/AthleteBridgeContext.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, PagePurpose as E } from "@burdenoff/fe-libs/ui";
12
- //#region src/atheletebridge/pages/customer/BookingDetailsPage.tsx
13
- var D = [
14
- {
15
- id: "BK-001",
16
- serviceName: "Men's Haircut + Beard Trim",
17
- serviceDescription: "Professional haircut and beard grooming service at your doorstep",
18
- provider: {
19
- id: "SERV-001",
20
- name: "Quick Cuts Salon",
21
- phone: "+91-9876543210",
22
- rating: 4.6,
23
- reviewCount: 248,
24
- category: "Personal Care & Beauty",
25
- image: "https://images.unsplash.com/photo-1562322140-8baeececf3df?w=400",
26
- location: "Indiranagar, Bangalore"
27
- },
28
- scheduledDate: "2024-01-20",
29
- scheduledTime: "10:00 AM",
30
- duration: 50,
31
- status: "confirmed",
32
- location: {
33
- street: "123 Main Street",
34
- area: "Koramangala",
35
- city: "Bangalore",
36
- pincode: "560034",
37
- landmark: "Near Metro Station"
38
- },
39
- pricing: {
40
- serviceCharge: 450,
41
- convenienceFee: 30,
42
- tax: 48,
43
- discount: 50,
44
- total: 478
45
- },
46
- createdAt: "2024-01-16T14:30:00Z",
47
- notes: "Please bring your own equipment",
48
- timeline: [
49
- {
50
- status: "booked",
51
- label: "Booking Placed",
52
- timestamp: "2024-01-16T14:30:00Z",
53
- completed: !0
54
- },
55
- {
56
- status: "confirmed",
57
- label: "Booking Confirmed",
58
- timestamp: "2024-01-16T14:35:00Z",
59
- completed: !0
60
- },
61
- {
62
- status: "in_progress",
63
- label: "Service Started",
64
- timestamp: null,
65
- completed: !1
66
- },
67
- {
68
- status: "completed",
69
- label: "Service Completed",
70
- timestamp: null,
71
- completed: !1
72
- }
73
- ]
74
- },
75
- {
76
- id: "BK-002",
77
- serviceName: "Deep House Cleaning",
78
- serviceDescription: "Complete house cleaning service including kitchen, bathrooms, and living areas",
79
- provider: {
80
- id: "SERV-005",
81
- name: "Spotless Cleaning Services",
82
- phone: "+91-9876543215",
83
- rating: 4.8,
84
- reviewCount: 312,
85
- category: "Home Services",
86
- image: "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400",
87
- location: "Whitefield, Bangalore"
88
- },
89
- scheduledDate: "2024-01-18",
90
- scheduledTime: "09:00 AM",
91
- duration: 180,
92
- status: "completed",
93
- location: {
94
- street: "456 Park Avenue",
95
- area: "Indiranagar",
96
- city: "Bangalore",
97
- pincode: "560038"
98
- },
99
- pricing: {
100
- serviceCharge: 1500,
101
- convenienceFee: 50,
102
- tax: 155,
103
- discount: 0,
104
- total: 1705
105
- },
106
- createdAt: "2024-01-15T10:00:00Z",
107
- timeline: [
108
- {
109
- status: "booked",
110
- label: "Booking Placed",
111
- timestamp: "2024-01-15T10:00:00Z",
112
- completed: !0
113
- },
114
- {
115
- status: "confirmed",
116
- label: "Booking Confirmed",
117
- timestamp: "2024-01-15T10:05:00Z",
118
- completed: !0
119
- },
120
- {
121
- status: "in_progress",
122
- label: "Service Started",
123
- timestamp: "2024-01-18T09:10:00Z",
124
- completed: !0
125
- },
126
- {
127
- status: "completed",
128
- label: "Service Completed",
129
- timestamp: "2024-01-18T12:15:00Z",
130
- completed: !0
131
- }
132
- ]
133
- },
134
- {
135
- id: "BK-003",
136
- serviceName: "Facial Treatment",
137
- serviceDescription: "Deep cleansing facial with natural ingredients for glowing skin",
138
- provider: {
139
- id: "SERV-002",
140
- name: "Glow Beauty Services",
141
- phone: "+91-9876543212",
142
- rating: 4.7,
143
- reviewCount: 180,
144
- category: "Personal Care & Beauty",
145
- image: "https://images.unsplash.com/photo-1560066984-138dadb4c035?w=400",
146
- location: "HSR Layout, Bangalore"
147
- },
148
- scheduledDate: "2024-01-22",
149
- scheduledTime: "02:00 PM",
150
- duration: 60,
151
- status: "cancelled",
152
- location: {
153
- street: "789 Lake View",
154
- area: "HSR Layout",
155
- city: "Bangalore",
156
- pincode: "560102"
157
- },
158
- pricing: {
159
- serviceCharge: 800,
160
- convenienceFee: 30,
161
- tax: 83,
162
- discount: 0,
163
- total: 913
164
- },
165
- createdAt: "2024-01-17T16:00:00Z",
166
- cancellationReason: "Schedule conflict - need to reschedule",
167
- timeline: [
168
- {
169
- status: "booked",
170
- label: "Booking Placed",
171
- timestamp: "2024-01-17T16:00:00Z",
172
- completed: !0
173
- },
174
- {
175
- status: "confirmed",
176
- label: "Booking Confirmed",
177
- timestamp: "2024-01-17T16:10:00Z",
178
- completed: !0
179
- },
180
- {
181
- status: "cancelled",
182
- label: "Booking Cancelled",
183
- timestamp: "2024-01-18T09:00:00Z",
184
- completed: !0
185
- }
186
- ]
187
- }
188
- ], O = (e) => D.find((t) => t.id === e);
189
- function k() {
190
- let { bookingId: D } = S(), { navigateTo: k } = e(), [A, j] = c(null), M = s(() => D ? O(D) : void 0, [D]), N = (e) => {
191
- j(e), setTimeout(() => j(null), 3e3);
192
- };
193
- if (!M) return /* @__PURE__ */ C(n, {
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 "${D}".`,
200
- action: /* @__PURE__ */ C("button", {
201
- type: "button",
202
- onClick: () => k("/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 P = M.status === "cancelled", F = M.status === "completed", I = !P && !F;
209
- return /* @__PURE__ */ w(n, {
210
- title: /* @__PURE__ */ w("div", {
211
- className: "flex items-center gap-3",
212
- children: [/* @__PURE__ */ C("button", {
213
- type: "button",
214
- onClick: () => k("/customer/dashboard"),
215
- className: "rounded-md p-1 text-text-secondary hover:bg-accent hover:text-text-primary transition-colors",
216
- children: /* @__PURE__ */ C(u, { className: "h-5 w-5" })
217
- }), /* @__PURE__ */ w("span", { children: ["Booking #", M.id] })]
218
- }),
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
273
- })]
274
- }),
275
- M.cancellationReason && /* @__PURE__ */ w("div", {
276
- className: "mt-4 rounded-md bg-red-500/5 border border-red-500/20 p-3",
277
- children: [/* @__PURE__ */ w("div", {
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"
282
- })]
283
- }), /* @__PURE__ */ C("p", {
284
- className: "text-sm text-text-primary",
285
- children: M.cancellationReason
286
- })]
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",
299
- children: [
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" })
303
- }),
304
- /* @__PURE__ */ w("div", {
305
- className: "flex-1 min-w-0",
306
- children: [
307
- /* @__PURE__ */ C("p", {
308
- className: "text-sm font-semibold text-text-primary",
309
- children: M.provider.name
310
- }),
311
- /* @__PURE__ */ C("p", {
312
- className: "text-xs text-text-secondary",
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
- })]
321
- })
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" })
328
- })
329
- ]
330
- }),
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}`);
365
- })
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",
392
- children: [
393
- /* @__PURE__ */ C("h3", {
394
- className: "text-base font-semibold text-text-primary mb-3",
395
- children: "Cart Information"
396
- }),
397
- /* @__PURE__ */ w("div", {
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
- ]
433
- })]
434
- }),
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
- })
444
- }),
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"
450
- })
451
- ]
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", {
462
- className: "text-sm text-text-primary",
463
- children: M.location.street
464
- }),
465
- /* @__PURE__ */ w("p", {
466
- className: "text-sm text-text-secondary",
467
- children: [
468
- M.location.area,
469
- ", ",
470
- M.location.city,
471
- " - ",
472
- M.location.pincode
473
- ]
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
- ]
597
- });
598
- }
599
- //#endregion
600
- export { k as BookingDetailsPage };
601
-
602
- //# sourceMappingURL=BookingDetailsPage.js.map