@burdenoff/microfe-crewfoundry 2026.625.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.
- package/dist/crewfoundry/pages/AdminAdminPagePage.js +37 -29
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +50 -42
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +39 -31
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +52 -44
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +46 -38
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +28 -15
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +30 -22
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +87 -69
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +99 -80
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +86 -67
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +31 -15
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +37 -29
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +29 -21
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -17
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +42 -35
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +80 -62
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +41 -33
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +142 -108
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +177 -136
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +44 -36
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +49 -38
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +26 -18
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +112 -93
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +53 -46
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +31 -23
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +129 -90
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +96 -85
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +26 -18
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +47 -35
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +33 -25
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +36 -28
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +27 -19
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +27 -19
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +93 -75
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +111 -70
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +65 -53
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +35 -19
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +33 -25
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +26 -18
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +80 -55
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +33 -17
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +31 -23
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +29 -21
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +35 -27
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +147 -112
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +31 -27
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +31 -23
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -85
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +75 -56
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +78 -60
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +133 -92
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +93 -52
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +28 -20
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +84 -65
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +25 -17
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +58 -40
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +41 -33
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +36 -29
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +103 -72
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +43 -27
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +28 -20
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +103 -62
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -64
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +185 -144
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +40 -24
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,125 +1,164 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
2
|
import { Briefcase as t, Calendar as n, CheckCircle as r, DollarSign as i, MapPin as a, Share2 as o, Users as s } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useNavigate as c } from "react-router-dom";
|
|
4
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as d, Button as f, Card as p, CardContent as m, CardDescription as h, CardHeader as g, CardTitle as _, GlassCard as v, GradientText as y, IllustratedEmptyState as b, NextSteps as x, PagePurpose as S } from "@burdenoff/fe-libs/ui";
|
|
5
6
|
//#region src/crewfoundry/pages/HiringJobDetailsPagePage.tsx
|
|
6
|
-
function
|
|
7
|
-
let { jobPostings:
|
|
8
|
-
if (!
|
|
9
|
-
className: "p-6
|
|
10
|
-
children:
|
|
7
|
+
function C() {
|
|
8
|
+
let C = c(), { jobPostings: w, candidates: T } = e(), E = w[0];
|
|
9
|
+
if (!E) return /* @__PURE__ */ l("div", {
|
|
10
|
+
className: "p-6",
|
|
11
|
+
children: /* @__PURE__ */ l(b, {
|
|
12
|
+
illustration: "empty-search",
|
|
13
|
+
title: "No job posting found",
|
|
14
|
+
description: "This job posting is no longer available."
|
|
15
|
+
})
|
|
11
16
|
});
|
|
12
|
-
let
|
|
13
|
-
return /* @__PURE__ */
|
|
17
|
+
let D = T.filter((e) => e.position === E.title);
|
|
18
|
+
return /* @__PURE__ */ u("div", {
|
|
14
19
|
className: "space-y-6 p-6 max-w-4xl",
|
|
15
20
|
children: [
|
|
16
|
-
/* @__PURE__ */
|
|
21
|
+
/* @__PURE__ */ u("div", {
|
|
17
22
|
className: "flex items-center justify-between",
|
|
18
|
-
children: [/* @__PURE__ */
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
23
|
+
children: [/* @__PURE__ */ u("div", { children: [
|
|
24
|
+
/* @__PURE__ */ u("div", {
|
|
25
|
+
className: "flex items-center gap-2 mb-1",
|
|
26
|
+
children: [/* @__PURE__ */ l("h1", {
|
|
27
|
+
className: "text-2xl font-semibold",
|
|
28
|
+
children: /* @__PURE__ */ l(y, { children: E.title })
|
|
29
|
+
}), /* @__PURE__ */ l(d, {
|
|
30
|
+
variant: E.status === "active" ? "default" : "secondary",
|
|
31
|
+
children: E.status
|
|
32
|
+
})]
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ u("div", {
|
|
35
|
+
className: "flex items-center gap-4 text-sm text-text-secondary",
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ u("span", {
|
|
38
|
+
className: "flex items-center gap-1",
|
|
39
|
+
children: [/* @__PURE__ */ l(t, { className: "h-3 w-3" }), E.department]
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ u("span", {
|
|
42
|
+
className: "flex items-center gap-1",
|
|
43
|
+
children: [/* @__PURE__ */ l(a, { className: "h-3 w-3" }), E.location]
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ u("span", {
|
|
46
|
+
className: "flex items-center gap-1",
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ l(n, { className: "h-3 w-3" }),
|
|
49
|
+
"Posted ",
|
|
50
|
+
E.postedDate
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
}),
|
|
55
|
+
/* @__PURE__ */ l(S, {
|
|
56
|
+
className: "mt-2",
|
|
57
|
+
children: "Everything about this role in one place — review applicants, requirements, and compensation here to decide who to interview and keep the posting current."
|
|
58
|
+
})
|
|
59
|
+
] }), /* @__PURE__ */ u("div", {
|
|
48
60
|
className: "flex gap-2",
|
|
49
|
-
children: [/* @__PURE__ */
|
|
61
|
+
children: [/* @__PURE__ */ u(f, {
|
|
50
62
|
variant: "outline",
|
|
51
63
|
size: "sm",
|
|
52
|
-
children: [/* @__PURE__ */
|
|
53
|
-
}), /* @__PURE__ */
|
|
64
|
+
children: [/* @__PURE__ */ l(o, { className: "h-4 w-4 mr-1" }), "Share"]
|
|
65
|
+
}), /* @__PURE__ */ l(f, {
|
|
54
66
|
size: "sm",
|
|
55
67
|
children: "Edit Posting"
|
|
56
68
|
})]
|
|
57
69
|
})]
|
|
58
70
|
}),
|
|
59
|
-
/* @__PURE__ */ l(
|
|
71
|
+
/* @__PURE__ */ l(x, {
|
|
72
|
+
storageKey: "crewfoundry-job-details",
|
|
73
|
+
steps: [
|
|
74
|
+
{
|
|
75
|
+
id: "applicants",
|
|
76
|
+
label: "Review applicants",
|
|
77
|
+
description: "Screen the candidates who applied for this role.",
|
|
78
|
+
icon: /* @__PURE__ */ l(s, { className: "h-4 w-4" }),
|
|
79
|
+
onClick: () => C("../../hiring/applications-page")
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "interviews",
|
|
83
|
+
label: "Schedule interviews",
|
|
84
|
+
description: "Set up conversations with promising candidates.",
|
|
85
|
+
icon: /* @__PURE__ */ l(n, { className: "h-4 w-4" }),
|
|
86
|
+
onClick: () => C("../../hiring/interviews-page")
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: "candidates",
|
|
90
|
+
label: "Browse your talent pool",
|
|
91
|
+
description: "Source more candidates that fit this position.",
|
|
92
|
+
icon: /* @__PURE__ */ l(t, { className: "h-4 w-4" }),
|
|
93
|
+
onClick: () => C("../../hiring/candidates-page")
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ u("div", {
|
|
60
98
|
className: "grid gap-4 md:grid-cols-4",
|
|
61
99
|
children: [
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
treatment: "
|
|
100
|
+
/* @__PURE__ */ l(v, {
|
|
101
|
+
treatment: "glass",
|
|
102
|
+
glow: !0,
|
|
64
103
|
className: "border-border-seam",
|
|
65
|
-
children: /* @__PURE__ */
|
|
104
|
+
children: /* @__PURE__ */ u(m, {
|
|
66
105
|
className: "p-4 text-center",
|
|
67
106
|
children: [
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ l(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
108
|
+
/* @__PURE__ */ l("p", {
|
|
70
109
|
className: "text-2xl font-bold tabular-nums",
|
|
71
|
-
children:
|
|
110
|
+
children: E.applicants
|
|
72
111
|
}),
|
|
73
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ l("p", {
|
|
74
113
|
className: "text-xs text-text-secondary",
|
|
75
114
|
children: "Applicants"
|
|
76
115
|
})
|
|
77
116
|
]
|
|
78
117
|
})
|
|
79
118
|
}),
|
|
80
|
-
/* @__PURE__ */
|
|
119
|
+
/* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
|
|
81
120
|
className: "p-4 text-center",
|
|
82
121
|
children: [
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ l(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
123
|
+
/* @__PURE__ */ u("p", {
|
|
85
124
|
className: "text-lg font-bold",
|
|
86
125
|
children: [
|
|
87
126
|
"$",
|
|
88
|
-
(
|
|
127
|
+
(E.salaryMin / 1e3).toFixed(0),
|
|
89
128
|
"K-$",
|
|
90
|
-
(
|
|
129
|
+
(E.salaryMax / 1e3).toFixed(0),
|
|
91
130
|
"K"
|
|
92
131
|
]
|
|
93
132
|
}),
|
|
94
|
-
/* @__PURE__ */
|
|
133
|
+
/* @__PURE__ */ l("p", {
|
|
95
134
|
className: "text-xs text-text-secondary",
|
|
96
135
|
children: "Salary Range"
|
|
97
136
|
})
|
|
98
137
|
]
|
|
99
138
|
}) }),
|
|
100
|
-
/* @__PURE__ */
|
|
139
|
+
/* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
|
|
101
140
|
className: "p-4 text-center",
|
|
102
141
|
children: [
|
|
103
|
-
/* @__PURE__ */
|
|
104
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ l(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
143
|
+
/* @__PURE__ */ l("p", {
|
|
105
144
|
className: "text-lg font-bold",
|
|
106
|
-
children:
|
|
145
|
+
children: E.deadline
|
|
107
146
|
}),
|
|
108
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ l("p", {
|
|
109
148
|
className: "text-xs text-text-secondary",
|
|
110
149
|
children: "Deadline"
|
|
111
150
|
})
|
|
112
151
|
]
|
|
113
152
|
}) }),
|
|
114
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
|
|
115
154
|
className: "p-4 text-center",
|
|
116
155
|
children: [
|
|
117
|
-
/* @__PURE__ */
|
|
118
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ l(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
157
|
+
/* @__PURE__ */ l("p", {
|
|
119
158
|
className: "text-lg font-bold",
|
|
120
|
-
children:
|
|
159
|
+
children: E.experienceLevel
|
|
121
160
|
}),
|
|
122
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ l("p", {
|
|
123
162
|
className: "text-xs text-text-secondary",
|
|
124
163
|
children: "Level"
|
|
125
164
|
})
|
|
@@ -127,48 +166,48 @@ function y() {
|
|
|
127
166
|
}) })
|
|
128
167
|
]
|
|
129
168
|
}),
|
|
130
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Description" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("p", {
|
|
131
170
|
className: "text-sm text-text-secondary",
|
|
132
|
-
children:
|
|
171
|
+
children: E.description
|
|
133
172
|
}) })] }),
|
|
134
|
-
/* @__PURE__ */
|
|
173
|
+
/* @__PURE__ */ u("div", {
|
|
135
174
|
className: "grid gap-4 md:grid-cols-2",
|
|
136
|
-
children: [/* @__PURE__ */
|
|
175
|
+
children: [/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Requirements" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("ul", {
|
|
137
176
|
className: "space-y-2",
|
|
138
|
-
children:
|
|
177
|
+
children: E.requirements.map((e, t) => /* @__PURE__ */ u("li", {
|
|
139
178
|
className: "flex items-start gap-2 text-sm",
|
|
140
|
-
children: [/* @__PURE__ */
|
|
179
|
+
children: [/* @__PURE__ */ l(r, { className: "h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0" }), e]
|
|
141
180
|
}, t))
|
|
142
|
-
}) })] }), /* @__PURE__ */
|
|
181
|
+
}) })] }), /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Benefits" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("ul", {
|
|
143
182
|
className: "space-y-2",
|
|
144
|
-
children:
|
|
183
|
+
children: E.benefits.map((e, t) => /* @__PURE__ */ u("li", {
|
|
145
184
|
className: "flex items-start gap-2 text-sm",
|
|
146
|
-
children: [/* @__PURE__ */
|
|
185
|
+
children: [/* @__PURE__ */ l(r, { className: "h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0" }), e]
|
|
147
186
|
}, t))
|
|
148
187
|
}) })] })]
|
|
149
188
|
}),
|
|
150
|
-
|
|
189
|
+
D.length > 0 && /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(g, { children: [/* @__PURE__ */ l(_, { children: "Applicants for this Role" }), /* @__PURE__ */ u(h, { children: [D.length, " candidates"] })] }), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ u("div", {
|
|
151
190
|
className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
|
|
152
191
|
children: [
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ l("span", { children: "Name" }),
|
|
193
|
+
/* @__PURE__ */ l("span", { children: "Source" }),
|
|
194
|
+
/* @__PURE__ */ l("span", {
|
|
156
195
|
className: "text-right",
|
|
157
196
|
children: "Experience"
|
|
158
197
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ l("span", {
|
|
160
199
|
className: "text-center",
|
|
161
200
|
children: "Rating"
|
|
162
201
|
}),
|
|
163
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ l("span", {
|
|
164
203
|
className: "text-center",
|
|
165
204
|
children: "Status"
|
|
166
205
|
})
|
|
167
206
|
]
|
|
168
|
-
}),
|
|
207
|
+
}), D.map((e) => /* @__PURE__ */ u("div", {
|
|
169
208
|
className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
|
|
170
209
|
children: [
|
|
171
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ u("span", {
|
|
172
211
|
className: "font-medium",
|
|
173
212
|
children: [
|
|
174
213
|
e.firstName,
|
|
@@ -176,21 +215,21 @@ function y() {
|
|
|
176
215
|
e.lastName
|
|
177
216
|
]
|
|
178
217
|
}),
|
|
179
|
-
/* @__PURE__ */
|
|
218
|
+
/* @__PURE__ */ l("span", {
|
|
180
219
|
className: "text-text-secondary",
|
|
181
220
|
children: e.source
|
|
182
221
|
}),
|
|
183
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ u("span", {
|
|
184
223
|
className: "text-right",
|
|
185
224
|
children: [e.experience, " yrs"]
|
|
186
225
|
}),
|
|
187
|
-
/* @__PURE__ */
|
|
226
|
+
/* @__PURE__ */ u("div", {
|
|
188
227
|
className: "text-center",
|
|
189
228
|
children: [e.rating, "/5"]
|
|
190
229
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ l("div", {
|
|
192
231
|
className: "text-center",
|
|
193
|
-
children: /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ l(d, {
|
|
194
233
|
variant: e.status === "hired" ? "default" : "secondary",
|
|
195
234
|
className: "text-[10px]",
|
|
196
235
|
children: e.status
|
|
@@ -202,6 +241,6 @@ function y() {
|
|
|
202
241
|
});
|
|
203
242
|
}
|
|
204
243
|
//#endregion
|
|
205
|
-
export {
|
|
244
|
+
export { C as HiringJobDetailsPagePage };
|
|
206
245
|
|
|
207
246
|
//# sourceMappingURL=HiringJobDetailsPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return <div className=\"p-6 text-center text-text-secondary\">No job posting found.</div>;\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{job.title}</GradientText>\n </h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-2xl font-bold tabular-nums\">{job.applicants}</p>\n <p className=\"text-xs text-text-secondary\">Applicants</p>\n </CardContent>\n </GlassCard>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-text-secondary\">Salary Range</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.deadline}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-text-secondary\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-text-secondary\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const navigate = useNavigate();\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"No job posting found\"\n description=\"This job posting is no longer available.\"\n />\n </div>\n );\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{job.title}</GradientText>\n </h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n <PagePurpose className=\"mt-2\">\n Everything about this role in one place — review applicants, requirements, and\n compensation here to decide who to interview and keep the posting current.\n </PagePurpose>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-job-details\"\n steps={[\n {\n id: 'applicants',\n label: 'Review applicants',\n description: 'Screen the candidates who applied for this role.',\n icon: <Users className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/applications-page'),\n },\n {\n id: 'interviews',\n label: 'Schedule interviews',\n description: 'Set up conversations with promising candidates.',\n icon: <Calendar className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/interviews-page'),\n },\n {\n id: 'candidates',\n label: 'Browse your talent pool',\n description: 'Source more candidates that fit this position.',\n icon: <Briefcase className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/candidates-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-2xl font-bold tabular-nums\">{job.applicants}</p>\n <p className=\"text-xs text-text-secondary\">Applicants</p>\n </CardContent>\n </GlassCard>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-text-secondary\">Salary Range</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.deadline}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-text-secondary\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-text-secondary\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -2,119 +2,130 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
|
2
2
|
import { useState as t } from "react";
|
|
3
3
|
import { Briefcase as n, MapPin as r, Plus as i, Search as a, Users as o } from "lucide-react";
|
|
4
4
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
|
-
import { Badge as l, Button as u,
|
|
6
|
-
import { useI18n as
|
|
5
|
+
import { Badge as l, Button as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, GlassCard as h, GradientText as g, IllustratedEmptyState as _, Input as v, PagePurpose as y } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
import { useI18n as b } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
7
|
//#region src/crewfoundry/pages/HiringJobsPagePage.tsx
|
|
8
|
-
function
|
|
9
|
-
let { t:
|
|
10
|
-
let n =
|
|
8
|
+
function x() {
|
|
9
|
+
let { t: x } = b(), { jobPostings: S } = e(), [C, w] = t(""), T = (e, t) => {
|
|
10
|
+
let n = x(e);
|
|
11
11
|
return n === e ? t : n;
|
|
12
|
-
},
|
|
12
|
+
}, E = S.filter((e) => `${e.title} ${e.department} ${e.location}`.toLowerCase().includes(C.toLowerCase())), D = S.filter((e) => e.status === "active").length, O = S.reduce((e, t) => e + t.applicants, 0);
|
|
13
13
|
return /* @__PURE__ */ c("div", {
|
|
14
14
|
className: "space-y-6 p-6",
|
|
15
15
|
children: [
|
|
16
16
|
/* @__PURE__ */ c("div", {
|
|
17
17
|
className: "flex items-center justify-between",
|
|
18
|
-
children: [/* @__PURE__ */ c("div", { children: [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
18
|
+
children: [/* @__PURE__ */ c("div", { children: [
|
|
19
|
+
/* @__PURE__ */ s("h1", {
|
|
20
|
+
className: "text-2xl font-semibold",
|
|
21
|
+
children: /* @__PURE__ */ s(g, { children: T("crewfoundry.hiringJobs.title", "Job Postings") })
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ c("p", {
|
|
24
|
+
className: "text-sm text-text-secondary",
|
|
25
|
+
children: [
|
|
26
|
+
D,
|
|
27
|
+
" ",
|
|
28
|
+
T("crewfoundry.hiringJobs.summary.activePositions", "active positions"),
|
|
29
|
+
" ·",
|
|
30
|
+
" ",
|
|
31
|
+
O,
|
|
32
|
+
" ",
|
|
33
|
+
T("crewfoundry.hiringJobs.summary.totalApplicants", "total applicants")
|
|
34
|
+
]
|
|
35
|
+
}),
|
|
36
|
+
/* @__PURE__ */ s(y, {
|
|
37
|
+
className: "mt-1",
|
|
38
|
+
children: "All your open and past job postings in one place — use it to monitor applicant volume and manage what roles you're actively hiring for."
|
|
39
|
+
})
|
|
40
|
+
] }), /* @__PURE__ */ c(u, {
|
|
34
41
|
size: "sm",
|
|
35
|
-
children: [/* @__PURE__ */ s(i, { className: "h-4 w-4 mr-1" }),
|
|
42
|
+
children: [/* @__PURE__ */ s(i, { className: "h-4 w-4 mr-1" }), T("crewfoundry.hiringJobs.actions.postNewJob", "Post New Job")]
|
|
36
43
|
})]
|
|
37
44
|
}),
|
|
38
45
|
/* @__PURE__ */ c("div", {
|
|
39
46
|
className: "relative max-w-sm",
|
|
40
47
|
children: [/* @__PURE__ */ s(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ s(v, {
|
|
41
|
-
placeholder:
|
|
48
|
+
placeholder: T("crewfoundry.hiringJobs.searchPlaceholder", "Search positions..."),
|
|
42
49
|
className: "pl-9",
|
|
43
|
-
value:
|
|
44
|
-
onChange: (e) =>
|
|
50
|
+
value: C,
|
|
51
|
+
onChange: (e) => w(e.target.value)
|
|
45
52
|
})]
|
|
46
53
|
}),
|
|
47
|
-
|
|
54
|
+
E.length === 0 && /* @__PURE__ */ s(_, {
|
|
48
55
|
illustration: "empty-search",
|
|
49
56
|
title: "No job postings found",
|
|
50
57
|
description: "Try adjusting your search, or create a new job posting."
|
|
51
58
|
}),
|
|
52
59
|
/* @__PURE__ */ s("div", {
|
|
53
60
|
className: "grid gap-4 md:grid-cols-2",
|
|
54
|
-
children:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
})]
|
|
63
|
-
}), /* @__PURE__ */ s(p, { children: e.description })] }), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ c("div", {
|
|
64
|
-
className: "grid grid-cols-2 gap-3 mb-3",
|
|
65
|
-
children: [
|
|
66
|
-
/* @__PURE__ */ c("div", {
|
|
67
|
-
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
68
|
-
children: [/* @__PURE__ */ s(n, { className: "h-3 w-3" }), e.department]
|
|
69
|
-
}),
|
|
70
|
-
/* @__PURE__ */ c("div", {
|
|
71
|
-
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
72
|
-
children: [/* @__PURE__ */ s(r, { className: "h-3 w-3" }), e.location]
|
|
73
|
-
}),
|
|
74
|
-
/* @__PURE__ */ c("div", {
|
|
75
|
-
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
76
|
-
children: [
|
|
77
|
-
/* @__PURE__ */ s(o, { className: "h-3 w-3" }),
|
|
78
|
-
e.applicants,
|
|
79
|
-
" ",
|
|
80
|
-
w("crewfoundry.hiringJobs.card.applicants", "applicants")
|
|
81
|
-
]
|
|
82
|
-
}),
|
|
83
|
-
/* @__PURE__ */ c("div", {
|
|
84
|
-
className: "text-sm text-text-secondary",
|
|
85
|
-
children: [
|
|
86
|
-
"$",
|
|
87
|
-
(e.salaryMin / 1e3).toFixed(0),
|
|
88
|
-
"K — $",
|
|
89
|
-
(e.salaryMax / 1e3).toFixed(0),
|
|
90
|
-
"K"
|
|
91
|
-
]
|
|
92
|
-
})
|
|
93
|
-
]
|
|
94
|
-
}), /* @__PURE__ */ c("div", {
|
|
95
|
-
className: "flex items-center justify-between text-xs text-text-secondary",
|
|
96
|
-
children: [/* @__PURE__ */ c("div", {
|
|
97
|
-
className: "flex gap-1",
|
|
98
|
-
children: [/* @__PURE__ */ s(l, {
|
|
99
|
-
variant: "outline",
|
|
100
|
-
className: "text-[10px]",
|
|
101
|
-
children: e.type.replace("_", " ")
|
|
61
|
+
children: E.map((e, t) => /* @__PURE__ */ c(h, {
|
|
62
|
+
treatment: t === 0 ? "glass" : "plain",
|
|
63
|
+
glow: t === 0,
|
|
64
|
+
children: [/* @__PURE__ */ c(p, { children: [/* @__PURE__ */ c("div", {
|
|
65
|
+
className: "flex items-center justify-between",
|
|
66
|
+
children: [/* @__PURE__ */ s(m, {
|
|
67
|
+
className: "text-lg",
|
|
68
|
+
children: e.title
|
|
102
69
|
}), /* @__PURE__ */ s(l, {
|
|
103
|
-
variant: "outline",
|
|
104
|
-
|
|
105
|
-
children: e.experienceLevel
|
|
70
|
+
variant: e.status === "active" ? "default" : e.status === "paused" ? "secondary" : "outline",
|
|
71
|
+
children: e.status
|
|
106
72
|
})]
|
|
107
|
-
}), /* @__PURE__ */ c(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
73
|
+
}), /* @__PURE__ */ s(f, { children: e.description })] }), /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c("div", {
|
|
74
|
+
className: "grid grid-cols-2 gap-3 mb-3",
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ c("div", {
|
|
77
|
+
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
78
|
+
children: [/* @__PURE__ */ s(n, { className: "h-3 w-3" }), e.department]
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ c("div", {
|
|
81
|
+
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
82
|
+
children: [/* @__PURE__ */ s(r, { className: "h-3 w-3" }), e.location]
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ c("div", {
|
|
85
|
+
className: "flex items-center gap-1 text-sm text-text-secondary",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ s(o, { className: "h-3 w-3" }),
|
|
88
|
+
e.applicants,
|
|
89
|
+
" ",
|
|
90
|
+
T("crewfoundry.hiringJobs.card.applicants", "applicants")
|
|
91
|
+
]
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ c("div", {
|
|
94
|
+
className: "text-sm text-text-secondary",
|
|
95
|
+
children: [
|
|
96
|
+
"$",
|
|
97
|
+
(e.salaryMin / 1e3).toFixed(0),
|
|
98
|
+
"K — $",
|
|
99
|
+
(e.salaryMax / 1e3).toFixed(0),
|
|
100
|
+
"K"
|
|
101
|
+
]
|
|
102
|
+
})
|
|
103
|
+
]
|
|
104
|
+
}), /* @__PURE__ */ c("div", {
|
|
105
|
+
className: "flex items-center justify-between text-xs text-text-secondary",
|
|
106
|
+
children: [/* @__PURE__ */ c("div", {
|
|
107
|
+
className: "flex gap-1",
|
|
108
|
+
children: [/* @__PURE__ */ s(l, {
|
|
109
|
+
variant: "outline",
|
|
110
|
+
className: "text-[10px]",
|
|
111
|
+
children: e.type.replace("_", " ")
|
|
112
|
+
}), /* @__PURE__ */ s(l, {
|
|
113
|
+
variant: "outline",
|
|
114
|
+
className: "text-[10px]",
|
|
115
|
+
children: e.experienceLevel
|
|
116
|
+
})]
|
|
117
|
+
}), /* @__PURE__ */ c("span", { children: [
|
|
118
|
+
T("crewfoundry.hiringJobs.card.deadline", "Deadline"),
|
|
119
|
+
": ",
|
|
120
|
+
e.deadline
|
|
121
|
+
] })]
|
|
122
|
+
})] })]
|
|
123
|
+
}, e.id))
|
|
113
124
|
})
|
|
114
125
|
]
|
|
115
126
|
});
|
|
116
127
|
}
|
|
117
128
|
//#endregion
|
|
118
|
-
export {
|
|
129
|
+
export { x as HiringJobsPagePage };
|
|
119
130
|
|
|
120
131
|
//# sourceMappingURL=HiringJobsPagePage.js.map
|