@burdenoff/microfe-proserviceworld 2026.625.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.
Files changed (31) hide show
  1. package/dist/proserviceworld/pages/AdminReportsPage.js +102 -68
  2. package/dist/proserviceworld/pages/AdminReportsPage.js.map +1 -1
  3. package/dist/proserviceworld/pages/AdminUsersPage.js +37 -33
  4. package/dist/proserviceworld/pages/AdminUsersPage.js.map +1 -1
  5. package/dist/proserviceworld/pages/AnalyticsPage.js +66 -36
  6. package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
  7. package/dist/proserviceworld/pages/BookingsPage.js +52 -48
  8. package/dist/proserviceworld/pages/BookingsPage.js.map +1 -1
  9. package/dist/proserviceworld/pages/DashboardPage.js +275 -243
  10. package/dist/proserviceworld/pages/DashboardPage.js.map +1 -1
  11. package/dist/proserviceworld/pages/DocumentsPage.js +204 -200
  12. package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
  13. package/dist/proserviceworld/pages/MessagesPage.js +200 -186
  14. package/dist/proserviceworld/pages/MessagesPage.js.map +1 -1
  15. package/dist/proserviceworld/pages/PaymentsPage.js +70 -39
  16. package/dist/proserviceworld/pages/PaymentsPage.js.map +1 -1
  17. package/dist/proserviceworld/pages/ProjectsPage.js +510 -477
  18. package/dist/proserviceworld/pages/ProjectsPage.js.map +1 -1
  19. package/dist/proserviceworld/pages/ProviderDetailPage.js +71 -41
  20. package/dist/proserviceworld/pages/ProviderDetailPage.js.map +1 -1
  21. package/dist/proserviceworld/pages/ProvidersPage.js +62 -58
  22. package/dist/proserviceworld/pages/ProvidersPage.js.map +1 -1
  23. package/dist/proserviceworld/pages/ReviewsPage.js +80 -63
  24. package/dist/proserviceworld/pages/ReviewsPage.js.map +1 -1
  25. package/dist/proserviceworld/pages/ServiceDetailsPage.js +118 -83
  26. package/dist/proserviceworld/pages/ServiceDetailsPage.js.map +1 -1
  27. package/dist/proserviceworld/pages/ServicesPage.js +134 -130
  28. package/dist/proserviceworld/pages/ServicesPage.js.map +1 -1
  29. package/dist/proserviceworld/pages/VerificationPage.js +23 -19
  30. package/dist/proserviceworld/pages/VerificationPage.js.map +1 -1
  31. package/package.json +2 -2
@@ -2,18 +2,19 @@ import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
2
2
  import { useState as t } from "react";
3
3
  import { ArrowLeft as n, BookOpen as r, Calendar as i, CheckCircle2 as a, ChevronDown as o, ChevronUp as s, ClipboardList as c, Clock as l, DollarSign as u, FileText as d, MessageSquare as f, Package as p, Shield as m, Star as h, Tag as g, User as _ } from "lucide-react";
4
4
  import { jsx as v, jsxs as y } from "react/jsx-runtime";
