@burdenoff/microfe-crewfoundry 2026.624.1 → 2026.625.1
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 +86 -70
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +104 -88
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +91 -75
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +119 -103
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +107 -91
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +10 -10
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +60 -48
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +10 -10
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +20 -20
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +22 -22
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +7 -7
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +67 -55
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +54 -42
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +68 -52
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +30 -30
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +9 -9
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +90 -74
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +166 -132
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +43 -43
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +107 -91
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +35 -35
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +78 -62
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +17 -17
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +39 -39
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +53 -41
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +41 -37
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +25 -20
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +54 -42
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +76 -60
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +83 -67
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +86 -70
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +79 -63
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +51 -39
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +14 -14
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +29 -25
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +17 -17
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +11 -11
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +76 -60
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +67 -51
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +17 -17
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +7 -7
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +69 -53
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +54 -42
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +66 -54
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +37 -37
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +33 -32
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +54 -42
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +11 -11
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +18 -18
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +7 -7
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +29 -25
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +22 -18
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +55 -43
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +7 -7
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +62 -46
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +14 -14
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +71 -59
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +20 -20
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +33 -29
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +16 -16
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +53 -41
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +25 -21
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +9 -9
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +48 -48
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +13 -13
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { useState as e } from "react";
|
|
2
2
|
import { Briefcase as t, Plus as n, Save as r, X as i } from "lucide-react";
|
|
3
3
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
-
import { Button as s, Card as c, CardContent as l, CardDescription as u, CardHeader as d, CardTitle as f,
|
|
4
|
+
import { Button as s, Card as c, CardContent as l, CardDescription as u, CardHeader as d, CardTitle as f, GradientText as p, Input as m, Textarea as h } from "@burdenoff/fe-libs/ui";
|
|
5
5
|
//#region src/crewfoundry/pages/HiringCreateJobPagePage.tsx
|
|
6
|
-
function
|
|
7
|
-
let [
|
|
8
|
-
let n = [...
|
|
9
|
-
n[e] = t,
|
|
10
|
-
},
|
|
11
|
-
let n = [...
|
|
12
|
-
n[e] = t,
|
|
13
|
-
},
|
|
6
|
+
function g() {
|
|
7
|
+
let [g, _] = e(""), [v, y] = e(""), [b, x] = e(""), [S, C] = e(""), [w, T] = e(""), [E, D] = e(""), [O, k] = e([""]), [A, j] = e([""]), M = () => k([...O, ""]), N = () => j([...A, ""]), P = (e, t) => {
|
|
8
|
+
let n = [...O];
|
|
9
|
+
n[e] = t, k(n);
|
|
10
|
+
}, F = (e, t) => {
|
|
11
|
+
let n = [...A];
|
|
12
|
+
n[e] = t, j(n);
|
|
13
|
+
}, I = (e) => k(O.filter((t, n) => n !== e)), L = (e) => j(A.filter((t, n) => n !== e));
|
|
14
14
|
return /* @__PURE__ */ o("div", {
|
|
15
15
|
className: "space-y-6 p-6 max-w-3xl",
|
|
16
16
|
children: [
|
|
@@ -18,7 +18,7 @@ function h() {
|
|
|
18
18
|
className: "flex items-center justify-between",
|
|
19
19
|
children: /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
20
20
|
className: "text-2xl font-semibold",
|
|
21
|
-
children: "Create Job Posting"
|
|
21
|
+
children: /* @__PURE__ */ a(p, { children: "Create Job Posting" })
|
|
22
22
|
}), /* @__PURE__ */ a("p", {
|
|
23
23
|
className: "text-sm text-text-secondary",
|
|
24
24
|
children: "Fill in the details for a new position"
|
|
@@ -35,10 +35,10 @@ function h() {
|
|
|
35
35
|
children: [/* @__PURE__ */ a("label", {
|
|
36
36
|
className: "text-sm font-medium",
|
|
37
37
|
children: "Job Title"
|
|
38
|
-
}), /* @__PURE__ */ a(
|
|
38
|
+
}), /* @__PURE__ */ a(m, {
|
|
39
39
|
placeholder: "e.g. Senior Frontend Developer",
|
|
40
|
-
value:
|
|
41
|
-
onChange: (e) =>
|
|
40
|
+
value: g,
|
|
41
|
+
onChange: (e) => _(e.target.value)
|
|
42
42
|
})]
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ o("div", {
|
|
@@ -48,20 +48,20 @@ function h() {
|
|
|
48
48
|
children: [/* @__PURE__ */ a("label", {
|
|
49
49
|
className: "text-sm font-medium",
|
|
50
50
|
children: "Department"
|
|
51
|
-
}), /* @__PURE__ */ a(
|
|
51
|
+
}), /* @__PURE__ */ a(m, {
|
|
52
52
|
placeholder: "e.g. Engineering",
|
|
53
|
-
value:
|
|
54
|
-
onChange: (e) =>
|
|
53
|
+
value: v,
|
|
54
|
+
onChange: (e) => y(e.target.value)
|
|
55
55
|
})]
|
|
56
56
|
}), /* @__PURE__ */ o("div", {
|
|
57
57
|
className: "space-y-2",
|
|
58
58
|
children: [/* @__PURE__ */ a("label", {
|
|
59
59
|
className: "text-sm font-medium",
|
|
60
60
|
children: "Location"
|
|
61
|
-
}), /* @__PURE__ */ a(
|
|
61
|
+
}), /* @__PURE__ */ a(m, {
|
|
62
62
|
placeholder: "e.g. San Francisco, CA",
|
|
63
|
-
value:
|
|
64
|
-
onChange: (e) =>
|
|
63
|
+
value: b,
|
|
64
|
+
onChange: (e) => x(e.target.value)
|
|
65
65
|
})]
|
|
66
66
|
})]
|
|
67
67
|
}),
|
|
@@ -72,22 +72,22 @@ function h() {
|
|
|
72
72
|
children: [/* @__PURE__ */ a("label", {
|
|
73
73
|
className: "text-sm font-medium",
|
|
74
74
|
children: "Salary Min ($)"
|
|
75
|
-
}), /* @__PURE__ */ a(
|
|
75
|
+
}), /* @__PURE__ */ a(m, {
|
|
76
76
|
type: "number",
|
|
77
77
|
placeholder: "e.g. 120000",
|
|
78
|
-
value:
|
|
79
|
-
onChange: (e) =>
|
|
78
|
+
value: w,
|
|
79
|
+
onChange: (e) => T(e.target.value)
|
|
80
80
|
})]
|
|
81
81
|
}), /* @__PURE__ */ o("div", {
|
|
82
82
|
className: "space-y-2",
|
|
83
83
|
children: [/* @__PURE__ */ a("label", {
|
|
84
84
|
className: "text-sm font-medium",
|
|
85
85
|
children: "Salary Max ($)"
|
|
86
|
-
}), /* @__PURE__ */ a(
|
|
86
|
+
}), /* @__PURE__ */ a(m, {
|
|
87
87
|
type: "number",
|
|
88
88
|
placeholder: "e.g. 180000",
|
|
89
|
-
value:
|
|
90
|
-
onChange: (e) =>
|
|
89
|
+
value: E,
|
|
90
|
+
onChange: (e) => D(e.target.value)
|
|
91
91
|
})]
|
|
92
92
|
})]
|
|
93
93
|
}),
|
|
@@ -96,54 +96,54 @@ function h() {
|
|
|
96
96
|
children: [/* @__PURE__ */ a("label", {
|
|
97
97
|
className: "text-sm font-medium",
|
|
98
98
|
children: "Description"
|
|
99
|
-
}), /* @__PURE__ */ a(
|
|
99
|
+
}), /* @__PURE__ */ a(h, {
|
|
100
100
|
placeholder: "Describe the role, responsibilities, and ideal candidate...",
|
|
101
101
|
rows: 4,
|
|
102
|
-
value:
|
|
103
|
-
onChange: (e) =>
|
|
102
|
+
value: S,
|
|
103
|
+
onChange: (e) => C(e.target.value)
|
|
104
104
|
})]
|
|
105
105
|
})
|
|
106
106
|
]
|
|
107
107
|
})] }),
|
|
108
108
|
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(d, { children: [/* @__PURE__ */ a(f, { children: "Requirements" }), /* @__PURE__ */ a(u, { children: "List the key requirements for this role" })] }), /* @__PURE__ */ o(l, {
|
|
109
109
|
className: "space-y-3",
|
|
110
|
-
children: [
|
|
110
|
+
children: [O.map((e, t) => /* @__PURE__ */ o("div", {
|
|
111
111
|
className: "flex gap-2",
|
|
112
|
-
children: [/* @__PURE__ */ a(
|
|
112
|
+
children: [/* @__PURE__ */ a(m, {
|
|
113
113
|
placeholder: `Requirement ${t + 1}`,
|
|
114
114
|
value: e,
|
|
115
|
-
onChange: (e) =>
|
|
115
|
+
onChange: (e) => P(t, e.target.value)
|
|
116
116
|
}), /* @__PURE__ */ a(s, {
|
|
117
117
|
variant: "outline",
|
|
118
118
|
size: "sm",
|
|
119
|
-
onClick: () =>
|
|
119
|
+
onClick: () => I(t),
|
|
120
120
|
children: /* @__PURE__ */ a(i, { className: "h-4 w-4" })
|
|
121
121
|
})]
|
|
122
122
|
}, t)), /* @__PURE__ */ o(s, {
|
|
123
123
|
variant: "outline",
|
|
124
124
|
size: "sm",
|
|
125
|
-
onClick:
|
|
125
|
+
onClick: M,
|
|
126
126
|
children: [/* @__PURE__ */ a(n, { className: "h-4 w-4 mr-1" }), "Add Requirement"]
|
|
127
127
|
})]
|
|
128
128
|
})] }),
|
|
129
129
|
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(d, { children: [/* @__PURE__ */ a(f, { children: "Benefits" }), /* @__PURE__ */ a(u, { children: "What does this position offer?" })] }), /* @__PURE__ */ o(l, {
|
|
130
130
|
className: "space-y-3",
|
|
131
|
-
children: [
|
|
131
|
+
children: [A.map((e, t) => /* @__PURE__ */ o("div", {
|
|
132
132
|
className: "flex gap-2",
|
|
133
|
-
children: [/* @__PURE__ */ a(
|
|
133
|
+
children: [/* @__PURE__ */ a(m, {
|
|
134
134
|
placeholder: `Benefit ${t + 1}`,
|
|
135
135
|
value: e,
|
|
136
|
-
onChange: (e) =>
|
|
136
|
+
onChange: (e) => F(t, e.target.value)
|
|
137
137
|
}), /* @__PURE__ */ a(s, {
|
|
138
138
|
variant: "outline",
|
|
139
139
|
size: "sm",
|
|
140
|
-
onClick: () =>
|
|
140
|
+
onClick: () => L(t),
|
|
141
141
|
children: /* @__PURE__ */ a(i, { className: "h-4 w-4" })
|
|
142
142
|
})]
|
|
143
143
|
}, t)), /* @__PURE__ */ o(s, {
|
|
144
144
|
variant: "outline",
|
|
145
145
|
size: "sm",
|
|
146
|
-
onClick:
|
|
146
|
+
onClick: N,
|
|
147
147
|
children: [/* @__PURE__ */ a(n, { className: "h-4 w-4 mr-1" }), "Add Benefit"]
|
|
148
148
|
})]
|
|
149
149
|
})] }),
|
|
@@ -158,6 +158,6 @@ function h() {
|
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
160
|
//#endregion
|
|
161
|
-
export {
|
|
161
|
+
export { g as HiringCreateJobPagePage };
|
|
162
162
|
|
|
163
163
|
//# sourceMappingURL=HiringCreateJobPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiringCreateJobPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringCreateJobPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n Separator,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Plus, Save, X } from 'lucide-react';\n\nexport function HiringCreateJobPagePage() {\n const [title, setTitle] = useState('');\n const [department, setDepartment] = useState('');\n const [location, setLocation] = useState('');\n const [description, setDescription] = useState('');\n const [salaryMin, setSalaryMin] = useState('');\n const [salaryMax, setSalaryMax] = useState('');\n const [requirements, setRequirements] = useState<string[]>(['']);\n const [benefits, setBenefits] = useState<string[]>(['']);\n\n const addRequirement = () => setRequirements([...requirements, '']);\n const addBenefit = () => setBenefits([...benefits, '']);\n const updateRequirement = (idx: number, value: string) => {\n const updated = [...requirements];\n updated[idx] = value;\n setRequirements(updated);\n };\n const updateBenefit = (idx: number, value: string) => {\n const updated = [...benefits];\n updated[idx] = value;\n setBenefits(updated);\n };\n const removeRequirement = (idx: number) =>\n setRequirements(requirements.filter((_, i) => i !== idx));\n const removeBenefit = (idx: number) => setBenefits(benefits.filter((_, i) => i !== idx));\n\n return (\n <div className=\"space-y-6 p-6 max-w-3xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Create Job Posting</h1>\n <p className=\"text-sm text-text-secondary\">Fill in the details for a new position</p>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Briefcase className=\"h-5 w-5\" />\n Job Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Job Title</label>\n <Input\n placeholder=\"e.g. Senior Frontend Developer\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Department</label>\n <Input\n placeholder=\"e.g. Engineering\"\n value={department}\n onChange={(e) => setDepartment(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Location</label>\n <Input\n placeholder=\"e.g. San Francisco, CA\"\n value={location}\n onChange={(e) => setLocation(e.target.value)}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Salary Min ($)</label>\n <Input\n type=\"number\"\n placeholder=\"e.g. 120000\"\n value={salaryMin}\n onChange={(e) => setSalaryMin(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Salary Max ($)</label>\n <Input\n type=\"number\"\n placeholder=\"e.g. 180000\"\n value={salaryMax}\n onChange={(e) => setSalaryMax(e.target.value)}\n />\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Description</label>\n <Textarea\n placeholder=\"Describe the role, responsibilities, and ideal candidate...\"\n rows={4}\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n <CardDescription>List the key requirements for this role</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {requirements.map((req, idx) => (\n <div key={idx} className=\"flex gap-2\">\n <Input\n placeholder={`Requirement ${idx + 1}`}\n value={req}\n onChange={(e) => updateRequirement(idx, e.target.value)}\n />\n <Button variant=\"outline\" size=\"sm\" onClick={() => removeRequirement(idx)}>\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <Button variant=\"outline\" size=\"sm\" onClick={addRequirement}>\n <Plus className=\"h-4 w-4 mr-1\" />\n Add Requirement\n </Button>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n <CardDescription>What does this position offer?</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {benefits.map((ben, idx) => (\n <div key={idx} className=\"flex gap-2\">\n <Input\n placeholder={`Benefit ${idx + 1}`}\n value={ben}\n onChange={(e) => updateBenefit(idx, e.target.value)}\n />\n <Button variant=\"outline\" size=\"sm\" onClick={() => removeBenefit(idx)}>\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <Button variant=\"outline\" size=\"sm\" onClick={addBenefit}>\n <Plus className=\"h-4 w-4 mr-1\" />\n Add Benefit\n </Button>\n </CardContent>\n </Card>\n\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\">Save as Draft</Button>\n <Button>\n <Save className=\"h-4 w-4 mr-1\" />\n Publish Job\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HiringCreateJobPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringCreateJobPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GradientText,\n Input,\n Separator,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Plus, Save, X } from 'lucide-react';\n\nexport function HiringCreateJobPagePage() {\n const [title, setTitle] = useState('');\n const [department, setDepartment] = useState('');\n const [location, setLocation] = useState('');\n const [description, setDescription] = useState('');\n const [salaryMin, setSalaryMin] = useState('');\n const [salaryMax, setSalaryMax] = useState('');\n const [requirements, setRequirements] = useState<string[]>(['']);\n const [benefits, setBenefits] = useState<string[]>(['']);\n\n const addRequirement = () => setRequirements([...requirements, '']);\n const addBenefit = () => setBenefits([...benefits, '']);\n const updateRequirement = (idx: number, value: string) => {\n const updated = [...requirements];\n updated[idx] = value;\n setRequirements(updated);\n };\n const updateBenefit = (idx: number, value: string) => {\n const updated = [...benefits];\n updated[idx] = value;\n setBenefits(updated);\n };\n const removeRequirement = (idx: number) =>\n setRequirements(requirements.filter((_, i) => i !== idx));\n const removeBenefit = (idx: number) => setBenefits(benefits.filter((_, i) => i !== idx));\n\n return (\n <div className=\"space-y-6 p-6 max-w-3xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Create Job Posting</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Fill in the details for a new position</p>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Briefcase className=\"h-5 w-5\" />\n Job Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Job Title</label>\n <Input\n placeholder=\"e.g. Senior Frontend Developer\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Department</label>\n <Input\n placeholder=\"e.g. Engineering\"\n value={department}\n onChange={(e) => setDepartment(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Location</label>\n <Input\n placeholder=\"e.g. San Francisco, CA\"\n value={location}\n onChange={(e) => setLocation(e.target.value)}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Salary Min ($)</label>\n <Input\n type=\"number\"\n placeholder=\"e.g. 120000\"\n value={salaryMin}\n onChange={(e) => setSalaryMin(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Salary Max ($)</label>\n <Input\n type=\"number\"\n placeholder=\"e.g. 180000\"\n value={salaryMax}\n onChange={(e) => setSalaryMax(e.target.value)}\n />\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Description</label>\n <Textarea\n placeholder=\"Describe the role, responsibilities, and ideal candidate...\"\n rows={4}\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n <CardDescription>List the key requirements for this role</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {requirements.map((req, idx) => (\n <div key={idx} className=\"flex gap-2\">\n <Input\n placeholder={`Requirement ${idx + 1}`}\n value={req}\n onChange={(e) => updateRequirement(idx, e.target.value)}\n />\n <Button variant=\"outline\" size=\"sm\" onClick={() => removeRequirement(idx)}>\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <Button variant=\"outline\" size=\"sm\" onClick={addRequirement}>\n <Plus className=\"h-4 w-4 mr-1\" />\n Add Requirement\n </Button>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n <CardDescription>What does this position offer?</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {benefits.map((ben, idx) => (\n <div key={idx} className=\"flex gap-2\">\n <Input\n placeholder={`Benefit ${idx + 1}`}\n value={ben}\n onChange={(e) => updateBenefit(idx, e.target.value)}\n />\n <Button variant=\"outline\" size=\"sm\" onClick={() => removeBenefit(idx)}>\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <Button variant=\"outline\" size=\"sm\" onClick={addBenefit}>\n <Plus className=\"h-4 w-4 mr-1\" />\n Add Benefit\n </Button>\n </CardContent>\n </Card>\n\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\">Save as Draft</Button>\n <Button>\n <Save className=\"h-4 w-4 mr-1\" />\n Publish Job\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
2
|
import { Calendar as t, Clock as n, Plus as r, Star as i, Video as a } from "lucide-react";
|
|
3
3
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
-
import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, GlassCard as h, GradientText as g } from "@burdenoff/fe-libs/ui";
|
|
5
5
|
//#region src/crewfoundry/pages/HiringInterviewsPagePage.tsx
|
|
6
|
-
function
|
|
7
|
-
let { interviews:
|
|
6
|
+
function _() {
|
|
7
|
+
let { interviews: _ } = e(), v = _.filter((e) => e.status === "scheduled"), y = _.filter((e) => e.status === "completed");
|
|
8
8
|
return /* @__PURE__ */ s("div", {
|
|
9
9
|
className: "space-y-6 p-6",
|
|
10
10
|
children: [
|
|
@@ -12,13 +12,13 @@ function h() {
|
|
|
12
12
|
className: "flex items-center justify-between",
|
|
13
13
|
children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
14
14
|
className: "text-2xl font-semibold",
|
|
15
|
-
children: "Interviews"
|
|
15
|
+
children: /* @__PURE__ */ o(g, { children: "Interviews" })
|
|
16
16
|
}), /* @__PURE__ */ s("p", {
|
|
17
17
|
className: "text-sm text-text-secondary",
|
|
18
18
|
children: [
|
|
19
|
-
|
|
19
|
+
v.length,
|
|
20
20
|
" upcoming · ",
|
|
21
|
-
|
|
21
|
+
y.length,
|
|
22
22
|
" completed"
|
|
23
23
|
]
|
|
24
24
|
})] }), /* @__PURE__ */ s(l, {
|
|
@@ -29,41 +29,53 @@ function h() {
|
|
|
29
29
|
/* @__PURE__ */ s("div", {
|
|
30
30
|
className: "grid gap-4 md:grid-cols-3",
|
|
31
31
|
children: [
|
|
32
|
-
/* @__PURE__ */ s(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
32
|
+
/* @__PURE__ */ s(h, {
|
|
33
|
+
treatment: "metric",
|
|
34
|
+
className: "border-border-seam",
|
|
35
|
+
children: [/* @__PURE__ */ s(p, {
|
|
36
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
37
|
+
children: [/* @__PURE__ */ o(m, {
|
|
38
|
+
className: "text-sm font-medium",
|
|
39
|
+
children: "Scheduled"
|
|
40
|
+
}), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-status-info-text" })]
|
|
41
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
|
|
42
|
+
className: "text-2xl font-bold tabular-nums",
|
|
43
|
+
children: v.length
|
|
44
|
+
}) })]
|
|
45
|
+
}),
|
|
46
|
+
/* @__PURE__ */ s(h, {
|
|
47
|
+
treatment: "metric",
|
|
48
|
+
className: "border-border-seam",
|
|
49
|
+
children: [/* @__PURE__ */ s(p, {
|
|
50
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
51
|
+
children: [/* @__PURE__ */ o(m, {
|
|
52
|
+
className: "text-sm font-medium",
|
|
53
|
+
children: "Completed"
|
|
54
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-status-success-text" })]
|
|
55
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
|
|
56
|
+
className: "text-2xl font-bold tabular-nums",
|
|
57
|
+
children: y.length
|
|
58
|
+
}) })]
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ s(h, {
|
|
61
|
+
treatment: "metric",
|
|
62
|
+
className: "border-border-seam",
|
|
63
|
+
children: [/* @__PURE__ */ s(p, {
|
|
64
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
65
|
+
children: [/* @__PURE__ */ o(m, {
|
|
66
|
+
className: "text-sm font-medium",
|
|
67
|
+
children: "This Week"
|
|
68
|
+
}), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-text-secondary" })]
|
|
69
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
|
|
70
|
+
className: "text-2xl font-bold tabular-nums",
|
|
71
|
+
children: v.length
|
|
72
|
+
}) })]
|
|
73
|
+
})
|
|
62
74
|
]
|
|
63
75
|
}),
|
|
64
76
|
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Upcoming Interviews" }), /* @__PURE__ */ o(f, { children: "Scheduled interviews for the coming days" })] }), /* @__PURE__ */ o(d, {
|
|
65
77
|
className: "space-y-3",
|
|
66
|
-
children:
|
|
78
|
+
children: v.map((e) => /* @__PURE__ */ s("div", {
|
|
67
79
|
className: "flex items-center justify-between rounded border p-4",
|
|
68
80
|
children: [/* @__PURE__ */ s("div", { children: [
|
|
69
81
|
/* @__PURE__ */ o("p", {
|
|
@@ -103,9 +115,9 @@ function h() {
|
|
|
103
115
|
})]
|
|
104
116
|
}, e.id))
|
|
105
117
|
})] }),
|
|
106
|
-
|
|
118
|
+
y.length > 0 && /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Completed Interviews" }), /* @__PURE__ */ o(f, { children: "Recent interview feedback" })] }), /* @__PURE__ */ o(d, {
|
|
107
119
|
className: "space-y-3",
|
|
108
|
-
children:
|
|
120
|
+
children: y.map((e) => /* @__PURE__ */ s("div", {
|
|
109
121
|
className: "flex items-center justify-between rounded border p-4",
|
|
110
122
|
children: [/* @__PURE__ */ s("div", { children: [
|
|
111
123
|
/* @__PURE__ */ o("p", {
|
|
@@ -128,7 +140,7 @@ function h() {
|
|
|
128
140
|
className: "flex items-center gap-3",
|
|
129
141
|
children: [e.rating && /* @__PURE__ */ s("div", {
|
|
130
142
|
className: "flex items-center gap-1",
|
|
131
|
-
children: [/* @__PURE__ */ o(i, { className: "h-4 w-4 text-
|
|
143
|
+
children: [/* @__PURE__ */ o(i, { className: "h-4 w-4 text-status-warning-text" }), /* @__PURE__ */ s("span", {
|
|
132
144
|
className: "text-sm font-medium",
|
|
133
145
|
children: [e.rating, "/5"]
|
|
134
146
|
})]
|
|
@@ -143,6 +155,6 @@ function h() {
|
|
|
143
155
|
});
|
|
144
156
|
}
|
|
145
157
|
//#endregion
|
|
146
|
-
export {
|
|
158
|
+
export { _ as HiringInterviewsPagePage };
|
|
147
159
|
|
|
148
160
|
//# sourceMappingURL=HiringInterviewsPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiringInterviewsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringInterviewsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, Clock, Plus, Star, Video } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringInterviewsPagePage() {\n const { interviews } = useCrewFoundryStore();\n\n const scheduled = interviews.filter((i) => i.status === 'scheduled');\n const completed = interviews.filter((i) => i.status === 'completed');\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Interviews</h1>\n <p className=\"text-sm text-text-secondary\">\n {scheduled.length} upcoming · {completed.length} completed\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Schedule Interview\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <
|
|
1
|
+
{"version":3,"file":"HiringInterviewsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringInterviewsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, Clock, Plus, Star, Video } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringInterviewsPagePage() {\n const { interviews } = useCrewFoundryStore();\n\n const scheduled = interviews.filter((i) => i.status === 'scheduled');\n const completed = interviews.filter((i) => i.status === 'completed');\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Interviews</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {scheduled.length} upcoming · {completed.length} completed\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Schedule Interview\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\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\">Scheduled</CardTitle>\n <Calendar className=\"h-4 w-4 text-status-info-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{scheduled.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\">Completed</CardTitle>\n <Clock className=\"h-4 w-4 text-status-success-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{completed.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\">This Week</CardTitle>\n <Video className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{scheduled.length}</div>\n </CardContent>\n </GlassCard>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Upcoming Interviews</CardTitle>\n <CardDescription>Scheduled interviews for the coming days</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {scheduled.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n <p className=\"text-xs text-text-secondary mt-1\">\n Interviewer: {interview.interviewerName}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{interview.date}</p>\n <p className=\"text-xs text-text-secondary\">{interview.time}</p>\n </div>\n <Badge variant=\"outline\">{interview.type}</Badge>\n <Badge variant=\"secondary\">{interview.status}</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n {completed.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Completed Interviews</CardTitle>\n <CardDescription>Recent interview feedback</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {completed.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n {interview.feedback && (\n <p className=\"text-xs text-text-secondary mt-1 italic\">\n "{interview.feedback}"\n </p>\n )}\n </div>\n <div className=\"flex items-center gap-3\">\n {interview.rating && (\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-4 w-4 text-status-warning-text\" />\n <span className=\"text-sm font-medium\">{interview.rating}/5</span>\n </div>\n )}\n <Badge variant=\"default\">completed</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
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
3
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
4
|
-
import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g, GlassCard as _, GradientText as v } from "@burdenoff/fe-libs/ui";
|
|
5
5
|
//#region src/crewfoundry/pages/HiringJobDetailsPagePage.tsx
|
|
6
|
-
function
|
|
7
|
-
let { jobPostings:
|
|
8
|
-
if (!
|
|
6
|
+
function y() {
|
|
7
|
+
let { jobPostings: y, candidates: b } = e(), x = y[0];
|
|
8
|
+
if (!x) return /* @__PURE__ */ c("div", {
|
|
9
9
|
className: "p-6 text-center text-text-secondary",
|
|
10
10
|
children: "No job posting found."
|
|
11
11
|
});
|
|
12
|
-
let
|
|
12
|
+
let S = b.filter((e) => e.position === x.title);
|
|
13
13
|
return /* @__PURE__ */ l("div", {
|
|
14
14
|
className: "space-y-6 p-6 max-w-4xl",
|
|
15
15
|
children: [
|
|
@@ -19,28 +19,28 @@ function _() {
|
|
|
19
19
|
className: "flex items-center gap-2 mb-1",
|
|
20
20
|
children: [/* @__PURE__ */ c("h1", {
|
|
21
21
|
className: "text-2xl font-semibold",
|
|
22
|
-
children:
|
|
22
|
+
children: /* @__PURE__ */ c(v, { children: x.title })
|
|
23
23
|
}), /* @__PURE__ */ c(u, {
|
|
24
|
-
variant:
|
|
25
|
-
children:
|
|
24
|
+
variant: x.status === "active" ? "default" : "secondary",
|
|
25
|
+
children: x.status
|
|
26
26
|
})]
|
|
27
27
|
}), /* @__PURE__ */ l("div", {
|
|
28
28
|
className: "flex items-center gap-4 text-sm text-text-secondary",
|
|
29
29
|
children: [
|
|
30
30
|
/* @__PURE__ */ l("span", {
|
|
31
31
|
className: "flex items-center gap-1",
|
|
32
|
-
children: [/* @__PURE__ */ c(t, { className: "h-3 w-3" }),
|
|
32
|
+
children: [/* @__PURE__ */ c(t, { className: "h-3 w-3" }), x.department]
|
|
33
33
|
}),
|
|
34
34
|
/* @__PURE__ */ l("span", {
|
|
35
35
|
className: "flex items-center gap-1",
|
|
36
|
-
children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }),
|
|
36
|
+
children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }), x.location]
|
|
37
37
|
}),
|
|
38
38
|
/* @__PURE__ */ l("span", {
|
|
39
39
|
className: "flex items-center gap-1",
|
|
40
40
|
children: [
|
|
41
41
|
/* @__PURE__ */ c(n, { className: "h-3 w-3" }),
|
|
42
42
|
"Posted ",
|
|
43
|
-
|
|
43
|
+
x.postedDate
|
|
44
44
|
]
|
|
45
45
|
})
|
|
46
46
|
]
|
|
@@ -59,20 +59,24 @@ function _() {
|
|
|
59
59
|
/* @__PURE__ */ l("div", {
|
|
60
60
|
className: "grid gap-4 md:grid-cols-4",
|
|
61
61
|
children: [
|
|
62
|
-
/* @__PURE__ */ c(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
62
|
+
/* @__PURE__ */ c(_, {
|
|
63
|
+
treatment: "metric",
|
|
64
|
+
className: "border-border-seam",
|
|
65
|
+
children: /* @__PURE__ */ l(p, {
|
|
66
|
+
className: "p-4 text-center",
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ c(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
69
|
+
/* @__PURE__ */ c("p", {
|
|
70
|
+
className: "text-2xl font-bold tabular-nums",
|
|
71
|
+
children: x.applicants
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ c("p", {
|
|
74
|
+
className: "text-xs text-text-secondary",
|
|
75
|
+
children: "Applicants"
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
76
80
|
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
|
|
77
81
|
className: "p-4 text-center",
|
|
78
82
|
children: [
|
|
@@ -81,9 +85,9 @@ function _() {
|
|
|
81
85
|
className: "text-lg font-bold",
|
|
82
86
|
children: [
|
|
83
87
|
"$",
|
|
84
|
-
(
|
|
88
|
+
(x.salaryMin / 1e3).toFixed(0),
|
|
85
89
|
"K-$",
|
|
86
|
-
(
|
|
90
|
+
(x.salaryMax / 1e3).toFixed(0),
|
|
87
91
|
"K"
|
|
88
92
|
]
|
|
89
93
|
}),
|
|
@@ -99,7 +103,7 @@ function _() {
|
|
|
99
103
|
/* @__PURE__ */ c(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
100
104
|
/* @__PURE__ */ c("p", {
|
|
101
105
|
className: "text-lg font-bold",
|
|
102
|
-
children:
|
|
106
|
+
children: x.deadline
|
|
103
107
|
}),
|
|
104
108
|
/* @__PURE__ */ c("p", {
|
|
105
109
|
className: "text-xs text-text-secondary",
|
|
@@ -113,7 +117,7 @@ function _() {
|
|
|
113
117
|
/* @__PURE__ */ c(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
114
118
|
/* @__PURE__ */ c("p", {
|
|
115
119
|
className: "text-lg font-bold",
|
|
116
|
-
children:
|
|
120
|
+
children: x.experienceLevel
|
|
117
121
|
}),
|
|
118
122
|
/* @__PURE__ */ c("p", {
|
|
119
123
|
className: "text-xs text-text-secondary",
|
|
@@ -125,25 +129,25 @@ function _() {
|
|
|
125
129
|
}),
|
|
126
130
|
/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Description" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("p", {
|
|
127
131
|
className: "text-sm text-text-secondary",
|
|
128
|
-
children:
|
|
132
|
+
children: x.description
|
|
129
133
|
}) })] }),
|
|
130
134
|
/* @__PURE__ */ l("div", {
|
|
131
135
|
className: "grid gap-4 md:grid-cols-2",
|
|
132
136
|
children: [/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Requirements" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
|
|
133
137
|
className: "space-y-2",
|
|
134
|
-
children:
|
|
138
|
+
children: x.requirements.map((e, t) => /* @__PURE__ */ l("li", {
|
|
135
139
|
className: "flex items-start gap-2 text-sm",
|
|
136
|
-
children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-
|
|
140
|
+
children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0" }), e]
|
|
137
141
|
}, t))
|
|
138
142
|
}) })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Benefits" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
|
|
139
143
|
className: "space-y-2",
|
|
140
|
-
children:
|
|
144
|
+
children: x.benefits.map((e, t) => /* @__PURE__ */ l("li", {
|
|
141
145
|
className: "flex items-start gap-2 text-sm",
|
|
142
|
-
children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-
|
|
146
|
+
children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0" }), e]
|
|
143
147
|
}, t))
|
|
144
148
|
}) })] })]
|
|
145
149
|
}),
|
|
146
|
-
|
|
150
|
+
S.length > 0 && /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Applicants for this Role" }), /* @__PURE__ */ l(m, { children: [S.length, " candidates"] })] }), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
|
|
147
151
|
className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
|
|
148
152
|
children: [
|
|
149
153
|
/* @__PURE__ */ c("span", { children: "Name" }),
|
|
@@ -161,7 +165,7 @@ function _() {
|
|
|
161
165
|
children: "Status"
|
|
162
166
|
})
|
|
163
167
|
]
|
|
164
|
-
}),
|
|
168
|
+
}), S.map((e) => /* @__PURE__ */ l("div", {
|
|
165
169
|
className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
|
|
166
170
|
children: [
|
|
167
171
|
/* @__PURE__ */ l("span", {
|
|
@@ -198,6 +202,6 @@ function _() {
|
|
|
198
202
|
});
|
|
199
203
|
}
|
|
200
204
|
//#endregion
|
|
201
|
-
export {
|
|
205
|
+
export { y as HiringJobDetailsPagePage };
|
|
202
206
|
|
|
203
207
|
//# sourceMappingURL=HiringJobDetailsPagePage.js.map
|