@burdenoff/microfe-crewfoundry 2026.624.1 → 2026.625.2

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 (131) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +100 -76
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +118 -94
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +105 -81
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +134 -110
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +121 -97
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +28 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +74 -54
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +87 -69
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +99 -80
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +87 -68
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +31 -15
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +81 -61
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +71 -51
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +82 -58
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +46 -39
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +80 -62
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +104 -80
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +219 -151
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +183 -142
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +121 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +57 -46
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +91 -67
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +112 -93
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +55 -48
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +70 -50
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +140 -97
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +101 -85
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +68 -48
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +99 -71
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +97 -73
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +100 -76
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +93 -69
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +65 -45
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +93 -75
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +117 -72
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +66 -54
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +36 -20
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +90 -66
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +81 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +90 -65
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +33 -17
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +83 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +68 -48
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +80 -60
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +153 -118
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +42 -37
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +67 -47
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -85
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +76 -57
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +78 -60
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +138 -93
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +98 -53
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +69 -49
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +84 -65
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +76 -52
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +58 -40
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +85 -65
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +36 -29
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +108 -73
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +43 -27
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +67 -47
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +108 -63
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -64
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +185 -144
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +40 -24
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -2,29 +2,29 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useMemo as t } from "react";
3
3
  import { Award as n, Briefcase as r, Calendar as i, Clock as a, DollarSign as o, Globe as s, Mail as c, MapPin as l, MessageSquare as u, Phone as d, Star as f, ThumbsUp as p } from "lucide-react";
4
4
  import { jsx as m, jsxs as h } from "react/jsx-runtime";