5
- import { Badge as b, Button as x, Card as S, CardContent as C, CardHeader as w, CardTitle as T, EmphasisPanel as E, GlassCard as D, ShowMore as O } from "@burdenoff/fe-libs/ui";
5
+ import { Badge as b, Button as x, Card as S, CardContent as C, CardHeader as w, CardTitle as T, EmphasisPanel as E, GlassCard as D, IllustratedEmptyState as O, NextSteps as k, PagePurpose as A, ShowMore as j } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/proserviceworld/pages/ServiceDetailsPage.tsx
7
- function k() {
8
- let { services: k, providers: A } = e(), [j, M] = t(k[0]?.id ?? ""), [N, P] = t("packages"), [F, I] = t(null), [L, R] = t(!1), [z, B] = t(null), V = k.find((e) => e.id === j) ?? k[0], H = V ? A.find((e) => e.id === V.providerId) : null;
9
- if (!V) return /* @__PURE__ */ v("div", {
10
- className: "flex items-center justify-center p-12",
11
- children: /* @__PURE__ */ v("p", {
12
- className: "text-text-secondary",
13
- children: "No services available."
7
+ function M() {
8
+ let { services: M, providers: N } = e(), [P, F] = t(M[0]?.id ?? ""), [I, L] = t("packages"), [R, z] = t(null), [B, V] = t(!1), [H, U] = t(null), W = M.find((e) => e.id === P) ?? M[0], G = W ? N.find((e) => e.id === W.providerId) : null;
9
+ if (!W) return /* @__PURE__ */ v("div", {
10
+ className: "p-6 bg-bg-canvas min-h-screen",
11
+ children: /* @__PURE__ */ v(O, {
12
+ illustration: "empty-data",
13
+ title: "No services available",
14
+ description: "There are no services to display yet. Once services are published they will appear here with full package and provider details."
14
15
  })
15
16
  });
16
- let U = [
17
+ let K = [
17
18
  {
18
19
  key: "packages",
19
20
  label: "Packages",
@@ -34,7 +35,7 @@ function k() {
34
35
  label: "FAQ",
35
36
  icon: r
36
37
  }
37
- ], W = V.pricing.type === "hourly" ? `$${V.pricing.hourlyRate}/hr` : V.pricing.type === "fixed" ? `$${V.pricing.basePrice.toLocaleString()} fixed` : `From $${V.pricing.basePrice.toLocaleString()}`;
38
+ ], q = W.pricing.type === "hourly" ? `$${W.pricing.hourlyRate}/hr` : W.pricing.type === "fixed" ? `$${W.pricing.basePrice.toLocaleString()} fixed` : `From $${W.pricing.basePrice.toLocaleString()}`;
38
39
  return /* @__PURE__ */ y("div", {
39
40
  className: "space-y-6 p-6 bg-bg-canvas min-h-screen",
40
41
  children: [
@@ -46,7 +47,7 @@ function k() {
46
47
  /* @__PURE__ */ y(x, {
47
48
  variant: "outline",
48
49
  size: "sm",
49
- onClick: () => M(k[0]?.id ?? ""),
50
+ onClick: () => F(M[0]?.id ?? ""),
50
51
  children: [/* @__PURE__ */ v(n, { className: "mr-2 h-4 w-4" }), " Services"]
51
52
  }),
52
53
  /* @__PURE__ */ v("span", {
@@ -56,9 +57,9 @@ function k() {
56
57
  /* @__PURE__ */ v("select", {
57
58
  "aria-label": "Select service",
58
59
  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",
59
- value: j,
60
- onChange: (e) => M(e.target.value),
61
- children: k.map((e) => /* @__PURE__ */ v("option", {
60
+ value: P,
61
+ onChange: (e) => F(e.target.value),
62
+ children: M.map((e) => /* @__PURE__ */ v("option", {
62
63
  value: e.id,
63
64
  children: e.title
64
65
  }, e.id))
@@ -66,10 +67,40 @@ function k() {
66
67
  ]
67
68
  }), /* @__PURE__ */ y(x, {
68
69
  size: "sm",
69
- onClick: () => R(!0),
70
+ onClick: () => V(!0),
70
71
  children: [/* @__PURE__ */ v(i, { className: "mr-2 h-4 w-4" }), " Book This Service"]
71
72
  })]
72
73
  }),
74
+ /* @__PURE__ */ v(A, {
75
+ icon: /* @__PURE__ */ v(p, { className: "h-4 w-4" }),
76
+ children: "Everything you need to decide on this service. Compare packages and pricing, see exactly what you will receive and what is required from you, read the FAQ, and review the provider behind it — then book the package that fits your project."
77
+ }),
78
+ /* @__PURE__ */ v(k, {
79
+ storageKey: "proserviceworld-service-details",
80
+ steps: [
81
+ {
82
+ id: "packages",
83
+ label: "Compare packages",
84
+ description: "Review tiers, features, and pricing to pick the right fit.",
85
+ icon: /* @__PURE__ */ v(p, { className: "h-4 w-4" }),
86
+ onClick: () => L("packages")
87
+ },
88
+ {
89
+ id: "requirements",
90
+ label: "Check what is required",
91
+ description: "See the deliverables and what the provider needs from you.",
92
+ icon: /* @__PURE__ */ v(c, { className: "h-4 w-4" }),
93
+ onClick: () => L("requirements")
94
+ },
95
+ {
96
+ id: "book",
97
+ label: "Book this service",
98
+ description: "Select a package and confirm your booking.",
99
+ icon: /* @__PURE__ */ v(i, { className: "h-4 w-4" }),
100
+ onClick: () => V(!0)
101
+ }
102
+ ]
103
+ }),
73
104
  /* @__PURE__ */ y("div", {
74
105
  className: "grid gap-6 lg:grid-cols-3",
75
106
  children: [/* @__PURE__ */ y("div", {
@@ -86,34 +117,34 @@ function k() {
86
117
  /* @__PURE__ */ y("div", {
87
118
  className: "flex items-center gap-2",
88
119
  children: [
89
- V.featured && /* @__PURE__ */ v(b, { children: "Featured" }),
120
+ W.featured && /* @__PURE__ */ v(b, { children: "Featured" }),
90
121
  /* @__PURE__ */ v(b, {
91
122
  variant: "secondary",
92
- children: V.category.replace(/_/g, " ")
123
+ children: W.category.replace(/_/g, " ")
93
124
  }),
94
125
  /* @__PURE__ */ v(b, {
95
126
  variant: "outline",
96
- children: V.subcategory
127
+ children: W.subcategory
97
128
  })
98
129
  ]
99
130
  }),
100
131
  /* @__PURE__ */ v("h1", {
101
132
  className: "text-2xl font-bold tracking-tight",
102
- children: V.title
133
+ children: W.title
103
134
  }),
104
135
  /* @__PURE__ */ v("p", {
105
136
  className: "max-w-2xl text-text-secondary",
106
- children: V.description
137
+ children: W.description
107
138
  })
108
139
  ]
109
140
  }), /* @__PURE__ */ y("div", {
110
141
  className: "text-right",
111
142
  children: [/* @__PURE__ */ v("p", {
112
143
  className: "text-2xl font-bold text-accent-blue tabular-nums",
113
- children: W
144
+ children: q
114
145
  }), /* @__PURE__ */ y("p", {
115
146
  className: "text-xs text-text-secondary",
116
- children: [V.pricing.type, " pricing"]
147
+ children: [W.pricing.type, " pricing"]
117
148
  })]
118
149
  })]
119
150
  }),
@@ -126,13 +157,13 @@ function k() {
126
157
  /* @__PURE__ */ v(h, { className: "h-4 w-4 text-status-warning-text" }),
127
158
  /* @__PURE__ */ v("span", {
128
159
  className: "text-sm font-medium tabular-nums",
129
- children: V.rating
160
+ children: W.rating
130
161
  }),
131
162
  /* @__PURE__ */ y("span", {
132
163
  className: "text-xs text-text-secondary",
133
164
  children: [
134
165
  "(",
135
- V.providerReviews,
166
+ W.providerReviews,
136
167
  " reviews)"
137
168
  ]
138
169
  })
@@ -142,14 +173,14 @@ function k() {
142
173
  className: "flex items-center gap-2",
143
174
  children: [/* @__PURE__ */ v(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ y("span", {
144
175
  className: "text-sm tabular-nums",
145
- children: [V.duration.typical, " days typical"]
176
+ children: [W.duration.typical, " days typical"]
146
177
  })]
147
178
  }),
148
179
  /* @__PURE__ */ y("div", {
149
180
  className: "flex items-center gap-2",
150
181
  children: [/* @__PURE__ */ v(a, { className: "h-4 w-4 text-status-success-text" }), /* @__PURE__ */ y("span", {
151
182
  className: "text-sm tabular-nums",
152
- children: [V.totalBookings, " bookings"]
183
+ children: [W.totalBookings, " bookings"]
153
184
  })]
154
185
  }),
155
186
  /* @__PURE__ */ y("div", {
@@ -157,18 +188,18 @@ function k() {
157
188
  children: [/* @__PURE__ */ v(i, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ y("span", {
158
189
  className: "text-sm tabular-nums",
159
190
  children: [
160
- V.duration.min,
191
+ W.duration.min,
161
192
  "-",
162
- V.duration.max,
193
+ W.duration.max,
163
194
  " days range"
164
195
  ]
165
196
  })]
166
197
  })
167
198
  ]
168
199
  }),
169
- V.tags.length > 0 && /* @__PURE__ */ y("div", {
200
+ W.tags.length > 0 && /* @__PURE__ */ y("div", {
170
201
  className: "mt-4 flex flex-wrap items-center gap-2",
171
- children: [/* @__PURE__ */ v(g, { className: "h-4 w-4 text-text-secondary" }), V.tags.map((e) => /* @__PURE__ */ v(b, {
202
+ children: [/* @__PURE__ */ v(g, { className: "h-4 w-4 text-text-secondary" }), W.tags.map((e) => /* @__PURE__ */ v(b, {
172
203
  variant: "outline",
173
204
  className: "text-xs",
174
205
  children: e
@@ -178,19 +209,19 @@ function k() {
178
209
  }),
179
210
  /* @__PURE__ */ v("div", {
180
211
  className: "flex gap-1 border-b border-border-seam",
181
- children: U.map(({ key: e, label: t, icon: n }) => /* @__PURE__ */ y("button", {
182
- onClick: () => P(e),
183
- "aria-pressed": N === e,
184
- className: `flex items-center gap-2 border-b-2 px-4 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${N === e ? "border-accent-blue text-accent-blue" : "border-transparent text-text-secondary hover:text-text-primary"}`,
212
+ children: K.map(({ key: e, label: t, icon: n }) => /* @__PURE__ */ y("button", {
213
+ onClick: () => L(e),
214
+ "aria-pressed": I === e,
215
+ className: `flex items-center gap-2 border-b-2 px-4 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${I === e ? "border-accent-blue text-accent-blue" : "border-transparent text-text-secondary hover:text-text-primary"}`,
185
216
  children: [/* @__PURE__ */ v(n, { className: "h-4 w-4" }), t]
186
217
  }, e))
187
218
  }),
188
- N === "packages" && /* @__PURE__ */ v("div", {
219
+ I === "packages" && /* @__PURE__ */ v("div", {
189
220
  className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
190
- children: V.packages.map((e) => /* @__PURE__ */ y(D, {
221
+ children: W.packages.map((e) => /* @__PURE__ */ y(D, {
191
222
  treatment: e.popular ? "glass" : "plain",
192
223
  glow: e.popular,
193
- className: `relative border-border-seam ${z === e.id ? "ring-1 ring-accent-blue" : ""}`,
224
+ className: `relative border-border-seam ${H === e.id ? "ring-1 ring-accent-blue" : ""}`,
194
225
  children: [
195
226
  e.popular && /* @__PURE__ */ v("div", {
196
227
  className: "absolute -top-3 left-1/2 -translate-x-1/2",
@@ -234,7 +265,7 @@ function k() {
234
265
  className: "w-full",
235
266
  variant: e.popular ? "default" : "outline",
236
267
  onClick: () => {
237
- B(e.id), R(!0);
268
+ U(e.id), V(!0);
238
269
  },
239
270
  children: "Select Package"
240
271
  })
@@ -243,16 +274,16 @@ function k() {
243
274
  ]
244
275
  }, e.id))
245
276
  }),
246
- N === "deliverables" && /* @__PURE__ */ y(S, {
277
+ I === "deliverables" && /* @__PURE__ */ y(S, {
247
278
  className: "border-border-seam",
248
279
  children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, {
249
280
  className: "text-base",
250
281
  children: "What You'll Receive"
251
- }) }), /* @__PURE__ */ v(C, { children: /* @__PURE__ */ v(O, {
282
+ }) }), /* @__PURE__ */ v(C, { children: /* @__PURE__ */ v(j, {
252
283
  collapsedHeight: 180,
253
284
  children: /* @__PURE__ */ v("ul", {
254
285
  className: "grid gap-3 sm:grid-cols-2",
255
- children: V.deliverables.map((e, t) => /* @__PURE__ */ y("li", {
286
+ children: W.deliverables.map((e, t) => /* @__PURE__ */ y("li", {
256
287
  className: "flex items-center gap-3 rounded-lg border border-border-seam p-3",
257
288
  children: [/* @__PURE__ */ v(d, { className: "h-5 w-5 text-accent-blue" }), /* @__PURE__ */ v("span", {
258
289
  className: "text-sm font-medium",
@@ -262,16 +293,16 @@ function k() {
262
293
  })
263
294
  }) })]
264
295
  }),
265
- N === "requirements" && /* @__PURE__ */ y(S, {
296
+ I === "requirements" && /* @__PURE__ */ y(S, {
266
297
  className: "border-border-seam",
267
298
  children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, {
268
299
  className: "text-base",
269
300
  children: "What We Need From You"
270
- }) }), /* @__PURE__ */ v(C, { children: /* @__PURE__ */ v(O, {
301
+ }) }), /* @__PURE__ */ v(C, { children: /* @__PURE__ */ v(j, {
271
302
  collapsedHeight: 180,
272
303
  children: /* @__PURE__ */ v("ul", {
273
304
  className: "space-y-3",
274
- children: V.requirements.map((e, t) => /* @__PURE__ */ y("li", {
305
+ children: W.requirements.map((e, t) => /* @__PURE__ */ y("li", {
275
306
  className: "flex items-start gap-3 rounded-lg border border-border-seam p-3",
276
307
  children: [/* @__PURE__ */ v(c, { className: "mt-0.5 h-5 w-5 text-status-warning-text" }), /* @__PURE__ */ v("span", {
277
308
  className: "text-sm",
@@ -281,25 +312,29 @@ function k() {
281
312
  })
282
313
  }) })]
283
314
  }),
284
- N === "faq" && /* @__PURE__ */ v("div", {
315
+ I === "faq" && /* @__PURE__ */ v("div", {
285
316
  className: "space-y-3",
286
- children: V.faq.length === 0 ? /* @__PURE__ */ v(S, {
317
+ children: W.faq.length === 0 ? /* @__PURE__ */ v(S, {
287
318
  className: "border-border-seam",
288
319
  children: /* @__PURE__ */ v(C, {
289
- className: "py-8 text-center text-text-secondary",
290
- children: "No FAQ items for this service yet."
320
+ className: "py-6",
321
+ children: /* @__PURE__ */ v(O, {
322
+ illustration: "empty-generic",
323
+ title: "No FAQ items yet",
324
+ description: "This service does not have any frequently asked questions yet. Message the provider if you have a question before booking."
325
+ })
291
326
  })
292
- }) : V.faq.map((e) => /* @__PURE__ */ y(S, {
327
+ }) : W.faq.map((e) => /* @__PURE__ */ y(S, {
293
328
  className: "border-border-seam",
294
329
  children: [/* @__PURE__ */ y("button", {
295
330
  className: "flex w-full items-center justify-between p-4 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
296
- "aria-expanded": F === e.id,
297
- onClick: () => I(F === e.id ? null : e.id),
331
+ "aria-expanded": R === e.id,
332
+ onClick: () => z(R === e.id ? null : e.id),
298
333
  children: [/* @__PURE__ */ v("span", {
299
334
  className: "font-medium",
300
335
  children: e.question
301
- }), F === e.id ? /* @__PURE__ */ v(s, { className: "h-4 w-4 text-text-secondary" }) : /* @__PURE__ */ v(o, { className: "h-4 w-4 text-text-secondary" })]
302
- }), F === e.id && /* @__PURE__ */ v(C, {
336
+ }), R === e.id ? /* @__PURE__ */ v(s, { className: "h-4 w-4 text-text-secondary" }) : /* @__PURE__ */ v(o, { className: "h-4 w-4 text-text-secondary" })]
337
+ }), R === e.id && /* @__PURE__ */ v(C, {
303
338
  className: "border-t border-border-seam pt-4",
304
339
  children: /* @__PURE__ */ v("p", {
305
340
  className: "text-sm text-text-secondary",
@@ -311,7 +346,7 @@ function k() {
311
346
  ]
312
347
  }), /* @__PURE__ */ y("div", {
313
348
  className: "space-y-4",
314
- children: [H && /* @__PURE__ */ y(S, {
349
+ children: [G && /* @__PURE__ */ y(S, {
315
350
  className: "border-border-seam",
316
351
  children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, {
317
352
  className: "text-base",
@@ -323,16 +358,16 @@ function k() {
323
358
  className: "flex items-center gap-3",
324
359
  children: [/* @__PURE__ */ v("div", {
325
360
  className: "flex h-12 w-12 items-center justify-center rounded-full bg-accent-soft text-text-primary font-semibold",
326
- children: H.name.charAt(0)
361
+ children: G.name.charAt(0)
327
362
  }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
328
363
  className: "font-medium",
329
- children: H.name
364
+ children: G.name
330
365
  }), /* @__PURE__ */ v("p", {
331
366
  className: "text-sm text-text-secondary",
332
- children: H.businessName
367
+ children: G.businessName
333
368
  })] })]
334
369
  }),
335
- H.verified && /* @__PURE__ */ y("div", {
370
+ G.verified && /* @__PURE__ */ y("div", {
336
371
  className: "flex items-center gap-2 rounded-lg bg-status-success-bg-subtle p-2",
337
372
  children: [/* @__PURE__ */ v(m, { className: "h-4 w-4 text-status-success-text" }), /* @__PURE__ */ v("span", {
338
373
  className: "text-sm font-medium text-status-success-text",
@@ -353,13 +388,13 @@ function k() {
353
388
  /* @__PURE__ */ v(h, { className: "h-4 w-4 text-status-warning-text" }),
354
389
  /* @__PURE__ */ v("span", {
355
390
  className: "font-medium tabular-nums",
356
- children: H.rating
391
+ children: G.rating
357
392
  }),
358
393
  /* @__PURE__ */ y("span", {
359
394
  className: "text-text-secondary tabular-nums",
360
395
  children: [
361
396
  "(",
362
- H.totalReviews,
397
+ G.totalReviews,
363
398
  ")"
364
399
  ]
365
400
  })
@@ -373,7 +408,7 @@ function k() {
373
408
  children: "Completion Rate"
374
409
  }), /* @__PURE__ */ y("span", {
375
410
  className: "font-medium tabular-nums",
376
- children: [H.completionRate, "%"]
411
+ children: [G.completionRate, "%"]
377
412
  })]
378
413
  }),
379
414
  /* @__PURE__ */ y("div", {
@@ -383,7 +418,7 @@ function k() {
383
418
  children: "Response Time"
384
419
  }), /* @__PURE__ */ y("span", {
385
420
  className: "font-medium tabular-nums",
386
- children: [H.responseTime, "h avg"]
421
+ children: [G.responseTime, "h avg"]
387
422
  })]
388
423
  }),
389
424
  /* @__PURE__ */ y("div", {
@@ -393,7 +428,7 @@ function k() {
393
428
  children: "Experience"
394
429
  }), /* @__PURE__ */ y("span", {
395
430
  className: "font-medium tabular-nums",
396
- children: [H.yearsExperience, " years"]
431
+ children: [G.yearsExperience, " years"]
397
432
  })]
398
433
  }),
399
434
  /* @__PURE__ */ y("div", {
@@ -403,7 +438,7 @@ function k() {
403
438
  children: "Projects Done"
404
439
  }), /* @__PURE__ */ v("span", {
405
440
  className: "font-medium tabular-nums",
406
- children: H.projectsCompleted
441
+ children: G.projectsCompleted
407
442
  })]
408
443
  }),
409
444
  /* @__PURE__ */ y("div", {
@@ -415,7 +450,7 @@ function k() {
415
450
  className: "font-medium tabular-nums",
416
451
  children: [
417
452
  "$",
418
- H.hourlyRate,
453
+ G.hourlyRate,
419
454
  "/hr"
420
455
  ]
421
456
  })]
@@ -427,7 +462,7 @@ function k() {
427
462
  children: "Location"
428
463
  }), /* @__PURE__ */ v("span", {
429
464
  className: "font-medium",
430
- children: H.location
465
+ children: G.location
431
466
  })]
432
467
  })
433
468
  ]
@@ -439,7 +474,7 @@ function k() {
439
474
  children: "Certifications"
440
475
  }), /* @__PURE__ */ v("div", {
441
476
  className: "flex flex-wrap gap-1",
442
- children: H.certifications.map((e) => /* @__PURE__ */ v(b, {
477
+ children: G.certifications.map((e) => /* @__PURE__ */ v(b, {
443
478
  variant: "secondary",
444
479
  className: "text-xs",
445
480
  children: e
@@ -453,7 +488,7 @@ function k() {
453
488
  children: "Languages"
454
489
  }), /* @__PURE__ */ v("div", {
455
490
  className: "flex flex-wrap gap-1",
456
- children: H.languages.map((e) => /* @__PURE__ */ v(b, {
491
+ children: G.languages.map((e) => /* @__PURE__ */ v(b, {
457
492
  variant: "outline",
458
493
  className: "text-xs",
459
494
  children: e
@@ -493,24 +528,24 @@ function k() {
493
528
  children: "Starting from"
494
529
  }), /* @__PURE__ */ y("span", {
495
530
  className: "text-lg font-bold text-accent-blue tabular-nums",
496
- children: ["$", V.pricing.basePrice.toLocaleString()]
531
+ children: ["$", W.pricing.basePrice.toLocaleString()]
497
532
  })]
498
533
  }),
499
534
  /* @__PURE__ */ y("div", {
500
535
  className: "flex items-center gap-2 text-sm text-text-secondary",
501
536
  children: [/* @__PURE__ */ v(l, { className: "h-4 w-4" }), /* @__PURE__ */ y("span", { children: [
502
537
  "Typical duration: ",
503
- V.duration.typical,
538
+ W.duration.typical,
504
539
  " days"
505
540
  ] })]
506
541
  }),
507
542
  /* @__PURE__ */ y("div", {
508
543
  className: "flex items-center gap-2 text-sm text-text-secondary",
509
- children: [/* @__PURE__ */ v(u, { className: "h-4 w-4" }), /* @__PURE__ */ y("span", { children: [V.pricing.type, " pricing model"] })]
544
+ children: [/* @__PURE__ */ v(u, { className: "h-4 w-4" }), /* @__PURE__ */ y("span", { children: [W.pricing.type, " pricing model"] })]
510
545
  }),
511
546
  /* @__PURE__ */ y(x, {
512
547
  className: "w-full",
513
- onClick: () => R(!0),
548
+ onClick: () => V(!0),
514
549
  children: [/* @__PURE__ */ v(i, { className: "mr-2 h-4 w-4" }), " Book Now"]
515
550
  })
516
551
  ]
@@ -518,7 +553,7 @@ function k() {
518
553
  })]
519
554
  })]
520
555
  }),
521
- L && /* @__PURE__ */ v("div", {
556
+ B && /* @__PURE__ */ v("div", {
522
557
  className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-overlay",
523
558
  children: /* @__PURE__ */ y(D, {
524
559
  treatment: "glass",
@@ -528,7 +563,7 @@ function k() {
528
563
  children: [/* @__PURE__ */ v(T, { children: "Book Service" }), /* @__PURE__ */ v(x, {
529
564
  variant: "outline",
530
565
  size: "sm",
531
- onClick: () => R(!1),
566
+ onClick: () => V(!1),
532
567
  children: "Close"
533
568
  })]
534
569
  }) }), /* @__PURE__ */ y(C, {
@@ -536,20 +571,20 @@ function k() {
536
571
  children: [
537
572
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
538
573
  className: "font-medium",
539
- children: V.title
574
+ children: W.title
540
575
  }), /* @__PURE__ */ y("p", {
541
576
  className: "text-sm text-text-secondary",
542
- children: ["by ", V.providerName]
577
+ children: ["by ", W.providerName]
543
578
  })] }),
544
579
  /* @__PURE__ */ y("div", {
545
580
  className: "space-y-2",
546
581
  children: [/* @__PURE__ */ v("p", {
547
582
  className: "text-sm font-medium",
548
583
  children: "Select Package"
549
- }), V.packages.map((e) => /* @__PURE__ */ y("button", {
550
- onClick: () => B(e.id),
551
- "aria-pressed": z === e.id,
552
- className: `w-full rounded-lg border p-3 text-left transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${z === e.id ? "border-accent-blue bg-accent-blue-subtle" : "border-border-seam hover:shadow-pop"}`,
584
+ }), W.packages.map((e) => /* @__PURE__ */ y("button", {
585
+ onClick: () => U(e.id),
586
+ "aria-pressed": H === e.id,
587
+ className: `w-full rounded-lg border p-3 text-left transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${H === e.id ? "border-accent-blue bg-accent-blue-subtle" : "border-border-seam hover:shadow-pop"}`,
553
588
  children: [/* @__PURE__ */ y("div", {
554
589
  className: "flex items-center justify-between",
555
590
  children: [/* @__PURE__ */ v("span", {
@@ -575,11 +610,11 @@ function k() {
575
610
  children: [/* @__PURE__ */ v(x, {
576
611
  variant: "outline",
577
612
  className: "flex-1",
578
- onClick: () => R(!1),
613
+ onClick: () => V(!1),
579
614
  children: "Cancel"
580
615
  }), /* @__PURE__ */ v(x, {
581
616
  className: "flex-1",
582
- disabled: !z,
617
+ disabled: !H,
583
618
  children: "Confirm Booking"
584
619
  })]
585
620
  })
@@ -591,6 +626,6 @@ function k() {
591
626
  });
592
627
  }
593
628
  //#endregion
594
- export { k as ServiceDetailsPage };
629
+ export { M as ServiceDetailsPage };
595
630
 
596
631
  //# sourceMappingURL=ServiceDetailsPage.js.map