@burdenoff/microfe-crewfoundry 2026.704.3 → 2026.704.5
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 +76 -75
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +118 -117
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +115 -114
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +105 -104
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +52 -51
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +94 -93
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +97 -96
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +68 -67
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +96 -95
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +153 -152
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +111 -110
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +77 -76
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +80 -79
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +102 -101
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +126 -125
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +64 -63
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +96 -95
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +129 -127
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +118 -117
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +123 -122
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +77 -76
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +49 -48
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +62 -61
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +72 -71
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +70 -69
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +57 -56
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +58 -57
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +122 -121
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +2 -2
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +70 -69
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +41 -40
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +65 -64
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +75 -74
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +4 -4
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +60 -59
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +53 -52
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +37 -36
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.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 +126 -125
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +62 -61
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +50 -49
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +72 -71
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +40 -39
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +134 -133
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +60 -59
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +177 -146
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/dist/crewfoundry/utils/formatEnumLabel.js +8 -0
- package/dist/crewfoundry/utils/formatEnumLabel.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { useCrewFoundry as e } from "../providers/CrewFoundryProvider.js";
|
|
2
2
|
import { useCrewFoundryStore as t } from "../store/crewfoundryStore.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { formatEnumLabel as n } from "../utils/formatEnumLabel.js";
|
|
4
|
+
import { useMemo as r, useState as i } from "react";
|
|
5
|
+
import { AlertTriangle as a, ArrowUpRight as o, Award as s, Bell as c, Briefcase as l, CheckCircle as u, MapPin as ee, Star as te, Users as d, Zap as f } from "lucide-react";
|
|
6
|
+
import { useNavigate as p } from "react-router-dom";
|
|
7
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
8
|
+
import { Badge as g, Button as _, Card as v, CardContent as y, CardDescription as b, CardHeader as x, CardTitle as S, EmphasisPanel as C, GradientText as w, NextSteps as T, PagePurpose as E, ResponsiveTable as D, Separator as O } from "@burdenoff/fe-libs/ui";
|
|
9
|
+
import { useGlobalUi as ne } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
9
10
|
//#region src/crewfoundry/pages/DashboardEnhancedDashboardPagePage.tsx
|
|
10
11
|
function k() {
|
|
11
|
-
let k =
|
|
12
|
+
let k = p(), { showToast: A } = ne(), { currentUser: j } = e(), { employees: M, jobPostings: N, candidates: P, interviews: F, leaveRequests: I, notifications: L, projects: R, announcements: z, updateLeaveRequest: B, markAllNotificationsRead: V } = t(), [H, U] = i(null), [W, G] = i(!1), K = async () => {
|
|
12
13
|
G(!0);
|
|
13
14
|
try {
|
|
14
15
|
await V(), A("All notifications marked as read", "success");
|
|
@@ -29,28 +30,28 @@ function k() {
|
|
|
29
30
|
} finally {
|
|
30
31
|
U(null);
|
|
31
32
|
}
|
|
32
|
-
}, Y =
|
|
33
|
+
}, Y = r(() => [
|
|
33
34
|
{
|
|
34
35
|
label: `Post New Job (${N.filter((e) => e.status === "active").length} active)`,
|
|
35
|
-
icon:
|
|
36
|
+
icon: l,
|
|
36
37
|
color: "text-status-info-text",
|
|
37
38
|
to: "../../hiring/create-job-page"
|
|
38
39
|
},
|
|
39
40
|
{
|
|
40
41
|
label: `Review Candidates (${P.filter((e) => e.status === "new").length})`,
|
|
41
|
-
icon:
|
|
42
|
+
icon: d,
|
|
42
43
|
color: "text-action-primary-bg",
|
|
43
44
|
to: "../../hiring/candidates-page"
|
|
44
45
|
},
|
|
45
46
|
{
|
|
46
47
|
label: `Approve Leaves (${I.filter((e) => e.status === "pending").length})`,
|
|
47
|
-
icon:
|
|
48
|
+
icon: u,
|
|
48
49
|
color: "text-status-success-text",
|
|
49
50
|
to: "../../hr/leave-management-page"
|
|
50
51
|
},
|
|
51
52
|
{
|
|
52
53
|
label: `Run Payroll (${R.filter((e) => e.status === "active").length} projects)`,
|
|
53
|
-
icon:
|
|
54
|
+
icon: f,
|
|
54
55
|
color: "text-status-warning-text",
|
|
55
56
|
to: "../../hr/payroll-page"
|
|
56
57
|
}
|
|
@@ -59,7 +60,7 @@ function k() {
|
|
|
59
60
|
N,
|
|
60
61
|
I,
|
|
61
62
|
R
|
|
62
|
-
]), X =
|
|
63
|
+
]), X = r(() => {
|
|
63
64
|
let e = P.filter((e) => e.status === "hired").length, t = M.reduce((e, t) => e + t.performanceScore, 0) / Math.max(M.length, 1), n = Math.round(M.filter((e) => e.status === "active").length / Math.max(M.length, 1) * 100);
|
|
64
65
|
return [
|
|
65
66
|
{
|
|
@@ -81,28 +82,28 @@ function k() {
|
|
|
81
82
|
unit: "%"
|
|
82
83
|
}
|
|
83
84
|
];
|
|
84
|
-
}, [P, M]), Z = F.filter((e) => e.status === "scheduled"),
|
|
85
|
-
return /* @__PURE__ */
|
|
85
|
+
}, [P, M]), Z = F.filter((e) => e.status === "scheduled"), re = I.filter((e) => e.status === "pending"), Q = L.filter((e) => !e.read), $ = z.filter((e) => e.isPinned), ie = [...M].sort((e, t) => t.performanceScore - e.performanceScore).slice(0, 5), ae = [...M].sort((e, t) => t.startDate.localeCompare(e.startDate)).slice(0, 5), oe = M.reduce((e, t) => (e[t.location] = (e[t.location] || 0) + 1, e), {});
|
|
86
|
+
return /* @__PURE__ */ h("div", {
|
|
86
87
|
className: "space-y-6 p-6",
|
|
87
88
|
children: [
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
+
/* @__PURE__ */ h("div", {
|
|
89
90
|
className: "flex items-center justify-between",
|
|
90
|
-
children: [/* @__PURE__ */
|
|
91
|
-
/* @__PURE__ */
|
|
91
|
+
children: [/* @__PURE__ */ h("div", { children: [
|
|
92
|
+
/* @__PURE__ */ m("h1", {
|
|
92
93
|
className: "text-2xl font-semibold",
|
|
93
|
-
children: /* @__PURE__ */
|
|
94
|
+
children: /* @__PURE__ */ m(w, { children: "Enhanced Dashboard" })
|
|
94
95
|
}),
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ m("p", {
|
|
96
97
|
className: "text-sm text-text-secondary",
|
|
97
98
|
children: "Complete workforce command center"
|
|
98
99
|
}),
|
|
99
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ m(E, {
|
|
100
101
|
className: "mt-1",
|
|
101
102
|
children: "A richer, customizable command center for your workforce — see live metrics, activity, and trends tailored to how you run your organization."
|
|
102
103
|
})
|
|
103
|
-
] }), /* @__PURE__ */
|
|
104
|
+
] }), /* @__PURE__ */ h("div", {
|
|
104
105
|
className: "flex items-center gap-3",
|
|
105
|
-
children: [/* @__PURE__ */
|
|
106
|
+
children: [/* @__PURE__ */ h(_, {
|
|
106
107
|
variant: "ghost",
|
|
107
108
|
size: "icon",
|
|
108
109
|
className: "relative",
|
|
@@ -110,46 +111,46 @@ function k() {
|
|
|
110
111
|
"aria-label": Q.length > 0 ? `${Q.length} unread notifications, mark all as read` : "No unread notifications",
|
|
111
112
|
title: Q.length > 0 ? "Mark all notifications as read" : "No unread notifications",
|
|
112
113
|
onClick: () => void K(),
|
|
113
|
-
children: [/* @__PURE__ */
|
|
114
|
+
children: [/* @__PURE__ */ m(c, { className: "h-5 w-5 text-text-secondary" }), Q.length > 0 && /* @__PURE__ */ m("span", {
|
|
114
115
|
className: "absolute -top-1 -right-1 h-4 w-4 rounded-full bg-status-error-text text-[10px] text-text-inverse flex items-center justify-center",
|
|
115
116
|
children: Q.length
|
|
116
117
|
})]
|
|
117
|
-
}), /* @__PURE__ */
|
|
118
|
+
}), /* @__PURE__ */ h(_, {
|
|
118
119
|
size: "sm",
|
|
119
|
-
onClick: () => k("
|
|
120
|
-
children: [/* @__PURE__ */
|
|
120
|
+
onClick: () => k("../hr/leave-management-page"),
|
|
121
|
+
children: [/* @__PURE__ */ m(f, { className: "h-4 w-4 mr-1" }), "Quick Actions"]
|
|
121
122
|
})]
|
|
122
123
|
})]
|
|
123
124
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
125
|
+
/* @__PURE__ */ m(T, {
|
|
125
126
|
storageKey: "crewfoundry-enhanced-dashboard",
|
|
126
127
|
steps: [
|
|
127
128
|
{
|
|
128
129
|
id: "hiring",
|
|
129
130
|
label: "Move hiring forward",
|
|
130
131
|
description: "Review open roles and applicants in your pipeline.",
|
|
131
|
-
icon: /* @__PURE__ */
|
|
132
|
-
onClick: () => k("
|
|
132
|
+
icon: /* @__PURE__ */ m(l, { className: "h-4 w-4" }),
|
|
133
|
+
onClick: () => k("../hiring/jobs-page")
|
|
133
134
|
},
|
|
134
135
|
{
|
|
135
136
|
id: "people",
|
|
136
137
|
label: "Check on your people",
|
|
137
138
|
description: "See who is active, on leave, or needs attention.",
|
|
138
|
-
icon: /* @__PURE__ */
|
|
139
|
-
onClick: () => k("
|
|
139
|
+
icon: /* @__PURE__ */ m(d, { className: "h-4 w-4" }),
|
|
140
|
+
onClick: () => k("../hr/employees-page")
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
143
|
id: "analytics",
|
|
143
144
|
label: "Dig into analytics",
|
|
144
145
|
description: "Explore deeper workforce and hiring trends.",
|
|
145
|
-
icon: /* @__PURE__ */
|
|
146
|
-
onClick: () => k("
|
|
146
|
+
icon: /* @__PURE__ */ m(o, { className: "h-4 w-4" }),
|
|
147
|
+
onClick: () => k("../analytics/analytics-page")
|
|
147
148
|
}
|
|
148
149
|
]
|
|
149
150
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
151
|
+
/* @__PURE__ */ m("div", {
|
|
151
152
|
className: "grid gap-3 md:grid-cols-4",
|
|
152
|
-
children: Y.map((e) => /* @__PURE__ */
|
|
153
|
+
children: Y.map((e) => /* @__PURE__ */ m(v, {
|
|
153
154
|
role: "button",
|
|
154
155
|
tabIndex: 0,
|
|
155
156
|
"aria-label": e.label,
|
|
@@ -158,37 +159,37 @@ function k() {
|
|
|
158
159
|
onKeyDown: (t) => {
|
|
159
160
|
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), k(e.to));
|
|
160
161
|
},
|
|
161
|
-
children: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ h(y, {
|
|
162
163
|
className: "flex items-center gap-3 p-4",
|
|
163
164
|
children: [
|
|
164
|
-
/* @__PURE__ */
|
|
165
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ m(e.icon, { className: `h-5 w-5 ${e.color}` }),
|
|
166
|
+
/* @__PURE__ */ m("span", {
|
|
166
167
|
className: "text-sm font-medium",
|
|
167
168
|
children: e.label
|
|
168
169
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ m(o, { className: "h-4 w-4 ml-auto text-text-secondary" })
|
|
170
171
|
]
|
|
171
172
|
})
|
|
172
173
|
}, e.label))
|
|
173
174
|
}),
|
|
174
|
-
$.length > 0 && /* @__PURE__ */
|
|
175
|
+
$.length > 0 && /* @__PURE__ */ m(v, {
|
|
175
176
|
className: "border-status-warning-text/30 bg-status-warning-bg/50",
|
|
176
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ m(y, {
|
|
177
178
|
className: "p-4",
|
|
178
|
-
children: $.map((e) => /* @__PURE__ */
|
|
179
|
+
children: $.map((e) => /* @__PURE__ */ h("div", {
|
|
179
180
|
className: "flex items-start gap-3",
|
|
180
181
|
children: [
|
|
181
|
-
/* @__PURE__ */
|
|
182
|
-
/* @__PURE__ */
|
|
183
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ m(a, { className: "h-4 w-4 text-status-warning-text mt-0.5" }),
|
|
183
|
+
/* @__PURE__ */ h("div", { children: [
|
|
184
|
+
/* @__PURE__ */ m("p", {
|
|
184
185
|
className: "text-sm font-medium",
|
|
185
186
|
children: e.title
|
|
186
187
|
}),
|
|
187
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ h("p", {
|
|
188
189
|
className: "text-xs text-text-secondary mt-1",
|
|
189
190
|
children: [e.content.slice(0, 120), "..."]
|
|
190
191
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ h("p", {
|
|
192
193
|
className: "text-xs text-text-secondary mt-1",
|
|
193
194
|
children: [
|
|
194
195
|
"— ",
|
|
@@ -198,39 +199,39 @@ function k() {
|
|
|
198
199
|
]
|
|
199
200
|
})
|
|
200
201
|
] }),
|
|
201
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ m(g, {
|
|
202
203
|
variant: "outline",
|
|
203
204
|
className: "ml-auto flex-shrink-0",
|
|
204
|
-
children: e.priority
|
|
205
|
+
children: n(e.priority)
|
|
205
206
|
})
|
|
206
207
|
]
|
|
207
208
|
}, e.id))
|
|
208
209
|
})
|
|
209
210
|
}),
|
|
210
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ h("div", {
|
|
211
212
|
className: "grid gap-4 md:grid-cols-3",
|
|
212
213
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ h(C, { children: [
|
|
215
|
+
/* @__PURE__ */ m("div", {
|
|
215
216
|
className: "text-base font-semibold",
|
|
216
217
|
children: "Company Goals"
|
|
217
218
|
}),
|
|
218
|
-
/* @__PURE__ */
|
|
219
|
+
/* @__PURE__ */ m("p", {
|
|
219
220
|
className: "mb-4 text-sm text-text-secondary",
|
|
220
221
|
children: "Q1 2026 targets"
|
|
221
222
|
}),
|
|
222
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ m("div", {
|
|
223
224
|
className: "space-y-4",
|
|
224
225
|
children: X.map((e) => {
|
|
225
226
|
let t = Math.round(e.current / e.target * 100);
|
|
226
|
-
return /* @__PURE__ */
|
|
227
|
+
return /* @__PURE__ */ h("div", {
|
|
227
228
|
className: "space-y-1",
|
|
228
|
-
children: [/* @__PURE__ */
|
|
229
|
+
children: [/* @__PURE__ */ h("div", {
|
|
229
230
|
className: "flex justify-between text-xs",
|
|
230
|
-
children: [/* @__PURE__ */
|
|
231
|
+
children: [/* @__PURE__ */ m("span", {
|
|
231
232
|
className: "text-text-secondary",
|
|
232
233
|
children: e.goal
|
|
233
|
-
}), /* @__PURE__ */
|
|
234
|
+
}), /* @__PURE__ */ h("span", {
|
|
234
235
|
className: "font-medium",
|
|
235
236
|
children: [
|
|
236
237
|
e.current,
|
|
@@ -240,9 +241,9 @@ function k() {
|
|
|
240
241
|
e.unit
|
|
241
242
|
]
|
|
242
243
|
})]
|
|
243
|
-
}), /* @__PURE__ */
|
|
244
|
+
}), /* @__PURE__ */ m("div", {
|
|
244
245
|
className: "h-2 bg-bg-sunken rounded overflow-hidden",
|
|
245
|
-
children: /* @__PURE__ */
|
|
246
|
+
children: /* @__PURE__ */ m("div", {
|
|
246
247
|
className: `h-2 rounded ${t >= 90 ? "bg-status-success-text" : t >= 70 ? "bg-status-warning-text" : "bg-status-error-text"}`,
|
|
247
248
|
style: { width: `${Math.min(t, 100)}%` }
|
|
248
249
|
})
|
|
@@ -251,71 +252,71 @@ function k() {
|
|
|
251
252
|
})
|
|
252
253
|
})
|
|
253
254
|
] }),
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
+
/* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(x, { children: [/* @__PURE__ */ m(S, {
|
|
255
256
|
className: "text-base",
|
|
256
257
|
children: "Upcoming Interviews"
|
|
257
|
-
}), /* @__PURE__ */
|
|
258
|
+
}), /* @__PURE__ */ h(b, { children: [Z.length, " scheduled"] })] }), /* @__PURE__ */ m(y, {
|
|
258
259
|
className: "space-y-3",
|
|
259
|
-
children: Z.map((e) => /* @__PURE__ */
|
|
260
|
+
children: Z.map((e) => /* @__PURE__ */ h("div", {
|
|
260
261
|
className: "flex items-center gap-3 rounded border p-2",
|
|
261
262
|
children: [
|
|
262
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ h("div", {
|
|
263
264
|
className: "flex-1 min-w-0",
|
|
264
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ m("p", {
|
|
265
266
|
className: "text-sm font-medium truncate",
|
|
266
267
|
children: e.candidateName
|
|
267
|
-
}), /* @__PURE__ */
|
|
268
|
+
}), /* @__PURE__ */ m("p", {
|
|
268
269
|
className: "text-xs text-text-secondary",
|
|
269
270
|
children: e.position
|
|
270
271
|
})]
|
|
271
272
|
}),
|
|
272
|
-
/* @__PURE__ */
|
|
273
|
+
/* @__PURE__ */ h("div", {
|
|
273
274
|
className: "text-right flex-shrink-0",
|
|
274
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ m("p", {
|
|
275
276
|
className: "text-xs font-medium",
|
|
276
277
|
children: e.date
|
|
277
|
-
}), /* @__PURE__ */
|
|
278
|
+
}), /* @__PURE__ */ m("p", {
|
|
278
279
|
className: "text-xs text-text-secondary",
|
|
279
280
|
children: e.time
|
|
280
281
|
})]
|
|
281
282
|
}),
|
|
282
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ m(g, {
|
|
283
284
|
variant: "outline",
|
|
284
285
|
className: "text-[10px]",
|
|
285
|
-
children: e.type
|
|
286
|
+
children: n(e.type)
|
|
286
287
|
})
|
|
287
288
|
]
|
|
288
289
|
}, e.id))
|
|
289
290
|
})] }),
|
|
290
|
-
/* @__PURE__ */
|
|
291
|
+
/* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(x, { children: [/* @__PURE__ */ m(S, {
|
|
291
292
|
className: "text-base",
|
|
292
293
|
children: "Pending Actions"
|
|
293
|
-
}), /* @__PURE__ */
|
|
294
|
+
}), /* @__PURE__ */ m(b, { children: "Items requiring your attention" })] }), /* @__PURE__ */ h(y, {
|
|
294
295
|
className: "space-y-3",
|
|
295
296
|
children: [
|
|
296
|
-
|
|
297
|
+
re.map((e) => /* @__PURE__ */ h("div", {
|
|
297
298
|
className: "flex items-center justify-between rounded border p-2",
|
|
298
|
-
children: [/* @__PURE__ */
|
|
299
|
+
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
299
300
|
className: "text-sm font-medium",
|
|
300
301
|
children: e.employeeName
|
|
301
|
-
}), /* @__PURE__ */
|
|
302
|
+
}), /* @__PURE__ */ h("p", {
|
|
302
303
|
className: "text-xs text-text-secondary",
|
|
303
304
|
children: [
|
|
304
|
-
e.type,
|
|
305
|
+
n(e.type),
|
|
305
306
|
" leave · ",
|
|
306
307
|
e.days,
|
|
307
308
|
" days"
|
|
308
309
|
]
|
|
309
|
-
})] }), /* @__PURE__ */
|
|
310
|
+
})] }), /* @__PURE__ */ h("div", {
|
|
310
311
|
className: "flex gap-1",
|
|
311
|
-
children: [/* @__PURE__ */
|
|
312
|
+
children: [/* @__PURE__ */ m(_, {
|
|
312
313
|
size: "sm",
|
|
313
314
|
variant: "outline",
|
|
314
315
|
className: "h-7 text-xs",
|
|
315
316
|
disabled: H === e.id,
|
|
316
317
|
onClick: () => void J(e.id, "rejected"),
|
|
317
318
|
children: "Deny"
|
|
318
|
-
}), /* @__PURE__ */
|
|
319
|
+
}), /* @__PURE__ */ m(_, {
|
|
319
320
|
size: "sm",
|
|
320
321
|
className: "h-7 text-xs",
|
|
321
322
|
disabled: H === e.id,
|
|
@@ -324,8 +325,8 @@ function k() {
|
|
|
324
325
|
})]
|
|
325
326
|
})]
|
|
326
327
|
}, e.id)),
|
|
327
|
-
/* @__PURE__ */
|
|
328
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ m(O, {}),
|
|
329
|
+
/* @__PURE__ */ h("div", {
|
|
329
330
|
className: "text-xs text-text-secondary text-center",
|
|
330
331
|
children: [P.filter((e) => e.status === "new").length, " new applications to review"]
|
|
331
332
|
})
|
|
@@ -333,30 +334,30 @@ function k() {
|
|
|
333
334
|
})] })
|
|
334
335
|
]
|
|
335
336
|
}),
|
|
336
|
-
/* @__PURE__ */
|
|
337
|
+
/* @__PURE__ */ h("div", {
|
|
337
338
|
className: "grid gap-4 md:grid-cols-2",
|
|
338
|
-
children: [/* @__PURE__ */
|
|
339
|
+
children: [/* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(x, { children: /* @__PURE__ */ h(S, {
|
|
339
340
|
className: "text-base flex items-center gap-2",
|
|
340
|
-
children: [/* @__PURE__ */
|
|
341
|
-
}) }), /* @__PURE__ */
|
|
341
|
+
children: [/* @__PURE__ */ m(s, { className: "h-4 w-4 text-status-warning-text" }), "Top Performers"]
|
|
342
|
+
}) }), /* @__PURE__ */ m(y, {
|
|
342
343
|
className: "space-y-3",
|
|
343
|
-
children:
|
|
344
|
+
children: ie.map((e, t) => /* @__PURE__ */ h("div", {
|
|
344
345
|
className: "flex items-center gap-3",
|
|
345
346
|
children: [
|
|
346
|
-
/* @__PURE__ */
|
|
347
|
+
/* @__PURE__ */ h("span", {
|
|
347
348
|
className: "text-sm font-bold text-text-secondary w-5",
|
|
348
349
|
children: ["#", t + 1]
|
|
349
350
|
}),
|
|
350
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ h("div", {
|
|
351
352
|
className: "flex-1",
|
|
352
|
-
children: [/* @__PURE__ */
|
|
353
|
+
children: [/* @__PURE__ */ h("p", {
|
|
353
354
|
className: "text-sm font-medium",
|
|
354
355
|
children: [
|
|
355
356
|
e.firstName,
|
|
356
357
|
" ",
|
|
357
358
|
e.lastName
|
|
358
359
|
]
|
|
359
|
-
}), /* @__PURE__ */
|
|
360
|
+
}), /* @__PURE__ */ h("p", {
|
|
360
361
|
className: "text-xs text-text-secondary",
|
|
361
362
|
children: [
|
|
362
363
|
e.position,
|
|
@@ -365,31 +366,31 @@ function k() {
|
|
|
365
366
|
]
|
|
366
367
|
})]
|
|
367
368
|
}),
|
|
368
|
-
/* @__PURE__ */
|
|
369
|
+
/* @__PURE__ */ h("div", {
|
|
369
370
|
className: "flex items-center gap-1",
|
|
370
|
-
children: [/* @__PURE__ */
|
|
371
|
+
children: [/* @__PURE__ */ m(te, { className: "h-3 w-3 text-status-warning-text" }), /* @__PURE__ */ m("span", {
|
|
371
372
|
className: "text-sm font-medium",
|
|
372
373
|
children: e.performanceScore
|
|
373
374
|
})]
|
|
374
375
|
})
|
|
375
376
|
]
|
|
376
377
|
}, e.id))
|
|
377
|
-
})] }), /* @__PURE__ */
|
|
378
|
+
})] }), /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(x, { children: /* @__PURE__ */ h(S, {
|
|
378
379
|
className: "text-base flex items-center gap-2",
|
|
379
|
-
children: [/* @__PURE__ */
|
|
380
|
-
}) }), /* @__PURE__ */
|
|
380
|
+
children: [/* @__PURE__ */ m(ee, { className: "h-4 w-4" }), "Workforce Locations"]
|
|
381
|
+
}) }), /* @__PURE__ */ m(y, {
|
|
381
382
|
className: "space-y-3",
|
|
382
|
-
children: Object.entries(
|
|
383
|
+
children: Object.entries(oe).sort(([, e], [, t]) => t - e).map(([e, t]) => /* @__PURE__ */ h("div", {
|
|
383
384
|
className: "flex items-center justify-between",
|
|
384
|
-
children: [/* @__PURE__ */
|
|
385
|
+
children: [/* @__PURE__ */ m("span", {
|
|
385
386
|
className: "text-sm",
|
|
386
387
|
children: e
|
|
387
|
-
}), /* @__PURE__ */
|
|
388
|
+
}), /* @__PURE__ */ h("div", {
|
|
388
389
|
className: "flex items-center gap-2",
|
|
389
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ m("span", {
|
|
390
391
|
className: "text-sm font-medium",
|
|
391
392
|
children: t
|
|
392
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ h("span", {
|
|
393
394
|
className: "text-xs text-text-secondary",
|
|
394
395
|
children: [
|
|
395
396
|
"(",
|
|
@@ -401,13 +402,13 @@ function k() {
|
|
|
401
402
|
}, e))
|
|
402
403
|
})] })]
|
|
403
404
|
}),
|
|
404
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(x, { children: [/* @__PURE__ */ m(S, { children: "Recent Hires" }), /* @__PURE__ */ m(b, { children: "Newest team members" })] }), /* @__PURE__ */ m(y, { children: /* @__PURE__ */ m(D, {
|
|
405
406
|
columns: [
|
|
406
407
|
{
|
|
407
408
|
key: "name",
|
|
408
409
|
header: "Name",
|
|
409
410
|
priority: "primary",
|
|
410
|
-
cell: (e) => /* @__PURE__ */
|
|
411
|
+
cell: (e) => /* @__PURE__ */ h("span", {
|
|
411
412
|
className: "font-medium",
|
|
412
413
|
children: [
|
|
413
414
|
e.firstName,
|
|
@@ -420,7 +421,7 @@ function k() {
|
|
|
420
421
|
key: "position",
|
|
421
422
|
header: "Position",
|
|
422
423
|
priority: "secondary",
|
|
423
|
-
cell: (e) => /* @__PURE__ */
|
|
424
|
+
cell: (e) => /* @__PURE__ */ m("span", {
|
|
424
425
|
className: "text-text-secondary",
|
|
425
426
|
children: e.position
|
|
426
427
|
})
|
|
@@ -429,13 +430,13 @@ function k() {
|
|
|
429
430
|
key: "department",
|
|
430
431
|
header: "Department",
|
|
431
432
|
priority: "secondary",
|
|
432
|
-
cell: (e) => /* @__PURE__ */
|
|
433
|
+
cell: (e) => /* @__PURE__ */ m("span", { children: e.department })
|
|
433
434
|
},
|
|
434
435
|
{
|
|
435
436
|
key: "location",
|
|
436
437
|
header: "Location",
|
|
437
438
|
priority: "hidden-on-mobile",
|
|
438
|
-
cell: (e) => /* @__PURE__ */
|
|
439
|
+
cell: (e) => /* @__PURE__ */ m("span", {
|
|
439
440
|
className: "text-text-secondary",
|
|
440
441
|
children: e.location
|
|
441
442
|
})
|
|
@@ -444,20 +445,20 @@ function k() {
|
|
|
444
445
|
key: "startDate",
|
|
445
446
|
header: "Start Date",
|
|
446
447
|
priority: "secondary",
|
|
447
|
-
cell: (e) => /* @__PURE__ */
|
|
448
|
+
cell: (e) => /* @__PURE__ */ m("span", { children: e.startDate })
|
|
448
449
|
},
|
|
449
450
|
{
|
|
450
451
|
key: "type",
|
|
451
452
|
header: "Type",
|
|
452
453
|
priority: "primary",
|
|
453
|
-
cell: (e) => /* @__PURE__ */
|
|
454
|
+
cell: (e) => /* @__PURE__ */ m(g, {
|
|
454
455
|
variant: "outline",
|
|
455
456
|
className: "w-fit text-[10px]",
|
|
456
457
|
children: e.type.replace("_", " ")
|
|
457
458
|
})
|
|
458
459
|
}
|
|
459
460
|
],
|
|
460
|
-
data:
|
|
461
|
+
data: ae,
|
|
461
462
|
rowKey: (e) => e.id
|
|
462
463
|
}) })] })
|
|
463
464
|
]
|