5
- import { Badge as g, Button as _, Card as v, CardContent as y, CardDescription as b, CardHeader as x, CardTitle as S, Separator as C } from "@burdenoff/fe-libs/ui";
5
+ import { Badge as g, Button as _, Card as v, CardContent as y, CardDescription as b, CardHeader as x, CardTitle as S, EmphasisPanel as C, GradientText as w, PagePurpose as T, Separator as E } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.tsx
7
- function w() {
8
- let { marketplaceServices: w, clients: T, announcements: E } = e(), D = t(() => Array.from(new Set(w.flatMap((e) => e.skills))).slice(0, 12), [w]), O = t(() => w.slice(0, 3).map((e, t) => ({
7
+ function D() {
8
+ let { marketplaceServices: D, clients: O, announcements: k } = e(), A = t(() => Array.from(new Set(D.flatMap((e) => e.skills))).slice(0, 12), [D]), j = t(() => D.slice(0, 3).map((e, t) => ({
9
9
  title: e.title,
10
- client: T[t % Math.max(T.length, 1)]?.name || e.provider,
10
+ client: O[t % Math.max(O.length, 1)]?.name || e.provider,
11
11
  duration: e.deliveryTime,
12
12
  description: e.description,
13
13
  outcome: `${Math.round(e.rating * 20)}% satisfaction`
14
- })), [T, w]), k = t(() => E.slice(0, 3).map((e, t) => ({
14
+ })), [O, D]), M = t(() => k.slice(0, 3).map((e, t) => ({
15
15
  author: e.author,
16
- company: T[t % Math.max(T.length, 1)]?.name || "CrewFoundry Client",
17
- rating: Math.min(5, Math.max(4, Math.round(w[t % Math.max(w.length, 1)]?.rating || 4.5))),
16
+ company: O[t % Math.max(O.length, 1)]?.name || "CrewFoundry Client",
17
+ rating: Math.min(5, Math.max(4, Math.round(D[t % Math.max(D.length, 1)]?.rating || 4.5))),
18
18
  date: new Date(e.createdAt).toLocaleString("en-US", {
19
19
  month: "short",
20
20
  year: "numeric"
21
21
  }),
22
22
  text: e.content
23
23
  })), [
24
- E,
25
- T,
26
- w
27
- ]), A = w.length > 0 ? (w.reduce((e, t) => e + t.rating, 0) / w.length).toFixed(1) : "4.8", j = w.reduce((e, t) => e + t.reviews, 0);
24
+ k,
25
+ O,
26
+ D
27
+ ]), N = D.length > 0 ? (D.reduce((e, t) => e + t.rating, 0) / D.length).toFixed(1) : "4.8", P = D.reduce((e, t) => e + t.reviews, 0);
28
28
  return /* @__PURE__ */ h("div", {
29
29
  className: "space-y-6 p-6",
30
30
  children: [
@@ -41,7 +41,7 @@ function w() {
41
41
  children: [
42
42
  /* @__PURE__ */ m("h1", {
43
43
  className: "text-2xl font-semibold",
44
- children: "Maria Santos"
44
+ children: /* @__PURE__ */ m(w, { children: "Maria Santos" })
45
45
  }),
46
46
  /* @__PURE__ */ m(g, { children: "Top Rated" }),
47
47
  /* @__PURE__ */ m(g, {
@@ -54,6 +54,10 @@ function w() {
54
54
  className: "text-sm text-text-secondary",
55
55
  children: "Senior HR Consultant & Technical Recruiter"
56
56
  }),
57
+ /* @__PURE__ */ m(T, {
58
+ className: "mt-1",
59
+ children: "Review a freelancer's full profile — skills, history, and ratings — to decide if they're the right fit before you hire."
60
+ }),
57
61
  /* @__PURE__ */ h("div", {
58
62
  className: "flex flex-wrap items-center gap-4 text-xs text-text-secondary",
59
63
  children: [
@@ -72,12 +76,13 @@ function w() {
72
76
  /* @__PURE__ */ h("span", {
73
77
  className: "flex items-center gap-1",
74
78
  children: [
75
- /* @__PURE__ */ m(f, { className: "h-3 w-3 text-yellow-500" }),
79
+ /* @__PURE__ */ m(f, { className: "h-3 w-3 text-status-warning-text" }),
76
80
  " ",
77
- A,
81
+ N,
78
82
  " (",
79
- j,
80
- " reviews)"
83
+ P,
84
+ " ",
85
+ "reviews)"
81
86
  ]
82
87
  })
83
88
  ]
@@ -102,26 +107,26 @@ function w() {
102
107
  {
103
108
  icon: r,
104
109
  label: "Projects",
105
- value: `${j}`,
106
- color: "text-blue-500"
110
+ value: `${P}`,
111
+ color: "text-status-info-text"
107
112
  },
108
113
  {
109
114
  icon: p,
110
115
  label: "Success Rate",
111
- value: `${Math.min(99, Math.max(80, Math.round(Number(A) * 20)))}%`,
112
- color: "text-green-500"
116
+ value: `${Math.min(99, Math.max(80, Math.round(Number(N) * 20)))}%`,
117
+ color: "text-status-success-text"
113
118
  },
114
119
  {
115
120
  icon: o,
116
121
  label: "Hourly Rate",
117
- value: `$${Math.round((w[0]?.price || 150) / 10)}`,
118
- color: "text-purple-500"
122
+ value: `$${Math.round((D[0]?.price || 150) / 10)}`,
123
+ color: "text-action-primary-bg"
119
124
  },
120
125
  {
121
126
  icon: n,
122
127
  label: "Certifications",
123
- value: `${Math.max(3, Math.round(D.length / 2))}`,
124
- color: "text-yellow-500"
128
+ value: `${Math.max(3, Math.round(A.length / 2))}`,
129
+ color: "text-status-warning-text"
125
130
  }
126
131
  ].map((e) => /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(y, {
127
132
  className: "flex items-center gap-3 pt-6",
@@ -139,11 +144,11 @@ function w() {
139
144
  children: [/* @__PURE__ */ h("div", {
140
145
  className: "lg:col-span-2 space-y-6",
141
146
  children: [
142
- /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(x, { children: /* @__PURE__ */ m(S, {
143
- className: "text-base",
147
+ /* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m("div", {
148
+ className: "mb-2 text-base font-semibold",
144
149
  children: "About"
145
- }) }), /* @__PURE__ */ h(y, {
146
- className: "text-sm text-text-secondary space-y-3",
150
+ }), /* @__PURE__ */ h("div", {
151
+ className: "space-y-3 text-sm text-text-secondary",
147
152
  children: [/* @__PURE__ */ m("p", { children: "With 12+ years of experience in HR consulting and technical recruitment, I specialize in helping companies build world-class teams. My focus areas include executive search, engineering team buildouts, and designing scalable hiring processes for high-growth companies." }), /* @__PURE__ */ m("p", { children: "I've placed 300+ candidates across startups and Fortune 500 companies, with a 98% client satisfaction rate and 95% offer acceptance rate." })]
148
153
  })] }),
149
154
  /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(x, { children: [/* @__PURE__ */ m(S, {
@@ -151,7 +156,7 @@ function w() {
151
156
  children: "Portfolio"
152
157
  }), /* @__PURE__ */ m(b, { children: "Selected projects and outcomes" })] }), /* @__PURE__ */ m(y, {
153
158
  className: "space-y-4",
154
- children: O.map((e) => /* @__PURE__ */ h("div", {
159
+ children: j.map((e) => /* @__PURE__ */ h("div", {
155
160
  className: "rounded-lg border p-4 space-y-2",
156
161
  children: [
157
162
  /* @__PURE__ */ h("div", {
@@ -175,8 +180,8 @@ function w() {
175
180
  }),
176
181
  /* @__PURE__ */ h("div", {
177
182
  className: "flex items-center gap-2 text-xs",
178
- children: [/* @__PURE__ */ m(p, { className: "h-3 w-3 text-green-500" }), /* @__PURE__ */ m("span", {
179
- className: "text-green-600 font-medium",
183
+ children: [/* @__PURE__ */ m(p, { className: "h-3 w-3 text-status-success-text" }), /* @__PURE__ */ m("span", {
184
+ className: "text-status-success-text font-medium",
180
185
  children: e.outcome
181
186
  })]
182
187
  })
@@ -188,7 +193,7 @@ function w() {
188
193
  children: "Client Reviews"
189
194
  }), /* @__PURE__ */ m(b, { children: "What clients say about working with Maria" })] }), /* @__PURE__ */ m(y, {
190
195
  className: "space-y-4",
191
- children: k.map((e) => /* @__PURE__ */ h("div", {
196
+ children: M.map((e) => /* @__PURE__ */ h("div", {
192
197
  className: "space-y-2",
193
198
  children: [
194
199
  /* @__PURE__ */ h("div", {
@@ -205,14 +210,14 @@ function w() {
205
210
  ]
206
211
  })] }), /* @__PURE__ */ m("div", {
207
212
  className: "flex items-center gap-0.5",
208
- children: Array.from({ length: e.rating }).map((e, t) => /* @__PURE__ */ m(f, { className: "h-3 w-3 text-yellow-500 fill-yellow-500" }, t))
213
+ children: Array.from({ length: e.rating }).map((e, t) => /* @__PURE__ */ m(f, { className: "h-3 w-3 text-status-warning-text fill-yellow-500" }, t))
209
214
  })]
210
215
  }),
211
216
  /* @__PURE__ */ m("p", {
212
217
  className: "text-xs text-text-secondary",
213
218
  children: e.text
214
219
  }),
215
- /* @__PURE__ */ m(C, {})
220
+ /* @__PURE__ */ m(E, {})
216
221
  ]
217
222
  }, e.author))
218
223
  })] })
@@ -225,7 +230,7 @@ function w() {
225
230
  children: "Skills & Expertise"
226
231
  }) }), /* @__PURE__ */ m(y, {
227
232
  className: "flex flex-wrap gap-1.5",
228
- children: D.map((e) => /* @__PURE__ */ m(g, {
233
+ children: A.map((e) => /* @__PURE__ */ m(g, {
229
234
  variant: "secondary",
230
235
  className: "text-xs",
231
236
  children: e
@@ -244,7 +249,7 @@ function w() {
244
249
  "DEI in the Workplace - Cornell"
245
250
  ].map((e) => /* @__PURE__ */ h("div", {
246
251
  className: "flex items-center gap-2 text-xs",
247
- children: [/* @__PURE__ */ m(n, { className: "h-3 w-3 text-yellow-500 shrink-0" }), /* @__PURE__ */ m("span", { children: e })]
252
+ children: [/* @__PURE__ */ m(n, { className: "h-3 w-3 text-status-warning-text shrink-0" }), /* @__PURE__ */ m("span", { children: e })]
248
253
  }, e))
249
254
  })] }),
250
255
  /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(x, { children: /* @__PURE__ */ m(S, {
@@ -267,6 +272,6 @@ function w() {
267
272
  });
268
273
  }
269
274
  //#endregion
270
- export { w as MarketplaceFreelancerProfilePagePage };
275
+ export { D as MarketplaceFreelancerProfilePagePage };
271
276
 
272
277
  //# sourceMappingURL=MarketplaceFreelancerProfilePagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceFreelancerProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Award,\n Briefcase,\n Calendar,\n Clock,\n DollarSign,\n Globe,\n Mail,\n MapPin,\n MessageSquare,\n Phone,\n Star,\n ThumbsUp,\n} from 'lucide-react';\nimport { useMemo } from 'react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceFreelancerProfilePagePage() {\n const { marketplaceServices, clients, announcements } = useCrewFoundryStore();\n\n const skills = useMemo(\n () =>\n Array.from(new Set(marketplaceServices.flatMap((service) => service.skills))).slice(0, 12),\n [marketplaceServices]\n );\n\n const portfolio = useMemo(\n () =>\n marketplaceServices.slice(0, 3).map((service, index) => ({\n title: service.title,\n client: clients[index % Math.max(clients.length, 1)]?.name || service.provider,\n duration: service.deliveryTime,\n description: service.description,\n outcome: `${Math.round(service.rating * 20)}% satisfaction`,\n })),\n [clients, marketplaceServices]\n );\n\n const reviews = useMemo(\n () =>\n announcements.slice(0, 3).map((announcement, index) => ({\n author: announcement.author,\n company: clients[index % Math.max(clients.length, 1)]?.name || 'CrewFoundry Client',\n rating: Math.min(\n 5,\n Math.max(\n 4,\n Math.round(\n marketplaceServices[index % Math.max(marketplaceServices.length, 1)]?.rating || 4.5\n )\n )\n ),\n date: new Date(announcement.createdAt).toLocaleString('en-US', {\n month: 'short',\n year: 'numeric',\n }),\n text: announcement.content,\n })),\n [announcements, clients, marketplaceServices]\n );\n\n const avgRating =\n marketplaceServices.length > 0\n ? (\n marketplaceServices.reduce((sum, service) => sum + service.rating, 0) /\n marketplaceServices.length\n ).toFixed(1)\n : '4.8';\n\n const totalProjects = marketplaceServices.reduce((sum, service) => sum + service.reviews, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-start gap-6\">\n <div className=\"flex h-20 w-20 shrink-0 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text text-2xl font-semibold\">\n MS\n </div>\n <div className=\"flex-1 space-y-2\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">Maria Santos</h1>\n <Badge>Top Rated</Badge>\n <Badge variant=\"secondary\">Pro</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n Senior HR Consultant & Technical Recruiter\n </p>\n <div className=\"flex flex-wrap items-center gap-4 text-xs text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" /> San Francisco, CA\n </span>\n <span className=\"flex items-center gap-1\">\n <Globe className=\"h-3 w-3\" /> crewfoundry.com\n </span>\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" /> Member since 2022\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" /> {avgRating} ({totalProjects} reviews)\n </span>\n </div>\n <div className=\"flex gap-2 pt-1\">\n <Button size=\"sm\">\n <MessageSquare className=\"h-3 w-3 mr-1\" /> Message\n </Button>\n <Button size=\"sm\" variant=\"outline\">\n <Calendar className=\"h-3 w-3 mr-1\" /> Book Consultation\n </Button>\n </div>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n {\n icon: Briefcase,\n label: 'Projects',\n value: `${totalProjects}`,\n color: 'text-blue-500',\n },\n {\n icon: ThumbsUp,\n label: 'Success Rate',\n value: `${Math.min(99, Math.max(80, Math.round(Number(avgRating) * 20)))}%`,\n color: 'text-green-500',\n },\n {\n icon: DollarSign,\n label: 'Hourly Rate',\n value: `$${Math.round((marketplaceServices[0]?.price || 150) / 10)}`,\n color: 'text-purple-500',\n },\n {\n icon: Award,\n label: 'Certifications',\n value: `${Math.max(3, Math.round(skills.length / 2))}`,\n color: 'text-yellow-500',\n },\n ].map((stat) => (\n <Card key={stat.label}>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <stat.icon className={`h-5 w-5 ${stat.color}`} />\n <div>\n <p className=\"text-xs text-text-secondary\">{stat.label}</p>\n <p className=\"text-lg font-bold\">{stat.value}</p>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">About</CardTitle>\n </CardHeader>\n <CardContent className=\"text-sm text-text-secondary space-y-3\">\n <p>\n With 12+ years of experience in HR consulting and technical recruitment, I\n specialize in helping companies build world-class teams. My focus areas include\n executive search, engineering team buildouts, and designing scalable hiring\n processes for high-growth companies.\n </p>\n <p>\n I&apos;ve placed 300+ candidates across startups and Fortune 500 companies, with a\n 98% client satisfaction rate and 95% offer acceptance rate.\n </p>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Portfolio</CardTitle>\n <CardDescription>Selected projects and outcomes</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {portfolio.map((item) => (\n <div key={item.title} className=\"rounded-lg border p-4 space-y-2\">\n <div className=\"flex items-center justify-between\">\n <p className=\"font-medium text-sm\">{item.title}</p>\n <Badge variant=\"secondary\" className=\"text-[10px]\">\n {item.duration}\n </Badge>\n </div>\n <p className=\"text-xs text-text-secondary\">{item.client}</p>\n <p className=\"text-xs text-text-secondary\">{item.description}</p>\n <div className=\"flex items-center gap-2 text-xs\">\n <ThumbsUp className=\"h-3 w-3 text-green-500\" />\n <span className=\"text-green-600 font-medium\">{item.outcome}</span>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Client Reviews</CardTitle>\n <CardDescription>What clients say about working with Maria</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {reviews.map((review) => (\n <div key={review.author} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">{review.author}</p>\n <p className=\"text-xs text-text-secondary\">\n {review.company} - {review.date}\n </p>\n </div>\n <div className=\"flex items-center gap-0.5\">\n {Array.from({ length: review.rating }).map((_, i) => (\n <Star key={i} className=\"h-3 w-3 text-yellow-500 fill-yellow-500\" />\n ))}\n </div>\n </div>\n <p className=\"text-xs text-text-secondary\">{review.text}</p>\n <Separator />\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Skills & Expertise</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-wrap gap-1.5\">\n {skills.map((skill) => (\n <Badge key={skill} variant=\"secondary\" className=\"text-xs\">\n {skill}\n </Badge>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Certifications</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {[\n 'SHRM-SCP (Senior Certified Professional)',\n 'PHR (Professional in Human Resources)',\n 'LinkedIn Certified Recruiter',\n 'Google Project Management',\n 'DEI in the Workplace - Cornell',\n ].map((cert) => (\n <div key={cert} className=\"flex items-center gap-2 text-xs\">\n <Award className=\"h-3 w-3 text-yellow-500 shrink-0\" />\n <span>{cert}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Contact</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"flex items-center gap-2 text-sm\">\n <Mail className=\"h-3 w-3 text-text-secondary\" />\n <span>maria@talentpro.com</span>\n </div>\n <div className=\"flex items-center gap-2 text-sm\">\n <Phone className=\"h-3 w-3 text-text-secondary\" />\n <span>+1-555-0301</span>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"MarketplaceFreelancerProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n EmphasisPanel,\n GradientText,\n PagePurpose,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Award,\n Briefcase,\n Calendar,\n Clock,\n DollarSign,\n Globe,\n Mail,\n MapPin,\n MessageSquare,\n Phone,\n Star,\n ThumbsUp,\n} from 'lucide-react';\nimport { useMemo } from 'react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceFreelancerProfilePagePage() {\n const { marketplaceServices, clients, announcements } = useCrewFoundryStore();\n\n const skills = useMemo(\n () =>\n Array.from(new Set(marketplaceServices.flatMap((service) => service.skills))).slice(0, 12),\n [marketplaceServices]\n );\n\n const portfolio = useMemo(\n () =>\n marketplaceServices.slice(0, 3).map((service, index) => ({\n title: service.title,\n client: clients[index % Math.max(clients.length, 1)]?.name || service.provider,\n duration: service.deliveryTime,\n description: service.description,\n outcome: `${Math.round(service.rating * 20)}% satisfaction`,\n })),\n [clients, marketplaceServices]\n );\n\n const reviews = useMemo(\n () =>\n announcements.slice(0, 3).map((announcement, index) => ({\n author: announcement.author,\n company: clients[index % Math.max(clients.length, 1)]?.name || 'CrewFoundry Client',\n rating: Math.min(\n 5,\n Math.max(\n 4,\n Math.round(\n marketplaceServices[index % Math.max(marketplaceServices.length, 1)]?.rating || 4.5\n )\n )\n ),\n date: new Date(announcement.createdAt).toLocaleString('en-US', {\n month: 'short',\n year: 'numeric',\n }),\n text: announcement.content,\n })),\n [announcements, clients, marketplaceServices]\n );\n\n const avgRating =\n marketplaceServices.length > 0\n ? (\n marketplaceServices.reduce((sum, service) => sum + service.rating, 0) /\n marketplaceServices.length\n ).toFixed(1)\n : '4.8';\n\n const totalProjects = marketplaceServices.reduce((sum, service) => sum + service.reviews, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-start gap-6\">\n <div className=\"flex h-20 w-20 shrink-0 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text text-2xl font-semibold\">\n MS\n </div>\n <div className=\"flex-1 space-y-2\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Maria Santos</GradientText>\n </h1>\n <Badge>Top Rated</Badge>\n <Badge variant=\"secondary\">Pro</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">Senior HR Consultant & Technical Recruiter</p>\n <PagePurpose className=\"mt-1\">Review a freelancer&apos;s full profile — skills, history, and ratings — to decide if they&apos;re the right fit before you hire.</PagePurpose>\n <div className=\"flex flex-wrap items-center gap-4 text-xs text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" /> San Francisco, CA\n </span>\n <span className=\"flex items-center gap-1\">\n <Globe className=\"h-3 w-3\" /> crewfoundry.com\n </span>\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" /> Member since 2022\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-status-warning-text\" /> {avgRating} ({totalProjects}{' '}\n reviews)\n </span>\n </div>\n <div className=\"flex gap-2 pt-1\">\n <Button size=\"sm\">\n <MessageSquare className=\"h-3 w-3 mr-1\" /> Message\n </Button>\n <Button size=\"sm\" variant=\"outline\">\n <Calendar className=\"h-3 w-3 mr-1\" /> Book Consultation\n </Button>\n </div>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n {\n icon: Briefcase,\n label: 'Projects',\n value: `${totalProjects}`,\n color: 'text-status-info-text',\n },\n {\n icon: ThumbsUp,\n label: 'Success Rate',\n value: `${Math.min(99, Math.max(80, Math.round(Number(avgRating) * 20)))}%`,\n color: 'text-status-success-text',\n },\n {\n icon: DollarSign,\n label: 'Hourly Rate',\n value: `$${Math.round((marketplaceServices[0]?.price || 150) / 10)}`,\n color: 'text-action-primary-bg',\n },\n {\n icon: Award,\n label: 'Certifications',\n value: `${Math.max(3, Math.round(skills.length / 2))}`,\n color: 'text-status-warning-text',\n },\n ].map((stat) => (\n <Card key={stat.label}>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <stat.icon className={`h-5 w-5 ${stat.color}`} />\n <div>\n <p className=\"text-xs text-text-secondary\">{stat.label}</p>\n <p className=\"text-lg font-bold\">{stat.value}</p>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-6\">\n <EmphasisPanel>\n <div className=\"mb-2 text-base font-semibold\">About</div>\n <div className=\"space-y-3 text-sm text-text-secondary\">\n <p>\n With 12+ years of experience in HR consulting and technical recruitment, I\n specialize in helping companies build world-class teams. My focus areas include\n executive search, engineering team buildouts, and designing scalable hiring\n processes for high-growth companies.\n </p>\n <p>\n I&apos;ve placed 300+ candidates across startups and Fortune 500 companies, with a\n 98% client satisfaction rate and 95% offer acceptance rate.\n </p>\n </div>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Portfolio</CardTitle>\n <CardDescription>Selected projects and outcomes</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {portfolio.map((item) => (\n <div key={item.title} className=\"rounded-lg border p-4 space-y-2\">\n <div className=\"flex items-center justify-between\">\n <p className=\"font-medium text-sm\">{item.title}</p>\n <Badge variant=\"secondary\" className=\"text-[10px]\">\n {item.duration}\n </Badge>\n </div>\n <p className=\"text-xs text-text-secondary\">{item.client}</p>\n <p className=\"text-xs text-text-secondary\">{item.description}</p>\n <div className=\"flex items-center gap-2 text-xs\">\n <ThumbsUp className=\"h-3 w-3 text-status-success-text\" />\n <span className=\"text-status-success-text font-medium\">{item.outcome}</span>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Client Reviews</CardTitle>\n <CardDescription>What clients say about working with Maria</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {reviews.map((review) => (\n <div key={review.author} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">{review.author}</p>\n <p className=\"text-xs text-text-secondary\">\n {review.company} - {review.date}\n </p>\n </div>\n <div className=\"flex items-center gap-0.5\">\n {Array.from({ length: review.rating }).map((_, i) => (\n <Star\n key={i}\n className=\"h-3 w-3 text-status-warning-text fill-yellow-500\"\n />\n ))}\n </div>\n </div>\n <p className=\"text-xs text-text-secondary\">{review.text}</p>\n <Separator />\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Skills & Expertise</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-wrap gap-1.5\">\n {skills.map((skill) => (\n <Badge key={skill} variant=\"secondary\" className=\"text-xs\">\n {skill}\n </Badge>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Certifications</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {[\n 'SHRM-SCP (Senior Certified Professional)',\n 'PHR (Professional in Human Resources)',\n 'LinkedIn Certified Recruiter',\n 'Google Project Management',\n 'DEI in the Workplace - Cornell',\n ].map((cert) => (\n <div key={cert} className=\"flex items-center gap-2 text-xs\">\n <Award className=\"h-3 w-3 text-status-warning-text shrink-0\" />\n <span>{cert}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Contact</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"flex items-center gap-2 text-sm\">\n <Mail className=\"h-3 w-3 text-text-secondary\" />\n <span>maria@talentpro.com</span>\n </div>\n <div className=\"flex items-center gap-2 text-sm\">\n <Phone className=\"h-3 w-3 text-text-secondary\" />\n <span>+1-555-0301</span>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,66 +1,86 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { ShoppingBag as t, Star as n, Users as r } from "lucide-react";
3
3
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
- import { Badge as o, Card as s, CardContent as c, CardDescription as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
5
- import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
+ import { Badge as o, Card as s, CardContent as c, CardDescription as l, CardHeader as u, CardTitle as d, GlassCard as f, GradientText as p, PagePurpose as m } from "@burdenoff/fe-libs/ui";
5
+ import { useI18n as h } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
6
  //#region src/crewfoundry/pages/MarketplaceMarketplacePagePage.tsx
7
- function p() {
8
- let { t: p } = f(), { marketplaceServices: m } = e(), h = (e, t) => {
9
- let n = p(e);
7
+ function g() {
8
+ let { t: g } = h(), { marketplaceServices: _ } = e(), v = (e, t) => {
9
+ let n = g(e);
10
10
  return n === e ? t : n;
11
11
  };
12
12
  return /* @__PURE__ */ a("div", {
13
13
  className: "space-y-6 p-6",
14
14
  children: [
15
- /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
16
- className: "text-2xl font-semibold",
17
- children: h("crewfoundry.marketplace.title", "HR Services Marketplace")
18
- }), /* @__PURE__ */ i("p", {
19
- className: "text-sm text-text-secondary",
20
- children: h("crewfoundry.marketplace.subtitle", "Find and hire professional HR service providers")
21
- })] }),
15
+ /* @__PURE__ */ a("div", { children: [
16
+ /* @__PURE__ */ i("h1", {
17
+ className: "text-2xl font-semibold",
18
+ children: /* @__PURE__ */ i(p, { children: v("crewfoundry.marketplace.title", "HR Services Marketplace") })
19
+ }),
20
+ /* @__PURE__ */ i("p", {
21
+ className: "text-sm text-text-secondary",
22
+ children: v("crewfoundry.marketplace.subtitle", "Find and hire professional HR service providers")
23
+ }),
24
+ /* @__PURE__ */ i(m, {
25
+ className: "mt-1",
26
+ children: "Discover freelancers and services for your projects — browse the marketplace to find and hire the right talent on demand."
27
+ })
28
+ ] }),
22
29
  /* @__PURE__ */ a("div", {
23
30
  className: "grid gap-4 md:grid-cols-3",
24
31
  children: [
25
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(u, {
26
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
27
- children: [/* @__PURE__ */ i(d, {
28
- className: "text-sm font-medium",
29
- children: h("crewfoundry.marketplace.stats.services", "Services")
30
- }), /* @__PURE__ */ i(t, { className: "h-4 w-4 text-text-secondary" })]
31
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
32
- className: "text-2xl font-bold",
33
- children: m.length
34
- }) })] }),
35
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(u, {
36
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
37
- children: [/* @__PURE__ */ i(d, {
38
- className: "text-sm font-medium",
39
- children: h("crewfoundry.marketplace.stats.avgRating", "Avg Rating")
40
- }), /* @__PURE__ */ i(n, { className: "h-4 w-4 text-yellow-500" })]
41
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
42
- className: "text-2xl font-bold",
43
- children: (m.reduce((e, t) => e + t.rating, 0) / m.length).toFixed(1)
44
- }) })] }),
45
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(u, {
46
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
47
- children: [/* @__PURE__ */ i(d, {
48
- className: "text-sm font-medium",
49
- children: h("crewfoundry.marketplace.stats.totalReviews", "Total Reviews")
50
- }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-text-secondary" })]
51
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
52
- className: "text-2xl font-bold",
53
- children: m.reduce((e, t) => e + t.reviews, 0)
54
- }) })] })
32
+ /* @__PURE__ */ a(f, {
33
+ treatment: "glass",
34
+ glow: !0,
35
+ className: "border-border-seam",
36
+ children: [/* @__PURE__ */ a(u, {
37
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
38
+ children: [/* @__PURE__ */ i(d, {
39
+ className: "text-sm font-medium",
40
+ children: v("crewfoundry.marketplace.stats.services", "Services")
41
+ }), /* @__PURE__ */ i(t, { className: "h-4 w-4 text-text-secondary" })]
42
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
43
+ className: "text-2xl font-bold tabular-nums",
44
+ children: _.length
45
+ }) })]
46
+ }),
47
+ /* @__PURE__ */ a(f, {
48
+ treatment: "metric",
49
+ className: "border-border-seam",
50
+ children: [/* @__PURE__ */ a(u, {
51
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
52
+ children: [/* @__PURE__ */ i(d, {
53
+ className: "text-sm font-medium",
54
+ children: v("crewfoundry.marketplace.stats.avgRating", "Avg Rating")
55
+ }), /* @__PURE__ */ i(n, { className: "h-4 w-4 text-status-warning-text" })]
56
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
57
+ className: "text-2xl font-bold tabular-nums",
58
+ children: (_.reduce((e, t) => e + t.rating, 0) / _.length).toFixed(1)
59
+ }) })]
60
+ }),
61
+ /* @__PURE__ */ a(f, {
62
+ treatment: "metric",
63
+ className: "border-border-seam",
64
+ children: [/* @__PURE__ */ a(u, {
65
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
66
+ children: [/* @__PURE__ */ i(d, {
67
+ className: "text-sm font-medium",
68
+ children: v("crewfoundry.marketplace.stats.totalReviews", "Total Reviews")
69
+ }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-text-secondary" })]
70
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
71
+ className: "text-2xl font-bold tabular-nums",
72
+ children: _.reduce((e, t) => e + t.reviews, 0)
73
+ }) })]
74
+ })
55
75
  ]
56
76
  }),
57
77
  /* @__PURE__ */ i("h2", {
58
78
  className: "text-lg font-medium",
59
- children: h("crewfoundry.marketplace.featured.title", "Featured Services")
79
+ children: v("crewfoundry.marketplace.featured.title", "Featured Services")
60
80
  }),
61
81
  /* @__PURE__ */ i("div", {
62
82
  className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
63
- children: m.map((e) => /* @__PURE__ */ a(s, {
83
+ children: _.map((e) => /* @__PURE__ */ a(s, {
64
84
  className: "hover:shadow-md transition-shadow cursor-pointer",
65
85
  children: [/* @__PURE__ */ a(u, { children: [
66
86
  /* @__PURE__ */ a("div", {
@@ -108,7 +128,7 @@ function p() {
108
128
  }), /* @__PURE__ */ a("span", {
109
129
  className: "flex items-center gap-1",
110
130
  children: [
111
- /* @__PURE__ */ i(n, { className: "h-3 w-3 text-yellow-500" }),
131
+ /* @__PURE__ */ i(n, { className: "h-3 w-3 text-status-warning-text" }),
112
132
  e.rating,
113
133
  " (",
114
134
  e.reviews,
@@ -119,7 +139,7 @@ function p() {
119
139
  /* @__PURE__ */ a("p", {
120
140
  className: "text-xs text-text-secondary mt-1",
121
141
  children: [
122
- h("crewfoundry.marketplace.card.delivery", "Delivery"),
142
+ v("crewfoundry.marketplace.card.delivery", "Delivery"),
123
143
  ": ",
124
144
  e.deliveryTime
125
145
  ]
@@ -131,6 +151,6 @@ function p() {
131
151
  });
132
152
  }
133
153
  //#endregion
134
- export { p as MarketplaceMarketplacePagePage };
154
+ export { g as MarketplaceMarketplacePagePage };
135
155
 
136
156
  //# sourceMappingURL=MarketplaceMarketplacePagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceMarketplacePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceMarketplacePagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { DollarSign, ShoppingBag, Star, TrendingUp, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceMarketplacePagePage() {\n const { t: translate } = useI18n();\n const { marketplaceServices } = useCrewFoundryStore();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n {t('crewfoundry.marketplace.title', 'HR Services Marketplace')}\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {t('crewfoundry.marketplace.subtitle', 'Find and hire professional HR service providers')}\n </p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.services', 'Services')}\n </CardTitle>\n <ShoppingBag className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{marketplaceServices.length}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.avgRating', 'Avg Rating')}\n </CardTitle>\n <Star className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {(\n marketplaceServices.reduce((s, m) => s + m.rating, 0) / marketplaceServices.length\n ).toFixed(1)}\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.totalReviews', 'Total Reviews')}\n </CardTitle>\n <Users className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {marketplaceServices.reduce((s, m) => s + m.reviews, 0)}\n </div>\n </CardContent>\n </Card>\n </div>\n <h2 className=\"text-lg font-medium\">\n {t('crewfoundry.marketplace.featured.title', 'Featured Services')}\n </h2>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {marketplaceServices.map((svc) => (\n <Card key={svc.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {svc.category}\n </Badge>\n <Badge\n variant={svc.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {svc.status}\n </Badge>\n </div>\n <CardTitle className=\"text-base mt-2\">{svc.title}</CardTitle>\n <CardDescription>{svc.provider}</CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary mb-3\">{svc.description}</p>\n <div className=\"flex flex-wrap gap-1 mb-3\">\n {svc.skills.map((s) => (\n <Badge key={s} variant=\"outline\" className=\"text-[9px]\">\n {s}\n </Badge>\n ))}\n </div>\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-bold\">\n ${svc.price.toLocaleString()}\n <span className=\"text-xs font-normal text-text-secondary\">\n /{svc.priceType}\n </span>\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {svc.rating} ({svc.reviews})\n </span>\n </div>\n <p className=\"text-xs text-text-secondary mt-1\">\n {t('crewfoundry.marketplace.card.delivery', 'Delivery')}: {svc.deliveryTime}\n </p>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"MarketplaceMarketplacePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceMarketplacePagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { DollarSign, ShoppingBag, Star, TrendingUp, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceMarketplacePagePage() {\n const { t: translate } = useI18n();\n const { marketplaceServices } = useCrewFoundryStore();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>\n {t('crewfoundry.marketplace.title', 'HR Services Marketplace')}\n </GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {t('crewfoundry.marketplace.subtitle', 'Find and hire professional HR service providers')}\n </p>\n <PagePurpose className=\"mt-1\">Discover freelancers and services for your projects — browse the marketplace to find and hire the right talent on demand.</PagePurpose>\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.services', 'Services')}\n </CardTitle>\n <ShoppingBag className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{marketplaceServices.length}</div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.avgRating', 'Avg Rating')}\n </CardTitle>\n <Star className=\"h-4 w-4 text-status-warning-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">\n {(\n marketplaceServices.reduce((s, m) => s + m.rating, 0) / marketplaceServices.length\n ).toFixed(1)}\n </div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.marketplace.stats.totalReviews', 'Total Reviews')}\n </CardTitle>\n <Users className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">\n {marketplaceServices.reduce((s, m) => s + m.reviews, 0)}\n </div>\n </CardContent>\n </GlassCard>\n </div>\n <h2 className=\"text-lg font-medium\">\n {t('crewfoundry.marketplace.featured.title', 'Featured Services')}\n </h2>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {marketplaceServices.map((svc) => (\n <Card key={svc.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {svc.category}\n </Badge>\n <Badge\n variant={svc.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {svc.status}\n </Badge>\n </div>\n <CardTitle className=\"text-base mt-2\">{svc.title}</CardTitle>\n <CardDescription>{svc.provider}</CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary mb-3\">{svc.description}</p>\n <div className=\"flex flex-wrap gap-1 mb-3\">\n {svc.skills.map((s) => (\n <Badge key={s} variant=\"outline\" className=\"text-[9px]\">\n {s}\n </Badge>\n ))}\n </div>\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-bold\">\n ${svc.price.toLocaleString()}\n <span className=\"text-xs font-normal text-text-secondary\">/{svc.priceType}</span>\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-status-warning-text\" />\n {svc.rating} ({svc.reviews})\n </span>\n </div>\n <p className=\"text-xs text-text-secondary mt-1\">\n {t('crewfoundry.marketplace.card.delivery', 'Delivery')}: {svc.deliveryTime}\n </p>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}