@burdenoff/microfe-proserviceworld 2026.509.101

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 (106) hide show
  1. package/README.md +12 -0
  2. package/dist/dev/main.d.ts +2 -0
  3. package/dist/dev/main.d.ts.map +1 -0
  4. package/dist/generated/global-operations.d.ts +2 -0
  5. package/dist/generated/global-operations.d.ts.map +1 -0
  6. package/dist/generated/global-types.d.ts +18199 -0
  7. package/dist/generated/global-types.d.ts.map +1 -0
  8. package/dist/generated/wspace-operations.d.ts +2 -0
  9. package/dist/generated/wspace-operations.d.ts.map +1 -0
  10. package/dist/generated/wspace-types.d.ts +43046 -0
  11. package/dist/generated/wspace-types.d.ts.map +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +5 -0
  15. package/dist/proserviceworld/ProServiceWorldRoot.d.ts +5 -0
  16. package/dist/proserviceworld/ProServiceWorldRoot.d.ts.map +1 -0
  17. package/dist/proserviceworld/ProServiceWorldRoot.js +151 -0
  18. package/dist/proserviceworld/ProServiceWorldRoot.js.map +1 -0
  19. package/dist/proserviceworld/ProServiceWorldRoutes.d.ts +2 -0
  20. package/dist/proserviceworld/ProServiceWorldRoutes.d.ts.map +1 -0
  21. package/dist/proserviceworld/ProServiceWorldRoutes.js +91 -0
  22. package/dist/proserviceworld/ProServiceWorldRoutes.js.map +1 -0
  23. package/dist/proserviceworld/index.d.ts +5 -0
  24. package/dist/proserviceworld/index.d.ts.map +1 -0
  25. package/dist/proserviceworld/index.js +3 -0
  26. package/dist/proserviceworld/pages/AdminReportsPage.d.ts +2 -0
  27. package/dist/proserviceworld/pages/AdminReportsPage.d.ts.map +1 -0
  28. package/dist/proserviceworld/pages/AdminReportsPage.js +512 -0
  29. package/dist/proserviceworld/pages/AdminReportsPage.js.map +1 -0
  30. package/dist/proserviceworld/pages/AdminUsersPage.d.ts +2 -0
  31. package/dist/proserviceworld/pages/AdminUsersPage.d.ts.map +1 -0
  32. package/dist/proserviceworld/pages/AdminUsersPage.js +444 -0
  33. package/dist/proserviceworld/pages/AdminUsersPage.js.map +1 -0
  34. package/dist/proserviceworld/pages/AnalyticsPage.d.ts +2 -0
  35. package/dist/proserviceworld/pages/AnalyticsPage.d.ts.map +1 -0
  36. package/dist/proserviceworld/pages/AnalyticsPage.js +433 -0
  37. package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -0
  38. package/dist/proserviceworld/pages/BookingsPage.d.ts +2 -0
  39. package/dist/proserviceworld/pages/BookingsPage.d.ts.map +1 -0
  40. package/dist/proserviceworld/pages/BookingsPage.js +425 -0
  41. package/dist/proserviceworld/pages/BookingsPage.js.map +1 -0
  42. package/dist/proserviceworld/pages/DashboardPage.d.ts +2 -0
  43. package/dist/proserviceworld/pages/DashboardPage.d.ts.map +1 -0
  44. package/dist/proserviceworld/pages/DashboardPage.js +583 -0
  45. package/dist/proserviceworld/pages/DashboardPage.js.map +1 -0
  46. package/dist/proserviceworld/pages/DocumentsPage.d.ts +2 -0
  47. package/dist/proserviceworld/pages/DocumentsPage.d.ts.map +1 -0
  48. package/dist/proserviceworld/pages/DocumentsPage.js +494 -0
  49. package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -0
  50. package/dist/proserviceworld/pages/MessagesPage.d.ts +2 -0
  51. package/dist/proserviceworld/pages/MessagesPage.d.ts.map +1 -0
  52. package/dist/proserviceworld/pages/MessagesPage.js +229 -0
  53. package/dist/proserviceworld/pages/MessagesPage.js.map +1 -0
  54. package/dist/proserviceworld/pages/PaymentsPage.d.ts +2 -0
  55. package/dist/proserviceworld/pages/PaymentsPage.d.ts.map +1 -0
  56. package/dist/proserviceworld/pages/PaymentsPage.js +479 -0
  57. package/dist/proserviceworld/pages/PaymentsPage.js.map +1 -0
  58. package/dist/proserviceworld/pages/ProjectsPage.d.ts +2 -0
  59. package/dist/proserviceworld/pages/ProjectsPage.d.ts.map +1 -0
  60. package/dist/proserviceworld/pages/ProjectsPage.js +547 -0
  61. package/dist/proserviceworld/pages/ProjectsPage.js.map +1 -0
  62. package/dist/proserviceworld/pages/ProviderDetailPage.d.ts +2 -0
  63. package/dist/proserviceworld/pages/ProviderDetailPage.d.ts.map +1 -0
  64. package/dist/proserviceworld/pages/ProviderDetailPage.js +464 -0
  65. package/dist/proserviceworld/pages/ProviderDetailPage.js.map +1 -0
  66. package/dist/proserviceworld/pages/ProvidersPage.d.ts +2 -0
  67. package/dist/proserviceworld/pages/ProvidersPage.d.ts.map +1 -0
  68. package/dist/proserviceworld/pages/ProvidersPage.js +342 -0
  69. package/dist/proserviceworld/pages/ProvidersPage.js.map +1 -0
  70. package/dist/proserviceworld/pages/ReviewsPage.d.ts +2 -0
  71. package/dist/proserviceworld/pages/ReviewsPage.d.ts.map +1 -0
  72. package/dist/proserviceworld/pages/ReviewsPage.js +339 -0
  73. package/dist/proserviceworld/pages/ReviewsPage.js.map +1 -0
  74. package/dist/proserviceworld/pages/ServiceDetailsPage.d.ts +2 -0
  75. package/dist/proserviceworld/pages/ServiceDetailsPage.d.ts.map +1 -0
  76. package/dist/proserviceworld/pages/ServiceDetailsPage.js +563 -0
  77. package/dist/proserviceworld/pages/ServiceDetailsPage.js.map +1 -0
  78. package/dist/proserviceworld/pages/ServicesPage.d.ts +2 -0
  79. package/dist/proserviceworld/pages/ServicesPage.d.ts.map +1 -0
  80. package/dist/proserviceworld/pages/ServicesPage.js +337 -0
  81. package/dist/proserviceworld/pages/ServicesPage.js.map +1 -0
  82. package/dist/proserviceworld/pages/VerificationPage.d.ts +2 -0
  83. package/dist/proserviceworld/pages/VerificationPage.d.ts.map +1 -0
  84. package/dist/proserviceworld/pages/VerificationPage.js +357 -0
  85. package/dist/proserviceworld/pages/VerificationPage.js.map +1 -0
  86. package/dist/proserviceworld/providers/ProServiceWorldProvider.d.ts +6 -0
  87. package/dist/proserviceworld/providers/ProServiceWorldProvider.d.ts.map +1 -0
  88. package/dist/proserviceworld/providers/ProServiceWorldProvider.js +27 -0
  89. package/dist/proserviceworld/providers/ProServiceWorldProvider.js.map +1 -0
  90. package/dist/proserviceworld/store/proserviceworldStore.d.ts +32 -0
  91. package/dist/proserviceworld/store/proserviceworldStore.d.ts.map +1 -0
  92. package/dist/proserviceworld/store/proserviceworldStore.js +2490 -0
  93. package/dist/proserviceworld/store/proserviceworldStore.js.map +1 -0
  94. package/dist/proserviceworld/types/index.d.ts +338 -0
  95. package/dist/proserviceworld/types/index.d.ts.map +1 -0
  96. package/dist/proserviceworld/utils/cn.d.ts +4 -0
  97. package/dist/proserviceworld/utils/cn.d.ts.map +1 -0
  98. package/dist/proserviceworld/utils/i18n.d.ts +6 -0
  99. package/dist/proserviceworld/utils/i18n.d.ts.map +1 -0
  100. package/dist/proserviceworld/utils/i18n.js +15 -0
  101. package/dist/proserviceworld/utils/i18n.js.map +1 -0
  102. package/dist/proserviceworld/utils/navigation.d.ts +2 -0
  103. package/dist/proserviceworld/utils/navigation.d.ts.map +1 -0
  104. package/dist/proserviceworld/utils/navigation.js +8 -0
  105. package/dist/proserviceworld/utils/navigation.js.map +1 -0
  106. package/package.json +107 -0
