@burdenoff/microfe-coolandlovely 2026.624.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/coolandlovely/components/EmptyState.js +17 -21
- package/dist/coolandlovely/components/EmptyState.js.map +1 -1
- package/dist/coolandlovely/components/InvestmentCard.js +25 -23
- package/dist/coolandlovely/components/InvestmentCard.js.map +1 -1
- package/dist/coolandlovely/components/MetricsCard.js +18 -12
- package/dist/coolandlovely/components/MetricsCard.js.map +1 -1
- package/dist/coolandlovely/components/PageLayout.js +38 -19
- package/dist/coolandlovely/components/PageLayout.js.map +1 -1
- package/dist/coolandlovely/components/RatingDisplay.js +3 -3
- package/dist/coolandlovely/components/RatingDisplay.js.map +1 -1
- package/dist/coolandlovely/components/StatusBadge.js +36 -16
- package/dist/coolandlovely/components/StatusBadge.js.map +1 -1
- package/dist/coolandlovely/pages/HomePage.js +219 -204
- package/dist/coolandlovely/pages/HomePage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js +98 -92
- package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminDashboard.js +111 -77
- package/dist/coolandlovely/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.js +49 -43
- package/dist/coolandlovely/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.js +234 -229
- package/dist/coolandlovely/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminProfilePage.js +67 -62
- package/dist/coolandlovely/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.js +235 -230
- package/dist/coolandlovely/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/CartManagementPage.js +291 -286
- package/dist/coolandlovely/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/coolandlovely/pages/admin/UserManagementPage.js +287 -282
- package/dist/coolandlovely/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js +108 -100
- package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js +260 -255
- package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js +596 -554
- package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js +187 -182
- package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js +229 -221
- package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js +675 -674
- package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js +525 -524
- package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js +264 -266
- package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/coolandlovely/pages/common/HelpSupportPage.js +137 -137
- package/dist/coolandlovely/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/coolandlovely/pages/common/NotificationCenterPage.js +81 -75
- package/dist/coolandlovely/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/coolandlovely/pages/common/SettingsPage.js +745 -736
- package/dist/coolandlovely/pages/common/SettingsPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.js +394 -357
- package/dist/coolandlovely/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/CartDetailPage.js +189 -186
- package/dist/coolandlovely/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js +222 -211
- package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/CheckoutPage.js +219 -222
- package/dist/coolandlovely/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/CustomerDashboard.js +446 -404
- package/dist/coolandlovely/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.js +525 -488
- package/dist/coolandlovely/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js +522 -513
- package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/FavoritesPage.js +94 -84
- package/dist/coolandlovely/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.js +121 -112
- package/dist/coolandlovely/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.js +312 -275
- package/dist/coolandlovely/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js +90 -84
- package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/ReviewsPage.js +99 -89
- package/dist/coolandlovely/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.js +74 -68
- package/dist/coolandlovely/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js +317 -279
- package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js +249 -243
- package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js +87 -81
- package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestorDashboard.js +359 -323
- package/dist/coolandlovely/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js +115 -109
- package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js +179 -146
- package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.js +397 -392
- package/dist/coolandlovely/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.js +364 -327
- package/dist/coolandlovely/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/coolandlovely/pages/worker/WorkerDashboard.js +580 -543
- package/dist/coolandlovely/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js +114 -109
- package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.js +115 -110
- package/dist/coolandlovely/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js +100 -95
- package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -6,19 +6,20 @@ import { formatCurrency as i } from "../../utils/formatters.js";
|
|
|
6
6
|
import { useEffect as a, useMemo as o, useState as s } from "react";
|
|
7
7
|
import { Calendar as c, CalendarDays as l, CheckCircle2 as u, ChevronLeft as d, ChevronRight as f, Loader2 as p, LogIn as m, LogOut as h, MapPin as g, PlayCircle as _, Save as v, Send as y, ShoppingCart as b, Star as x, Timer as S } from "lucide-react";
|
|
8
8
|
import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
9
|
+
import { EmphasisPanel as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
|
|
9
10
|
//#region src/coolandlovely/pages/worker/WorkerSchedulePage.tsx
|
|
10
|
-
function
|
|
11
|
+
function D(e) {
|
|
11
12
|
return new Date(e).toLocaleDateString("en-US", {
|
|
12
13
|
weekday: "short",
|
|
13
14
|
month: "short",
|
|
14
15
|
day: "numeric"
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
|
-
function
|
|
18
|
+
function O(e) {
|
|
18
19
|
let [t, n] = e.split(":"), r = parseInt(t), i = r >= 12 ? "PM" : "AM";
|
|
19
20
|
return `${r % 12 || 12}:${n} ${i}`;
|
|
20
21
|
}
|
|
21
|
-
function
|
|
22
|
+
function k(e) {
|
|
22
23
|
let t = /* @__PURE__ */ new Date(), n = t.getDay(), r = new Date(t);
|
|
23
24
|
r.setDate(t.getDate() - n + e * 7);
|
|
24
25
|
let i = new Date(r);
|
|
@@ -34,29 +35,29 @@ function D(e) {
|
|
|
34
35
|
})
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
|
-
function
|
|
38
|
+
function A(e) {
|
|
38
39
|
switch (e) {
|
|
39
|
-
case "scheduled": return "bg-blue-
|
|
40
|
-
case "ongoing": return "bg-
|
|
40
|
+
case "scheduled": return "bg-accent-blue-subtle/20 text-accent-blue";
|
|
41
|
+
case "ongoing": return "bg-status-success-bg-subtle/20 text-status-success-text";
|
|
41
42
|
case "completed": return "bg-secondary text-secondary-foreground";
|
|
42
|
-
case "cancelled": return "bg-
|
|
43
|
+
case "cancelled": return "bg-status-error-bg-subtle/20 text-status-error-text";
|
|
43
44
|
default: return "bg-secondary text-secondary-foreground";
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
function
|
|
47
|
+
function j(e) {
|
|
47
48
|
switch (e) {
|
|
48
|
-
case "pending": return "bg-
|
|
49
|
-
case "approved": return "bg-
|
|
50
|
-
case "rejected": return "bg-
|
|
49
|
+
case "pending": return "bg-status-warning-bg-subtle/20 text-status-warning-text";
|
|
50
|
+
case "approved": return "bg-status-success-bg-subtle/20 text-status-success-text";
|
|
51
|
+
case "rejected": return "bg-status-error-bg-subtle/20 text-status-error-text";
|
|
51
52
|
default: return "bg-secondary text-secondary-foreground";
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
var
|
|
55
|
-
let { navigateTo:
|
|
55
|
+
var M = () => {
|
|
56
|
+
let { navigateTo: M } = e(), [N, P] = s(!0), [F, I] = s("schedule"), [L, R] = s(0), [z, B] = s([]), [V, H] = s([]), [U, W] = s([]);
|
|
56
57
|
a(() => {
|
|
57
|
-
|
|
58
|
+
P(!0);
|
|
58
59
|
let e = setTimeout(() => {
|
|
59
|
-
|
|
60
|
+
B([
|
|
60
61
|
{
|
|
61
62
|
id: "shift-001",
|
|
62
63
|
date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
@@ -104,7 +105,7 @@ var A = () => {
|
|
|
104
105
|
status: "scheduled",
|
|
105
106
|
earnings: 0
|
|
106
107
|
}
|
|
107
|
-
]),
|
|
108
|
+
]), H([
|
|
108
109
|
{
|
|
109
110
|
id: "req-001",
|
|
110
111
|
date: new Date(Date.now() + 2880 * 60 * 1e3).toISOString().split("T")[0],
|
|
@@ -135,7 +136,7 @@ var A = () => {
|
|
|
135
136
|
status: "rejected",
|
|
136
137
|
requestedOn: (/* @__PURE__ */ new Date(Date.now() - 4320 * 60 * 1e3)).toISOString()
|
|
137
138
|
}
|
|
138
|
-
]),
|
|
139
|
+
]), W([
|
|
139
140
|
{
|
|
140
141
|
dayOfWeek: "Monday",
|
|
141
142
|
isAvailable: !0,
|
|
@@ -178,48 +179,48 @@ var A = () => {
|
|
|
178
179
|
preferredStartTime: "09:00",
|
|
179
180
|
preferredEndTime: "18:00"
|
|
180
181
|
}
|
|
181
|
-
]),
|
|
182
|
+
]), P(!1);
|
|
182
183
|
}, 600);
|
|
183
184
|
return () => clearTimeout(e);
|
|
184
|
-
}, [
|
|
185
|
-
let
|
|
186
|
-
let e =
|
|
185
|
+
}, [L]);
|
|
186
|
+
let G = o(() => {
|
|
187
|
+
let e = z.filter((e) => e.status !== "cancelled"), t = e.reduce((e, t) => {
|
|
187
188
|
let n = /* @__PURE__ */ new Date(`2024-01-01T${t.startTime}`);
|
|
188
189
|
return e + ((/* @__PURE__ */ new Date(`2024-01-01T${t.endTime}`)).getTime() - n.getTime()) / (1e3 * 60 * 60);
|
|
189
|
-
}, 0), n = e.reduce((e, t) => e + t.earnings, 0), r =
|
|
190
|
+
}, 0), n = e.reduce((e, t) => e + t.earnings, 0), r = z.find((e) => e.status === "scheduled");
|
|
190
191
|
return {
|
|
191
192
|
hoursThisWeek: t,
|
|
192
193
|
shiftsThisWeek: e.length,
|
|
193
194
|
earningsThisWeek: n,
|
|
194
195
|
nextShift: r
|
|
195
196
|
};
|
|
196
|
-
}, [
|
|
197
|
-
|
|
197
|
+
}, [z]), K = V.filter((e) => e.status === "pending").length, q = k(L), J = (e) => {
|
|
198
|
+
B((t) => t.map((t) => t.id === e ? {
|
|
198
199
|
...t,
|
|
199
200
|
status: "ongoing"
|
|
200
201
|
} : t)), alert("Checked in successfully");
|
|
201
|
-
},
|
|
202
|
-
|
|
202
|
+
}, Y = (e) => {
|
|
203
|
+
B((t) => t.map((t) => t.id === e ? {
|
|
203
204
|
...t,
|
|
204
205
|
status: "completed"
|
|
205
206
|
} : t)), alert("Checked out successfully");
|
|
206
|
-
},
|
|
207
|
-
|
|
207
|
+
}, X = (e) => {
|
|
208
|
+
H((t) => t.map((t) => t.id === e ? {
|
|
208
209
|
...t,
|
|
209
210
|
status: "approved"
|
|
210
211
|
} : t)), alert("Shift accepted");
|
|
211
|
-
},
|
|
212
|
-
|
|
212
|
+
}, Z = (e) => {
|
|
213
|
+
H((t) => t.map((t) => t.id === e ? {
|
|
213
214
|
...t,
|
|
214
215
|
status: "rejected"
|
|
215
216
|
} : t)), alert("Shift rejected");
|
|
216
|
-
},
|
|
217
|
-
|
|
217
|
+
}, Q = (e, t, n) => {
|
|
218
|
+
W((r) => r.map((r) => r.dayOfWeek === e ? {
|
|
218
219
|
...r,
|
|
219
220
|
[t]: n
|
|
220
221
|
} : r));
|
|
221
222
|
};
|
|
222
|
-
return
|
|
223
|
+
return N ? /* @__PURE__ */ C(n, {
|
|
223
224
|
title: "Schedule",
|
|
224
225
|
description: "Manage your work schedule",
|
|
225
226
|
children: /* @__PURE__ */ C("div", {
|
|
@@ -232,52 +233,56 @@ var A = () => {
|
|
|
232
233
|
})]
|
|
233
234
|
})
|
|
234
235
|
})
|
|
235
|
-
}) : /* @__PURE__ */
|
|
236
|
+
}) : /* @__PURE__ */ w(n, {
|
|
236
237
|
title: "Schedule",
|
|
237
238
|
description: "Manage your work schedule",
|
|
238
|
-
children: /* @__PURE__ */
|
|
239
|
+
children: [/* @__PURE__ */ C(E, {
|
|
240
|
+
className: "mb-6",
|
|
241
|
+
icon: /* @__PURE__ */ C(c, { className: "h-4 w-4" }),
|
|
242
|
+
children: "Your shifts at a glance. See how many hours and shifts you have this week, what you'll earn and when your next shift starts, browse upcoming shifts, and pick up open shift requests to add more work when you want it."
|
|
243
|
+
}), /* @__PURE__ */ w("div", {
|
|
239
244
|
className: "space-y-6",
|
|
240
|
-
children: [/* @__PURE__ */ w(
|
|
241
|
-
className: "grid grid-cols-2 md:grid-cols-4 gap-3",
|
|
245
|
+
children: [/* @__PURE__ */ w(T, {
|
|
246
|
+
className: "grid grid-cols-2 md:grid-cols-4 gap-3 p-4",
|
|
242
247
|
children: [
|
|
243
248
|
/* @__PURE__ */ w("div", {
|
|
244
|
-
className: "rounded-lg border border-border-
|
|
249
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
245
250
|
children: [/* @__PURE__ */ C("p", {
|
|
246
251
|
className: "text-xs text-text-secondary",
|
|
247
252
|
children: "Hours This Week"
|
|
248
253
|
}), /* @__PURE__ */ w("p", {
|
|
249
254
|
className: "text-2xl font-bold text-text-primary",
|
|
250
|
-
children: [
|
|
255
|
+
children: [G.hoursThisWeek, "h"]
|
|
251
256
|
})]
|
|
252
257
|
}),
|
|
253
258
|
/* @__PURE__ */ w("div", {
|
|
254
|
-
className: "rounded-lg border border-border-
|
|
259
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
255
260
|
children: [/* @__PURE__ */ C("p", {
|
|
256
261
|
className: "text-xs text-text-secondary",
|
|
257
262
|
children: "Shifts This Week"
|
|
258
263
|
}), /* @__PURE__ */ C("p", {
|
|
259
264
|
className: "text-2xl font-bold text-text-primary",
|
|
260
|
-
children:
|
|
265
|
+
children: G.shiftsThisWeek
|
|
261
266
|
})]
|
|
262
267
|
}),
|
|
263
268
|
/* @__PURE__ */ w("div", {
|
|
264
|
-
className: "rounded-lg border border-border-
|
|
269
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
265
270
|
children: [/* @__PURE__ */ C("p", {
|
|
266
271
|
className: "text-xs text-text-secondary",
|
|
267
272
|
children: "Week Earnings"
|
|
268
273
|
}), /* @__PURE__ */ C("p", {
|
|
269
274
|
className: "text-2xl font-bold text-text-primary",
|
|
270
|
-
children: i(
|
|
275
|
+
children: i(G.earningsThisWeek, { minimumFractionDigits: 0 })
|
|
271
276
|
})]
|
|
272
277
|
}),
|
|
273
278
|
/* @__PURE__ */ w("div", {
|
|
274
|
-
className: "rounded-lg border border-border-
|
|
279
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 bg-gloss-card shadow-pop",
|
|
275
280
|
children: [/* @__PURE__ */ C("p", {
|
|
276
281
|
className: "text-xs text-text-secondary",
|
|
277
282
|
children: "Next Shift"
|
|
278
283
|
}), /* @__PURE__ */ C("p", {
|
|
279
284
|
className: "text-sm font-bold text-text-primary",
|
|
280
|
-
children:
|
|
285
|
+
children: G.nextShift ? `${D(G.nextShift.date)} ${O(G.nextShift.startTime)}` : "None scheduled"
|
|
281
286
|
})]
|
|
282
287
|
})
|
|
283
288
|
]
|
|
@@ -288,65 +293,65 @@ var A = () => {
|
|
|
288
293
|
children: [
|
|
289
294
|
/* @__PURE__ */ w("button", {
|
|
290
295
|
type: "button",
|
|
291
|
-
onClick: () =>
|
|
292
|
-
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2",
|
|
296
|
+
onClick: () => I("schedule"),
|
|
297
|
+
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2", F === "schedule" ? "border-b-2 border-accent-blue-subtle text-accent-blue bg-accent-blue-subtle/5" : "text-text-secondary hover:text-text-primary"),
|
|
293
298
|
children: [/* @__PURE__ */ C(l, { className: "h-4 w-4" }), "My Schedule"]
|
|
294
299
|
}),
|
|
295
300
|
/* @__PURE__ */ w("button", {
|
|
296
301
|
type: "button",
|
|
297
|
-
onClick: () =>
|
|
298
|
-
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2",
|
|
302
|
+
onClick: () => I("requests"),
|
|
303
|
+
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2", F === "requests" ? "border-b-2 border-accent-blue-subtle text-accent-blue bg-accent-blue-subtle/5" : "text-text-secondary hover:text-text-primary"),
|
|
299
304
|
children: [
|
|
300
305
|
/* @__PURE__ */ C(y, { className: "h-4 w-4" }),
|
|
301
306
|
"Shift Requests",
|
|
302
|
-
|
|
303
|
-
className: "ml-1 inline-flex items-center justify-center rounded-full bg-
|
|
304
|
-
children:
|
|
307
|
+
K > 0 && /* @__PURE__ */ C("span", {
|
|
308
|
+
className: "ml-1 inline-flex items-center justify-center rounded-full bg-status-error-bg-subtle px-1.5 py-0.5 text-[10px] font-medium text-white",
|
|
309
|
+
children: K
|
|
305
310
|
})
|
|
306
311
|
]
|
|
307
312
|
}),
|
|
308
313
|
/* @__PURE__ */ w("button", {
|
|
309
314
|
type: "button",
|
|
310
|
-
onClick: () =>
|
|
311
|
-
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2",
|
|
315
|
+
onClick: () => I("availability"),
|
|
316
|
+
className: t("flex-1 py-3 px-4 text-sm font-medium transition-colors flex items-center justify-center gap-2", F === "availability" ? "border-b-2 border-accent-blue-subtle text-accent-blue bg-accent-blue-subtle/5" : "text-text-secondary hover:text-text-primary"),
|
|
312
317
|
children: [/* @__PURE__ */ C(S, { className: "h-4 w-4" }), "Availability"]
|
|
313
318
|
})
|
|
314
319
|
]
|
|
315
320
|
}), /* @__PURE__ */ w("div", {
|
|
316
321
|
className: "p-5",
|
|
317
322
|
children: [
|
|
318
|
-
|
|
323
|
+
F === "schedule" && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
|
|
319
324
|
className: "flex items-center justify-between mb-5",
|
|
320
325
|
children: [
|
|
321
326
|
/* @__PURE__ */ w("button", {
|
|
322
327
|
type: "button",
|
|
323
|
-
onClick: () =>
|
|
328
|
+
onClick: () => R((e) => e - 1),
|
|
324
329
|
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
325
330
|
children: [/* @__PURE__ */ C(d, { className: "h-3.5 w-3.5" }), "Previous Week"]
|
|
326
331
|
}),
|
|
327
332
|
/* @__PURE__ */ w("h3", {
|
|
328
333
|
className: "text-sm font-medium text-text-primary",
|
|
329
334
|
children: [
|
|
330
|
-
|
|
335
|
+
q.start,
|
|
331
336
|
" - ",
|
|
332
|
-
|
|
337
|
+
q.end
|
|
333
338
|
]
|
|
334
339
|
}),
|
|
335
340
|
/* @__PURE__ */ w("button", {
|
|
336
341
|
type: "button",
|
|
337
|
-
onClick: () =>
|
|
342
|
+
onClick: () => R((e) => e + 1),
|
|
338
343
|
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
339
344
|
children: ["Next Week", /* @__PURE__ */ C(f, { className: "h-3.5 w-3.5" })]
|
|
340
345
|
})
|
|
341
346
|
]
|
|
342
|
-
}),
|
|
343
|
-
|
|
347
|
+
}), z.length === 0 ? /* @__PURE__ */ C(r, {
|
|
348
|
+
illustration: "empty-data",
|
|
344
349
|
title: "No shifts scheduled",
|
|
345
350
|
description: "No shifts scheduled for this week"
|
|
346
351
|
}) : /* @__PURE__ */ C("div", {
|
|
347
352
|
className: "space-y-3",
|
|
348
|
-
children:
|
|
349
|
-
className: t("rounded-lg border p-4 transition-colors", e.status === "ongoing" ? "border-
|
|
353
|
+
children: z.map((e) => /* @__PURE__ */ w("div", {
|
|
354
|
+
className: t("rounded-lg border p-4 transition-colors", e.status === "ongoing" ? "border-status-success-border/30 bg-status-success-bg-subtle/5" : "border-border-subtle hover:bg-bg-sunken/30"),
|
|
350
355
|
children: [
|
|
351
356
|
/* @__PURE__ */ w("div", {
|
|
352
357
|
className: "flex items-center justify-between mb-3",
|
|
@@ -354,17 +359,17 @@ var A = () => {
|
|
|
354
359
|
className: "flex items-center gap-2 flex-wrap",
|
|
355
360
|
children: [/* @__PURE__ */ C("h4", {
|
|
356
361
|
className: "text-sm font-semibold text-text-primary",
|
|
357
|
-
children:
|
|
362
|
+
children: D(e.date)
|
|
358
363
|
}), /* @__PURE__ */ C("span", {
|
|
359
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize",
|
|
364
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize", A(e.status)),
|
|
360
365
|
children: e.status === "ongoing" ? "Ongoing" : e.status
|
|
361
366
|
})]
|
|
362
367
|
}), /* @__PURE__ */ w("p", {
|
|
363
368
|
className: "text-xs text-text-secondary mt-1",
|
|
364
369
|
children: [
|
|
365
|
-
|
|
370
|
+
O(e.startTime),
|
|
366
371
|
" - ",
|
|
367
|
-
|
|
372
|
+
O(e.endTime)
|
|
368
373
|
]
|
|
369
374
|
})] }), /* @__PURE__ */ w("div", {
|
|
370
375
|
className: "text-right",
|
|
@@ -373,7 +378,7 @@ var A = () => {
|
|
|
373
378
|
children: i(e.earnings, { minimumFractionDigits: 0 })
|
|
374
379
|
}), e.rating != null && /* @__PURE__ */ w("p", {
|
|
375
380
|
className: "text-xs text-text-secondary flex items-center gap-1 justify-end",
|
|
376
|
-
children: [/* @__PURE__ */ C(x, { className: "h-3 w-3 fill-
|
|
381
|
+
children: [/* @__PURE__ */ C(x, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), e.rating]
|
|
377
382
|
})]
|
|
378
383
|
})]
|
|
379
384
|
}),
|
|
@@ -407,19 +412,19 @@ var A = () => {
|
|
|
407
412
|
className: "mt-3 pt-3 border-t border-border-subtle",
|
|
408
413
|
children: /* @__PURE__ */ w("button", {
|
|
409
414
|
type: "button",
|
|
410
|
-
onClick: () =>
|
|
411
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-blue-
|
|
415
|
+
onClick: () => J(e.id),
|
|
416
|
+
className: "inline-flex items-center gap-1.5 rounded-md bg-accent-blue-subtle/10 px-3 py-1.5 text-xs font-medium text-accent-blue hover:bg-accent-blue-subtle/20 transition-colors",
|
|
412
417
|
children: [/* @__PURE__ */ C(m, { className: "h-3.5 w-3.5" }), "Check In"]
|
|
413
418
|
})
|
|
414
419
|
}),
|
|
415
420
|
e.status === "ongoing" && /* @__PURE__ */ w("div", {
|
|
416
|
-
className: "mt-3 pt-3 border-t border-
|
|
421
|
+
className: "mt-3 pt-3 border-t border-status-success-border/20 flex items-center justify-between",
|
|
417
422
|
children: [/* @__PURE__ */ w("span", {
|
|
418
|
-
className: "text-xs font-medium text-
|
|
423
|
+
className: "text-xs font-medium text-status-success-text flex items-center gap-1",
|
|
419
424
|
children: [/* @__PURE__ */ C(_, { className: "h-3.5 w-3.5" }), "Shift in progress"]
|
|
420
425
|
}), /* @__PURE__ */ w("button", {
|
|
421
426
|
type: "button",
|
|
422
|
-
onClick: () =>
|
|
427
|
+
onClick: () => Y(e.id),
|
|
423
428
|
className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent/80 transition-colors",
|
|
424
429
|
children: [/* @__PURE__ */ C(h, { className: "h-3.5 w-3.5" }), "Check Out"]
|
|
425
430
|
})]
|
|
@@ -427,29 +432,29 @@ var A = () => {
|
|
|
427
432
|
]
|
|
428
433
|
}, e.id))
|
|
429
434
|
})] }),
|
|
430
|
-
|
|
431
|
-
|
|
435
|
+
F === "requests" && /* @__PURE__ */ C("div", { children: V.length === 0 ? /* @__PURE__ */ C(r, {
|
|
436
|
+
illustration: "empty-generic",
|
|
432
437
|
title: "No shift requests",
|
|
433
438
|
description: "No shift requests available"
|
|
434
439
|
}) : /* @__PURE__ */ C("div", {
|
|
435
440
|
className: "space-y-3",
|
|
436
|
-
children:
|
|
441
|
+
children: V.map((e) => /* @__PURE__ */ w("div", {
|
|
437
442
|
className: "rounded-lg border border-border-subtle p-4",
|
|
438
443
|
children: [
|
|
439
444
|
/* @__PURE__ */ w("div", {
|
|
440
445
|
className: "flex items-center justify-between mb-3",
|
|
441
446
|
children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h4", {
|
|
442
447
|
className: "text-sm font-semibold text-text-primary",
|
|
443
|
-
children:
|
|
448
|
+
children: D(e.date)
|
|
444
449
|
}), /* @__PURE__ */ w("p", {
|
|
445
450
|
className: "text-xs text-text-secondary mt-0.5",
|
|
446
451
|
children: [
|
|
447
|
-
|
|
452
|
+
O(e.startTime),
|
|
448
453
|
" - ",
|
|
449
|
-
|
|
454
|
+
O(e.endTime)
|
|
450
455
|
]
|
|
451
456
|
})] }), /* @__PURE__ */ C("span", {
|
|
452
|
-
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize",
|
|
457
|
+
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize", j(e.status)),
|
|
453
458
|
children: e.status
|
|
454
459
|
})]
|
|
455
460
|
}),
|
|
@@ -487,27 +492,27 @@ var A = () => {
|
|
|
487
492
|
className: "flex gap-2",
|
|
488
493
|
children: [/* @__PURE__ */ w("button", {
|
|
489
494
|
type: "button",
|
|
490
|
-
onClick: () =>
|
|
491
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-
|
|
495
|
+
onClick: () => X(e.id),
|
|
496
|
+
className: "inline-flex items-center gap-1.5 rounded-md bg-status-success-bg-subtle/10 px-3 py-1.5 text-xs font-medium text-status-success-text hover:bg-status-success-bg-subtle/20 transition-colors",
|
|
492
497
|
children: [/* @__PURE__ */ C(u, { className: "h-3.5 w-3.5" }), "Accept"]
|
|
493
498
|
}), /* @__PURE__ */ C("button", {
|
|
494
499
|
type: "button",
|
|
495
|
-
onClick: () =>
|
|
496
|
-
className: "inline-flex items-center gap-1.5 rounded-md bg-
|
|
500
|
+
onClick: () => Z(e.id),
|
|
501
|
+
className: "inline-flex items-center gap-1.5 rounded-md bg-status-error-bg-subtle/10 px-3 py-1.5 text-xs font-medium text-status-error-text hover:bg-status-error-bg-subtle/20 transition-colors",
|
|
497
502
|
children: "Reject"
|
|
498
503
|
})]
|
|
499
504
|
})
|
|
500
505
|
]
|
|
501
506
|
}, e.id))
|
|
502
507
|
}) }),
|
|
503
|
-
|
|
508
|
+
F === "availability" && /* @__PURE__ */ w("div", { children: [
|
|
504
509
|
/* @__PURE__ */ C("p", {
|
|
505
510
|
className: "text-xs text-text-secondary mb-5",
|
|
506
511
|
children: "Set your preferred working hours for each day of the week"
|
|
507
512
|
}),
|
|
508
513
|
/* @__PURE__ */ C("div", {
|
|
509
514
|
className: "space-y-3",
|
|
510
|
-
children:
|
|
515
|
+
children: U.map((e) => /* @__PURE__ */ w("div", {
|
|
511
516
|
className: t("flex flex-col sm:flex-row sm:items-center gap-3 p-3 rounded-lg border", e.isAvailable ? "border-border-subtle bg-bg-surface" : "border-border-subtle/50 bg-bg-sunken/30"),
|
|
512
517
|
children: [/* @__PURE__ */ C("div", {
|
|
513
518
|
className: "w-32 shrink-0",
|
|
@@ -516,8 +521,8 @@ var A = () => {
|
|
|
516
521
|
children: [/* @__PURE__ */ C("input", {
|
|
517
522
|
type: "checkbox",
|
|
518
523
|
checked: e.isAvailable,
|
|
519
|
-
onChange: (t) =>
|
|
520
|
-
className: "h-4 w-4 rounded border-border-subtle text-blue
|
|
524
|
+
onChange: (t) => Q(e.dayOfWeek, "isAvailable", t.target.checked),
|
|
525
|
+
className: "h-4 w-4 rounded border-border-subtle text-accent-blue focus:ring-accent-blue-subtle/40"
|
|
521
526
|
}), /* @__PURE__ */ C("span", {
|
|
522
527
|
className: "text-sm font-medium text-text-primary",
|
|
523
528
|
children: e.dayOfWeek
|
|
@@ -533,8 +538,8 @@ var A = () => {
|
|
|
533
538
|
}), /* @__PURE__ */ C("input", {
|
|
534
539
|
type: "time",
|
|
535
540
|
value: e.preferredStartTime,
|
|
536
|
-
onChange: (t) =>
|
|
537
|
-
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-blue-
|
|
541
|
+
onChange: (t) => Q(e.dayOfWeek, "preferredStartTime", t.target.value),
|
|
542
|
+
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40"
|
|
538
543
|
})]
|
|
539
544
|
}), /* @__PURE__ */ w("div", {
|
|
540
545
|
className: "flex items-center gap-2",
|
|
@@ -544,8 +549,8 @@ var A = () => {
|
|
|
544
549
|
}), /* @__PURE__ */ C("input", {
|
|
545
550
|
type: "time",
|
|
546
551
|
value: e.preferredEndTime,
|
|
547
|
-
onChange: (t) =>
|
|
548
|
-
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-blue-
|
|
552
|
+
onChange: (t) => Q(e.dayOfWeek, "preferredEndTime", t.target.value),
|
|
553
|
+
className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40"
|
|
549
554
|
})]
|
|
550
555
|
})]
|
|
551
556
|
}) : /* @__PURE__ */ C("span", {
|
|
@@ -561,7 +566,7 @@ var A = () => {
|
|
|
561
566
|
onClick: () => {
|
|
562
567
|
alert("Availability updated successfully");
|
|
563
568
|
},
|
|
564
|
-
className: "inline-flex items-center gap-2 rounded-md bg-blue-
|
|
569
|
+
className: "inline-flex items-center gap-2 rounded-md bg-accent-blue-subtle/10 px-4 py-2 text-sm font-medium text-accent-blue hover:bg-accent-blue-subtle/20 transition-colors",
|
|
565
570
|
children: [/* @__PURE__ */ C(v, { className: "h-4 w-4" }), "Save Availability"]
|
|
566
571
|
})
|
|
567
572
|
})
|
|
@@ -569,10 +574,10 @@ var A = () => {
|
|
|
569
574
|
]
|
|
570
575
|
})]
|
|
571
576
|
})]
|
|
572
|
-
})
|
|
577
|
+
})]
|
|
573
578
|
});
|
|
574
579
|
};
|
|
575
580
|
//#endregion
|
|
576
|
-
export {
|
|
581
|
+
export { M as WorkerSchedulePage };
|
|
577
582
|
|
|
578
583
|
//# sourceMappingURL=WorkerSchedulePage.js.map
|