@burdenoff/microfe-crewfoundry 2026.703.1 → 2026.704.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 +117 -164
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +99 -82
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +160 -192
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +238 -231
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +196 -166
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +45 -147
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +20 -11
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +45 -152
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +50 -138
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +149 -67
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +50 -201
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +205 -136
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -31
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +118 -104
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +117 -58
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +90 -94
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +210 -191
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +213 -180
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +133 -264
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +279 -212
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +131 -105
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +167 -148
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +3 -3
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +13 -5
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +151 -152
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +38 -21
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +3 -3
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +134 -127
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +163 -132
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +202 -160
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +104 -91
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +29 -147
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +22 -106
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +74 -74
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +101 -97
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +64 -47
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +111 -121
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +131 -110
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +65 -64
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +58 -43
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +66 -82
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +38 -88
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +59 -65
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +209 -323
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +175 -220
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +74 -59
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +96 -80
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +28 -100
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +27 -20
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +73 -73
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +62 -56
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +40 -138
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +126 -93
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +99 -77
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +73 -74
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +122 -122
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +130 -113
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +68 -59
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +73 -62
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +82 -58
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +153 -153
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +63 -48
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +35 -3
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,211 +1,200 @@
|
|
|
1
1
|
import { useCrewFoundry as e } from "../providers/CrewFoundryProvider.js";
|
|
2
2
|
import { useCrewFoundryStore as t } from "../store/crewfoundryStore.js";
|
|
3
3
|
import { useState as n } from "react";
|
|
4
|
-
import { Activity as r, Briefcase as i, Calendar as a, TrendingUp as
|
|
5
|
-
import { useNavigate as
|
|
6
|
-
import { jsx as
|
|
7
|
-
import { AuroraBackground as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import { Activity as r, Briefcase as i, Calendar as a, TrendingUp as ee, Users as o } from "lucide-react";
|
|
5
|
+
import { useNavigate as s } from "react-router-dom";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
|
+
import { AuroraBackground as te, Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g, EmphasisPanel as ne, GlassCard as _, GradientText as v, IllustratedEmptyState as y, NextSteps as b, PagePurpose as x, Pagination as re } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
import { usePagination as ie } from "@burdenoff/fe-libs/shared/hooks";
|
|
9
|
+
import { useGlobalUi as S } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
10
|
+
import { useI18n as C } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
10
11
|
//#region src/crewfoundry/pages/DashboardDashboardPagePage.tsx
|
|
11
|
-
function
|
|
12
|
-
let { t:
|
|
13
|
-
|
|
12
|
+
function w() {
|
|
13
|
+
let { t: w } = C(), T = s(), { showToast: E } = S(), { currentUser: D } = e(), { employees: O, jobPostings: k, interviews: ae, leaveRequests: A, notifications: j, projects: M, updateLeaveRequest: N } = t(), [P, F] = n(null), I = D?.name || [D?.firstName, D?.lastName].filter(Boolean).join(" ") || D?.email || "Manager", L = async (e, t) => {
|
|
14
|
+
F(e);
|
|
14
15
|
try {
|
|
15
|
-
await
|
|
16
|
+
await N(e, {
|
|
16
17
|
status: t,
|
|
17
|
-
approverName:
|
|
18
|
-
}),
|
|
18
|
+
approverName: I
|
|
19
|
+
}), E(t === "approved" ? "Leave approved" : "Leave rejected", "success");
|
|
19
20
|
} catch (e) {
|
|
20
|
-
|
|
21
|
+
E(e instanceof Error ? e.message : "Unable to update leave request", "error");
|
|
21
22
|
} finally {
|
|
22
|
-
|
|
23
|
+
F(null);
|
|
23
24
|
}
|
|
24
|
-
},
|
|
25
|
-
let n =
|
|
25
|
+
}, R = (e, t) => {
|
|
26
|
+
let n = w(e);
|
|
26
27
|
return n === e ? t : n;
|
|
27
|
-
},
|
|
28
|
-
return /* @__PURE__ */
|
|
28
|
+
}, z = O.filter((e) => e.status === "active").length, B = O.filter((e) => e.status === "on_leave").length, V = k.filter((e) => e.status === "active").length, H = k.reduce((e, t) => e + t.applicants, 0), U = A.filter((e) => e.status === "pending").length, W = j.filter((e) => !e.read).length, G = M.filter((e) => e.status === "active").length, K = (O.reduce((e, t) => e + t.performanceScore, 0) / Math.max(O.length, 1)).toFixed(1), q = O.reduce((e, t) => (e[t.department] = (e[t.department] || 0) + 1, e), {}), J = Object.values(q), oe = J.length ? Math.max(...J) : 1, Y = [...ae].filter((e) => e.status === "scheduled").sort((e, t) => `${e.date} ${e.time}`.localeCompare(`${t.date} ${t.time}`)), X = Y.slice(0, 5), Z = [...A].sort((e, t) => e.status === "pending" && t.status !== "pending" ? -1 : t.status === "pending" && e.status !== "pending" ? 1 : t.startDate.localeCompare(e.startDate)), { page: se, pageSize: Q, offset: $, setPage: ce } = ie({ initialPageSize: 6 }), le = Z.slice($, $ + Q);
|
|
29
|
+
return /* @__PURE__ */ l("div", {
|
|
29
30
|
className: "space-y-6 p-6",
|
|
30
31
|
children: [
|
|
31
|
-
/* @__PURE__ */
|
|
32
|
+
/* @__PURE__ */ l("div", {
|
|
32
33
|
className: "relative overflow-hidden rounded-xl border border-border-seam bg-gloss-card p-6",
|
|
33
|
-
children: [/* @__PURE__ */
|
|
34
|
+
children: [/* @__PURE__ */ c(te, { intensity: "subtle" }), /* @__PURE__ */ c("div", {
|
|
34
35
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
35
|
-
children:
|
|
36
|
-
/* @__PURE__ */
|
|
36
|
+
children: /* @__PURE__ */ l("div", { children: [
|
|
37
|
+
/* @__PURE__ */ c("h1", {
|
|
37
38
|
className: "text-2xl font-semibold",
|
|
38
|
-
children: /* @__PURE__ */
|
|
39
|
+
children: /* @__PURE__ */ c(v, { children: R("crewfoundry.dashboard.title", "Workforce Dashboard") })
|
|
39
40
|
}),
|
|
40
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ c("p", {
|
|
41
42
|
className: "text-sm text-text-secondary",
|
|
42
|
-
children:
|
|
43
|
+
children: R("crewfoundry.dashboard.subtitle", "Overview of your organization's workforce metrics")
|
|
43
44
|
}),
|
|
44
|
-
/* @__PURE__ */
|
|
45
|
+
/* @__PURE__ */ c(x, {
|
|
45
46
|
className: "mt-2",
|
|
46
|
-
children:
|
|
47
|
+
children: R("crewfoundry.dashboard.purpose", "Your workforce command center — see headcount, hiring, performance, and projects at a glance, then jump straight to the area that needs your attention.")
|
|
47
48
|
})
|
|
48
|
-
] })
|
|
49
|
-
className: "flex gap-2",
|
|
50
|
-
children: [
|
|
51
|
-
"week",
|
|
52
|
-
"month",
|
|
53
|
-
"quarter"
|
|
54
|
-
].map((e) => /* @__PURE__ */ l(p, {
|
|
55
|
-
variant: L === e ? "default" : "outline",
|
|
56
|
-
size: "sm",
|
|
57
|
-
onClick: () => R(e),
|
|
58
|
-
children: U(`crewfoundry.dashboard.period.${e}`, e.charAt(0).toUpperCase() + e.slice(1))
|
|
59
|
-
}, e))
|
|
60
|
-
})]
|
|
49
|
+
] })
|
|
61
50
|
})]
|
|
62
51
|
}),
|
|
63
|
-
/* @__PURE__ */
|
|
52
|
+
/* @__PURE__ */ c(b, {
|
|
64
53
|
storageKey: "crewfoundry-dashboard",
|
|
65
54
|
steps: [
|
|
66
55
|
{
|
|
67
56
|
id: "employees",
|
|
68
|
-
label:
|
|
69
|
-
description:
|
|
70
|
-
icon: /* @__PURE__ */
|
|
71
|
-
onClick: () =>
|
|
57
|
+
label: R("crewfoundry.dashboard.next.employees", "Review your team"),
|
|
58
|
+
description: R("crewfoundry.dashboard.next.employeesDesc", "Open the employee directory to see who is active and on leave."),
|
|
59
|
+
icon: /* @__PURE__ */ c(o, { className: "h-4 w-4" }),
|
|
60
|
+
onClick: () => T("../../hr/employees-page")
|
|
72
61
|
},
|
|
73
62
|
{
|
|
74
63
|
id: "hiring",
|
|
75
|
-
label:
|
|
76
|
-
description:
|
|
77
|
-
icon: /* @__PURE__ */
|
|
78
|
-
onClick: () =>
|
|
64
|
+
label: R("crewfoundry.dashboard.next.hiring", "Post a new job"),
|
|
65
|
+
description: R("crewfoundry.dashboard.next.hiringDesc", "Create an opening to start collecting applicants."),
|
|
66
|
+
icon: /* @__PURE__ */ c(i, { className: "h-4 w-4" }),
|
|
67
|
+
onClick: () => T("../../hiring/create-job-page")
|
|
79
68
|
},
|
|
80
69
|
{
|
|
81
70
|
id: "projects",
|
|
82
|
-
label:
|
|
83
|
-
description:
|
|
84
|
-
icon: /* @__PURE__ */
|
|
85
|
-
onClick: () =>
|
|
71
|
+
label: R("crewfoundry.dashboard.next.projects", "Check active projects"),
|
|
72
|
+
description: R("crewfoundry.dashboard.next.projectsDesc", "Track progress and budgets across in-flight work."),
|
|
73
|
+
icon: /* @__PURE__ */ c(r, { className: "h-4 w-4" }),
|
|
74
|
+
onClick: () => T("../../projects/projects-page")
|
|
86
75
|
}
|
|
87
76
|
]
|
|
88
77
|
}),
|
|
89
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ l("div", {
|
|
90
79
|
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
91
80
|
children: [
|
|
92
|
-
/* @__PURE__ */
|
|
81
|
+
/* @__PURE__ */ l(_, {
|
|
93
82
|
treatment: "glass",
|
|
94
83
|
glow: !0,
|
|
95
84
|
className: "border-border-seam",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
85
|
+
children: [/* @__PURE__ */ l(h, {
|
|
97
86
|
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
98
|
-
children: [/* @__PURE__ */
|
|
87
|
+
children: [/* @__PURE__ */ c(g, {
|
|
99
88
|
className: "text-sm font-medium",
|
|
100
|
-
children:
|
|
101
|
-
}), /* @__PURE__ */
|
|
102
|
-
}), /* @__PURE__ */
|
|
89
|
+
children: R("crewfoundry.dashboard.stats.totalEmployees", "Total Employees")
|
|
90
|
+
}), /* @__PURE__ */ c(o, { className: "h-4 w-4 text-text-secondary" })]
|
|
91
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
103
92
|
className: "text-2xl font-bold tabular-nums",
|
|
104
|
-
children:
|
|
105
|
-
}), /* @__PURE__ */
|
|
93
|
+
children: O.length
|
|
94
|
+
}), /* @__PURE__ */ l("p", {
|
|
106
95
|
className: "text-xs text-text-secondary",
|
|
107
96
|
children: [
|
|
108
|
-
|
|
97
|
+
z,
|
|
109
98
|
" ",
|
|
110
|
-
|
|
99
|
+
R("crewfoundry.dashboard.stats.active", "active"),
|
|
111
100
|
", ",
|
|
112
|
-
|
|
101
|
+
B,
|
|
113
102
|
" ",
|
|
114
|
-
|
|
103
|
+
R("crewfoundry.dashboard.stats.onLeave", "on leave")
|
|
115
104
|
]
|
|
116
105
|
})] })]
|
|
117
106
|
}),
|
|
118
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ l(_, {
|
|
119
108
|
treatment: "metric",
|
|
120
109
|
className: "border-border-seam",
|
|
121
|
-
children: [/* @__PURE__ */
|
|
110
|
+
children: [/* @__PURE__ */ l(h, {
|
|
122
111
|
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
123
|
-
children: [/* @__PURE__ */
|
|
112
|
+
children: [/* @__PURE__ */ c(g, {
|
|
124
113
|
className: "text-sm font-medium",
|
|
125
|
-
children:
|
|
126
|
-
}), /* @__PURE__ */
|
|
127
|
-
}), /* @__PURE__ */
|
|
114
|
+
children: R("crewfoundry.dashboard.stats.openPositions", "Open Positions")
|
|
115
|
+
}), /* @__PURE__ */ c(i, { className: "h-4 w-4 text-text-secondary" })]
|
|
116
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
128
117
|
className: "text-2xl font-bold tabular-nums",
|
|
129
|
-
children:
|
|
130
|
-
}), /* @__PURE__ */
|
|
118
|
+
children: V
|
|
119
|
+
}), /* @__PURE__ */ l("p", {
|
|
131
120
|
className: "text-xs text-text-secondary",
|
|
132
121
|
children: [
|
|
133
|
-
|
|
122
|
+
H,
|
|
134
123
|
" ",
|
|
135
|
-
|
|
124
|
+
R("crewfoundry.dashboard.stats.totalApplicants", "total applicants")
|
|
136
125
|
]
|
|
137
126
|
})] })]
|
|
138
127
|
}),
|
|
139
|
-
/* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ l(_, {
|
|
140
129
|
treatment: "metric",
|
|
141
130
|
className: "border-border-seam",
|
|
142
|
-
children: [/* @__PURE__ */
|
|
131
|
+
children: [/* @__PURE__ */ l(h, {
|
|
143
132
|
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
144
|
-
children: [/* @__PURE__ */
|
|
133
|
+
children: [/* @__PURE__ */ c(g, {
|
|
145
134
|
className: "text-sm font-medium",
|
|
146
|
-
children:
|
|
147
|
-
}), /* @__PURE__ */
|
|
148
|
-
}), /* @__PURE__ */
|
|
135
|
+
children: R("crewfoundry.dashboard.stats.avgPerformance", "Avg Performance")
|
|
136
|
+
}), /* @__PURE__ */ c(ee, { className: "h-4 w-4 text-text-secondary" })]
|
|
137
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
|
|
149
138
|
className: "text-2xl font-bold tabular-nums",
|
|
150
|
-
children: [
|
|
151
|
-
}), /* @__PURE__ */
|
|
139
|
+
children: [K, "/5"]
|
|
140
|
+
}), /* @__PURE__ */ c("p", {
|
|
152
141
|
className: "text-xs text-text-secondary",
|
|
153
|
-
children:
|
|
142
|
+
children: R("crewfoundry.dashboard.stats.performanceTrend", `Team average across ${O.length} employees`)
|
|
154
143
|
})] })]
|
|
155
144
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ l(_, {
|
|
157
146
|
treatment: "metric",
|
|
158
147
|
className: "border-border-seam",
|
|
159
|
-
children: [/* @__PURE__ */
|
|
148
|
+
children: [/* @__PURE__ */ l(h, {
|
|
160
149
|
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
150
|
+
children: [/* @__PURE__ */ c(g, {
|
|
162
151
|
className: "text-sm font-medium",
|
|
163
|
-
children:
|
|
164
|
-
}), /* @__PURE__ */
|
|
165
|
-
}), /* @__PURE__ */
|
|
152
|
+
children: R("crewfoundry.dashboard.stats.activeProjects", "Active Projects")
|
|
153
|
+
}), /* @__PURE__ */ c(r, { className: "h-4 w-4 text-text-secondary" })]
|
|
154
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
166
155
|
className: "text-2xl font-bold tabular-nums",
|
|
167
|
-
children:
|
|
168
|
-
}), /* @__PURE__ */
|
|
156
|
+
children: G
|
|
157
|
+
}), /* @__PURE__ */ l("p", {
|
|
169
158
|
className: "text-xs text-text-secondary",
|
|
170
159
|
children: [
|
|
171
|
-
|
|
160
|
+
U,
|
|
172
161
|
" ",
|
|
173
|
-
|
|
162
|
+
R("crewfoundry.dashboard.stats.pendingLeaveRequests", "pending leave requests")
|
|
174
163
|
]
|
|
175
164
|
})] })]
|
|
176
165
|
})
|
|
177
166
|
]
|
|
178
167
|
}),
|
|
179
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ l("div", {
|
|
180
169
|
className: "grid gap-4 md:grid-cols-7",
|
|
181
|
-
children: [/* @__PURE__ */
|
|
170
|
+
children: [/* @__PURE__ */ l(ne, {
|
|
182
171
|
className: "col-span-4",
|
|
183
172
|
children: [
|
|
184
|
-
/* @__PURE__ */
|
|
173
|
+
/* @__PURE__ */ c("div", {
|
|
185
174
|
className: "mb-1 text-lg font-semibold",
|
|
186
|
-
children:
|
|
175
|
+
children: R("crewfoundry.dashboard.departmentHeadcount.title", "Department Headcount")
|
|
187
176
|
}),
|
|
188
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ c("p", {
|
|
189
178
|
className: "mb-4 text-sm text-text-secondary",
|
|
190
|
-
children:
|
|
179
|
+
children: R("crewfoundry.dashboard.departmentHeadcount.description", "Employee distribution across departments")
|
|
191
180
|
}),
|
|
192
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ c("div", {
|
|
193
182
|
className: "space-y-3",
|
|
194
|
-
children: Object.entries(
|
|
183
|
+
children: Object.entries(q).sort(([, e], [, t]) => t - e).map(([e, t]) => /* @__PURE__ */ l("div", {
|
|
195
184
|
className: "flex items-center gap-3",
|
|
196
185
|
children: [
|
|
197
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ c("span", {
|
|
198
187
|
className: "w-24 text-sm text-text-secondary truncate",
|
|
199
188
|
children: e
|
|
200
189
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ c("div", {
|
|
202
191
|
className: "flex-1 h-4 bg-bg-sunken rounded overflow-hidden",
|
|
203
|
-
children: /* @__PURE__ */
|
|
192
|
+
children: /* @__PURE__ */ c("div", {
|
|
204
193
|
className: "h-4 bg-action-primary-bg rounded",
|
|
205
|
-
style: { width: `${Math.round(t /
|
|
194
|
+
style: { width: `${Math.round(t / oe * 100)}%` }
|
|
206
195
|
})
|
|
207
196
|
}),
|
|
208
|
-
/* @__PURE__ */
|
|
197
|
+
/* @__PURE__ */ c("span", {
|
|
209
198
|
className: "text-sm font-medium w-8 text-right tabular-nums",
|
|
210
199
|
children: t
|
|
211
200
|
})
|
|
@@ -213,28 +202,28 @@ function D() {
|
|
|
213
202
|
}, e))
|
|
214
203
|
})
|
|
215
204
|
]
|
|
216
|
-
}), /* @__PURE__ */
|
|
205
|
+
}), /* @__PURE__ */ l(f, {
|
|
217
206
|
className: "col-span-3",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
207
|
+
children: [/* @__PURE__ */ l(h, {
|
|
219
208
|
className: "flex flex-row items-center justify-between",
|
|
220
|
-
children: [/* @__PURE__ */
|
|
209
|
+
children: [/* @__PURE__ */ c(g, { children: R("crewfoundry.dashboard.notifications.title", "Recent Notifications") }), /* @__PURE__ */ l(u, {
|
|
221
210
|
variant: "secondary",
|
|
222
211
|
children: [
|
|
223
|
-
|
|
212
|
+
W,
|
|
224
213
|
" ",
|
|
225
|
-
|
|
214
|
+
R("crewfoundry.dashboard.notifications.unread", "unread")
|
|
226
215
|
]
|
|
227
216
|
})]
|
|
228
|
-
}), /* @__PURE__ */
|
|
217
|
+
}), /* @__PURE__ */ c(p, {
|
|
229
218
|
className: "space-y-4",
|
|
230
|
-
children:
|
|
219
|
+
children: j.slice(0, 5).map((e) => /* @__PURE__ */ l("div", {
|
|
231
220
|
className: "flex items-start gap-3",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ c("div", { className: `mt-1 h-2 w-2 rounded-full flex-shrink-0 motion-safe:animate-vc-glow-pulse ${e.type === "success" ? "bg-status-success-text" : e.type === "warning" ? "bg-status-warning-text" : e.type === "error" ? "bg-status-error-text" : "bg-status-info-text"}` }), /* @__PURE__ */ l("div", {
|
|
233
222
|
className: "flex-1 min-w-0",
|
|
234
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ c("p", {
|
|
235
224
|
className: `text-sm ${e.read ? "text-text-secondary" : "font-medium"}`,
|
|
236
225
|
children: e.title
|
|
237
|
-
}), /* @__PURE__ */
|
|
226
|
+
}), /* @__PURE__ */ c("p", {
|
|
238
227
|
className: "text-xs text-text-secondary truncate",
|
|
239
228
|
children: e.message
|
|
240
229
|
})]
|
|
@@ -243,90 +232,120 @@ function D() {
|
|
|
243
232
|
})]
|
|
244
233
|
})]
|
|
245
234
|
}),
|
|
246
|
-
/* @__PURE__ */
|
|
235
|
+
/* @__PURE__ */ l("div", {
|
|
247
236
|
className: "grid gap-4 md:grid-cols-2",
|
|
248
|
-
children: [/* @__PURE__ */
|
|
237
|
+
children: [/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: R("crewfoundry.dashboard.upcomingInterviews.title", "Upcoming Interviews") }), /* @__PURE__ */ c(m, { children: R("crewfoundry.dashboard.upcomingInterviews.description", "Scheduled for this week") })] }), /* @__PURE__ */ l(p, {
|
|
249
238
|
className: "space-y-3",
|
|
250
|
-
children:
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}),
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
})] }), /* @__PURE__ */ u("div", {
|
|
259
|
-
className: "flex items-center gap-2",
|
|
239
|
+
children: [
|
|
240
|
+
X.length === 0 && /* @__PURE__ */ c(y, {
|
|
241
|
+
illustration: "empty-data",
|
|
242
|
+
title: R("crewfoundry.dashboard.upcomingInterviews.emptyTitle", "No interviews scheduled"),
|
|
243
|
+
description: R("crewfoundry.dashboard.upcomingInterviews.emptyDescription", "Scheduled interviews will appear here.")
|
|
244
|
+
}),
|
|
245
|
+
X.map((e) => /* @__PURE__ */ l("div", {
|
|
246
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
260
247
|
children: [/* @__PURE__ */ l("div", {
|
|
261
|
-
className: "w-
|
|
262
|
-
children: /* @__PURE__ */
|
|
263
|
-
className: "
|
|
264
|
-
|
|
265
|
-
})
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
})
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
className: "flex items-center justify-between rounded border p-3",
|
|
280
|
-
children: [/* @__PURE__ */ l("div", {
|
|
281
|
-
className: "flex items-center gap-3",
|
|
282
|
-
children: /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
|
|
283
|
-
className: "text-sm font-medium",
|
|
284
|
-
children: e.employeeName
|
|
285
|
-
}), /* @__PURE__ */ u("div", {
|
|
286
|
-
className: "flex items-center gap-2 text-xs text-text-secondary",
|
|
287
|
-
children: [/* @__PURE__ */ l(a, { className: "h-3 w-3" }), /* @__PURE__ */ u("span", { children: [
|
|
288
|
-
e.startDate,
|
|
289
|
-
" - ",
|
|
290
|
-
e.endDate
|
|
291
|
-
] })]
|
|
292
|
-
})] })
|
|
293
|
-
}), /* @__PURE__ */ u("div", {
|
|
294
|
-
className: "flex items-center gap-2",
|
|
295
|
-
children: [
|
|
296
|
-
e.status === "pending" && /* @__PURE__ */ u("div", {
|
|
297
|
-
className: "flex gap-1",
|
|
298
|
-
children: [/* @__PURE__ */ l(p, {
|
|
299
|
-
size: "sm",
|
|
300
|
-
variant: "outline",
|
|
301
|
-
className: "h-7 text-xs",
|
|
302
|
-
disabled: z === e.id,
|
|
303
|
-
onClick: () => void H(e.id, "rejected"),
|
|
304
|
-
children: U("crewfoundry.dashboard.leaveRequests.reject", "Reject")
|
|
305
|
-
}), /* @__PURE__ */ l(p, {
|
|
306
|
-
size: "sm",
|
|
307
|
-
className: "h-7 text-xs",
|
|
308
|
-
disabled: z === e.id,
|
|
309
|
-
onClick: () => void H(e.id, "approved"),
|
|
310
|
-
children: U("crewfoundry.dashboard.leaveRequests.approve", "Approve")
|
|
248
|
+
className: "min-w-0",
|
|
249
|
+
children: [/* @__PURE__ */ c("p", {
|
|
250
|
+
className: "text-sm font-medium truncate",
|
|
251
|
+
children: e.candidateName
|
|
252
|
+
}), /* @__PURE__ */ c("p", {
|
|
253
|
+
className: "text-xs text-text-secondary truncate",
|
|
254
|
+
children: e.position
|
|
255
|
+
})]
|
|
256
|
+
}), /* @__PURE__ */ l("div", {
|
|
257
|
+
className: "flex items-center gap-2 flex-shrink-0",
|
|
258
|
+
children: [/* @__PURE__ */ l("div", {
|
|
259
|
+
className: "text-right",
|
|
260
|
+
children: [/* @__PURE__ */ c("p", {
|
|
261
|
+
className: "text-xs font-medium",
|
|
262
|
+
children: e.date
|
|
263
|
+
}), /* @__PURE__ */ c("p", {
|
|
264
|
+
className: "text-xs text-text-secondary",
|
|
265
|
+
children: e.time
|
|
311
266
|
})]
|
|
312
|
-
}),
|
|
313
|
-
/* @__PURE__ */ l(f, {
|
|
314
|
-
variant: e.status === "approved" ? "default" : e.status === "pending" ? "secondary" : "destructive",
|
|
315
|
-
children: e.status
|
|
316
|
-
}),
|
|
317
|
-
/* @__PURE__ */ l(f, {
|
|
267
|
+
}), /* @__PURE__ */ c(u, {
|
|
318
268
|
variant: "outline",
|
|
269
|
+
className: "text-[10px]",
|
|
319
270
|
children: e.type
|
|
320
|
-
})
|
|
321
|
-
]
|
|
322
|
-
})
|
|
323
|
-
|
|
271
|
+
})]
|
|
272
|
+
})]
|
|
273
|
+
}, e.id)),
|
|
274
|
+
Y.length > X.length && /* @__PURE__ */ c(d, {
|
|
275
|
+
variant: "ghost",
|
|
276
|
+
size: "sm",
|
|
277
|
+
className: "w-full",
|
|
278
|
+
onClick: () => T("../../hiring/interviews-page"),
|
|
279
|
+
children: R("crewfoundry.dashboard.upcomingInterviews.viewAll", "View all interviews")
|
|
280
|
+
})
|
|
281
|
+
]
|
|
282
|
+
})] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: R("crewfoundry.dashboard.leaveRequests.title", "Recent Leave Requests") }), /* @__PURE__ */ c(m, { children: R("crewfoundry.dashboard.leaveRequests.description", "Pending approval") })] }), /* @__PURE__ */ l(p, {
|
|
283
|
+
className: "space-y-3",
|
|
284
|
+
children: [
|
|
285
|
+
A.length === 0 && /* @__PURE__ */ c(y, {
|
|
286
|
+
illustration: "empty-data",
|
|
287
|
+
title: R("crewfoundry.dashboard.leaveRequests.emptyTitle", "No leave requests"),
|
|
288
|
+
description: R("crewfoundry.dashboard.leaveRequests.emptyDescription", "Pending leave requests will appear here.")
|
|
289
|
+
}),
|
|
290
|
+
le.map((e) => /* @__PURE__ */ l("div", {
|
|
291
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
292
|
+
children: [/* @__PURE__ */ c("div", {
|
|
293
|
+
className: "flex items-center gap-3",
|
|
294
|
+
children: /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
|
|
295
|
+
className: "text-sm font-medium",
|
|
296
|
+
children: e.employeeName
|
|
297
|
+
}), /* @__PURE__ */ l("div", {
|
|
298
|
+
className: "flex items-center gap-2 text-xs text-text-secondary",
|
|
299
|
+
children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }), /* @__PURE__ */ l("span", { children: [
|
|
300
|
+
e.startDate,
|
|
301
|
+
" - ",
|
|
302
|
+
e.endDate
|
|
303
|
+
] })]
|
|
304
|
+
})] })
|
|
305
|
+
}), /* @__PURE__ */ l("div", {
|
|
306
|
+
className: "flex items-center gap-2",
|
|
307
|
+
children: [
|
|
308
|
+
e.status === "pending" && /* @__PURE__ */ l("div", {
|
|
309
|
+
className: "flex gap-1",
|
|
310
|
+
children: [/* @__PURE__ */ c(d, {
|
|
311
|
+
size: "sm",
|
|
312
|
+
variant: "outline",
|
|
313
|
+
className: "h-7 text-xs",
|
|
314
|
+
disabled: P === e.id,
|
|
315
|
+
onClick: () => void L(e.id, "rejected"),
|
|
316
|
+
children: R("crewfoundry.dashboard.leaveRequests.reject", "Reject")
|
|
317
|
+
}), /* @__PURE__ */ c(d, {
|
|
318
|
+
size: "sm",
|
|
319
|
+
className: "h-7 text-xs",
|
|
320
|
+
disabled: P === e.id,
|
|
321
|
+
onClick: () => void L(e.id, "approved"),
|
|
322
|
+
children: R("crewfoundry.dashboard.leaveRequests.approve", "Approve")
|
|
323
|
+
})]
|
|
324
|
+
}),
|
|
325
|
+
/* @__PURE__ */ c(u, {
|
|
326
|
+
variant: e.status === "approved" ? "default" : e.status === "pending" ? "secondary" : "destructive",
|
|
327
|
+
children: e.status
|
|
328
|
+
}),
|
|
329
|
+
/* @__PURE__ */ c(u, {
|
|
330
|
+
variant: "outline",
|
|
331
|
+
children: e.type
|
|
332
|
+
})
|
|
333
|
+
]
|
|
334
|
+
})]
|
|
335
|
+
}, e.id)),
|
|
336
|
+
Z.length > Q && /* @__PURE__ */ c(re, {
|
|
337
|
+
page: se,
|
|
338
|
+
pageSize: Q,
|
|
339
|
+
totalItems: Z.length,
|
|
340
|
+
onPageChange: ce
|
|
341
|
+
})
|
|
342
|
+
]
|
|
324
343
|
})] })]
|
|
325
344
|
})
|
|
326
345
|
]
|
|
327
346
|
});
|
|
328
347
|
}
|
|
329
348
|
//#endregion
|
|
330
|
-
export {
|
|
349
|
+
export { w as DashboardDashboardPagePage };
|
|
331
350
|
|
|
332
351
|
//# sourceMappingURL=DashboardDashboardPagePage.js.map
|