@burdenoff/microfe-proserviceworld 2026.624.1 → 2026.626.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.
- package/dist/proserviceworld/pages/AdminReportsPage.js +396 -329
- package/dist/proserviceworld/pages/AdminReportsPage.js.map +1 -1
- package/dist/proserviceworld/pages/AdminUsersPage.js +261 -237
- package/dist/proserviceworld/pages/AdminUsersPage.js.map +1 -1
- package/dist/proserviceworld/pages/AnalyticsPage.js +373 -315
- package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
- package/dist/proserviceworld/pages/BookingsPage.js +221 -200
- package/dist/proserviceworld/pages/BookingsPage.js.map +1 -1
- package/dist/proserviceworld/pages/DashboardPage.js +474 -405
- package/dist/proserviceworld/pages/DashboardPage.js.map +1 -1
- package/dist/proserviceworld/pages/DocumentsPage.js +386 -317
- package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
- package/dist/proserviceworld/pages/MessagesPage.js +201 -192
- package/dist/proserviceworld/pages/MessagesPage.js.map +1 -1
- package/dist/proserviceworld/pages/PaymentsPage.js +398 -340
- package/dist/proserviceworld/pages/PaymentsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProjectsPage.js +543 -463
- package/dist/proserviceworld/pages/ProjectsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProviderDetailPage.js +420 -346
- package/dist/proserviceworld/pages/ProviderDetailPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProvidersPage.js +249 -244
- package/dist/proserviceworld/pages/ProvidersPage.js.map +1 -1
- package/dist/proserviceworld/pages/ReviewsPage.js +93 -76
- package/dist/proserviceworld/pages/ReviewsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ServiceDetailsPage.js +377 -309
- package/dist/proserviceworld/pages/ServiceDetailsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ServicesPage.js +116 -109
- package/dist/proserviceworld/pages/ServicesPage.js.map +1 -1
- package/dist/proserviceworld/pages/VerificationPage.js +264 -251
- package/dist/proserviceworld/pages/VerificationPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,9 +2,9 @@ import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
|
|
|
2
2
|
import { useMemo as t, useState as n } from "react";
|
|
3
3
|
import { Ban as r, CheckCircle2 as i, Clock as a, Download as o, Filter as s, Mail as c, MoreHorizontal as l, Plus as u, Search as d, Shield as f, Star as p, UserCheck as m, Users as h, XCircle as g } from "lucide-react";
|
|
4
4
|
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
5
|
-
import {
|
|
5
|
+
import { AuroraBackground as y, Badge as b, Button as x, CTAOverflowMenu as S, Card as C, CardContent as w, GlassCard as T, GradientText as E, IllustratedEmptyState as D, Input as O, PagePurpose as k } from "@burdenoff/fe-libs/ui";
|
|
6
6
|
//#region src/proserviceworld/pages/AdminUsersPage.tsx
|
|
7
|
-
var
|
|
7
|
+
var A = {
|
|
8
8
|
client: {
|
|
9
9
|
label: "Client",
|
|
10
10
|
variant: "secondary"
|
|
@@ -21,145 +21,159 @@ var w = {
|
|
|
21
21
|
label: "Team",
|
|
22
22
|
variant: "outline"
|
|
23
23
|
}
|
|
24
|
-
},
|
|
24
|
+
}, j = {
|
|
25
25
|
active: {
|
|
26
26
|
label: "Active",
|
|
27
27
|
icon: i,
|
|
28
|
-
color: "text-
|
|
28
|
+
color: "text-status-success-text"
|
|
29
29
|
},
|
|
30
30
|
suspended: {
|
|
31
31
|
label: "Suspended",
|
|
32
32
|
icon: r,
|
|
33
|
-
color: "text-
|
|
33
|
+
color: "text-status-warning-text"
|
|
34
34
|
},
|
|
35
35
|
pending: {
|
|
36
36
|
label: "Pending",
|
|
37
37
|
icon: a,
|
|
38
|
-
color: "text-
|
|
38
|
+
color: "text-status-warning-text"
|
|
39
39
|
},
|
|
40
40
|
banned: {
|
|
41
41
|
label: "Banned",
|
|
42
42
|
icon: g,
|
|
43
|
-
color: "text-
|
|
43
|
+
color: "text-status-error-text"
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
|
-
function
|
|
47
|
-
let { adminUsers: r } = e(), [a,
|
|
46
|
+
function M() {
|
|
47
|
+
let { adminUsers: r } = e(), [a, M] = n(""), [N, P] = n("all"), [F, I] = n("all"), [L, R] = n(/* @__PURE__ */ new Set()), z = t(() => {
|
|
48
48
|
let e = [...r];
|
|
49
|
-
if (
|
|
49
|
+
if (N !== "all" && (e = e.filter((e) => e.role === N)), F !== "all" && (e = e.filter((e) => e.status === F)), a.trim()) {
|
|
50
50
|
let t = a.toLowerCase();
|
|
51
51
|
e = e.filter((e) => e.name.toLowerCase().includes(t) || e.email.toLowerCase().includes(t));
|
|
52
52
|
}
|
|
53
53
|
return e;
|
|
54
54
|
}, [
|
|
55
55
|
r,
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
N,
|
|
57
|
+
F,
|
|
58
58
|
a
|
|
59
|
-
]),
|
|
60
|
-
let t = new Set(
|
|
61
|
-
t.has(e) ? t.delete(e) : t.add(e),
|
|
59
|
+
]), B = r.length, V = r.filter((e) => e.status === "active").length, H = r.filter((e) => e.role === "provider").length, U = r.filter((e) => e.verified).length, W = (e) => {
|
|
60
|
+
let t = new Set(L);
|
|
61
|
+
t.has(e) ? t.delete(e) : t.add(e), R(t);
|
|
62
62
|
};
|
|
63
63
|
return /* @__PURE__ */ v("div", {
|
|
64
|
-
className: "space-y-6 p-6",
|
|
64
|
+
className: "space-y-6 p-6 bg-bg-canvas min-h-screen",
|
|
65
65
|
children: [
|
|
66
66
|
/* @__PURE__ */ v("div", {
|
|
67
|
-
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
68
|
-
children: [
|
|
69
|
-
|
|
70
|
-
children: "
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
67
|
+
className: "relative overflow-hidden rounded-card -mx-2 px-2 pt-1 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ _(y, { intensity: "subtle" }),
|
|
70
|
+
/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h1", {
|
|
71
|
+
className: "text-2xl font-semibold tracking-tight",
|
|
72
|
+
children: /* @__PURE__ */ _(E, { children: "User Management" })
|
|
73
|
+
}), /* @__PURE__ */ _("p", {
|
|
74
|
+
className: "text-sm text-text-secondary",
|
|
75
|
+
children: "Admin panel to manage platform users, roles, and access."
|
|
76
|
+
})] }),
|
|
77
|
+
/* @__PURE__ */ _(S, {
|
|
78
|
+
primary: {
|
|
79
|
+
label: "Invite User",
|
|
80
|
+
onSelect: () => {},
|
|
81
|
+
icon: /* @__PURE__ */ _(u, { className: "h-4 w-4" })
|
|
82
|
+
},
|
|
83
|
+
actions: [{
|
|
84
|
+
label: "Export",
|
|
85
|
+
onSelect: () => {},
|
|
86
|
+
icon: /* @__PURE__ */ _(o, { className: "h-4 w-4" })
|
|
87
|
+
}]
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ _(k, {
|
|
92
|
+
icon: /* @__PURE__ */ _(h, { className: "h-4 w-4" }),
|
|
93
|
+
children: "The control room for everyone on the platform. Search, filter by role and status, and review each user's activity and spend at a glance — then invite new members or take bulk action to activate, suspend, or ban accounts as needed."
|
|
85
94
|
}),
|
|
86
95
|
/* @__PURE__ */ v("div", {
|
|
87
96
|
className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
88
97
|
children: [
|
|
89
|
-
/* @__PURE__ */ _(
|
|
90
|
-
|
|
98
|
+
/* @__PURE__ */ _(T, {
|
|
99
|
+
treatment: "glass",
|
|
100
|
+
glow: !0,
|
|
101
|
+
className: "border-border-seam",
|
|
91
102
|
children: /* @__PURE__ */ v("div", {
|
|
92
103
|
className: "flex items-center gap-3",
|
|
93
104
|
children: [/* @__PURE__ */ _("div", {
|
|
94
|
-
className: "rounded-lg bg-
|
|
95
|
-
children: /* @__PURE__ */ _(h, { className: "h-5 w-5 text-blue
|
|
105
|
+
className: "rounded-lg bg-status-info-bg-subtle p-2",
|
|
106
|
+
children: /* @__PURE__ */ _(h, { className: "h-5 w-5 text-accent-blue" })
|
|
96
107
|
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
97
|
-
className: "text-2xl font-bold",
|
|
98
|
-
children:
|
|
108
|
+
className: "text-2xl font-bold tabular-nums",
|
|
109
|
+
children: B
|
|
99
110
|
}), /* @__PURE__ */ _("p", {
|
|
100
111
|
className: "text-xs text-text-secondary",
|
|
101
112
|
children: "Total Users"
|
|
102
113
|
})] })]
|
|
103
114
|
})
|
|
104
|
-
})
|
|
105
|
-
/* @__PURE__ */ _(
|
|
106
|
-
|
|
115
|
+
}),
|
|
116
|
+
/* @__PURE__ */ _(T, {
|
|
117
|
+
treatment: "metric",
|
|
118
|
+
className: "border-border-seam",
|
|
107
119
|
children: /* @__PURE__ */ v("div", {
|
|
108
120
|
className: "flex items-center gap-3",
|
|
109
121
|
children: [/* @__PURE__ */ _("div", {
|
|
110
|
-
className: "rounded-lg bg-
|
|
111
|
-
children: /* @__PURE__ */ _(m, { className: "h-5 w-5 text-
|
|
122
|
+
className: "rounded-lg bg-status-success-bg-subtle p-2",
|
|
123
|
+
children: /* @__PURE__ */ _(m, { className: "h-5 w-5 text-status-success-text" })
|
|
112
124
|
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
113
|
-
className: "text-2xl font-bold",
|
|
114
|
-
children:
|
|
125
|
+
className: "text-2xl font-bold tabular-nums",
|
|
126
|
+
children: V
|
|
115
127
|
}), /* @__PURE__ */ _("p", {
|
|
116
128
|
className: "text-xs text-text-secondary",
|
|
117
129
|
children: "Active Users"
|
|
118
130
|
})] })]
|
|
119
131
|
})
|
|
120
|
-
})
|
|
121
|
-
/* @__PURE__ */ _(
|
|
122
|
-
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ _(T, {
|
|
134
|
+
treatment: "metric",
|
|
135
|
+
className: "border-border-seam",
|
|
123
136
|
children: /* @__PURE__ */ v("div", {
|
|
124
137
|
className: "flex items-center gap-3",
|
|
125
138
|
children: [/* @__PURE__ */ _("div", {
|
|
126
|
-
className: "rounded-lg bg-purple-
|
|
127
|
-
children: /* @__PURE__ */ _(f, { className: "h-5 w-5 text-purple
|
|
139
|
+
className: "rounded-lg bg-accent-purple-subtle p-2",
|
|
140
|
+
children: /* @__PURE__ */ _(f, { className: "h-5 w-5 text-accent-purple" })
|
|
128
141
|
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
129
|
-
className: "text-2xl font-bold",
|
|
130
|
-
children:
|
|
142
|
+
className: "text-2xl font-bold tabular-nums",
|
|
143
|
+
children: H
|
|
131
144
|
}), /* @__PURE__ */ _("p", {
|
|
132
145
|
className: "text-xs text-text-secondary",
|
|
133
146
|
children: "Providers"
|
|
134
147
|
})] })]
|
|
135
148
|
})
|
|
136
|
-
})
|
|
137
|
-
/* @__PURE__ */ _(
|
|
138
|
-
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ _(T, {
|
|
151
|
+
treatment: "metric",
|
|
152
|
+
className: "border-border-seam",
|
|
139
153
|
children: /* @__PURE__ */ v("div", {
|
|
140
154
|
className: "flex items-center gap-3",
|
|
141
155
|
children: [/* @__PURE__ */ _("div", {
|
|
142
|
-
className: "rounded-lg bg-
|
|
143
|
-
children: /* @__PURE__ */ _(i, { className: "h-5 w-5 text-
|
|
156
|
+
className: "rounded-lg bg-status-warning-bg-subtle p-2",
|
|
157
|
+
children: /* @__PURE__ */ _(i, { className: "h-5 w-5 text-status-warning-text" })
|
|
144
158
|
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
145
|
-
className: "text-2xl font-bold",
|
|
146
|
-
children:
|
|
159
|
+
className: "text-2xl font-bold tabular-nums",
|
|
160
|
+
children: U
|
|
147
161
|
}), /* @__PURE__ */ _("p", {
|
|
148
162
|
className: "text-xs text-text-secondary",
|
|
149
163
|
children: "Verified"
|
|
150
164
|
})] })]
|
|
151
165
|
})
|
|
152
|
-
})
|
|
166
|
+
})
|
|
153
167
|
]
|
|
154
168
|
}),
|
|
155
169
|
/* @__PURE__ */ v("div", {
|
|
156
170
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center",
|
|
157
171
|
children: [/* @__PURE__ */ v("div", {
|
|
158
172
|
className: "relative flex-1",
|
|
159
|
-
children: [/* @__PURE__ */ _(d, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _(
|
|
173
|
+
children: [/* @__PURE__ */ _(d, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ _(O, {
|
|
160
174
|
placeholder: "Search by name or email...",
|
|
161
175
|
value: a,
|
|
162
|
-
onChange: (e) =>
|
|
176
|
+
onChange: (e) => M(e.target.value),
|
|
163
177
|
className: "pl-10"
|
|
164
178
|
})]
|
|
165
179
|
}), /* @__PURE__ */ v("div", {
|
|
@@ -167,9 +181,9 @@ function E() {
|
|
|
167
181
|
children: [
|
|
168
182
|
/* @__PURE__ */ _(s, { className: "h-4 w-4 text-text-secondary" }),
|
|
169
183
|
/* @__PURE__ */ v("select", {
|
|
170
|
-
className: "rounded border bg-bg-surface px-2 py-1 text-sm",
|
|
171
|
-
value:
|
|
172
|
-
onChange: (e) =>
|
|
184
|
+
className: "rounded border border-border-seam bg-bg-surface px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
185
|
+
value: N,
|
|
186
|
+
onChange: (e) => P(e.target.value),
|
|
173
187
|
children: [
|
|
174
188
|
/* @__PURE__ */ _("option", {
|
|
175
189
|
value: "all",
|
|
@@ -194,9 +208,9 @@ function E() {
|
|
|
194
208
|
]
|
|
195
209
|
}),
|
|
196
210
|
/* @__PURE__ */ v("select", {
|
|
197
|
-
className: "rounded border bg-bg-surface px-2 py-1 text-sm",
|
|
198
|
-
value:
|
|
199
|
-
onChange: (e) =>
|
|
211
|
+
className: "rounded border border-border-seam bg-bg-surface px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
212
|
+
value: F,
|
|
213
|
+
onChange: (e) => I(e.target.value),
|
|
200
214
|
children: [
|
|
201
215
|
/* @__PURE__ */ _("option", {
|
|
202
216
|
value: "all",
|
|
@@ -223,222 +237,232 @@ function E() {
|
|
|
223
237
|
]
|
|
224
238
|
})]
|
|
225
239
|
}),
|
|
226
|
-
|
|
227
|
-
className: "flex items-center gap-3 rounded-lg bg-
|
|
240
|
+
L.size > 0 && /* @__PURE__ */ v("div", {
|
|
241
|
+
className: "flex items-center gap-3 rounded-lg bg-accent-soft border border-border-seam p-3",
|
|
228
242
|
children: [
|
|
229
243
|
/* @__PURE__ */ v("span", {
|
|
230
244
|
className: "text-sm font-medium",
|
|
231
|
-
children: [
|
|
245
|
+
children: [L.size, " user(s) selected"]
|
|
232
246
|
}),
|
|
233
|
-
/* @__PURE__ */ _(
|
|
247
|
+
/* @__PURE__ */ _(x, {
|
|
234
248
|
variant: "outline",
|
|
235
249
|
size: "sm",
|
|
236
250
|
children: "Activate"
|
|
237
251
|
}),
|
|
238
|
-
/* @__PURE__ */ _(
|
|
252
|
+
/* @__PURE__ */ _(x, {
|
|
239
253
|
variant: "outline",
|
|
240
254
|
size: "sm",
|
|
241
255
|
children: "Suspend"
|
|
242
256
|
}),
|
|
243
|
-
/* @__PURE__ */ _(
|
|
257
|
+
/* @__PURE__ */ _(x, {
|
|
244
258
|
variant: "destructive",
|
|
245
259
|
size: "sm",
|
|
246
260
|
children: "Ban"
|
|
247
261
|
})
|
|
248
262
|
]
|
|
249
263
|
}),
|
|
250
|
-
/* @__PURE__ */ _(
|
|
251
|
-
className: "
|
|
252
|
-
children:
|
|
253
|
-
className: "
|
|
254
|
-
children: /* @__PURE__ */
|
|
255
|
-
className: "
|
|
256
|
-
children:
|
|
257
|
-
className: "
|
|
258
|
-
children: [
|
|
259
|
-
|
|
260
|
-
className: "p-3",
|
|
261
|
-
children: /* @__PURE__ */ _("input", {
|
|
262
|
-
type: "checkbox",
|
|
263
|
-
checked: j.size === N.length && N.length > 0,
|
|
264
|
-
onChange: () => {
|
|
265
|
-
j.size === N.length ? M(/* @__PURE__ */ new Set()) : M(new Set(N.map((e) => e.id)));
|
|
266
|
-
},
|
|
267
|
-
className: "rounded"
|
|
268
|
-
})
|
|
269
|
-
}),
|
|
270
|
-
/* @__PURE__ */ _("th", {
|
|
271
|
-
className: "p-3",
|
|
272
|
-
children: "User"
|
|
273
|
-
}),
|
|
274
|
-
/* @__PURE__ */ _("th", {
|
|
275
|
-
className: "p-3",
|
|
276
|
-
children: "Role"
|
|
277
|
-
}),
|
|
278
|
-
/* @__PURE__ */ _("th", {
|
|
279
|
-
className: "p-3",
|
|
280
|
-
children: "Status"
|
|
281
|
-
}),
|
|
282
|
-
/* @__PURE__ */ _("th", {
|
|
283
|
-
className: "p-3",
|
|
284
|
-
children: "Verified"
|
|
285
|
-
}),
|
|
286
|
-
/* @__PURE__ */ _("th", {
|
|
287
|
-
className: "p-3",
|
|
288
|
-
children: "Joined"
|
|
289
|
-
}),
|
|
290
|
-
/* @__PURE__ */ _("th", {
|
|
291
|
-
className: "p-3",
|
|
292
|
-
children: "Last Active"
|
|
293
|
-
}),
|
|
294
|
-
/* @__PURE__ */ _("th", {
|
|
295
|
-
className: "p-3 text-right",
|
|
296
|
-
children: "Bookings"
|
|
297
|
-
}),
|
|
298
|
-
/* @__PURE__ */ _("th", {
|
|
299
|
-
className: "p-3 text-right",
|
|
300
|
-
children: "Spent"
|
|
301
|
-
}),
|
|
302
|
-
/* @__PURE__ */ _("th", {
|
|
303
|
-
className: "p-3",
|
|
304
|
-
children: "Rating"
|
|
305
|
-
}),
|
|
306
|
-
/* @__PURE__ */ _("th", {
|
|
307
|
-
className: "p-3 text-right",
|
|
308
|
-
children: "Actions"
|
|
309
|
-
})
|
|
310
|
-
]
|
|
311
|
-
}) }), /* @__PURE__ */ _("tbody", { children: N.length === 0 ? /* @__PURE__ */ _("tr", { children: /* @__PURE__ */ _("td", {
|
|
312
|
-
colSpan: 11,
|
|
313
|
-
className: "p-8 text-center text-text-secondary",
|
|
314
|
-
children: "No users match your filters."
|
|
315
|
-
}) }) : N.map((e) => {
|
|
316
|
-
let t = T[e.status], n = t.icon;
|
|
317
|
-
return /* @__PURE__ */ v("tr", {
|
|
318
|
-
className: "border-b hover:bg-bg-sunken/50",
|
|
264
|
+
/* @__PURE__ */ _(C, {
|
|
265
|
+
className: "border-border-seam",
|
|
266
|
+
children: /* @__PURE__ */ v(w, {
|
|
267
|
+
className: "pt-4",
|
|
268
|
+
children: [/* @__PURE__ */ _("div", {
|
|
269
|
+
className: "overflow-x-auto",
|
|
270
|
+
children: /* @__PURE__ */ v("table", {
|
|
271
|
+
className: "w-full text-sm",
|
|
272
|
+
children: [/* @__PURE__ */ _("thead", { children: /* @__PURE__ */ v("tr", {
|
|
273
|
+
className: "border-b border-border-seam text-left text-text-secondary",
|
|
319
274
|
children: [
|
|
320
|
-
/* @__PURE__ */ _("
|
|
275
|
+
/* @__PURE__ */ _("th", {
|
|
321
276
|
className: "p-3",
|
|
322
277
|
children: /* @__PURE__ */ _("input", {
|
|
323
278
|
type: "checkbox",
|
|
324
|
-
checked:
|
|
325
|
-
onChange: () =>
|
|
279
|
+
checked: L.size === z.length && z.length > 0,
|
|
280
|
+
onChange: () => {
|
|
281
|
+
L.size === z.length ? R(/* @__PURE__ */ new Set()) : R(new Set(z.map((e) => e.id)));
|
|
282
|
+
},
|
|
326
283
|
className: "rounded"
|
|
327
284
|
})
|
|
328
285
|
}),
|
|
329
|
-
/* @__PURE__ */ _("
|
|
286
|
+
/* @__PURE__ */ _("th", {
|
|
330
287
|
className: "p-3",
|
|
331
|
-
children:
|
|
332
|
-
className: "flex items-center gap-3",
|
|
333
|
-
children: [/* @__PURE__ */ _("div", {
|
|
334
|
-
className: "flex h-8 w-8 items-center justify-center rounded-full bg-action-primary-bg/10 text-xs font-semibold text-primary",
|
|
335
|
-
children: e.name.charAt(0)
|
|
336
|
-
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
337
|
-
className: "font-medium",
|
|
338
|
-
children: e.name
|
|
339
|
-
}), /* @__PURE__ */ _("p", {
|
|
340
|
-
className: "text-xs text-text-secondary",
|
|
341
|
-
children: e.email
|
|
342
|
-
})] })]
|
|
343
|
-
})
|
|
288
|
+
children: "User"
|
|
344
289
|
}),
|
|
345
|
-
/* @__PURE__ */ _("
|
|
290
|
+
/* @__PURE__ */ _("th", {
|
|
346
291
|
className: "p-3",
|
|
347
|
-
children:
|
|
348
|
-
variant: w[e.role].variant,
|
|
349
|
-
children: w[e.role].label
|
|
350
|
-
})
|
|
292
|
+
children: "Role"
|
|
351
293
|
}),
|
|
352
|
-
/* @__PURE__ */ _("
|
|
294
|
+
/* @__PURE__ */ _("th", {
|
|
353
295
|
className: "p-3",
|
|
354
|
-
children:
|
|
355
|
-
className: "flex items-center gap-1",
|
|
356
|
-
children: [/* @__PURE__ */ _(n, { className: `h-4 w-4 ${t.color}` }), /* @__PURE__ */ _("span", {
|
|
357
|
-
className: `text-xs font-medium ${t.color}`,
|
|
358
|
-
children: t.label
|
|
359
|
-
})]
|
|
360
|
-
})
|
|
296
|
+
children: "Status"
|
|
361
297
|
}),
|
|
362
|
-
/* @__PURE__ */ _("
|
|
298
|
+
/* @__PURE__ */ _("th", {
|
|
363
299
|
className: "p-3",
|
|
364
|
-
children:
|
|
300
|
+
children: "Verified"
|
|
365
301
|
}),
|
|
366
|
-
/* @__PURE__ */ _("
|
|
367
|
-
className: "p-3
|
|
368
|
-
children:
|
|
302
|
+
/* @__PURE__ */ _("th", {
|
|
303
|
+
className: "p-3",
|
|
304
|
+
children: "Joined"
|
|
369
305
|
}),
|
|
370
|
-
/* @__PURE__ */ _("
|
|
371
|
-
className: "p-3
|
|
372
|
-
children:
|
|
306
|
+
/* @__PURE__ */ _("th", {
|
|
307
|
+
className: "p-3",
|
|
308
|
+
children: "Last Active"
|
|
373
309
|
}),
|
|
374
|
-
/* @__PURE__ */ _("
|
|
310
|
+
/* @__PURE__ */ _("th", {
|
|
375
311
|
className: "p-3 text-right",
|
|
376
|
-
children:
|
|
312
|
+
children: "Bookings"
|
|
377
313
|
}),
|
|
378
|
-
/* @__PURE__ */ _("
|
|
314
|
+
/* @__PURE__ */ _("th", {
|
|
379
315
|
className: "p-3 text-right",
|
|
380
|
-
children:
|
|
316
|
+
children: "Spent"
|
|
381
317
|
}),
|
|
382
|
-
/* @__PURE__ */ _("
|
|
318
|
+
/* @__PURE__ */ _("th", {
|
|
383
319
|
className: "p-3",
|
|
384
|
-
children:
|
|
385
|
-
className: "flex items-center gap-1",
|
|
386
|
-
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), /* @__PURE__ */ _("span", {
|
|
387
|
-
className: "text-xs font-medium",
|
|
388
|
-
children: e.rating
|
|
389
|
-
})]
|
|
390
|
-
}) : /* @__PURE__ */ _("span", {
|
|
391
|
-
className: "text-xs text-text-secondary",
|
|
392
|
-
children: "-"
|
|
393
|
-
})
|
|
320
|
+
children: "Rating"
|
|
394
321
|
}),
|
|
395
|
-
/* @__PURE__ */ _("
|
|
322
|
+
/* @__PURE__ */ _("th", {
|
|
396
323
|
className: "p-3 text-right",
|
|
397
|
-
children:
|
|
398
|
-
className: "flex justify-end gap-1",
|
|
399
|
-
children: [/* @__PURE__ */ _(b, {
|
|
400
|
-
variant: "outline",
|
|
401
|
-
size: "sm",
|
|
402
|
-
children: /* @__PURE__ */ _(c, { className: "h-3 w-3" })
|
|
403
|
-
}), /* @__PURE__ */ _(b, {
|
|
404
|
-
variant: "outline",
|
|
405
|
-
size: "sm",
|
|
406
|
-
children: /* @__PURE__ */ _(l, { className: "h-3 w-3" })
|
|
407
|
-
})]
|
|
408
|
-
})
|
|
324
|
+
children: "Actions"
|
|
409
325
|
})
|
|
410
326
|
]
|
|
411
|
-
},
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
327
|
+
}) }), /* @__PURE__ */ _("tbody", { children: z.length === 0 ? /* @__PURE__ */ _("tr", { children: /* @__PURE__ */ _("td", {
|
|
328
|
+
colSpan: 11,
|
|
329
|
+
className: "p-4",
|
|
330
|
+
children: /* @__PURE__ */ _(D, {
|
|
331
|
+
illustration: "empty-people",
|
|
332
|
+
title: "No users found",
|
|
333
|
+
description: "No users match your current filters."
|
|
334
|
+
})
|
|
335
|
+
}) }) : z.map((e) => {
|
|
336
|
+
let t = j[e.status], n = t.icon;
|
|
337
|
+
return /* @__PURE__ */ v("tr", {
|
|
338
|
+
className: "border-b border-border-seam transition-colors hover:bg-bg-sunken/50",
|
|
339
|
+
children: [
|
|
340
|
+
/* @__PURE__ */ _("td", {
|
|
341
|
+
className: "p-3",
|
|
342
|
+
children: /* @__PURE__ */ _("input", {
|
|
343
|
+
type: "checkbox",
|
|
344
|
+
"aria-label": `Select ${e.name}`,
|
|
345
|
+
checked: L.has(e.id),
|
|
346
|
+
onChange: () => W(e.id),
|
|
347
|
+
className: "rounded"
|
|
348
|
+
})
|
|
349
|
+
}),
|
|
350
|
+
/* @__PURE__ */ _("td", {
|
|
351
|
+
className: "p-3",
|
|
352
|
+
children: /* @__PURE__ */ v("div", {
|
|
353
|
+
className: "flex items-center gap-3",
|
|
354
|
+
children: [/* @__PURE__ */ _("div", {
|
|
355
|
+
className: "flex h-8 w-8 items-center justify-center rounded-full bg-accent-soft text-xs font-semibold text-text-primary",
|
|
356
|
+
children: e.name.charAt(0)
|
|
357
|
+
}), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
|
|
358
|
+
className: "font-medium",
|
|
359
|
+
children: e.name
|
|
360
|
+
}), /* @__PURE__ */ _("p", {
|
|
361
|
+
className: "text-xs text-text-secondary",
|
|
362
|
+
children: e.email
|
|
363
|
+
})] })]
|
|
364
|
+
})
|
|
365
|
+
}),
|
|
366
|
+
/* @__PURE__ */ _("td", {
|
|
367
|
+
className: "p-3",
|
|
368
|
+
children: /* @__PURE__ */ _(b, {
|
|
369
|
+
variant: A[e.role].variant,
|
|
370
|
+
children: A[e.role].label
|
|
371
|
+
})
|
|
372
|
+
}),
|
|
373
|
+
/* @__PURE__ */ _("td", {
|
|
374
|
+
className: "p-3",
|
|
375
|
+
children: /* @__PURE__ */ v("div", {
|
|
376
|
+
className: "flex items-center gap-1",
|
|
377
|
+
children: [/* @__PURE__ */ _(n, { className: `h-4 w-4 ${t.color}` }), /* @__PURE__ */ _("span", {
|
|
378
|
+
className: `text-xs font-medium ${t.color}`,
|
|
379
|
+
children: t.label
|
|
380
|
+
})]
|
|
381
|
+
})
|
|
382
|
+
}),
|
|
383
|
+
/* @__PURE__ */ _("td", {
|
|
384
|
+
className: "p-3",
|
|
385
|
+
children: e.verified ? /* @__PURE__ */ _(i, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ _(g, { className: "h-4 w-4 text-text-muted" })
|
|
386
|
+
}),
|
|
387
|
+
/* @__PURE__ */ _("td", {
|
|
388
|
+
className: "p-3 text-text-secondary",
|
|
389
|
+
children: e.joinedDate
|
|
390
|
+
}),
|
|
391
|
+
/* @__PURE__ */ _("td", {
|
|
392
|
+
className: "p-3 text-text-secondary",
|
|
393
|
+
children: e.lastActive
|
|
394
|
+
}),
|
|
395
|
+
/* @__PURE__ */ _("td", {
|
|
396
|
+
className: "p-3 text-right tabular-nums",
|
|
397
|
+
children: e.bookingsCount
|
|
398
|
+
}),
|
|
399
|
+
/* @__PURE__ */ _("td", {
|
|
400
|
+
className: "p-3 text-right tabular-nums",
|
|
401
|
+
children: e.totalSpent > 0 ? `$${e.totalSpent.toLocaleString()}` : "-"
|
|
402
|
+
}),
|
|
403
|
+
/* @__PURE__ */ _("td", {
|
|
404
|
+
className: "p-3",
|
|
405
|
+
children: e.rating ? /* @__PURE__ */ v("div", {
|
|
406
|
+
className: "flex items-center gap-1",
|
|
407
|
+
children: [/* @__PURE__ */ _(p, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), /* @__PURE__ */ _("span", {
|
|
408
|
+
className: "text-xs font-medium tabular-nums",
|
|
409
|
+
children: e.rating
|
|
410
|
+
})]
|
|
411
|
+
}) : /* @__PURE__ */ _("span", {
|
|
412
|
+
className: "text-xs text-text-secondary",
|
|
413
|
+
children: "-"
|
|
414
|
+
})
|
|
415
|
+
}),
|
|
416
|
+
/* @__PURE__ */ _("td", {
|
|
417
|
+
className: "p-3 text-right",
|
|
418
|
+
children: /* @__PURE__ */ v("div", {
|
|
419
|
+
className: "flex justify-end gap-1",
|
|
420
|
+
children: [/* @__PURE__ */ _(x, {
|
|
421
|
+
variant: "outline",
|
|
422
|
+
size: "sm",
|
|
423
|
+
"aria-label": `Email ${e.name}`,
|
|
424
|
+
children: /* @__PURE__ */ _(c, { className: "h-3 w-3" })
|
|
425
|
+
}), /* @__PURE__ */ _(x, {
|
|
426
|
+
variant: "outline",
|
|
427
|
+
size: "sm",
|
|
428
|
+
"aria-label": `More actions for ${e.name}`,
|
|
429
|
+
children: /* @__PURE__ */ _(l, { className: "h-3 w-3" })
|
|
430
|
+
})]
|
|
431
|
+
})
|
|
432
|
+
})
|
|
433
|
+
]
|
|
434
|
+
}, e.id);
|
|
435
|
+
}) })]
|
|
436
|
+
})
|
|
437
|
+
}), /* @__PURE__ */ v("div", {
|
|
438
|
+
className: "mt-4 flex items-center justify-between border-t border-border-seam pt-4 text-sm text-text-secondary",
|
|
439
|
+
children: [/* @__PURE__ */ v("span", { children: [
|
|
440
|
+
"Showing ",
|
|
441
|
+
z.length,
|
|
442
|
+
" of ",
|
|
443
|
+
r.length,
|
|
444
|
+
" users"
|
|
445
|
+
] }), /* @__PURE__ */ v("div", {
|
|
446
|
+
className: "flex gap-1",
|
|
447
|
+
children: [/* @__PURE__ */ _(x, {
|
|
448
|
+
variant: "outline",
|
|
449
|
+
size: "sm",
|
|
450
|
+
disabled: !0,
|
|
451
|
+
children: "Previous"
|
|
452
|
+
}), /* @__PURE__ */ _(x, {
|
|
453
|
+
variant: "outline",
|
|
454
|
+
size: "sm",
|
|
455
|
+
disabled: !0,
|
|
456
|
+
children: "Next"
|
|
457
|
+
})]
|
|
434
458
|
})]
|
|
435
459
|
})]
|
|
436
|
-
})
|
|
437
|
-
})
|
|
460
|
+
})
|
|
461
|
+
})
|
|
438
462
|
]
|
|
439
463
|
});
|
|
440
464
|
}
|
|
441
465
|
//#endregion
|
|
442
|
-
export {
|
|
466
|
+
export { M as AdminUsersPage };
|
|
443
467
|
|
|
444
468
|
//# sourceMappingURL=AdminUsersPage.js.map
|