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