@burdenoff/microfe-adaptercloud 2026.614.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 (132) hide show
  1. package/README.md +12 -0
  2. package/dist/adaptercloud/AdapterCloudRoot.js +177 -0
  3. package/dist/adaptercloud/AdapterCloudRoot.js.map +1 -0
  4. package/dist/adaptercloud/AdapterCloudRoutes.js +215 -0
  5. package/dist/adaptercloud/AdapterCloudRoutes.js.map +1 -0
  6. package/dist/adaptercloud/components/EmptyState.js +28 -0
  7. package/dist/adaptercloud/components/EmptyState.js.map +1 -0
  8. package/dist/adaptercloud/components/InvestmentCard.js +96 -0
  9. package/dist/adaptercloud/components/InvestmentCard.js.map +1 -0
  10. package/dist/adaptercloud/components/MetricsCard.js +46 -0
  11. package/dist/adaptercloud/components/MetricsCard.js.map +1 -0
  12. package/dist/adaptercloud/components/PageLayout.js +26 -0
  13. package/dist/adaptercloud/components/PageLayout.js.map +1 -0
  14. package/dist/adaptercloud/components/RatingDisplay.js +35 -0
  15. package/dist/adaptercloud/components/RatingDisplay.js.map +1 -0
  16. package/dist/adaptercloud/components/StatusBadge.js +45 -0
  17. package/dist/adaptercloud/components/StatusBadge.js.map +1 -0
  18. package/dist/adaptercloud/context/AdapterCloudContext.js +93 -0
  19. package/dist/adaptercloud/context/AdapterCloudContext.js.map +1 -0
  20. package/dist/adaptercloud/context/index.js +1 -0
  21. package/dist/adaptercloud/hooks/useAdapterCloudApi.js +223 -0
  22. package/dist/adaptercloud/hooks/useAdapterCloudApi.js.map +1 -0
  23. package/dist/adaptercloud/index.js +7 -0
  24. package/dist/adaptercloud/mocks/data.js +1517 -0
  25. package/dist/adaptercloud/mocks/data.js.map +1 -0
  26. package/dist/adaptercloud/mocks/users.js +34 -0
  27. package/dist/adaptercloud/mocks/users.js.map +1 -0
  28. package/dist/adaptercloud/pages/HomePage.js +921 -0
  29. package/dist/adaptercloud/pages/HomePage.js.map +1 -0
  30. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +645 -0
  31. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -0
  32. package/dist/adaptercloud/pages/admin/AdminDashboard.js +639 -0
  33. package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -0
  34. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +421 -0
  35. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -0
  36. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +660 -0
  37. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -0
  38. package/dist/adaptercloud/pages/admin/AdminProfilePage.js +259 -0
  39. package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -0
  40. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +649 -0
  41. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -0
  42. package/dist/adaptercloud/pages/admin/CartManagementPage.js +869 -0
  43. package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -0
  44. package/dist/adaptercloud/pages/admin/UserManagementPage.js +893 -0
  45. package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -0
  46. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +834 -0
  47. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -0
  48. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +700 -0
  49. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -0
  50. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +760 -0
  51. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -0
  52. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +886 -0
  53. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -0
  54. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +631 -0
  55. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -0
  56. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +913 -0
  57. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -0
  58. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +881 -0
  59. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -0
  60. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +833 -0
  61. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -0
  62. package/dist/adaptercloud/pages/common/HelpSupportPage.js +1325 -0
  63. package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -0
  64. package/dist/adaptercloud/pages/common/NotificationCenterPage.js +665 -0
  65. package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -0
  66. package/dist/adaptercloud/pages/common/SettingsPage.js +964 -0
  67. package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -0
  68. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +593 -0
  69. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -0
  70. package/dist/adaptercloud/pages/customer/CartDetailPage.js +620 -0
  71. package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -0
  72. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +547 -0
  73. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -0
  74. package/dist/adaptercloud/pages/customer/CheckoutPage.js +532 -0
  75. package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -0
  76. package/dist/adaptercloud/pages/customer/CustomerDashboard.js +496 -0
  77. package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -0
  78. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +621 -0
  79. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -0
  80. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +623 -0
  81. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -0
  82. package/dist/adaptercloud/pages/customer/FavoritesPage.js +477 -0
  83. package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -0
  84. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +438 -0
  85. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -0
  86. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +388 -0
  87. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -0
  88. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +488 -0
  89. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -0
  90. package/dist/adaptercloud/pages/customer/ReviewsPage.js +606 -0
  91. package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -0
  92. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +443 -0
  93. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -0
  94. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +849 -0
  95. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -0
  96. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +939 -0
  97. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -0
  98. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +681 -0
  99. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -0
  100. package/dist/adaptercloud/pages/investor/InvestorDashboard.js +419 -0
  101. package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -0
  102. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +399 -0
  103. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -0
  104. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +569 -0
  105. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -0
  106. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +1065 -0
  107. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -0
  108. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +496 -0
  109. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -0
  110. package/dist/adaptercloud/pages/worker/WorkerDashboard.js +634 -0
  111. package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -0
  112. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +675 -0
  113. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -0
  114. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +687 -0
  115. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -0
  116. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +578 -0
  117. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -0
  118. package/dist/adaptercloud/store/adaptercloudStore.js +38 -0
  119. package/dist/adaptercloud/store/adaptercloudStore.js.map +1 -0
  120. package/dist/adaptercloud/store/index.js +1 -0
  121. package/dist/adaptercloud/utils/cn.js +10 -0
  122. package/dist/adaptercloud/utils/cn.js.map +1 -0
  123. package/dist/adaptercloud/utils/formatters.js +51 -0
  124. package/dist/adaptercloud/utils/formatters.js.map +1 -0
  125. package/dist/adaptercloud/utils/navigation.js +9 -0
  126. package/dist/adaptercloud/utils/navigation.js.map +1 -0
  127. package/dist/index.js +7 -0
  128. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -0
  129. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
  130. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
  131. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  132. package/package.json +106 -0
