@burdenoff/microfe-atheletebridge 2026.626.1 → 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,841 +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 { 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";
7
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
8
- import { EmphasisPanel as y, PagePurpose as b } from "@burdenoff/fe-libs/ui";
9
- //#region src/atheletebridge/pages/cart-owner/StaffManagementPage.tsx
10
- var x = [
11
- {
12
- id: "staff-001",
13
- firstName: "Ravi",
14
- lastName: "Kumar",
15
- email: "ravi@dosaexpress.in",
16
- phone: "+91-9876543210",
17
- role: "delivery",
18
- status: "active",
19
- dateJoined: "2023-06-15",
20
- lastActive: "2024-01-16T10:00:00Z",
21
- hourlyRate: 200,
22
- hoursWorked: 160,
23
- totalEarnings: 32e3,
24
- performance: {
25
- rating: 4.8,
26
- tasksCompleted: 245,
27
- customerRating: 4.7,
28
- punctuality: 95
29
- },
30
- currentShift: "09:00 - 17:00",
31
- shiftsThisWeek: 5
32
- },
33
- {
34
- id: "staff-002",
35
- firstName: "Suresh",
36
- lastName: "Worker",
37
- email: "suresh@dosaexpress.in",
38
- phone: "+91-9876543211",
39
- role: "chef",
40
- status: "active",
41
- dateJoined: "2023-08-20",
42
- lastActive: "2024-01-16T09:30:00Z",
43
- hourlyRate: 250,
44
- hoursWorked: 148,
45
- totalEarnings: 37e3,
46
- performance: {
47
- rating: 4.6,
48
- tasksCompleted: 312,
49
- customerRating: 4.5,
50
- punctuality: 90
51
- },
52
- currentShift: "10:00 - 18:00",
53
- shiftsThisWeek: 4
54
- },
55
- {
56
- id: "staff-003",
57
- firstName: "Amit",
58
- lastName: "Sharma",
59
- email: "amit@dosaexpress.in",
60
- phone: "+91-9876543212",
61
- role: "delivery",
62
- status: "on-leave",
63
- dateJoined: "2023-10-01",
64
- hourlyRate: 180,
65
- hoursWorked: 120,
66
- totalEarnings: 21600,
67
- performance: {
68
- rating: 4.4,
69
- tasksCompleted: 178,
70
- customerRating: 4.3,
71
- punctuality: 85
72
- },
73
- shiftsThisWeek: 0
74
- },
75
- {
76
- id: "staff-004",
77
- firstName: "Priya",
78
- lastName: "Helper",
79
- email: "priya@dosaexpress.in",
80
- phone: "+91-9876543213",
81
- role: "server",
82
- status: "inactive",
83
- dateJoined: "2024-01-05",
84
- hourlyRate: 150,
85
- hoursWorked: 40,
86
- totalEarnings: 6e3,
87
- performance: {
88
- rating: 4.7,
89
- tasksCompleted: 56,
90
- customerRating: 4.8,
91
- punctuality: 98
92
- },
93
- shiftsThisWeek: 0
94
- },
95
- {
96
- id: "staff-005",
97
- firstName: "Kiran",
98
- lastName: "B.",
99
- email: "kiran@dosaexpress.in",
100
- phone: "+91-9876543214",
101
- role: "cashier",
102
- status: "active",
103
- dateJoined: "2023-12-10",
104
- lastActive: "2024-01-16T11:00:00Z",
105
- hourlyRate: 175,
106
- hoursWorked: 80,
107
- totalEarnings: 14e3,
108
- performance: {
109
- rating: 4.3,
110
- tasksCompleted: 134,
111
- customerRating: 4.2,
112
- punctuality: 88
113
- },
114
- currentShift: "11:00 - 19:00",
115
- shiftsThisWeek: 5
116
- },
117
- {
118
- id: "staff-006",
119
- firstName: "Meera",
120
- lastName: "Devi",
121
- email: "meera@dosaexpress.in",
122
- phone: "+91-9876543215",
123
- role: "manager",
124
- status: "active",
125
- dateJoined: "2023-04-01",
126
- lastActive: "2024-01-16T08:00:00Z",
127
- hourlyRate: 350,
128
- hoursWorked: 168,
129
- totalEarnings: 58800,
130
- performance: {
131
- rating: 4.9,
132
- tasksCompleted: 420,
133
- customerRating: 4.9,
134
- punctuality: 99
135
- },
136
- currentShift: "08:00 - 16:00",
137
- shiftsThisWeek: 6
138
- }
139
- ], S = {
140
- active: {
141
- label: "Active",
142
- color: "text-green-600 dark:text-green-400",
143
- dot: "bg-green-500"
144
- },
145
- inactive: {
146
- label: "Inactive",
147
- color: "text-text-secondary",
148
- dot: "bg-muted-foreground"
149
- },
150
- "on-leave": {
151
- label: "On Leave",
152
- color: "text-yellow-600 dark:text-yellow-400",
153
- dot: "bg-yellow-500"
154
- },
155
- terminated: {
156
- label: "Terminated",
157
- color: "text-red-600 dark:text-red-400",
158
- dot: "bg-red-500"
159
- }
160
- }, C = {
161
- manager: {
162
- label: "Manager",
163
- color: "bg-purple-500/20 text-purple-600 dark:text-purple-400"
164
- },
165
- chef: {
166
- label: "Chef",
167
- color: "bg-orange-500/20 text-orange-600 dark:text-orange-400"
168
- },
169
- server: {
170
- label: "Server",
171
- color: "bg-blue-500/20 text-blue-600 dark:text-blue-400"
172
- },
173
- delivery: {
174
- label: "Delivery",
175
- color: "bg-green-500/20 text-green-600 dark:text-green-400"
176
- },
177
- cashier: {
178
- label: "Cashier",
179
- color: "bg-cyan-500/20 text-cyan-600 dark:text-cyan-400"
180
- }
181
- }, w = {
182
- email: "",
183
- firstName: "",
184
- lastName: "",
185
- phone: "",
186
- role: "server",
187
- hourlyRate: 150
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({
190
- firstName: "",
191
- lastName: "",
192
- email: "",
193
- phone: "",
194
- role: "server",
195
- hourlyRate: 150,
196
- status: "active"
197
- }), [K, q] = a(null), J = (e, t) => {
198
- q({
199
- text: e,
200
- type: 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();
208
- e = e.filter((e) => `${e.firstName} ${e.lastName}`.toLowerCase().includes(t) || e.email.toLowerCase().includes(t) || e.phone.includes(t));
209
- }
210
- switch (A && (e = e.filter((e) => e.role === A)), M && (e = e.filter((e) => e.status === M)), P) {
211
- case "name":
212
- e.sort((e, t) => `${e.firstName} ${e.lastName}`.localeCompare(`${t.firstName} ${t.lastName}`));
213
- break;
214
- case "rating":
215
- e.sort((e, t) => t.performance.rating - e.performance.rating);
216
- break;
217
- case "hours":
218
- e.sort((e, t) => t.hoursWorked - e.hoursWorked);
219
- break;
220
- case "joined":
221
- e.sort((e, t) => new Date(t.dateJoined).getTime() - new Date(e.dateJoined).getTime());
222
- break;
223
- }
224
- return e;
225
- }, [
226
- E,
227
- O,
228
- A,
229
- M,
230
- P
231
- ]), $ = () => {
232
- if (!H.email || !H.firstName || !H.lastName) {
233
- J("Please fill in all required fields", "error");
234
- return;
235
- }
236
- let e = {
237
- id: `staff-${Date.now()}`,
238
- ...H,
239
- status: "active",
240
- dateJoined: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
241
- hoursWorked: 0,
242
- totalEarnings: 0,
243
- performance: {
244
- rating: 0,
245
- tasksCompleted: 0,
246
- customerRating: 0,
247
- punctuality: 0
248
- },
249
- shiftsThisWeek: 0
250
- };
251
- D((t) => [...t, e]), L(!1), U(w), J("Staff member invited successfully", "success");
252
- }, ee = (e) => {
253
- V(e), G({
254
- firstName: e.firstName,
255
- lastName: e.lastName,
256
- email: e.email,
257
- phone: e.phone,
258
- role: e.role,
259
- hourlyRate: e.hourlyRate,
260
- status: e.status
261
- }), z(!0);
262
- }, te = () => {
263
- B && (D((e) => e.map((e) => e.id === B.id ? {
264
- ...e,
265
- ...W
266
- } : e)), z(!1), J("Staff member updated successfully", "success"));
267
- }, ne = (e) => {
268
- D((t) => t.map((t) => {
269
- if (t.id === e) {
270
- let e = t.status === "active" ? "inactive" : "active";
271
- return {
272
- ...t,
273
- status: e
274
- };
275
- }
276
- return t;
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"));
280
- };
281
- return /* @__PURE__ */ v(n, {
282
- title: "Staff Management",
283
- description: "Manage your workers, delivery partners, and shifts",
284
- actions: /* @__PURE__ */ v("button", {
285
- type: "button",
286
- onClick: () => {
287
- U(w), L(!0);
288
- },
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",
290
- children: [/* @__PURE__ */ _(h, { className: "h-4 w-4" }), "Invite Staff"]
291
- }),
292
- children: [
293
- /* @__PURE__ */ v("div", {
294
- className: "space-y-4",
295
- children: [
296
- K && /* @__PURE__ */ v("div", {
297
- className: t("flex items-center gap-2 rounded-lg border p-3", K.type === "success" ? "border-green-500/30 bg-green-500/10" : "border-red-500/30 bg-red-500/10"),
298
- children: [K.type === "success" ? /* @__PURE__ */ _(s, { className: "h-4 w-4 text-green-600 dark:text-green-400" }) : /* @__PURE__ */ _(o, { className: "h-4 w-4 text-red-600 dark:text-red-400" }), /* @__PURE__ */ _("span", {
299
- className: t("text-sm font-medium", K.type === "success" ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400"),
300
- children: K.text
301
- })]
302
- }),
303
- /* @__PURE__ */ _(b, { children: "Build and manage your team. Invite workers and delivery partners, see who's active or on leave, track ratings, and manage shifts. A well-staffed, well-rated team keeps orders flowing and customers happy." }),
304
- /* @__PURE__ */ _(y, {
305
- className: "p-5",
306
- children: /* @__PURE__ */ v("div", {
307
- className: "grid grid-cols-2 sm:grid-cols-4 gap-3",
308
- children: [
309
- /* @__PURE__ */ v("div", {
310
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
311
- children: [/* @__PURE__ */ _("p", {
312
- className: "text-2xl font-bold text-text-primary",
313
- children: E.length
314
- }), /* @__PURE__ */ _("p", {
315
- className: "text-xs text-text-secondary",
316
- children: "Total Staff"
317
- })]
318
- }),
319
- /* @__PURE__ */ v("div", {
320
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
321
- children: [/* @__PURE__ */ _("p", {
322
- className: "text-2xl font-bold text-green-600 dark:text-green-400",
323
- children: Y
324
- }), /* @__PURE__ */ _("p", {
325
- className: "text-xs text-text-secondary",
326
- children: "Active Now"
327
- })]
328
- }),
329
- /* @__PURE__ */ v("div", {
330
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
331
- children: [/* @__PURE__ */ _("p", {
332
- className: "text-2xl font-bold text-yellow-600 dark:text-yellow-400",
333
- children: X
334
- }), /* @__PURE__ */ _("p", {
335
- className: "text-xs text-text-secondary",
336
- children: "On Leave"
337
- })]
338
- }),
339
- /* @__PURE__ */ v("div", {
340
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
341
- children: [/* @__PURE__ */ _("p", {
342
- className: "text-2xl font-bold text-text-primary",
343
- children: Z
344
- }), /* @__PURE__ */ _("p", {
345
- className: "text-xs text-text-secondary",
346
- children: "Avg. Rating"
347
- })]
348
- })
349
- ]
350
- })
351
- }),
352
- /* @__PURE__ */ _("div", {
353
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
354
- children: /* @__PURE__ */ v("div", {
355
- className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3",
356
- children: [
357
- /* @__PURE__ */ v("div", {
358
- className: "relative",
359
- children: [/* @__PURE__ */ _(f, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _("input", {
360
- type: "text",
361
- placeholder: "Search staff...",
362
- value: O,
363
- onChange: (e) => k(e.target.value),
364
- 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)]"
365
- })]
366
- }),
367
- /* @__PURE__ */ v("select", {
368
- value: A,
369
- onChange: (e) => j(e.target.value),
370
- className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
371
- children: [/* @__PURE__ */ _("option", {
372
- value: "",
373
- children: "All Roles"
374
- }), Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
375
- value: e,
376
- children: t.label
377
- }, e))]
378
- }),
379
- /* @__PURE__ */ v("select", {
380
- value: M,
381
- onChange: (e) => N(e.target.value),
382
- className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
383
- children: [/* @__PURE__ */ _("option", {
384
- value: "",
385
- children: "All Status"
386
- }), Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
387
- value: e,
388
- children: t.label
389
- }, e))]
390
- }),
391
- /* @__PURE__ */ v("select", {
392
- value: P,
393
- onChange: (e) => F(e.target.value),
394
- className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
395
- children: [
396
- /* @__PURE__ */ _("option", {
397
- value: "name",
398
- children: "Name A-Z"
399
- }),
400
- /* @__PURE__ */ _("option", {
401
- value: "rating",
402
- children: "Rating: High to Low"
403
- }),
404
- /* @__PURE__ */ _("option", {
405
- value: "hours",
406
- children: "Hours: Most Worked"
407
- }),
408
- /* @__PURE__ */ _("option", {
409
- value: "joined",
410
- children: "Recently Joined"
411
- })
412
- ]
413
- })
414
- ]
415
- })
416
- }),
417
- Q.length === 0 ? /* @__PURE__ */ _("div", {
418
- className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm",
419
- children: /* @__PURE__ */ _(r, {
420
- illustration: "empty-people",
421
- title: "No staff members found",
422
- description: "No team members match your filters. Adjust your search, or invite your first staff member to get started.",
423
- action: /* @__PURE__ */ v("button", {
424
- type: "button",
425
- onClick: () => {
426
- U(w), L(!0);
427
- },
428
- className: "inline-flex items-center gap-1.5 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
429
- children: [/* @__PURE__ */ _(h, { className: "h-4 w-4" }), "Invite Staff"]
430
- })
431
- })
432
- }) : /* @__PURE__ */ _("div", {
433
- className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm divide-y divide-border",
434
- children: Q.map((e) => {
435
- let n = S[e.status], r = C[e.role];
436
- return /* @__PURE__ */ v("div", {
437
- className: "p-4 sm:p-5 hover:bg-bg-sunken/30 transition-colors",
438
- children: [/* @__PURE__ */ v("div", {
439
- className: "flex flex-col sm:flex-row sm:items-center gap-4",
440
- children: [/* @__PURE__ */ v("div", {
441
- className: "flex items-center gap-4 flex-1 min-w-0",
442
- children: [/* @__PURE__ */ v("div", {
443
- className: "relative shrink-0",
444
- children: [/* @__PURE__ */ _("div", {
445
- className: "flex h-12 w-12 items-center justify-center rounded-full bg-bg-sunken text-sm font-semibold text-text-primary",
446
- children: `${e.firstName[0]}${e.lastName[0]}`
447
- }), /* @__PURE__ */ _("span", { className: t("absolute -bottom-0.5 -right-0.5 h-3.5 w-3.5 rounded-full border-2 border-card", n.dot) })]
448
- }), /* @__PURE__ */ v("div", {
449
- className: "flex-1 min-w-0",
450
- children: [/* @__PURE__ */ v("div", {
451
- className: "flex items-center gap-2 flex-wrap",
452
- children: [
453
- /* @__PURE__ */ v("p", {
454
- className: "text-sm font-medium text-text-primary",
455
- children: [
456
- e.firstName,
457
- " ",
458
- e.lastName
459
- ]
460
- }),
461
- /* @__PURE__ */ _("span", {
462
- className: t("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium", r.color),
463
- children: r.label
464
- }),
465
- /* @__PURE__ */ _("span", {
466
- className: t("text-xs", n.color),
467
- children: n.label
468
- })
469
- ]
470
- }), /* @__PURE__ */ v("div", {
471
- className: "flex items-center gap-3 mt-1 text-xs text-text-secondary flex-wrap",
472
- children: [/* @__PURE__ */ v("span", {
473
- className: "flex items-center gap-1",
474
- children: [/* @__PURE__ */ _(u, { className: "h-3 w-3" }), e.email]
475
- }), /* @__PURE__ */ v("span", {
476
- className: "flex items-center gap-1",
477
- children: [/* @__PURE__ */ _(d, { className: "h-3 w-3" }), e.phone]
478
- })]
479
- })]
480
- })]
481
- }), /* @__PURE__ */ v("div", {
482
- className: "flex items-center gap-4 sm:gap-6",
483
- children: [/* @__PURE__ */ v("div", {
484
- className: "hidden md:flex items-center gap-4 text-xs",
485
- children: [
486
- /* @__PURE__ */ v("div", {
487
- className: "text-center",
488
- children: [/* @__PURE__ */ v("p", {
489
- className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
490
- children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), e.performance.rating]
491
- }), /* @__PURE__ */ _("p", {
492
- className: "text-text-secondary",
493
- children: "Rating"
494
- })]
495
- }),
496
- /* @__PURE__ */ v("div", {
497
- className: "text-center",
498
- children: [/* @__PURE__ */ _("p", {
499
- className: "font-bold text-text-primary",
500
- children: e.performance.tasksCompleted
501
- }), /* @__PURE__ */ _("p", {
502
- className: "text-text-secondary",
503
- children: "Tasks"
504
- })]
505
- }),
506
- /* @__PURE__ */ v("div", {
507
- className: "text-center",
508
- children: [/* @__PURE__ */ v("p", {
509
- className: "font-bold text-text-primary",
510
- children: [e.performance.punctuality, "%"]
511
- }), /* @__PURE__ */ _("p", {
512
- className: "text-text-secondary",
513
- children: "On Time"
514
- })]
515
- }),
516
- e.currentShift && /* @__PURE__ */ v("div", {
517
- className: "text-center",
518
- children: [/* @__PURE__ */ v("p", {
519
- className: "font-bold text-text-primary flex items-center gap-0.5 justify-center",
520
- children: [/* @__PURE__ */ _(c, { className: "h-3 w-3 text-text-secondary" }), e.currentShift]
521
- }), /* @__PURE__ */ _("p", {
522
- className: "text-text-secondary",
523
- children: "Shift"
524
- })]
525
- })
526
- ]
527
- }), /* @__PURE__ */ v("div", {
528
- className: "flex items-center gap-1",
529
- children: [
530
- /* @__PURE__ */ _("button", {
531
- type: "button",
532
- onClick: () => ne(e.id),
533
- className: t("h-6 w-11 rounded-full transition-colors relative", e.status === "active" ? "bg-green-500" : "bg-muted-foreground/30"),
534
- title: e.status === "active" ? "Deactivate" : "Activate",
535
- 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") })
536
- }),
537
- /* @__PURE__ */ _("button", {
538
- type: "button",
539
- onClick: () => ee(e),
540
- className: "rounded p-1.5 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
541
- title: "Edit",
542
- children: /* @__PURE__ */ _(l, { className: "h-4 w-4" })
543
- }),
544
- /* @__PURE__ */ _("button", {
545
- type: "button",
546
- onClick: () => re(e.id),
547
- className: "rounded p-1.5 text-text-secondary hover:bg-red-500/10 hover:text-red-600 transition-colors",
548
- title: "Remove",
549
- children: /* @__PURE__ */ _(m, { className: "h-4 w-4" })
550
- })
551
- ]
552
- })]
553
- })]
554
- }), /* @__PURE__ */ v("div", {
555
- className: "md:hidden flex items-center gap-4 mt-3 text-xs text-text-secondary",
556
- children: [
557
- /* @__PURE__ */ v("span", {
558
- className: "flex items-center gap-0.5",
559
- children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), e.performance.rating]
560
- }),
561
- /* @__PURE__ */ v("span", { children: [e.performance.tasksCompleted, " tasks"] }),
562
- /* @__PURE__ */ v("span", { children: [e.performance.punctuality, "% on time"] }),
563
- e.currentShift && /* @__PURE__ */ v("span", {
564
- className: "flex items-center gap-0.5",
565
- children: [/* @__PURE__ */ _(c, { className: "h-3 w-3" }), e.currentShift]
566
- }),
567
- /* @__PURE__ */ v("span", { children: [e.shiftsThisWeek, " shifts/wk"] })
568
- ]
569
- })]
570
- }, e.id);
571
- })
572
- })
573
- ]
574
- }),
575
- I && /* @__PURE__ */ _("div", {
576
- className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
577
- children: /* @__PURE__ */ _("div", {
578
- className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
579
- children: /* @__PURE__ */ v("div", {
580
- className: "p-6",
581
- children: [
582
- /* @__PURE__ */ v("div", {
583
- className: "flex items-center justify-between mb-4",
584
- children: [/* @__PURE__ */ _("h3", {
585
- className: "text-lg font-semibold text-text-primary",
586
- children: "Invite Staff Member"
587
- }), /* @__PURE__ */ _("button", {
588
- type: "button",
589
- onClick: () => L(!1),
590
- className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
591
- children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
592
- })]
593
- }),
594
- /* @__PURE__ */ v("div", {
595
- className: "space-y-4",
596
- children: [
597
- /* @__PURE__ */ v("div", {
598
- className: "grid grid-cols-2 gap-4",
599
- children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
600
- className: "block text-sm font-medium text-text-primary mb-1",
601
- children: "First Name *"
602
- }), /* @__PURE__ */ _("input", {
603
- type: "text",
604
- value: H.firstName,
605
- onChange: (e) => U((t) => ({
606
- ...t,
607
- firstName: e.target.value
608
- })),
609
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
610
- })] }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
611
- className: "block text-sm font-medium text-text-primary mb-1",
612
- children: "Last Name *"
613
- }), /* @__PURE__ */ _("input", {
614
- type: "text",
615
- value: H.lastName,
616
- onChange: (e) => U((t) => ({
617
- ...t,
618
- lastName: e.target.value
619
- })),
620
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
621
- })] })]
622
- }),
623
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
624
- className: "block text-sm font-medium text-text-primary mb-1",
625
- children: "Email *"
626
- }), /* @__PURE__ */ _("input", {
627
- type: "email",
628
- value: H.email,
629
- onChange: (e) => U((t) => ({
630
- ...t,
631
- email: e.target.value
632
- })),
633
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
634
- })] }),
635
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
636
- className: "block text-sm font-medium text-text-primary mb-1",
637
- children: "Phone"
638
- }), /* @__PURE__ */ _("input", {
639
- type: "tel",
640
- value: H.phone,
641
- onChange: (e) => U((t) => ({
642
- ...t,
643
- phone: e.target.value
644
- })),
645
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
646
- })] }),
647
- /* @__PURE__ */ v("div", {
648
- className: "grid grid-cols-2 gap-4",
649
- children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
650
- className: "block text-sm font-medium text-text-primary mb-1",
651
- children: "Role"
652
- }), /* @__PURE__ */ _("select", {
653
- value: H.role,
654
- onChange: (e) => U((t) => ({
655
- ...t,
656
- role: e.target.value
657
- })),
658
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
659
- children: Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
660
- value: e,
661
- children: t.label
662
- }, e))
663
- })] }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
664
- className: "block text-sm font-medium text-text-primary mb-1",
665
- children: "Hourly Rate (₹)"
666
- }), /* @__PURE__ */ _("input", {
667
- type: "number",
668
- value: H.hourlyRate,
669
- onChange: (e) => U((t) => ({
670
- ...t,
671
- hourlyRate: parseInt(e.target.value) || 0
672
- })),
673
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
674
- })] })]
675
- })
676
- ]
677
- }),
678
- /* @__PURE__ */ v("div", {
679
- className: "flex gap-3 mt-6",
680
- children: [/* @__PURE__ */ _("button", {
681
- type: "button",
682
- onClick: () => L(!1),
683
- className: "flex-1 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken",
684
- children: "Cancel"
685
- }), /* @__PURE__ */ _("button", {
686
- type: "button",
687
- onClick: $,
688
- className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
689
- children: "Send Invite"
690
- })]
691
- })
692
- ]
693
- })
694
- })
695
- }),
696
- R && B && /* @__PURE__ */ _("div", {
697
- className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
698
- children: /* @__PURE__ */ _("div", {
699
- className: "w-full max-w-lg rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
700
- children: /* @__PURE__ */ v("div", {
701
- className: "p-6",
702
- children: [
703
- /* @__PURE__ */ v("div", {
704
- className: "flex items-center justify-between mb-4",
705
- children: [/* @__PURE__ */ _("h3", {
706
- className: "text-lg font-semibold text-text-primary",
707
- children: "Edit Staff Member"
708
- }), /* @__PURE__ */ _("button", {
709
- type: "button",
710
- onClick: () => z(!1),
711
- className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken",
712
- children: /* @__PURE__ */ _(g, { className: "h-5 w-5" })
713
- })]
714
- }),
715
- /* @__PURE__ */ v("div", {
716
- className: "space-y-4",
717
- children: [
718
- /* @__PURE__ */ v("div", {
719
- className: "grid grid-cols-2 gap-4",
720
- children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
721
- className: "block text-sm font-medium text-text-primary mb-1",
722
- children: "First Name"
723
- }), /* @__PURE__ */ _("input", {
724
- type: "text",
725
- value: W.firstName,
726
- onChange: (e) => G((t) => ({
727
- ...t,
728
- firstName: e.target.value
729
- })),
730
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
731
- })] }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
732
- className: "block text-sm font-medium text-text-primary mb-1",
733
- children: "Last Name"
734
- }), /* @__PURE__ */ _("input", {
735
- type: "text",
736
- value: W.lastName,
737
- onChange: (e) => G((t) => ({
738
- ...t,
739
- lastName: e.target.value
740
- })),
741
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
742
- })] })]
743
- }),
744
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
745
- className: "block text-sm font-medium text-text-primary mb-1",
746
- children: "Email"
747
- }), /* @__PURE__ */ _("input", {
748
- type: "email",
749
- value: W.email,
750
- onChange: (e) => G((t) => ({
751
- ...t,
752
- email: e.target.value
753
- })),
754
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
755
- })] }),
756
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
757
- className: "block text-sm font-medium text-text-primary mb-1",
758
- children: "Phone"
759
- }), /* @__PURE__ */ _("input", {
760
- type: "tel",
761
- value: W.phone,
762
- onChange: (e) => G((t) => ({
763
- ...t,
764
- phone: e.target.value
765
- })),
766
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
767
- })] }),
768
- /* @__PURE__ */ v("div", {
769
- className: "grid grid-cols-3 gap-4",
770
- children: [
771
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
772
- className: "block text-sm font-medium text-text-primary mb-1",
773
- children: "Role"
774
- }), /* @__PURE__ */ _("select", {
775
- value: W.role,
776
- onChange: (e) => G((t) => ({
777
- ...t,
778
- role: e.target.value
779
- })),
780
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
781
- children: Object.entries(C).map(([e, t]) => /* @__PURE__ */ _("option", {
782
- value: e,
783
- children: t.label
784
- }, e))
785
- })] }),
786
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
787
- className: "block text-sm font-medium text-text-primary mb-1",
788
- children: "Rate (₹/hr)"
789
- }), /* @__PURE__ */ _("input", {
790
- type: "number",
791
- value: W.hourlyRate,
792
- onChange: (e) => G((t) => ({
793
- ...t,
794
- hourlyRate: parseInt(e.target.value) || 0
795
- })),
796
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
797
- })] }),
798
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
799
- className: "block text-sm font-medium text-text-primary mb-1",
800
- children: "Status"
801
- }), /* @__PURE__ */ _("select", {
802
- value: W.status,
803
- onChange: (e) => G((t) => ({
804
- ...t,
805
- status: e.target.value
806
- })),
807
- className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
808
- children: Object.entries(S).map(([e, t]) => /* @__PURE__ */ _("option", {
809
- value: e,
810
- children: t.label
811
- }, e))
812
- })] })
813
- ]
814
- })
815
- ]
816
- }),
817
- /* @__PURE__ */ v("div", {
818
- className: "flex gap-3 mt-6",
819
- children: [/* @__PURE__ */ _("button", {
820
- type: "button",
821
- onClick: () => z(!1),
822
- className: "flex-1 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken",
823
- children: "Cancel"
824
- }), /* @__PURE__ */ _("button", {
825
- type: "button",
826
- onClick: te,
827
- className: "flex-1 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
828
- children: "Save Changes"
829
- })]
830
- })
831
- ]
832
- })
833
- })
834
- })
835
- ]
836
- });
837
- };
838
- //#endregion
839
- export { T as StaffManagementPage };
840
-
841
- //# sourceMappingURL=StaffManagementPage.js.map