@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,583 @@
1
+ import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
2
+ import { tWithFallback as t } from "../utils/i18n.js";
3
+ import { useState as n } from "react";
4
+ import { AlertCircle as r, BarChart3 as i, Bell as a, BookOpen as o, Calendar as s, CheckCircle as c, Clock as l, DollarSign as u, Eye as d, MessageSquare as f, Plus as p, Star as m, TrendingUp as h, Users as g } from "lucide-react";
5
+ import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell";
6
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
7
+ import { Badge as b, Button as x, Card as S, CardContent as C, CardHeader as w, CardTitle as T } from "@burdenoff/fe-libs/ui";
8
+ //#region src/proserviceworld/pages/DashboardPage.tsx
9
+ function E() {
10
+ let { t: E } = _(), D = (e, n, r) => t(E, e, n, r), { bookings: O, providers: k, services: A, reviews: j, notifications: M } = e(), [N, P] = n("client"), F = O.filter((e) => e.status === "in_progress"), I = O.filter((e) => e.status === "completed"), L = O.filter((e) => e.status === "pending"), R = O.filter((e) => e.paymentStatus === "completed").reduce((e, t) => e + t.budget, 0), z = M.filter((e) => !e.read).length, B = [
11
+ {
12
+ id: "client",
13
+ label: D("proserviceworld.dashboard.views.client", "Client")
14
+ },
15
+ {
16
+ id: "provider",
17
+ label: D("proserviceworld.dashboard.views.provider", "Provider")
18
+ },
19
+ {
20
+ id: "admin",
21
+ label: D("proserviceworld.dashboard.views.admin", "Admin")
22
+ },
23
+ {
24
+ id: "team",
25
+ label: D("proserviceworld.dashboard.views.team", "Team")
26
+ }
27
+ ], V = (e) => e === "completed" ? D("proserviceworld.shared.bookingStatus.completed", "completed") : e === "in_progress" ? D("proserviceworld.shared.bookingStatus.inProgress", "in progress") : e === "pending" ? D("proserviceworld.shared.bookingStatus.pending", "pending") : D("proserviceworld.shared.bookingStatus.cancelled", "cancelled");
28
+ return /* @__PURE__ */ y("div", {
29
+ className: "space-y-6 p-6",
30
+ children: [
31
+ /* @__PURE__ */ y("div", {
32
+ className: "flex items-center justify-between",
33
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h1", {
34
+ className: "text-2xl font-semibold",
35
+ children: D("proserviceworld.dashboard.title", "Dashboard")
36
+ }), /* @__PURE__ */ v("p", {
37
+ className: "text-sm text-muted-foreground",
38
+ children: D("proserviceworld.dashboard.subtitle", "Welcome back! Here is your activity overview.")
39
+ })] }), /* @__PURE__ */ y("div", {
40
+ className: "flex items-center gap-2",
41
+ children: [/* @__PURE__ */ v("div", {
42
+ className: "flex bg-muted rounded-lg p-1",
43
+ children: B.map((e) => /* @__PURE__ */ v("button", {
44
+ onClick: () => P(e.id),
45
+ className: `px-3 py-1.5 rounded text-sm font-medium transition-colors ${N === e.id ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"}`,
46
+ children: e.label
47
+ }, e.id))
48
+ }), z > 0 && /* @__PURE__ */ y(x, {
49
+ variant: "outline",
50
+ size: "sm",
51
+ children: [/* @__PURE__ */ v(a, { className: "h-4 w-4 mr-1" }), z]
52
+ })]
53
+ })]
54
+ }),
55
+ N === "client" && /* @__PURE__ */ y("div", {
56
+ className: "space-y-6",
57
+ children: [
58
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
59
+ className: "p-6",
60
+ children: /* @__PURE__ */ y("div", {
61
+ className: "flex items-center justify-between",
62
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
63
+ className: "text-xl font-bold",
64
+ children: D("proserviceworld.dashboard.client.welcomeTitle", "Welcome back, Alex!")
65
+ }), /* @__PURE__ */ v("p", {
66
+ className: "text-muted-foreground mt-1",
67
+ children: D("proserviceworld.dashboard.client.welcomeSubtitle", "Manage your services, bookings, and find new providers")
68
+ })] }), /* @__PURE__ */ y(x, {
69
+ size: "sm",
70
+ children: [/* @__PURE__ */ v(p, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.client.actions.findServices", "Find Services")]
71
+ })]
72
+ })
73
+ }) }),
74
+ /* @__PURE__ */ y("div", {
75
+ className: "grid gap-4 md:grid-cols-4",
76
+ children: [
77
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
78
+ className: "p-6",
79
+ children: /* @__PURE__ */ y("div", {
80
+ className: "flex items-center",
81
+ children: [/* @__PURE__ */ v(s, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
82
+ className: "ml-4",
83
+ children: [/* @__PURE__ */ v("p", {
84
+ className: "text-2xl font-bold",
85
+ children: F.length
86
+ }), /* @__PURE__ */ v("p", {
87
+ className: "text-sm text-muted-foreground",
88
+ children: D("proserviceworld.dashboard.client.metrics.activeBookings", "Active Bookings")
89
+ })]
90
+ })]
91
+ })
92
+ }) }),
93
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
94
+ className: "p-6",
95
+ children: /* @__PURE__ */ y("div", {
96
+ className: "flex items-center",
97
+ children: [/* @__PURE__ */ v(m, { className: "h-8 w-8 text-yellow-500" }), /* @__PURE__ */ y("div", {
98
+ className: "ml-4",
99
+ children: [/* @__PURE__ */ v("p", {
100
+ className: "text-2xl font-bold",
101
+ children: "4.8"
102
+ }), /* @__PURE__ */ v("p", {
103
+ className: "text-sm text-muted-foreground",
104
+ children: D("proserviceworld.dashboard.client.metrics.avgRatingGiven", "Avg. Rating Given")
105
+ })]
106
+ })]
107
+ })
108
+ }) }),
109
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
110
+ className: "p-6",
111
+ children: /* @__PURE__ */ y("div", {
112
+ className: "flex items-center",
113
+ children: [/* @__PURE__ */ v(c, { className: "h-8 w-8 text-green-600" }), /* @__PURE__ */ y("div", {
114
+ className: "ml-4",
115
+ children: [/* @__PURE__ */ v("p", {
116
+ className: "text-2xl font-bold",
117
+ children: I.length
118
+ }), /* @__PURE__ */ v("p", {
119
+ className: "text-sm text-muted-foreground",
120
+ children: D("proserviceworld.dashboard.client.metrics.completedProjects", "Completed Projects")
121
+ })]
122
+ })]
123
+ })
124
+ }) }),
125
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
126
+ className: "p-6",
127
+ children: /* @__PURE__ */ y("div", {
128
+ className: "flex items-center",
129
+ children: [/* @__PURE__ */ v(u, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
130
+ className: "ml-4",
131
+ children: [/* @__PURE__ */ y("p", {
132
+ className: "text-2xl font-bold",
133
+ children: ["$", R.toLocaleString()]
134
+ }), /* @__PURE__ */ v("p", {
135
+ className: "text-sm text-muted-foreground",
136
+ children: D("proserviceworld.dashboard.client.metrics.totalSpent", "Total Spent")
137
+ })]
138
+ })]
139
+ })
140
+ }) })
141
+ ]
142
+ }),
143
+ /* @__PURE__ */ y(S, { children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ y("div", {
144
+ className: "flex items-center justify-between",
145
+ children: [/* @__PURE__ */ v(T, { children: D("proserviceworld.dashboard.client.sections.recentBookings", "Recent Bookings") }), /* @__PURE__ */ v(x, {
146
+ variant: "outline",
147
+ size: "sm",
148
+ children: D("proserviceworld.shared.actions.viewAll", "View All")
149
+ })]
150
+ }) }), /* @__PURE__ */ v(C, {
151
+ className: "space-y-4",
152
+ children: O.slice(0, 5).map((e) => /* @__PURE__ */ y("div", {
153
+ className: "flex items-center justify-between p-4 border rounded-lg",
154
+ children: [/* @__PURE__ */ y("div", {
155
+ className: "flex items-center space-x-4",
156
+ children: [/* @__PURE__ */ v("div", {
157
+ className: "h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",
158
+ children: /* @__PURE__ */ v(o, { className: "h-5 w-5 text-primary" })
159
+ }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
160
+ className: "font-medium",
161
+ children: e.title
162
+ }), /* @__PURE__ */ v("p", {
163
+ className: "text-sm text-muted-foreground",
164
+ children: D("proserviceworld.dashboard.client.booking.provider", "Provider: {{name}}", { name: e.providerName })
165
+ })] })]
166
+ }), /* @__PURE__ */ y("div", {
167
+ className: "text-right",
168
+ children: [/* @__PURE__ */ y("p", {
169
+ className: "font-medium text-sm",
170
+ children: ["$", e.budget.toLocaleString()]
171
+ }), /* @__PURE__ */ v(b, {
172
+ variant: e.status === "completed" ? "default" : e.status === "in_progress" ? "secondary" : "outline",
173
+ children: V(e.status)
174
+ })]
175
+ })]
176
+ }, e.id))
177
+ })] })
178
+ ]
179
+ }),
180
+ N === "provider" && /* @__PURE__ */ y("div", {
181
+ className: "space-y-6",
182
+ children: [
183
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
184
+ className: "p-6",
185
+ children: /* @__PURE__ */ y("div", {
186
+ className: "flex items-center justify-between",
187
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
188
+ className: "text-xl font-bold",
189
+ children: D("proserviceworld.dashboard.provider.welcomeTitle", "Welcome back, Provider!")
190
+ }), /* @__PURE__ */ v("p", {
191
+ className: "text-muted-foreground mt-1",
192
+ children: D("proserviceworld.dashboard.provider.welcomeSubtitle", "Manage your services, bookings, and grow your business")
193
+ })] }), /* @__PURE__ */ y("div", {
194
+ className: "flex gap-2",
195
+ children: [/* @__PURE__ */ y(x, {
196
+ variant: "outline",
197
+ size: "sm",
198
+ children: [/* @__PURE__ */ v(p, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.provider.actions.addService", "Add Service")]
199
+ }), /* @__PURE__ */ y(x, {
200
+ size: "sm",
201
+ children: [/* @__PURE__ */ v(d, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.provider.actions.editProfile", "Edit Profile")]
202
+ })]
203
+ })]
204
+ })
205
+ }) }),
206
+ /* @__PURE__ */ y("div", {
207
+ className: "grid gap-4 md:grid-cols-4",
208
+ children: [
209
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
210
+ className: "p-6",
211
+ children: /* @__PURE__ */ y("div", {
212
+ className: "flex items-center",
213
+ children: [/* @__PURE__ */ v(m, { className: "h-8 w-8 text-yellow-500" }), /* @__PURE__ */ y("div", {
214
+ className: "ml-4",
215
+ children: [/* @__PURE__ */ v("p", {
216
+ className: "text-2xl font-bold",
217
+ children: "4.9"
218
+ }), /* @__PURE__ */ v("p", {
219
+ className: "text-sm text-muted-foreground",
220
+ children: D("proserviceworld.dashboard.provider.metrics.rating", "Rating ({{count}} reviews)", { count: j.length })
221
+ })]
222
+ })]
223
+ })
224
+ }) }),
225
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
226
+ className: "p-6",
227
+ children: /* @__PURE__ */ y("div", {
228
+ className: "flex items-center",
229
+ children: [/* @__PURE__ */ v(s, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
230
+ className: "ml-4",
231
+ children: [/* @__PURE__ */ v("p", {
232
+ className: "text-2xl font-bold",
233
+ children: F.length
234
+ }), /* @__PURE__ */ v("p", {
235
+ className: "text-sm text-muted-foreground",
236
+ children: D("proserviceworld.dashboard.provider.metrics.activeProjects", "Active Projects")
237
+ })]
238
+ })]
239
+ })
240
+ }) }),
241
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
242
+ className: "p-6",
243
+ children: /* @__PURE__ */ y("div", {
244
+ className: "flex items-center",
245
+ children: [/* @__PURE__ */ v(h, { className: "h-8 w-8 text-green-600" }), /* @__PURE__ */ y("div", {
246
+ className: "ml-4",
247
+ children: [/* @__PURE__ */ v("p", {
248
+ className: "text-2xl font-bold",
249
+ children: "98%"
250
+ }), /* @__PURE__ */ v("p", {
251
+ className: "text-sm text-muted-foreground",
252
+ children: D("proserviceworld.dashboard.provider.metrics.completionRate", "Completion Rate")
253
+ })]
254
+ })]
255
+ })
256
+ }) }),
257
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
258
+ className: "p-6",
259
+ children: /* @__PURE__ */ y("div", {
260
+ className: "flex items-center",
261
+ children: [/* @__PURE__ */ v(u, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
262
+ className: "ml-4",
263
+ children: [/* @__PURE__ */ v("p", {
264
+ className: "text-2xl font-bold",
265
+ children: "$12,850"
266
+ }), /* @__PURE__ */ v("p", {
267
+ className: "text-sm text-muted-foreground",
268
+ children: D("proserviceworld.dashboard.provider.metrics.thisMonth", "This Month")
269
+ })]
270
+ })]
271
+ })
272
+ }) })
273
+ ]
274
+ }),
275
+ /* @__PURE__ */ y(S, { children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ y("div", {
276
+ className: "flex items-center justify-between",
277
+ children: [/* @__PURE__ */ v(T, { children: D("proserviceworld.dashboard.provider.sections.yourServices", "Your Services") }), /* @__PURE__ */ y("div", {
278
+ className: "flex gap-2",
279
+ children: [/* @__PURE__ */ y(x, {
280
+ variant: "outline",
281
+ size: "sm",
282
+ children: [/* @__PURE__ */ v(d, { className: "h-4 w-4 mr-2" }), D("proserviceworld.shared.actions.viewAll", "View All")]
283
+ }), /* @__PURE__ */ y(x, {
284
+ size: "sm",
285
+ children: [/* @__PURE__ */ v(p, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.provider.actions.addService", "Add Service")]
286
+ })]
287
+ })]
288
+ }) }), /* @__PURE__ */ v(C, { children: /* @__PURE__ */ v("div", {
289
+ className: "grid gap-4 md:grid-cols-3",
290
+ children: A.slice(0, 3).map((e) => /* @__PURE__ */ y("div", {
291
+ className: "border rounded-lg p-4",
292
+ children: [
293
+ /* @__PURE__ */ v("h4", {
294
+ className: "font-medium mb-1",
295
+ children: e.title
296
+ }),
297
+ /* @__PURE__ */ v("p", {
298
+ className: "text-sm text-muted-foreground mb-2 line-clamp-2",
299
+ children: e.description
300
+ }),
301
+ /* @__PURE__ */ y("div", {
302
+ className: "flex items-center justify-between",
303
+ children: [/* @__PURE__ */ v("span", {
304
+ className: "text-sm font-medium",
305
+ children: D("proserviceworld.services.card.pricing.from", "From ${{amount}}", { amount: e.pricing.basePrice.toLocaleString() })
306
+ }), /* @__PURE__ */ v(b, {
307
+ variant: "secondary",
308
+ children: D("proserviceworld.dashboard.provider.service.bookings", "{{count}} bookings", { count: e.totalBookings })
309
+ })]
310
+ })
311
+ ]
312
+ }, e.id))
313
+ }) })] })
314
+ ]
315
+ }),
316
+ N === "admin" && /* @__PURE__ */ y("div", {
317
+ className: "space-y-6",
318
+ children: [
319
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
320
+ className: "p-6",
321
+ children: /* @__PURE__ */ y("div", {
322
+ className: "flex items-center justify-between",
323
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
324
+ className: "text-xl font-bold",
325
+ children: D("proserviceworld.dashboard.admin.title", "Admin Dashboard")
326
+ }), /* @__PURE__ */ v("p", {
327
+ className: "text-muted-foreground mt-1",
328
+ children: D("proserviceworld.dashboard.admin.subtitle", "Monitor platform activity and manage users")
329
+ })] }), /* @__PURE__ */ y("div", {
330
+ className: "flex gap-2",
331
+ children: [/* @__PURE__ */ y(x, {
332
+ variant: "outline",
333
+ size: "sm",
334
+ children: [/* @__PURE__ */ v(g, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.admin.actions.manageUsers", "Manage Users")]
335
+ }), /* @__PURE__ */ y(x, {
336
+ size: "sm",
337
+ children: [/* @__PURE__ */ v(i, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.admin.actions.viewReports", "View Reports")]
338
+ })]
339
+ })]
340
+ })
341
+ }) }),
342
+ /* @__PURE__ */ y("div", {
343
+ className: "grid gap-4 md:grid-cols-4",
344
+ children: [
345
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
346
+ className: "p-6",
347
+ children: /* @__PURE__ */ y("div", {
348
+ className: "flex items-center",
349
+ children: [/* @__PURE__ */ v(g, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
350
+ className: "ml-4",
351
+ children: [/* @__PURE__ */ v("p", {
352
+ className: "text-2xl font-bold",
353
+ children: k.length
354
+ }), /* @__PURE__ */ v("p", {
355
+ className: "text-sm text-muted-foreground",
356
+ children: D("proserviceworld.dashboard.admin.metrics.totalProviders", "Total Providers")
357
+ })]
358
+ })]
359
+ })
360
+ }) }),
361
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
362
+ className: "p-6",
363
+ children: /* @__PURE__ */ y("div", {
364
+ className: "flex items-center",
365
+ children: [/* @__PURE__ */ v(o, { className: "h-8 w-8 text-green-600" }), /* @__PURE__ */ y("div", {
366
+ className: "ml-4",
367
+ children: [/* @__PURE__ */ v("p", {
368
+ className: "text-2xl font-bold",
369
+ children: A.length
370
+ }), /* @__PURE__ */ v("p", {
371
+ className: "text-sm text-muted-foreground",
372
+ children: D("proserviceworld.dashboard.admin.metrics.totalServices", "Total Services")
373
+ })]
374
+ })]
375
+ })
376
+ }) }),
377
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
378
+ className: "p-6",
379
+ children: /* @__PURE__ */ y("div", {
380
+ className: "flex items-center",
381
+ children: [/* @__PURE__ */ v(s, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
382
+ className: "ml-4",
383
+ children: [/* @__PURE__ */ v("p", {
384
+ className: "text-2xl font-bold",
385
+ children: O.length
386
+ }), /* @__PURE__ */ v("p", {
387
+ className: "text-sm text-muted-foreground",
388
+ children: D("proserviceworld.dashboard.admin.metrics.totalBookings", "Total Bookings")
389
+ })]
390
+ })]
391
+ })
392
+ }) }),
393
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
394
+ className: "p-6",
395
+ children: /* @__PURE__ */ y("div", {
396
+ className: "flex items-center",
397
+ children: [/* @__PURE__ */ v(u, { className: "h-8 w-8 text-yellow-600" }), /* @__PURE__ */ y("div", {
398
+ className: "ml-4",
399
+ children: [/* @__PURE__ */ v("p", {
400
+ className: "text-2xl font-bold",
401
+ children: "$45,670"
402
+ }), /* @__PURE__ */ v("p", {
403
+ className: "text-sm text-muted-foreground",
404
+ children: D("proserviceworld.dashboard.admin.metrics.totalRevenue", "Total Revenue")
405
+ })]
406
+ })]
407
+ })
408
+ }) })
409
+ ]
410
+ }),
411
+ /* @__PURE__ */ y("div", {
412
+ className: "grid gap-4 md:grid-cols-2",
413
+ children: [/* @__PURE__ */ y(S, { children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, { children: D("proserviceworld.dashboard.admin.sections.recentProviders", "Recent Providers") }) }), /* @__PURE__ */ v(C, {
414
+ className: "space-y-4",
415
+ children: k.slice(0, 3).map((e) => /* @__PURE__ */ y("div", {
416
+ className: "flex items-center space-x-4",
417
+ children: [
418
+ /* @__PURE__ */ v("div", {
419
+ className: "h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",
420
+ children: /* @__PURE__ */ v("span", {
421
+ className: "text-primary font-medium",
422
+ children: e.name.charAt(0)
423
+ })
424
+ }),
425
+ /* @__PURE__ */ y("div", {
426
+ className: "flex-1",
427
+ children: [/* @__PURE__ */ v("p", {
428
+ className: "font-medium",
429
+ children: e.businessName
430
+ }), /* @__PURE__ */ v("p", {
431
+ className: "text-sm text-muted-foreground",
432
+ children: e.specializations[0]
433
+ })]
434
+ }),
435
+ /* @__PURE__ */ y("div", {
436
+ className: "flex items-center text-sm",
437
+ children: [/* @__PURE__ */ v(m, { className: "h-4 w-4 text-yellow-400 mr-1" }), e.rating.toFixed(1)]
438
+ })
439
+ ]
440
+ }, e.id))
441
+ })] }), /* @__PURE__ */ y(S, { children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, { children: D("proserviceworld.dashboard.admin.sections.platformAlerts", "Platform Alerts") }) }), /* @__PURE__ */ y(C, {
442
+ className: "space-y-4",
443
+ children: [
444
+ /* @__PURE__ */ y("div", {
445
+ className: "flex items-start space-x-3",
446
+ children: [/* @__PURE__ */ v(r, { className: "h-5 w-5 text-yellow-500 mt-0.5" }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
447
+ className: "font-medium text-sm",
448
+ children: D("proserviceworld.dashboard.admin.alerts.pendingVerifications.title", "Pending Verifications")
449
+ }), /* @__PURE__ */ v("p", {
450
+ className: "text-sm text-muted-foreground",
451
+ children: D("proserviceworld.dashboard.admin.alerts.pendingVerifications.description", "3 providers awaiting verification")
452
+ })] })]
453
+ }),
454
+ /* @__PURE__ */ y("div", {
455
+ className: "flex items-start space-x-3",
456
+ children: [/* @__PURE__ */ v(c, { className: "h-5 w-5 text-green-500 mt-0.5" }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
457
+ className: "font-medium text-sm",
458
+ children: D("proserviceworld.dashboard.admin.alerts.systemStatus.title", "System Status")
459
+ }), /* @__PURE__ */ v("p", {
460
+ className: "text-sm text-muted-foreground",
461
+ children: D("proserviceworld.dashboard.admin.alerts.systemStatus.description", "All systems operational")
462
+ })] })]
463
+ }),
464
+ /* @__PURE__ */ y("div", {
465
+ className: "flex items-start space-x-3",
466
+ children: [/* @__PURE__ */ v(a, { className: "h-5 w-5 text-blue-500 mt-0.5" }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
467
+ className: "font-medium text-sm",
468
+ children: D("proserviceworld.dashboard.admin.alerts.newReviews.title", "New Reviews")
469
+ }), /* @__PURE__ */ v("p", {
470
+ className: "text-sm text-muted-foreground",
471
+ children: D("proserviceworld.dashboard.admin.alerts.newReviews.description", "12 new reviews this week")
472
+ })] })]
473
+ })
474
+ ]
475
+ })] })]
476
+ })
477
+ ]
478
+ }),
479
+ N === "team" && /* @__PURE__ */ y("div", {
480
+ className: "space-y-6",
481
+ children: [
482
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
483
+ className: "p-6",
484
+ children: /* @__PURE__ */ y("div", {
485
+ className: "flex items-center justify-between",
486
+ children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
487
+ className: "text-xl font-bold",
488
+ children: D("proserviceworld.dashboard.team.title", "Welcome, Team Member!")
489
+ }), /* @__PURE__ */ v("p", {
490
+ className: "text-muted-foreground mt-1",
491
+ children: D("proserviceworld.dashboard.team.subtitle", "Manage assigned tasks and projects")
492
+ })] }), /* @__PURE__ */ y(x, {
493
+ variant: "outline",
494
+ size: "sm",
495
+ children: [/* @__PURE__ */ v(s, { className: "h-4 w-4 mr-2" }), D("proserviceworld.dashboard.team.actions.myTasks", "My Tasks")]
496
+ })]
497
+ })
498
+ }) }),
499
+ /* @__PURE__ */ y("div", {
500
+ className: "grid gap-4 md:grid-cols-4",
501
+ children: [
502
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
503
+ className: "p-6",
504
+ children: /* @__PURE__ */ y("div", {
505
+ className: "flex items-center",
506
+ children: [/* @__PURE__ */ v(c, { className: "h-8 w-8 text-green-600" }), /* @__PURE__ */ y("div", {
507
+ className: "ml-4",
508
+ children: [/* @__PURE__ */ v("p", {
509
+ className: "text-2xl font-bold",
510
+ children: "8"
511
+ }), /* @__PURE__ */ v("p", {
512
+ className: "text-sm text-muted-foreground",
513
+ children: D("proserviceworld.dashboard.team.metrics.tasksCompleted", "Tasks Completed")
514
+ })]
515
+ })]
516
+ })
517
+ }) }),
518
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
519
+ className: "p-6",
520
+ children: /* @__PURE__ */ y("div", {
521
+ className: "flex items-center",
522
+ children: [/* @__PURE__ */ v(l, { className: "h-8 w-8 text-yellow-600" }), /* @__PURE__ */ y("div", {
523
+ className: "ml-4",
524
+ children: [/* @__PURE__ */ v("p", {
525
+ className: "text-2xl font-bold",
526
+ children: L.length
527
+ }), /* @__PURE__ */ v("p", {
528
+ className: "text-sm text-muted-foreground",
529
+ children: D("proserviceworld.dashboard.team.metrics.pendingTasks", "Pending Tasks")
530
+ })]
531
+ })]
532
+ })
533
+ }) }),
534
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
535
+ className: "p-6",
536
+ children: /* @__PURE__ */ y("div", {
537
+ className: "flex items-center",
538
+ children: [/* @__PURE__ */ v(m, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
539
+ className: "ml-4",
540
+ children: [/* @__PURE__ */ v("p", {
541
+ className: "text-2xl font-bold",
542
+ children: "4.9"
543
+ }), /* @__PURE__ */ v("p", {
544
+ className: "text-sm text-muted-foreground",
545
+ children: D("proserviceworld.dashboard.team.metrics.performanceScore", "Performance Score")
546
+ })]
547
+ })]
548
+ })
549
+ }) }),
550
+ /* @__PURE__ */ v(S, { children: /* @__PURE__ */ v(C, {
551
+ className: "p-6",
552
+ children: /* @__PURE__ */ y("div", {
553
+ className: "flex items-center",
554
+ children: [/* @__PURE__ */ v(g, { className: "h-8 w-8 text-blue-600" }), /* @__PURE__ */ y("div", {
555
+ className: "ml-4",
556
+ children: [/* @__PURE__ */ v("p", {
557
+ className: "text-2xl font-bold",
558
+ children: F.length
559
+ }), /* @__PURE__ */ v("p", {
560
+ className: "text-sm text-muted-foreground",
561
+ children: D("proserviceworld.dashboard.team.metrics.activeProjects", "Active Projects")
562
+ })]
563
+ })]
564
+ })
565
+ }) })
566
+ ]
567
+ }),
568
+ /* @__PURE__ */ y(S, { children: [/* @__PURE__ */ v(w, { children: /* @__PURE__ */ v(T, { children: D("proserviceworld.dashboard.team.sections.recentActivity", "Recent Activity") }) }), /* @__PURE__ */ y(C, {
569
+ className: "text-center py-8",
570
+ children: [/* @__PURE__ */ v(f, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }), /* @__PURE__ */ v("p", {
571
+ className: "text-muted-foreground",
572
+ children: D("proserviceworld.dashboard.team.sections.comingSoon", "Team member features coming soon")
573
+ })]
574
+ })] })
575
+ ]
576
+ })
577
+ ]
578
+ });
579
+ }
580
+ //#endregion
581
+ export { E as DashboardPage };
582
+
583
+ //# sourceMappingURL=DashboardPage.js.map