@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,653 +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 { formatCurrency as i } from "../../utils/formatters.js";
6
- import { useEffect as a, useState as o } from "react";
7
- import { Award as s, BarChart3 as c, IndianRupee as l, Loader2 as u, ShoppingBag as d, Star as f, Timer as p, Users as m, Zap as h } from "lucide-react";
8
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
9
- import { EmphasisPanel as v, PagePurpose as y } from "@burdenoff/fe-libs/ui";
10
- //#region src/atheletebridge/pages/admin/AdminAnalyticsPage.tsx
11
- function b() {
12
- let { currentUser: b } = e(), [x, S] = o(null), [C, w] = o(!0), [T, E] = o("month"), [D, O] = o("overview");
13
- a(() => {
14
- w(!0);
15
- let e = setTimeout(() => {
16
- S({
17
- revenue: {
18
- total: 125e5,
19
- growth: 15.2,
20
- thisMonth: 21e5,
21
- lastMonth: 185e4
22
- },
23
- orders: {
24
- total: 45230,
25
- growth: 8.7,
26
- pending: 156,
27
- completed: 44890,
28
- cancelled: 184,
29
- averageOrderValue: 276,
30
- ordersToday: 89
31
- },
32
- users: {
33
- total: 12450,
34
- growth: 12.3,
35
- active: 9870,
36
- newThisMonth: 456,
37
- customers: 9850,
38
- cartOwners: 1240,
39
- workers: 890,
40
- investors: 470
41
- },
42
- carts: {
43
- total: 1240,
44
- active: 1156,
45
- pending: 84,
46
- topPerforming: [
47
- {
48
- id: "c1",
49
- name: "South Indian Express",
50
- revenue: 285e3,
51
- orders: 1250,
52
- rating: 4.8
53
- },
54
- {
55
- id: "c2",
56
- name: "Mumbai Street Chaat",
57
- revenue: 245e3,
58
- orders: 980,
59
- rating: 4.7
60
- },
61
- {
62
- id: "c3",
63
- name: "Delhi Paratha Corner",
64
- revenue: 198e3,
65
- orders: 876,
66
- rating: 4.6
67
- },
68
- {
69
- id: "c4",
70
- name: "Bangalore Dosa House",
71
- revenue: 176e3,
72
- orders: 743,
73
- rating: 4.9
74
- },
75
- {
76
- id: "c5",
77
- name: "Kolkata Fish Fry",
78
- revenue: 154e3,
79
- orders: 632,
80
- rating: 4.5
81
- }
82
- ]
83
- },
84
- performance: {
85
- averageDeliveryTime: 28,
86
- customerSatisfaction: 4.6,
87
- platformFee: 8.5,
88
- operatingCosts: 21e5,
89
- netProfit: 85e4
90
- },
91
- geography: { topCities: [
92
- {
93
- city: "Bangalore",
94
- orders: 15670,
95
- revenue: 425e4
96
- },
97
- {
98
- city: "Mumbai",
99
- orders: 12340,
100
- revenue: 389e4
101
- },
102
- {
103
- city: "Delhi",
104
- orders: 9870,
105
- revenue: 298e4
106
- },
107
- {
108
- city: "Hyderabad",
109
- orders: 7650,
110
- revenue: 214e4
111
- },
112
- {
113
- city: "Chennai",
114
- orders: 6540,
115
- revenue: 189e4
116
- }
117
- ] }
118
- }), w(!1);
119
- }, 800);
120
- return () => clearTimeout(e);
121
- }, [T]);
122
- let k = (e) => e >= 1e7 ? `₹${(e / 1e7).toFixed(1)}Cr` : e >= 1e5 ? `₹${(e / 1e5).toFixed(1)}L` : i(e, { minimumFractionDigits: 0 }), A = (e) => e === 0 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-yellow-500" }) : e === 1 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-gray-400" }) : e === 2 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-amber-700" }) : /* @__PURE__ */ g(c, { className: "h-5 w-5 text-text-secondary" });
123
- if (C || !x) return /* @__PURE__ */ g(n, {
124
- title: "Platform Analytics",
125
- description: "Loading analytics...",
126
- children: /* @__PURE__ */ _("div", {
127
- className: "flex flex-col items-center justify-center py-20",
128
- children: [/* @__PURE__ */ g(u, { className: "h-10 w-10 animate-spin text-text-secondary mb-4" }), /* @__PURE__ */ g("p", {
129
- className: "text-text-secondary",
130
- children: "Loading analytics..."
131
- })]
132
- })
133
- });
134
- let j = [
135
- {
136
- key: "overview",
137
- label: "Overview",
138
- icon: c
139
- },
140
- {
141
- key: "revenue",
142
- label: "Revenue",
143
- icon: l
144
- },
145
- {
146
- key: "users",
147
- label: "Users",
148
- icon: m
149
- },
150
- {
151
- key: "performance",
152
- label: "Performance",
153
- icon: h
154
- }
155
- ];
156
- return /* @__PURE__ */ _(n, {
157
- title: "Platform Analytics",
158
- description: "Comprehensive platform metrics and trends",
159
- children: [
160
- /* @__PURE__ */ g(y, {
161
- className: "mb-6",
162
- children: "The big-picture health of the whole platform. Track revenue, orders, active users and carts across any time period, spot growth trends, and see what's driving the business. Use this to make data-backed decisions about where to focus."
163
- }),
164
- /* @__PURE__ */ _("div", {
165
- className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",
166
- children: [/* @__PURE__ */ _("select", {
167
- value: T,
168
- onChange: (e) => E(e.target.value),
169
- className: "rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] w-fit",
170
- children: [
171
- /* @__PURE__ */ g("option", {
172
- value: "today",
173
- children: "Today"
174
- }),
175
- /* @__PURE__ */ g("option", {
176
- value: "week",
177
- children: "This Week"
178
- }),
179
- /* @__PURE__ */ g("option", {
180
- value: "month",
181
- children: "This Month"
182
- }),
183
- /* @__PURE__ */ g("option", {
184
- value: "quarter",
185
- children: "This Quarter"
186
- }),
187
- /* @__PURE__ */ g("option", {
188
- value: "year",
189
- children: "This Year"
190
- })
191
- ]
192
- }), /* @__PURE__ */ _("span", {
193
- className: "text-sm text-text-secondary",
194
- children: ["Last updated: ", (/* @__PURE__ */ new Date()).toLocaleString("en-IN")]
195
- })]
196
- }),
197
- /* @__PURE__ */ g(v, {
198
- className: "mb-8",
199
- children: /* @__PURE__ */ _("div", {
200
- className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",
201
- children: [
202
- /* @__PURE__ */ g(r, {
203
- icon: /* @__PURE__ */ g(l, { className: "h-5 w-5" }),
204
- value: k(x.revenue.total),
205
- label: "Total Revenue",
206
- trend: "up",
207
- trendValue: `+${x.revenue.growth}%`
208
- }),
209
- /* @__PURE__ */ g(r, {
210
- icon: /* @__PURE__ */ g(d, { className: "h-5 w-5" }),
211
- value: x.orders.total.toLocaleString("en-IN"),
212
- label: "Total Orders",
213
- trend: "up",
214
- trendValue: `+${x.orders.growth}%`
215
- }),
216
- /* @__PURE__ */ g(r, {
217
- icon: /* @__PURE__ */ g(m, { className: "h-5 w-5" }),
218
- value: x.users.active.toLocaleString("en-IN"),
219
- label: "Active Users",
220
- trend: "up",
221
- trendValue: `+${x.users.growth}%`
222
- }),
223
- /* @__PURE__ */ g(r, {
224
- icon: /* @__PURE__ */ g(c, { className: "h-5 w-5" }),
225
- value: x.carts.active.toLocaleString("en-IN"),
226
- label: "Active Carts",
227
- trendValue: `${x.carts.pending} pending`
228
- })
229
- ]
230
- })
231
- }),
232
- /* @__PURE__ */ _("div", {
233
- className: "rounded-lg border border-border-subtle bg-bg-surface mb-8",
234
- children: [/* @__PURE__ */ g("div", {
235
- className: "border-b border-border-subtle",
236
- children: /* @__PURE__ */ g("nav", {
237
- className: "flex -mb-px overflow-x-auto",
238
- children: j.map((e) => {
239
- let n = e.icon;
240
- return /* @__PURE__ */ _("button", {
241
- type: "button",
242
- onClick: () => O(e.key),
243
- className: t("flex items-center gap-2 py-3 px-4 sm:px-6 text-sm font-medium whitespace-nowrap border-b-2 transition-colors", D === e.key ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary"),
244
- children: [/* @__PURE__ */ g(n, { className: "h-4 w-4" }), /* @__PURE__ */ g("span", {
245
- className: "hidden sm:inline",
246
- children: e.label
247
- })]
248
- }, e.key);
249
- })
250
- })
251
- }), /* @__PURE__ */ _("div", {
252
- className: "p-4 sm:p-6",
253
- children: [
254
- D === "overview" && /* @__PURE__ */ _("div", {
255
- className: "space-y-8",
256
- children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h3", {
257
- className: "text-lg font-semibold text-text-primary mb-4",
258
- children: "Order Status Distribution"
259
- }), /* @__PURE__ */ _("div", {
260
- className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
261
- children: [
262
- /* @__PURE__ */ _("div", {
263
- className: "rounded-lg border border-green-500/30 bg-green-500/10 p-4",
264
- children: [
265
- /* @__PURE__ */ g("p", {
266
- className: "text-sm text-green-600 dark:text-green-400",
267
- children: "Completed Orders"
268
- }),
269
- /* @__PURE__ */ g("p", {
270
- className: "text-2xl font-bold text-green-700 dark:text-green-300",
271
- children: x.orders.completed.toLocaleString("en-IN")
272
- }),
273
- /* @__PURE__ */ _("p", {
274
- className: "text-sm text-green-600/80 dark:text-green-400/80",
275
- children: [(x.orders.completed / x.orders.total * 100).toFixed(1), "% of total"]
276
- })
277
- ]
278
- }),
279
- /* @__PURE__ */ _("div", {
280
- className: "rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-4",
281
- children: [
282
- /* @__PURE__ */ g("p", {
283
- className: "text-sm text-yellow-600 dark:text-yellow-400",
284
- children: "Pending Orders"
285
- }),
286
- /* @__PURE__ */ g("p", {
287
- className: "text-2xl font-bold text-yellow-700 dark:text-yellow-300",
288
- children: x.orders.pending.toLocaleString("en-IN")
289
- }),
290
- /* @__PURE__ */ _("p", {
291
- className: "text-sm text-yellow-600/80 dark:text-yellow-400/80",
292
- children: [(x.orders.pending / x.orders.total * 100).toFixed(1), "% of total"]
293
- })
294
- ]
295
- }),
296
- /* @__PURE__ */ _("div", {
297
- className: "rounded-lg border border-red-500/30 bg-red-500/10 p-4",
298
- children: [
299
- /* @__PURE__ */ g("p", {
300
- className: "text-sm text-red-600 dark:text-red-400",
301
- children: "Cancelled Orders"
302
- }),
303
- /* @__PURE__ */ g("p", {
304
- className: "text-2xl font-bold text-red-700 dark:text-red-300",
305
- children: x.orders.cancelled.toLocaleString("en-IN")
306
- }),
307
- /* @__PURE__ */ _("p", {
308
- className: "text-sm text-red-600/80 dark:text-red-400/80",
309
- children: [(x.orders.cancelled / x.orders.total * 100).toFixed(1), "% of total"]
310
- })
311
- ]
312
- })
313
- ]
314
- })] }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h3", {
315
- className: "text-lg font-semibold text-text-primary mb-4",
316
- children: "Top Performing Carts"
317
- }), /* @__PURE__ */ g("div", {
318
- className: "rounded-lg border border-border-subtle overflow-hidden",
319
- children: /* @__PURE__ */ _("table", {
320
- className: "w-full",
321
- children: [/* @__PURE__ */ g("thead", { children: /* @__PURE__ */ _("tr", {
322
- className: "border-b border-border-subtle bg-bg-sunken/50",
323
- children: [
324
- /* @__PURE__ */ g("th", {
325
- className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase",
326
- children: "Cart Name"
327
- }),
328
- /* @__PURE__ */ g("th", {
329
- className: "px-4 py-3 text-right text-xs font-medium text-text-secondary uppercase",
330
- children: "Revenue"
331
- }),
332
- /* @__PURE__ */ g("th", {
333
- className: "px-4 py-3 text-right text-xs font-medium text-text-secondary uppercase",
334
- children: "Orders"
335
- }),
336
- /* @__PURE__ */ g("th", {
337
- className: "px-4 py-3 text-right text-xs font-medium text-text-secondary uppercase",
338
- children: "Rating"
339
- })
340
- ]
341
- }) }), /* @__PURE__ */ g("tbody", {
342
- className: "divide-y divide-border",
343
- children: x.carts.topPerforming.map((e, t) => /* @__PURE__ */ _("tr", {
344
- className: "hover:bg-accent/50 transition-colors",
345
- children: [
346
- /* @__PURE__ */ g("td", {
347
- className: "px-4 py-3",
348
- children: /* @__PURE__ */ _("div", {
349
- className: "flex items-center gap-2",
350
- children: [A(t), /* @__PURE__ */ g("span", {
351
- className: "text-sm font-medium text-text-primary",
352
- children: e.name
353
- })]
354
- })
355
- }),
356
- /* @__PURE__ */ g("td", {
357
- className: "px-4 py-3 text-sm text-right font-medium text-text-primary",
358
- children: k(e.revenue)
359
- }),
360
- /* @__PURE__ */ g("td", {
361
- className: "px-4 py-3 text-sm text-right text-text-primary",
362
- children: e.orders.toLocaleString("en-IN")
363
- }),
364
- /* @__PURE__ */ g("td", {
365
- className: "px-4 py-3 text-sm text-right text-text-primary",
366
- children: /* @__PURE__ */ _("span", {
367
- className: "flex items-center justify-end gap-1",
368
- children: [/* @__PURE__ */ g(f, { className: "h-3.5 w-3.5 fill-yellow-400 text-yellow-400" }), e.rating]
369
- })
370
- })
371
- ]
372
- }, e.id))
373
- })]
374
- })
375
- })] })]
376
- }),
377
- D === "revenue" && /* @__PURE__ */ _("div", {
378
- className: "space-y-8",
379
- children: [/* @__PURE__ */ _("div", {
380
- className: "grid grid-cols-1 md:grid-cols-3 gap-4",
381
- children: [
382
- /* @__PURE__ */ _("div", {
383
- className: "rounded-lg border border-blue-500/30 bg-blue-500/10 p-6",
384
- children: [/* @__PURE__ */ g("h4", {
385
- className: "text-sm font-medium text-blue-600 dark:text-blue-400 mb-2",
386
- children: "This Month"
387
- }), /* @__PURE__ */ g("p", {
388
- className: "text-2xl font-bold text-blue-700 dark:text-blue-300",
389
- children: k(x.revenue.thisMonth)
390
- })]
391
- }),
392
- /* @__PURE__ */ _("div", {
393
- className: "rounded-lg border border-border-subtle bg-bg-sunken/30 p-6",
394
- children: [/* @__PURE__ */ g("h4", {
395
- className: "text-sm font-medium text-text-secondary mb-2",
396
- children: "Last Month"
397
- }), /* @__PURE__ */ g("p", {
398
- className: "text-2xl font-bold text-text-primary",
399
- children: k(x.revenue.lastMonth)
400
- })]
401
- }),
402
- /* @__PURE__ */ _("div", {
403
- className: "rounded-lg border border-green-500/30 bg-green-500/10 p-6",
404
- children: [/* @__PURE__ */ g("h4", {
405
- className: "text-sm font-medium text-green-600 dark:text-green-400 mb-2",
406
- children: "Average Order Value"
407
- }), /* @__PURE__ */ _("p", {
408
- className: "text-2xl font-bold text-green-700 dark:text-green-300",
409
- children: ["₹", x.orders.averageOrderValue]
410
- })]
411
- })
412
- ]
413
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h3", {
414
- className: "text-lg font-semibold text-text-primary mb-4",
415
- children: "Revenue by City"
416
- }), /* @__PURE__ */ g("div", {
417
- className: "space-y-3",
418
- children: x.geography.topCities.map((e, t) => /* @__PURE__ */ _("div", {
419
- className: "flex items-center justify-between p-4 rounded-lg border border-border-subtle bg-bg-sunken/30",
420
- children: [/* @__PURE__ */ _("div", {
421
- className: "flex items-center gap-3",
422
- children: [A(t), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
423
- className: "font-medium text-text-primary",
424
- children: e.city
425
- }), /* @__PURE__ */ _("p", {
426
- className: "text-sm text-text-secondary",
427
- children: [e.orders.toLocaleString("en-IN"), " orders"]
428
- })] })]
429
- }), /* @__PURE__ */ _("div", {
430
- className: "text-right",
431
- children: [/* @__PURE__ */ g("p", {
432
- className: "font-bold text-text-primary",
433
- children: k(e.revenue)
434
- }), /* @__PURE__ */ _("p", {
435
- className: "text-sm text-text-secondary",
436
- children: [(e.revenue / x.revenue.total * 100).toFixed(1), "%"]
437
- })]
438
- })]
439
- }, e.city))
440
- })] })]
441
- }),
442
- D === "users" && /* @__PURE__ */ _("div", {
443
- className: "space-y-8",
444
- children: [/* @__PURE__ */ g("div", {
445
- className: "grid grid-cols-1 md:grid-cols-4 gap-4",
446
- children: [
447
- {
448
- label: "Customers",
449
- value: x.users.customers,
450
- color: "blue"
451
- },
452
- {
453
- label: "Cart Owners",
454
- value: x.users.cartOwners,
455
- color: "green"
456
- },
457
- {
458
- label: "Workers",
459
- value: x.users.workers,
460
- color: "yellow"
461
- },
462
- {
463
- label: "Investors",
464
- value: x.users.investors,
465
- color: "purple"
466
- }
467
- ].map((e) => /* @__PURE__ */ _("div", {
468
- className: t("rounded-lg border p-4", `border-${e.color}-500/30 bg-${e.color}-500/10`),
469
- children: [
470
- /* @__PURE__ */ g("h4", {
471
- className: t("text-sm font-medium", `text-${e.color}-600 dark:text-${e.color}-400`),
472
- children: e.label
473
- }),
474
- /* @__PURE__ */ g("p", {
475
- className: t("text-2xl font-bold", `text-${e.color}-700 dark:text-${e.color}-300`),
476
- children: e.value.toLocaleString("en-IN")
477
- }),
478
- /* @__PURE__ */ _("p", {
479
- className: t("text-sm", `text-${e.color}-600/80 dark:text-${e.color}-400/80`),
480
- children: [(e.value / x.users.total * 100).toFixed(1), "%"]
481
- })
482
- ]
483
- }, e.label))
484
- }), /* @__PURE__ */ _("div", {
485
- className: "rounded-lg border border-border-subtle bg-bg-sunken/20 p-6",
486
- children: [/* @__PURE__ */ g("h3", {
487
- className: "text-lg font-semibold text-text-primary mb-4",
488
- children: "User Growth Insights"
489
- }), /* @__PURE__ */ _("div", {
490
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
491
- children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
492
- className: "text-sm text-text-secondary mb-2",
493
- children: "New Users This Month"
494
- }), /* @__PURE__ */ g("p", {
495
- className: "text-3xl font-bold text-blue-600 dark:text-blue-400",
496
- children: x.users.newThisMonth
497
- })] }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
498
- className: "text-sm text-text-secondary mb-2",
499
- children: "Active Users Rate"
500
- }), /* @__PURE__ */ _("p", {
501
- className: "text-3xl font-bold text-green-600 dark:text-green-400",
502
- children: [(x.users.active / x.users.total * 100).toFixed(1), "%"]
503
- })] })]
504
- })]
505
- })]
506
- }),
507
- D === "performance" && /* @__PURE__ */ _("div", {
508
- className: "space-y-8",
509
- children: [
510
- /* @__PURE__ */ _("div", {
511
- className: "grid grid-cols-1 md:grid-cols-3 gap-6",
512
- children: [
513
- /* @__PURE__ */ _("div", {
514
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
515
- children: [
516
- /* @__PURE__ */ _("div", {
517
- className: "flex items-center gap-2 mb-2",
518
- children: [/* @__PURE__ */ g(p, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("h4", {
519
- className: "text-sm font-medium text-text-secondary",
520
- children: "Avg Delivery Time"
521
- })]
522
- }),
523
- /* @__PURE__ */ _("p", {
524
- className: "text-3xl font-bold text-text-primary",
525
- children: [x.performance.averageDeliveryTime, " min"]
526
- }),
527
- /* @__PURE__ */ g("p", {
528
- className: "text-sm text-text-secondary mt-1",
529
- children: "Target: < 30 min"
530
- })
531
- ]
532
- }),
533
- /* @__PURE__ */ _("div", {
534
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
535
- children: [
536
- /* @__PURE__ */ _("div", {
537
- className: "flex items-center gap-2 mb-2",
538
- children: [/* @__PURE__ */ g(f, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("h4", {
539
- className: "text-sm font-medium text-text-secondary",
540
- children: "Customer Satisfaction"
541
- })]
542
- }),
543
- /* @__PURE__ */ _("p", {
544
- className: "text-3xl font-bold text-text-primary flex items-center gap-1",
545
- children: [/* @__PURE__ */ g(f, { className: "h-6 w-6 fill-yellow-400 text-yellow-400" }), x.performance.customerSatisfaction]
546
- }),
547
- /* @__PURE__ */ g("p", {
548
- className: "text-sm text-text-secondary mt-1",
549
- children: "Based on ratings"
550
- })
551
- ]
552
- }),
553
- /* @__PURE__ */ _("div", {
554
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
555
- children: [
556
- /* @__PURE__ */ _("div", {
557
- className: "flex items-center gap-2 mb-2",
558
- children: [/* @__PURE__ */ g(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("h4", {
559
- className: "text-sm font-medium text-text-secondary",
560
- children: "Platform Fee"
561
- })]
562
- }),
563
- /* @__PURE__ */ _("p", {
564
- className: "text-3xl font-bold text-text-primary",
565
- children: [x.performance.platformFee, "%"]
566
- }),
567
- /* @__PURE__ */ g("p", {
568
- className: "text-sm text-text-secondary mt-1",
569
- children: "Per transaction"
570
- })
571
- ]
572
- })
573
- ]
574
- }),
575
- /* @__PURE__ */ _("div", {
576
- className: "rounded-lg border border-border-subtle bg-bg-sunken/20 p-6",
577
- children: [
578
- /* @__PURE__ */ g("h3", {
579
- className: "text-lg font-semibold text-text-primary mb-4",
580
- children: "Financial Performance"
581
- }),
582
- /* @__PURE__ */ _("div", {
583
- className: "grid grid-cols-1 md:grid-cols-3 gap-6",
584
- children: [
585
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
586
- className: "text-sm text-text-secondary mb-2",
587
- children: "Operating Costs"
588
- }), /* @__PURE__ */ g("p", {
589
- className: "text-2xl font-bold text-red-600 dark:text-red-400",
590
- children: k(x.performance.operatingCosts)
591
- })] }),
592
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
593
- className: "text-sm text-text-secondary mb-2",
594
- children: "Total Revenue"
595
- }), /* @__PURE__ */ g("p", {
596
- className: "text-2xl font-bold text-blue-600 dark:text-blue-400",
597
- children: k(x.revenue.total)
598
- })] }),
599
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
600
- className: "text-sm text-text-secondary mb-2",
601
- children: "Net Profit"
602
- }), /* @__PURE__ */ g("p", {
603
- className: "text-2xl font-bold text-green-600 dark:text-green-400",
604
- children: k(x.performance.netProfit)
605
- })] })
606
- ]
607
- }),
608
- /* @__PURE__ */ _("div", {
609
- className: "mt-4 rounded-lg border border-border-subtle bg-bg-surface p-4",
610
- children: [/* @__PURE__ */ g("p", {
611
- className: "text-sm text-text-secondary",
612
- children: "Profit Margin"
613
- }), /* @__PURE__ */ _("p", {
614
- className: "text-xl font-bold text-text-primary",
615
- children: [(x.performance.netProfit / x.revenue.total * 100).toFixed(1), "%"]
616
- })]
617
- })
618
- ]
619
- }),
620
- /* @__PURE__ */ _("div", {
621
- className: "rounded-lg border border-border-subtle bg-bg-surface p-6",
622
- children: [/* @__PURE__ */ g("h3", {
623
- className: "text-lg font-semibold text-text-primary mb-4",
624
- children: "Today's Performance"
625
- }), /* @__PURE__ */ _("div", {
626
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
627
- children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
628
- className: "text-sm text-text-secondary mb-2",
629
- children: "Orders Today"
630
- }), /* @__PURE__ */ g("p", {
631
- className: "text-3xl font-bold text-blue-600 dark:text-blue-400",
632
- children: x.orders.ordersToday
633
- })] }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
634
- className: "text-sm text-text-secondary mb-2",
635
- children: "Estimated Revenue"
636
- }), /* @__PURE__ */ g("p", {
637
- className: "text-3xl font-bold text-green-600 dark:text-green-400",
638
- children: k(x.orders.ordersToday * x.orders.averageOrderValue)
639
- })] })]
640
- })]
641
- })
642
- ]
643
- })
644
- ]
645
- })]
646
- })
647
- ]
648
- });
649
- }
650
- //#endregion
651
- export { b as AdminAnalyticsPage };
652
-
653
- //# sourceMappingURL=AdminAnalyticsPage.js.map