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