@burdenoff/microfe-adaptercloud 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 (153) hide show
  1. package/dist/adaptercloud/AdapterCloudRoot.js +65 -121
  2. package/dist/adaptercloud/AdapterCloudRoot.js.map +1 -1
  3. package/dist/adaptercloud/AdapterCloudRoutes.js +70 -182
  4. package/dist/adaptercloud/AdapterCloudRoutes.js.map +1 -1
  5. package/dist/adaptercloud/components/DataState.js +42 -0
  6. package/dist/adaptercloud/components/DataState.js.map +1 -0
  7. package/dist/adaptercloud/components/SeverityBadge.js +12 -0
  8. package/dist/adaptercloud/components/SeverityBadge.js.map +1 -0
  9. package/dist/adaptercloud/components/StatusBadge.js +43 -44
  10. package/dist/adaptercloud/components/StatusBadge.js.map +1 -1
  11. package/dist/adaptercloud/context/AdapterCloudContext.js +22 -30
  12. package/dist/adaptercloud/context/AdapterCloudContext.js.map +1 -1
  13. package/dist/adaptercloud/hooks/useAdapterCloudApi.js +397 -194
  14. package/dist/adaptercloud/hooks/useAdapterCloudApi.js.map +1 -1
  15. package/dist/adaptercloud/index.js +1 -0
  16. package/dist/adaptercloud/pages/OverviewPage.js +334 -0
  17. package/dist/adaptercloud/pages/OverviewPage.js.map +1 -0
  18. package/dist/adaptercloud/pages/adapters/AdapterDetailPage.js +187 -0
  19. package/dist/adaptercloud/pages/adapters/AdapterDetailPage.js.map +1 -0
  20. package/dist/adaptercloud/pages/adapters/AdapterFormPage.js +278 -0
  21. package/dist/adaptercloud/pages/adapters/AdapterFormPage.js.map +1 -0
  22. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js +172 -0
  23. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js.map +1 -0
  24. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js +247 -0
  25. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js.map +1 -0
  26. package/dist/adaptercloud/pages/connections/ConnectionFormPage.js +271 -0
  27. package/dist/adaptercloud/pages/connections/ConnectionFormPage.js.map +1 -0
  28. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js +167 -0
  29. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js.map +1 -0
  30. package/dist/adaptercloud/pages/costs/CostsPage.js +169 -0
  31. package/dist/adaptercloud/pages/costs/CostsPage.js.map +1 -0
  32. package/dist/adaptercloud/pages/drift/DriftListPage.js +132 -0
  33. package/dist/adaptercloud/pages/drift/DriftListPage.js.map +1 -0
  34. package/dist/adaptercloud/pages/policies/PoliciesListPage.js +171 -0
  35. package/dist/adaptercloud/pages/policies/PoliciesListPage.js.map +1 -0
  36. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js +185 -0
  37. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js.map +1 -0
  38. package/dist/adaptercloud/pages/policies/PolicyFormPage.js +215 -0
  39. package/dist/adaptercloud/pages/policies/PolicyFormPage.js.map +1 -0
  40. package/dist/adaptercloud/pages/resources/ResourceDetailPage.js +207 -0
  41. package/dist/adaptercloud/pages/resources/ResourceDetailPage.js.map +1 -0
  42. package/dist/adaptercloud/pages/resources/ResourcesListPage.js +182 -0
  43. package/dist/adaptercloud/pages/resources/ResourcesListPage.js.map +1 -0
  44. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js +196 -0
  45. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js.map +1 -0
  46. package/dist/adaptercloud/pages/violations/ViolationsListPage.js +258 -0
  47. package/dist/adaptercloud/pages/violations/ViolationsListPage.js.map +1 -0
  48. package/dist/adaptercloud/store/adaptercloudStore.js +1 -7
  49. package/dist/adaptercloud/store/adaptercloudStore.js.map +1 -1
  50. package/dist/adaptercloud/utils/domain.js +105 -0
  51. package/dist/adaptercloud/utils/domain.js.map +1 -0
  52. package/dist/adaptercloud/utils/formatters.js +1 -12
  53. package/dist/adaptercloud/utils/formatters.js.map +1 -1
  54. package/dist/index.js +5 -4
  55. package/package.json +1 -1
  56. package/dist/adaptercloud/components/InvestmentCard.js +0 -98
  57. package/dist/adaptercloud/components/InvestmentCard.js.map +0 -1
  58. package/dist/adaptercloud/components/RatingDisplay.js +0 -35
  59. package/dist/adaptercloud/components/RatingDisplay.js.map +0 -1
  60. package/dist/adaptercloud/mocks/data.js +0 -1517
  61. package/dist/adaptercloud/mocks/data.js.map +0 -1
  62. package/dist/adaptercloud/mocks/users.js +0 -34
  63. package/dist/adaptercloud/mocks/users.js.map +0 -1
  64. package/dist/adaptercloud/pages/HomePage.js +0 -934
  65. package/dist/adaptercloud/pages/HomePage.js.map +0 -1
  66. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +0 -653
  67. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +0 -1
  68. package/dist/adaptercloud/pages/admin/AdminDashboard.js +0 -665
  69. package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +0 -1
  70. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +0 -426
  71. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +0 -1
  72. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +0 -665
  73. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +0 -1
  74. package/dist/adaptercloud/pages/admin/AdminProfilePage.js +0 -261
  75. package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +0 -1
  76. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +0 -663
  77. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +0 -1
  78. package/dist/adaptercloud/pages/admin/CartManagementPage.js +0 -874
  79. package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +0 -1
  80. package/dist/adaptercloud/pages/admin/UserManagementPage.js +0 -898
  81. package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +0 -1
  82. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +0 -840
  83. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  84. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +0 -714
  85. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  86. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +0 -788
  87. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  88. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +0 -888
  89. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  90. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +0 -634
  91. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  92. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +0 -907
  93. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  94. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +0 -875
  95. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +0 -1
  96. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +0 -827
  97. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +0 -1
  98. package/dist/adaptercloud/pages/common/HelpSupportPage.js +0 -1329
  99. package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +0 -1
  100. package/dist/adaptercloud/pages/common/NotificationCenterPage.js +0 -671
  101. package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +0 -1
  102. package/dist/adaptercloud/pages/common/SettingsPage.js +0 -982
  103. package/dist/adaptercloud/pages/common/SettingsPage.js.map +0 -1
  104. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +0 -596
  105. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +0 -1
  106. package/dist/adaptercloud/pages/customer/CartDetailPage.js +0 -623
  107. package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +0 -1
  108. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +0 -552
  109. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +0 -1
  110. package/dist/adaptercloud/pages/customer/CheckoutPage.js +0 -534
  111. package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +0 -1
  112. package/dist/adaptercloud/pages/customer/CustomerDashboard.js +0 -525
  113. package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +0 -1
  114. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +0 -623
  115. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +0 -1
  116. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +0 -629
  117. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +0 -1
  118. package/dist/adaptercloud/pages/customer/FavoritesPage.js +0 -480
  119. package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +0 -1
  120. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +0 -444
  121. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +0 -1
  122. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +0 -391
  123. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +0 -1
  124. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +0 -504
  125. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +0 -1
  126. package/dist/adaptercloud/pages/customer/ReviewsPage.js +0 -609
  127. package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +0 -1
  128. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +0 -459
  129. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +0 -1
  130. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +0 -851
  131. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +0 -1
  132. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +0 -942
  133. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  134. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +0 -683
  135. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  136. package/dist/adaptercloud/pages/investor/InvestorDashboard.js +0 -452
  137. package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +0 -1
  138. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +0 -402
  139. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  140. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +0 -571
  141. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +0 -1
  142. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +0 -1067
  143. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +0 -1
  144. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +0 -526
  145. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +0 -1
  146. package/dist/adaptercloud/pages/worker/WorkerDashboard.js +0 -659
  147. package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +0 -1
  148. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +0 -678
  149. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +0 -1
  150. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +0 -689
  151. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +0 -1
  152. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +0 -582
  153. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1,653 +0,0 @@
