@burdenoff/microfe-atheletebridge 2026.625.2 → 2026.628.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/atheletebridge/AthleteBridgeRoot.js +49 -129
  2. package/dist/atheletebridge/AthleteBridgeRoot.js.map +1 -1
  3. package/dist/atheletebridge/AthleteBridgeRoutes.js +65 -184
  4. package/dist/atheletebridge/AthleteBridgeRoutes.js.map +1 -1
  5. package/dist/atheletebridge/components/CursorPager.js +34 -0
  6. package/dist/atheletebridge/components/CursorPager.js.map +1 -0
  7. package/dist/atheletebridge/components/FilterSelect.js +22 -0
  8. package/dist/atheletebridge/components/FilterSelect.js.map +1 -0
  9. package/dist/atheletebridge/components/FixtureCard.js +76 -0
  10. package/dist/atheletebridge/components/FixtureCard.js.map +1 -0
  11. package/dist/atheletebridge/components/LoadingState.js +36 -0
  12. package/dist/atheletebridge/components/LoadingState.js.map +1 -0
  13. package/dist/atheletebridge/components/ProgramCard.js +69 -0
  14. package/dist/atheletebridge/components/ProgramCard.js.map +1 -0
  15. package/dist/atheletebridge/components/SessionCard.js +76 -0
  16. package/dist/atheletebridge/components/SessionCard.js.map +1 -0
  17. package/dist/atheletebridge/components/StatusBadge.js +44 -35
  18. package/dist/atheletebridge/components/StatusBadge.js.map +1 -1
  19. package/dist/atheletebridge/components/TeamCard.js +81 -0
  20. package/dist/atheletebridge/components/TeamCard.js.map +1 -0
  21. package/dist/atheletebridge/components/domain.js +47 -0
  22. package/dist/atheletebridge/components/domain.js.map +1 -0
  23. package/dist/atheletebridge/components/form.js +29 -0
  24. package/dist/atheletebridge/components/form.js.map +1 -0
  25. package/dist/atheletebridge/context/AthleteBridgeContext.js +6 -6
  26. package/dist/atheletebridge/context/AthleteBridgeContext.js.map +1 -1
  27. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js +342 -165
  28. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js.map +1 -1
  29. package/dist/atheletebridge/index.js +1 -1
  30. package/dist/atheletebridge/pages/DashboardPage.js +169 -0
  31. package/dist/atheletebridge/pages/DashboardPage.js.map +1 -0
  32. package/dist/atheletebridge/pages/StandingsPage.js +166 -0
  33. package/dist/atheletebridge/pages/StandingsPage.js.map +1 -0
  34. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js +201 -0
  35. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js.map +1 -0
  36. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js +205 -0
  37. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js.map +1 -0
  38. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js +92 -0
  39. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js.map +1 -0
  40. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js +374 -0
  41. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js.map +1 -0
  42. package/dist/atheletebridge/pages/programs/ProgramFormPage.js +207 -0
  43. package/dist/atheletebridge/pages/programs/ProgramFormPage.js.map +1 -0
  44. package/dist/atheletebridge/pages/programs/ProgramsListPage.js +113 -0
  45. package/dist/atheletebridge/pages/programs/ProgramsListPage.js.map +1 -0
  46. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js +224 -0
  47. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js.map +1 -0
  48. package/dist/atheletebridge/pages/sessions/SessionFormPage.js +206 -0
  49. package/dist/atheletebridge/pages/sessions/SessionFormPage.js.map +1 -0
  50. package/dist/atheletebridge/pages/sessions/SessionsListPage.js +92 -0
  51. package/dist/atheletebridge/pages/sessions/SessionsListPage.js.map +1 -0
  52. package/dist/atheletebridge/pages/teams/TeamDetailPage.js +350 -0
  53. package/dist/atheletebridge/pages/teams/TeamDetailPage.js.map +1 -0
  54. package/dist/atheletebridge/pages/teams/TeamFormPage.js +222 -0
  55. package/dist/atheletebridge/pages/teams/TeamFormPage.js.map +1 -0
  56. package/dist/atheletebridge/pages/teams/TeamsListPage.js +101 -0
  57. package/dist/atheletebridge/pages/teams/TeamsListPage.js.map +1 -0
  58. package/dist/atheletebridge/store/atheletebridgeStore.js +2 -13
  59. package/dist/atheletebridge/store/atheletebridgeStore.js.map +1 -1
  60. package/dist/atheletebridge/utils/datetime.js +10 -0
  61. package/dist/atheletebridge/utils/datetime.js.map +1 -0
  62. package/dist/atheletebridge/utils/formatters.js +1 -4
  63. package/dist/atheletebridge/utils/formatters.js.map +1 -1
  64. package/package.json +1 -1
  65. package/dist/atheletebridge/components/InvestmentCard.js +0 -96
  66. package/dist/atheletebridge/components/InvestmentCard.js.map +0 -1
  67. package/dist/atheletebridge/components/RatingDisplay.js +0 -35
  68. package/dist/atheletebridge/components/RatingDisplay.js.map +0 -1
  69. package/dist/atheletebridge/mocks/data.js +0 -1517
  70. package/dist/atheletebridge/mocks/data.js.map +0 -1
  71. package/dist/atheletebridge/mocks/users.js +0 -34
  72. package/dist/atheletebridge/mocks/users.js.map +0 -1
  73. package/dist/atheletebridge/pages/HomePage.js +0 -936
  74. package/dist/atheletebridge/pages/HomePage.js.map +0 -1
  75. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +0 -653
  76. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +0 -1
  77. package/dist/atheletebridge/pages/admin/AdminDashboard.js +0 -671
  78. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +0 -1
  79. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +0 -429
  80. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +0 -1
  81. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +0 -667
  82. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +0 -1
  83. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +0 -261
  84. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +0 -1
  85. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +0 -653
  86. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +0 -1
  87. package/dist/atheletebridge/pages/admin/CartManagementPage.js +0 -876
  88. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +0 -1
  89. package/dist/atheletebridge/pages/admin/UserManagementPage.js +0 -900
  90. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +0 -1
  91. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +0 -839
  92. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  93. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +0 -704
  94. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  95. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +0 -792
  96. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  97. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  98. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  99. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +0 -633
  100. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  101. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +0 -913
  102. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  103. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +0 -881
  104. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +0 -1
  105. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +0 -841
  106. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +0 -1
  107. package/dist/atheletebridge/pages/common/HelpSupportPage.js +0 -1319
  108. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +0 -1
  109. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +0 -674
  110. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +0 -1
  111. package/dist/atheletebridge/pages/common/SettingsPage.js +0 -972
  112. package/dist/atheletebridge/pages/common/SettingsPage.js.map +0 -1
  113. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +0 -602
  114. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +0 -1
  115. package/dist/atheletebridge/pages/customer/CartDetailPage.js +0 -656
  116. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +0 -1
  117. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +0 -558
  118. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +0 -1
  119. package/dist/atheletebridge/pages/customer/CheckoutPage.js +0 -536
  120. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +0 -1
  121. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +0 -539
  122. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +0 -1
  123. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +0 -657
  124. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +0 -1
  125. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +0 -635
  126. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +0 -1
  127. package/dist/atheletebridge/pages/customer/FavoritesPage.js +0 -486
  128. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +0 -1
  129. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +0 -447
  130. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +0 -1
  131. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +0 -393
  132. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +0 -1
  133. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +0 -494
  134. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +0 -1
  135. package/dist/atheletebridge/pages/customer/ReviewsPage.js +0 -615
  136. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +0 -1
  137. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +0 -451
  138. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +0 -1
  139. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +0 -881
  140. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +0 -1
  141. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +0 -945
  142. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  143. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +0 -686
  144. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  145. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +0 -453
  146. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +0 -1
  147. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +0 -405
  148. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  149. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +0 -577
  150. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +0 -1
  151. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +0 -1069
  152. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +0 -1
  153. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +0 -530
  154. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +0 -1
  155. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +0 -669
  156. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +0 -1
  157. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +0 -681
  158. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +0 -1
  159. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +0 -691
  160. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +0 -1
  161. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +0 -588
  162. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1,669 +0,0 @@