@@ -0,0 +1,760 @@
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 { formatCurrency as r } from "../../utils/formatters.js";
5
+ import { mockAdminAnalytics as i } from "../../mocks/data.js";
6
+ import { useState as a } from "react";
7
+ import { Activity as o, AlertCircle as s, ArrowRight as c, BarChart3 as l, Bell as u, CheckCircle as d, ChevronRight as f, Clock as p, Edit as m, Eye as h, Flame as g, IndianRupee as _, MapPin as v, Package as y, Plus as b, Settings as x, ShoppingCart as S, Star as C, TrendingDown as w, TrendingUp as T, UserCheck as E, Users as D } from "lucide-react";
8
+ import { jsx as O, jsxs as k } from "react/jsx-runtime";
9
+ //#region src/adaptercloud/pages/cart-owner/CartOwnerDashboard.tsx
10
+ var A = {
11
+ totalRevenue: 45230,
12
+ dailyRevenue: 1850,
13
+ ordersToday: 23,
14
+ totalOrders: 1247,
15
+ activeOfferings: 68,
16
+ averageOrderValue: 80,
17
+ customerCount: 342,
18
+ rating: 4.2
19
+ }, j = [
20
+ {
21
+ id: "ORD-001",
22
+ customerName: "Rahul Sharma",
23
+ items: [
24
+ "Masala Dosa",
25
+ "Filter Coffee",
26
+ "Vada"
27
+ ],
28
+ total: 180,
29
+ status: "preparing",
30
+ timestamp: "10 mins ago",
31
+ priority: "urgent"
32
+ },
33
+ {
34
+ id: "ORD-002",
35
+ customerName: "Priya Patel",
36
+ items: ["Idli Sambar (2)", "Coconut Chutney"],
37
+ total: 80,
38
+ status: "ready",
39
+ timestamp: "15 mins ago",
40
+ priority: "normal"
41
+ },
42
+ {
43
+ id: "ORD-003",
44
+ customerName: "Amit Kumar",
45
+ items: [
46
+ "Rava Dosa",
47
+ "Sambar",
48
+ "Coffee"
49
+ ],
50
+ total: 160,
51
+ status: "delivered",
52
+ timestamp: "25 mins ago",
53
+ priority: "normal"
54
+ },
55
+ {
56
+ id: "ORD-004",
57
+ customerName: "Sneha Singh",
58
+ items: ["Upma", "Coffee"],
59
+ total: 60,
60
+ status: "pending",
61
+ timestamp: "2 mins ago",
62
+ priority: "urgent"
63
+ }
64
+ ], M = [
65
+ {
66
+ name: "Masala Dosa",
67
+ quantity: 245,
68
+ revenue: 19600
69
+ },
70
+ {
71
+ name: "Filter Coffee",
72
+ quantity: 312,
73
+ revenue: 9360
74
+ },
75
+ {
76
+ name: "Idli Sambar",
77
+ quantity: 189,
78
+ revenue: 7560
79
+ },
80
+ {
81
+ name: "Vada",
82
+ quantity: 156,
83
+ revenue: 4680
84
+ },
85
+ {
86
+ name: "Rava Dosa",
87
+ quantity: 98,
88
+ revenue: 8820
89
+ }
90
+ ], N = [
91
+ {
92
+ name: "Ramesh Kumar",
93
+ role: "Chef",
94
+ status: "active"
95
+ },
96
+ {
97
+ name: "Priya Sharma",
98
+ role: "Server",
99
+ status: "active"
100
+ },
101
+ {
102
+ name: "Amit Patel",
103
+ role: "Delivery",
104
+ status: "on-break"
105
+ },
106
+ {
107
+ name: "Sneha Reddy",
108
+ role: "Manager",
109
+ status: "active"
110
+ }
111
+ ], P = [
112
+ {
113
+ id: "1",
114
+ message: "New order #ORD-004 received",
115
+ type: "info",
116
+ time: "2 min ago"
117
+ },
118
+ {
119
+ id: "2",
120
+ message: "Low stock alert: Vada batter running low",
121
+ type: "warning",
122
+ time: "15 min ago"
123
+ },
124
+ {
125
+ id: "3",
126
+ message: "Order #ORD-003 delivered successfully",
127
+ type: "success",
128
+ time: "25 min ago"
129
+ },
130
+ {
131
+ id: "4",
132
+ message: "New 5-star review from Priya Patel",
133
+ type: "success",
134
+ time: "1 hr ago"
135
+ },
136
+ {
137
+ id: "5",
138
+ message: "Peak hours approaching (12-2 PM)",
139
+ type: "warning",
140
+ time: "1 hr ago"
141
+ }
142
+ ], F = i.orderTrends.slice(0, 7), I = () => {
143
+ let e = (/* @__PURE__ */ new Date()).getHours();
144
+ return e < 12 ? "Good Morning" : e < 17 ? "Good Afternoon" : "Good Evening";
145
+ }, L = {
146
+ pending: "bg-red-500/15 text-red-600 dark:text-red-400",
147
+ preparing: "bg-yellow-500/15 text-yellow-600 dark:text-yellow-400",
148
+ ready: "bg-blue-500/15 text-blue-600 dark:text-blue-400",
149
+ delivered: "bg-green-500/15 text-green-600 dark:text-green-400",
150
+ cancelled: "bg-muted text-muted-foreground"
151
+ }, R = {
152
+ active: "bg-green-500",
153
+ "on-break": "bg-yellow-500",
154
+ "off-duty": "bg-muted-foreground"
155
+ }, z = {
156
+ info: "text-blue-500",
157
+ warning: "text-yellow-500",
158
+ success: "text-green-500"
159
+ }, B = () => {
160
+ let { navigateTo: i } = e(), [B, V] = a(j), [H, U] = a({
161
+ isOpen: !0,
162
+ currentLocation: "Koramangala 5th Block, Near BDA Complex",
163
+ lastUpdate: (/* @__PURE__ */ new Date()).toLocaleTimeString(),
164
+ operatingHours: "9:00 AM - 9:00 PM"
165
+ }), W = (e) => {
166
+ V((t) => t.map((t) => t.id === e ? {
167
+ ...t,
168
+ status: "preparing"
169
+ } : t));
170
+ }, G = (e) => {
171
+ V((t) => t.map((t) => t.id === e ? {
172
+ ...t,
173
+ status: "ready"
174
+ } : t));
175
+ };
176
+ return /* @__PURE__ */ O(n, {
177
+ title: /* @__PURE__ */ k("span", { children: [
178
+ I(),
179
+ ", ",
180
+ /* @__PURE__ */ O("span", {
181
+ className: "text-muted-foreground font-normal",
182
+ children: "Rajesh"
183
+ })
184
+ ] }),
185
+ description: "Manage your service provider operations",
186
+ actions: /* @__PURE__ */ k("button", {
187
+ type: "button",
188
+ onClick: () => i("/cart-owner/orders"),
189
+ className: "inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-foreground hover:bg-accent/80 transition-colors",
190
+ children: ["View All Orders", /* @__PURE__ */ O(c, { className: "h-4 w-4" })]
191
+ }),
192
+ children: /* @__PURE__ */ k("div", {
193
+ className: "space-y-6",
194
+ children: [
195
+ /* @__PURE__ */ O("div", {
196
+ className: t("p-4 rounded-lg border-l-4", H.isOpen ? "border-green-500 bg-green-500/5" : "border-red-500 bg-red-500/5"),
197
+ children: /* @__PURE__ */ k("div", {
198
+ className: "flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4",
199
+ children: [/* @__PURE__ */ k("div", {
200
+ className: "flex items-start gap-3",
201
+ children: [/* @__PURE__ */ O("div", { className: t("w-3 h-3 rounded-full mt-1 shrink-0", H.isOpen ? "bg-green-500" : "bg-red-500") }), /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ k("h3", {
202
+ className: "font-semibold text-foreground text-sm",
203
+ children: ["Service Status: ", H.isOpen ? "Open" : "Closed"]
204
+ }), /* @__PURE__ */ k("div", {
205
+ className: "flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 mt-1 text-xs text-muted-foreground",
206
+ children: [/* @__PURE__ */ k("span", {
207
+ className: "flex items-center gap-1",
208
+ children: [/* @__PURE__ */ O(v, { className: "h-3 w-3 shrink-0" }), H.currentLocation]
209
+ }), /* @__PURE__ */ k("span", {
210
+ className: "flex items-center gap-1",
211
+ children: [/* @__PURE__ */ O(p, { className: "h-3 w-3 shrink-0" }), H.operatingHours]
212
+ })]
213
+ })] })]
214
+ }), /* @__PURE__ */ k("div", {
215
+ className: "flex gap-2",
216
+ children: [/* @__PURE__ */ k("button", {
217
+ type: "button",
218
+ onClick: () => i("/cart-owner/settings"),
219
+ className: "inline-flex items-center gap-1 rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground hover:bg-muted transition-colors",
220
+ children: [/* @__PURE__ */ O(v, { className: "h-3 w-3" }), "Update Location"]
221
+ }), /* @__PURE__ */ O("button", {
222
+ type: "button",
223
+ onClick: () => {
224
+ U((e) => e && {
225
+ ...e,
226
+ isOpen: !e.isOpen
227
+ });
228
+ },
229
+ className: t("inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-xs font-medium transition-colors", H.isOpen ? "bg-red-500/10 text-red-600 hover:bg-red-500/20 dark:text-red-400" : "bg-green-500/10 text-green-600 hover:bg-green-500/20 dark:text-green-400"),
230
+ children: H.isOpen ? "Close Service" : "Open Service"
231
+ })]
232
+ })]
233
+ })
234
+ }),
235
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("h2", {
236
+ className: "text-base font-semibold text-foreground mb-3",
237
+ children: "Today's Performance"
238
+ }), /* @__PURE__ */ O("div", {
239
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
240
+ children: [
241
+ {
242
+ label: "Daily Revenue",
243
+ value: r(A.dailyRevenue, { minimumFractionDigits: 0 }),
244
+ icon: _,
245
+ trend: "+15.2% vs yesterday",
246
+ trendUp: !0
247
+ },
248
+ {
249
+ label: "Orders Today",
250
+ value: String(A.ordersToday),
251
+ icon: S,
252
+ trend: "+8.5% vs yesterday",
253
+ trendUp: !0
254
+ },
255
+ {
256
+ label: "Avg Order Value",
257
+ value: r(A.averageOrderValue, { minimumFractionDigits: 0 }),
258
+ icon: T,
259
+ trend: "+3.2% vs last week",
260
+ trendUp: !0
261
+ },
262
+ {
263
+ label: "Service Rating",
264
+ value: A.rating.toFixed(1),
265
+ icon: C,
266
+ trend: "Based on 342 reviews",
267
+ trendUp: !0
268
+ }
269
+ ].map((e) => {
270
+ let t = e.icon;
271
+ return /* @__PURE__ */ k("div", {
272
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
273
+ children: [
274
+ /* @__PURE__ */ k("div", {
275
+ className: "flex items-center justify-between",
276
+ children: [/* @__PURE__ */ O("div", {
277
+ className: "rounded-md bg-accent p-2",
278
+ children: /* @__PURE__ */ O(t, { className: "h-5 w-5 text-muted-foreground" })
279
+ }), /* @__PURE__ */ k("div", {
280
+ className: "flex items-center gap-1 text-xs text-muted-foreground",
281
+ children: [e.trendUp ? /* @__PURE__ */ O(T, { className: "h-3 w-3 text-green-600 dark:text-green-400" }) : /* @__PURE__ */ O(w, { className: "h-3 w-3 text-red-600 dark:text-red-400" }), /* @__PURE__ */ O("span", { children: e.trend })]
282
+ })]
283
+ }),
284
+ /* @__PURE__ */ O("p", {
285
+ className: "mt-3 text-2xl font-bold text-foreground",
286
+ children: e.value
287
+ }),
288
+ /* @__PURE__ */ O("p", {
289
+ className: "mt-1 text-sm text-muted-foreground",
290
+ children: e.label
291
+ })
292
+ ]
293
+ }, e.label);
294
+ })
295
+ })] }),
296
+ /* @__PURE__ */ k("div", {
297
+ className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
298
+ children: [/* @__PURE__ */ k("div", {
299
+ className: "lg:col-span-2 space-y-6",
300
+ children: [
301
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("h3", {
302
+ className: "text-base font-semibold mb-3 text-foreground",
303
+ children: "Quick Actions"
304
+ }), /* @__PURE__ */ O("div", {
305
+ className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3",
306
+ children: [
307
+ {
308
+ label: "Service Config",
309
+ icon: x,
310
+ color: "bg-orange-500/10 text-orange-600 dark:text-orange-400",
311
+ path: "/cart-owner/service-config"
312
+ },
313
+ {
314
+ label: "Manage Offerings",
315
+ icon: y,
316
+ color: "bg-blue-500/10 text-blue-600 dark:text-blue-400",
317
+ path: "/cart-owner/inventory"
318
+ },
319
+ {
320
+ label: "View Orders",
321
+ icon: S,
322
+ color: "bg-green-500/10 text-green-600 dark:text-green-400",
323
+ path: "/cart-owner/orders"
324
+ },
325
+ {
326
+ label: "Analytics",
327
+ icon: l,
328
+ color: "bg-purple-500/10 text-purple-600 dark:text-purple-400",
329
+ path: "/cart-owner/analytics"
330
+ },
331
+ {
332
+ label: "Staff",
333
+ icon: E,
334
+ color: "bg-pink-500/10 text-pink-600 dark:text-pink-400",
335
+ path: "/cart-owner/staff"
336
+ }
337
+ ].map((e) => {
338
+ let n = e.icon;
339
+ return /* @__PURE__ */ k("button", {
340
+ type: "button",
341
+ onClick: () => i(e.path),
342
+ className: t("flex flex-col items-center gap-2 rounded-lg p-4 transition-colors hover:opacity-80", e.color),
343
+ children: [/* @__PURE__ */ O(n, { className: "h-5 w-5" }), /* @__PURE__ */ O("span", {
344
+ className: "text-xs font-medium text-center",
345
+ children: e.label
346
+ })]
347
+ }, e.label);
348
+ })
349
+ })] }),
350
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ k("div", {
351
+ className: "flex items-center justify-between mb-3",
352
+ children: [/* @__PURE__ */ O("h3", {
353
+ className: "text-base font-semibold text-foreground",
354
+ children: "Recent Orders"
355
+ }), /* @__PURE__ */ O("button", {
356
+ type: "button",
357
+ onClick: () => i("/cart-owner/orders"),
358
+ className: "text-xs text-muted-foreground hover:text-foreground transition-colors",
359
+ children: "View All Orders"
360
+ })]
361
+ }), /* @__PURE__ */ O("div", {
362
+ className: "space-y-3",
363
+ children: B.map((e) => /* @__PURE__ */ O("div", {
364
+ className: "rounded-lg border border-border bg-card p-4 shadow-sm",
365
+ children: /* @__PURE__ */ k("div", {
366
+ className: "flex flex-col lg:flex-row lg:items-start lg:justify-between gap-3",
367
+ children: [/* @__PURE__ */ k("div", {
368
+ className: "flex-1 min-w-0",
369
+ children: [
370
+ /* @__PURE__ */ k("div", {
371
+ className: "flex flex-wrap items-center gap-2 mb-1",
372
+ children: [
373
+ /* @__PURE__ */ k("h4", {
374
+ className: "font-semibold text-foreground text-sm",
375
+ children: ["#", e.id]
376
+ }),
377
+ /* @__PURE__ */ O("span", {
378
+ className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium capitalize", L[e.status] || "bg-muted text-muted-foreground"),
379
+ children: e.status
380
+ }),
381
+ e.priority === "urgent" && /* @__PURE__ */ O(s, { className: "h-4 w-4 text-red-500" })
382
+ ]
383
+ }),
384
+ /* @__PURE__ */ k("p", {
385
+ className: "text-xs text-muted-foreground mb-1",
386
+ children: ["Customer: ", e.customerName]
387
+ }),
388
+ /* @__PURE__ */ k("p", {
389
+ className: "text-xs text-muted-foreground mb-1 truncate",
390
+ children: ["Items: ", e.items.join(", ")]
391
+ }),
392
+ /* @__PURE__ */ k("div", {
393
+ className: "flex flex-wrap items-center gap-3 text-xs text-muted-foreground",
394
+ children: [/* @__PURE__ */ O("span", {
395
+ className: "font-semibold text-foreground",
396
+ children: r(e.total, { minimumFractionDigits: 0 })
397
+ }), /* @__PURE__ */ k("span", {
398
+ className: "flex items-center gap-1",
399
+ children: [/* @__PURE__ */ O(p, { className: "h-3 w-3" }), e.timestamp]
400
+ })]
401
+ })
402
+ ]
403
+ }), /* @__PURE__ */ k("div", {
404
+ className: "flex gap-2",
405
+ children: [
406
+ /* @__PURE__ */ k("button", {
407
+ type: "button",
408
+ onClick: () => i("/cart-owner/orders"),
409
+ className: "inline-flex items-center gap-1 rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground hover:bg-muted transition-colors",
410
+ children: [/* @__PURE__ */ O(h, { className: "h-3 w-3" }), "View"]
411
+ }),
412
+ e.status === "pending" && /* @__PURE__ */ k("button", {
413
+ type: "button",
414
+ onClick: () => W(e.id),
415
+ className: "inline-flex items-center gap-1 rounded-md bg-green-500/10 px-3 py-1.5 text-xs font-medium text-green-600 hover:bg-green-500/20 dark:text-green-400 transition-colors",
416
+ children: [/* @__PURE__ */ O(d, { className: "h-3 w-3" }), "Accept"]
417
+ }),
418
+ e.status === "preparing" && /* @__PURE__ */ k("button", {
419
+ type: "button",
420
+ onClick: () => G(e.id),
421
+ className: "inline-flex items-center gap-1 rounded-md bg-blue-500/10 px-3 py-1.5 text-xs font-medium text-blue-600 hover:bg-blue-500/20 dark:text-blue-400 transition-colors",
422
+ children: [/* @__PURE__ */ O(d, { className: "h-3 w-3" }), "Mark Ready"]
423
+ })
424
+ ]
425
+ })]
426
+ })
427
+ }, e.id))
428
+ })] }),
429
+ /* @__PURE__ */ k("div", {
430
+ className: "rounded-lg border border-border bg-card shadow-sm",
431
+ children: [/* @__PURE__ */ k("div", {
432
+ className: "flex items-center justify-between border-b border-border px-5 py-4",
433
+ children: [/* @__PURE__ */ O("h3", {
434
+ className: "text-base font-semibold text-foreground",
435
+ children: "Revenue (Last 7 Days)"
436
+ }), /* @__PURE__ */ O("button", {
437
+ type: "button",
438
+ onClick: () => i("/cart-owner/analytics"),
439
+ className: "text-xs text-muted-foreground hover:text-foreground transition-colors",
440
+ children: "View Analytics"
441
+ })]
442
+ }), /* @__PURE__ */ O("div", {
443
+ className: "overflow-x-auto",
444
+ children: /* @__PURE__ */ k("table", {
445
+ className: "w-full text-sm",
446
+ children: [/* @__PURE__ */ O("thead", { children: /* @__PURE__ */ k("tr", {
447
+ className: "border-b border-border",
448
+ children: [
449
+ /* @__PURE__ */ O("th", {
450
+ className: "px-5 py-3 text-left font-medium text-muted-foreground",
451
+ children: "Date"
452
+ }),
453
+ /* @__PURE__ */ O("th", {
454
+ className: "px-5 py-3 text-right font-medium text-muted-foreground",
455
+ children: "Orders"
456
+ }),
457
+ /* @__PURE__ */ O("th", {
458
+ className: "px-5 py-3 text-right font-medium text-muted-foreground",
459
+ children: "Revenue"
460
+ }),
461
+ /* @__PURE__ */ O("th", {
462
+ className: "px-5 py-3 text-left font-medium text-muted-foreground",
463
+ children: "Trend"
464
+ })
465
+ ]
466
+ }) }), /* @__PURE__ */ O("tbody", { children: F.map((e, t) => {
467
+ let n = Math.max(...F.map((e) => e.revenue)), i = e.revenue / n * 100;
468
+ return /* @__PURE__ */ k("tr", {
469
+ className: "border-b border-border last:border-0",
470
+ children: [
471
+ /* @__PURE__ */ O("td", {
472
+ className: "px-5 py-3 text-foreground text-xs",
473
+ children: new Date(e.date).toLocaleDateString("en-IN", {
474
+ day: "2-digit",
475
+ month: "short",
476
+ weekday: "short"
477
+ })
478
+ }),
479
+ /* @__PURE__ */ O("td", {
480
+ className: "px-5 py-3 text-right text-foreground",
481
+ children: e.orders
482
+ }),
483
+ /* @__PURE__ */ O("td", {
484
+ className: "px-5 py-3 text-right font-medium text-foreground",
485
+ children: r(e.revenue, { minimumFractionDigits: 0 })
486
+ }),
487
+ /* @__PURE__ */ O("td", {
488
+ className: "px-5 py-3 w-40",
489
+ children: /* @__PURE__ */ O("div", {
490
+ className: "h-4 rounded bg-muted overflow-hidden",
491
+ children: /* @__PURE__ */ O("div", {
492
+ className: "h-full rounded bg-blue-500/60",
493
+ style: { width: `${i}%` }
494
+ })
495
+ })
496
+ })
497
+ ]
498
+ }, e.date);
499
+ }) })]
500
+ })
501
+ })]
502
+ }),
503
+ /* @__PURE__ */ k("div", {
504
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
505
+ children: [/* @__PURE__ */ O("h3", {
506
+ className: "text-base font-semibold text-foreground mb-4",
507
+ children: "This Month Summary"
508
+ }), /* @__PURE__ */ k("div", {
509
+ className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
510
+ children: [
511
+ /* @__PURE__ */ k("div", {
512
+ className: "text-center p-3 rounded-lg bg-muted/50",
513
+ children: [/* @__PURE__ */ O("div", {
514
+ className: "text-xl font-bold text-foreground",
515
+ children: r(A.totalRevenue, { minimumFractionDigits: 0 })
516
+ }), /* @__PURE__ */ O("div", {
517
+ className: "text-xs text-muted-foreground mt-1",
518
+ children: "Total Revenue"
519
+ })]
520
+ }),
521
+ /* @__PURE__ */ k("div", {
522
+ className: "text-center p-3 rounded-lg bg-muted/50",
523
+ children: [/* @__PURE__ */ O("div", {
524
+ className: "text-xl font-bold text-foreground",
525
+ children: A.totalOrders
526
+ }), /* @__PURE__ */ O("div", {
527
+ className: "text-xs text-muted-foreground mt-1",
528
+ children: "Total Orders"
529
+ })]
530
+ }),
531
+ /* @__PURE__ */ k("div", {
532
+ className: "text-center p-3 rounded-lg bg-muted/50",
533
+ children: [/* @__PURE__ */ O("div", {
534
+ className: "text-xl font-bold text-foreground",
535
+ children: A.customerCount
536
+ }), /* @__PURE__ */ O("div", {
537
+ className: "text-xs text-muted-foreground mt-1",
538
+ children: "Unique Customers"
539
+ })]
540
+ })
541
+ ]
542
+ })]
543
+ })
544
+ ]
545
+ }), /* @__PURE__ */ k("div", {
546
+ className: "space-y-6",
547
+ children: [
548
+ /* @__PURE__ */ k("div", {
549
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
550
+ children: [/* @__PURE__ */ k("div", {
551
+ className: "flex items-center justify-between mb-4",
552
+ children: [/* @__PURE__ */ k("h3", {
553
+ className: "text-base font-semibold text-foreground flex items-center gap-2",
554
+ children: [/* @__PURE__ */ O(u, { className: "h-4 w-4" }), "Notifications"]
555
+ }), /* @__PURE__ */ O("span", {
556
+ className: "inline-flex items-center justify-center rounded-full bg-red-500 text-white text-[10px] font-bold h-5 w-5",
557
+ children: P.length
558
+ })]
559
+ }), /* @__PURE__ */ O("div", {
560
+ className: "space-y-3",
561
+ children: P.map((e) => /* @__PURE__ */ k("div", {
562
+ className: "flex items-start gap-2",
563
+ children: [/* @__PURE__ */ O(o, { className: t("h-4 w-4 mt-0.5 shrink-0", z[e.type]) }), /* @__PURE__ */ k("div", {
564
+ className: "min-w-0",
565
+ children: [/* @__PURE__ */ O("p", {
566
+ className: "text-xs text-foreground leading-tight",
567
+ children: e.message
568
+ }), /* @__PURE__ */ O("p", {
569
+ className: "text-[10px] text-muted-foreground mt-0.5",
570
+ children: e.time
571
+ })]
572
+ })]
573
+ }, e.id))
574
+ })]
575
+ }),
576
+ /* @__PURE__ */ k("div", {
577
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
578
+ children: [/* @__PURE__ */ k("h3", {
579
+ className: "text-base font-semibold text-foreground mb-4 flex items-center gap-2",
580
+ children: [/* @__PURE__ */ O(g, { className: "h-4 w-4 text-orange-500" }), "Top Selling Items"]
581
+ }), /* @__PURE__ */ O("div", {
582
+ className: "space-y-3",
583
+ children: M.map((e, t) => /* @__PURE__ */ k("div", {
584
+ className: "flex items-center justify-between",
585
+ children: [/* @__PURE__ */ k("div", {
586
+ className: "flex items-center gap-2 min-w-0",
587
+ children: [/* @__PURE__ */ O("span", {
588
+ className: "text-sm font-bold text-muted-foreground w-5",
589
+ children: t + 1
590
+ }), /* @__PURE__ */ k("div", {
591
+ className: "min-w-0",
592
+ children: [/* @__PURE__ */ O("p", {
593
+ className: "text-xs font-medium text-foreground truncate",
594
+ children: e.name
595
+ }), /* @__PURE__ */ k("p", {
596
+ className: "text-[10px] text-muted-foreground",
597
+ children: [e.quantity, " sold"]
598
+ })]
599
+ })]
600
+ }), /* @__PURE__ */ O("span", {
601
+ className: "text-xs font-semibold text-foreground",
602
+ children: r(e.revenue, { minimumFractionDigits: 0 })
603
+ })]
604
+ }, e.name))
605
+ })]
606
+ }),
607
+ /* @__PURE__ */ k("div", {
608
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
609
+ children: [/* @__PURE__ */ k("div", {
610
+ className: "flex items-center justify-between mb-4",
611
+ children: [/* @__PURE__ */ k("h3", {
612
+ className: "text-base font-semibold text-foreground flex items-center gap-2",
613
+ children: [/* @__PURE__ */ O(D, { className: "h-4 w-4" }), "Staff Overview"]
614
+ }), /* @__PURE__ */ O("button", {
615
+ type: "button",
616
+ onClick: () => i("/cart-owner/staff"),
617
+ className: "text-xs text-muted-foreground hover:text-foreground transition-colors",
618
+ children: "Manage"
619
+ })]
620
+ }), /* @__PURE__ */ O("div", {
621
+ className: "space-y-3",
622
+ children: N.map((e) => /* @__PURE__ */ k("div", {
623
+ className: "flex items-center justify-between",
624
+ children: [/* @__PURE__ */ k("div", {
625
+ className: "flex items-center gap-2",
626
+ children: [/* @__PURE__ */ O("div", { className: t("w-2 h-2 rounded-full", R[e.status]) }), /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("p", {
627
+ className: "text-xs font-medium text-foreground",
628
+ children: e.name
629
+ }), /* @__PURE__ */ O("p", {
630
+ className: "text-[10px] text-muted-foreground",
631
+ children: e.role
632
+ })] })]
633
+ }), /* @__PURE__ */ O("span", {
634
+ className: "text-[10px] capitalize text-muted-foreground",
635
+ children: e.status.replace("-", " ")
636
+ })]
637
+ }, e.name))
638
+ })]
639
+ }),
640
+ /* @__PURE__ */ k("div", {
641
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
642
+ children: [/* @__PURE__ */ O("h3", {
643
+ className: "text-base font-semibold text-foreground mb-4",
644
+ children: "Quick Stats"
645
+ }), /* @__PURE__ */ k("div", {
646
+ className: "space-y-3",
647
+ children: [
648
+ /* @__PURE__ */ k("div", {
649
+ className: "flex items-center justify-between",
650
+ children: [/* @__PURE__ */ O("span", {
651
+ className: "text-xs text-muted-foreground",
652
+ children: "Active Offerings"
653
+ }), /* @__PURE__ */ O("span", {
654
+ className: "text-sm font-semibold text-foreground",
655
+ children: A.activeOfferings
656
+ })]
657
+ }),
658
+ /* @__PURE__ */ k("div", {
659
+ className: "flex items-center justify-between",
660
+ children: [/* @__PURE__ */ O("span", {
661
+ className: "text-xs text-muted-foreground",
662
+ children: "Customer Rating"
663
+ }), /* @__PURE__ */ k("span", {
664
+ className: "text-sm font-semibold text-foreground flex items-center gap-1",
665
+ children: [/* @__PURE__ */ O(C, { className: "h-3 w-3 text-yellow-500 fill-yellow-500" }), A.rating]
666
+ })]
667
+ }),
668
+ /* @__PURE__ */ k("div", {
669
+ className: "flex items-center justify-between",
670
+ children: [/* @__PURE__ */ O("span", {
671
+ className: "text-xs text-muted-foreground",
672
+ children: "Total Customers"
673
+ }), /* @__PURE__ */ O("span", {
674
+ className: "text-sm font-semibold text-foreground",
675
+ children: A.customerCount
676
+ })]
677
+ })
678
+ ]
679
+ })]
680
+ }),
681
+ /* @__PURE__ */ k("div", {
682
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
683
+ children: [/* @__PURE__ */ O("h3", {
684
+ className: "text-base font-semibold text-foreground mb-3",
685
+ children: "Business Settings"
686
+ }), /* @__PURE__ */ O("div", {
687
+ className: "space-y-2",
688
+ children: [
689
+ {
690
+ label: "Service Settings",
691
+ icon: x,
692
+ path: "/cart-owner/settings"
693
+ },
694
+ {
695
+ label: "Business Profile",
696
+ icon: m,
697
+ path: "/cart-owner/profile"
698
+ },
699
+ {
700
+ label: "Add Offerings",
701
+ icon: b,
702
+ path: "/cart-owner/inventory"
703
+ }
704
+ ].map((e) => {
705
+ let t = e.icon;
706
+ return /* @__PURE__ */ k("button", {
707
+ type: "button",
708
+ onClick: () => i(e.path),
709
+ className: "w-full flex items-center justify-between rounded-md border border-border px-3 py-2 text-xs font-medium text-foreground hover:bg-muted transition-colors",
710
+ children: [/* @__PURE__ */ k("span", {
711
+ className: "flex items-center gap-2",
712
+ children: [/* @__PURE__ */ O(t, { className: "h-3.5 w-3.5" }), e.label]
713
+ }), /* @__PURE__ */ O(f, { className: "h-3 w-3 text-muted-foreground" })]
714
+ }, e.label);
715
+ })
716
+ })]
717
+ }),
718
+ /* @__PURE__ */ k("div", {
719
+ className: "rounded-lg border border-border bg-card p-5 shadow-sm",
720
+ children: [/* @__PURE__ */ O("h3", {
721
+ className: "text-base font-semibold text-foreground mb-3",
722
+ children: "Recent Activity"
723
+ }), /* @__PURE__ */ k("div", {
724
+ className: "space-y-2 text-xs",
725
+ children: [
726
+ /* @__PURE__ */ k("div", {
727
+ className: "flex items-center gap-2",
728
+ children: [/* @__PURE__ */ O(o, { className: "h-3.5 w-3.5 text-green-500" }), /* @__PURE__ */ O("span", {
729
+ className: "text-muted-foreground",
730
+ children: "Order #ORD-003 delivered"
731
+ })]
732
+ }),
733
+ /* @__PURE__ */ k("div", {
734
+ className: "flex items-center gap-2",
735
+ children: [/* @__PURE__ */ O(o, { className: "h-3.5 w-3.5 text-blue-500" }), /* @__PURE__ */ O("span", {
736
+ className: "text-muted-foreground",
737
+ children: "Inventory updated"
738
+ })]
739
+ }),
740
+ /* @__PURE__ */ k("div", {
741
+ className: "flex items-center gap-2",
742
+ children: [/* @__PURE__ */ O(o, { className: "h-3.5 w-3.5 text-yellow-500" }), /* @__PURE__ */ O("span", {
743
+ className: "text-muted-foreground",
744
+ children: "New customer review"
745
+ })]
746
+ })
747
+ ]
748
+ })]
749
+ })
750
+ ]
751
+ })]
752
+ })
753
+ ]
754
+ })
755
+ });
756
+ };
757
+ //#endregion
758
+ export { B as CartOwnerDashboard };
759
+
760
+ //# sourceMappingURL=CartOwnerDashboard.js.map