1
- import { useAdapterCloud as e } from "../../context/AdapterCloudContext.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 } from "@burdenoff/fe-libs/ui";
10
- //#region src/adaptercloud/pages/admin/AdminAnalyticsPage.tsx
11
- function y() {
12
- let { currentUser: y } = e(), [b, x] = o(null), [S, C] = o(!0), [w, T] = o("month"), [E, D] = o("overview");
13
- a(() => {
14
- C(!0);
15
- let e = setTimeout(() => {
16
- x({
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
- }), C(!1);
119
- }, 800);
120
- return () => clearTimeout(e);
121
- }, [w]);
122
- let O = (e) => e >= 1e7 ? `₹${(e / 1e7).toFixed(1)}Cr` : e >= 1e5 ? `₹${(e / 1e5).toFixed(1)}L` : i(e, { minimumFractionDigits: 0 }), k = (e) => e === 0 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-status-warning-text" }) : e === 1 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-text-secondary" }) : e === 2 ? /* @__PURE__ */ g(s, { className: "h-5 w-5 text-status-warning-text" }) : /* @__PURE__ */ g(c, { className: "h-5 w-5 text-text-secondary" });
123
- if (S || !b) 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 A = [
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
- purpose: "See how the whole marketplace is performing over time — growth in users and carts, order volume, revenue trends, and category breakdowns. Use it to spot what's working, catch dips early, and decide where to focus.",
160
- children: [
161
- /* @__PURE__ */ _("div", {
162
- className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6",
163
- children: [/* @__PURE__ */ _("select", {
164
- value: w,
165
- onChange: (e) => T(e.target.value),
166
- 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",
167
- children: [
168
- /* @__PURE__ */ g("option", {
169
- value: "today",
170
- children: "Today"
171
- }),
172
- /* @__PURE__ */ g("option", {
173
- value: "week",
174
- children: "This Week"
175
- }),
176
- /* @__PURE__ */ g("option", {
177
- value: "month",
178
- children: "This Month"
179
- }),
180
- /* @__PURE__ */ g("option", {
181
- value: "quarter",
182
- children: "This Quarter"
183
- }),
184
- /* @__PURE__ */ g("option", {
185
- value: "year",
186
- children: "This Year"
187
- })
188
- ]
189
- }), /* @__PURE__ */ _("span", {
190
- className: "text-sm text-text-secondary",
191
- children: ["Last updated: ", (/* @__PURE__ */ new Date()).toLocaleString("en-IN")]
192
- })]
193
- }),
194
- /* @__PURE__ */ _(v, {
195
- className: "mb-8",
196
- children: [/* @__PURE__ */ g("h2", {
197
- className: "text-lg font-semibold text-text-primary mb-4",
198
- children: "Key Metrics"
199
- }), /* @__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: O(b.revenue.total),
205
- label: "Total Revenue",
206
- trend: "up",
207
- trendValue: `+${b.revenue.growth}%`
208
- }),
209
- /* @__PURE__ */ g(r, {
210
- icon: /* @__PURE__ */ g(d, { className: "h-5 w-5" }),
211
- value: b.orders.total.toLocaleString("en-IN"),
212
- label: "Total Orders",
213
- trend: "up",
214
- trendValue: `+${b.orders.growth}%`
215
- }),
216
- /* @__PURE__ */ g(r, {
217
- icon: /* @__PURE__ */ g(m, { className: "h-5 w-5" }),
218
- value: b.users.active.toLocaleString("en-IN"),
219
- label: "Active Users",
220
- trend: "up",
221
- trendValue: `+${b.users.growth}%`
222
- }),
223
- /* @__PURE__ */ g(r, {
224
- icon: /* @__PURE__ */ g(c, { className: "h-5 w-5" }),
225
- value: b.carts.active.toLocaleString("en-IN"),
226
- label: "Active Carts",
227
- trendValue: `${b.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: A.map((e) => {
239
- let n = e.icon;
240
- return /* @__PURE__ */ _("button", {
241
- type: "button",
242
- onClick: () => D(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", E === 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
- E === "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-status-success-border/30 bg-status-success-bg-subtle/10 p-4",
264
- children: [
265
- /* @__PURE__ */ g("p", {
266
- className: "text-sm text-status-success-text",
267
- children: "Completed Orders"
268
- }),
269
- /* @__PURE__ */ g("p", {
270
- className: "text-2xl font-bold text-status-success-text",
271
- children: b.orders.completed.toLocaleString("en-IN")
272
- }),
273
- /* @__PURE__ */ _("p", {
274
- className: "text-sm text-status-success-text",
275
- children: [(b.orders.completed / b.orders.total * 100).toFixed(1), "% of total"]
276
- })
277
- ]
278
- }),
279
- /* @__PURE__ */ _("div", {
280
- className: "rounded-lg border border-status-warning-border/30 bg-status-warning-bg-subtle/10 p-4",
281
- children: [
282
- /* @__PURE__ */ g("p", {
283
- className: "text-sm text-status-warning-text",
284
- children: "Pending Orders"
285
- }),
286
- /* @__PURE__ */ g("p", {
287
- className: "text-2xl font-bold text-status-warning-text",
288
- children: b.orders.pending.toLocaleString("en-IN")
289
- }),
290
- /* @__PURE__ */ _("p", {
291
- className: "text-sm text-status-warning-text",
292
- children: [(b.orders.pending / b.orders.total * 100).toFixed(1), "% of total"]
293
- })
294
- ]
295
- }),
296
- /* @__PURE__ */ _("div", {
297
- className: "rounded-lg border border-status-error-border/30 bg-status-error-bg-subtle/10 p-4",
298
- children: [
299
- /* @__PURE__ */ g("p", {
300
- className: "text-sm text-status-error-text",
301
- children: "Cancelled Orders"
302
- }),
303
- /* @__PURE__ */ g("p", {
304
- className: "text-2xl font-bold text-status-error-text",
305
- children: b.orders.cancelled.toLocaleString("en-IN")
306
- }),
307
- /* @__PURE__ */ _("p", {
308
- className: "text-sm text-status-error-text",
309
- children: [(b.orders.cancelled / b.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: b.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: [k(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: O(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-status-warning-text text-status-warning-text" }), e.rating]
369
- })
370
- })
371
- ]
372
- }, e.id))
373
- })]
374
- })
375
- })] })]
376
- }),
377
- E === "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-accent-blue-subtle/30 bg-accent-blue-subtle/10 p-6",
384
- children: [/* @__PURE__ */ g("h4", {
385
- className: "text-sm font-medium text-accent-blue mb-2",
386
- children: "This Month"
387
- }), /* @__PURE__ */ g("p", {
388
- className: "text-2xl font-bold text-accent-blue",
389
- children: O(b.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: O(b.revenue.lastMonth)
400
- })]
401
- }),
402
- /* @__PURE__ */ _("div", {
403
- className: "rounded-lg border border-status-success-border/30 bg-status-success-bg-subtle/10 p-6",
404
- children: [/* @__PURE__ */ g("h4", {
405
- className: "text-sm font-medium text-status-success-text mb-2",
406
- children: "Average Order Value"
407
- }), /* @__PURE__ */ _("p", {
408
- className: "text-2xl font-bold text-status-success-text",
409
- children: ["₹", b.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: b.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: [k(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: O(e.revenue)
434
- }), /* @__PURE__ */ _("p", {
435
- className: "text-sm text-text-secondary",
436
- children: [(e.revenue / b.revenue.total * 100).toFixed(1), "%"]
437
- })]
438
- })]
439
- }, e.city))
440
- })] })]
441
- }),
442
- E === "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: b.users.customers,
450
- color: "blue"
451
- },
452
- {
453
- label: "Cart Owners",
454
- value: b.users.cartOwners,
455
- color: "green"
456
- },
457
- {
458
- label: "Workers",
459
- value: b.users.workers,
460
- color: "yellow"
461
- },
462
- {
463
- label: "Investors",
464
- value: b.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 / b.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-accent-blue",
496
- children: b.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-status-success-text",
502
- children: [(b.users.active / b.users.total * 100).toFixed(1), "%"]
503
- })] })]
504
- })]
505
- })]
506
- }),
507
- E === "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-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
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: [b.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-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
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-status-warning-text text-status-warning-text" }), b.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-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
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: [b.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-status-error-text",
590
- children: O(b.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-accent-blue",
597
- children: O(b.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-status-success-text",
604
- children: O(b.performance.netProfit)
605
- })] })
606
- ]
607
- }),
608
- /* @__PURE__ */ _("div", {
609
- className: "mt-4 rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
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: [(b.performance.netProfit / b.revenue.total * 100).toFixed(1), "%"]
616
- })]
617
- })
618
- ]
619
- }),
620
- /* @__PURE__ */ _("div", {
621
- className: "rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
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-accent-blue",
632
- children: b.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-status-success-text",
638
- children: O(b.orders.ordersToday * b.orders.averageOrderValue)
639
- })] })]
640
- })]
641
- })
642
- ]
643
- })
644
- ]
645
- })]
646
- })
647
- ]
648
- });
649
- }
650
- //#endregion
651
- export { y as AdminAnalyticsPage };
652
-
653
- //# sourceMappingURL=AdminAnalyticsPage.js.map