@burdenoff/microfe-atheletebridge 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 (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,936 +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 { MetricsCard as r } from "../components/MetricsCard.js";
5
- import { StatusBadge as i } from "../components/StatusBadge.js";
6
- import { EmptyState as ee } from "../components/EmptyState.js";
7
- import { useAthleteBridgeApi as a } from "../hooks/useAthleteBridgeApi.js";
8
- import { formatCurrency as o, formatDistance as s, formatRelativeTime as c } from "../utils/formatters.js";
9
- import { useCallback as l, useMemo as u, useState as d } from "react";
10
- import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
- import { Activity as p, AlertCircle as m, ArrowRight as h, BadgeCheck as g, BarChart3 as _, CheckCircle2 as v, ChefHat as y, ClipboardList as b, Clock as x, FileText as S, GraduationCap as C, HandCoins as w, Heart as T, Home as E, IndianRupee as D, LayoutDashboard as O, Loader2 as k, MapPin as A, Package as j, Scissors as M, Search as N, Settings as P, Shirt as F, ShoppingBag as I, ShoppingCart as L, Sparkles as R, Star as z, Store as B, TrendingUp as V, Truck as H, Users as U, Wallet as W, Wrench as G } from "lucide-react";
12
- import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
13
- import { EmphasisPanel as Y, GradientText as X, PagePurpose as Z, ShowMore as Q } from "@burdenoff/fe-libs/ui";
14
- //#region src/atheletebridge/pages/HomePage.tsx
15
- var $ = {
16
- customer: [
17
- {
18
- label: "Discover Services",
19
- description: "Browse carts near you",
20
- icon: /* @__PURE__ */ q(N, { className: "h-5 w-5" }),
21
- path: "/customer/carts",
22
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
23
- },
24
- {
25
- label: "My Orders",
26
- description: "Track your orders",
27
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
28
- path: "/customer/orders",
29
- color: "bg-green-500/10 text-green-600 dark:text-green-400"
30
- },
31
- {
32
- label: "Favorites",
33
- description: "Your saved carts",
34
- icon: /* @__PURE__ */ q(T, { className: "h-5 w-5" }),
35
- path: "/customer/favorites",
36
- color: "bg-pink-500/10 text-pink-600 dark:text-pink-400"
37
- },
38
- {
39
- label: "Settings",
40
- description: "Manage preferences",
41
- icon: /* @__PURE__ */ q(P, { className: "h-5 w-5" }),
42
- path: "/settings",
43
- color: "bg-bg-sunken text-text-secondary"
44
- }
45
- ],
46
- cart_owner: [
47
- {
48
- label: "My Cart",
49
- description: "Manage your cart",
50
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
51
- path: "/owner/dashboard",
52
- color: "bg-purple-500/10 text-purple-600 dark:text-purple-400"
53
- },
54
- {
55
- label: "Orders",
56
- description: "Incoming orders",
57
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
58
- path: "/owner/orders",
59
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
60
- },
61
- {
62
- label: "Analytics",
63
- description: "Revenue & insights",
64
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
65
- path: "/owner/analytics",
66
- color: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"
67
- },
68
- {
69
- label: "Staff",
70
- description: "Manage workers",
71
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
72
- path: "/owner/staff",
73
- color: "bg-orange-500/10 text-orange-600 dark:text-orange-400"
74
- }
75
- ],
76
- worker: [
77
- {
78
- label: "My Tasks",
79
- description: "View assigned tasks",
80
- icon: /* @__PURE__ */ q(b, { className: "h-5 w-5" }),
81
- path: "/worker/dashboard",
82
- color: "bg-orange-500/10 text-orange-600 dark:text-orange-400"
83
- },
84
- {
85
- label: "Schedule",
86
- description: "View shifts",
87
- icon: /* @__PURE__ */ q(x, { className: "h-5 w-5" }),
88
- path: "/worker/schedule",
89
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
90
- },
91
- {
92
- label: "Earnings",
93
- description: "Track pay",
94
- icon: /* @__PURE__ */ q(W, { className: "h-5 w-5" }),
95
- path: "/worker/earnings",
96
- color: "bg-green-500/10 text-green-600 dark:text-green-400"
97
- },
98
- {
99
- label: "Performance",
100
- description: "Ratings & stats",
101
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
102
- path: "/worker/performance",
103
- color: "bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"
104
- }
105
- ],
106
- investor: [
107
- {
108
- label: "Portfolio",
109
- description: "Your investments",
110
- icon: /* @__PURE__ */ q(V, { className: "h-5 w-5" }),
111
- path: "/investor/dashboard",
112
- color: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"
113
- },
114
- {
115
- label: "Opportunities",
116
- description: "New investments",
117
- icon: /* @__PURE__ */ q(w, { className: "h-5 w-5" }),
118
- path: "/investor/opportunities",
119
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
120
- },
121
- {
122
- label: "Returns",
123
- description: "Earnings history",
124
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
125
- path: "/investor/returns",
126
- color: "bg-green-500/10 text-green-600 dark:text-green-400"
127
- },
128
- {
129
- label: "Reports",
130
- description: "Performance reports",
131
- icon: /* @__PURE__ */ q(S, { className: "h-5 w-5" }),
132
- path: "/investor/reports",
133
- color: "bg-purple-500/10 text-purple-600 dark:text-purple-400"
134
- }
135
- ],
136
- admin: [
137
- {
138
- label: "Dashboard",
139
- description: "Platform overview",
140
- icon: /* @__PURE__ */ q(O, { className: "h-5 w-5" }),
141
- path: "/admin/dashboard",
142
- color: "bg-red-500/10 text-red-600 dark:text-red-400"
143
- },
144
- {
145
- label: "Users",
146
- description: "Manage accounts",
147
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
148
- path: "/admin/users",
149
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
150
- },
151
- {
152
- label: "Carts",
153
- description: "Approve & manage",
154
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
155
- path: "/admin/carts",
156
- color: "bg-purple-500/10 text-purple-600 dark:text-purple-400"
157
- },
158
- {
159
- label: "Analytics",
160
- description: "Revenue reports",
161
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
162
- path: "/admin/analytics",
163
- color: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"
164
- }
165
- ]
166
- };
167
- function te(e, t, n) {
168
- switch (e) {
169
- case "customer": return [
170
- {
171
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
172
- value: t.length.toString(),
173
- label: "Total Orders",
174
- trend: "up",
175
- trendValue: "+2 this week"
176
- },
177
- {
178
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
179
- value: (n?.activeProviders ?? 0).toString(),
180
- label: "Nearby Providers",
181
- trend: "up",
182
- trendValue: "+3"
183
- },
184
- {
185
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
186
- value: (n?.avgRating ?? 0).toFixed(1),
187
- label: "Avg. Rating",
188
- trend: "up",
189
- trendValue: "+0.1"
190
- },
191
- {
192
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
193
- value: o(t.reduce((e, t) => e + t.total, 0), { minimumFractionDigits: 0 }),
194
- label: "Total Spent",
195
- trend: "neutral",
196
- trendValue: ""
197
- }
198
- ];
199
- case "cart_owner": return [
200
- {
201
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
202
- value: "48",
203
- label: "Orders Today",
204
- trend: "up",
205
- trendValue: "+12%"
206
- },
207
- {
208
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
209
- value: o(12850, { minimumFractionDigits: 0 }),
210
- label: "Today's Revenue",
211
- trend: "up",
212
- trendValue: "+8%"
213
- },
214
- {
215
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
216
- value: "4.6",
217
- label: "Cart Rating",
218
- trend: "up",
219
- trendValue: "+0.2"
220
- },
221
- {
222
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
223
- value: "5",
224
- label: "Active Staff",
225
- trend: "neutral",
226
- trendValue: ""
227
- }
228
- ];
229
- case "worker": return [
230
- {
231
- icon: /* @__PURE__ */ q(b, { className: "h-5 w-5" }),
232
- value: "5",
233
- label: "Tasks Today",
234
- trend: "up",
235
- trendValue: "+2"
236
- },
237
- {
238
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
239
- value: o(425, { minimumFractionDigits: 0 }),
240
- label: "Today's Earnings",
241
- trend: "up",
242
- trendValue: "+15%"
243
- },
244
- {
245
- icon: /* @__PURE__ */ q(z, { className: "h-5 w-5" }),
246
- value: "4.7",
247
- label: "Rating",
248
- trend: "up",
249
- trendValue: "+0.1"
250
- },
251
- {
252
- icon: /* @__PURE__ */ q(v, { className: "h-5 w-5" }),
253
- value: "96.8%",
254
- label: "Completion Rate",
255
- trend: "up",
256
- trendValue: "+0.5%"
257
- }
258
- ];
259
- case "investor": return [
260
- {
261
- icon: /* @__PURE__ */ q(V, { className: "h-5 w-5" }),
262
- value: "3",
263
- label: "Active Investments",
264
- trend: "up",
265
- trendValue: "+1"
266
- },
267
- {
268
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
269
- value: o(45e4, { minimumFractionDigits: 0 }),
270
- label: "Total Invested",
271
- trend: "up",
272
- trendValue: ""
273
- },
274
- {
275
- icon: /* @__PURE__ */ q(w, { className: "h-5 w-5" }),
276
- value: "16.5%",
277
- label: "Avg. Returns",
278
- trend: "up",
279
- trendValue: "+2.1%"
280
- },
281
- {
282
- icon: /* @__PURE__ */ q(_, { className: "h-5 w-5" }),
283
- value: o(74250, { minimumFractionDigits: 0 }),
284
- label: "Total Returns",
285
- trend: "up",
286
- trendValue: "+8.5%"
287
- }
288
- ];
289
- default: return [
290
- {
291
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" }),
292
- value: (n?.activeCustomers ?? 0).toLocaleString("en-IN"),
293
- label: "Active Customers",
294
- trend: "up",
295
- trendValue: "+50"
296
- },
297
- {
298
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" }),
299
- value: (n?.activeProviders ?? 0).toString(),
300
- label: "Service Providers",
301
- trend: "up",
302
- trendValue: "+3"
303
- },
304
- {
305
- icon: /* @__PURE__ */ q(I, { className: "h-5 w-5" }),
306
- value: (n?.totalOrders ?? 0).toLocaleString("en-IN"),
307
- label: "Total Orders",
308
- trend: "up",
309
- trendValue: "+12%"
310
- },
311
- {
312
- icon: /* @__PURE__ */ q(D, { className: "h-5 w-5" }),
313
- value: o(n?.totalRevenue ?? 0, { minimumFractionDigits: 0 }),
314
- label: "Total Revenue",
315
- trend: "up",
316
- trendValue: "+8.5%"
317
- }
318
- ];
319
- }
320
- }
321
- var ne = [
322
- {
323
- label: "Food & Beverage",
324
- icon: /* @__PURE__ */ q(y, { className: "h-6 w-6" }),
325
- color: "bg-orange-500/10 text-orange-600 dark:text-orange-400"
326
- },
327
- {
328
- label: "Personal Care & Beauty",
329
- icon: /* @__PURE__ */ q(M, { className: "h-6 w-6" }),
330
- color: "bg-pink-500/10 text-pink-600 dark:text-pink-400"
331
- },
332
- {
333
- label: "Repair & Maintenance",
334
- icon: /* @__PURE__ */ q(G, { className: "h-6 w-6" }),
335
- color: "bg-blue-500/10 text-blue-600 dark:text-blue-400"
336
- },
337
- {
338
- label: "Home Services",
339
- icon: /* @__PURE__ */ q(E, { className: "h-6 w-6" }),
340
- color: "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"
341
- },
342
- {
343
- label: "Clothing & Fashion",
344
- icon: /* @__PURE__ */ q(F, { className: "h-6 w-6" }),
345
- color: "bg-purple-500/10 text-purple-600 dark:text-purple-400"
346
- },
347
- {
348
- label: "Health & Wellness",
349
- icon: /* @__PURE__ */ q(T, { className: "h-6 w-6" }),
350
- color: "bg-red-500/10 text-red-600 dark:text-red-400"
351
- },
352
- {
353
- label: "Education & Skills",
354
- icon: /* @__PURE__ */ q(C, { className: "h-6 w-6" }),
355
- color: "bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"
356
- },
357
- {
358
- label: "Retail & Merchandise",
359
- icon: /* @__PURE__ */ q(j, { className: "h-6 w-6" }),
360
- color: "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400"
361
- },
362
- {
363
- label: "Grocery & Essentials",
364
- icon: /* @__PURE__ */ q(L, { className: "h-6 w-6" }),
365
- color: "bg-green-500/10 text-green-600 dark:text-green-400"
366
- }
367
- ], re = [
368
- {
369
- step: 1,
370
- title: "Browse Services",
371
- description: "Discover local service providers and carts near you.",
372
- icon: /* @__PURE__ */ q(N, { className: "h-6 w-6" })
373
- },
374
- {
375
- step: 2,
376
- title: "Place an Order",
377
- description: "Select items or services and place your order seamlessly.",
378
- icon: /* @__PURE__ */ q(I, { className: "h-6 w-6" })
379
- },
380
- {
381
- step: 3,
382
- title: "Track in Real-time",
383
- description: "Get live updates on your order from confirmation to delivery.",
384
- icon: /* @__PURE__ */ q(H, { className: "h-6 w-6" })
385
- },
386
- {
387
- step: 4,
388
- title: "Rate & Review",
389
- description: "Share your experience and help others find great services.",
390
- icon: /* @__PURE__ */ q(z, { className: "h-6 w-6" })
391
- }
392
- ], ie = [
393
- {
394
- id: "ha-1",
395
- description: "New order placed at Dosa Express",
396
- time: "2 mins ago",
397
- type: "order"
398
- },
399
- {
400
- id: "ha-2",
401
- description: "Quick Cuts Salon received a new review",
402
- time: "15 mins ago",
403
- type: "review"
404
- },
405
- {
406
- id: "ha-3",
407
- description: "Investment opportunity funded: Spotless Cleaning",
408
- time: "1 hour ago",
409
- type: "investment"
410
- },
411
- {
412
- id: "ha-4",
413
- description: "New cart registered: Gadget Zone Brigade",
414
- time: "3 hours ago",
415
- type: "cart"
416
- },
417
- {
418
- id: "ha-5",
419
- description: "Order delivered: Fix-It Mobile Repair",
420
- time: "5 hours ago",
421
- type: "order"
422
- }
423
- ], ae = [
424
- {
425
- label: "Service Providers",
426
- value: "21+",
427
- icon: /* @__PURE__ */ q(B, { className: "h-5 w-5" })
428
- },
429
- {
430
- label: "Categories",
431
- value: "9",
432
- icon: /* @__PURE__ */ q(j, { className: "h-5 w-5" })
433
- },
434
- {
435
- label: "Happy Customers",
436
- value: "534+",
437
- icon: /* @__PURE__ */ q(U, { className: "h-5 w-5" })
438
- },
439
- {
440
- label: "Orders Completed",
441
- value: "1,247+",
442
- icon: /* @__PURE__ */ q(v, { className: "h-5 w-5" })
443
- }
444
- ];
445
- function oe() {
446
- let { navigateTo: _, currentUser: v } = e(), { t: y } = f(), [b, S] = d(""), { providers: C, orders: w, dashboardStats: T } = a(), E = l((e, t) => {
447
- let n = y(e);
448
- return n === e ? t : n;
449
- }, [y]), O = v?.firstName ?? v?.name ?? "there", j = v?.role ?? "customer", M = {
450
- customer: E("atheletebridge.home.role.customer", "Customer"),
451
- cart_owner: E("atheletebridge.home.role.cartOwner", "Cart Owner"),
452
- worker: E("atheletebridge.home.role.worker", "Worker"),
453
- investor: E("atheletebridge.home.role.investor", "Investor"),
454
- admin: E("atheletebridge.home.role.admin", "Administrator")
455
- }, P = {
456
- customer: E("atheletebridge.home.greeting.customer", "Discover amazing services near you"),
457
- cart_owner: E("atheletebridge.home.greeting.cartOwner", "Manage your business and grow"),
458
- worker: E("atheletebridge.home.greeting.worker", "Check your tasks and earnings"),
459
- investor: E("atheletebridge.home.greeting.investor", "Track your investments and returns"),
460
- admin: E("atheletebridge.home.greeting.admin", "Monitor and manage the platform")
461
- }, F = $[j] ?? $.customer, I = te(j, w.data ?? [], T.data), L = u(() => {
462
- let e = (C.data ?? []).filter((e) => e.isOpen);
463
- if (b) {
464
- let t = b.toLowerCase();
465
- e = e.filter((e) => e.name.toLowerCase().includes(t) || e.category.toLowerCase().includes(t));
466
- }
467
- return e.sort((e, t) => t.rating - e.rating).slice(0, 6);
468
- }, [C.data, b]), B = u(() => [...w.data ?? []].sort((e, t) => new Date(t.orderDate).getTime() - new Date(e.orderDate).getTime()).slice(0, 3), [w.data]), V = {
469
- order: "text-blue-600 dark:text-blue-400",
470
- review: "text-yellow-600 dark:text-yellow-400",
471
- investment: "text-green-600 dark:text-green-400",
472
- cart: "text-purple-600 dark:text-purple-400"
473
- }, H = (w.data ?? []).length === 0 && !w.isLoading, U = C.isLoading || w.isLoading || T.isLoading, W = C.isError || w.isError || T.isError;
474
- return U ? /* @__PURE__ */ q(n, {
475
- title: E("atheletebridge.common.loading", "Loading..."),
476
- children: /* @__PURE__ */ q("div", {
477
- className: "flex h-[60vh] items-center justify-center",
478
- children: /* @__PURE__ */ q(k, { className: "h-8 w-8 animate-spin text-primary" })
479
- })
480
- }) : W ? /* @__PURE__ */ q(n, {
481
- title: E("atheletebridge.common.error", "Error"),
482
- children: /* @__PURE__ */ J("div", {
483
- className: "flex h-[60vh] flex-col items-center justify-center gap-4",
484
- children: [
485
- /* @__PURE__ */ q(m, { className: "h-12 w-12 text-status-error-text" }),
486
- /* @__PURE__ */ q("h2", {
487
- className: "text-xl font-semibold",
488
- children: E("atheletebridge.common.errorLoading", "Error loading data")
489
- }),
490
- /* @__PURE__ */ q("p", {
491
- className: "text-text-secondary",
492
- children: E("atheletebridge.common.tryAgain", "Please try again later.")
493
- })
494
- ]
495
- })
496
- }) : /* @__PURE__ */ J(n, {
497
- hero: !0,
498
- title: /* @__PURE__ */ J(K, { children: [
499
- E("atheletebridge.home.hello", "Hello"),
500
- ", ",
501
- /* @__PURE__ */ q(X, { children: O }),
502
- "!"
503
- ] }),
504
- description: P[j],
505
- children: [
506
- /* @__PURE__ */ q(Z, {
507
- className: "mb-6",
508
- children: E("atheletebridge.home.purpose", "Your home base on AthleteBridge. See your key numbers at a glance, jump straight to what you do most with quick actions, and discover services, carts and categories near you. Start here, then dive into whatever you came to do.")
509
- }),
510
- H && /* @__PURE__ */ q("section", {
511
- className: "mb-6 rounded-xl border border-border-subtle bg-gradient-to-r from-primary/5 via-primary/10 to-primary/5 p-6",
512
- children: /* @__PURE__ */ J("div", {
513
- className: "flex items-start gap-4",
514
- children: [/* @__PURE__ */ q("div", {
515
- className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-action-primary-bg/10",
516
- children: /* @__PURE__ */ q(R, { className: "h-6 w-6 text-primary" })
517
- }), /* @__PURE__ */ J("div", {
518
- className: "flex-1",
519
- children: [
520
- /* @__PURE__ */ q("h2", {
521
- className: "text-lg font-semibold text-text-primary",
522
- children: E("atheletebridge.home.welcomeTitle", "Welcome to AthleteBridge!")
523
- }),
524
- /* @__PURE__ */ q("p", {
525
- className: "mt-1 text-sm text-text-secondary",
526
- children: E("atheletebridge.home.welcomeDescription", "Your local services marketplace. Start by exploring service providers near you or browse categories to find what you need.")
527
- }),
528
- /* @__PURE__ */ J("button", {
529
- type: "button",
530
- onClick: () => _("/customer/carts"),
531
- className: "mt-3 inline-flex items-center gap-1.5 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
532
- children: [/* @__PURE__ */ q(N, { className: "h-4 w-4" }), E("atheletebridge.home.exploreServices", "Explore Services")]
533
- })
534
- ]
535
- })]
536
- })
537
- }),
538
- /* @__PURE__ */ q(Y, {
539
- className: "mb-6",
540
- children: /* @__PURE__ */ J("div", {
541
- className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
542
- children: [/* @__PURE__ */ J("div", { children: [
543
- /* @__PURE__ */ q("div", {
544
- className: "flex items-center gap-2 mb-1",
545
- children: /* @__PURE__ */ J("span", {
546
- className: "inline-flex items-center rounded-full bg-action-primary-bg/10 px-2.5 py-0.5 text-xs font-medium text-primary",
547
- children: [/* @__PURE__ */ q(g, { className: "mr-1 h-3 w-3" }), M[j]]
548
- })
549
- }),
550
- /* @__PURE__ */ J("h2", {
551
- className: "text-xl font-bold text-text-primary",
552
- children: [
553
- E("atheletebridge.home.good", "Good"),
554
- " ",
555
- (/* @__PURE__ */ new Date()).getHours() < 12 ? E("atheletebridge.home.time.morning", "morning") : (/* @__PURE__ */ new Date()).getHours() < 17 ? E("atheletebridge.home.time.afternoon", "afternoon") : E("atheletebridge.home.time.evening", "evening"),
556
- ", ",
557
- O
558
- ]
559
- }),
560
- /* @__PURE__ */ q("p", {
561
- className: "mt-1 text-sm text-text-secondary",
562
- children: P[j]
563
- })
564
- ] }), /* @__PURE__ */ J("div", {
565
- className: "relative w-full sm:w-72",
566
- children: [/* @__PURE__ */ q(N, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ q("input", {
567
- type: "text",
568
- placeholder: E("atheletebridge.home.searchPlaceholder", "Search services, carts..."),
569
- value: b,
570
- onChange: (e) => S(e.target.value),
571
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2.5 pl-10 pr-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
572
- })]
573
- })]
574
- })
575
- }),
576
- /* @__PURE__ */ J("section", {
577
- className: "mb-8",
578
- children: [/* @__PURE__ */ q("h2", {
579
- className: "text-lg font-semibold text-text-primary mb-4",
580
- children: E("atheletebridge.home.quickStats", "Quick Stats")
581
- }), /* @__PURE__ */ q("div", {
582
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
583
- children: I.map((e, t) => /* @__PURE__ */ q(r, {
584
- icon: e.icon,
585
- value: e.value,
586
- label: e.label,
587
- trend: e.trend,
588
- trendValue: e.trendValue,
589
- featured: t === 0
590
- }, e.label))
591
- })]
592
- }),
593
- /* @__PURE__ */ J("section", {
594
- className: "mb-8",
595
- children: [/* @__PURE__ */ q("h2", {
596
- className: "text-lg font-semibold text-text-primary mb-4",
597
- children: E("atheletebridge.home.quickActions", "Quick Actions")
598
- }), /* @__PURE__ */ q("div", {
599
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
600
- children: F.map((e) => /* @__PURE__ */ J("button", {
601
- type: "button",
602
- onClick: () => _(e.path),
603
- className: t("flex items-start gap-3 rounded-lg border border-border-subtle bg-bg-surface p-4 text-left shadow-sm transition-all", "hover:border-accent-foreground/20 hover:shadow-md"),
604
- children: [
605
- /* @__PURE__ */ q("div", {
606
- className: t("flex h-10 w-10 shrink-0 items-center justify-center rounded-lg", e.color),
607
- children: e.icon
608
- }),
609
- /* @__PURE__ */ J("div", {
610
- className: "min-w-0 flex-1",
611
- children: [/* @__PURE__ */ q("p", {
612
- className: "text-sm font-semibold text-text-primary",
613
- children: e.label
614
- }), /* @__PURE__ */ q("p", {
615
- className: "mt-0.5 text-xs text-text-secondary",
616
- children: e.description
617
- })]
618
- }),
619
- /* @__PURE__ */ q(h, { className: "h-4 w-4 text-text-secondary shrink-0 mt-1" })
620
- ]
621
- }, e.label))
622
- })]
623
- }),
624
- /* @__PURE__ */ J("section", {
625
- className: "mb-8",
626
- children: [/* @__PURE__ */ J("div", {
627
- className: "flex items-center justify-between mb-4",
628
- children: [/* @__PURE__ */ q("h2", {
629
- className: "text-lg font-semibold text-text-primary",
630
- children: b ? E("atheletebridge.home.searchResults", "Search Results") : E("atheletebridge.home.featuredCarts", "Featured Carts")
631
- }), /* @__PURE__ */ J("button", {
632
- type: "button",
633
- onClick: () => _("/customer/carts"),
634
- className: "flex items-center gap-1 text-sm font-medium text-primary hover:underline",
635
- children: [
636
- E("atheletebridge.common.viewAll", "View All"),
637
- " ",
638
- /* @__PURE__ */ q(h, { className: "h-3.5 w-3.5" })
639
- ]
640
- })]
641
- }), L.length === 0 ? /* @__PURE__ */ q(ee, {
642
- illustration: "empty-search",
643
- title: E("atheletebridge.home.noCartsFound", "No carts found"),
644
- description: E("atheletebridge.home.noCartsDescription", "Try adjusting your search or browse all categories"),
645
- action: /* @__PURE__ */ q("button", {
646
- type: "button",
647
- onClick: () => S(""),
648
- className: "rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
649
- children: E("atheletebridge.home.clearSearch", "Clear Search")
650
- })
651
- }) : /* @__PURE__ */ q("div", {
652
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
653
- children: L.map((e) => /* @__PURE__ */ J("div", {
654
- role: "button",
655
- tabIndex: 0,
656
- onClick: () => _(`/customer/cart/${e.id}`),
657
- onKeyDown: (t) => {
658
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), _(`/customer/cart/${e.id}`));
659
- },
660
- className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden transition-all hover:shadow-md hover:border-accent-foreground/20 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
661
- children: [/* @__PURE__ */ J("div", {
662
- className: "relative h-40 bg-bg-sunken",
663
- children: [
664
- /* @__PURE__ */ q("img", {
665
- src: e.image,
666
- alt: e.name,
667
- className: "h-full w-full object-cover",
668
- loading: "lazy"
669
- }),
670
- /* @__PURE__ */ q("div", {
671
- className: "absolute top-2 right-2",
672
- children: /* @__PURE__ */ q(i, { status: e.isOpen ? "open" : "closed" })
673
- }),
674
- e.isVerified && /* @__PURE__ */ q("div", {
675
- className: "absolute top-2 left-2",
676
- children: /* @__PURE__ */ J("span", {
677
- className: "inline-flex items-center gap-1 rounded-full bg-blue-500/90 px-2 py-0.5 text-xs font-medium text-white backdrop-blur-sm",
678
- children: [
679
- /* @__PURE__ */ q(g, { className: "h-3 w-3" }),
680
- " ",
681
- E("atheletebridge.home.verified", "Verified")
682
- ]
683
- })
684
- }),
685
- /* @__PURE__ */ q("div", {
686
- className: "absolute bottom-2 right-2",
687
- children: /* @__PURE__ */ J("span", {
688
- className: "inline-flex items-center gap-1 rounded-full bg-black/60 px-2 py-0.5 text-xs text-white backdrop-blur-sm",
689
- children: [
690
- /* @__PURE__ */ q(x, { className: "h-3 w-3" }),
691
- " ",
692
- e.estimatedTime,
693
- " min"
694
- ]
695
- })
696
- })
697
- ]
698
- }), /* @__PURE__ */ J("div", {
699
- className: "p-4",
700
- children: [
701
- /* @__PURE__ */ J("div", {
702
- className: "flex items-start justify-between",
703
- children: [/* @__PURE__ */ J("div", {
704
- className: "min-w-0 flex-1",
705
- children: [/* @__PURE__ */ q("h3", {
706
- className: "text-base font-semibold text-text-primary truncate",
707
- children: e.name
708
- }), /* @__PURE__ */ q("p", {
709
- className: "mt-0.5 text-sm text-text-secondary",
710
- children: e.category
711
- })]
712
- }), /* @__PURE__ */ J("div", {
713
- className: "flex items-center gap-1 rounded bg-green-600 px-1.5 py-0.5 ml-2 shrink-0",
714
- children: [/* @__PURE__ */ q(z, { className: "h-3 w-3 fill-white text-white" }), /* @__PURE__ */ q("span", {
715
- className: "text-xs font-bold text-white",
716
- children: e.rating
717
- })]
718
- })]
719
- }),
720
- /* @__PURE__ */ J("div", {
721
- className: "mt-3 flex items-center gap-4 text-xs text-text-secondary",
722
- children: [
723
- /* @__PURE__ */ J("span", {
724
- className: "flex items-center gap-1",
725
- children: [
726
- /* @__PURE__ */ q(A, { className: "h-3 w-3" }),
727
- " ",
728
- s(e.distance)
729
- ]
730
- }),
731
- /* @__PURE__ */ J("span", {
732
- className: "flex items-center gap-1",
733
- children: [
734
- /* @__PURE__ */ q(z, { className: "h-3 w-3" }),
735
- " ",
736
- e.totalRatings,
737
- " ",
738
- E("atheletebridge.home.reviews", "reviews")
739
- ]
740
- }),
741
- e.averageOrderValue && /* @__PURE__ */ J("span", {
742
- className: "flex items-center gap-1",
743
- children: [
744
- /* @__PURE__ */ q(D, { className: "h-3 w-3" }),
745
- " ",
746
- E("atheletebridge.home.average", "Avg."),
747
- " ",
748
- o(e.averageOrderValue, { minimumFractionDigits: 0 })
749
- ]
750
- })
751
- ]
752
- }),
753
- e.serviceTypes && e.serviceTypes.length > 0 && /* @__PURE__ */ q("div", {
754
- className: "mt-3 flex flex-wrap gap-1.5",
755
- children: e.serviceTypes.slice(0, 3).map((e) => /* @__PURE__ */ q("span", {
756
- className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
757
- children: e.replace(/_/g, " ")
758
- }, e))
759
- })
760
- ]
761
- })]
762
- }, e.id))
763
- })]
764
- }),
765
- B.length > 0 && /* @__PURE__ */ J("section", {
766
- className: "mb-8",
767
- children: [/* @__PURE__ */ J("div", {
768
- className: "flex items-center justify-between mb-4",
769
- children: [/* @__PURE__ */ q("h2", {
770
- className: "text-lg font-semibold text-text-primary",
771
- children: E("atheletebridge.home.recentOrders", "Recent Orders")
772
- }), /* @__PURE__ */ J("button", {
773
- type: "button",
774
- onClick: () => _("/customer/orders"),
775
- className: "flex items-center gap-1 text-sm font-medium text-primary hover:underline",
776
- children: [
777
- E("atheletebridge.common.viewAll", "View All"),
778
- " ",
779
- /* @__PURE__ */ q(h, { className: "h-3.5 w-3.5" })
780
- ]
781
- })]
782
- }), /* @__PURE__ */ q("div", {
783
- className: "rounded-lg border border-border-subtle bg-bg-surface divide-y divide-border",
784
- children: B.map((e) => /* @__PURE__ */ J("div", {
785
- role: "button",
786
- tabIndex: 0,
787
- onClick: () => _(`/customer/order/${e.id}`),
788
- onKeyDown: (t) => {
789
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), _(`/customer/order/${e.id}`));
790
- },
791
- className: "flex items-center gap-4 px-4 py-3 hover:bg-accent/50 transition-colors cursor-pointer",
792
- children: [
793
- /* @__PURE__ */ q("img", {
794
- src: e.cartImage,
795
- alt: e.cartName,
796
- className: "h-12 w-12 rounded-lg object-cover shrink-0"
797
- }),
798
- /* @__PURE__ */ J("div", {
799
- className: "flex-1 min-w-0",
800
- children: [/* @__PURE__ */ J("div", {
801
- className: "flex items-center gap-2",
802
- children: [/* @__PURE__ */ q("p", {
803
- className: "text-sm font-medium text-text-primary truncate",
804
- children: e.cartName
805
- }), /* @__PURE__ */ q(i, { status: e.status })]
806
- }), /* @__PURE__ */ q("p", {
807
- className: "text-xs text-text-secondary mt-0.5",
808
- children: e.items.map((e) => e.name).join(", ")
809
- })]
810
- }),
811
- /* @__PURE__ */ J("div", {
812
- className: "text-right shrink-0",
813
- children: [/* @__PURE__ */ q("p", {
814
- className: "text-sm font-semibold text-text-primary",
815
- children: o(e.total, { minimumFractionDigits: 0 })
816
- }), /* @__PURE__ */ q("p", {
817
- className: "text-xs text-text-secondary",
818
- children: c(e.orderDate)
819
- })]
820
- })
821
- ]
822
- }, e.id))
823
- })]
824
- }),
825
- /* @__PURE__ */ J("section", {
826
- className: "mb-8",
827
- children: [/* @__PURE__ */ q("h2", {
828
- className: "text-lg font-semibold text-text-primary mb-4",
829
- children: E("atheletebridge.home.howItWorks", "How It Works")
830
- }), /* @__PURE__ */ q("div", {
831
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
832
- children: re.map((e) => /* @__PURE__ */ J("div", {
833
- className: "relative rounded-lg border border-border-subtle bg-bg-surface p-5 text-center",
834
- children: [
835
- /* @__PURE__ */ q("div", {
836
- className: "absolute -top-3 left-1/2 -translate-x-1/2",
837
- children: /* @__PURE__ */ q("span", {
838
- className: "inline-flex h-6 w-6 items-center justify-center rounded-full bg-action-primary-bg text-xs font-bold text-action-primary-text",
839
- children: e.step
840
- })
841
- }),
842
- /* @__PURE__ */ q("div", {
843
- className: "mt-2 flex justify-center text-text-secondary mb-3",
844
- children: e.icon
845
- }),
846
- /* @__PURE__ */ q("h3", {
847
- className: "text-sm font-semibold text-text-primary",
848
- children: e.title
849
- }),
850
- /* @__PURE__ */ q("p", {
851
- className: "mt-1 text-xs text-text-secondary",
852
- children: e.description
853
- })
854
- ]
855
- }, e.step))
856
- })]
857
- }),
858
- /* @__PURE__ */ J("section", {
859
- className: "mb-8",
860
- children: [/* @__PURE__ */ q("h2", {
861
- className: "text-lg font-semibold text-text-primary mb-4",
862
- children: E("atheletebridge.home.browseByCategory", "Browse by Category")
863
- }), /* @__PURE__ */ q("div", {
864
- className: "grid grid-cols-3 gap-3 sm:grid-cols-4 lg:grid-cols-5",
865
- children: ne.map((e) => /* @__PURE__ */ J("button", {
866
- type: "button",
867
- onClick: () => _(`/customer/carts?category=${encodeURIComponent(e.label)}`),
868
- className: "flex flex-col items-center gap-2 rounded-lg border border-border-subtle bg-bg-surface p-4 text-center hover:shadow-sm hover:border-accent-foreground/20 transition-all",
869
- children: [/* @__PURE__ */ q("div", {
870
- className: t("flex h-12 w-12 items-center justify-center rounded-full", e.color),
871
- children: e.icon
872
- }), /* @__PURE__ */ q("span", {
873
- className: "text-xs font-medium text-text-primary leading-tight",
874
- children: e.label
875
- })]
876
- }, e.label))
877
- })]
878
- }),
879
- /* @__PURE__ */ J("section", {
880
- className: "mb-8",
881
- children: [/* @__PURE__ */ q("h2", {
882
- className: "text-lg font-semibold text-text-primary mb-4",
883
- children: E("atheletebridge.home.platformStats", "Platform Stats")
884
- }), /* @__PURE__ */ q("div", {
885
- className: "grid grid-cols-2 gap-4 lg:grid-cols-4",
886
- children: ae.map((e) => /* @__PURE__ */ J("div", {
887
- className: "flex items-center gap-3 rounded-lg border border-border-subtle bg-bg-surface p-4",
888
- children: [/* @__PURE__ */ q("div", {
889
- className: "flex h-10 w-10 items-center justify-center rounded-full bg-action-primary-bg/10 text-primary shrink-0",
890
- children: e.icon
891
- }), /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("p", {
892
- className: "text-lg font-bold text-text-primary",
893
- children: e.value
894
- }), /* @__PURE__ */ q("p", {
895
- className: "text-xs text-text-secondary",
896
- children: e.label
897
- })] })]
898
- }, e.label))
899
- })]
900
- }),
901
- /* @__PURE__ */ J("section", { children: [/* @__PURE__ */ q("h2", {
902
- className: "text-lg font-semibold text-text-primary mb-4",
903
- children: E("atheletebridge.home.recentActivity", "Recent Activity")
904
- }), /* @__PURE__ */ q(Q, {
905
- collapsedHeight: 180,
906
- children: /* @__PURE__ */ q("div", {
907
- className: "rounded-card border border-border-seam bg-bg-surface divide-y divide-border",
908
- children: ie.map((e) => /* @__PURE__ */ J("div", {
909
- className: "flex items-center gap-3 px-4 py-3",
910
- children: [
911
- /* @__PURE__ */ q("div", {
912
- className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken",
913
- children: /* @__PURE__ */ q(p, { className: t("h-4 w-4", V[e.type] ?? "text-text-secondary") })
914
- }),
915
- /* @__PURE__ */ q("div", {
916
- className: "flex-1 min-w-0",
917
- children: /* @__PURE__ */ q("p", {
918
- className: "text-sm text-text-primary truncate",
919
- children: e.description
920
- })
921
- }),
922
- /* @__PURE__ */ q("span", {
923
- className: "text-xs text-text-secondary whitespace-nowrap",
924
- children: e.time
925
- })
926
- ]
927
- }, e.id))
928
- })
929
- })] })
930
- ]
931
- });
932
- }
933
- //#endregion
934
- export { oe as HomePage };
935
-
936
- //# sourceMappingURL=HomePage.js.map