@burdenoff/microfe-kadaikodi 2026.704.2 → 2026.704.4
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/kadaikodi/KadaikodiRoutes.js +30 -26
- package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
- package/dist/kadaikodi/hooks/useKadaikodiApi.js +76 -6
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +45 -107
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +30 -32
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +137 -120
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +2 -2
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +332 -276
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +278 -283
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +310 -366
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +105 -111
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +290 -257
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +84 -70
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +270 -228
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +194 -173
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +202 -139
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +232 -0
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -0
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +84 -79
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +310 -317
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +502 -586
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +243 -143
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +6 -6
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +189 -199
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +6 -4
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +6 -6
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +4 -4
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +409 -304
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +209 -162
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +441 -514
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +207 -186
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +340 -272
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +122 -75
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,61 +2,68 @@ import { useKadaikodi as e } from "../../context/KadaikodiContext.js";
|
|
|
2
2
|
import { cn as t } from "../../utils/cn.js";
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
4
|
import { EmptyState as r } from "../../components/EmptyState.js";
|
|
5
|
-
import { useOfferings as i, useOrders as a, useProviderWorkers as o, useProviders as ee, useReviews as
|
|
5
|
+
import { useOfferings as i, useOrders as a, useProviderWorkers as o, useProviders as ee, useReviews as te, useUpdateOrderStatus as s, useUpdateProvider as c } from "../../hooks/useKadaikodiApi.js";
|
|
6
6
|
import { formatCurrency as l } from "../../utils/formatters.js";
|
|
7
|
-
import { useEffect as
|
|
8
|
-
import { Activity as
|
|
9
|
-
import { Fragment as
|
|
10
|
-
import { EmphasisPanel as
|
|
7
|
+
import { useEffect as u, useMemo as d, useState as f } from "react";
|
|
8
|
+
import { Activity as p, ArrowRight as ne, BarChart3 as re, Bell as ie, CheckCircle as m, ChevronRight as ae, Clock as h, Edit as g, Eye as _, Flame as v, IndianRupee as y, MapPin as b, Package as x, Plus as S, Settings as C, ShoppingCart as w, Star as T, TrendingUp as E, UserCheck as oe, Users as se } from "lucide-react";
|
|
9
|
+
import { Fragment as ce, jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
10
|
+
import { EmphasisPanel as le, NextSteps as ue, PagePurpose as de } from "@burdenoff/fe-libs/ui";
|
|
11
11
|
//#region src/kadaikodi/pages/cart-owner/CartOwnerDashboard.tsx
|
|
12
|
-
var
|
|
12
|
+
var k = () => {
|
|
13
13
|
let e = (/* @__PURE__ */ new Date()).getHours();
|
|
14
14
|
return e < 12 ? "Good Morning" : e < 17 ? "Good Afternoon" : "Good Evening";
|
|
15
|
-
},
|
|
15
|
+
}, A = {
|
|
16
16
|
pending: "bg-status-error-bg-subtle text-status-error-text",
|
|
17
17
|
confirmed: "bg-[var(--color-accent-soft)] text-text-primary",
|
|
18
18
|
preparing: "bg-status-warning-bg-subtle text-status-warning-text",
|
|
19
19
|
ready: "bg-[var(--color-accent-soft)] text-text-primary",
|
|
20
20
|
delivered: "bg-status-success-bg-subtle text-status-success-text",
|
|
21
21
|
cancelled: "bg-bg-sunken text-text-secondary"
|
|
22
|
-
},
|
|
22
|
+
}, j = () => {
|
|
23
23
|
let e = /* @__PURE__ */ new Date();
|
|
24
24
|
return e.setHours(0, 0, 0, 0), e;
|
|
25
|
-
},
|
|
25
|
+
}, M = (e) => {
|
|
26
26
|
let t = Math.floor((Date.now() - new Date(e).getTime()) / 6e4);
|
|
27
27
|
return t < 1 ? "Just now" : t < 60 ? `${t} min ago` : t < 1440 ? `${Math.floor(t / 60)} hr ago` : new Date(e).toLocaleDateString("en-IN", {
|
|
28
28
|
day: "2-digit",
|
|
29
29
|
month: "short"
|
|
30
30
|
});
|
|
31
|
-
},
|
|
32
|
-
let { navigateTo:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}, [
|
|
36
|
-
let
|
|
37
|
-
|
|
31
|
+
}, N = () => {
|
|
32
|
+
let { navigateTo: N, currentUser: P } = e(), { data: F = [], isLoading: I } = ee(), L = d(() => F.find((e) => e.ownerId === P?.id) ?? F[0], [F, P?.id]), R = L?.id, { data: z = [] } = a({ providerId: R }), { data: B = [] } = i(R), { data: V = [] } = te(R ?? ""), { data: H = [] } = o(R), fe = s(), U = c(), W = P?.firstName ?? P?.name?.split(" ")[0] ?? "", [G, K] = f(!0);
|
|
33
|
+
u(() => {
|
|
34
|
+
L && K(L.isOpen);
|
|
35
|
+
}, [L]);
|
|
36
|
+
let pe = () => {
|
|
37
|
+
if (!L) return;
|
|
38
|
+
let e = !G;
|
|
39
|
+
K(e), U.mutate({
|
|
40
|
+
id: L.id,
|
|
41
|
+
input: { status: e ? "ACTIVE" : "PAUSED" }
|
|
42
|
+
}, { onError: () => K(!e) });
|
|
43
|
+
}, q = d(() => {
|
|
44
|
+
let e = j(), t = z.filter((e) => e.status === "delivered"), n = z.filter((t) => new Date(t.orderDate) >= e), r = t.filter((t) => new Date(t.orderDate) >= e), i = t.reduce((e, t) => e + t.total, 0), a = r.reduce((e, t) => e + t.total, 0), o = t.length > 0 ? Math.round(i / t.length) : Math.round(L?.averageOrderValue ?? 0);
|
|
38
45
|
return {
|
|
39
46
|
totalRevenue: i,
|
|
40
47
|
dailyRevenue: a,
|
|
41
48
|
ordersToday: n.length,
|
|
42
|
-
totalOrders:
|
|
43
|
-
activeOfferings:
|
|
49
|
+
totalOrders: z.length,
|
|
50
|
+
activeOfferings: B.filter((e) => e.isAvailable).length,
|
|
44
51
|
averageOrderValue: o,
|
|
45
|
-
rating:
|
|
46
|
-
totalRatings:
|
|
52
|
+
rating: L?.rating ?? 0,
|
|
53
|
+
totalRatings: L?.totalRatings ?? 0
|
|
47
54
|
};
|
|
48
55
|
}, [
|
|
56
|
+
z,
|
|
49
57
|
B,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
]), J = u(() => [...B].sort((e, t) => new Date(t.orderDate).getTime() - new Date(e.orderDate).getTime()).slice(0, 4), [B]), Y = u(() => {
|
|
58
|
+
L
|
|
59
|
+
]), J = d(() => [...z].sort((e, t) => new Date(t.orderDate).getTime() - new Date(e.orderDate).getTime()).slice(0, 4), [z]), Y = d(() => {
|
|
53
60
|
let e = [];
|
|
54
61
|
for (let t = 6; t >= 0; t--) {
|
|
55
|
-
let n =
|
|
62
|
+
let n = j();
|
|
56
63
|
n.setDate(n.getDate() - t);
|
|
57
64
|
let r = new Date(n);
|
|
58
65
|
r.setDate(n.getDate() + 1);
|
|
59
|
-
let i =
|
|
66
|
+
let i = z.filter((e) => {
|
|
60
67
|
let t = new Date(e.orderDate);
|
|
61
68
|
return t >= n && t < r;
|
|
62
69
|
});
|
|
@@ -67,9 +74,9 @@ var A = () => {
|
|
|
67
74
|
});
|
|
68
75
|
}
|
|
69
76
|
return e;
|
|
70
|
-
}, [
|
|
77
|
+
}, [z]), X = d(() => {
|
|
71
78
|
let e = /* @__PURE__ */ new Map();
|
|
72
|
-
return
|
|
79
|
+
return z.forEach((t) => t.items.forEach((t) => {
|
|
73
80
|
let n = e.get(t.name) ?? {
|
|
74
81
|
quantity: 0,
|
|
75
82
|
revenue: 0
|
|
@@ -79,55 +86,55 @@ var A = () => {
|
|
|
79
86
|
name: e,
|
|
80
87
|
...t
|
|
81
88
|
})).sort((e, t) => t.revenue - e.revenue).slice(0, 5);
|
|
82
|
-
}, [
|
|
83
|
-
|
|
89
|
+
}, [z]), me = (/* @__PURE__ */ new Date()).toLocaleDateString("en-US", { weekday: "long" }).toLowerCase(), Z = L?.businessHours?.[me], Q = Z && Z.isOpen ? `${Z.open} - ${Z.close}` : null, he = L?.location?.address?.trim() || null, $ = (e, t) => {
|
|
90
|
+
fe.mutate({
|
|
84
91
|
id: e,
|
|
85
92
|
status: t
|
|
86
93
|
});
|
|
87
94
|
};
|
|
88
|
-
return
|
|
89
|
-
title:
|
|
95
|
+
return I ? /* @__PURE__ */ D(n, {
|
|
96
|
+
title: k(),
|
|
90
97
|
description: "Manage your service provider operations",
|
|
91
98
|
children: /* @__PURE__ */ D("div", {
|
|
92
99
|
className: "flex items-center justify-center py-24",
|
|
93
100
|
children: /* @__PURE__ */ D("div", { className: "h-10 w-10 animate-spin rounded-full border-b-2 border-foreground" })
|
|
94
101
|
})
|
|
95
|
-
}) :
|
|
96
|
-
title: /* @__PURE__ */ O("span", { children: [
|
|
102
|
+
}) : L ? /* @__PURE__ */ D(n, {
|
|
103
|
+
title: /* @__PURE__ */ O("span", { children: [k(), W && /* @__PURE__ */ O(ce, { children: [", ", /* @__PURE__ */ D("span", {
|
|
97
104
|
className: "text-text-secondary font-normal",
|
|
98
105
|
children: W
|
|
99
106
|
})] })] }),
|
|
100
|
-
description:
|
|
107
|
+
description: L.name,
|
|
101
108
|
actions: /* @__PURE__ */ O("button", {
|
|
102
109
|
type: "button",
|
|
103
|
-
onClick: () =>
|
|
110
|
+
onClick: () => N("/cart-owner/orders"),
|
|
104
111
|
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",
|
|
105
|
-
children: ["View All Orders", /* @__PURE__ */ D(
|
|
112
|
+
children: ["View All Orders", /* @__PURE__ */ D(ne, { className: "h-4 w-4" })]
|
|
106
113
|
}),
|
|
107
114
|
children: /* @__PURE__ */ O("div", {
|
|
108
115
|
className: "space-y-6",
|
|
109
116
|
children: [
|
|
110
|
-
/* @__PURE__ */ D(
|
|
111
|
-
/* @__PURE__ */ D(
|
|
117
|
+
/* @__PURE__ */ D(de, { children: "Run your mobile cart business from one screen — flip your service open or closed, watch today's revenue and orders roll in, and jump to your menu, staff, or order queue. Open your service and set up your offerings to start taking orders." }),
|
|
118
|
+
/* @__PURE__ */ D(ue, {
|
|
112
119
|
storageKey: "kadaikodi-cartowner-dashboard",
|
|
113
120
|
steps: [
|
|
114
121
|
{
|
|
115
122
|
id: "offerings",
|
|
116
123
|
label: "Set up your offerings",
|
|
117
124
|
description: "Add the dishes and items customers can order from your cart.",
|
|
118
|
-
onClick: () =>
|
|
125
|
+
onClick: () => N("/cart-owner/inventory")
|
|
119
126
|
},
|
|
120
127
|
{
|
|
121
128
|
id: "service-config",
|
|
122
129
|
label: "Configure service & hours",
|
|
123
130
|
description: "Define your operating hours, location and service area.",
|
|
124
|
-
onClick: () =>
|
|
131
|
+
onClick: () => N("/cart-owner/service-config")
|
|
125
132
|
},
|
|
126
133
|
{
|
|
127
134
|
id: "orders",
|
|
128
135
|
label: "Manage incoming orders",
|
|
129
136
|
description: "Accept, prepare and fulfil customer orders in real time.",
|
|
130
|
-
onClick: () =>
|
|
137
|
+
onClick: () => N("/cart-owner/orders")
|
|
131
138
|
}
|
|
132
139
|
]
|
|
133
140
|
}),
|
|
@@ -144,29 +151,30 @@ var A = () => {
|
|
|
144
151
|
className: "flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 mt-1 text-xs text-text-secondary",
|
|
145
152
|
children: [/* @__PURE__ */ O("span", {
|
|
146
153
|
className: "flex items-center gap-1",
|
|
147
|
-
children: [/* @__PURE__ */ D(b, { className: "h-3 w-3 shrink-0" }),
|
|
154
|
+
children: [/* @__PURE__ */ D(b, { className: "h-3 w-3 shrink-0" }), he ?? "Location not set"]
|
|
148
155
|
}), Q && /* @__PURE__ */ O("span", {
|
|
149
156
|
className: "flex items-center gap-1",
|
|
150
|
-
children: [/* @__PURE__ */ D(
|
|
157
|
+
children: [/* @__PURE__ */ D(h, { className: "h-3 w-3 shrink-0" }), Q]
|
|
151
158
|
})]
|
|
152
159
|
})] })]
|
|
153
160
|
}), /* @__PURE__ */ O("div", {
|
|
154
161
|
className: "flex gap-2",
|
|
155
162
|
children: [/* @__PURE__ */ O("button", {
|
|
156
163
|
type: "button",
|
|
157
|
-
onClick: () =>
|
|
164
|
+
onClick: () => N("/cart-owner/settings"),
|
|
158
165
|
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",
|
|
159
166
|
children: [/* @__PURE__ */ D(b, { className: "h-3 w-3" }), "Update Location"]
|
|
160
167
|
}), /* @__PURE__ */ D("button", {
|
|
161
168
|
type: "button",
|
|
162
|
-
onClick:
|
|
163
|
-
|
|
169
|
+
onClick: pe,
|
|
170
|
+
disabled: U.isPending,
|
|
171
|
+
className: t("inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-60 disabled:cursor-not-allowed", G ? "bg-status-error-bg-subtle text-status-error-text hover:bg-status-error-bg-subtle" : "bg-status-success-bg-subtle text-status-success-text hover:bg-status-success-bg-subtle"),
|
|
164
172
|
children: G ? "Close Service" : "Open Service"
|
|
165
173
|
})]
|
|
166
174
|
})]
|
|
167
175
|
})
|
|
168
176
|
}),
|
|
169
|
-
/* @__PURE__ */ O(
|
|
177
|
+
/* @__PURE__ */ O(le, { children: [/* @__PURE__ */ D("h2", {
|
|
170
178
|
className: "text-base font-semibold text-text-primary mb-3",
|
|
171
179
|
children: "Today's Performance"
|
|
172
180
|
}), /* @__PURE__ */ D("div", {
|
|
@@ -254,21 +262,27 @@ var A = () => {
|
|
|
254
262
|
},
|
|
255
263
|
{
|
|
256
264
|
label: "Analytics",
|
|
257
|
-
icon:
|
|
265
|
+
icon: re,
|
|
258
266
|
color: "bg-accent-purple-subtle text-text-primary",
|
|
259
267
|
path: "/cart-owner/analytics"
|
|
260
268
|
},
|
|
261
269
|
{
|
|
262
270
|
label: "Staff",
|
|
263
|
-
icon:
|
|
271
|
+
icon: oe,
|
|
264
272
|
color: "bg-accent-purple-subtle text-text-primary",
|
|
265
273
|
path: "/cart-owner/staff"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
label: "Raise Capital",
|
|
277
|
+
icon: E,
|
|
278
|
+
color: "bg-accent-purple-subtle text-text-primary",
|
|
279
|
+
path: "/cart-owner/list-investment"
|
|
266
280
|
}
|
|
267
281
|
].map((e) => {
|
|
268
282
|
let n = e.icon;
|
|
269
283
|
return /* @__PURE__ */ O("button", {
|
|
270
284
|
type: "button",
|
|
271
|
-
onClick: () =>
|
|
285
|
+
onClick: () => N(e.path),
|
|
272
286
|
className: t("flex flex-col items-center gap-2 rounded-lg p-4 transition-colors hover:opacity-80", e.color),
|
|
273
287
|
children: [/* @__PURE__ */ D(n, { className: "h-5 w-5" }), /* @__PURE__ */ D("span", {
|
|
274
288
|
className: "text-xs font-medium text-center",
|
|
@@ -284,7 +298,7 @@ var A = () => {
|
|
|
284
298
|
children: "Recent Orders"
|
|
285
299
|
}), /* @__PURE__ */ D("button", {
|
|
286
300
|
type: "button",
|
|
287
|
-
onClick: () =>
|
|
301
|
+
onClick: () => N("/cart-owner/orders"),
|
|
288
302
|
className: "text-xs text-text-secondary hover:text-text-primary transition-colors",
|
|
289
303
|
children: "View All Orders"
|
|
290
304
|
})]
|
|
@@ -306,7 +320,7 @@ var A = () => {
|
|
|
306
320
|
className: "font-semibold text-text-primary text-sm",
|
|
307
321
|
children: ["#", e.id.slice(0, 8)]
|
|
308
322
|
}), /* @__PURE__ */ D("span", {
|
|
309
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium capitalize",
|
|
323
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium capitalize", A[e.status] || "bg-bg-sunken text-text-secondary"),
|
|
310
324
|
children: e.status
|
|
311
325
|
})]
|
|
312
326
|
}),
|
|
@@ -321,7 +335,7 @@ var A = () => {
|
|
|
321
335
|
children: l(e.total, { minimumFractionDigits: 0 })
|
|
322
336
|
}), /* @__PURE__ */ O("span", {
|
|
323
337
|
className: "flex items-center gap-1",
|
|
324
|
-
children: [/* @__PURE__ */ D(
|
|
338
|
+
children: [/* @__PURE__ */ D(h, { className: "h-3 w-3" }), M(e.orderDate)]
|
|
325
339
|
})]
|
|
326
340
|
})
|
|
327
341
|
]
|
|
@@ -330,9 +344,9 @@ var A = () => {
|
|
|
330
344
|
children: [
|
|
331
345
|
/* @__PURE__ */ O("button", {
|
|
332
346
|
type: "button",
|
|
333
|
-
onClick: () =>
|
|
347
|
+
onClick: () => N("/cart-owner/orders"),
|
|
334
348
|
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",
|
|
335
|
-
children: [/* @__PURE__ */ D(
|
|
349
|
+
children: [/* @__PURE__ */ D(_, { className: "h-3 w-3" }), "View"]
|
|
336
350
|
}),
|
|
337
351
|
e.status === "pending" && /* @__PURE__ */ O("button", {
|
|
338
352
|
type: "button",
|
|
@@ -360,7 +374,7 @@ var A = () => {
|
|
|
360
374
|
children: "Revenue (Last 7 Days)"
|
|
361
375
|
}), /* @__PURE__ */ D("button", {
|
|
362
376
|
type: "button",
|
|
363
|
-
onClick: () =>
|
|
377
|
+
onClick: () => N("/cart-owner/analytics"),
|
|
364
378
|
className: "text-xs text-text-secondary hover:text-text-primary transition-colors",
|
|
365
379
|
children: "View Analytics"
|
|
366
380
|
})]
|
|
@@ -476,7 +490,7 @@ var A = () => {
|
|
|
476
490
|
className: "flex items-center justify-between mb-4",
|
|
477
491
|
children: /* @__PURE__ */ O("h3", {
|
|
478
492
|
className: "text-base font-semibold text-text-primary flex items-center gap-2",
|
|
479
|
-
children: [/* @__PURE__ */ D(
|
|
493
|
+
children: [/* @__PURE__ */ D(ie, { className: "h-4 w-4" }), "Notifications"]
|
|
480
494
|
})
|
|
481
495
|
}), /* @__PURE__ */ D("p", {
|
|
482
496
|
className: "text-xs text-text-secondary",
|
|
@@ -487,7 +501,7 @@ var A = () => {
|
|
|
487
501
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
|
|
488
502
|
children: [/* @__PURE__ */ O("h3", {
|
|
489
503
|
className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
|
|
490
|
-
children: [/* @__PURE__ */ D(
|
|
504
|
+
children: [/* @__PURE__ */ D(v, { className: "h-4 w-4 text-status-warning-text" }), "Top Selling Items"]
|
|
491
505
|
}), X.length === 0 ? /* @__PURE__ */ D("p", {
|
|
492
506
|
className: "text-xs text-text-secondary",
|
|
493
507
|
children: "No sales yet. Your best sellers will appear here once orders come in."
|
|
@@ -523,19 +537,19 @@ var A = () => {
|
|
|
523
537
|
className: "flex items-center justify-between mb-4",
|
|
524
538
|
children: [/* @__PURE__ */ O("h3", {
|
|
525
539
|
className: "text-base font-semibold text-text-primary flex items-center gap-2",
|
|
526
|
-
children: [/* @__PURE__ */ D(
|
|
540
|
+
children: [/* @__PURE__ */ D(se, { className: "h-4 w-4" }), "Staff Overview"]
|
|
527
541
|
}), /* @__PURE__ */ D("button", {
|
|
528
542
|
type: "button",
|
|
529
|
-
onClick: () =>
|
|
543
|
+
onClick: () => N("/cart-owner/staff"),
|
|
530
544
|
className: "text-xs text-text-secondary hover:text-text-primary transition-colors",
|
|
531
545
|
children: "Manage"
|
|
532
546
|
})]
|
|
533
|
-
}),
|
|
547
|
+
}), H.length === 0 ? /* @__PURE__ */ D("p", {
|
|
534
548
|
className: "text-xs text-text-secondary",
|
|
535
549
|
children: "No staff added yet. Invite workers and delivery partners from Staff."
|
|
536
550
|
}) : /* @__PURE__ */ D("div", {
|
|
537
551
|
className: "space-y-3",
|
|
538
|
-
children:
|
|
552
|
+
children: H.map((e) => /* @__PURE__ */ O("div", {
|
|
539
553
|
className: "flex items-center justify-between",
|
|
540
554
|
children: [/* @__PURE__ */ O("div", {
|
|
541
555
|
className: "flex items-center gap-2",
|
|
@@ -588,7 +602,7 @@ var A = () => {
|
|
|
588
602
|
children: "Reviews"
|
|
589
603
|
}), /* @__PURE__ */ D("span", {
|
|
590
604
|
className: "text-sm font-semibold text-text-primary",
|
|
591
|
-
children:
|
|
605
|
+
children: V.length
|
|
592
606
|
})]
|
|
593
607
|
})
|
|
594
608
|
]
|
|
@@ -609,7 +623,7 @@ var A = () => {
|
|
|
609
623
|
},
|
|
610
624
|
{
|
|
611
625
|
label: "Business Profile",
|
|
612
|
-
icon:
|
|
626
|
+
icon: g,
|
|
613
627
|
path: "/cart-owner/profile"
|
|
614
628
|
},
|
|
615
629
|
{
|
|
@@ -621,12 +635,12 @@ var A = () => {
|
|
|
621
635
|
let t = e.icon;
|
|
622
636
|
return /* @__PURE__ */ O("button", {
|
|
623
637
|
type: "button",
|
|
624
|
-
onClick: () =>
|
|
638
|
+
onClick: () => N(e.path),
|
|
625
639
|
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",
|
|
626
640
|
children: [/* @__PURE__ */ O("span", {
|
|
627
641
|
className: "flex items-center gap-2",
|
|
628
642
|
children: [/* @__PURE__ */ D(t, { className: "h-3.5 w-3.5" }), e.label]
|
|
629
|
-
}), /* @__PURE__ */ D(
|
|
643
|
+
}), /* @__PURE__ */ D(ae, { className: "h-3 w-3 text-text-secondary" })]
|
|
630
644
|
}, e.label);
|
|
631
645
|
})
|
|
632
646
|
})]
|
|
@@ -643,7 +657,7 @@ var A = () => {
|
|
|
643
657
|
className: "space-y-2 text-xs",
|
|
644
658
|
children: J.map((e) => /* @__PURE__ */ O("div", {
|
|
645
659
|
className: "flex items-center gap-2",
|
|
646
|
-
children: [/* @__PURE__ */ D(
|
|
660
|
+
children: [/* @__PURE__ */ D(p, { className: "h-3.5 w-3.5 text-text-secondary shrink-0" }), /* @__PURE__ */ O("span", {
|
|
647
661
|
className: "text-text-secondary truncate",
|
|
648
662
|
children: [
|
|
649
663
|
"Order #",
|
|
@@ -661,7 +675,7 @@ var A = () => {
|
|
|
661
675
|
]
|
|
662
676
|
})
|
|
663
677
|
}) : /* @__PURE__ */ D(n, {
|
|
664
|
-
title:
|
|
678
|
+
title: k(),
|
|
665
679
|
description: "Manage your service provider operations",
|
|
666
680
|
children: /* @__PURE__ */ D(r, {
|
|
667
681
|
illustration: "empty-generic",
|
|
@@ -669,7 +683,7 @@ var A = () => {
|
|
|
669
683
|
description: "You don't have a service provider yet. Set up your cart, add your offerings and configure your service to start taking orders.",
|
|
670
684
|
action: /* @__PURE__ */ O("button", {
|
|
671
685
|
type: "button",
|
|
672
|
-
onClick: () =>
|
|
686
|
+
onClick: () => N("/cart-owner/service-config"),
|
|
673
687
|
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",
|
|
674
688
|
children: [/* @__PURE__ */ D(S, { className: "h-4 w-4" }), "Set up your cart"]
|
|
675
689
|
})
|
|
@@ -677,6 +691,6 @@ var A = () => {
|
|
|
677
691
|
});
|
|
678
692
|
};
|
|
679
693
|
//#endregion
|
|
680
|
-
export {
|
|
694
|
+
export { N as CartOwnerDashboard };
|
|
681
695
|
|
|
682
696
|
//# sourceMappingURL=CartOwnerDashboard.js.map
|