@burdenoff/microfe-crewfoundry 2026.703.2 → 2026.704.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.
- package/dist/crewfoundry/components/forms/FormModal.js.map +1 -1
- package/dist/crewfoundry/pages/AdminAdminPagePage.js +117 -164
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +99 -82
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +160 -192
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +238 -231
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +196 -166
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +45 -147
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +20 -11
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +45 -152
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +50 -138
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +149 -67
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +50 -201
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +205 -136
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -31
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +118 -104
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +117 -58
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +90 -94
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +210 -191
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +213 -180
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +133 -264
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +279 -212
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +131 -105
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +167 -148
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +3 -3
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +13 -5
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +151 -152
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +38 -21
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +3 -3
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +134 -127
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +163 -132
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +202 -160
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +104 -91
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +29 -147
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +22 -106
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +74 -74
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +101 -97
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +64 -47
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +111 -121
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +131 -110
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +65 -64
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +58 -43
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +66 -82
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +38 -88
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +59 -65
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +209 -323
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +175 -220
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +74 -59
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +96 -80
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +28 -100
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +27 -20
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +73 -73
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +62 -56
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +40 -138
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +126 -93
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +99 -77
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +73 -74
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +122 -122
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +130 -113
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +68 -59
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +73 -62
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +82 -58
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +153 -153
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +63 -48
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,478 +1,364 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
2
|
import { useMemo as t, useState as n } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { Briefcase as r, Calendar as i, DollarSign as a, MessageSquare as o, Star as s, TrendingUp as c, Video as l } from "lucide-react";
|
|
4
|
+
import { useLocation as u, useNavigate as d } from "react-router-dom";
|
|
5
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
6
|
+
import { Badge as m, Button as h, Card as g, CardContent as _, CardDescription as v, CardHeader as y, CardTitle as b, GlassCard as x, GradientText as S, IllustratedEmptyState as C, NextSteps as w, PagePurpose as T, Separator as E, Tabs as D, TabsContent as O, TabsList as k, TabsTrigger as A } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.tsx
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
slots: [
|
|
12
|
-
"9:00 AM",
|
|
13
|
-
"11:00 AM",
|
|
14
|
-
"2:00 PM"
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
day: "Tuesday",
|
|
19
|
-
slots: [
|
|
20
|
-
"10:00 AM",
|
|
21
|
-
"1:00 PM",
|
|
22
|
-
"3:00 PM"
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
day: "Wednesday",
|
|
27
|
-
slots: ["9:00 AM", "2:00 PM"]
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
day: "Thursday",
|
|
31
|
-
slots: [
|
|
32
|
-
"11:00 AM",
|
|
33
|
-
"1:00 PM",
|
|
34
|
-
"4:00 PM"
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
day: "Friday",
|
|
39
|
-
slots: ["9:00 AM", "10:00 AM"]
|
|
40
|
-
}
|
|
41
|
-
], []), B = t(() => I.slice(0, 6).map((e) => ({
|
|
8
|
+
var j = (e) => e.split(" ").map((e) => e[0] ?? "").join("").slice(0, 2).toUpperCase() || "—";
|
|
9
|
+
function M() {
|
|
10
|
+
let [M, N] = n("overview"), P = d(), F = u(), { marketplaceServices: I } = e(), L = new URLSearchParams(F.search).get("id"), R = I.find((e) => e.id === L) ?? I[0], z = R?.provider ?? "", B = t(() => I.filter((e) => e.provider === z), [I, z]), V = t(() => Array.from(new Set(B.flatMap((e) => e.skills))).slice(0, 20), [B]), H = t(() => Array.from(new Set(B.map((e) => e.category))), [B]), U = t(() => B.map((e) => ({
|
|
11
|
+
id: e.id,
|
|
42
12
|
title: e.title,
|
|
43
13
|
price: e.priceType === "hourly" ? `$${e.price}/hr` : e.priceType === "monthly" ? `$${e.price}/mo` : `$${e.price}`,
|
|
44
14
|
type: e.priceType,
|
|
45
15
|
description: e.description,
|
|
46
|
-
delivery: e.deliveryTime
|
|
47
|
-
|
|
16
|
+
delivery: e.deliveryTime,
|
|
17
|
+
rating: e.rating,
|
|
18
|
+
reviews: e.reviews
|
|
19
|
+
})), [B]), W = B.length > 0 ? (B.reduce((e, t) => e + t.rating, 0) / B.length).toFixed(1) : "0.0", G = B.reduce((e, t) => e + t.reviews, 0), K = B.length > 0 ? Math.min(...B.map((e) => e.price)) : 0, q = Number(W) >= 4.5 && G > 0, J = [
|
|
48
20
|
{
|
|
49
|
-
label: "
|
|
50
|
-
value: `${
|
|
51
|
-
trend: "-3 days vs avg"
|
|
21
|
+
label: "Services",
|
|
22
|
+
value: `${B.length}`
|
|
52
23
|
},
|
|
53
24
|
{
|
|
54
|
-
label: "
|
|
55
|
-
value:
|
|
56
|
-
trend: "+8% vs avg"
|
|
25
|
+
label: "Avg Rating",
|
|
26
|
+
value: W
|
|
57
27
|
},
|
|
58
28
|
{
|
|
59
|
-
label: "
|
|
60
|
-
value: `${
|
|
61
|
-
trend: "repeat clients"
|
|
29
|
+
label: "Total Reviews",
|
|
30
|
+
value: `${G}`
|
|
62
31
|
},
|
|
63
32
|
{
|
|
64
|
-
label: "
|
|
65
|
-
value:
|
|
66
|
-
trend: "+12% YoY"
|
|
33
|
+
label: "Starting Rate",
|
|
34
|
+
value: `$${K.toLocaleString()}`
|
|
67
35
|
}
|
|
68
|
-
]
|
|
69
|
-
return /* @__PURE__ */
|
|
36
|
+
];
|
|
37
|
+
return R ? /* @__PURE__ */ p("div", {
|
|
70
38
|
className: "space-y-6 p-6",
|
|
71
39
|
children: [
|
|
72
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ f(x, {
|
|
73
41
|
treatment: "glass",
|
|
74
42
|
glow: !0,
|
|
75
43
|
className: "border-border-seam",
|
|
76
|
-
children: /* @__PURE__ */
|
|
44
|
+
children: /* @__PURE__ */ f(_, {
|
|
77
45
|
className: "pt-6",
|
|
78
|
-
children: /* @__PURE__ */
|
|
46
|
+
children: /* @__PURE__ */ p("div", {
|
|
79
47
|
className: "flex items-start gap-6",
|
|
80
|
-
children: [/* @__PURE__ */
|
|
48
|
+
children: [/* @__PURE__ */ f("div", {
|
|
81
49
|
className: "flex h-24 w-24 shrink-0 items-center justify-center rounded-2xl bg-gradient-to-br from-primary to-primary/60 text-action-primary-text text-3xl font-semibold",
|
|
82
|
-
children:
|
|
83
|
-
}), /* @__PURE__ */
|
|
50
|
+
children: j(z)
|
|
51
|
+
}), /* @__PURE__ */ p("div", {
|
|
84
52
|
className: "flex-1 space-y-2",
|
|
85
53
|
children: [
|
|
86
|
-
/* @__PURE__ */
|
|
54
|
+
/* @__PURE__ */ p("div", {
|
|
87
55
|
className: "flex items-center gap-3 flex-wrap",
|
|
88
|
-
children: [
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}),
|
|
93
|
-
/* @__PURE__ */ g(v, { children: "Top Rated Plus" }),
|
|
94
|
-
/* @__PURE__ */ g(v, {
|
|
95
|
-
variant: "secondary",
|
|
96
|
-
children: "Expert-Vetted"
|
|
97
|
-
}),
|
|
98
|
-
/* @__PURE__ */ g(v, {
|
|
99
|
-
variant: "outline",
|
|
100
|
-
className: "text-status-success-text border-status-success-text/30",
|
|
101
|
-
children: "Available Now"
|
|
102
|
-
})
|
|
103
|
-
]
|
|
56
|
+
children: [/* @__PURE__ */ f("h1", {
|
|
57
|
+
className: "text-2xl font-semibold",
|
|
58
|
+
children: /* @__PURE__ */ f(S, { children: z })
|
|
59
|
+
}), q ? /* @__PURE__ */ f(m, { children: "Top Rated" }) : null]
|
|
104
60
|
}),
|
|
105
|
-
/* @__PURE__ */
|
|
61
|
+
/* @__PURE__ */ f("p", {
|
|
106
62
|
className: "text-sm font-medium",
|
|
107
|
-
children: "
|
|
63
|
+
children: H.length > 0 ? H.join(" · ") : "Marketplace provider"
|
|
108
64
|
}),
|
|
109
|
-
/* @__PURE__ */
|
|
110
|
-
className: "text-xs text-text-secondary",
|
|
111
|
-
children: "TalentPro Solutions"
|
|
112
|
-
}),
|
|
113
|
-
/* @__PURE__ */ _("div", {
|
|
65
|
+
/* @__PURE__ */ p("div", {
|
|
114
66
|
className: "flex flex-wrap items-center gap-4 text-xs text-text-secondary",
|
|
115
67
|
children: [
|
|
116
|
-
/* @__PURE__ */
|
|
117
|
-
className: "flex items-center gap-1",
|
|
118
|
-
children: [/* @__PURE__ */ g(u, { className: "h-3 w-3" }), " San Francisco, CA"]
|
|
119
|
-
}),
|
|
120
|
-
/* @__PURE__ */ _("span", {
|
|
121
|
-
className: "flex items-center gap-1",
|
|
122
|
-
children: [/* @__PURE__ */ g(l, { className: "h-3 w-3" }), " UTC-8 (PST)"]
|
|
123
|
-
}),
|
|
124
|
-
/* @__PURE__ */ _("span", {
|
|
68
|
+
/* @__PURE__ */ p("span", {
|
|
125
69
|
className: "flex items-center gap-1",
|
|
126
|
-
children: [
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ f(s, { className: "h-3 w-3 text-status-warning-text" }),
|
|
72
|
+
" ",
|
|
73
|
+
W,
|
|
74
|
+
" (",
|
|
75
|
+
G,
|
|
76
|
+
" ",
|
|
77
|
+
"reviews)"
|
|
78
|
+
]
|
|
127
79
|
}),
|
|
128
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ p("span", {
|
|
129
81
|
className: "flex items-center gap-1",
|
|
130
|
-
children: [
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ f(r, { className: "h-3 w-3" }),
|
|
84
|
+
" ",
|
|
85
|
+
B.length,
|
|
86
|
+
" services"
|
|
87
|
+
]
|
|
131
88
|
}),
|
|
132
|
-
/* @__PURE__ */
|
|
89
|
+
/* @__PURE__ */ p("span", {
|
|
133
90
|
className: "flex items-center gap-1",
|
|
134
|
-
children: [
|
|
91
|
+
children: [
|
|
92
|
+
/* @__PURE__ */ f(a, { className: "h-3 w-3" }),
|
|
93
|
+
" from $",
|
|
94
|
+
K.toLocaleString()
|
|
95
|
+
]
|
|
135
96
|
})
|
|
136
97
|
]
|
|
137
98
|
}),
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
className: "flex gap-2 pt-2",
|
|
99
|
+
/* @__PURE__ */ p("div", {
|
|
100
|
+
className: "flex gap-2 pt-2 flex-wrap",
|
|
140
101
|
children: [
|
|
141
|
-
/* @__PURE__ */
|
|
102
|
+
/* @__PURE__ */ p(h, {
|
|
142
103
|
size: "sm",
|
|
143
|
-
|
|
104
|
+
onClick: () => P("../../marketplace/messaging-page"),
|
|
105
|
+
children: [/* @__PURE__ */ f(o, { className: "h-3 w-3 mr-1" }), " Send Proposal"]
|
|
144
106
|
}),
|
|
145
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ p(h, {
|
|
146
108
|
size: "sm",
|
|
147
109
|
variant: "outline",
|
|
148
|
-
|
|
110
|
+
disabled: !0,
|
|
111
|
+
title: "Video intro is coming soon",
|
|
112
|
+
"aria-label": "Video intro — coming soon",
|
|
113
|
+
children: [/* @__PURE__ */ f(l, { className: "h-3 w-3 mr-1" }), " Video Intro · Coming soon"]
|
|
149
114
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
115
|
+
/* @__PURE__ */ p(h, {
|
|
151
116
|
size: "sm",
|
|
152
117
|
variant: "outline",
|
|
153
|
-
|
|
118
|
+
onClick: () => N("availability"),
|
|
119
|
+
children: [/* @__PURE__ */ f(i, { className: "h-3 w-3 mr-1" }), " Schedule Call"]
|
|
154
120
|
})
|
|
155
121
|
]
|
|
156
122
|
}),
|
|
157
|
-
/* @__PURE__ */
|
|
123
|
+
/* @__PURE__ */ f(T, {
|
|
158
124
|
className: "pt-2",
|
|
159
|
-
children: "A freelancer's full profile — skills,
|
|
125
|
+
children: "A freelancer's full profile — skills, listed services, and performance — so you can vet them thoroughly and decide whether to hire before you reach out."
|
|
160
126
|
})
|
|
161
127
|
]
|
|
162
128
|
})]
|
|
163
129
|
})
|
|
164
130
|
})
|
|
165
131
|
}),
|
|
166
|
-
/* @__PURE__ */
|
|
132
|
+
/* @__PURE__ */ f(w, {
|
|
167
133
|
storageKey: "crewfoundry-freelancer-profile-enhanced",
|
|
168
134
|
steps: [
|
|
169
135
|
{
|
|
170
136
|
id: "services",
|
|
171
137
|
label: "Review their services",
|
|
172
138
|
description: "See exactly what this freelancer offers and at what price.",
|
|
173
|
-
icon: /* @__PURE__ */
|
|
174
|
-
onClick: () =>
|
|
139
|
+
icon: /* @__PURE__ */ f(r, { className: "h-4 w-4" }),
|
|
140
|
+
onClick: () => N("services")
|
|
175
141
|
},
|
|
176
142
|
{
|
|
177
143
|
id: "availability",
|
|
178
144
|
label: "Check availability",
|
|
179
145
|
description: "Find open slots before you schedule a call.",
|
|
180
|
-
icon: /* @__PURE__ */
|
|
181
|
-
onClick: () =>
|
|
146
|
+
icon: /* @__PURE__ */ f(i, { className: "h-4 w-4" }),
|
|
147
|
+
onClick: () => N("availability")
|
|
182
148
|
},
|
|
183
149
|
{
|
|
184
150
|
id: "performance",
|
|
185
151
|
label: "Inspect performance",
|
|
186
152
|
description: "Look at ratings and delivery history to reduce risk.",
|
|
187
|
-
icon: /* @__PURE__ */
|
|
188
|
-
onClick: () =>
|
|
153
|
+
icon: /* @__PURE__ */ f(c, { className: "h-4 w-4" }),
|
|
154
|
+
onClick: () => N("analytics")
|
|
189
155
|
}
|
|
190
156
|
]
|
|
191
157
|
}),
|
|
192
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ f("div", {
|
|
193
159
|
className: "grid gap-4 md:grid-cols-4",
|
|
194
|
-
children:
|
|
160
|
+
children: J.map((e) => /* @__PURE__ */ f(g, { children: /* @__PURE__ */ p(_, {
|
|
195
161
|
className: "pt-6",
|
|
196
|
-
children: [
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
children: e.value
|
|
204
|
-
}),
|
|
205
|
-
/* @__PURE__ */ g("p", {
|
|
206
|
-
className: "text-[10px] text-status-success-text",
|
|
207
|
-
children: e.trend
|
|
208
|
-
})
|
|
209
|
-
]
|
|
162
|
+
children: [/* @__PURE__ */ f("p", {
|
|
163
|
+
className: "text-xs text-text-secondary",
|
|
164
|
+
children: e.label
|
|
165
|
+
}), /* @__PURE__ */ f("p", {
|
|
166
|
+
className: "text-lg font-bold",
|
|
167
|
+
children: e.value
|
|
168
|
+
})]
|
|
210
169
|
}) }, e.label))
|
|
211
170
|
}),
|
|
212
|
-
/* @__PURE__ */
|
|
213
|
-
value:
|
|
214
|
-
onValueChange:
|
|
171
|
+
/* @__PURE__ */ p(D, {
|
|
172
|
+
value: M,
|
|
173
|
+
onValueChange: N,
|
|
215
174
|
children: [
|
|
216
|
-
/* @__PURE__ */
|
|
217
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ p(k, { children: [
|
|
176
|
+
/* @__PURE__ */ f(A, {
|
|
218
177
|
value: "overview",
|
|
219
178
|
children: "Overview"
|
|
220
179
|
}),
|
|
221
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ f(A, {
|
|
222
181
|
value: "services",
|
|
223
182
|
children: "Services"
|
|
224
183
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ f(A, {
|
|
226
185
|
value: "availability",
|
|
227
186
|
children: "Availability"
|
|
228
187
|
}),
|
|
229
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ f(A, {
|
|
230
189
|
value: "analytics",
|
|
231
190
|
children: "Performance"
|
|
232
191
|
})
|
|
233
192
|
] }),
|
|
234
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ f(O, {
|
|
235
194
|
value: "overview",
|
|
236
195
|
className: "space-y-6 mt-4",
|
|
237
|
-
children: /* @__PURE__ */
|
|
196
|
+
children: /* @__PURE__ */ p("div", {
|
|
238
197
|
className: "grid gap-6 lg:grid-cols-3",
|
|
239
|
-
children: [/* @__PURE__ */
|
|
198
|
+
children: [/* @__PURE__ */ f("div", {
|
|
240
199
|
className: "lg:col-span-2 space-y-4",
|
|
241
|
-
children: /* @__PURE__ */
|
|
200
|
+
children: /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ f(y, { children: /* @__PURE__ */ f(b, {
|
|
242
201
|
className: "text-base",
|
|
243
|
-
children: "
|
|
244
|
-
}) }), /* @__PURE__ */ _
|
|
202
|
+
children: "Summary"
|
|
203
|
+
}) }), /* @__PURE__ */ p(_, {
|
|
245
204
|
className: "text-sm text-text-secondary space-y-3",
|
|
246
|
-
children: [
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
/* @__PURE__ */ _("div", {
|
|
266
|
-
className: "flex items-center gap-2",
|
|
267
|
-
children: [/* @__PURE__ */ g(o, { className: "h-3 w-3 text-status-success-text" }), " Skills assessed"]
|
|
268
|
-
})
|
|
269
|
-
]
|
|
270
|
-
})
|
|
271
|
-
]
|
|
205
|
+
children: [/* @__PURE__ */ p("p", { children: [
|
|
206
|
+
z,
|
|
207
|
+
" offers ",
|
|
208
|
+
B.length,
|
|
209
|
+
" ",
|
|
210
|
+
B.length === 1 ? "service" : "services",
|
|
211
|
+
" on the marketplace",
|
|
212
|
+
H.length > 0 ? ` across ${H.join(", ")}` : "",
|
|
213
|
+
"."
|
|
214
|
+
] }), /* @__PURE__ */ p("p", { children: [
|
|
215
|
+
"Across all listings the provider holds an average rating of ",
|
|
216
|
+
W,
|
|
217
|
+
" from",
|
|
218
|
+
" ",
|
|
219
|
+
G,
|
|
220
|
+
" reviews, with rates starting at $",
|
|
221
|
+
K.toLocaleString(),
|
|
222
|
+
"."
|
|
223
|
+
] })]
|
|
272
224
|
})] })
|
|
273
|
-
}), /* @__PURE__ */
|
|
225
|
+
}), /* @__PURE__ */ f("div", {
|
|
274
226
|
className: "space-y-4",
|
|
275
|
-
children:
|
|
227
|
+
children: /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ f(y, { children: /* @__PURE__ */ f(b, {
|
|
276
228
|
className: "text-sm",
|
|
277
229
|
children: "Expertise Areas"
|
|
278
|
-
}) }), /* @__PURE__ */
|
|
230
|
+
}) }), /* @__PURE__ */ f(_, {
|
|
279
231
|
className: "flex flex-wrap gap-1.5",
|
|
280
|
-
children:
|
|
281
|
-
"Technical Recruitment",
|
|
282
|
-
"Executive Search",
|
|
283
|
-
"HR Consulting",
|
|
284
|
-
"Talent Strategy",
|
|
285
|
-
"Employer Branding",
|
|
286
|
-
"Comp Analysis",
|
|
287
|
-
"ATS Implementation",
|
|
288
|
-
"Interview Training",
|
|
289
|
-
"DEI Programs",
|
|
290
|
-
"Workforce Planning"
|
|
291
|
-
].map((e) => /* @__PURE__ */ g(v, {
|
|
232
|
+
children: V.length > 0 ? V.map((e) => /* @__PURE__ */ f(m, {
|
|
292
233
|
variant: "secondary",
|
|
293
234
|
className: "text-xs",
|
|
294
235
|
children: e
|
|
295
|
-
}, e))
|
|
296
|
-
})] }), /* @__PURE__ */ _(b, { children: [/* @__PURE__ */ g(C, { children: /* @__PURE__ */ g(w, {
|
|
297
|
-
className: "text-sm",
|
|
298
|
-
children: "Response Time"
|
|
299
|
-
}) }), /* @__PURE__ */ _(x, {
|
|
300
|
-
className: "space-y-2",
|
|
301
|
-
children: [/* @__PURE__ */ _("div", {
|
|
302
|
-
className: "flex items-center gap-2 text-sm",
|
|
303
|
-
children: [/* @__PURE__ */ g(s, { className: "h-4 w-4 text-status-success-text" }), /* @__PURE__ */ g("span", {
|
|
304
|
-
className: "font-medium",
|
|
305
|
-
children: "Usually responds within 2 hours"
|
|
306
|
-
})]
|
|
307
|
-
}), /* @__PURE__ */ g("p", {
|
|
236
|
+
}, e)) : /* @__PURE__ */ f("p", {
|
|
308
237
|
className: "text-xs text-text-secondary",
|
|
309
|
-
children: "
|
|
310
|
-
})
|
|
311
|
-
})] })
|
|
238
|
+
children: "No skills listed yet."
|
|
239
|
+
})
|
|
240
|
+
})] })
|
|
312
241
|
})]
|
|
313
242
|
})
|
|
314
243
|
}),
|
|
315
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ f(O, {
|
|
316
245
|
value: "services",
|
|
317
246
|
className: "mt-4",
|
|
318
|
-
children: /* @__PURE__ */
|
|
247
|
+
children: U.length > 0 ? /* @__PURE__ */ f("div", {
|
|
319
248
|
className: "grid gap-4 md:grid-cols-2",
|
|
320
|
-
children:
|
|
249
|
+
children: U.map((e) => /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ p("div", {
|
|
321
250
|
className: "flex items-center justify-between",
|
|
322
|
-
children: [/* @__PURE__ */
|
|
251
|
+
children: [/* @__PURE__ */ f(b, {
|
|
323
252
|
className: "text-sm",
|
|
324
253
|
children: e.title
|
|
325
|
-
}), /* @__PURE__ */
|
|
254
|
+
}), /* @__PURE__ */ f(m, {
|
|
326
255
|
variant: "outline",
|
|
327
256
|
className: "text-xs",
|
|
328
257
|
children: e.type
|
|
329
258
|
})]
|
|
330
|
-
}), /* @__PURE__ */
|
|
259
|
+
}), /* @__PURE__ */ f(v, {
|
|
331
260
|
className: "text-xs",
|
|
332
261
|
children: e.description
|
|
333
|
-
})] }), /* @__PURE__ */ _
|
|
262
|
+
})] }), /* @__PURE__ */ p(_, {
|
|
334
263
|
className: "pt-0",
|
|
335
|
-
children: [/* @__PURE__ */
|
|
264
|
+
children: [/* @__PURE__ */ f(E, { className: "mb-3" }), /* @__PURE__ */ p("div", {
|
|
336
265
|
className: "flex items-center justify-between",
|
|
337
|
-
children: [/* @__PURE__ */
|
|
266
|
+
children: [/* @__PURE__ */ p("div", {
|
|
338
267
|
className: "space-y-0.5",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ f("p", {
|
|
340
269
|
className: "text-sm font-semibold",
|
|
341
270
|
children: e.price
|
|
342
|
-
}), /* @__PURE__ */
|
|
271
|
+
}), /* @__PURE__ */ p("p", {
|
|
343
272
|
className: "text-[10px] text-text-secondary",
|
|
344
273
|
children: ["Delivery: ", e.delivery]
|
|
345
274
|
})]
|
|
346
|
-
}), /* @__PURE__ */
|
|
275
|
+
}), /* @__PURE__ */ f(h, {
|
|
347
276
|
size: "sm",
|
|
348
|
-
|
|
277
|
+
variant: "outline",
|
|
278
|
+
onClick: () => P(`../../marketplace/service-details-page?id=${e.id}`),
|
|
279
|
+
children: "View"
|
|
349
280
|
})]
|
|
350
281
|
})]
|
|
351
|
-
})] }, e.
|
|
282
|
+
})] }, e.id))
|
|
283
|
+
}) : /* @__PURE__ */ f(C, {
|
|
284
|
+
illustration: "empty-generic",
|
|
285
|
+
title: "No services listed",
|
|
286
|
+
description: "This provider has not published any services yet."
|
|
352
287
|
})
|
|
353
288
|
}),
|
|
354
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ f(O, {
|
|
355
290
|
value: "availability",
|
|
356
291
|
className: "mt-4",
|
|
357
|
-
children: /* @__PURE__ */
|
|
292
|
+
children: /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ f(b, {
|
|
358
293
|
className: "text-base",
|
|
359
|
-
children: "
|
|
360
|
-
}), /* @__PURE__ */
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
variant: "outline",
|
|
371
|
-
size: "sm",
|
|
372
|
-
className: "text-xs h-7",
|
|
373
|
-
children: e
|
|
374
|
-
}, e))
|
|
375
|
-
})]
|
|
376
|
-
}, e.day))
|
|
377
|
-
})] })
|
|
294
|
+
children: "Availability"
|
|
295
|
+
}), /* @__PURE__ */ f(v, { children: "Real-time scheduling with this provider" })] }), /* @__PURE__ */ f(_, { children: /* @__PURE__ */ f(C, {
|
|
296
|
+
illustration: "empty-generic",
|
|
297
|
+
title: "Scheduling is coming soon",
|
|
298
|
+
description: "Live availability and consultation booking will appear here once the scheduling backend ships. In the meantime, send a message to arrange a time.",
|
|
299
|
+
action: /* @__PURE__ */ p(h, {
|
|
300
|
+
size: "sm",
|
|
301
|
+
onClick: () => P("../../marketplace/messaging-page"),
|
|
302
|
+
children: [/* @__PURE__ */ f(o, { className: "h-3 w-3 mr-1" }), " Message provider"]
|
|
303
|
+
})
|
|
304
|
+
}) })] })
|
|
378
305
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ f(O, {
|
|
380
307
|
value: "analytics",
|
|
381
308
|
className: "mt-4",
|
|
382
|
-
children: /* @__PURE__ */
|
|
383
|
-
className: "
|
|
384
|
-
children:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
className: "
|
|
389
|
-
children: [
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
},
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
value: "4.9/5.0",
|
|
398
|
-
icon: f
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
label: "On-Time Delivery",
|
|
402
|
-
value: "97%",
|
|
403
|
-
icon: s
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
label: "Revenue Generated",
|
|
407
|
-
value: "$2.1M",
|
|
408
|
-
icon: p
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
label: "Repeat Client Rate",
|
|
412
|
-
value: "92%",
|
|
413
|
-
icon: r
|
|
414
|
-
}
|
|
415
|
-
].map((e) => /* @__PURE__ */ _("div", {
|
|
416
|
-
className: "flex items-center justify-between",
|
|
417
|
-
children: [/* @__PURE__ */ _("div", {
|
|
418
|
-
className: "flex items-center gap-2 text-sm",
|
|
419
|
-
children: [/* @__PURE__ */ g(e.icon, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("span", { children: e.label })]
|
|
420
|
-
}), /* @__PURE__ */ g("span", {
|
|
421
|
-
className: "font-semibold text-sm",
|
|
422
|
-
children: e.value
|
|
309
|
+
children: /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ f(b, {
|
|
310
|
+
className: "text-base",
|
|
311
|
+
children: "Service Performance"
|
|
312
|
+
}), /* @__PURE__ */ f(v, { children: "Ratings and reviews per listed service" })] }), /* @__PURE__ */ f(_, {
|
|
313
|
+
className: "space-y-3",
|
|
314
|
+
children: B.length > 0 ? B.map((e) => /* @__PURE__ */ p("div", {
|
|
315
|
+
className: "flex items-center justify-between",
|
|
316
|
+
children: [/* @__PURE__ */ p("div", {
|
|
317
|
+
className: "min-w-0",
|
|
318
|
+
children: [/* @__PURE__ */ f("p", {
|
|
319
|
+
className: "text-sm font-medium truncate",
|
|
320
|
+
children: e.title
|
|
321
|
+
}), /* @__PURE__ */ f("p", {
|
|
322
|
+
className: "text-xs text-text-secondary",
|
|
323
|
+
children: e.category
|
|
423
324
|
})]
|
|
424
|
-
},
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
percentage: 45
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
industry: "Healthcare",
|
|
437
|
-
percentage: 20
|
|
438
|
-
},
|
|
439
|
-
{
|
|
440
|
-
industry: "Finance",
|
|
441
|
-
percentage: 15
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
industry: "E-commerce",
|
|
445
|
-
percentage: 12
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
industry: "Education",
|
|
449
|
-
percentage: 8
|
|
450
|
-
}
|
|
451
|
-
].map((e) => /* @__PURE__ */ _("div", {
|
|
452
|
-
className: "space-y-1",
|
|
453
|
-
children: [/* @__PURE__ */ _("div", {
|
|
454
|
-
className: "flex items-center justify-between text-sm",
|
|
455
|
-
children: [/* @__PURE__ */ g("span", { children: e.industry }), /* @__PURE__ */ _("span", {
|
|
325
|
+
}), /* @__PURE__ */ p("div", {
|
|
326
|
+
className: "flex items-center gap-2 text-sm shrink-0",
|
|
327
|
+
children: [
|
|
328
|
+
/* @__PURE__ */ f(s, { className: "h-3.5 w-3.5 text-status-warning-text" }),
|
|
329
|
+
/* @__PURE__ */ f("span", {
|
|
330
|
+
className: "font-semibold",
|
|
331
|
+
children: e.rating
|
|
332
|
+
}),
|
|
333
|
+
/* @__PURE__ */ p("span", {
|
|
456
334
|
className: "text-xs text-text-secondary",
|
|
457
|
-
children: [
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
className: "h-full rounded-full bg-action-primary-bg",
|
|
463
|
-
style: { width: `${e.percentage}%` }
|
|
335
|
+
children: [
|
|
336
|
+
"(",
|
|
337
|
+
e.reviews,
|
|
338
|
+
")"
|
|
339
|
+
]
|
|
464
340
|
})
|
|
465
|
-
|
|
466
|
-
}
|
|
467
|
-
})
|
|
468
|
-
|
|
341
|
+
]
|
|
342
|
+
})]
|
|
343
|
+
}, e.id)) : /* @__PURE__ */ f("p", {
|
|
344
|
+
className: "text-sm text-text-secondary",
|
|
345
|
+
children: "No performance data yet."
|
|
346
|
+
})
|
|
347
|
+
})] })
|
|
469
348
|
})
|
|
470
349
|
]
|
|
471
350
|
})
|
|
472
351
|
]
|
|
352
|
+
}) : /* @__PURE__ */ f("div", {
|
|
353
|
+
className: "p-6",
|
|
354
|
+
children: /* @__PURE__ */ f(C, {
|
|
355
|
+
illustration: "empty-search",
|
|
356
|
+
title: "Provider not found",
|
|
357
|
+
description: "This freelancer is no longer available on the marketplace."
|
|
358
|
+
})
|
|
473
359
|
});
|
|
474
360
|
}
|
|
475
361
|
//#endregion
|
|
476
|
-
export {
|
|
362
|
+
export { M as MarketplaceFreelancerProfilePageEnhancedPage };
|
|
477
363
|
|
|
478
364
|
//# sourceMappingURL=MarketplaceFreelancerProfilePageEnhancedPage.js.map
|