@burdenoff/microfe-crewfoundry 2026.608.1 → 2026.625.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +94 -78
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +112 -96
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +101 -85
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +131 -115
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +116 -100
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +15 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +63 -51
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +16 -16
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +26 -26
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +28 -28
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +10 -10
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +71 -59
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +59 -47
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +77 -61
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +40 -40
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +13 -13
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +102 -86
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +173 -139
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +59 -59
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +113 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +45 -45
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +85 -69
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +23 -23
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +40 -40
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +59 -47
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +52 -48
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +31 -26
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +61 -49
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +83 -67
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +90 -74
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +90 -74
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +83 -67
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +54 -42
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +16 -16
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +39 -35
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +24 -24
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +14 -14
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +81 -65
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +73 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +28 -28
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +12 -12
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +75 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +57 -45
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +71 -59
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +48 -48
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +44 -43
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +58 -46
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +16 -16
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +23 -23
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +9 -9
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +43 -39
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +31 -27
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +59 -47
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +13 -13
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +66 -50
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +18 -18
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +74 -62
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +21 -21
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +47 -43
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +20 -20
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +58 -46
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +38 -34
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +14 -14
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +67 -67
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +16 -16
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -1,15 +1,15 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Briefcase as t, Calendar as n, CheckCircle as r, DollarSign as i, MapPin as a, Share2 as o, Users as s } from "lucide-react";
3
3
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
- import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g, GlassCard as _, GradientText as v } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/HiringJobDetailsPagePage.tsx
6
- function _() {
7
- let { jobPostings: _, candidates: v } = e(), y = _[0];
8
- if (!y) return /* @__PURE__ */ c("div", {
9
- className: "p-6 text-center text-muted-foreground",
6
+ function y() {
7
+ let { jobPostings: y, candidates: b } = e(), x = y[0];
8
+ if (!x) return /* @__PURE__ */ c("div", {
9
+ className: "p-6 text-center text-text-secondary",
10
10
  children: "No job posting found."
11
11
  });
12
- let b = v.filter((e) => e.position === y.title);
12
+ let S = b.filter((e) => e.position === x.title);
13
13
  return /* @__PURE__ */ l("div", {
14
14
  className: "space-y-6 p-6 max-w-4xl",
15
15
  children: [
@@ -19,28 +19,28 @@ function _() {
19
19
  className: "flex items-center gap-2 mb-1",
20
20
  children: [/* @__PURE__ */ c("h1", {
21
21
  className: "text-2xl font-semibold",
22
- children: y.title
22
+ children: /* @__PURE__ */ c(v, { children: x.title })
23
23
  }), /* @__PURE__ */ c(u, {
24
- variant: y.status === "active" ? "default" : "secondary",
25
- children: y.status
24
+ variant: x.status === "active" ? "default" : "secondary",
25
+ children: x.status
26
26
  })]
27
27
  }), /* @__PURE__ */ l("div", {
28
- className: "flex items-center gap-4 text-sm text-muted-foreground",
28
+ className: "flex items-center gap-4 text-sm text-text-secondary",
29
29
  children: [
30
30
  /* @__PURE__ */ l("span", {
31
31
  className: "flex items-center gap-1",
32
- children: [/* @__PURE__ */ c(t, { className: "h-3 w-3" }), y.department]
32
+ children: [/* @__PURE__ */ c(t, { className: "h-3 w-3" }), x.department]
33
33
  }),
34
34
  /* @__PURE__ */ l("span", {
35
35
  className: "flex items-center gap-1",
36
- children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }), y.location]
36
+ children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }), x.location]
37
37
  }),
38
38
  /* @__PURE__ */ l("span", {
39
39
  className: "flex items-center gap-1",
40
40
  children: [
41
41
  /* @__PURE__ */ c(n, { className: "h-3 w-3" }),
42
42
  "Posted ",
43
- y.postedDate
43
+ x.postedDate
44
44
  ]
45
45
  })
46
46
  ]
@@ -59,36 +59,40 @@ function _() {
59
59
  /* @__PURE__ */ l("div", {
60
60
  className: "grid gap-4 md:grid-cols-4",
61
61
  children: [
62
+ /* @__PURE__ */ c(_, {
63
+ treatment: "metric",
64
+ className: "border-border-seam",
65
+ children: /* @__PURE__ */ l(p, {
66
+ className: "p-4 text-center",
67
+ children: [
68
+ /* @__PURE__ */ c(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
69
+ /* @__PURE__ */ c("p", {
70
+ className: "text-2xl font-bold tabular-nums",
71
+ children: x.applicants
72
+ }),
73
+ /* @__PURE__ */ c("p", {
74
+ className: "text-xs text-text-secondary",
75
+ children: "Applicants"
76
+ })
77
+ ]
78
+ })
79
+ }),
62
80
  /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
63
81
  className: "p-4 text-center",
64
82
  children: [
65
- /* @__PURE__ */ c(s, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
66
- /* @__PURE__ */ c("p", {
67
- className: "text-2xl font-bold",
68
- children: y.applicants
69
- }),
70
- /* @__PURE__ */ c("p", {
71
- className: "text-xs text-muted-foreground",
72
- children: "Applicants"
73
- })
74
- ]
75
- }) }),
76
- /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
77
- className: "p-4 text-center",
78
- children: [
79
- /* @__PURE__ */ c(i, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
83
+ /* @__PURE__ */ c(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
80
84
  /* @__PURE__ */ l("p", {
81
85
  className: "text-lg font-bold",
82
86
  children: [
83
87
  "$",
84
- (y.salaryMin / 1e3).toFixed(0),
88
+ (x.salaryMin / 1e3).toFixed(0),
85
89
  "K-$",
86
- (y.salaryMax / 1e3).toFixed(0),
90
+ (x.salaryMax / 1e3).toFixed(0),
87
91
  "K"
88
92
  ]
89
93
  }),
90
94
  /* @__PURE__ */ c("p", {
91
- className: "text-xs text-muted-foreground",
95
+ className: "text-xs text-text-secondary",
92
96
  children: "Salary Range"
93
97
  })
94
98
  ]
@@ -96,13 +100,13 @@ function _() {
96
100
  /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
97
101
  className: "p-4 text-center",
98
102
  children: [
99
- /* @__PURE__ */ c(n, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
103
+ /* @__PURE__ */ c(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
100
104
  /* @__PURE__ */ c("p", {
101
105
  className: "text-lg font-bold",
102
- children: y.deadline
106
+ children: x.deadline
103
107
  }),
104
108
  /* @__PURE__ */ c("p", {
105
- className: "text-xs text-muted-foreground",
109
+ className: "text-xs text-text-secondary",
106
110
  children: "Deadline"
107
111
  })
108
112
  ]
@@ -110,13 +114,13 @@ function _() {
110
114
  /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
111
115
  className: "p-4 text-center",
112
116
  children: [
113
- /* @__PURE__ */ c(r, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
117
+ /* @__PURE__ */ c(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
114
118
  /* @__PURE__ */ c("p", {
115
119
  className: "text-lg font-bold",
116
- children: y.experienceLevel
120
+ children: x.experienceLevel
117
121
  }),
118
122
  /* @__PURE__ */ c("p", {
119
- className: "text-xs text-muted-foreground",
123
+ className: "text-xs text-text-secondary",
120
124
  children: "Level"
121
125
  })
122
126
  ]
@@ -124,27 +128,27 @@ function _() {
124
128
  ]
125
129
  }),
126
130
  /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Description" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("p", {
127
- className: "text-sm text-muted-foreground",
128
- children: y.description
131
+ className: "text-sm text-text-secondary",
132
+ children: x.description
129
133
  }) })] }),
130
134
  /* @__PURE__ */ l("div", {
131
135
  className: "grid gap-4 md:grid-cols-2",
132
136
  children: [/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Requirements" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
133
137
  className: "space-y-2",
134
- children: y.requirements.map((e, t) => /* @__PURE__ */ l("li", {
138
+ children: x.requirements.map((e, t) => /* @__PURE__ */ l("li", {
135
139
  className: "flex items-start gap-2 text-sm",
136
- children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-green-500 mt-0.5 flex-shrink-0" }), e]
140
+ children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0" }), e]
137
141
  }, t))
138
142
  }) })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Benefits" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
139
143
  className: "space-y-2",
140
- children: y.benefits.map((e, t) => /* @__PURE__ */ l("li", {
144
+ children: x.benefits.map((e, t) => /* @__PURE__ */ l("li", {
141
145
  className: "flex items-start gap-2 text-sm",
142
- children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0" }), e]
146
+ children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0" }), e]
143
147
  }, t))
144
148
  }) })] })]
