@burdenoff/microfe-kadaikodi 2026.625.1 → 2026.626.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/kadaikodi/pages/HomePage.js +19 -14
- package/dist/kadaikodi/pages/HomePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +118 -83
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +75 -46
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +144 -128
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +255 -237
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js +129 -128
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +178 -150
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +182 -159
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +325 -303
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +500 -469
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +534 -503
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +73 -48
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +103 -96
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +130 -129
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +673 -670
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +517 -514
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +140 -125
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +302 -311
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js +102 -91
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +766 -734
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +366 -356
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +243 -213
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +200 -195
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +95 -89
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +430 -387
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +488 -478
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +523 -512
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +83 -75
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +116 -108
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +67 -61
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +90 -73
- package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +80 -72
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +70 -53
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +289 -255
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +92 -84
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +63 -55
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js +339 -311
- package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +40 -32
- package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +174 -150
- package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +385 -381
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +302 -273
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js +87 -59
- package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +82 -75
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +81 -77
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +78 -71
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
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
|
-
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, PagePurpose as b } from "@burdenoff/fe-libs/ui";
|
|
7
9
|
//#region src/kadaikodi/pages/cart-owner/StaffManagementPage.tsx
|
|
8
|
-
var
|
|
10
|
+
var x = [
|
|
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
|
+
], S = {
|
|
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-text"
|
|
157
159
|
}
|
|
158
|
-
},
|
|
160
|
+
}, C = {
|
|
159
161
|
manager: {
|
|
160
162
|
label: "Manager",
|
|
161
163
|
color: "bg-accent-purple-subtle text-text-primary"
|
|
@@ -176,15 +178,15 @@ var y = [
|
|
|
176
178
|
label: "Cashier",
|
|
177
179
|
color: "bg-[var(--color-accent-soft)] text-text-primary"
|
|
178
180
|
}
|
|
179
|
-
},
|
|
181
|
+
}, w = {
|
|
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
|
+
}, T = () => {
|
|
189
|
+
let { navigateTo: T } = e(), [E, D] = a(x), [O, k] = a(""), [A, j] = a(""), [M, N] = a(""), [P, F] = a("name"), [I, L] = a(!1), [R, z] = a(!1), [B, V] = a(null), [H, U] = a(w), [W, G] = 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
|
+
}), [K, q] = a(null), J = (e, t) => {
|
|
198
|
+
q({
|
|
197
199
|
text: e,
|
|
198
200
|
type: t
|
|
199
|
-
}), setTimeout(() =>
|
|
200
|
-
},
|
|
201
|
-
|
|
202
|
-
let
|
|
203
|
-
let e = [...
|
|
204
|
-
if (
|
|
205
|
-
let t =
|
|
201
|
+
}), setTimeout(() => q(null), 3e3);
|
|
202
|
+
}, Y = E.filter((e) => e.status === "active").length, X = E.filter((e) => e.status === "on-leave").length, Z = E.length > 0 ? (E.reduce((e, t) => e + t.performance.rating, 0) / E.length).toFixed(1) : "0";
|
|
203
|
+
E.reduce((e, t) => e + t.totalEarnings, 0);
|
|
204
|
+
let Q = i(() => {
|
|
205
|
+
let e = [...E];
|
|
206
|
+
if (O) {
|
|
207
|
+
let t = O.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 (A && (e = e.filter((e) => e.role === A)), M && (e = e.filter((e) => e.status === M)), P) {
|
|
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
|
-
w,
|
|
225
226
|
E,
|
|
226
227
|
O,
|
|
227
228
|
A,
|
|
228
|
-
M
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
229
|
+
M,
|
|
230
|
+
P
|
|
231
|
+
]), $ = () => {
|
|
232
|
+
if (!H.email || !H.firstName || !H.lastName) {
|
|
233
|
+
J("Please fill in all required fields", "error");
|
|
232
234
|
return;
|
|
233
235
|
}
|
|
234
236
|
let e = {
|
|
235
237
|
id: `staff-${Date.now()}`,
|
|
236
|
-
...
|
|
238
|
+
...H,
|
|
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
|
+
D((t) => [...t, e]), L(!1), U(w), J("Staff member invited successfully", "success");
|
|
252
|
+
}, ee = (e) => {
|
|
253
|
+
V(e), G({
|
|
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
|
+
}), z(!0);
|
|
262
|
+
}, te = () => {
|
|
263
|
+
B && (D((e) => e.map((e) => e.id === B.id ? {
|
|
262
264
|
...e,
|
|
263
|
-
...
|
|
264
|
-
} : e)),
|
|
265
|
-
},
|
|
266
|
-
|
|
265
|
+
...W
|
|
266
|
+
} : e)), z(!1), J("Staff member updated successfully", "success"));
|
|
267
|
+
}, ne = (e) => {
|
|
268
|
+
D((t) => t.map((t) => {
|
|
267
269
|
if (t.id === e) {
|
|
268
270
|
let e = t.status === "active" ? "inactive" : "active";
|
|
269
271
|
return {
|
|
@@ -272,9 +274,9 @@ 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
|
+
})), J("Staff status updated", "success");
|
|
278
|
+
}, re = (e) => {
|
|
279
|
+
confirm("Are you sure you want to remove this staff member?") && (D((t) => t.filter((t) => t.id !== e)), J("Staff member removed", "success"));
|
|
278
280
|
};
|
|
279
281
|
return /* @__PURE__ */ v(n, {
|
|
280
282
|
title: "Staff Management",
|
|
@@ -282,30 +284,37 @@ var y = [
|
|
|
282
284
|
actions: /* @__PURE__ */ v("button", {
|
|
283
285
|
type: "button",
|
|
284
286
|
onClick: () => {
|
|
285
|
-
|
|
287
|
+
U(w), L(!0);
|
|
286
288
|
},
|
|
287
289
|
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__ */ _(
|
|
290
|
+
children: [/* @__PURE__ */ _(h, { className: "h-4 w-4" }), "Invite Staff"]
|
|
289
291
|
}),
|
|
290
292
|
children: [
|
|
293
|
+
/* @__PURE__ */ _(b, {
|
|
294
|
+
className: "mb-6",
|
|
295
|
+
children: "Your team in one place. Use this page to invite workers and delivery partners, see who's active or on leave right now, manage roles and ratings, and keep shifts covered so orders go out on time. Invite new staff and review performance to build a reliable crew around your cart."
|
|
296
|
+
}),
|
|
291
297
|
/* @__PURE__ */ v("div", {
|
|
292
298
|
className: "space-y-4",
|
|
293
299
|
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:
|
|
300
|
+
K && /* @__PURE__ */ v("div", {
|
|
301
|
+
className: t("flex items-center gap-2 rounded-lg border p-3", K.type === "success" ? "border-status-success-text/30 bg-status-success-bg-subtle" : "border-status-error-text/30 bg-status-error-bg-subtle"),
|
|
302
|
+
children: [K.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", {
|
|
303
|
+
className: t("text-sm font-medium", K.type === "success" ? "text-status-success-text" : "text-status-error-text"),
|
|
304
|
+
children: K.text
|
|
299
305
|
})]
|
|
300
306
|
}),
|
|
301
|
-
/* @__PURE__ */ v("
|
|
307
|
+
/* @__PURE__ */ v(y, { children: [/* @__PURE__ */ _("h2", {
|
|
308
|
+
className: "mb-4 text-base font-semibold text-text-primary",
|
|
309
|
+
children: "Team Overview"
|
|
310
|
+
}), /* @__PURE__ */ v("div", {
|
|
302
311
|
className: "grid grid-cols-2 sm:grid-cols-4 gap-3",
|
|
303
312
|
children: [
|
|
304
313
|
/* @__PURE__ */ v("div", {
|
|
305
314
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
306
315
|
children: [/* @__PURE__ */ _("p", {
|
|
307
316
|
className: "text-2xl font-bold text-text-primary",
|
|
308
|
-
children:
|
|
317
|
+
children: E.length
|
|
309
318
|
}), /* @__PURE__ */ _("p", {
|
|
310
319
|
className: "text-xs text-text-secondary",
|
|
311
320
|
children: "Total Staff"
|
|
@@ -315,7 +324,7 @@ var y = [
|
|
|
315
324
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
316
325
|
children: [/* @__PURE__ */ _("p", {
|
|
317
326
|
className: "text-2xl font-bold text-status-success-text",
|
|
318
|
-
children:
|
|
327
|
+
children: Y
|
|
319
328
|
}), /* @__PURE__ */ _("p", {
|
|
320
329
|
className: "text-xs text-text-secondary",
|
|
321
330
|
children: "Active Now"
|
|
@@ -325,7 +334,7 @@ var y = [
|
|
|
325
334
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
326
335
|
children: [/* @__PURE__ */ _("p", {
|
|
327
336
|
className: "text-2xl font-bold text-status-warning-text",
|
|
328
|
-
children:
|
|
337
|
+
children: X
|
|
329
338
|
}), /* @__PURE__ */ _("p", {
|
|
330
339
|
className: "text-xs text-text-secondary",
|
|
331
340
|
children: "On Leave"
|
|
@@ -335,14 +344,14 @@ var y = [
|
|
|
335
344
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
336
345
|
children: [/* @__PURE__ */ _("p", {
|
|
337
346
|
className: "text-2xl font-bold text-text-primary",
|
|
338
|
-
children:
|
|
347
|
+
children: Z
|
|
339
348
|
}), /* @__PURE__ */ _("p", {
|
|
340
349
|
className: "text-xs text-text-secondary",
|
|
341
350
|
children: "Avg. Rating"
|
|
342
351
|
})]
|
|
343
352
|
})
|
|
344
353
|
]
|
|
345
|
-
}),
|
|
354
|
+
})] }),
|
|
346
355
|
/* @__PURE__ */ _("div", {
|
|
347
356
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
|
|
348
357
|
children: /* @__PURE__ */ v("div", {
|
|
@@ -350,41 +359,41 @@ var y = [
|
|
|
350
359
|
children: [
|
|
351
360
|
/* @__PURE__ */ v("div", {
|
|
352
361
|
className: "relative",
|
|
353
|
-
children: [/* @__PURE__ */ _(
|
|
362
|
+
children: [/* @__PURE__ */ _(f, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _("input", {
|
|
354
363
|
type: "text",
|
|
355
364
|
placeholder: "Search staff...",
|
|
356
|
-
value:
|
|
357
|
-
onChange: (e) =>
|
|
365
|
+
value: O,
|
|
366
|
+
onChange: (e) => k(e.target.value),
|
|
358
367
|
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
368
|
})]
|
|
360
369
|
}),
|
|
361
370
|
/* @__PURE__ */ v("select", {
|
|
362
|
-
value:
|
|
363
|
-
onChange: (e) =>
|
|
371
|
+
value: A,
|
|
372
|
+
onChange: (e) => j(e.target.value),
|
|
364
373
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
365
374
|
children: [/* @__PURE__ */ _("option", {
|
|
366
375
|
value: "",
|
|
367
376
|
children: "All Roles"
|
|
368
|
-
}), Object.entries(
|
|
377
|
+
}), Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
369
378
|
value: e,
|
|
370
379
|
children: t.label
|
|
371
380
|
}, e))]
|
|
372
381
|
}),
|
|
373
382
|
/* @__PURE__ */ v("select", {
|
|
374
|
-
value:
|
|
375
|
-
onChange: (e) =>
|
|
383
|
+
value: M,
|
|
384
|
+
onChange: (e) => N(e.target.value),
|
|
376
385
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
377
386
|
children: [/* @__PURE__ */ _("option", {
|
|
378
387
|
value: "",
|
|
379
388
|
children: "All Status"
|
|
380
|
-
}), Object.entries(
|
|
389
|
+
}), Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
381
390
|
value: e,
|
|
382
391
|
children: t.label
|
|
383
392
|
}, e))]
|
|
384
393
|
}),
|
|
385
394
|
/* @__PURE__ */ v("select", {
|
|
386
|
-
value:
|
|
387
|
-
onChange: (e) =>
|
|
395
|
+
value: P,
|
|
396
|
+
onChange: (e) => F(e.target.value),
|
|
388
397
|
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
389
398
|
children: [
|
|
390
399
|
/* @__PURE__ */ _("option", {
|
|
@@ -408,23 +417,29 @@ var y = [
|
|
|
408
417
|
]
|
|
409
418
|
})
|
|
410
419
|
}),
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
420
|
+
Q.length === 0 ? /* @__PURE__ */ _(r, {
|
|
421
|
+
illustration: O || A || M ? "empty-search" : "empty-people",
|
|
422
|
+
title: "No staff members found",
|
|
423
|
+
description: O || A || M ? "No team members match your current filters. Try clearing them or searching for a different name." : "You have no staff yet. Invite your first worker or delivery partner to start building your team.",
|
|
424
|
+
action: O || A || M ? /* @__PURE__ */ _("button", {
|
|
425
|
+
type: "button",
|
|
426
|
+
onClick: () => {
|
|
427
|
+
k(""), j(""), N(""), F("name");
|
|
428
|
+
},
|
|
429
|
+
className: "rounded-md border border-border-subtle px-4 py-2 text-sm text-text-primary hover:bg-bg-sunken",
|
|
430
|
+
children: "Clear filters"
|
|
431
|
+
}) : /* @__PURE__ */ v("button", {
|
|
432
|
+
type: "button",
|
|
433
|
+
onClick: () => {
|
|
434
|
+
U(w), L(!0);
|
|
435
|
+
},
|
|
436
|
+
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",
|
|
437
|
+
children: [/* @__PURE__ */ _(h, { className: "h-4 w-4" }), "Invite Staff"]
|
|
438
|
+
})
|
|
424
439
|
}) : /* @__PURE__ */ _("div", {
|
|
425
440
|
className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm divide-y divide-border",
|
|
426
|
-
children:
|
|
427
|
-
let n =
|
|
441
|
+
children: Q.map((e) => {
|
|
442
|
+
let n = S[e.status], r = C[e.role];
|
|
428
443
|
return /* @__PURE__ */ v("div", {
|
|
429
444
|
className: "p-4 sm:p-5 hover:bg-bg-sunken/30 transition-colors",
|
|
430
445
|
children: [/* @__PURE__ */ v("div", {
|
|
@@ -463,10 +478,10 @@ var y = [
|
|
|
463
478
|
className: "flex items-center gap-3 mt-1 text-xs text-text-secondary flex-wrap",
|
|
464
479
|
children: [/* @__PURE__ */ v("span", {
|
|
465
480
|
className: "flex items-center gap-1",
|
|
466
|
-
children: [/* @__PURE__ */ _(
|
|
481
|
+
children: [/* @__PURE__ */ _(u, { className: "h-3 w-3" }), e.email]
|
|
467
482
|
}), /* @__PURE__ */ v("span", {
|
|
468
483
|
className: "flex items-center gap-1",
|
|
469
|
-
children: [/* @__PURE__ */ _(
|
|
484
|
+
children: [/* @__PURE__ */ _(d, { className: "h-3 w-3" }), e.phone]
|
|
470
485
|
})]
|
|
471
486
|
})]
|
|
472
487
|
})]
|
|
@@ -479,7 +494,7 @@ var y = [
|
|
|
479
494
|
className: "text-center",
|
|
480
495
|
children: [/* @__PURE__ */ v("p", {
|
|
481
496
|
className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
|
|
482
|
-
children: [/* @__PURE__ */ _(
|
|
497
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), e.performance.rating]
|
|
483
498
|
}), /* @__PURE__ */ _("p", {
|
|
484
499
|
className: "text-text-secondary",
|
|
485
500
|
children: "Rating"
|
|
@@ -509,7 +524,7 @@ var y = [
|
|
|
509
524
|
className: "text-center",
|
|
510
525
|
children: [/* @__PURE__ */ v("p", {
|
|
511
526
|
className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
|
|
512
|
-
children: [/* @__PURE__ */ _(
|
|
527
|
+
children: [/* @__PURE__ */ _(c, { className: "h-3 w-3 text-text-secondary" }), e.currentShift]
|
|
513
528
|
}), /* @__PURE__ */ _("p", {
|
|
514
529
|
className: "text-text-secondary",
|
|
515
530
|
children: "Shift"
|
|
@@ -521,24 +536,24 @@ var y = [
|
|
|
521
536
|
children: [
|
|
522
537
|
/* @__PURE__ */ _("button", {
|
|
523
538
|
type: "button",
|
|
524
|
-
onClick: () =>
|
|
539
|
+
onClick: () => ne(e.id),
|
|
525
540
|
className: t("h-6 w-11 rounded-full transition-colors relative", e.status === "active" ? "bg-status-success-text" : "bg-muted-foreground/30"),
|
|
526
541
|
title: e.status === "active" ? "Deactivate" : "Activate",
|
|
527
542
|
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
543
|
}),
|
|
529
544
|
/* @__PURE__ */ _("button", {
|
|
530
545
|
type: "button",
|
|
531
|
-
onClick: () =>
|
|
546
|
+
onClick: () => ee(e),
|
|
532
547
|
className: "rounded p-1.5 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
|
|
533
548
|
title: "Edit",
|
|
534
|
-
children: /* @__PURE__ */ _(
|
|
549
|
+
children: /* @__PURE__ */ _(l, { className: "h-4 w-4" })
|
|
535
550
|
}),
|
|
536
551
|
/* @__PURE__ */ _("button", {
|
|
537
552
|
type: "button",
|
|
538
|
-
onClick: () =>
|
|
553
|
+
onClick: () => re(e.id),
|
|
539
554
|
className: "rounded p-1.5 text-text-secondary hover:bg-status-error-bg-subtle hover:text-status-error-text transition-colors",
|
|
540
555
|
title: "Remove",
|
|
541
|
-
children: /* @__PURE__ */ _(
|
|
556
|
+
children: /* @__PURE__ */ _(m, { className: "h-4 w-4" })
|
|
542
557
|
})
|
|
543
558
|
]
|
|
544
559
|
})]
|
|
@@ -548,13 +563,13 @@ var y = [
|
|
|
548
563
|
children: [
|
|
549
564
|
/* @__PURE__ */ v("span", {
|
|
550
565
|
className: "flex items-center gap-0.5",
|
|
551
|
-
children: [/* @__PURE__ */ _(
|
|
566
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), e.performance.rating]
|
|
552
567
|
}),
|
|
553
568
|
/* @__PURE__ */ v("span", { children: [e.performance.tasksCompleted, " tasks"] }),
|
|
554
569
|
/* @__PURE__ */ v("span", { children: [e.performance.punctuality, "% on time"] }),
|
|
555
570
|
e.currentShift && /* @__PURE__ */ v("span", {
|
|
556
571
|
className: "flex items-center gap-0.5",
|
|
557
|
-
children: [/* @__PURE__ */ _(
|
|
572
|
+
children: [/* @__PURE__ */ _(c, { className: "h-3 w-3" }), e.currentShift]
|
|
558
573
|
}),
|
|
559
574
|
/* @__PURE__ */ v("span", { children: [e.shiftsThisWeek, " shifts/wk"] })
|
|
560
575
|
]
|
|
@@ -564,7 +579,7 @@ var y = [
|
|
|
564
579
|
})
|
|
565
580
|
]
|
|
566
581
|
}),
|
|
567
|
-
|
|
582
|
+
I && /* @__PURE__ */ _("div", {
|
|
568
583
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
569
584
|
children: /* @__PURE__ */ _("div", {
|
|
570
585
|
className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
|
|
@@ -578,7 +593,7 @@ var y = [
|
|
|
578
593
|
children: "Invite Staff Member"
|
|
579
594
|
}), /* @__PURE__ */ _("button", {
|
|
580
595
|
type: "button",
|
|
581
|
-
onClick: () =>
|
|
596
|
+
onClick: () => L(!1),
|
|
582
597
|
className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
|
|
583
598
|
children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
|
|
584
599
|
})]
|
|
@@ -593,8 +608,8 @@ var y = [
|
|
|
593
608
|
children: "First Name *"
|
|
594
609
|
}), /* @__PURE__ */ _("input", {
|
|
595
610
|
type: "text",
|
|
596
|
-
value:
|
|
597
|
-
onChange: (e) =>
|
|
611
|
+
value: H.firstName,
|
|
612
|
+
onChange: (e) => U((t) => ({
|
|
598
613
|
...t,
|
|
599
614
|
firstName: e.target.value
|
|
600
615
|
})),
|
|
@@ -604,8 +619,8 @@ var y = [
|
|
|
604
619
|
children: "Last Name *"
|
|
605
620
|
}), /* @__PURE__ */ _("input", {
|
|
606
621
|
type: "text",
|
|
607
|
-
value:
|
|
608
|
-
onChange: (e) =>
|
|
622
|
+
value: H.lastName,
|
|
623
|
+
onChange: (e) => U((t) => ({
|
|
609
624
|
...t,
|
|
610
625
|
lastName: e.target.value
|
|
611
626
|
})),
|
|
@@ -617,8 +632,8 @@ var y = [
|
|
|
617
632
|
children: "Email *"
|
|
618
633
|
}), /* @__PURE__ */ _("input", {
|
|
619
634
|
type: "email",
|
|
620
|
-
value:
|
|
621
|
-
onChange: (e) =>
|
|
635
|
+
value: H.email,
|
|
636
|
+
onChange: (e) => U((t) => ({
|
|
622
637
|
...t,
|
|
623
638
|
email: e.target.value
|
|
624
639
|
})),
|
|
@@ -629,8 +644,8 @@ var y = [
|
|
|
629
644
|
children: "Phone"
|
|
630
645
|
}), /* @__PURE__ */ _("input", {
|
|
631
646
|
type: "tel",
|
|
632
|
-
value:
|
|
633
|
-
onChange: (e) =>
|
|
647
|
+
value: H.phone,
|
|
648
|
+
onChange: (e) => U((t) => ({
|
|
634
649
|
...t,
|
|
635
650
|
phone: e.target.value
|
|
636
651
|
})),
|
|
@@ -642,13 +657,13 @@ var y = [
|
|
|
642
657
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
643
658
|
children: "Role"
|
|
644
659
|
}), /* @__PURE__ */ _("select", {
|
|
645
|
-
value:
|
|
646
|
-
onChange: (e) =>
|
|
660
|
+
value: H.role,
|
|
661
|
+
onChange: (e) => U((t) => ({
|
|
647
662
|
...t,
|
|
648
663
|
role: e.target.value
|
|
649
664
|
})),
|
|
650
665
|
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(
|
|
666
|
+
children: Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
652
667
|
value: e,
|
|
653
668
|
children: t.label
|
|
654
669
|
}, e))
|
|
@@ -657,8 +672,8 @@ var y = [
|
|
|
657
672
|
children: "Hourly Rate (₹)"
|
|
658
673
|
}), /* @__PURE__ */ _("input", {
|
|
659
674
|
type: "number",
|
|
660
|
-
value:
|
|
661
|
-
onChange: (e) =>
|
|
675
|
+
value: H.hourlyRate,
|
|
676
|
+
onChange: (e) => U((t) => ({
|
|
662
677
|
...t,
|
|
663
678
|
hourlyRate: parseInt(e.target.value) || 0
|
|
664
679
|
})),
|
|
@@ -671,12 +686,12 @@ var y = [
|
|
|
671
686
|
className: "flex gap-3 mt-6",
|
|
672
687
|
children: [/* @__PURE__ */ _("button", {
|
|
673
688
|
type: "button",
|
|
674
|
-
onClick: () =>
|
|
689
|
+
onClick: () => L(!1),
|
|
675
690
|
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
691
|
children: "Cancel"
|
|
677
692
|
}), /* @__PURE__ */ _("button", {
|
|
678
693
|
type: "button",
|
|
679
|
-
onClick:
|
|
694
|
+
onClick: $,
|
|
680
695
|
className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
|
|
681
696
|
children: "Send Invite"
|
|
682
697
|
})]
|
|
@@ -685,7 +700,7 @@ var y = [
|
|
|
685
700
|
})
|
|
686
701
|
})
|
|
687
702
|
}),
|
|
688
|
-
|
|
703
|
+
R && B && /* @__PURE__ */ _("div", {
|
|
689
704
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
690
705
|
children: /* @__PURE__ */ _("div", {
|
|
691
706
|
className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
|
|
@@ -699,7 +714,7 @@ var y = [
|
|
|
699
714
|
children: "Edit Staff Member"
|
|
700
715
|
}), /* @__PURE__ */ _("button", {
|
|
701
716
|
type: "button",
|
|
702
|
-
onClick: () =>
|
|
717
|
+
onClick: () => z(!1),
|
|
703
718
|
className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
|
|
704
719
|
children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
|
|
705
720
|
})]
|
|
@@ -714,8 +729,8 @@ var y = [
|
|
|
714
729
|
children: "First Name"
|
|
715
730
|
}), /* @__PURE__ */ _("input", {
|
|
716
731
|
type: "text",
|
|
717
|
-
value:
|
|
718
|
-
onChange: (e) =>
|
|
732
|
+
value: W.firstName,
|
|
733
|
+
onChange: (e) => G((t) => ({
|
|
719
734
|
...t,
|
|
720
735
|
firstName: e.target.value
|
|
721
736
|
})),
|
|
@@ -725,8 +740,8 @@ var y = [
|
|
|
725
740
|
children: "Last Name"
|
|
726
741
|
}), /* @__PURE__ */ _("input", {
|
|
727
742
|
type: "text",
|
|
728
|
-
value:
|
|
729
|
-
onChange: (e) =>
|
|
743
|
+
value: W.lastName,
|
|
744
|
+
onChange: (e) => G((t) => ({
|
|
730
745
|
...t,
|
|
731
746
|
lastName: e.target.value
|
|
732
747
|
})),
|
|
@@ -738,8 +753,8 @@ var y = [
|
|
|
738
753
|
children: "Email"
|
|
739
754
|
}), /* @__PURE__ */ _("input", {
|
|
740
755
|
type: "email",
|
|
741
|
-
value:
|
|
742
|
-
onChange: (e) =>
|
|
756
|
+
value: W.email,
|
|
757
|
+
onChange: (e) => G((t) => ({
|
|
743
758
|
...t,
|
|
744
759
|
email: e.target.value
|
|
745
760
|
})),
|
|
@@ -750,8 +765,8 @@ var y = [
|
|
|
750
765
|
children: "Phone"
|
|
751
766
|
}), /* @__PURE__ */ _("input", {
|
|
752
767
|
type: "tel",
|
|
753
|
-
value:
|
|
754
|
-
onChange: (e) =>
|
|
768
|
+
value: W.phone,
|
|
769
|
+
onChange: (e) => G((t) => ({
|
|
755
770
|
...t,
|
|
756
771
|
phone: e.target.value
|
|
757
772
|
})),
|
|
@@ -764,13 +779,13 @@ var y = [
|
|
|
764
779
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
765
780
|
children: "Role"
|
|
766
781
|
}), /* @__PURE__ */ _("select", {
|
|
767
|
-
value:
|
|
768
|
-
onChange: (e) =>
|
|
782
|
+
value: W.role,
|
|
783
|
+
onChange: (e) => G((t) => ({
|
|
769
784
|
...t,
|
|
770
785
|
role: e.target.value
|
|
771
786
|
})),
|
|
772
787
|
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(
|
|
788
|
+
children: Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
774
789
|
value: e,
|
|
775
790
|
children: t.label
|
|
776
791
|
}, e))
|
|
@@ -780,8 +795,8 @@ var y = [
|
|
|
780
795
|
children: "Rate (₹/hr)"
|
|
781
796
|
}), /* @__PURE__ */ _("input", {
|
|
782
797
|
type: "number",
|
|
783
|
-
value:
|
|
784
|
-
onChange: (e) =>
|
|
798
|
+
value: W.hourlyRate,
|
|
799
|
+
onChange: (e) => G((t) => ({
|
|
785
800
|
...t,
|
|
786
801
|
hourlyRate: parseInt(e.target.value) || 0
|
|
787
802
|
})),
|
|
@@ -791,13 +806,13 @@ var y = [
|
|
|
791
806
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
792
807
|
children: "Status"
|
|
793
808
|
}), /* @__PURE__ */ _("select", {
|
|
794
|
-
value:
|
|
795
|
-
onChange: (e) =>
|
|
809
|
+
value: W.status,
|
|
810
|
+
onChange: (e) => G((t) => ({
|
|
796
811
|
...t,
|
|
797
812
|
status: e.target.value
|
|
798
813
|
})),
|
|
799
814
|
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(
|
|
815
|
+
children: Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
|
|
801
816
|
value: e,
|
|
802
817
|
children: t.label
|
|
803
818
|
}, e))
|
|
@@ -810,12 +825,12 @@ var y = [
|
|
|
810
825
|
className: "flex gap-3 mt-6",
|
|
811
826
|
children: [/* @__PURE__ */ _("button", {
|
|
812
827
|
type: "button",
|
|
813
|
-
onClick: () =>
|
|
828
|
+
onClick: () => z(!1),
|
|
814
829
|
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
830
|
children: "Cancel"
|
|
816
831
|
}), /* @__PURE__ */ _("button", {
|
|
817
832
|
type: "button",
|
|
818
|
-
onClick:
|
|
833
|
+
onClick: te,
|
|
819
834
|
className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
|
|
820
835
|
children: "Save Changes"
|
|
821
836
|
})]
|
|
@@ -828,6 +843,6 @@ var y = [
|
|
|
828
843
|
});
|
|
829
844
|
};
|
|
830
845
|
//#endregion
|
|
831
|
-
export {
|
|
846
|
+
export { T as StaffManagementPage };
|
|
832
847
|
|
|
833
848
|
//# sourceMappingURL=StaffManagementPage.js.map
|