1
- import { useAthleteBridge as e } from "../../context/AthleteBridgeContext.js";
2
- import { cn as t } from "../../utils/cn.js";
3
- import { PageLayout as n } from "../../components/PageLayout.js";
4
- import { EmptyState as r } from "../../components/EmptyState.js";
5
- import { useUpdateWorkerTaskStatus as i, useWorkerClockInOut as a, useWorkerStats as o, useWorkerTasks as s } from "../../hooks/useAthleteBridgeApi.js";
6
- import { formatCurrency as c } from "../../utils/formatters.js";
7
- import { useState as l } from "react";
8
- import { Boxes as u, CalendarDays as d, CheckCircle2 as f, ChefHat as p, ChevronRight as m, ClipboardList as h, Clock as g, Loader2 as _, MapPin as v, Package as y, Pause as b, Play as x, Sparkles as S, Star as C, Timer as w, TrendingUp as T, Truck as E, User as D, Zap as O } from "lucide-react";
9
- import { jsx as k, jsxs as A } from "react/jsx-runtime";
10
- import { EmphasisPanel as j, NextSteps as M, PagePurpose as N } from "@burdenoff/fe-libs/ui";
11
- //#region src/atheletebridge/pages/worker/WorkerDashboard.tsx
12
- var P = {
13
- high: "bg-red-500/20 text-red-600 dark:text-red-400",
14
- medium: "bg-yellow-500/20 text-yellow-600 dark:text-yellow-400",
15
- low: "bg-green-500/20 text-green-600 dark:text-green-400"
16
- }, F = {
17
- pending: "bg-secondary text-secondary-foreground",
18
- in_progress: "bg-blue-500/20 text-blue-600 dark:text-blue-400",
19
- completed: "bg-green-500/20 text-green-600 dark:text-green-400"
20
- };
21
- function I(e) {
22
- switch (e) {
23
- case "delivery": return E;
24
- case "preparation": return p;
25
- case "inventory": return u;
26
- case "cleanup": return S;
27
- default: return h;
28
- }
29
- }
30
- var L = {
31
- high: 3,
32
- medium: 2,
33
- low: 1
34
- }, R = () => {
35
- let { navigateTo: u, currentUser: p } = e(), h = p?.id || "", { data: S = [], isLoading: E } = s(h), { data: R, isLoading: z } = o(h), B = i(), V = a(), [H, U] = l(null), [W, G] = l(!1), [K, q] = l(null), J = async (e, t) => {
36
- let n = "";
37
- switch (t) {
38
- case "start":
39
- n = "IN_PROGRESS", U(e);
40
- break;
41
- case "complete":
42
- n = "COMPLETED", H === e && U(null);
43
- break;
44
- case "pause":
45
- n = "PENDING", H === e && U(null);
46
- break;
47
- }
48
- try {
49
- await B.mutateAsync({
50
- taskId: e,
51
- status: n
52
- });
53
- } catch (e) {
54
- console.error("Failed to update task status:", e), alert("Failed to update task status. Please try again.");
55
- }
56
- }, Y = async () => {
57
- let e = W ? "CLOCK_OUT" : "CLOCK_IN";
58
- try {
59
- let t = await V.mutateAsync({
60
- workerId: h,
61
- action: e
62
- });
63
- if (t.success) {
64
- if (W) G(!1), q(null);
65
- else {
66
- let e = (/* @__PURE__ */ new Date()).toLocaleTimeString("en-IN", {
67
- hour: "2-digit",
68
- minute: "2-digit",
69
- hour12: !0
70
- });
71
- G(!0), q(e);
72
- }
73
- alert(t.message || `${W ? "Clocked out" : "Clocked in"} successfully`);
74
- }
75
- } catch (e) {
76
- console.error("Failed to clock in/out:", e), alert("Action failed. Please try again.");
77
- }
78
- };
79
- if (E || z) return /* @__PURE__ */ k(n, {
80
- title: "Dashboard",
81
- description: "Your work overview for today",
82
- children: /* @__PURE__ */ k("div", {
83
- className: "flex items-center justify-center py-24",
84
- children: /* @__PURE__ */ A("div", {
85
- className: "text-center",
86
- children: [/* @__PURE__ */ k(_, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ k("p", {
87
- className: "text-sm text-text-secondary",
88
- children: "Loading your dashboard..."
89
- })]
90
- })
91
- })
92
- });
93
- let X = H ? S.find((e) => e.id === H) : null, Z = S.filter((e) => e.status !== "completed").sort((e, t) => (L[t.priority] ?? 0) - (L[e.priority] ?? 0)), Q = S.filter((e) => e.status === "completed");
94
- return /* @__PURE__ */ k(n, {
95
- title: "Dashboard",
96
- description: "Manage your tasks and assignments",
97
- actions: /* @__PURE__ */ A("button", {
98
- type: "button",
99
- onClick: () => u("/worker/orders"),
100
- 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",
101
- children: ["View All Orders", /* @__PURE__ */ k(m, { className: "h-4 w-4" })]
102
- }),
103
- children: /* @__PURE__ */ A("div", {
104
- className: "space-y-6",
105
- children: [
106
- /* @__PURE__ */ k(N, { children: "Your shift command center. Clock in to start tracking your hours, work through tasks assigned to you in priority order, and keep an eye on today's completion stats and rating. Use this page to know exactly what to do next and to mark work done." }),
107
- /* @__PURE__ */ k(M, {
108
- storageKey: "atheletebridge-worker-dashboard",
109
- steps: [
110
- {
111
- id: "clock-in",
112
- label: W ? "You are clocked in" : "Clock in to start your shift",
113
- description: "Time tracking begins so your hours and earnings are recorded.",
114
- icon: /* @__PURE__ */ k(w, { className: "h-4 w-4" }),
115
- onClick: Y,
116
- done: W
117
- },
118
- {
119
- id: "start-task",
120
- label: "Start your highest-priority task",
121
- description: "Tasks are sorted by priority — begin the one at the top.",
122
- icon: /* @__PURE__ */ k(x, { className: "h-4 w-4" }),
123
- onClick: () => {
124
- let e = Z.find((e) => e.status === "pending");
125
- e && J(e.id, "start");
126
- }
127
- },
128
- {
129
- id: "schedule",
130
- label: "Review your schedule",
131
- description: "Check your upcoming shifts and breaks.",
132
- icon: /* @__PURE__ */ k(d, { className: "h-4 w-4" }),
133
- onClick: () => u("/worker/schedule")
134
- }
135
- ]
136
- }),
137
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h2", {
138
- className: "text-base font-semibold text-text-primary mb-3",
139
- children: "Quick Actions"
140
- }), /* @__PURE__ */ A("div", {
141
- className: "grid grid-cols-2 lg:grid-cols-4 gap-3",
142
- children: [
143
- /* @__PURE__ */ A("button", {
144
- type: "button",
145
- onClick: () => u("/worker/orders"),
146
- className: "flex items-center justify-center gap-2 rounded-lg border border-border-subtle bg-bg-surface px-4 py-3 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
147
- children: [/* @__PURE__ */ k(y, { className: "h-4 w-4" }), "My Orders"]
148
- }),
149
- /* @__PURE__ */ A("button", {
150
- type: "button",
151
- onClick: () => u("/worker/schedule"),
152
- className: "flex items-center justify-center gap-2 rounded-lg border border-border-subtle bg-bg-surface px-4 py-3 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
153
- children: [/* @__PURE__ */ k(d, { className: "h-4 w-4" }), "Schedule"]
154
- }),
155
- /* @__PURE__ */ A("button", {
156
- type: "button",
157
- onClick: () => u("/worker/profile"),
158
- className: "flex items-center justify-center gap-2 rounded-lg border border-border-subtle bg-bg-surface px-4 py-3 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
159
- children: [/* @__PURE__ */ k(D, { className: "h-4 w-4" }), "Profile"]
160
- }),
161
- /* @__PURE__ */ A("button", {
162
- type: "button",
163
- onClick: Y,
164
- className: t("flex items-center justify-center gap-2 rounded-lg px-4 py-3 text-sm font-medium transition-colors", W ? "bg-red-500/10 text-red-600 dark:text-red-400 border border-red-500/30 hover:bg-red-500/20" : "bg-green-500/10 text-green-600 dark:text-green-400 border border-green-500/30 hover:bg-green-500/20"),
165
- children: [/* @__PURE__ */ k(w, { className: "h-4 w-4" }), W ? "Clock Out" : "Clock In"]
166
- })
167
- ]
168
- })] }),
169
- R && /* @__PURE__ */ A(j, {
170
- className: "p-5",
171
- children: [/* @__PURE__ */ A("div", {
172
- className: "flex items-center justify-between mb-3",
173
- children: [/* @__PURE__ */ k("h2", {
174
- className: "text-base font-semibold text-text-primary",
175
- children: "Today's Overview"
176
- }), W && K && /* @__PURE__ */ A("div", {
177
- className: "flex items-center gap-2 rounded-lg bg-green-500/10 border border-green-500/20 px-3 py-1.5",
178
- children: [/* @__PURE__ */ A("span", {
179
- className: "relative flex h-2 w-2",
180
- children: [/* @__PURE__ */ k("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75" }), /* @__PURE__ */ k("span", { className: "relative inline-flex rounded-full h-2 w-2 bg-green-500" })]
181
- }), /* @__PURE__ */ A("span", {
182
- className: "text-xs font-medium text-green-600 dark:text-green-400",
183
- children: ["Working since ", K]
184
- })]
185
- })]
186
- }), /* @__PURE__ */ A("div", {
187
- className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3",
188
- children: [
189
- /* @__PURE__ */ A("div", {
190
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
191
- children: [
192
- /* @__PURE__ */ k("div", {
193
- className: "flex items-center gap-2 mb-2",
194
- children: /* @__PURE__ */ k("div", {
195
- className: "inline-flex rounded-md p-1.5 bg-green-500/10 text-green-600 dark:text-green-400",
196
- children: /* @__PURE__ */ k(f, { className: "h-4 w-4" })
197
- })
198
- }),
199
- /* @__PURE__ */ k("p", {
200
- className: "text-2xl font-bold text-green-600 dark:text-green-400",
201
- children: R.tasksCompleted
202
- }),
203
- /* @__PURE__ */ k("p", {
204
- className: "text-xs text-text-secondary",
205
- children: "Completed"
206
- })
207
- ]
208
- }),
209
- /* @__PURE__ */ A("div", {
210
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
211
- children: [
212
- /* @__PURE__ */ k("div", {
213
- className: "flex items-center gap-2 mb-2",
214
- children: /* @__PURE__ */ k("div", {
215
- className: "inline-flex rounded-md p-1.5 bg-blue-500/10 text-blue-600 dark:text-blue-400",
216
- children: /* @__PURE__ */ k(x, { className: "h-4 w-4" })
217
- })
218
- }),
219
- /* @__PURE__ */ k("p", {
220
- className: "text-2xl font-bold text-blue-600 dark:text-blue-400",
221
- children: R.tasksInProgress
222
- }),
223
- /* @__PURE__ */ k("p", {
224
- className: "text-xs text-text-secondary",
225
- children: "In Progress"
226
- })
227
- ]
228
- }),
229
- /* @__PURE__ */ A("div", {
230
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
231
- children: [
232
- /* @__PURE__ */ k("div", {
233
- className: "flex items-center gap-2 mb-2",
234
- children: /* @__PURE__ */ k("div", {
235
- className: "inline-flex rounded-md p-1.5 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
236
- children: /* @__PURE__ */ k(g, { className: "h-4 w-4" })
237
- })
238
- }),
239
- /* @__PURE__ */ k("p", {
240
- className: "text-2xl font-bold text-yellow-600 dark:text-yellow-400",
241
- children: R.tasksPending
242
- }),
243
- /* @__PURE__ */ k("p", {
244
- className: "text-xs text-text-secondary",
245
- children: "Pending"
246
- })
247
- ]
248
- }),
249
- /* @__PURE__ */ A("div", {
250
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
251
- children: [
252
- /* @__PURE__ */ k("div", {
253
- className: "flex items-center gap-2 mb-2",
254
- children: /* @__PURE__ */ k("div", {
255
- className: "inline-flex rounded-md p-1.5 bg-purple-500/10 text-purple-600 dark:text-purple-400",
256
- children: /* @__PURE__ */ k(w, { className: "h-4 w-4" })
257
- })
258
- }),
259
- /* @__PURE__ */ A("p", {
260
- className: "text-2xl font-bold text-purple-600 dark:text-purple-400",
261
- children: [R.hoursWorked, "h"]
262
- }),
263
- /* @__PURE__ */ k("p", {
264
- className: "text-xs text-text-secondary",
265
- children: "Hours Worked"
266
- })
267
- ]
268
- }),
269
- /* @__PURE__ */ A("div", {
270
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
271
- children: [
272
- /* @__PURE__ */ k("div", {
273
- className: "flex items-center gap-2 mb-2",
274
- children: /* @__PURE__ */ k("div", {
275
- className: "inline-flex rounded-md p-1.5 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400",
276
- children: /* @__PURE__ */ k(O, { className: "h-4 w-4" })
277
- })
278
- }),
279
- /* @__PURE__ */ A("p", {
280
- className: "text-2xl font-bold text-indigo-600 dark:text-indigo-400",
281
- children: [R.efficiency, "%"]
282
- }),
283
- /* @__PURE__ */ k("p", {
284
- className: "text-xs text-text-secondary",
285
- children: "Efficiency"
286
- })
287
- ]
288
- }),
289
- /* @__PURE__ */ A("div", {
290
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
291
- children: [
292
- /* @__PURE__ */ k("div", {
293
- className: "flex items-center gap-2 mb-2",
294
- children: /* @__PURE__ */ k("div", {
295
- className: "inline-flex rounded-md p-1.5 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",
296
- children: /* @__PURE__ */ k(C, { className: "h-4 w-4" })
297
- })
298
- }),
299
- /* @__PURE__ */ A("p", {
300
- className: "text-2xl font-bold text-yellow-500",
301
- children: [R.rating, "/5"]
302
- }),
303
- /* @__PURE__ */ k("p", {
304
- className: "text-xs text-text-secondary",
305
- children: "Rating"
306
- })
307
- ]
308
- })
309
- ]
310
- })]
311
- }),
312
- X && /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h2", {
313
- className: "text-base font-semibold text-text-primary mb-3",
314
- children: "Current Task"
315
- }), /* @__PURE__ */ k("div", {
316
- className: "rounded-lg border-2 border-blue-500/40 bg-blue-500/5 p-6",
317
- children: /* @__PURE__ */ A("div", {
318
- className: "flex items-start justify-between mb-4",
319
- children: [/* @__PURE__ */ A("div", {
320
- className: "flex items-start gap-3",
321
- children: [/* @__PURE__ */ k("div", {
322
- className: "flex h-10 w-10 items-center justify-center rounded-lg bg-blue-500/10",
323
- children: /* @__PURE__ */ k(I(X.type), { className: "h-5 w-5 text-blue-600 dark:text-blue-400" })
324
- }), /* @__PURE__ */ A("div", { children: [
325
- /* @__PURE__ */ k("h3", {
326
- className: "text-lg font-semibold text-text-primary",
327
- children: X.title
328
- }),
329
- /* @__PURE__ */ k("p", {
330
- className: "text-sm text-text-secondary mt-1",
331
- children: X.description
332
- }),
333
- /* @__PURE__ */ A("div", {
334
- className: "flex flex-wrap items-center gap-3 mt-2 text-sm text-text-secondary",
335
- children: [
336
- /* @__PURE__ */ A("span", {
337
- className: "flex items-center gap-1",
338
- children: [
339
- /* @__PURE__ */ k(g, { className: "h-3.5 w-3.5" }),
340
- X.estimatedTime,
341
- " min"
342
- ]
343
- }),
344
- X.dueTime && /* @__PURE__ */ A("span", {
345
- className: "flex items-center gap-1",
346
- children: [
347
- /* @__PURE__ */ k(w, { className: "h-3.5 w-3.5" }),
348
- "Due: ",
349
- X.dueTime
350
- ]
351
- }),
352
- X.location && /* @__PURE__ */ A("span", {
353
- className: "flex items-center gap-1",
354
- children: [/* @__PURE__ */ k(v, { className: "h-3.5 w-3.5" }), X.location]
355
- })
356
- ]
357
- })
358
- ] })]
359
- }), /* @__PURE__ */ A("div", {
360
- className: "flex gap-2 shrink-0",
361
- children: [/* @__PURE__ */ A("button", {
362
- type: "button",
363
- onClick: () => J(X.id, "complete"),
364
- className: "inline-flex items-center gap-1.5 rounded-md bg-green-500/10 px-3 py-2 text-sm font-medium text-green-600 dark:text-green-400 hover:bg-green-500/20 transition-colors",
365
- children: [/* @__PURE__ */ k(f, { className: "h-4 w-4" }), "Complete"]
366
- }), /* @__PURE__ */ A("button", {
367
- type: "button",
368
- onClick: () => J(X.id, "pause"),
369
- className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
370
- children: [/* @__PURE__ */ k(b, { className: "h-4 w-4" }), "Pause"]
371
- })]
372
- })]
373
- })
374
- })] }),
375
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h2", {
376
- className: "text-base font-semibold text-text-primary mb-3",
377
- children: "Assigned Tasks"
378
- }), /* @__PURE__ */ k("div", {
379
- className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden",
380
- children: Z.length > 0 ? /* @__PURE__ */ k("div", {
381
- className: "divide-y divide-border",
382
- children: Z.map((e) => /* @__PURE__ */ k("div", {
383
- className: "p-4 hover:bg-bg-sunken/30 transition-colors",
384
- children: /* @__PURE__ */ A("div", {
385
- className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3",
386
- children: [/* @__PURE__ */ A("div", {
387
- className: "flex items-start gap-3 flex-1 min-w-0",
388
- children: [/* @__PURE__ */ k("div", {
389
- className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-bg-sunken",
390
- children: /* @__PURE__ */ k(I(e.type), { className: "h-4.5 w-4.5 text-text-secondary" })
391
- }), /* @__PURE__ */ A("div", {
392
- className: "flex-1 min-w-0",
393
- children: [
394
- /* @__PURE__ */ A("div", {
395
- className: "flex flex-wrap items-center gap-2 mb-1",
396
- children: [
397
- /* @__PURE__ */ k("h3", {
398
- className: "text-sm font-medium text-text-primary",
399
- children: e.title
400
- }),
401
- /* @__PURE__ */ k("span", {
402
- className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium capitalize", P[e.priority]),
403
- children: e.priority
404
- }),
405
- /* @__PURE__ */ k("span", {
406
- className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium", F[e.status]),
407
- children: e.status.replace("_", " ")
408
- })
409
- ]
410
- }),
411
- /* @__PURE__ */ k("p", {
412
- className: "text-xs text-text-secondary line-clamp-1",
413
- children: e.description
414
- }),
415
- /* @__PURE__ */ A("div", {
416
- className: "flex flex-wrap items-center gap-3 mt-1.5 text-xs text-text-secondary",
417
- children: [
418
- /* @__PURE__ */ A("span", {
419
- className: "flex items-center gap-1",
420
- children: [/* @__PURE__ */ k(D, { className: "h-3 w-3" }), e.assignedBy]
421
- }),
422
- /* @__PURE__ */ A("span", {
423
- className: "flex items-center gap-1",
424
- children: [
425
- /* @__PURE__ */ k(g, { className: "h-3 w-3" }),
426
- e.estimatedTime,
427
- " min"
428
- ]
429
- }),
430
- e.dueTime && /* @__PURE__ */ A("span", {
431
- className: "flex items-center gap-1",
432
- children: [
433
- /* @__PURE__ */ k(w, { className: "h-3 w-3" }),
434
- "Due: ",
435
- e.dueTime
436
- ]
437
- }),
438
- e.location && /* @__PURE__ */ A("span", {
439
- className: "flex items-center gap-1",
440
- children: [/* @__PURE__ */ k(v, { className: "h-3 w-3" }), e.location]
441
- })
442
- ]
443
- })
444
- ]
445
- })]
446
- }), /* @__PURE__ */ A("div", {
447
- className: "flex gap-2 shrink-0",
448
- children: [
449
- e.status === "pending" && /* @__PURE__ */ A("button", {
450
- type: "button",
451
- onClick: () => J(e.id, "start"),
452
- disabled: H !== null,
453
- className: t("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors", H === null ? "bg-blue-500/10 text-blue-600 dark:text-blue-400 hover:bg-blue-500/20" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
454
- children: [/* @__PURE__ */ k(x, { className: "h-3.5 w-3.5" }), "Start"]
455
- }),
456
- e.status === "in_progress" && e.id !== H && /* @__PURE__ */ A("button", {
457
- type: "button",
458
- onClick: () => U(e.id),
459
- 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",
460
- children: [/* @__PURE__ */ k(x, { className: "h-3.5 w-3.5" }), "Resume"]
461
- }),
462
- /* @__PURE__ */ A("button", {
463
- type: "button",
464
- onClick: () => u(`/worker/task/${e.id}`),
465
- 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",
466
- children: ["Details", /* @__PURE__ */ k(m, { className: "h-3.5 w-3.5" })]
467
- })
468
- ]
469
- })]
470
- })
471
- }, e.id))
472
- }) : /* @__PURE__ */ k(r, {
473
- illustration: "empty-sessions",
474
- title: "All tasks completed!",
475
- description: "You're all caught up — no tasks are assigned to you right now. New tasks will appear here as they come in."
476
- })
477
- })] }),
478
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h2", {
479
- className: "text-base font-semibold text-text-primary mb-3",
480
- children: "Recently Completed"
481
- }), /* @__PURE__ */ k("div", {
482
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
483
- children: Q.length > 0 ? /* @__PURE__ */ k("div", {
484
- className: "space-y-3",
485
- children: Q.slice(0, 3).map((e) => /* @__PURE__ */ A("div", {
486
- className: "flex items-center gap-3 p-3 rounded-lg bg-green-500/5 border border-green-500/10",
487
- children: [
488
- /* @__PURE__ */ k("div", {
489
- className: "flex h-8 w-8 items-center justify-center rounded-md bg-green-500/10",
490
- children: /* @__PURE__ */ k(I(e.type), { className: "h-4 w-4 text-green-600 dark:text-green-400" })
491
- }),
492
- /* @__PURE__ */ A("div", {
493
- className: "flex-1 min-w-0",
494
- children: [/* @__PURE__ */ k("p", {
495
- className: "text-sm font-medium text-text-primary",
496
- children: e.title
497
- }), /* @__PURE__ */ A("p", {
498
- className: "text-xs text-text-secondary",
499
- children: [
500
- "Completed at",
501
- " ",
502
- (/* @__PURE__ */ new Date()).toLocaleTimeString("en-IN", {
503
- hour: "2-digit",
504
- minute: "2-digit",
505
- hour12: !0
506
- })
507
- ]
508
- })]
509
- }),
510
- /* @__PURE__ */ k(f, { className: "h-4 w-4 text-green-600 dark:text-green-400 shrink-0" })
511
- ]
512
- }, e.id))
513
- }) : /* @__PURE__ */ k(r, {
514
- illustration: "empty-generic",
515
- title: "No completed tasks yet today",
516
- description: "Finish a task to see it recorded here."
517
- })
518
- })] }),
519
- /* @__PURE__ */ A("div", {
520
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
521
- children: [/* @__PURE__ */ A("div", {
522
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
523
- children: [/* @__PURE__ */ A("h3", {
524
- className: "text-base font-semibold text-text-primary flex items-center gap-2 mb-4",
525
- children: [/* @__PURE__ */ k(T, { className: "h-4 w-4 text-text-secondary" }), "Performance This Week"]
526
- }), /* @__PURE__ */ A("div", {
527
- className: "space-y-3",
528
- children: [
529
- /* @__PURE__ */ A("div", {
530
- className: "flex items-center justify-between",
531
- children: [/* @__PURE__ */ k("span", {
532
- className: "text-sm text-text-secondary",
533
- children: "Tasks Completed"
534
- }), /* @__PURE__ */ k("span", {
535
- className: "text-sm font-medium text-text-primary",
536
- children: "47"
537
- })]
538
- }),
539
- /* @__PURE__ */ A("div", {
540
- className: "flex items-center justify-between",
541
- children: [/* @__PURE__ */ k("span", {
542
- className: "text-sm text-text-secondary",
543
- children: "Average Time per Task"
544
- }), /* @__PURE__ */ k("span", {
545
- className: "text-sm font-medium text-text-primary",
546
- children: "23 min"
547
- })]
548
- }),
549
- /* @__PURE__ */ A("div", {
550
- className: "flex items-center justify-between",
551
- children: [/* @__PURE__ */ k("span", {
552
- className: "text-sm text-text-secondary",
553
- children: "On-time Completion"
554
- }), /* @__PURE__ */ k("span", {
555
- className: "text-sm font-medium text-text-primary",
556
- children: "94%"
557
- })]
558
- }),
559
- /* @__PURE__ */ A("div", {
560
- className: "flex items-center justify-between",
561
- children: [/* @__PURE__ */ k("span", {
562
- className: "text-sm text-text-secondary",
563
- children: "Customer Feedback"
564
- }), /* @__PURE__ */ A("span", {
565
- className: "text-sm font-medium text-text-primary flex items-center gap-1",
566
- children: ["4.7/5", /* @__PURE__ */ k(C, { className: "h-3.5 w-3.5 fill-yellow-400 text-yellow-400" })]
567
- })]
568
- })
569
- ]
570
- })]
571
- }), /* @__PURE__ */ A("div", {
572
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
573
- children: [/* @__PURE__ */ A("h3", {
574
- className: "text-base font-semibold text-text-primary flex items-center gap-2 mb-4",
575
- children: [/* @__PURE__ */ k(d, { className: "h-4 w-4 text-text-secondary" }), "Shift Information"]
576
- }), /* @__PURE__ */ A("div", {
577
- className: "space-y-3",
578
- children: [
579
- /* @__PURE__ */ A("div", {
580
- className: "flex items-center justify-between",
581
- children: [/* @__PURE__ */ k("span", {
582
- className: "text-sm text-text-secondary",
583
- children: "Shift Start"
584
- }), /* @__PURE__ */ k("span", {
585
- className: "text-sm font-medium text-text-primary",
586
- children: "9:00 AM"
587
- })]
588
- }),
589
- /* @__PURE__ */ A("div", {
590
- className: "flex items-center justify-between",
591
- children: [/* @__PURE__ */ k("span", {
592
- className: "text-sm text-text-secondary",
593
- children: "Shift End"
594
- }), /* @__PURE__ */ k("span", {
595
- className: "text-sm font-medium text-text-primary",
596
- children: "6:00 PM"
597
- })]
598
- }),
599
- /* @__PURE__ */ A("div", {
600
- className: "flex items-center justify-between",
601
- children: [/* @__PURE__ */ k("span", {
602
- className: "text-sm text-text-secondary",
603
- children: "Break Time"
604
- }), /* @__PURE__ */ k("span", {
605
- className: "text-sm font-medium text-text-primary",
606
- children: "1:00 PM - 2:00 PM"
607
- })]
608
- }),
609
- /* @__PURE__ */ A("div", {
610
- className: "flex items-center justify-between",
611
- children: [/* @__PURE__ */ k("span", {
612
- className: "text-sm text-text-secondary",
613
- children: "Supervisor"
614
- }), /* @__PURE__ */ k("span", {
615
- className: "text-sm font-medium text-text-primary",
616
- children: "Rajesh Kumar"
617
- })]
618
- })
619
- ]
620
- })]
621
- })]
622
- }),
623
- /* @__PURE__ */ A("div", {
624
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5 shadow-sm",
625
- children: [/* @__PURE__ */ k("h2", {
626
- className: "text-base font-semibold text-text-primary mb-4",
627
- children: "Overall Performance"
628
- }), /* @__PURE__ */ A("div", {
629
- className: "grid grid-cols-2 gap-4 sm:grid-cols-4",
630
- children: [
631
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
632
- className: "text-xs text-text-secondary",
633
- children: "Total Deliveries"
634
- }), /* @__PURE__ */ k("p", {
635
- className: "text-lg font-bold text-text-primary",
636
- children: R?.totalDeliveries || 0
637
- })] }),
638
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
639
- className: "text-xs text-text-secondary",
640
- children: "Total Earnings"
641
- }), /* @__PURE__ */ k("p", {
642
- className: "text-lg font-bold text-text-primary",
643
- children: c(R?.totalEarnings || 0, { minimumFractionDigits: 0 })
644
- })] }),
645
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
646
- className: "text-xs text-text-secondary",
647
- children: "Average Rating"
648
- }), /* @__PURE__ */ A("p", {
649
- className: "text-lg font-bold text-text-primary flex items-center gap-1",
650
- children: [R?.averageRating || 0, /* @__PURE__ */ k(C, { className: "h-4 w-4 fill-yellow-400 text-yellow-400" })]
651
- })] }),
652
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
653
- className: "text-xs text-text-secondary",
654
- children: "Completion Rate"
655
- }), /* @__PURE__ */ A("p", {
656
- className: "text-lg font-bold text-text-primary",
657
- children: [R?.completionRate || 0, "%"]
658
- })] })
659
- ]
660
- })]
661
- })
662
- ]
663
- })
664
- });
665
- };
666
- //#endregion
667
- export { R as WorkerDashboard };
668
-
669
- //# sourceMappingURL=WorkerDashboard.js.map