@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,342 @@
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 { Briefcase as i, CheckCircle as a, Clock as o, Filter as s, MapPin as c, Search as l, Star as u, Users as d } from "lucide-react";
5
+ import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell";
6
+ import { 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/ProvidersPage.tsx
9
+ var b = [
10
+ {
11
+ value: "",
12
+ key: "proserviceworld.shared.filters.allCategories",
13
+ fallback: "All Categories"
14
+ },
15
+ {
16
+ value: "business_consulting",
17
+ key: "proserviceworld.shared.categories.businessConsulting",
18
+ fallback: "Business Consulting"
19
+ },
20
+ {
21
+ value: "financial_services",
22
+ key: "proserviceworld.shared.categories.financialServices",
23
+ fallback: "Financial Services"
24
+ },
25
+ {
26
+ value: "legal_services",
27
+ key: "proserviceworld.shared.categories.legalServices",
28
+ fallback: "Legal Services"
29
+ },
30
+ {
31
+ value: "accounting_bookkeeping",
32
+ key: "proserviceworld.shared.categories.accountingBookkeeping",
33
+ fallback: "Accounting & Bookkeeping"
34
+ },
35
+ {
36
+ value: "marketing_advertising",
37
+ key: "proserviceworld.shared.categories.marketingAdvertising",
38
+ fallback: "Marketing & Advertising"
39
+ },
40
+ {
41
+ value: "it_technology",
42
+ key: "proserviceworld.shared.categories.itTechnology",
43
+ fallback: "IT & Technology"
44
+ },
45
+ {
46
+ value: "human_resources",
47
+ key: "proserviceworld.shared.categories.humanResources",
48
+ fallback: "Human Resources"
49
+ },
50
+ {
51
+ value: "creative_design",
52
+ key: "proserviceworld.shared.categories.creativeDesign",
53
+ fallback: "Creative & Design"
54
+ },
55
+ {
56
+ value: "education_training",
57
+ key: "proserviceworld.shared.categories.educationTraining",
58
+ fallback: "Education & Training"
59
+ }
60
+ ];
61
+ function x() {
62
+ let { t: x } = f(), S = (e, n, r) => t(x, e, n, r), { providers: C } = e(), [w, T] = r(""), [E, D] = r(""), [O, k] = r(""), [A, j] = r(!1), M = n(() => {
63
+ let e = [...C];
64
+ if (w) {
65
+ let t = w.toLowerCase();
66
+ e = e.filter((e) => e.name.toLowerCase().includes(t) || e.businessName.toLowerCase().includes(t) || e.tagline.toLowerCase().includes(t) || e.specializations.some((e) => e.toLowerCase().includes(t)));
67
+ }
68
+ return E && (e = e.filter((e) => e.category === E)), O && (e = e.filter((e) => e.rating >= O)), e.sort((e, t) => t.rating - e.rating), e;
69
+ }, [
70
+ C,
71
+ w,
72
+ E,
73
+ O
74
+ ]), N = M.length > 0 ? (M.reduce((e, t) => e + t.rating, 0) / M.length).toFixed(1) : "0", P = new Set(M.map((e) => e.country)).size, F = () => {
75
+ T(""), D(""), k("");
76
+ }, I = w ? S("proserviceworld.providers.subtitleWithQuery", "{{count}} providers found for \"{{query}}\"", {
77
+ count: M.length,
78
+ query: w
79
+ }) : S("proserviceworld.providers.subtitle", "{{count}} providers found", { count: M.length });
80
+ return /* @__PURE__ */ m("div", {
81
+ className: "space-y-6 p-6",
82
+ children: [
83
+ /* @__PURE__ */ m("div", {
84
+ className: "flex flex-col md:flex-row md:items-center md:justify-between",
85
+ children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
86
+ className: "text-2xl font-semibold",
87
+ children: S("proserviceworld.providers.title", "Service Providers")
88
+ }), /* @__PURE__ */ p("p", {
89
+ className: "text-sm text-muted-foreground",
90
+ children: I
91
+ })] }), /* @__PURE__ */ m(g, {
92
+ variant: "outline",
93
+ onClick: () => j(!A),
94
+ children: [/* @__PURE__ */ p(s, { className: "h-4 w-4 mr-2" }), S("proserviceworld.providers.actions.filters", "Filters")]
95
+ })]
96
+ }),
97
+ /* @__PURE__ */ p("div", {
98
+ className: "flex gap-4",
99
+ children: /* @__PURE__ */ m("div", {
100
+ className: "flex-1 relative",
101
+ children: [/* @__PURE__ */ p(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground" }), /* @__PURE__ */ p(y, {
102
+ type: "text",
103
+ placeholder: S("proserviceworld.providers.search.placeholder", "Search providers by name, business, or specialization..."),
104
+ value: w,
105
+ onChange: (e) => T(e.target.value),
106
+ className: "pl-10 h-12"
107
+ })]
108
+ })
109
+ }),
110
+ A && /* @__PURE__ */ p(_, { children: /* @__PURE__ */ p(v, {
111
+ className: "p-6",
112
+ children: /* @__PURE__ */ m("div", {
113
+ className: "grid grid-cols-1 md:grid-cols-3 gap-4",
114
+ children: [
115
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("label", {
116
+ className: "block text-sm font-medium mb-2",
117
+ children: S("proserviceworld.providers.filters.category", "Category")
118
+ }), /* @__PURE__ */ p("select", {
119
+ value: E,
120
+ onChange: (e) => D(e.target.value),
121
+ className: "w-full p-2 border border-input rounded-md bg-background text-foreground",
122
+ children: b.map((e) => /* @__PURE__ */ p("option", {
123
+ value: e.value,
124
+ children: S(e.key, e.fallback)
125
+ }, e.value))
126
+ })] }),
127
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("label", {
128
+ className: "block text-sm font-medium mb-2",
129
+ children: S("proserviceworld.providers.filters.minimumRating", "Minimum Rating")
130
+ }), /* @__PURE__ */ m("select", {
131
+ value: O,
132
+ onChange: (e) => k(e.target.value ? Number(e.target.value) : ""),
133
+ className: "w-full p-2 border border-input rounded-md bg-background text-foreground",
134
+ children: [
135
+ /* @__PURE__ */ p("option", {
136
+ value: "",
137
+ children: S("proserviceworld.providers.filters.anyRating", "Any Rating")
138
+ }),
139
+ /* @__PURE__ */ p("option", {
140
+ value: "4",
141
+ children: S("proserviceworld.providers.filters.rating4", "4+ Stars")
142
+ }),
143
+ /* @__PURE__ */ p("option", {
144
+ value: "4.5",
145
+ children: S("proserviceworld.providers.filters.rating45", "4.5+ Stars")
146
+ }),
147
+ /* @__PURE__ */ p("option", {
148
+ value: "4.8",
149
+ children: S("proserviceworld.providers.filters.rating48", "4.8+ Stars")
150
+ })
151
+ ]
152
+ })] }),
153
+ /* @__PURE__ */ p("div", {
154
+ className: "flex items-end",
155
+ children: /* @__PURE__ */ p(g, {
156
+ variant: "outline",
157
+ onClick: F,
158
+ className: "w-full",
159
+ children: S("proserviceworld.providers.filters.clear", "Clear Filters")
160
+ })
161
+ })
162
+ ]
163
+ })
164
+ }) }),
165
+ M.length > 0 ? /* @__PURE__ */ p("div", {
166
+ className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",
167
+ children: M.map((e) => /* @__PURE__ */ p(_, {
168
+ className: "hover:shadow-md transition-shadow",
169
+ children: /* @__PURE__ */ m(v, {
170
+ className: "p-6",
171
+ children: [
172
+ /* @__PURE__ */ m("div", {
173
+ className: "flex items-center space-x-4 mb-4",
174
+ children: [
175
+ /* @__PURE__ */ p("div", {
176
+ className: "h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",
177
+ children: /* @__PURE__ */ p("span", {
178
+ className: "text-primary font-bold",
179
+ children: e.name.charAt(0)
180
+ })
181
+ }),
182
+ /* @__PURE__ */ m("div", {
183
+ className: "flex-1 min-w-0",
184
+ children: [/* @__PURE__ */ p("h3", {
185
+ className: "font-semibold truncate",
186
+ children: e.businessName
187
+ }), /* @__PURE__ */ p("p", {
188
+ className: "text-sm text-muted-foreground truncate",
189
+ children: e.name
190
+ })]
191
+ }),
192
+ e.verified && /* @__PURE__ */ p(a, { className: "h-5 w-5 text-blue-600 shrink-0" })
193
+ ]
194
+ }),
195
+ /* @__PURE__ */ p("p", {
196
+ className: "text-sm text-muted-foreground mb-3 line-clamp-2",
197
+ children: e.tagline
198
+ }),
199
+ /* @__PURE__ */ m("div", {
200
+ className: "flex flex-wrap gap-1 mb-3",
201
+ children: [e.specializations.slice(0, 2).map((e) => /* @__PURE__ */ p(h, {
202
+ variant: "secondary",
203
+ className: "text-xs",
204
+ children: e
205
+ }, e)), e.specializations.length > 2 && /* @__PURE__ */ m(h, {
206
+ variant: "outline",
207
+ className: "text-xs",
208
+ children: ["+", e.specializations.length - 2]
209
+ })]
210
+ }),
211
+ /* @__PURE__ */ m("div", {
212
+ className: "flex items-center justify-between text-sm mb-3",
213
+ children: [/* @__PURE__ */ m("div", {
214
+ className: "flex items-center",
215
+ children: [
216
+ /* @__PURE__ */ p(u, { className: "h-4 w-4 text-yellow-400 fill-current mr-1" }),
217
+ /* @__PURE__ */ p("span", {
218
+ className: "font-medium",
219
+ children: e.rating.toFixed(1)
220
+ }),
221
+ /* @__PURE__ */ m("span", {
222
+ className: "text-muted-foreground ml-1",
223
+ children: [
224
+ "(",
225
+ e.totalReviews,
226
+ ")"
227
+ ]
228
+ })
229
+ ]
230
+ }), /* @__PURE__ */ m("div", {
231
+ className: "flex items-center text-muted-foreground",
232
+ children: [/* @__PURE__ */ p(c, { className: "h-3 w-3 mr-1" }), /* @__PURE__ */ p("span", { children: e.location })]
233
+ })]
234
+ }),
235
+ /* @__PURE__ */ m("div", {
236
+ className: "grid grid-cols-2 gap-2 text-xs text-muted-foreground border-t pt-3",
237
+ children: [/* @__PURE__ */ m("div", {
238
+ className: "flex items-center",
239
+ children: [/* @__PURE__ */ p(o, { className: "h-3 w-3 mr-1" }), S("proserviceworld.providers.card.responseTime", "{{count}}h response", { count: e.responseTime })]
240
+ }), /* @__PURE__ */ m("div", {
241
+ className: "flex items-center",
242
+ children: [/* @__PURE__ */ p(i, { className: "h-3 w-3 mr-1" }), S("proserviceworld.providers.card.projects", "{{count}} projects", { count: e.projectsCompleted })]
243
+ })]
244
+ }),
245
+ /* @__PURE__ */ p(g, {
246
+ variant: "outline",
247
+ size: "sm",
248
+ className: "w-full mt-4",
249
+ children: S("proserviceworld.providers.actions.viewProfile", "View Profile")
250
+ })
251
+ ]
252
+ })
253
+ }, e.id))
254
+ }) : /* @__PURE__ */ m("div", {
255
+ className: "text-center py-12",
256
+ children: [
257
+ /* @__PURE__ */ p(d, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
258
+ /* @__PURE__ */ p("h3", {
259
+ className: "text-lg font-medium mb-2",
260
+ children: S("proserviceworld.providers.empty.title", "No providers found")
261
+ }),
262
+ /* @__PURE__ */ p("p", {
263
+ className: "text-muted-foreground",
264
+ children: S("proserviceworld.shared.empty.adjustFilters", "Try adjusting your search criteria or filters.")
265
+ })
266
+ ]
267
+ }),
268
+ M.length > 0 && /* @__PURE__ */ p(_, {
269
+ className: "bg-primary/5",
270
+ children: /* @__PURE__ */ m(v, {
271
+ className: "p-8",
272
+ children: [/* @__PURE__ */ p("div", {
273
+ className: "text-center mb-8",
274
+ children: /* @__PURE__ */ p("h2", {
275
+ className: "text-xl font-bold",
276
+ children: S("proserviceworld.providers.stats.title", "Provider Statistics")
277
+ })
278
+ }), /* @__PURE__ */ m("div", {
279
+ className: "grid grid-cols-1 md:grid-cols-3 gap-8",
280
+ children: [
281
+ /* @__PURE__ */ m("div", {
282
+ className: "text-center",
283
+ children: [
284
+ /* @__PURE__ */ p("div", {
285
+ className: "flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4",
286
+ children: /* @__PURE__ */ p(u, { className: "h-6 w-6 text-primary" })
287
+ }),
288
+ /* @__PURE__ */ p("div", {
289
+ className: "text-2xl font-bold",
290
+ children: N
291
+ }),
292
+ /* @__PURE__ */ p("div", {
293
+ className: "text-sm text-muted-foreground",
294
+ children: S("proserviceworld.providers.stats.averageRating", "Average Rating")
295
+ })
296
+ ]
297
+ }),
298
+ /* @__PURE__ */ m("div", {
299
+ className: "text-center",
300
+ children: [
301
+ /* @__PURE__ */ p("div", {
302
+ className: "flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4",
303
+ children: /* @__PURE__ */ p(d, { className: "h-6 w-6 text-primary" })
304
+ }),
305
+ /* @__PURE__ */ p("div", {
306
+ className: "text-2xl font-bold",
307
+ children: M.length
308
+ }),
309
+ /* @__PURE__ */ p("div", {
310
+ className: "text-sm text-muted-foreground",
311
+ children: S("proserviceworld.providers.stats.expertProviders", "Expert Providers")
312
+ })
313
+ ]
314
+ }),
315
+ /* @__PURE__ */ m("div", {
316
+ className: "text-center",
317
+ children: [
318
+ /* @__PURE__ */ p("div", {
319
+ className: "flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4",
320
+ children: /* @__PURE__ */ p(c, { className: "h-6 w-6 text-primary" })
321
+ }),
322
+ /* @__PURE__ */ p("div", {
323
+ className: "text-2xl font-bold",
324
+ children: P
325
+ }),
326
+ /* @__PURE__ */ p("div", {
327
+ className: "text-sm text-muted-foreground",
328
+ children: S("proserviceworld.providers.stats.countries", "Countries")
329
+ })
330
+ ]
331
+ })
332
+ ]
333
+ })]
334
+ })
335
+ })
336
+ ]
337
+ });
338
+ }
339
+ //#endregion
340
+ export { x as ProvidersPage };
341
+
342
+ //# sourceMappingURL=ProvidersPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvidersPage.js","names":[],"sources":["../../../src/proserviceworld/pages/ProvidersPage.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, Star, Users, MapPin, CheckCircle, Clock, Briefcase } from 'lucide-react';\nimport { useProServiceWorldStore } from '../store/proserviceworldStore';\nimport type { ServiceCategory } from '../types';\nimport { tWithFallback } from '../utils/i18n';\n\nconst categoryOptions: { value: ServiceCategory | ''; key: string; fallback: string }[] = [\n {\n value: '',\n key: 'proserviceworld.shared.filters.allCategories',\n fallback: 'All Categories',\n },\n {\n value: 'business_consulting',\n key: 'proserviceworld.shared.categories.businessConsulting',\n fallback: 'Business Consulting',\n },\n {\n value: 'financial_services',\n key: 'proserviceworld.shared.categories.financialServices',\n fallback: 'Financial Services',\n },\n {\n value: 'legal_services',\n key: 'proserviceworld.shared.categories.legalServices',\n fallback: 'Legal Services',\n },\n {\n value: 'accounting_bookkeeping',\n key: 'proserviceworld.shared.categories.accountingBookkeeping',\n fallback: 'Accounting & Bookkeeping',\n },\n {\n value: 'marketing_advertising',\n key: 'proserviceworld.shared.categories.marketingAdvertising',\n fallback: 'Marketing & Advertising',\n },\n {\n value: 'it_technology',\n key: 'proserviceworld.shared.categories.itTechnology',\n fallback: 'IT & Technology',\n },\n {\n value: 'human_resources',\n key: 'proserviceworld.shared.categories.humanResources',\n fallback: 'Human Resources',\n },\n {\n value: 'creative_design',\n key: 'proserviceworld.shared.categories.creativeDesign',\n fallback: 'Creative & Design',\n },\n {\n value: 'education_training',\n key: 'proserviceworld.shared.categories.educationTraining',\n fallback: 'Education & Training',\n },\n];\n\nexport function ProvidersPage() {\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 { providers } = useProServiceWorldStore();\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedCategory, setSelectedCategory] = useState<ServiceCategory | ''>('');\n const [minRating, setMinRating] = useState<number | ''>('');\n const [showFilters, setShowFilters] = useState(false);\n\n const filteredProviders = useMemo(() => {\n let result = [...providers];\n\n if (searchQuery) {\n const q = searchQuery.toLowerCase();\n result = result.filter(\n (p) =>\n p.name.toLowerCase().includes(q) ||\n p.businessName.toLowerCase().includes(q) ||\n p.tagline.toLowerCase().includes(q) ||\n p.specializations.some((s) => s.toLowerCase().includes(q))\n );\n }\n\n if (selectedCategory) {\n result = result.filter((p) => p.category === selectedCategory);\n }\n\n if (minRating) {\n result = result.filter((p) => p.rating >= minRating);\n }\n\n result.sort((a, b) => b.rating - a.rating);\n return result;\n }, [providers, searchQuery, selectedCategory, minRating]);\n\n const avgRating =\n filteredProviders.length > 0\n ? (\n filteredProviders.reduce((sum, p) => sum + p.rating, 0) / filteredProviders.length\n ).toFixed(1)\n : '0';\n\n const countries = new Set(filteredProviders.map((p) => p.country)).size;\n\n const clearFilters = () => {\n setSearchQuery('');\n setSelectedCategory('');\n setMinRating('');\n };\n const subtitle = searchQuery\n ? tr(\n 'proserviceworld.providers.subtitleWithQuery',\n '{{count}} providers found for \"{{query}}\"',\n {\n count: filteredProviders.length,\n query: searchQuery,\n }\n )\n : tr('proserviceworld.providers.subtitle', '{{count}} providers found', {\n count: filteredProviders.length,\n });\n\n return (\n <div className=\"space-y-6 p-6\">\n {/* Page Header */}\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.providers.title', 'Service Providers')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">{subtitle}</p>\n </div>\n <Button variant=\"outline\" onClick={() => setShowFilters(!showFilters)}>\n <Filter className=\"h-4 w-4 mr-2\" />\n {tr('proserviceworld.providers.actions.filters', 'Filters')}\n </Button>\n </div>\n\n {/* Search Bar */}\n <div className=\"flex gap-4\">\n <div className=\"flex-1 relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground\" />\n <Input\n type=\"text\"\n placeholder={tr(\n 'proserviceworld.providers.search.placeholder',\n 'Search providers by name, business, or specialization...'\n )}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-10 h-12\"\n />\n </div>\n </div>\n\n {/* Filters Panel */}\n {showFilters && (\n <Card>\n <CardContent className=\"p-6\">\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <div>\n <label className=\"block text-sm font-medium mb-2\">\n {tr('proserviceworld.providers.filters.category', 'Category')}\n </label>\n <select\n value={selectedCategory}\n onChange={(e) => setSelectedCategory(e.target.value as ServiceCategory | '')}\n className=\"w-full p-2 border border-input rounded-md bg-background text-foreground\"\n >\n {categoryOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {tr(opt.key, opt.fallback)}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"block text-sm font-medium mb-2\">\n {tr('proserviceworld.providers.filters.minimumRating', 'Minimum Rating')}\n </label>\n <select\n value={minRating}\n onChange={(e) => setMinRating(e.target.value ? Number(e.target.value) : '')}\n className=\"w-full p-2 border border-input rounded-md bg-background text-foreground\"\n >\n <option value=\"\">\n {tr('proserviceworld.providers.filters.anyRating', 'Any Rating')}\n </option>\n <option value=\"4\">\n {tr('proserviceworld.providers.filters.rating4', '4+ Stars')}\n </option>\n <option value=\"4.5\">\n {tr('proserviceworld.providers.filters.rating45', '4.5+ Stars')}\n </option>\n <option value=\"4.8\">\n {tr('proserviceworld.providers.filters.rating48', '4.8+ Stars')}\n </option>\n </select>\n </div>\n <div className=\"flex items-end\">\n <Button variant=\"outline\" onClick={clearFilters} className=\"w-full\">\n {tr('proserviceworld.providers.filters.clear', 'Clear Filters')}\n </Button>\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n\n {/* Provider Grid */}\n {filteredProviders.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6\">\n {filteredProviders.map((provider) => (\n <Card key={provider.id} className=\"hover:shadow-md transition-shadow\">\n <CardContent className=\"p-6\">\n <div className=\"flex items-center space-x-4 mb-4\">\n <div className=\"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center\">\n <span className=\"text-primary font-bold\">{provider.name.charAt(0)}</span>\n </div>\n <div className=\"flex-1 min-w-0\">\n <h3 className=\"font-semibold truncate\">{provider.businessName}</h3>\n <p className=\"text-sm text-muted-foreground truncate\">{provider.name}</p>\n </div>\n {provider.verified && <CheckCircle className=\"h-5 w-5 text-blue-600 shrink-0\" />}\n </div>\n\n <p className=\"text-sm text-muted-foreground mb-3 line-clamp-2\">\n {provider.tagline}\n </p>\n\n <div className=\"flex flex-wrap gap-1 mb-3\">\n {provider.specializations.slice(0, 2).map((spec) => (\n <Badge key={spec} variant=\"secondary\" className=\"text-xs\">\n {spec}\n </Badge>\n ))}\n {provider.specializations.length > 2 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n +{provider.specializations.length - 2}\n </Badge>\n )}\n </div>\n\n <div className=\"flex items-center justify-between text-sm mb-3\">\n <div className=\"flex items-center\">\n <Star className=\"h-4 w-4 text-yellow-400 fill-current mr-1\" />\n <span className=\"font-medium\">{provider.rating.toFixed(1)}</span>\n <span className=\"text-muted-foreground ml-1\">({provider.totalReviews})</span>\n </div>\n <div className=\"flex items-center text-muted-foreground\">\n <MapPin className=\"h-3 w-3 mr-1\" />\n <span>{provider.location}</span>\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-2 text-xs text-muted-foreground border-t pt-3\">\n <div className=\"flex items-center\">\n <Clock className=\"h-3 w-3 mr-1\" />\n {tr('proserviceworld.providers.card.responseTime', '{{count}}h response', {\n count: provider.responseTime,\n })}\n </div>\n <div className=\"flex items-center\">\n <Briefcase className=\"h-3 w-3 mr-1\" />\n {tr('proserviceworld.providers.card.projects', '{{count}} projects', {\n count: provider.projectsCompleted,\n })}\n </div>\n </div>\n\n <Button variant=\"outline\" size=\"sm\" className=\"w-full mt-4\">\n {tr('proserviceworld.providers.actions.viewProfile', 'View Profile')}\n </Button>\n </CardContent>\n </Card>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-12\">\n <Users className=\"h-12 w-12 mx-auto text-muted-foreground mb-4\" />\n <h3 className=\"text-lg font-medium mb-2\">\n {tr('proserviceworld.providers.empty.title', 'No providers 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 {/* Provider Statistics */}\n {filteredProviders.length > 0 && (\n <Card className=\"bg-primary/5\">\n <CardContent className=\"p-8\">\n <div className=\"text-center mb-8\">\n <h2 className=\"text-xl font-bold\">\n {tr('proserviceworld.providers.stats.title', 'Provider Statistics')}\n </h2>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-8\">\n <div className=\"text-center\">\n <div className=\"flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4\">\n <Star className=\"h-6 w-6 text-primary\" />\n </div>\n <div className=\"text-2xl font-bold\">{avgRating}</div>\n <div className=\"text-sm text-muted-foreground\">\n {tr('proserviceworld.providers.stats.averageRating', 'Average Rating')}\n </div>\n </div>\n <div className=\"text-center\">\n <div className=\"flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4\">\n <Users className=\"h-6 w-6 text-primary\" />\n </div>\n <div className=\"text-2xl font-bold\">{filteredProviders.length}</div>\n <div className=\"text-sm text-muted-foreground\">\n {tr('proserviceworld.providers.stats.expertProviders', 'Expert Providers')}\n </div>\n </div>\n <div className=\"text-center\">\n <div className=\"flex items-center justify-center w-12 h-12 mx-auto bg-primary/10 rounded-lg mb-4\">\n <MapPin className=\"h-6 w-6 text-primary\" />\n </div>\n <div className=\"text-2xl font-bold\">{countries}</div>\n <div className=\"text-sm text-muted-foreground\">\n {tr('proserviceworld.providers.stats.countries', 'Countries')}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ReviewsPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ReviewsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReviewsPage.d.ts","sourceRoot":"","sources":["../../../src/proserviceworld/pages/ReviewsPage.tsx"],"names":[],"mappings":"AA2BA,wBAAgB,WAAW,4CA2U1B"}