145
149
  }),
146
- b.length > 0 && /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Applicants for this Role" }), /* @__PURE__ */ l(m, { children: [b.length, " candidates"] })] }), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
147
- className: "grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2",
150
+ S.length > 0 && /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Applicants for this Role" }), /* @__PURE__ */ l(m, { children: [S.length, " candidates"] })] }), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
151
+ className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
148
152
  children: [
149
153
  /* @__PURE__ */ c("span", { children: "Name" }),
150
154
  /* @__PURE__ */ c("span", { children: "Source" }),
@@ -161,7 +165,7 @@ function _() {
161
165
  children: "Status"
162
166
  })
163
167
  ]
164
- }), b.map((e) => /* @__PURE__ */ l("div", {
168
+ }), S.map((e) => /* @__PURE__ */ l("div", {
165
169
  className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
166
170
  children: [
167
171
  /* @__PURE__ */ l("span", {
@@ -173,7 +177,7 @@ function _() {
173
177
  ]
174
178
  }),
175
179
  /* @__PURE__ */ c("span", {
176
- className: "text-muted-foreground",
180
+ className: "text-text-secondary",
177
181
  children: e.source
178
182
  }),
179
183
  /* @__PURE__ */ l("span", {
@@ -198,6 +202,6 @@ function _() {
198
202
  });
199
203
  }
200
204
  //#endregion
201
- export { _ as HiringJobDetailsPagePage };
205
+ export { y as HiringJobDetailsPagePage };
202
206
 
203
207
  //# sourceMappingURL=HiringJobDetailsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return <div className=\"p-6 text-center text-muted-foreground\">No job posting found.</div>;\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">{job.title}</h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-2xl font-bold\">{job.applicants}</p>\n <p className=\"text-xs text-muted-foreground\">Applicants</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-muted-foreground\">Salary Range</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{job.deadline}</p>\n <p className=\"text-xs text-muted-foreground\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-muted-foreground\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-muted-foreground\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return <div className=\"p-6 text-center text-text-secondary\">No job posting found.</div>;\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{job.title}</GradientText>\n </h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-2xl font-bold tabular-nums\">{job.applicants}</p>\n <p className=\"text-xs text-text-secondary\">Applicants</p>\n </CardContent>\n </GlassCard>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-text-secondary\">Salary Range</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.deadline}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-text-secondary\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-text-secondary\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -2,14 +2,14 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useState as t } from "react";
3
3
  import { Briefcase as n, MapPin as r, Plus as i, Search as a, Users as o } from "lucide-react";
4
4
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
- import { Badge as l, Button as u, Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h, Input as g } from "@burdenoff/fe-libs/ui";
6
- import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
5
+ import { Badge as l, Button as u, Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h, GradientText as g, IllustratedEmptyState as _, Input as v } from "@burdenoff/fe-libs/ui";
6
+ import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
7
  //#region src/crewfoundry/pages/HiringJobsPagePage.tsx
8
- function v() {
9
- let { t: v } = _(), { jobPostings: y } = e(), [b, x] = t(""), S = (e, t) => {
10
- let n = v(e);
8
+ function b() {
9
+ let { t: b } = y(), { jobPostings: x } = e(), [S, C] = t(""), w = (e, t) => {
10
+ let n = b(e);
11
11
  return n === e ? t : n;
12
- }, C = y.filter((e) => `${e.title} ${e.department} ${e.location}`.toLowerCase().includes(b.toLowerCase())), w = y.filter((e) => e.status === "active").length, T = y.reduce((e, t) => e + t.applicants, 0);
12
+ }, T = x.filter((e) => `${e.title} ${e.department} ${e.location}`.toLowerCase().includes(S.toLowerCase())), E = x.filter((e) => e.status === "active").length, D = x.reduce((e, t) => e + t.applicants, 0);
13
13
  return /* @__PURE__ */ c("div", {
14
14
  className: "space-y-6 p-6",
15
15
  children: [
@@ -17,36 +17,41 @@ function v() {
17
17
  className: "flex items-center justify-between",
18
18
  children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
19
19
  className: "text-2xl font-semibold",
20
- children: S("crewfoundry.hiringJobs.title", "Job Postings")
20
+ children: /* @__PURE__ */ s(g, { children: w("crewfoundry.hiringJobs.title", "Job Postings") })
21
21
  }), /* @__PURE__ */ c("p", {
22
- className: "text-sm text-muted-foreground",
22
+ className: "text-sm text-text-secondary",
23
23
  children: [
24
- w,
24
+ E,
25
25
  " ",
26
- S("crewfoundry.hiringJobs.summary.activePositions", "active positions"),
26
+ w("crewfoundry.hiringJobs.summary.activePositions", "active positions"),
27
27
  " ·",
28
28
  " ",
29
- T,
29
+ D,
30
30
  " ",
31
- S("crewfoundry.hiringJobs.summary.totalApplicants", "total applicants")
31
+ w("crewfoundry.hiringJobs.summary.totalApplicants", "total applicants")
32
32
  ]
33
33
  })] }), /* @__PURE__ */ c(u, {
34
34
  size: "sm",
35
- children: [/* @__PURE__ */ s(i, { className: "h-4 w-4 mr-1" }), S("crewfoundry.hiringJobs.actions.postNewJob", "Post New Job")]
35
+ children: [/* @__PURE__ */ s(i, { className: "h-4 w-4 mr-1" }), w("crewfoundry.hiringJobs.actions.postNewJob", "Post New Job")]
36
36
  })]
37
37
  }),
38
38
  /* @__PURE__ */ c("div", {
39
39
  className: "relative max-w-sm",
40
- children: [/* @__PURE__ */ s(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ s(g, {
41
- placeholder: S("crewfoundry.hiringJobs.searchPlaceholder", "Search positions..."),
40
+ children: [/* @__PURE__ */ s(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ s(v, {
41
+ placeholder: w("crewfoundry.hiringJobs.searchPlaceholder", "Search positions..."),
42
42
  className: "pl-9",
43
- value: b,
44
- onChange: (e) => x(e.target.value)
43
+ value: S,
44
+ onChange: (e) => C(e.target.value)
45
45
  })]
46
46
  }),
47
+ T.length === 0 && /* @__PURE__ */ s(_, {
48
+ illustration: "empty-search",
49
+ title: "No job postings found",
50
+ description: "Try adjusting your search, or create a new job posting."
51
+ }),
47
52
  /* @__PURE__ */ s("div", {
48
53
  className: "grid gap-4 md:grid-cols-2",
49
- children: C.map((e) => /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, { children: [/* @__PURE__ */ c("div", {
54
+ children: T.map((e) => /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, { children: [/* @__PURE__ */ c("div", {
50
55
  className: "flex items-center justify-between",
51
56
  children: [/* @__PURE__ */ s(h, {
52
57
  className: "text-lg",
@@ -59,24 +64,24 @@ function v() {
59
64
  className: "grid grid-cols-2 gap-3 mb-3",
60
65
  children: [
61
66
  /* @__PURE__ */ c("div", {
62
- className: "flex items-center gap-1 text-sm text-muted-foreground",
67
+ className: "flex items-center gap-1 text-sm text-text-secondary",
63
68
  children: [/* @__PURE__ */ s(n, { className: "h-3 w-3" }), e.department]
64
69
  }),
65
70
  /* @__PURE__ */ c("div", {
66
- className: "flex items-center gap-1 text-sm text-muted-foreground",
71
+ className: "flex items-center gap-1 text-sm text-text-secondary",
67
72
  children: [/* @__PURE__ */ s(r, { className: "h-3 w-3" }), e.location]
68
73
  }),
69
74
  /* @__PURE__ */ c("div", {
70
- className: "flex items-center gap-1 text-sm text-muted-foreground",
75
+ className: "flex items-center gap-1 text-sm text-text-secondary",
71
76
  children: [
72
77
  /* @__PURE__ */ s(o, { className: "h-3 w-3" }),
73
78
  e.applicants,
74
79
  " ",
75
- S("crewfoundry.hiringJobs.card.applicants", "applicants")
80
+ w("crewfoundry.hiringJobs.card.applicants", "applicants")
76
81
  ]
77
82
  }),
78
83
  /* @__PURE__ */ c("div", {
79
- className: "text-sm text-muted-foreground",
84
+ className: "text-sm text-text-secondary",
80
85
  children: [
81
86
  "$",
82
87
  (e.salaryMin / 1e3).toFixed(0),
@@ -87,7 +92,7 @@ function v() {
87
92
  })
88
93
  ]
89
94
  }), /* @__PURE__ */ c("div", {
90
- className: "flex items-center justify-between text-xs text-muted-foreground",
95
+ className: "flex items-center justify-between text-xs text-text-secondary",
91
96
  children: [/* @__PURE__ */ c("div", {
92
97
  className: "flex gap-1",
93
98
  children: [/* @__PURE__ */ s(l, {
@@ -100,7 +105,7 @@ function v() {
100
105
  children: e.experienceLevel
101
106
  })]
102
107
  }), /* @__PURE__ */ c("span", { children: [
103
- S("crewfoundry.hiringJobs.card.deadline", "Deadline"),
108
+ w("crewfoundry.hiringJobs.card.deadline", "Deadline"),
104
109
  ": ",
105
110
  e.deadline
106
111
  ] })]
@@ -110,6 +115,6 @@ function v() {
110
115
  });
111
116
  }
112
117
  //#endregion
113
- export { v as HiringJobsPagePage };
118
+ export { b as HiringJobsPagePage };
114
119
 
115
120
  //# sourceMappingURL=HiringJobsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HiringJobsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobsPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, MapPin, Plus, Search, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobsPagePage() {\n const { t: translate } = useI18n();\n const { jobPostings } = useCrewFoundryStore();\n const [search, setSearch] = useState('');\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n const filtered = jobPostings.filter((j) =>\n `${j.title} ${j.department} ${j.location}`.toLowerCase().includes(search.toLowerCase())\n );\n const activeJobs = jobPostings.filter((j) => j.status === 'active').length;\n const totalApplicants = jobPostings.reduce((s, j) => s + j.applicants, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n {t('crewfoundry.hiringJobs.title', 'Job Postings')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n {activeJobs} {t('crewfoundry.hiringJobs.summary.activePositions', 'active positions')} ·{' '}\n {totalApplicants}{' '}\n {t('crewfoundry.hiringJobs.summary.totalApplicants', 'total applicants')}\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n {t('crewfoundry.hiringJobs.actions.postNewJob', 'Post New Job')}\n </Button>\n </div>\n\n <div className=\"relative max-w-sm\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder={t('crewfoundry.hiringJobs.searchPlaceholder', 'Search positions...')}\n className=\"pl-9\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {filtered.map((job) => (\n <Card key={job.id}>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-lg\">{job.title}</CardTitle>\n <Badge\n variant={\n job.status === 'active'\n ? 'default'\n : job.status === 'paused'\n ? 'secondary'\n : 'outline'\n }\n >\n {job.status}\n </Badge>\n </div>\n <CardDescription>{job.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 gap-3 mb-3\">\n <div className=\"flex items-center gap-1 text-sm text-muted-foreground\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </div>\n <div className=\"flex items-center gap-1 text-sm text-muted-foreground\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </div>\n <div className=\"flex items-center gap-1 text-sm text-muted-foreground\">\n <Users className=\"h-3 w-3\" />\n {job.applicants} {t('crewfoundry.hiringJobs.card.applicants', 'applicants')}\n </div>\n <div className=\"text-sm text-muted-foreground\">\n ${(job.salaryMin / 1000).toFixed(0)}K — ${(job.salaryMax / 1000).toFixed(0)}K\n </div>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <div className=\"flex gap-1\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {job.type.replace('_', ' ')}\n </Badge>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {job.experienceLevel}\n </Badge>\n </div>\n <span>\n {t('crewfoundry.hiringJobs.card.deadline', 'Deadline')}: {job.deadline}\n </span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HiringJobsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobsPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GradientText,\n IllustratedEmptyState,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, MapPin, Plus, Search, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobsPagePage() {\n const { t: translate } = useI18n();\n const { jobPostings } = useCrewFoundryStore();\n const [search, setSearch] = useState('');\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n const filtered = jobPostings.filter((j) =>\n `${j.title} ${j.department} ${j.location}`.toLowerCase().includes(search.toLowerCase())\n );\n const activeJobs = jobPostings.filter((j) => j.status === 'active').length;\n const totalApplicants = jobPostings.reduce((s, j) => s + j.applicants, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{t('crewfoundry.hiringJobs.title', 'Job Postings')}</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {activeJobs} {t('crewfoundry.hiringJobs.summary.activePositions', 'active positions')} ·{' '}\n {totalApplicants}{' '}\n {t('crewfoundry.hiringJobs.summary.totalApplicants', 'total applicants')}\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n {t('crewfoundry.hiringJobs.actions.postNewJob', 'Post New Job')}\n </Button>\n </div>\n\n <div className=\"relative max-w-sm\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary\" />\n <Input\n placeholder={t('crewfoundry.hiringJobs.searchPlaceholder', 'Search positions...')}\n className=\"pl-9\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n\n {filtered.length === 0 && (\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"No job postings found\"\n description=\"Try adjusting your search, or create a new job posting.\"\n />\n )}\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {filtered.map((job) => (\n <Card key={job.id}>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-lg\">{job.title}</CardTitle>\n <Badge\n variant={\n job.status === 'active'\n ? 'default'\n : job.status === 'paused'\n ? 'secondary'\n : 'outline'\n }\n >\n {job.status}\n </Badge>\n </div>\n <CardDescription>{job.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 gap-3 mb-3\">\n <div className=\"flex items-center gap-1 text-sm text-text-secondary\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </div>\n <div className=\"flex items-center gap-1 text-sm text-text-secondary\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </div>\n <div className=\"flex items-center gap-1 text-sm text-text-secondary\">\n <Users className=\"h-3 w-3\" />\n {job.applicants} {t('crewfoundry.hiringJobs.card.applicants', 'applicants')}\n </div>\n <div className=\"text-sm text-text-secondary\">\n ${(job.salaryMin / 1000).toFixed(0)}K — ${(job.salaryMax / 1000).toFixed(0)}K\n </div>\n </div>\n <div className=\"flex items-center justify-between text-xs text-text-secondary\">\n <div className=\"flex gap-1\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {job.type.replace('_', ' ')}\n </Badge>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {job.experienceLevel}\n </Badge>\n </div>\n <span>\n {t('crewfoundry.hiringJobs.card.deadline', 'Deadline')}: {job.deadline}\n </span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,IAAqB;CACnC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,EAAE,mBAAgB,GAAqB,EACvC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,KAAK,GAAa,MAAqB;EAC3C,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAG9B,IAAW,EAAY,QAAQ,MACnC,GAAG,EAAE,MAAM,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CACxF,EACK,IAAa,EAAY,QAAQ,MAAM,EAAE,WAAW,SAAS,CAAC,QAC9D,IAAkB,EAAY,QAAQ,GAAG,MAAM,IAAI,EAAE,YAAY,EAAE;AAEzE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD,EAAA,UAAe,EAAE,gCAAgC,eAAe,EAAgB,CAAA;KAC7E,CAAA,EACL,kBAAC,KAAD;KAAG,WAAU;eAAb;MACG;MAAW;MAAE,EAAE,kDAAkD,mBAAmB;MAAC;MAAG;MACxF;MAAiB;MACjB,EAAE,kDAAkD,mBAAmB;MACtE;OACA,EAAA,CAAA,EACN,kBAAC,GAAD;KAAQ,MAAK;eAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAChC,EAAE,6CAA6C,eAAe,CACxD;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,wEAAyE,CAAA,EAC3F,kBAAC,GAAD;KACE,aAAa,EAAE,4CAA4C,sBAAsB;KACjF,WAAU;KACV,OAAO;KACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;KAC1C,CAAA,CACE;;GAEL,EAAS,WAAW,KACnB,kBAAC,GAAD;IACE,cAAa;IACb,OAAM;IACN,aAAY;IACZ,CAAA;GAGJ,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAS,KAAK,MACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAW,WAAU;gBAAW,EAAI;MAAkB,CAAA,EACtD,kBAAC,GAAD;MACE,SACE,EAAI,WAAW,WACX,YACA,EAAI,WAAW,WACb,cACA;gBAGP,EAAI;MACC,CAAA,CACJ;QACN,kBAAC,GAAD,EAAA,UAAkB,EAAI,aAA8B,CAAA,CACzC,EAAA,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA,EAChC,EAAI,WACD;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAC7B,EAAI,SACD;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA;QAC5B,EAAI;QAAW;QAAE,EAAE,0CAA0C,aAAa;QACvE;;MACN,kBAAC,OAAD;OAAK,WAAU;iBAAf;QAA6C;SACxC,EAAI,YAAY,KAAM,QAAQ,EAAE;QAAC;SAAO,EAAI,YAAY,KAAM,QAAQ,EAAE;QAAC;QACxE;;MACF;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD;OAAO,SAAQ;OAAU,WAAU;iBAChC,EAAI,KAAK,QAAQ,KAAK,IAAI;OACrB,CAAA,EACR,kBAAC,GAAD;OAAO,SAAQ;OAAU,WAAU;iBAChC,EAAI;OACC,CAAA,CACJ;SACN,kBAAC,QAAD,EAAA,UAAA;MACG,EAAE,wCAAwC,WAAW;MAAC;MAAG,EAAI;MACzD,EAAA,CAAA,CACH;OACM,EAAA,CAAA,CACT,EAAA,EAlDI,EAAI,GAkDR,CACP;IACE,CAAA;GACF"}
@@ -1,10 +1,10 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Building2 as t, DollarSign as n, MapPin as r, Plus as i, Users as a } from "lucide-react";
3
3
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
- import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, Separator as h } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, GlassCard as h, GradientText as g, Separator as _ } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/HrDepartmentsPagePage.tsx
6
- function g() {
7
- let { departments: g, employees: _ } = e(), v = g.reduce((e, t) => e + t.budget, 0), y = g.reduce((e, t) => e + t.employeeCount, 0);
6
+ function v() {
7
+ let { departments: v, employees: y } = e(), b = v.reduce((e, t) => e + t.budget, 0), x = v.reduce((e, t) => e + t.employeeCount, 0);
8
8
  return /* @__PURE__ */ s("div", {
9
9
  className: "space-y-6 p-6",
10
10
  children: [
@@ -12,9 +12,9 @@ function g() {
12
12
  className: "flex items-center justify-between",
13
13
  children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
14
14
  className: "text-2xl font-semibold",
15
- children: "Departments"
15
+ children: /* @__PURE__ */ o(g, { children: "Departments" })
16
16
  }), /* @__PURE__ */ o("p", {
17
- className: "text-sm text-muted-foreground",
17
+ className: "text-sm text-text-secondary",
18
18
  children: "Organizational structure and department management"
19
19
  })] }), /* @__PURE__ */ s(l, {
20
20
  size: "sm",
@@ -24,46 +24,58 @@ function g() {
24
24
  /* @__PURE__ */ s("div", {
25
25
  className: "grid gap-4 md:grid-cols-3",
26
26
  children: [
27
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
28
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
29
- children: [/* @__PURE__ */ o(m, {
30
- className: "text-sm font-medium",
31
- children: "Total Departments"
32
- }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-muted-foreground" })]
33
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
34
- className: "text-2xl font-bold",
35
- children: g.length
36
- }) })] }),
37
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
38
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
39
- children: [/* @__PURE__ */ o(m, {
40
- className: "text-sm font-medium",
41
- children: "Total Headcount"
42
- }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-muted-foreground" })]
43
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
44
- className: "text-2xl font-bold",
45
- children: y
46
- }) })] }),
47
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
48
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
49
- children: [/* @__PURE__ */ o(m, {
50
- className: "text-sm font-medium",
51
- children: "Total Budget"
52
- }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-muted-foreground" })]
53
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
54
- className: "text-2xl font-bold",
55
- children: [
56
- "$",
57
- (v / 1e6).toFixed(1),
58
- "M"
59
- ]
60
- }) })] })
27
+ /* @__PURE__ */ s(h, {
28
+ treatment: "metric",
29
+ className: "border-border-seam",
30
+ children: [/* @__PURE__ */ s(p, {
31
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
32
+ children: [/* @__PURE__ */ o(m, {
33
+ className: "text-sm font-medium",
34
+ children: "Total Departments"
35
+ }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-text-secondary" })]
36
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
37
+ className: "text-2xl font-bold tabular-nums",
38
+ children: v.length
39
+ }) })]
40
+ }),
41
+ /* @__PURE__ */ s(h, {
42
+ treatment: "metric",
43
+ className: "border-border-seam",
44
+ children: [/* @__PURE__ */ s(p, {
45
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
46
+ children: [/* @__PURE__ */ o(m, {
47
+ className: "text-sm font-medium",
48
+ children: "Total Headcount"
49
+ }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-text-secondary" })]
50
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
51
+ className: "text-2xl font-bold tabular-nums",
52
+ children: x
53
+ }) })]
54
+ }),
55
+ /* @__PURE__ */ s(h, {
56
+ treatment: "metric",
57
+ className: "border-border-seam",
58
+ children: [/* @__PURE__ */ s(p, {
59
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
60
+ children: [/* @__PURE__ */ o(m, {
61
+ className: "text-sm font-medium",
62
+ children: "Total Budget"
63
+ }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-text-secondary" })]
64
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
65
+ className: "text-2xl font-bold tabular-nums",
66
+ children: [
67
+ "$",
68
+ (b / 1e6).toFixed(1),
69
+ "M"
70
+ ]
71
+ }) })]
72
+ })
61
73
  ]
62
74
  }),
63
75
  /* @__PURE__ */ o("div", {
64
76
  className: "grid gap-4 md:grid-cols-2",
65
- children: g.map((e) => {
66
- let t = _.filter((t) => t.department === e.name), n = t.length > 0 ? Math.round(t.reduce((e, t) => e + t.salary, 0) / t.length) : 0, i = t.length > 0 ? (t.reduce((e, t) => e + t.performanceScore, 0) / t.length).toFixed(1) : "0";
77
+ children: v.map((e) => {
78
+ let t = y.filter((t) => t.department === e.name), n = t.length > 0 ? Math.round(t.reduce((e, t) => e + t.salary, 0) / t.length) : 0, i = t.length > 0 ? (t.reduce((e, t) => e + t.performanceScore, 0) / t.length).toFixed(1) : "0";
67
79
  return /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ s("div", {
68
80
  className: "flex items-center justify-between",
69
81
  children: [/* @__PURE__ */ o(m, {
@@ -81,21 +93,21 @@ function g() {
81
93
  className: "grid grid-cols-2 gap-4 mb-4",
82
94
  children: [
83
95
  /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
84
- className: "text-xs text-muted-foreground",
96
+ className: "text-xs text-text-secondary",
85
97
  children: "Department Head"
86
98
  }), /* @__PURE__ */ o("p", {
87
99
  className: "text-sm font-medium",
88
100
  children: e.headName
89
101
  })] }),
90
102
  /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
91
- className: "text-xs text-muted-foreground",
103
+ className: "text-xs text-text-secondary",
92
104
  children: "Headcount"
93
105
  }), /* @__PURE__ */ s("p", {
94
106
  className: "text-sm font-medium",
95
107
  children: [e.employeeCount, " employees"]
96
108
  })] }),
97
109
  /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
98
- className: "text-xs text-muted-foreground",
110
+ className: "text-xs text-text-secondary",
99
111
  children: "Annual Budget"
100
112
  }), /* @__PURE__ */ s("p", {
101
113
  className: "text-sm font-medium",
@@ -106,7 +118,7 @@ function g() {
106
118
  ]
107
119
  })] }),
108
120
  /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
109
- className: "text-xs text-muted-foreground",
121
+ className: "text-xs text-text-secondary",
110
122
  children: "Avg Salary"
111
123
  }), /* @__PURE__ */ s("p", {
112
124
  className: "text-sm font-medium",
@@ -114,18 +126,18 @@ function g() {
114
126
  })] })
115
127
  ]
116
128
  }),
117
- /* @__PURE__ */ o(h, { className: "mb-3" }),
129
+ /* @__PURE__ */ o(_, { className: "mb-3" }),
118
130
  /* @__PURE__ */ s("div", {
119
131
  className: "flex items-center justify-between text-xs",
120
132
  children: [/* @__PURE__ */ s("span", {
121
- className: "text-muted-foreground",
133
+ className: "text-text-secondary",
122
134
  children: [
123
135
  "Avg Performance: ",
124
136
  i,
125
137
  "/5"
126
138
  ]
127
139
  }), /* @__PURE__ */ s("span", {
128
- className: "text-muted-foreground",
140
+ className: "text-text-secondary",
129
141
  children: [
130
142
  "Cost/Head: $",
131
143
  Math.round(e.budget / e.employeeCount / 1e3),
@@ -140,6 +152,6 @@ function g() {
140
152
  });
141
153
  }
142
154
  //#endregion
143
- export { g as HrDepartmentsPagePage };
155
+ export { v as HrDepartmentsPagePage };
144
156
 
145
157
  //# sourceMappingURL=HrDepartmentsPagePage.js.map