@burdenoff/microfe-proserviceworld 2026.525.1 → 2026.625.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 +368 -335
- package/dist/proserviceworld/pages/AdminReportsPage.js.map +1 -1
- package/dist/proserviceworld/pages/AdminUsersPage.js +262 -242
- package/dist/proserviceworld/pages/AdminUsersPage.js.map +1 -1
- package/dist/proserviceworld/pages/AnalyticsPage.js +346 -318
- package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
- package/dist/proserviceworld/pages/BookingsPage.js +202 -185
- package/dist/proserviceworld/pages/BookingsPage.js.map +1 -1
- package/dist/proserviceworld/pages/DashboardPage.js +400 -363
- package/dist/proserviceworld/pages/DashboardPage.js.map +1 -1
- package/dist/proserviceworld/pages/DocumentsPage.js +389 -324
- package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
- package/dist/proserviceworld/pages/MessagesPage.js +77 -82
- package/dist/proserviceworld/pages/MessagesPage.js.map +1 -1
- package/dist/proserviceworld/pages/PaymentsPage.js +373 -346
- package/dist/proserviceworld/pages/PaymentsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProjectsPage.js +432 -385
- package/dist/proserviceworld/pages/ProjectsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProviderDetailPage.js +396 -352
- package/dist/proserviceworld/pages/ProviderDetailPage.js.map +1 -1
- package/dist/proserviceworld/pages/ProvidersPage.js +245 -244
- package/dist/proserviceworld/pages/ProvidersPage.js.map +1 -1
- package/dist/proserviceworld/pages/ReviewsPage.js +31 -31
- package/dist/proserviceworld/pages/ReviewsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ServiceDetailsPage.js +349 -316
- package/dist/proserviceworld/pages/ServiceDetailsPage.js.map +1 -1
- package/dist/proserviceworld/pages/ServicesPage.js +163 -160
- package/dist/proserviceworld/pages/ServicesPage.js.map +1 -1
- package/dist/proserviceworld/pages/VerificationPage.js +265 -256
- package/dist/proserviceworld/pages/VerificationPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,30 +2,30 @@ import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
|
|
|
2
2
|
import { useMemo as t, useState as n } from "react";
|
|
3
3
|
import { ArrowUpDown as r, Calendar as i, CheckCircle2 as a, ChevronRight as o, Clock as s, DollarSign as c, Filter as l, Loader2 as u, Search as d, User as f, XCircle as p } from "lucide-react";
|
|
4
4
|
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
5
|
-
import { Badge as g, Button as _, Card as v, CardContent as y,
|
|
5
|
+
import { Badge as g, Button as _, Card as v, CardContent as y, GlassCard as b, IllustratedEmptyState as x, Input as S } from "@burdenoff/fe-libs/ui";
|
|
6
6
|
//#region src/proserviceworld/pages/BookingsPage.tsx
|
|
7
7
|
var C = {
|
|
8
8
|
pending: {
|
|
9
9
|
label: "Pending",
|
|
10
|
-
color: "text-
|
|
10
|
+
color: "text-status-warning-text",
|
|
11
11
|
icon: s,
|
|
12
12
|
badgeVariant: "secondary"
|
|
13
13
|
},
|
|
14
14
|
in_progress: {
|
|
15
15
|
label: "In Progress",
|
|
16
|
-
color: "text-blue
|
|
16
|
+
color: "text-accent-blue",
|
|
17
17
|
icon: u,
|
|
18
18
|
badgeVariant: "default"
|
|
19
19
|
},
|
|
20
20
|
completed: {
|
|
21
21
|
label: "Completed",
|
|
22
|
-
color: "text-
|
|
22
|
+
color: "text-status-success-text",
|
|
23
23
|
icon: a,
|
|
24
24
|
badgeVariant: "outline"
|
|
25
25
|
},
|
|
26
26
|
cancelled: {
|
|
27
27
|
label: "Cancelled",
|
|
28
|
-
color: "text-
|
|
28
|
+
color: "text-status-error-text",
|
|
29
29
|
icon: p,
|
|
30
30
|
badgeVariant: "destructive"
|
|
31
31
|
}
|
|
@@ -55,15 +55,15 @@ function w() {
|
|
|
55
55
|
D === e ? A(!k) : (O(e), A(!1));
|
|
56
56
|
};
|
|
57
57
|
return /* @__PURE__ */ h("div", {
|
|
58
|
-
className: "space-y-6 p-6",
|
|
58
|
+
className: "space-y-6 p-6 bg-bg-canvas min-h-screen",
|
|
59
59
|
children: [
|
|
60
60
|
/* @__PURE__ */ h("div", {
|
|
61
61
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
62
62
|
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
|
|
63
|
-
className: "text-2xl font-semibold",
|
|
63
|
+
className: "text-2xl font-semibold tracking-tight",
|
|
64
64
|
children: "Bookings"
|
|
65
65
|
}), /* @__PURE__ */ m("p", {
|
|
66
|
-
className: "text-sm text-
|
|
66
|
+
className: "text-sm text-text-secondary",
|
|
67
67
|
children: "Manage and track all your service bookings."
|
|
68
68
|
})] }), /* @__PURE__ */ h(_, {
|
|
69
69
|
size: "sm",
|
|
@@ -73,85 +73,90 @@ function w() {
|
|
|
73
73
|
/* @__PURE__ */ h("div", {
|
|
74
74
|
className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
75
75
|
children: [
|
|
76
|
-
/* @__PURE__ */ m(
|
|
77
|
-
|
|
76
|
+
/* @__PURE__ */ m(b, {
|
|
77
|
+
treatment: "metric",
|
|
78
|
+
className: "border-border-seam",
|
|
78
79
|
children: /* @__PURE__ */ h("div", {
|
|
79
80
|
className: "flex items-center gap-3",
|
|
80
81
|
children: [/* @__PURE__ */ m("div", {
|
|
81
|
-
className: "rounded-lg bg-
|
|
82
|
-
children: /* @__PURE__ */ m(i, { className: "h-5 w-5 text-blue
|
|
82
|
+
className: "rounded-lg bg-status-info-bg-subtle p-2",
|
|
83
|
+
children: /* @__PURE__ */ m(i, { className: "h-5 w-5 text-accent-blue" })
|
|
83
84
|
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
84
|
-
className: "text-2xl font-bold",
|
|
85
|
+
className: "text-2xl font-bold tabular-nums",
|
|
85
86
|
children: s.length
|
|
86
87
|
}), /* @__PURE__ */ m("p", {
|
|
87
|
-
className: "text-xs text-
|
|
88
|
+
className: "text-xs text-text-secondary",
|
|
88
89
|
children: "Total Bookings"
|
|
89
90
|
})] })]
|
|
90
91
|
})
|
|
91
|
-
})
|
|
92
|
-
/* @__PURE__ */ m(
|
|
93
|
-
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ m(b, {
|
|
94
|
+
treatment: "metric",
|
|
95
|
+
className: "border-border-seam",
|
|
94
96
|
children: /* @__PURE__ */ h("div", {
|
|
95
97
|
className: "flex items-center gap-3",
|
|
96
98
|
children: [/* @__PURE__ */ m("div", {
|
|
97
|
-
className: "rounded-lg bg-
|
|
98
|
-
children: /* @__PURE__ */ m(a, { className: "h-5 w-5 text-
|
|
99
|
+
className: "rounded-lg bg-status-success-bg-subtle p-2",
|
|
100
|
+
children: /* @__PURE__ */ m(a, { className: "h-5 w-5 text-status-success-text" })
|
|
99
101
|
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
100
|
-
className: "text-2xl font-bold",
|
|
102
|
+
className: "text-2xl font-bold tabular-nums",
|
|
101
103
|
children: F.completed ?? 0
|
|
102
104
|
}), /* @__PURE__ */ m("p", {
|
|
103
|
-
className: "text-xs text-
|
|
105
|
+
className: "text-xs text-text-secondary",
|
|
104
106
|
children: "Completed"
|
|
105
107
|
})] })]
|
|
106
108
|
})
|
|
107
|
-
})
|
|
108
|
-
/* @__PURE__ */ m(
|
|
109
|
-
|
|
109
|
+
}),
|
|
110
|
+
/* @__PURE__ */ m(b, {
|
|
111
|
+
treatment: "metric",
|
|
112
|
+
className: "border-border-seam",
|
|
110
113
|
children: /* @__PURE__ */ h("div", {
|
|
111
114
|
className: "flex items-center gap-3",
|
|
112
115
|
children: [/* @__PURE__ */ m("div", {
|
|
113
|
-
className: "rounded-lg bg-
|
|
114
|
-
children: /* @__PURE__ */ m(u, { className: "h-5 w-5 text-
|
|
116
|
+
className: "rounded-lg bg-status-warning-bg-subtle p-2",
|
|
117
|
+
children: /* @__PURE__ */ m(u, { className: "h-5 w-5 text-status-warning-text" })
|
|
115
118
|
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("p", {
|
|
116
|
-
className: "text-2xl font-bold",
|
|
119
|
+
className: "text-2xl font-bold tabular-nums",
|
|
117
120
|
children: [L, "%"]
|
|
118
121
|
}), /* @__PURE__ */ m("p", {
|
|
119
|
-
className: "text-xs text-
|
|
122
|
+
className: "text-xs text-text-secondary",
|
|
120
123
|
children: "Avg. In-Progress"
|
|
121
124
|
})] })]
|
|
122
125
|
})
|
|
123
|
-
})
|
|
124
|
-
/* @__PURE__ */ m(
|
|
125
|
-
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ m(b, {
|
|
128
|
+
treatment: "glass",
|
|
129
|
+
glow: !0,
|
|
130
|
+
className: "border-border-seam",
|
|
126
131
|
children: /* @__PURE__ */ h("div", {
|
|
127
132
|
className: "flex items-center gap-3",
|
|
128
133
|
children: [/* @__PURE__ */ m("div", {
|
|
129
|
-
className: "rounded-lg bg-purple-
|
|
130
|
-
children: /* @__PURE__ */ m(c, { className: "h-5 w-5 text-purple
|
|
134
|
+
className: "rounded-lg bg-accent-purple-subtle p-2",
|
|
135
|
+
children: /* @__PURE__ */ m(c, { className: "h-5 w-5 text-accent-purple" })
|
|
131
136
|
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("p", {
|
|
132
|
-
className: "text-2xl font-bold",
|
|
137
|
+
className: "text-2xl font-bold tabular-nums",
|
|
133
138
|
children: ["$", I.toLocaleString()]
|
|
134
139
|
}), /* @__PURE__ */ m("p", {
|
|
135
|
-
className: "text-xs text-
|
|
140
|
+
className: "text-xs text-text-secondary",
|
|
136
141
|
children: "Total Budget"
|
|
137
142
|
})] })]
|
|
138
143
|
})
|
|
139
|
-
})
|
|
144
|
+
})
|
|
140
145
|
]
|
|
141
146
|
}),
|
|
142
147
|
/* @__PURE__ */ h("div", {
|
|
143
148
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center",
|
|
144
149
|
children: [/* @__PURE__ */ h("div", {
|
|
145
150
|
className: "relative flex-1",
|
|
146
|
-
children: [/* @__PURE__ */ m(d, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-
|
|
151
|
+
children: [/* @__PURE__ */ m(d, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ m(S, {
|
|
147
152
|
placeholder: "Search bookings by title, provider, or service...",
|
|
148
153
|
value: p,
|
|
149
154
|
onChange: (e) => w(e.target.value),
|
|
150
155
|
className: "pl-10"
|
|
151
156
|
})]
|
|
152
157
|
}), /* @__PURE__ */ h("div", {
|
|
153
|
-
className: "flex items-center gap-2",
|
|
154
|
-
children: [/* @__PURE__ */ m(l, { className: "h-4 w-4 text-
|
|
158
|
+
className: "flex flex-wrap items-center gap-2",
|
|
159
|
+
children: [/* @__PURE__ */ m(l, { className: "h-4 w-4 text-text-secondary" }), [
|
|
155
160
|
"all",
|
|
156
161
|
"pending",
|
|
157
162
|
"in_progress",
|
|
@@ -162,7 +167,7 @@ function w() {
|
|
|
162
167
|
size: "sm",
|
|
163
168
|
onClick: () => E(e),
|
|
164
169
|
children: [e === "all" ? "All" : C[e].label, /* @__PURE__ */ h("span", {
|
|
165
|
-
className: "ml-1 text-xs opacity-70",
|
|
170
|
+
className: "ml-1 text-xs opacity-70 tabular-nums",
|
|
166
171
|
children: [
|
|
167
172
|
"(",
|
|
168
173
|
F[e] ?? 0,
|
|
@@ -173,7 +178,7 @@ function w() {
|
|
|
173
178
|
})]
|
|
174
179
|
}),
|
|
175
180
|
/* @__PURE__ */ m("div", {
|
|
176
|
-
className: "flex gap-2",
|
|
181
|
+
className: "flex flex-wrap gap-2",
|
|
177
182
|
children: [
|
|
178
183
|
{
|
|
179
184
|
field: "date",
|
|
@@ -189,7 +194,8 @@ function w() {
|
|
|
189
194
|
}
|
|
190
195
|
].map(({ field: e, label: t }) => /* @__PURE__ */ h("button", {
|
|
191
196
|
onClick: () => R(e),
|
|
192
|
-
|
|
197
|
+
"aria-pressed": D === e,
|
|
198
|
+
className: `flex items-center gap-1 rounded border px-3 py-1 text-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${D === e ? "border-border-strong bg-accent-soft text-text-primary" : "border-border-seam text-text-secondary hover:bg-bg-sunken/50"}`,
|
|
193
199
|
children: [/* @__PURE__ */ m(r, { className: "h-3 w-3" }), t]
|
|
194
200
|
}, e))
|
|
195
201
|
}),
|
|
@@ -197,13 +203,20 @@ function w() {
|
|
|
197
203
|
className: "grid gap-6 lg:grid-cols-3",
|
|
198
204
|
children: [/* @__PURE__ */ m("div", {
|
|
199
205
|
className: `space-y-3 ${P ? "lg:col-span-2" : "lg:col-span-3"}`,
|
|
200
|
-
children: N.length === 0 ? /* @__PURE__ */ m(v, {
|
|
201
|
-
className: "
|
|
202
|
-
children:
|
|
203
|
-
|
|
206
|
+
children: N.length === 0 ? /* @__PURE__ */ m(v, {
|
|
207
|
+
className: "border-border-seam",
|
|
208
|
+
children: /* @__PURE__ */ m(y, {
|
|
209
|
+
className: "py-4",
|
|
210
|
+
children: /* @__PURE__ */ m(x, {
|
|
211
|
+
illustration: "empty-search",
|
|
212
|
+
title: "No bookings found",
|
|
213
|
+
description: "No bookings match your current filters."
|
|
214
|
+
})
|
|
215
|
+
})
|
|
216
|
+
}) : N.map((e) => {
|
|
204
217
|
let t = C[e.status], n = t.icon;
|
|
205
218
|
return /* @__PURE__ */ m(v, {
|
|
206
|
-
className: `cursor-pointer transition-
|
|
219
|
+
className: `cursor-pointer border-border-seam transition-shadow hover:shadow-pop ${j === e.id ? "border-border-strong ring-1 ring-border-focus" : ""}`,
|
|
207
220
|
onClick: () => M(j === e.id ? null : e.id),
|
|
208
221
|
children: /* @__PURE__ */ h(y, {
|
|
209
222
|
className: "pt-4",
|
|
@@ -220,11 +233,11 @@ function w() {
|
|
|
220
233
|
})]
|
|
221
234
|
}),
|
|
222
235
|
/* @__PURE__ */ m("p", {
|
|
223
|
-
className: "text-sm text-
|
|
236
|
+
className: "text-sm text-text-secondary line-clamp-1",
|
|
224
237
|
children: e.description
|
|
225
238
|
}),
|
|
226
239
|
/* @__PURE__ */ h("div", {
|
|
227
|
-
className: "flex flex-wrap items-center gap-4 text-xs text-
|
|
240
|
+
className: "flex flex-wrap items-center gap-4 text-xs text-text-secondary",
|
|
228
241
|
children: [
|
|
229
242
|
/* @__PURE__ */ h("span", {
|
|
230
243
|
className: "flex items-center gap-1",
|
|
@@ -243,7 +256,7 @@ function w() {
|
|
|
243
256
|
]
|
|
244
257
|
}),
|
|
245
258
|
/* @__PURE__ */ h("span", {
|
|
246
|
-
className: "flex items-center gap-1",
|
|
259
|
+
className: "flex items-center gap-1 tabular-nums",
|
|
247
260
|
children: [
|
|
248
261
|
/* @__PURE__ */ m(c, { className: "h-3 w-3" }),
|
|
249
262
|
" $",
|
|
@@ -261,18 +274,18 @@ function w() {
|
|
|
261
274
|
children: t.label
|
|
262
275
|
}),
|
|
263
276
|
e.status === "in_progress" && /* @__PURE__ */ h("span", {
|
|
264
|
-
className: "text-sm font-medium",
|
|
277
|
+
className: "text-sm font-medium tabular-nums",
|
|
265
278
|
children: [e.progress, "%"]
|
|
266
279
|
}),
|
|
267
|
-
/* @__PURE__ */ m(o, { className: "h-4 w-4 text-
|
|
280
|
+
/* @__PURE__ */ m(o, { className: "h-4 w-4 text-text-secondary" })
|
|
268
281
|
]
|
|
269
282
|
})]
|
|
270
283
|
}), e.status === "in_progress" && /* @__PURE__ */ m("div", {
|
|
271
284
|
className: "mt-3",
|
|
272
285
|
children: /* @__PURE__ */ m("div", {
|
|
273
|
-
className: "h-2 w-full overflow-hidden rounded-full bg-
|
|
286
|
+
className: "h-2 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
274
287
|
children: /* @__PURE__ */ m("div", {
|
|
275
|
-
className: "h-2 rounded-full bg-
|
|
288
|
+
className: "h-2 rounded-full bg-action-primary-bg transition-all",
|
|
276
289
|
style: { width: `${e.progress}%` }
|
|
277
290
|
})
|
|
278
291
|
})
|
|
@@ -282,138 +295,142 @@ function w() {
|
|
|
282
295
|
})
|
|
283
296
|
}), P && /* @__PURE__ */ m("div", {
|
|
284
297
|
className: "space-y-4",
|
|
285
|
-
children: /* @__PURE__ */ h(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
className: "space-y-2 border-t pt-3 text-sm",
|
|
328
|
-
children: [
|
|
329
|
-
/* @__PURE__ */ h("div", {
|
|
330
|
-
className: "flex justify-between",
|
|
331
|
-
children: [/* @__PURE__ */ m("span", {
|
|
332
|
-
className: "text-muted-foreground",
|
|
333
|
-
children: "Service"
|
|
334
|
-
}), /* @__PURE__ */ m("span", {
|
|
335
|
-
className: "font-medium",
|
|
336
|
-
children: P.serviceName
|
|
337
|
-
})]
|
|
338
|
-
}),
|
|
339
|
-
/* @__PURE__ */ h("div", {
|
|
340
|
-
className: "flex justify-between",
|
|
341
|
-
children: [/* @__PURE__ */ m("span", {
|
|
342
|
-
className: "text-muted-foreground",
|
|
343
|
-
children: "Provider"
|
|
344
|
-
}), /* @__PURE__ */ m("span", {
|
|
345
|
-
className: "font-medium",
|
|
346
|
-
children: P.providerName
|
|
347
|
-
})]
|
|
348
|
-
}),
|
|
349
|
-
/* @__PURE__ */ h("div", {
|
|
350
|
-
className: "flex justify-between",
|
|
351
|
-
children: [/* @__PURE__ */ m("span", {
|
|
352
|
-
className: "text-muted-foreground",
|
|
353
|
-
children: "Budget"
|
|
354
|
-
}), /* @__PURE__ */ h("span", {
|
|
355
|
-
className: "font-medium",
|
|
356
|
-
children: ["$", P.budget.toLocaleString()]
|
|
357
|
-
})]
|
|
358
|
-
}),
|
|
359
|
-
/* @__PURE__ */ h("div", {
|
|
360
|
-
className: "flex justify-between",
|
|
361
|
-
children: [/* @__PURE__ */ m("span", {
|
|
362
|
-
className: "text-muted-foreground",
|
|
363
|
-
children: "Start Date"
|
|
364
|
-
}), /* @__PURE__ */ m("span", {
|
|
365
|
-
className: "font-medium",
|
|
366
|
-
children: P.startDate
|
|
367
|
-
})]
|
|
368
|
-
}),
|
|
369
|
-
/* @__PURE__ */ h("div", {
|
|
370
|
-
className: "flex justify-between",
|
|
371
|
-
children: [/* @__PURE__ */ m("span", {
|
|
372
|
-
className: "text-muted-foreground",
|
|
373
|
-
children: "End Date"
|
|
374
|
-
}), /* @__PURE__ */ m("span", {
|
|
375
|
-
className: "font-medium",
|
|
376
|
-
children: P.endDate
|
|
377
|
-
})]
|
|
378
|
-
}),
|
|
379
|
-
/* @__PURE__ */ h("div", {
|
|
380
|
-
className: "flex justify-between",
|
|
381
|
-
children: [/* @__PURE__ */ m("span", {
|
|
382
|
-
className: "text-muted-foreground",
|
|
383
|
-
children: "Payment"
|
|
384
|
-
}), /* @__PURE__ */ m(g, {
|
|
385
|
-
variant: "secondary",
|
|
386
|
-
children: P.paymentStatus
|
|
387
|
-
})]
|
|
388
|
-
}),
|
|
389
|
-
/* @__PURE__ */ h("div", {
|
|
390
|
-
className: "flex justify-between",
|
|
391
|
-
children: [/* @__PURE__ */ m("span", {
|
|
392
|
-
className: "text-muted-foreground",
|
|
393
|
-
children: "Method"
|
|
394
|
-
}), /* @__PURE__ */ m("span", {
|
|
395
|
-
className: "font-medium",
|
|
396
|
-
children: P.paymentMethod.replace("_", " ")
|
|
397
|
-
})]
|
|
298
|
+
children: /* @__PURE__ */ h(b, {
|
|
299
|
+
treatment: "glass",
|
|
300
|
+
className: "border-border-seam lg:sticky lg:top-6",
|
|
301
|
+
children: [/* @__PURE__ */ h("div", {
|
|
302
|
+
className: "flex items-center justify-between",
|
|
303
|
+
children: [/* @__PURE__ */ m("h2", {
|
|
304
|
+
className: "text-base font-semibold tracking-tight",
|
|
305
|
+
children: "Booking Details"
|
|
306
|
+
}), /* @__PURE__ */ m(_, {
|
|
307
|
+
variant: "outline",
|
|
308
|
+
size: "sm",
|
|
309
|
+
onClick: () => M(null),
|
|
310
|
+
children: "Close"
|
|
311
|
+
})]
|
|
312
|
+
}), /* @__PURE__ */ h("div", {
|
|
313
|
+
className: "mt-4 space-y-4",
|
|
314
|
+
children: [
|
|
315
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h3", {
|
|
316
|
+
className: "font-semibold",
|
|
317
|
+
children: P.title
|
|
318
|
+
}), /* @__PURE__ */ m("p", {
|
|
319
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
320
|
+
children: P.description
|
|
321
|
+
})] }),
|
|
322
|
+
/* @__PURE__ */ m(g, {
|
|
323
|
+
variant: C[P.status].badgeVariant,
|
|
324
|
+
children: C[P.status].label
|
|
325
|
+
}),
|
|
326
|
+
P.status === "in_progress" && /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("div", {
|
|
327
|
+
className: "flex items-center justify-between text-sm",
|
|
328
|
+
children: [/* @__PURE__ */ m("span", {
|
|
329
|
+
className: "text-text-secondary",
|
|
330
|
+
children: "Progress"
|
|
331
|
+
}), /* @__PURE__ */ h("span", {
|
|
332
|
+
className: "font-medium tabular-nums",
|
|
333
|
+
children: [P.progress, "%"]
|
|
334
|
+
})]
|
|
335
|
+
}), /* @__PURE__ */ m("div", {
|
|
336
|
+
className: "mt-1 h-2 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
337
|
+
children: /* @__PURE__ */ m("div", {
|
|
338
|
+
className: "h-2 rounded-full bg-action-primary-bg",
|
|
339
|
+
style: { width: `${P.progress}%` }
|
|
398
340
|
})
|
|
399
|
-
]
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
341
|
+
})] }),
|
|
342
|
+
/* @__PURE__ */ h("div", {
|
|
343
|
+
className: "space-y-2 border-t border-border-seam pt-3 text-sm",
|
|
344
|
+
children: [
|
|
345
|
+
/* @__PURE__ */ h("div", {
|
|
346
|
+
className: "flex justify-between",
|
|
347
|
+
children: [/* @__PURE__ */ m("span", {
|
|
348
|
+
className: "text-text-secondary",
|
|
349
|
+
children: "Service"
|
|
350
|
+
}), /* @__PURE__ */ m("span", {
|
|
351
|
+
className: "font-medium",
|
|
352
|
+
children: P.serviceName
|
|
353
|
+
})]
|
|
354
|
+
}),
|
|
355
|
+
/* @__PURE__ */ h("div", {
|
|
356
|
+
className: "flex justify-between",
|
|
357
|
+
children: [/* @__PURE__ */ m("span", {
|
|
358
|
+
className: "text-text-secondary",
|
|
359
|
+
children: "Provider"
|
|
360
|
+
}), /* @__PURE__ */ m("span", {
|
|
361
|
+
className: "font-medium",
|
|
362
|
+
children: P.providerName
|
|
363
|
+
})]
|
|
364
|
+
}),
|
|
365
|
+
/* @__PURE__ */ h("div", {
|
|
366
|
+
className: "flex justify-between",
|
|
367
|
+
children: [/* @__PURE__ */ m("span", {
|
|
368
|
+
className: "text-text-secondary",
|
|
369
|
+
children: "Budget"
|
|
370
|
+
}), /* @__PURE__ */ h("span", {
|
|
371
|
+
className: "font-medium tabular-nums",
|
|
372
|
+
children: ["$", P.budget.toLocaleString()]
|
|
373
|
+
})]
|
|
374
|
+
}),
|
|
375
|
+
/* @__PURE__ */ h("div", {
|
|
376
|
+
className: "flex justify-between",
|
|
377
|
+
children: [/* @__PURE__ */ m("span", {
|
|
378
|
+
className: "text-text-secondary",
|
|
379
|
+
children: "Start Date"
|
|
380
|
+
}), /* @__PURE__ */ m("span", {
|
|
381
|
+
className: "font-medium",
|
|
382
|
+
children: P.startDate
|
|
383
|
+
})]
|
|
384
|
+
}),
|
|
385
|
+
/* @__PURE__ */ h("div", {
|
|
386
|
+
className: "flex justify-between",
|
|
387
|
+
children: [/* @__PURE__ */ m("span", {
|
|
388
|
+
className: "text-text-secondary",
|
|
389
|
+
children: "End Date"
|
|
390
|
+
}), /* @__PURE__ */ m("span", {
|
|
391
|
+
className: "font-medium",
|
|
392
|
+
children: P.endDate
|
|
393
|
+
})]
|
|
394
|
+
}),
|
|
395
|
+
/* @__PURE__ */ h("div", {
|
|
396
|
+
className: "flex justify-between",
|
|
397
|
+
children: [/* @__PURE__ */ m("span", {
|
|
398
|
+
className: "text-text-secondary",
|
|
399
|
+
children: "Payment"
|
|
400
|
+
}), /* @__PURE__ */ m(g, {
|
|
401
|
+
variant: "secondary",
|
|
402
|
+
children: P.paymentStatus
|
|
403
|
+
})]
|
|
404
|
+
}),
|
|
405
|
+
/* @__PURE__ */ h("div", {
|
|
406
|
+
className: "flex justify-between",
|
|
407
|
+
children: [/* @__PURE__ */ m("span", {
|
|
408
|
+
className: "text-text-secondary",
|
|
409
|
+
children: "Method"
|
|
410
|
+
}), /* @__PURE__ */ m("span", {
|
|
411
|
+
className: "font-medium",
|
|
412
|
+
children: P.paymentMethod.replace("_", " ")
|
|
413
|
+
})]
|
|
414
|
+
})
|
|
415
|
+
]
|
|
416
|
+
}),
|
|
417
|
+
/* @__PURE__ */ h("div", {
|
|
418
|
+
className: "flex gap-2 border-t border-border-seam pt-3",
|
|
419
|
+
children: [/* @__PURE__ */ m(_, {
|
|
420
|
+
className: "flex-1",
|
|
421
|
+
size: "sm",
|
|
422
|
+
variant: "outline",
|
|
423
|
+
children: "Message Provider"
|
|
424
|
+
}), P.status === "pending" && /* @__PURE__ */ m(_, {
|
|
425
|
+
className: "flex-1",
|
|
426
|
+
size: "sm",
|
|
427
|
+
variant: "destructive",
|
|
428
|
+
children: "Cancel"
|
|
429
|
+
})]
|
|
430
|
+
})
|
|
431
|
+
]
|
|
432
|
+
})]
|
|
433
|
+
})
|
|
417
434
|
})]
|
|
418
435
|
})
|
|
419
436
|
]
|