@@ -0,0 +1,337 @@
1
+ import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
2
+ import { tWithFallback as t } from "../utils/i18n.js";
3
+ import { useMemo as n, useState as r } from "react";
4
+ import { Clock as i, Filter as a, Grid as o, List as s, Search as c, Star as l, Tag as u } from "lucide-react";
5
+ import { useI18n as d } from "@burdenoff/fe-libs/shared/providers/shell";
6
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
7
+ import { Badge as h, Button as g, Card as _, CardContent as v, Input as y } from "@burdenoff/fe-libs/ui";
8
+ //#region src/proserviceworld/pages/ServicesPage.tsx
9
+ var b = {
10
+ accounting_bookkeeping: {
11
+ key: "proserviceworld.shared.categories.accountingBookkeeping",
12
+ fallback: "Accounting & Bookkeeping"
13
+ },
14
+ business_consulting: {
15
+ key: "proserviceworld.shared.categories.businessConsulting",
16
+ fallback: "Business Consulting"
17
+ },
18
+ creative_design: {
19
+ key: "proserviceworld.shared.categories.creativeDesign",
20
+ fallback: "Creative & Design"
21
+ },
22
+ education_training: {
23
+ key: "proserviceworld.shared.categories.educationTraining",
24
+ fallback: "Education & Training"
25
+ },
26
+ financial_services: {
27
+ key: "proserviceworld.shared.categories.financialServices",
28
+ fallback: "Financial Services"
29
+ },
30
+ healthcare: {
31
+ key: "proserviceworld.shared.categories.healthcare",
32
+ fallback: "Healthcare"
33
+ },
34
+ human_resources: {
35
+ key: "proserviceworld.shared.categories.humanResources",
36
+ fallback: "Human Resources"
37
+ },
38
+ insurance: {
39
+ key: "proserviceworld.shared.categories.insurance",
40
+ fallback: "Insurance"
41
+ },
42
+ it_technology: {
43
+ key: "proserviceworld.shared.categories.itTechnology",
44
+ fallback: "IT & Technology"
45
+ },
46
+ legal_services: {
47
+ key: "proserviceworld.shared.categories.legalServices",
48
+ fallback: "Legal Services"
49
+ },
50
+ marketing_advertising: {
51
+ key: "proserviceworld.shared.categories.marketingAdvertising",
52
+ fallback: "Marketing & Advertising"
53
+ },
54
+ real_estate: {
55
+ key: "proserviceworld.shared.categories.realEstate",
56
+ fallback: "Real Estate"
57
+ }
58
+ };
59
+ function x() {
60
+ let { t: x } = d(), C = (e, n, r) => t(x, e, n, r), { services: w } = e(), [T, E] = r(""), [D, O] = r(""), [k, A] = r("grid"), [j, M] = r(1), N = n(() => {
61
+ let e = [...w];
62
+ if (T) {
63
+ let t = T.toLowerCase();
64
+ e = e.filter((e) => e.title.toLowerCase().includes(t) || e.description.toLowerCase().includes(t) || e.tags.some((e) => e.toLowerCase().includes(t)));
65
+ }
66
+ return D && (e = e.filter((e) => e.category === D)), e;
67
+ }, [
68
+ w,
69
+ T,
70
+ D
71
+ ]), P = Math.ceil(N.length / 12), F = N.slice((j - 1) * 12, j * 12), I = T ? C("proserviceworld.services.subtitleWithQuery", "{{count}} services found for \"{{query}}\"", {
72
+ count: N.length,
73
+ query: T
74
+ }) : C("proserviceworld.services.subtitle", "{{count}} services found", { count: N.length }), L = (e) => {
75
+ let t = b[e];
76
+ return C(t.key, t.fallback);
77
+ };
78
+ return /* @__PURE__ */ m("div", {
79
+ className: "space-y-6 p-6",
80
+ children: [
81
+ /* @__PURE__ */ m("div", {
82
+ className: "flex flex-col md:flex-row md:items-center md:justify-between",
83
+ children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
84
+ className: "text-2xl font-semibold",
85
+ children: C("proserviceworld.services.title", "Services")
86
+ }), /* @__PURE__ */ p("p", {
87
+ className: "text-sm text-muted-foreground",
88
+ children: I
89
+ })] }), /* @__PURE__ */ m("div", {
90
+ className: "flex items-center gap-2 mt-4 md:mt-0",
91
+ children: [/* @__PURE__ */ p(g, {
92
+ variant: k === "grid" ? "default" : "outline",
93
+ size: "sm",
94
+ onClick: () => A("grid"),
95
+ children: /* @__PURE__ */ p(o, { className: "h-4 w-4" })
96
+ }), /* @__PURE__ */ p(g, {
97
+ variant: k === "list" ? "default" : "outline",
98
+ size: "sm",
99
+ onClick: () => A("list"),
100
+ children: /* @__PURE__ */ p(s, { className: "h-4 w-4" })
101
+ })]
102
+ })]
103
+ }),
104
+ /* @__PURE__ */ m("div", {
105
+ className: "flex flex-col sm:flex-row gap-4",
106
+ children: [/* @__PURE__ */ m("div", {
107
+ className: "flex-1 relative",
108
+ children: [/* @__PURE__ */ p(c, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ p(y, {
109
+ placeholder: C("proserviceworld.services.search.placeholder", "Search services..."),
110
+ value: T,
111
+ onChange: (e) => {
112
+ E(e.target.value), M(1);
113
+ },
114
+ className: "pl-10"
115
+ })]
116
+ }), /* @__PURE__ */ m("select", {
117
+ value: D,
118
+ onChange: (e) => {
119
+ O(e.target.value), M(1);
120
+ },
121
+ className: "px-4 py-2 border border-input rounded-md bg-background text-foreground",
122
+ children: [
123
+ /* @__PURE__ */ p("option", {
124
+ value: "",
125
+ children: C("proserviceworld.shared.filters.allCategories", "All Categories")
126
+ }),
127
+ /* @__PURE__ */ p("option", {
128
+ value: "financial_services",
129
+ children: L("financial_services")
130
+ }),
131
+ /* @__PURE__ */ p("option", {
132
+ value: "legal_services",
133
+ children: L("legal_services")
134
+ }),
135
+ /* @__PURE__ */ p("option", {
136
+ value: "marketing_advertising",
137
+ children: L("marketing_advertising")
138
+ }),
139
+ /* @__PURE__ */ p("option", {
140
+ value: "it_technology",
141
+ children: L("it_technology")
142
+ }),
143
+ /* @__PURE__ */ p("option", {
144
+ value: "human_resources",
145
+ children: L("human_resources")
146
+ }),
147
+ /* @__PURE__ */ p("option", {
148
+ value: "accounting_bookkeeping",
149
+ children: L("accounting_bookkeeping")
150
+ }),
151
+ /* @__PURE__ */ p("option", {
152
+ value: "creative_design",
153
+ children: L("creative_design")
154
+ }),
155
+ /* @__PURE__ */ p("option", {
156
+ value: "education_training",
157
+ children: L("education_training")
158
+ })
159
+ ]
160
+ })]
161
+ }),
162
+ F.length > 0 ? /* @__PURE__ */ p("div", {
163
+ className: k === "grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" : "space-y-4",
164
+ children: F.map((e) => /* @__PURE__ */ p(_, {
165
+ className: "hover:shadow-md transition-shadow",
166
+ children: /* @__PURE__ */ p(v, {
167
+ className: k === "grid" ? "p-6" : "p-4 flex items-center gap-6",
168
+ children: k === "grid" ? /* @__PURE__ */ m(f, { children: [
169
+ /* @__PURE__ */ m("div", {
170
+ className: "flex items-center justify-between mb-3",
171
+ children: [/* @__PURE__ */ p(h, {
172
+ variant: "outline",
173
+ className: "text-xs capitalize",
174
+ children: L(e.category)
175
+ }), e.featured && /* @__PURE__ */ p(h, { children: C("proserviceworld.services.badges.featured", "Featured") })]
176
+ }),
177
+ /* @__PURE__ */ p("h3", {
178
+ className: "font-semibold mb-2",
179
+ children: e.title
180
+ }),
181
+ /* @__PURE__ */ p("p", {
182
+ className: "text-sm text-muted-foreground mb-3 line-clamp-2",
183
+ children: e.description
184
+ }),
185
+ /* @__PURE__ */ m("div", {
186
+ className: "flex items-center gap-2 mb-3 text-sm",
187
+ children: [
188
+ /* @__PURE__ */ p("div", {
189
+ className: "h-6 w-6 rounded-full bg-muted flex items-center justify-center text-xs",
190
+ children: e.providerName.charAt(0)
191
+ }),
192
+ /* @__PURE__ */ p("span", {
193
+ className: "text-muted-foreground",
194
+ children: e.providerName
195
+ }),
196
+ e.providerVerified && /* @__PURE__ */ p(S, {})
197
+ ]
198
+ }),
199
+ /* @__PURE__ */ m("div", {
200
+ className: "flex items-center justify-between text-sm",
201
+ children: [/* @__PURE__ */ m("div", {
202
+ className: "flex items-center",
203
+ children: [
204
+ /* @__PURE__ */ p(l, { className: "h-4 w-4 text-yellow-400 fill-current mr-1" }),
205
+ e.providerRating.toFixed(1),
206
+ /* @__PURE__ */ m("span", {
207
+ className: "text-muted-foreground ml-1",
208
+ children: [
209
+ "(",
210
+ e.providerReviews,
211
+ ")"
212
+ ]
213
+ })
214
+ ]
215
+ }), /* @__PURE__ */ p("span", {
216
+ className: "font-medium",
217
+ children: C("proserviceworld.services.card.pricing.from", "From ${{amount}}", { amount: e.pricing.basePrice.toLocaleString() })
218
+ })]
219
+ }),
220
+ /* @__PURE__ */ p("div", {
221
+ className: "flex flex-wrap gap-1 mt-3",
222
+ children: e.tags.slice(0, 3).map((e) => /* @__PURE__ */ p("span", {
223
+ className: "inline-block px-2 py-0.5 bg-muted text-xs rounded",
224
+ children: e
225
+ }, e))
226
+ }),
227
+ /* @__PURE__ */ m("div", {
228
+ className: "flex items-center gap-4 mt-3 pt-3 border-t text-xs text-muted-foreground",
229
+ children: [/* @__PURE__ */ m("span", {
230
+ className: "flex items-center",
231
+ children: [/* @__PURE__ */ p(i, { className: "h-3 w-3 mr-1" }), C("proserviceworld.services.card.meta.days", "{{count}} days", { count: e.duration.typical })]
232
+ }), /* @__PURE__ */ m("span", {
233
+ className: "flex items-center",
234
+ children: [/* @__PURE__ */ p(u, { className: "h-3 w-3 mr-1" }), C("proserviceworld.services.card.meta.bookings", "{{count}} bookings", { count: e.totalBookings })]
235
+ })]
236
+ })
237
+ ] }) : /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("div", {
238
+ className: "flex-1 min-w-0",
239
+ children: [
240
+ /* @__PURE__ */ m("div", {
241
+ className: "flex items-center gap-2 mb-1",
242
+ children: [/* @__PURE__ */ p("h3", {
243
+ className: "font-semibold",
244
+ children: e.title
245
+ }), e.featured && /* @__PURE__ */ p(h, {
246
+ className: "text-xs",
247
+ children: C("proserviceworld.services.badges.featured", "Featured")
248
+ })]
249
+ }),
250
+ /* @__PURE__ */ p("p", {
251
+ className: "text-sm text-muted-foreground mb-2 line-clamp-1",
252
+ children: e.description
253
+ }),
254
+ /* @__PURE__ */ m("div", {
255
+ className: "flex items-center gap-3 text-sm text-muted-foreground",
256
+ children: [
257
+ /* @__PURE__ */ p("span", { children: e.providerName }),
258
+ /* @__PURE__ */ m("span", {
259
+ className: "flex items-center",
260
+ children: [/* @__PURE__ */ p(l, { className: "h-3 w-3 text-yellow-400 fill-current mr-0.5" }), e.providerRating.toFixed(1)]
261
+ }),
262
+ /* @__PURE__ */ p("span", {
263
+ className: "capitalize",
264
+ children: L(e.category)
265
+ })
266
+ ]
267
+ })
268
+ ]
269
+ }), /* @__PURE__ */ m("div", {
270
+ className: "text-right shrink-0",
271
+ children: [/* @__PURE__ */ p("div", {
272
+ className: "font-medium",
273
+ children: C("proserviceworld.services.card.pricing.from", "From ${{amount}}", { amount: e.pricing.basePrice.toLocaleString() })
274
+ }), /* @__PURE__ */ p("div", {
275
+ className: "text-sm text-muted-foreground",
276
+ children: C("proserviceworld.services.card.meta.days", "{{count}} days", { count: e.duration.typical })
277
+ })]
278
+ })] })
279
+ })
280
+ }, e.id))
281
+ }) : /* @__PURE__ */ m("div", {
282
+ className: "text-center py-12",
283
+ children: [
284
+ /* @__PURE__ */ p(a, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
285
+ /* @__PURE__ */ p("h3", {
286
+ className: "text-lg font-medium mb-2",
287
+ children: C("proserviceworld.services.empty.title", "No services found")
288
+ }),
289
+ /* @__PURE__ */ p("p", {
290
+ className: "text-muted-foreground",
291
+ children: C("proserviceworld.shared.empty.adjustFilters", "Try adjusting your search criteria or filters.")
292
+ })
293
+ ]
294
+ }),
295
+ P > 1 && /* @__PURE__ */ m("div", {
296
+ className: "flex justify-center gap-2",
297
+ children: [
298
+ /* @__PURE__ */ p(g, {
299
+ variant: "outline",
300
+ disabled: j === 1,
301
+ onClick: () => M((e) => e - 1),
302
+ children: C("proserviceworld.shared.pagination.previous", "Previous")
303
+ }),
304
+ /* @__PURE__ */ p("span", {
305
+ className: "flex items-center px-4 text-sm",
306
+ children: C("proserviceworld.shared.pagination.pageInfo", "Page {{page}} of {{total}}", {
307
+ page: j,
308
+ total: P
309
+ })
310
+ }),
311
+ /* @__PURE__ */ p(g, {
312
+ variant: "outline",
313
+ disabled: j >= P,
314
+ onClick: () => M((e) => e + 1),
315
+ children: C("proserviceworld.shared.pagination.next", "Next")
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ });
321
+ }
322
+ function S() {
323
+ return /* @__PURE__ */ p("svg", {
324
+ className: "h-4 w-4 text-blue-600",
325
+ viewBox: "0 0 20 20",
326
+ fill: "currentColor",
327
+ children: /* @__PURE__ */ p("path", {
328
+ fillRule: "evenodd",
329
+ d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
330
+ clipRule: "evenodd"
331
+ })
332
+ });
333
+ }
334
+ //#endregion
335
+ export { x as ServicesPage };
336
+
337
+ //# sourceMappingURL=ServicesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServicesPage.js","names":[],"sources":["../../../src/proserviceworld/pages/ServicesPage.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { Card, CardContent, Button, Badge, Input } from '@burdenoff/fe-libs/ui';\nimport { Search, Filter, Grid, List, Star, Clock, Tag } from 'lucide-react';\nimport { useProServiceWorldStore } from '../store/proserviceworldStore';\nimport type { ServiceCategory } from '../types';\nimport { tWithFallback } from '../utils/i18n';\n\nconst serviceCategoryLabels: Record<ServiceCategory, { key: string; fallback: string }> = {\n accounting_bookkeeping: {\n key: 'proserviceworld.shared.categories.accountingBookkeeping',\n fallback: 'Accounting & Bookkeeping',\n },\n business_consulting: {\n key: 'proserviceworld.shared.categories.businessConsulting',\n fallback: 'Business Consulting',\n },\n creative_design: {\n key: 'proserviceworld.shared.categories.creativeDesign',\n fallback: 'Creative & Design',\n },\n education_training: {\n key: 'proserviceworld.shared.categories.educationTraining',\n fallback: 'Education & Training',\n },\n financial_services: {\n key: 'proserviceworld.shared.categories.financialServices',\n fallback: 'Financial Services',\n },\n healthcare: { key: 'proserviceworld.shared.categories.healthcare', fallback: 'Healthcare' },\n human_resources: {\n key: 'proserviceworld.shared.categories.humanResources',\n fallback: 'Human Resources',\n },\n insurance: { key: 'proserviceworld.shared.categories.insurance', fallback: 'Insurance' },\n it_technology: {\n key: 'proserviceworld.shared.categories.itTechnology',\n fallback: 'IT & Technology',\n },\n legal_services: {\n key: 'proserviceworld.shared.categories.legalServices',\n fallback: 'Legal Services',\n },\n marketing_advertising: {\n key: 'proserviceworld.shared.categories.marketingAdvertising',\n fallback: 'Marketing & Advertising',\n },\n real_estate: { key: 'proserviceworld.shared.categories.realEstate', fallback: 'Real Estate' },\n};\n\nexport function ServicesPage() {\n const { t } = useI18n();\n const tr = (key: string, fallback: string, params?: Record<string, string | number>): string =>\n tWithFallback(t, key, fallback, params);\n const { services } = useProServiceWorldStore();\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedCategory, setSelectedCategory] = useState<ServiceCategory | ''>('');\n const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid');\n const [currentPage, setCurrentPage] = useState(1);\n const perPage = 12;\n\n const filtered = useMemo(() => {\n let result = [...services];\n if (searchQuery) {\n const q = searchQuery.toLowerCase();\n result = result.filter(\n (s) =>\n s.title.toLowerCase().includes(q) ||\n s.description.toLowerCase().includes(q) ||\n s.tags.some((t) => t.toLowerCase().includes(q))\n );\n }\n if (selectedCategory) result = result.filter((s) => s.category === selectedCategory);\n return result;\n }, [services, searchQuery, selectedCategory]);\n\n const totalPages = Math.ceil(filtered.length / perPage);\n const paged = filtered.slice((currentPage - 1) * perPage, currentPage * perPage);\n const subtitle = searchQuery\n ? tr('proserviceworld.services.subtitleWithQuery', '{{count}} services found for \"{{query}}\"', {\n count: filtered.length,\n query: searchQuery,\n })\n : tr('proserviceworld.services.subtitle', '{{count}} services found', {\n count: filtered.length,\n });\n const categoryLabel = (category: ServiceCategory): string => {\n const entry = serviceCategoryLabels[category];\n return tr(entry.key, entry.fallback);\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n {tr('proserviceworld.services.title', 'Services')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">{subtitle}</p>\n </div>\n <div className=\"flex items-center gap-2 mt-4 md:mt-0\">\n <Button\n variant={viewMode === 'grid' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setViewMode('grid')}\n >\n <Grid className=\"h-4 w-4\" />\n </Button>\n <Button\n variant={viewMode === 'list' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setViewMode('list')}\n >\n <List className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n\n <div className=\"flex flex-col sm:flex-row gap-4\">\n <div className=\"flex-1 relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder={tr('proserviceworld.services.search.placeholder', 'Search services...')}\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value);\n setCurrentPage(1);\n }}\n className=\"pl-10\"\n />\n </div>\n <select\n value={selectedCategory}\n onChange={(e) => {\n setSelectedCategory(e.target.value as ServiceCategory | '');\n setCurrentPage(1);\n }}\n className=\"px-4 py-2 border border-input rounded-md bg-background text-foreground\"\n >\n <option value=\"\">\n {tr('proserviceworld.shared.filters.allCategories', 'All Categories')}\n </option>\n <option value=\"financial_services\">{categoryLabel('financial_services')}</option>\n <option value=\"legal_services\">{categoryLabel('legal_services')}</option>\n <option value=\"marketing_advertising\">{categoryLabel('marketing_advertising')}</option>\n <option value=\"it_technology\">{categoryLabel('it_technology')}</option>\n <option value=\"human_resources\">{categoryLabel('human_resources')}</option>\n <option value=\"accounting_bookkeeping\">{categoryLabel('accounting_bookkeeping')}</option>\n <option value=\"creative_design\">{categoryLabel('creative_design')}</option>\n <option value=\"education_training\">{categoryLabel('education_training')}</option>\n </select>\n </div>\n\n {paged.length > 0 ? (\n <div\n className={\n viewMode === 'grid'\n ? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6'\n : 'space-y-4'\n }\n >\n {paged.map((service) => (\n <Card key={service.id} className=\"hover:shadow-md transition-shadow\">\n <CardContent className={viewMode === 'grid' ? 'p-6' : 'p-4 flex items-center gap-6'}>\n {viewMode === 'grid' ? (\n <>\n <div className=\"flex items-center justify-between mb-3\">\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {categoryLabel(service.category)}\n </Badge>\n {service.featured && (\n <Badge>{tr('proserviceworld.services.badges.featured', 'Featured')}</Badge>\n )}\n </div>\n <h3 className=\"font-semibold mb-2\">{service.title}</h3>\n <p className=\"text-sm text-muted-foreground mb-3 line-clamp-2\">\n {service.description}\n </p>\n <div className=\"flex items-center gap-2 mb-3 text-sm\">\n <div className=\"h-6 w-6 rounded-full bg-muted flex items-center justify-center text-xs\">\n {service.providerName.charAt(0)}\n </div>\n <span className=\"text-muted-foreground\">{service.providerName}</span>\n {service.providerVerified && <CheckMark />}\n </div>\n <div className=\"flex items-center justify-between text-sm\">\n <div className=\"flex items-center\">\n <Star className=\"h-4 w-4 text-yellow-400 fill-current mr-1\" />\n {service.providerRating.toFixed(1)}\n <span className=\"text-muted-foreground ml-1\">\n ({service.providerReviews})\n </span>\n </div>\n <span className=\"font-medium\">\n {tr('proserviceworld.services.card.pricing.from', 'From ${{amount}}', {\n amount: service.pricing.basePrice.toLocaleString(),\n })}\n </span>\n </div>\n <div className=\"flex flex-wrap gap-1 mt-3\">\n {service.tags.slice(0, 3).map((t) => (\n <span key={t} className=\"inline-block px-2 py-0.5 bg-muted text-xs rounded\">\n {t}\n </span>\n ))}\n </div>\n <div className=\"flex items-center gap-4 mt-3 pt-3 border-t text-xs text-muted-foreground\">\n <span className=\"flex items-center\">\n <Clock className=\"h-3 w-3 mr-1\" />\n {tr('proserviceworld.services.card.meta.days', '{{count}} days', {\n count: service.duration.typical,\n })}\n </span>\n <span className=\"flex items-center\">\n <Tag className=\"h-3 w-3 mr-1\" />\n {tr('proserviceworld.services.card.meta.bookings', '{{count}} bookings', {\n count: service.totalBookings,\n })}\n </span>\n </div>\n </>\n ) : (\n <>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2 mb-1\">\n <h3 className=\"font-semibold\">{service.title}</h3>\n {service.featured && (\n <Badge className=\"text-xs\">\n {tr('proserviceworld.services.badges.featured', 'Featured')}\n </Badge>\n )}\n </div>\n <p className=\"text-sm text-muted-foreground mb-2 line-clamp-1\">\n {service.description}\n </p>\n <div className=\"flex items-center gap-3 text-sm text-muted-foreground\">\n <span>{service.providerName}</span>\n <span className=\"flex items-center\">\n <Star className=\"h-3 w-3 text-yellow-400 fill-current mr-0.5\" />\n {service.providerRating.toFixed(1)}\n </span>\n <span className=\"capitalize\">{categoryLabel(service.category)}</span>\n </div>\n </div>\n <div className=\"text-right shrink-0\">\n <div className=\"font-medium\">\n {tr('proserviceworld.services.card.pricing.from', 'From ${{amount}}', {\n amount: service.pricing.basePrice.toLocaleString(),\n })}\n </div>\n <div className=\"text-sm text-muted-foreground\">\n {tr('proserviceworld.services.card.meta.days', '{{count}} days', {\n count: service.duration.typical,\n })}\n </div>\n </div>\n </>\n )}\n </CardContent>\n </Card>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-12\">\n <Filter className=\"h-12 w-12 mx-auto text-muted-foreground mb-4\" />\n <h3 className=\"text-lg font-medium mb-2\">\n {tr('proserviceworld.services.empty.title', 'No services found')}\n </h3>\n <p className=\"text-muted-foreground\">\n {tr(\n 'proserviceworld.shared.empty.adjustFilters',\n 'Try adjusting your search criteria or filters.'\n )}\n </p>\n </div>\n )}\n\n {totalPages > 1 && (\n <div className=\"flex justify-center gap-2\">\n <Button\n variant=\"outline\"\n disabled={currentPage === 1}\n onClick={() => setCurrentPage((p) => p - 1)}\n >\n {tr('proserviceworld.shared.pagination.previous', 'Previous')}\n </Button>\n <span className=\"flex items-center px-4 text-sm\">\n {tr('proserviceworld.shared.pagination.pageInfo', 'Page {{page}} of {{total}}', {\n page: currentPage,\n total: totalPages,\n })}\n </span>\n <Button\n variant=\"outline\"\n disabled={currentPage >= totalPages}\n onClick={() => setCurrentPage((p) => p + 1)}\n >\n {tr('proserviceworld.shared.pagination.next', 'Next')}\n </Button>\n </div>\n )}\n </div>\n );\n}\n\nfunction CheckMark() {\n return (\n <svg className=\"h-4 w-4 text-blue-600\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function VerificationPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=VerificationPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerificationPage.d.ts","sourceRoot":"","sources":["../../../src/proserviceworld/pages/VerificationPage.tsx"],"names":[],"mappings":"AA8DA,wBAAgB,gBAAgB,4CA4R/B"}