@burdenoff/microfe-adaptercloud 2026.625.1 → 2026.625.2
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/adaptercloud/components/PageLayout.js +24 -17
- package/dist/adaptercloud/components/PageLayout.js.map +1 -1
- package/dist/adaptercloud/pages/HomePage.js +18 -16
- package/dist/adaptercloud/pages/HomePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +90 -82
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminDashboard.js +70 -44
- package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +60 -55
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +97 -92
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js +59 -57
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +118 -104
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/CartManagementPage.js +145 -140
- package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/UserManagementPage.js +152 -147
- package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +87 -81
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +179 -165
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +73 -48
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +95 -93
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +110 -107
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +293 -299
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +218 -224
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +122 -128
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/HelpSupportPage.js +248 -244
- package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js +96 -91
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/SettingsPage.js +754 -736
- package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +63 -61
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDetailPage.js +110 -108
- package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +221 -217
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CheckoutPage.js +89 -87
- package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js +410 -381
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +120 -118
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +86 -81
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/FavoritesPage.js +53 -51
- package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +114 -109
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +60 -58
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +87 -72
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/ReviewsPage.js +65 -63
- package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +68 -53
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +63 -61
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +86 -84
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +57 -55
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js +341 -308
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +34 -32
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +48 -46
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +383 -381
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +348 -319
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js +84 -59
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +73 -71
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +76 -74
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +70 -68
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { useAdapterCloud as e } from "../../context/AdapterCloudContext.js";
|
|
2
2
|
import { cn as t } from "../../utils/cn.js";
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { EmptyState as r } from "../../components/EmptyState.js";
|
|
5
|
+
import { useMemo as i, useState as a } from "react";
|
|
6
|
+
import { AlertCircle as o, CheckCircle2 as s, Clock as c, Edit2 as l, Mail as u, Phone as d, Search as f, Star as p, Trash2 as m, UserPlus as h, X as g } from "lucide-react";
|
|
6
7
|
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
8
|
+
import { EmphasisPanel as y } from "@burdenoff/fe-libs/ui";
|
|
7
9
|
//#region src/adaptercloud/pages/cart-owner/StaffManagementPage.tsx
|
|
8
|
-
var
|
|
10
|
+
var b = [
|
|
9
11
|
{
|
|
10
12
|
id: "staff-001",
|
|
11
13
|
firstName: "Ravi",
|
|
@@ -134,7 +136,7 @@ var y = [
|
|
|
134
136
|
currentShift: "08:00 - 16:00",
|
|
135
137
|
shiftsThisWeek: 6
|
|
136
138
|
}
|
|
137
|
-
],
|
|
139
|
+
], x = {
|
|
138
140
|
active: {
|
|
139
141
|
label: "Active",
|
|
140
142
|
color: "text-status-success-text",
|
|
@@ -155,7 +157,7 @@ var y = [
|
|
|
155
157
|
color: "text-status-error-text",
|
|
156
158
|
dot: "bg-status-error-bg-subtle"
|
|
157
159
|
}
|
|
158
|
-
},
|
|
160
|
+
}, S = {
|
|
159
161
|
manager: {
|
|
160
162
|
label: "Manager",
|
|
161
163
|
color: "bg-accent-purple-subtle/20 text-accent-purple"
|
|
@@ -176,15 +178,15 @@ var y = [
|
|
|
176
178
|
label: "Cashier",
|
|
177
179
|
color: "bg-accent-cyan-subtle/20 text-accent-cyan"
|
|
178
180
|
}
|
|
179
|
-
},
|
|
181
|
+
}, C = {
|
|
180
182
|
email: "",
|
|
181
183
|
firstName: "",
|
|
182
184
|
lastName: "",
|
|
183
185
|
phone: "",
|
|
184
186
|
role: "server",
|
|
185
187
|
hourlyRate: 150
|
|
186
|
-
},
|
|
187
|
-
let { navigateTo:
|
|
188
|
+
}, w = () => {
|
|
189
|
+
let { navigateTo: w } = e(), [T, E] = a(b), [D, O] = a(""), [k, A] = a(""), [j, M] = a(""), [N, P] = a("name"), [F, I] = a(!1), [L, R] = a(!1), [z, B] = a(null), [V, H] = a(C), [U, W] = a({
|
|
188
190
|
firstName: "",
|
|
189
191
|
lastName: "",
|
|
190
192
|
email: "",
|
|
@@ -192,20 +194,20 @@ var y = [
|
|
|
192
194
|
role: "server",
|
|
193
195
|
hourlyRate: 150,
|
|
194
196
|
status: "active"
|
|
195
|
-
}), [
|
|
196
|
-
|
|
197
|
+
}), [G, K] = a(null), q = (e, t) => {
|
|
198
|
+
K({
|
|
197
199
|
text: e,
|
|
198
200
|
type: t
|
|
199
|
-
}), setTimeout(() =>
|
|
200
|
-
},
|
|
201
|
-
|
|
202
|
-
let
|
|
203
|
-
let e = [...
|
|
204
|
-
if (
|
|
205
|
-
let t =
|
|
201
|
+
}), setTimeout(() => K(null), 3e3);
|
|
202
|
+
}, J = T.filter((e) => e.status === "active").length, Y = T.filter((e) => e.status === "on-leave").length, X = T.length > 0 ? (T.reduce((e, t) => e + t.performance.rating, 0) / T.length).toFixed(1) : "0";
|
|
203
|
+
T.reduce((e, t) => e + t.totalEarnings, 0);
|
|
204
|
+
let Z = i(() => {
|
|
205
|
+
let e = [...T];
|
|
206
|
+
if (D) {
|
|
207
|
+
let t = D.toLowerCase();
|
|
206
208
|
e = e.filter((e) => `${e.firstName} ${e.lastName}`.toLowerCase().includes(t) || e.email.toLowerCase().includes(t) || e.phone.includes(t));
|
|
207
209
|
}
|
|
208
|
-
switch (
|
|
210
|
+
switch (k && (e = e.filter((e) => e.role === k)), j && (e = e.filter((e) => e.status === j)), N) {
|
|
209
211
|
case "name":
|
|
210
212
|
e.sort((e, t) => `${e.firstName} ${e.lastName}`.localeCompare(`${t.firstName} ${t.lastName}`));
|
|
211
213
|
break;
|
|
@@ -221,19 +223,19 @@ var y = [
|
|
|
221
223
|
}
|
|
222
224
|
return e;
|
|
223
225
|
}, [
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
]),
|
|
230
|
-
if (!
|
|
231
|
-
|
|
226
|
+
T,
|
|
227
|
+
D,
|
|
228
|
+
k,
|
|
229
|
+
j,
|
|
230
|
+
N
|
|
231
|
+
]), Q = () => {
|
|
232
|
+
if (!V.email || !V.firstName || !V.lastName) {
|
|
233
|
+
q("Please fill in all required fields", "error");
|
|
232
234
|
return;
|
|
233
235
|
}
|
|
234
236
|
let e = {
|
|
235
237
|
id: `staff-${Date.now()}`,
|
|
236
|
-
...
|
|
238
|
+
...V,
|
|
237
239
|
status: "active",
|
|
238
240
|
dateJoined: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
239
241
|
hoursWorked: 0,
|
|
@@ -246,9 +248,9 @@ var y = [
|
|
|
246
248
|
},
|
|
247
249
|
shiftsThisWeek: 0
|
|
248
250
|
};
|
|
249
|
-
|
|
250
|
-
},
|
|
251
|
-
|
|
251
|
+
E((t) => [...t, e]), I(!1), H(C), q("Staff member invited successfully", "success");
|
|
252
|
+
}, $ = (e) => {
|
|
253
|
+
B(e), W({
|
|
252
254
|
firstName: e.firstName,
|
|
253
255
|
lastName: e.lastName,
|
|
254
256
|
email: e.email,
|
|
@@ -256,14 +258,14 @@ var y = [
|
|
|
256
258
|
role: e.role,
|
|
257
259
|
hourlyRate: e.hourlyRate,
|
|
258
260
|
status: e.status
|
|
259
|
-
}),
|
|
260
|
-
},
|
|
261
|
-
|
|
261
|
+
}), R(!0);
|
|
262
|
+
}, ee = () => {
|
|
263
|
+
z && (E((e) => e.map((e) => e.id === z.id ? {
|
|
262
264
|
...e,
|
|
263
|
-
...
|
|
264
|
-
} : e)),
|
|
265
|
-
},
|
|
266
|
-
|
|
265
|
+
...U
|
|
266
|
+
} : e)), R(!1), q("Staff member updated successfully", "success"));
|
|
267
|
+
}, te = (e) => {
|
|
268
|
+
E((t) => t.map((t) => {
|
|
267
269
|
if (t.id === e) {
|
|
268
270
|
let e = t.status === "active" ? "inactive" : "active";
|
|
269
271
|
return {
|
|
@@ -272,40 +274,41 @@ var y = [
|
|
|
272
274
|
};
|
|
273
275
|
}
|
|
274
276
|
return t;
|
|
275
|
-
})),
|
|
276
|
-
},
|
|
277
|
-
confirm("Are you sure you want to remove this staff member?") && (
|
|
277
|
+
})), q("Staff status updated", "success");
|
|
278
|
+
}, ne = (e) => {
|
|
279
|
+
confirm("Are you sure you want to remove this staff member?") && (E((t) => t.filter((t) => t.id !== e)), q("Staff member removed", "success"));
|
|
278
280
|
};
|
|
279
281
|
return /* @__PURE__ */ v(n, {
|
|
280
282
|
title: "Staff Management",
|
|
281
283
|
description: "Manage your workers, delivery partners, and shifts",
|
|
284
|
+
purpose: "Build and run your team — invite workers and delivery partners, set their roles, and schedule shifts so you always have enough hands during your busy hours. A well-staffed cart fulfils orders faster.",
|
|
282
285
|
actions: /* @__PURE__ */ v("button", {
|
|
283
286
|
type: "button",
|
|
284
287
|
onClick: () => {
|
|
285
|
-
|
|
288
|
+
H(C), I(!0);
|
|
286
289
|
},
|
|
287
290
|
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",
|
|
288
|
-
children: [/* @__PURE__ */ _(
|
|
291
|
+
children: [/* @__PURE__ */ _(h, { className: "h-4 w-4" }), "Invite Staff"]
|
|
289
292
|
}),
|
|
290
293
|
children: [
|
|
291
294
|
/* @__PURE__ */ v("div", {
|
|
292
295
|
className: "space-y-4",
|
|
293
296
|
children: [
|
|
294
|
-
|
|
295
|
-
className: t("flex items-center gap-2 rounded-lg border p-3",
|
|
296
|
-
children: [
|
|
297
|
-
className: t("text-sm font-medium",
|
|
298
|
-
children:
|
|
297
|
+
G && /* @__PURE__ */ v("div", {
|
|
298
|
+
className: t("flex items-center gap-2 rounded-lg border p-3", G.type === "success" ? "border-status-success-border/30 bg-status-success-bg-subtle/10" : "border-status-error-border/30 bg-status-error-bg-subtle/10"),
|
|
299
|
+
children: [G.type === "success" ? /* @__PURE__ */ _(s, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ _(o, { className: "h-4 w-4 text-status-error-text" }), /* @__PURE__ */ _("span", {
|
|
300
|
+
className: t("text-sm font-medium", G.type === "success" ? "text-status-success-text" : "text-status-error-text"),
|
|
301
|
+
children: G.text
|
|
299
302
|
})]
|
|
300
303
|
}),
|
|
301
|
-
/* @__PURE__ */ v("div", {
|
|
304
|
+
/* @__PURE__ */ _(y, { children: /* @__PURE__ */ v("div", {
|
|
302
305
|
className: "grid grid-cols-2 sm:grid-cols-4 gap-3",
|
|
303
306
|
children: [
|
|
304
307
|
/* @__PURE__ */ v("div", {
|
|
305
308
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
306
309
|
children: [/* @__PURE__ */ _("p", {
|
|
307
310
|
className: "text-2xl font-bold text-text-primary",
|
|
308
|
-
children:
|
|
311
|
+
children: T.length
|
|
309
312
|
}), /* @__PURE__ */ _("p", {
|
|
310
313
|
className: "text-xs text-text-secondary",
|
|
311
314
|
children: "Total Staff"
|
|
@@ -315,7 +318,7 @@ var y = [
|
|
|
315
318
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
316
319
|
children: [/* @__PURE__ */ _("p", {
|
|
317
320
|
className: "text-2xl font-bold text-status-success-text",
|
|
318
|
-
children:
|
|
321
|
+
children: J
|
|
319
322
|
}), /* @__PURE__ */ _("p", {
|
|
320
323
|
className: "text-xs text-text-secondary",
|
|
321
324
|
children: "Active Now"
|
|
@@ -325,7 +328,7 @@ var y = [
|
|
|
325
328
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
326
329
|
children: [/* @__PURE__ */ _("p", {
|
|
327
330
|
className: "text-2xl font-bold text-status-warning-text",
|
|
328
|
-
children:
|
|
331
|
+
children: Y
|
|
329
332
|
}), /* @__PURE__ */ _("p", {
|
|
330
333
|
className: "text-xs text-text-secondary",
|
|
331
334
|
children: "On Leave"
|
|
@@ -335,14 +338,14 @@ var y = [
|
|
|
335
338
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
336
339
|
children: [/* @__PURE__ */ _("p", {
|
|
337
340
|
className: "text-2xl font-bold text-text-primary",
|
|
338
|
-
children:
|
|
341
|
+
children: X
|
|
339
342
|
}), /* @__PURE__ */ _("p", {
|
|
340
343
|
className: "text-xs text-text-secondary",
|
|
341
344
|
children: "Avg. Rating"
|
|
342
345
|
})]
|
|
343
346
|
})
|
|
344
347
|
]
|
|
345
|
-
}),
|
|
348
|
+
}) }),
|
|
346
349
|
/* @__PURE__ */ _("div", {
|
|
347
350
|
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
348
351
|
children: /* @__PURE__ */ v("div", {
|
|
@@ -350,41 +353,41 @@ var y = [
|
|
|
350
353
|
children: [
|
|
351
354
|
/* @__PURE__ */ v("div", {
|
|
352
355
|
className: "relative",
|
|
353
|
-
children: [/* @__PURE__ */ _(
|
|
356
|
+
children: [/* @__PURE__ */ _(f, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _("input", {
|
|
354
357
|
type: "text",
|
|
355
358
|
placeholder: "Search staff...",
|
|
356
|
-
value:
|
|
357
|
-
onChange: (e) =>
|
|
359
|
+
value: D,
|
|
360
|
+
onChange: (e) => O(e.target.value),
|
|
358
361
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface pl-10 pr-4 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
359
362
|
})]
|
|
360
363
|
}),
|
|
361
364
|
/* @__PURE__ */ v("select", {
|
|
362
|
-
value:
|
|
363
|
-
onChange: (e) =>
|
|
365
|
+
value: k,
|
|
366
|
+
onChange: (e) => A(e.target.value),
|
|
364
367
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
365
368
|
children: [/* @__PURE__ */ _("option", {
|
|
366
369
|
value: "",
|
|
367
370
|
children: "All Roles"
|
|
368
|
-
}), Object.entries(
|
|
371
|
+
}), Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
369
372
|
value: e,
|
|
370
373
|
children: t.label
|
|
371
374
|
}, e))]
|
|
372
375
|
}),
|
|
373
376
|
/* @__PURE__ */ v("select", {
|
|
374
|
-
value:
|
|
375
|
-
onChange: (e) =>
|
|
377
|
+
value: j,
|
|
378
|
+
onChange: (e) => M(e.target.value),
|
|
376
379
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
377
380
|
children: [/* @__PURE__ */ _("option", {
|
|
378
381
|
value: "",
|
|
379
382
|
children: "All Status"
|
|
380
|
-
}), Object.entries(
|
|
383
|
+
}), Object.entries(x).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
381
384
|
value: e,
|
|
382
385
|
children: t.label
|
|
383
386
|
}, e))]
|
|
384
387
|
}),
|
|
385
388
|
/* @__PURE__ */ v("select", {
|
|
386
|
-
value:
|
|
387
|
-
onChange: (e) =>
|
|
389
|
+
value: N,
|
|
390
|
+
onChange: (e) => P(e.target.value),
|
|
388
391
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
389
392
|
children: [
|
|
390
393
|
/* @__PURE__ */ _("option", {
|
|
@@ -408,23 +411,14 @@ var y = [
|
|
|
408
411
|
]
|
|
409
412
|
})
|
|
410
413
|
}),
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
/* @__PURE__ */ _("p", {
|
|
416
|
-
className: "text-sm font-medium text-text-primary",
|
|
417
|
-
children: "No staff members found"
|
|
418
|
-
}),
|
|
419
|
-
/* @__PURE__ */ _("p", {
|
|
420
|
-
className: "text-xs text-text-secondary mt-1",
|
|
421
|
-
children: "Try adjusting your filters"
|
|
422
|
-
})
|
|
423
|
-
]
|
|
414
|
+
Z.length === 0 ? /* @__PURE__ */ _(r, {
|
|
415
|
+
illustration: "empty-people",
|
|
416
|
+
title: "No staff members found",
|
|
417
|
+
description: T.length === 0 ? "Invite your first worker or delivery partner to get started." : "No staff match your filters. Try adjusting them."
|
|
424
418
|
}) : /* @__PURE__ */ _("div", {
|
|
425
419
|
className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm divide-y divide-border",
|
|
426
|
-
children:
|
|
427
|
-
let n =
|
|
420
|
+
children: Z.map((e) => {
|
|
421
|
+
let n = x[e.status], r = S[e.role];
|
|
428
422
|
return /* @__PURE__ */ v("div", {
|
|
429
423
|
className: "p-4 sm:p-5 hover:bg-bg-sunken/30 transition-colors",
|
|
430
424
|
children: [/* @__PURE__ */ v("div", {
|
|
@@ -463,10 +457,10 @@ var y = [
|
|
|
463
457
|
className: "flex items-center gap-3 mt-1 text-xs text-text-secondary flex-wrap",
|
|
464
458
|
children: [/* @__PURE__ */ v("span", {
|
|
465
459
|
className: "flex items-center gap-1",
|
|
466
|
-
children: [/* @__PURE__ */ _(
|
|
460
|
+
children: [/* @__PURE__ */ _(u, { className: "h-3 w-3" }), e.email]
|
|
467
461
|
}), /* @__PURE__ */ v("span", {
|
|
468
462
|
className: "flex items-center gap-1",
|
|
469
|
-
children: [/* @__PURE__ */ _(
|
|
463
|
+
children: [/* @__PURE__ */ _(d, { className: "h-3 w-3" }), e.phone]
|
|
470
464
|
})]
|
|
471
465
|
})]
|
|
472
466
|
})]
|
|
@@ -479,7 +473,7 @@ var y = [
|
|
|
479
473
|
className: "text-center",
|
|
480
474
|
children: [/* @__PURE__ */ v("p", {
|
|
481
475
|
className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
|
|
482
|
-
children: [/* @__PURE__ */ _(
|
|
476
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), e.performance.rating]
|
|
483
477
|
}), /* @__PURE__ */ _("p", {
|
|
484
478
|
className: "text-text-secondary",
|
|
485
479
|
children: "Rating"
|
|
@@ -509,7 +503,7 @@ var y = [
|
|
|
509
503
|
className: "text-center",
|
|
510
504
|
children: [/* @__PURE__ */ v("p", {
|
|
511
505
|
className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
|
|
512
|
-
children: [/* @__PURE__ */ _(
|
|
506
|
+
children: [/* @__PURE__ */ _(c, { className: "h-3 w-3 text-text-secondary" }), e.currentShift]
|
|
513
507
|
}), /* @__PURE__ */ _("p", {
|
|
514
508
|
className: "text-text-secondary",
|
|
515
509
|
children: "Shift"
|
|
@@ -521,24 +515,24 @@ var y = [
|
|
|
521
515
|
children: [
|
|
522
516
|
/* @__PURE__ */ _("button", {
|
|
523
517
|
type: "button",
|
|
524
|
-
onClick: () =>
|
|
518
|
+
onClick: () => te(e.id),
|
|
525
519
|
className: t("h-6 w-11 rounded-full transition-colors relative", e.status === "active" ? "bg-status-success-bg-subtle" : "bg-muted-foreground/30"),
|
|
526
520
|
title: e.status === "active" ? "Deactivate" : "Activate",
|
|
527
521
|
children: /* @__PURE__ */ _("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", e.status === "active" ? "translate-x-5" : "translate-x-0.5") })
|
|
528
522
|
}),
|
|
529
523
|
/* @__PURE__ */ _("button", {
|
|
530
524
|
type: "button",
|
|
531
|
-
onClick: () =>
|
|
525
|
+
onClick: () => $(e),
|
|
532
526
|
className: "rounded p-1.5 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
|
|
533
527
|
title: "Edit",
|
|
534
|
-
children: /* @__PURE__ */ _(
|
|
528
|
+
children: /* @__PURE__ */ _(l, { className: "h-4 w-4" })
|
|
535
529
|
}),
|
|
536
530
|
/* @__PURE__ */ _("button", {
|
|
537
531
|
type: "button",
|
|
538
|
-
onClick: () =>
|
|
532
|
+
onClick: () => ne(e.id),
|
|
539
533
|
className: "rounded p-1.5 text-text-secondary hover:bg-status-error-bg-subtle/10 hover:text-status-error-text transition-colors",
|
|
540
534
|
title: "Remove",
|
|
541
|
-
children: /* @__PURE__ */ _(
|
|
535
|
+
children: /* @__PURE__ */ _(m, { className: "h-4 w-4" })
|
|
542
536
|
})
|
|
543
537
|
]
|
|
544
538
|
})]
|
|
@@ -548,13 +542,13 @@ var y = [
|
|
|
548
542
|
children: [
|
|
549
543
|
/* @__PURE__ */ v("span", {
|
|
550
544
|
className: "flex items-center gap-0.5",
|
|
551
|
-
children: [/* @__PURE__ */ _(
|
|
545
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), e.performance.rating]
|
|
552
546
|
}),
|
|
553
547
|
/* @__PURE__ */ v("span", { children: [e.performance.tasksCompleted, " tasks"] }),
|
|
554
548
|
/* @__PURE__ */ v("span", { children: [e.performance.punctuality, "% on time"] }),
|
|
555
549
|
e.currentShift && /* @__PURE__ */ v("span", {
|
|
556
550
|
className: "flex items-center gap-0.5",
|
|
557
|
-
children: [/* @__PURE__ */ _(
|
|
551
|
+
children: [/* @__PURE__ */ _(c, { className: "h-3 w-3" }), e.currentShift]
|
|
558
552
|
}),
|
|
559
553
|
/* @__PURE__ */ v("span", { children: [e.shiftsThisWeek, " shifts/wk"] })
|
|
560
554
|
]
|
|
@@ -564,7 +558,7 @@ var y = [
|
|
|
564
558
|
})
|
|
565
559
|
]
|
|
566
560
|
}),
|
|
567
|
-
|
|
561
|
+
F && /* @__PURE__ */ _("div", {
|
|
568
562
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
569
563
|
children: /* @__PURE__ */ _("div", {
|
|
570
564
|
className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
|
|
@@ -578,7 +572,7 @@ var y = [
|
|
|
578
572
|
children: "Invite Staff Member"
|
|
579
573
|
}), /* @__PURE__ */ _("button", {
|
|
580
574
|
type: "button",
|
|
581
|
-
onClick: () =>
|
|
575
|
+
onClick: () => I(!1),
|
|
582
576
|
className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
|
|
583
577
|
children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
|
|
584
578
|
})]
|
|
@@ -593,8 +587,8 @@ var y = [
|
|
|
593
587
|
children: "First Name *"
|
|
594
588
|
}), /* @__PURE__ */ _("input", {
|
|
595
589
|
type: "text",
|
|
596
|
-
value:
|
|
597
|
-
onChange: (e) =>
|
|
590
|
+
value: V.firstName,
|
|
591
|
+
onChange: (e) => H((t) => ({
|
|
598
592
|
...t,
|
|
599
593
|
firstName: e.target.value
|
|
600
594
|
})),
|
|
@@ -604,8 +598,8 @@ var y = [
|
|
|
604
598
|
children: "Last Name *"
|
|
605
599
|
}), /* @__PURE__ */ _("input", {
|
|
606
600
|
type: "text",
|
|
607
|
-
value:
|
|
608
|
-
onChange: (e) =>
|
|
601
|
+
value: V.lastName,
|
|
602
|
+
onChange: (e) => H((t) => ({
|
|
609
603
|
...t,
|
|
610
604
|
lastName: e.target.value
|
|
611
605
|
})),
|
|
@@ -617,8 +611,8 @@ var y = [
|
|
|
617
611
|
children: "Email *"
|
|
618
612
|
}), /* @__PURE__ */ _("input", {
|
|
619
613
|
type: "email",
|
|
620
|
-
value:
|
|
621
|
-
onChange: (e) =>
|
|
614
|
+
value: V.email,
|
|
615
|
+
onChange: (e) => H((t) => ({
|
|
622
616
|
...t,
|
|
623
617
|
email: e.target.value
|
|
624
618
|
})),
|
|
@@ -629,8 +623,8 @@ var y = [
|
|
|
629
623
|
children: "Phone"
|
|
630
624
|
}), /* @__PURE__ */ _("input", {
|
|
631
625
|
type: "tel",
|
|
632
|
-
value:
|
|
633
|
-
onChange: (e) =>
|
|
626
|
+
value: V.phone,
|
|
627
|
+
onChange: (e) => H((t) => ({
|
|
634
628
|
...t,
|
|
635
629
|
phone: e.target.value
|
|
636
630
|
})),
|
|
@@ -642,13 +636,13 @@ var y = [
|
|
|
642
636
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
643
637
|
children: "Role"
|
|
644
638
|
}), /* @__PURE__ */ _("select", {
|
|
645
|
-
value:
|
|
646
|
-
onChange: (e) =>
|
|
639
|
+
value: V.role,
|
|
640
|
+
onChange: (e) => H((t) => ({
|
|
647
641
|
...t,
|
|
648
642
|
role: e.target.value
|
|
649
643
|
})),
|
|
650
644
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
651
|
-
children: Object.entries(
|
|
645
|
+
children: Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
652
646
|
value: e,
|
|
653
647
|
children: t.label
|
|
654
648
|
}, e))
|
|
@@ -657,8 +651,8 @@ var y = [
|
|
|
657
651
|
children: "Hourly Rate (₹)"
|
|
658
652
|
}), /* @__PURE__ */ _("input", {
|
|
659
653
|
type: "number",
|
|
660
|
-
value:
|
|
661
|
-
onChange: (e) =>
|
|
654
|
+
value: V.hourlyRate,
|
|
655
|
+
onChange: (e) => H((t) => ({
|
|
662
656
|
...t,
|
|
663
657
|
hourlyRate: parseInt(e.target.value) || 0
|
|
664
658
|
})),
|
|
@@ -671,12 +665,12 @@ var y = [
|
|
|
671
665
|
className: "flex gap-3 mt-6",
|
|
672
666
|
children: [/* @__PURE__ */ _("button", {
|
|
673
667
|
type: "button",
|
|
674
|
-
onClick: () =>
|
|
668
|
+
onClick: () => I(!1),
|
|
675
669
|
className: "flex-1 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken",
|
|
676
670
|
children: "Cancel"
|
|
677
671
|
}), /* @__PURE__ */ _("button", {
|
|
678
672
|
type: "button",
|
|
679
|
-
onClick:
|
|
673
|
+
onClick: Q,
|
|
680
674
|
className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
|
|
681
675
|
children: "Send Invite"
|
|
682
676
|
})]
|
|
@@ -685,7 +679,7 @@ var y = [
|
|
|
685
679
|
})
|
|
686
680
|
})
|
|
687
681
|
}),
|
|
688
|
-
|
|
682
|
+
L && z && /* @__PURE__ */ _("div", {
|
|
689
683
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
690
684
|
children: /* @__PURE__ */ _("div", {
|
|
691
685
|
className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
|
|
@@ -699,7 +693,7 @@ var y = [
|
|
|
699
693
|
children: "Edit Staff Member"
|
|
700
694
|
}), /* @__PURE__ */ _("button", {
|
|
701
695
|
type: "button",
|
|
702
|
-
onClick: () =>
|
|
696
|
+
onClick: () => R(!1),
|
|
703
697
|
className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
|
|
704
698
|
children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
|
|
705
699
|
})]
|
|
@@ -714,8 +708,8 @@ var y = [
|
|
|
714
708
|
children: "First Name"
|
|
715
709
|
}), /* @__PURE__ */ _("input", {
|
|
716
710
|
type: "text",
|
|
717
|
-
value:
|
|
718
|
-
onChange: (e) =>
|
|
711
|
+
value: U.firstName,
|
|
712
|
+
onChange: (e) => W((t) => ({
|
|
719
713
|
...t,
|
|
720
714
|
firstName: e.target.value
|
|
721
715
|
})),
|
|
@@ -725,8 +719,8 @@ var y = [
|
|
|
725
719
|
children: "Last Name"
|
|
726
720
|
}), /* @__PURE__ */ _("input", {
|
|
727
721
|
type: "text",
|
|
728
|
-
value:
|
|
729
|
-
onChange: (e) =>
|
|
722
|
+
value: U.lastName,
|
|
723
|
+
onChange: (e) => W((t) => ({
|
|
730
724
|
...t,
|
|
731
725
|
lastName: e.target.value
|
|
732
726
|
})),
|
|
@@ -738,8 +732,8 @@ var y = [
|
|
|
738
732
|
children: "Email"
|
|
739
733
|
}), /* @__PURE__ */ _("input", {
|
|
740
734
|
type: "email",
|
|
741
|
-
value:
|
|
742
|
-
onChange: (e) =>
|
|
735
|
+
value: U.email,
|
|
736
|
+
onChange: (e) => W((t) => ({
|
|
743
737
|
...t,
|
|
744
738
|
email: e.target.value
|
|
745
739
|
})),
|
|
@@ -750,8 +744,8 @@ var y = [
|
|
|
750
744
|
children: "Phone"
|
|
751
745
|
}), /* @__PURE__ */ _("input", {
|
|
752
746
|
type: "tel",
|
|
753
|
-
value:
|
|
754
|
-
onChange: (e) =>
|
|
747
|
+
value: U.phone,
|
|
748
|
+
onChange: (e) => W((t) => ({
|
|
755
749
|
...t,
|
|
756
750
|
phone: e.target.value
|
|
757
751
|
})),
|
|
@@ -764,13 +758,13 @@ var y = [
|
|
|
764
758
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
765
759
|
children: "Role"
|
|
766
760
|
}), /* @__PURE__ */ _("select", {
|
|
767
|
-
value:
|
|
768
|
-
onChange: (e) =>
|
|
761
|
+
value: U.role,
|
|
762
|
+
onChange: (e) => W((t) => ({
|
|
769
763
|
...t,
|
|
770
764
|
role: e.target.value
|
|
771
765
|
})),
|
|
772
766
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
773
|
-
children: Object.entries(
|
|
767
|
+
children: Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
774
768
|
value: e,
|
|
775
769
|
children: t.label
|
|
776
770
|
}, e))
|
|
@@ -780,8 +774,8 @@ var y = [
|
|
|
780
774
|
children: "Rate (₹/hr)"
|
|
781
775
|
}), /* @__PURE__ */ _("input", {
|
|
782
776
|
type: "number",
|
|
783
|
-
value:
|
|
784
|
-
onChange: (e) =>
|
|
777
|
+
value: U.hourlyRate,
|
|
778
|
+
onChange: (e) => W((t) => ({
|
|
785
779
|
...t,
|
|
786
780
|
hourlyRate: parseInt(e.target.value) || 0
|
|
787
781
|
})),
|
|
@@ -791,13 +785,13 @@ var y = [
|
|
|
791
785
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
792
786
|
children: "Status"
|
|
793
787
|
}), /* @__PURE__ */ _("select", {
|
|
794
|
-
value:
|
|
795
|
-
onChange: (e) =>
|
|
788
|
+
value: U.status,
|
|
789
|
+
onChange: (e) => W((t) => ({
|
|
796
790
|
...t,
|
|
797
791
|
status: e.target.value
|
|
798
792
|
})),
|
|
799
793
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
800
|
-
children: Object.entries(
|
|
794
|
+
children: Object.entries(x).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
801
795
|
value: e,
|
|
802
796
|
children: t.label
|
|
803
797
|
}, e))
|
|
@@ -810,12 +804,12 @@ var y = [
|
|
|
810
804
|
className: "flex gap-3 mt-6",
|
|
811
805
|
children: [/* @__PURE__ */ _("button", {
|
|
812
806
|
type: "button",
|
|
813
|
-
onClick: () =>
|
|
807
|
+
onClick: () => R(!1),
|
|
814
808
|
className: "flex-1 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken",
|
|
815
809
|
children: "Cancel"
|
|
816
810
|
}), /* @__PURE__ */ _("button", {
|
|
817
811
|
type: "button",
|
|
818
|
-
onClick:
|
|
812
|
+
onClick: ee,
|
|
819
813
|
className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
|
|
820
814
|
children: "Save Changes"
|
|
821
815
|
})]
|
|
@@ -828,6 +822,6 @@ var y = [
|
|
|
828
822
|
});
|
|
829
823
|
};
|
|
830
824
|
//#endregion
|
|
831
|
-
export {
|
|
825
|
+
export { w as StaffManagementPage };
|
|
832
826
|
|
|
833
827
|
//# sourceMappingURL=StaffManagementPage.js.map
|