@burdenoff/microfe-crewfoundry 2026.510.105

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 (302) hide show
  1. package/README.md +12 -0
  2. package/dist/crewfoundry/CrewFoundryRoot.d.ts +5 -0
  3. package/dist/crewfoundry/CrewFoundryRoot.d.ts.map +1 -0
  4. package/dist/crewfoundry/CrewFoundryRoot.js +465 -0
  5. package/dist/crewfoundry/CrewFoundryRoot.js.map +1 -0
  6. package/dist/crewfoundry/CrewFoundryRoutes.d.ts +2 -0
  7. package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -0
  8. package/dist/crewfoundry/CrewFoundryRoutes.js +291 -0
  9. package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -0
  10. package/dist/crewfoundry/index.d.ts +5 -0
  11. package/dist/crewfoundry/index.d.ts.map +1 -0
  12. package/dist/crewfoundry/index.js +3 -0
  13. package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts +2 -0
  14. package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts.map +1 -0
  15. package/dist/crewfoundry/pages/AdminAdminPagePage.js +267 -0
  16. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -0
  17. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
  18. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
  19. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +271 -0
  20. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
  21. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts +2 -0
  22. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts.map +1 -0
  23. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +337 -0
  24. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -0
  25. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts +2 -0
  26. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts.map +1 -0
  27. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +344 -0
  28. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -0
  29. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts +2 -0
  30. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts.map +1 -0
  31. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +341 -0
  32. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -0
  33. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts +2 -0
  34. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts.map +1 -0
  35. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +121 -0
  36. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -0
  37. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts +2 -0
  38. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts.map +1 -0
  39. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +124 -0
  40. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -0
  41. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts +2 -0
  42. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts.map +1 -0
  43. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +93 -0
  44. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -0
  45. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts +2 -0
  46. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts.map +1 -0
  47. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +138 -0
  48. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -0
  49. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts +2 -0
  50. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts.map +1 -0
  51. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +118 -0
  52. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -0
  53. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts +2 -0
  54. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts.map +1 -0
  55. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +62 -0
  56. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -0
  57. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts +2 -0
  58. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts.map +1 -0
  59. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +178 -0
  60. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -0
  61. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts +2 -0
  62. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts.map +1 -0
  63. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +138 -0
  64. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -0
  65. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts +2 -0
  66. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts.map +1 -0
  67. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +144 -0
  68. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -0
  69. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts +2 -0
  70. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts.map +1 -0
  71. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +234 -0
  72. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -0
  73. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts +2 -0
  74. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts.map +1 -0
  75. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +84 -0
  76. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -0
  77. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts +2 -0
  78. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts.map +1 -0
  79. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +287 -0
  80. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -0
  81. package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts +2 -0
  82. package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts.map +1 -0
  83. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +230 -0
  84. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -0
  85. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts +2 -0
  86. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts.map +1 -0
  87. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +365 -0
  88. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -0
  89. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +2 -0
  90. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -0
  91. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +340 -0
  92. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -0
  93. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts +2 -0
  94. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts.map +1 -0
  95. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +299 -0
  96. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -0
  97. package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts +2 -0
  98. package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts.map +1 -0
  99. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +183 -0
  100. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -0
  101. package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts +2 -0
  102. package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -0
  103. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +124 -0
  104. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -0
  105. package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts +2 -0
  106. package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts.map +1 -0
  107. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +163 -0
  108. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -0
  109. package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts +2 -0
  110. package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts.map +1 -0
  111. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +148 -0
  112. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -0
  113. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts +2 -0
  114. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts.map +1 -0
  115. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +203 -0
  116. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -0
  117. package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts +2 -0
  118. package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts.map +1 -0
  119. package/dist/crewfoundry/pages/HiringJobsPagePage.js +115 -0
  120. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -0
  121. package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts +2 -0
  122. package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts.map +1 -0
  123. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +145 -0
  124. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -0
  125. package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts +2 -0
  126. package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts.map +1 -0
  127. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +183 -0
  128. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -0
  129. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts +2 -0
  130. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts.map +1 -0
  131. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +238 -0
  132. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -0
  133. package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts +2 -0
  134. package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts.map +1 -0
  135. package/dist/crewfoundry/pages/HrPayrollPagePage.js +191 -0
  136. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -0
  137. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts +2 -0
  138. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts.map +1 -0
  139. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +158 -0
  140. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -0
  141. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts +2 -0
  142. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts.map +1 -0
  143. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +136 -0
  144. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -0
  145. package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts +2 -0
  146. package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts.map +1 -0
  147. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +103 -0
  148. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -0
  149. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts +2 -0
  150. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts.map +1 -0
  151. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +135 -0
  152. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -0
  153. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts +2 -0
  154. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts.map +1 -0
  155. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +111 -0
  156. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -0
  157. package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts +2 -0
  158. package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts.map +1 -0
  159. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +97 -0
  160. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -0
  161. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts +2 -0
  162. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts.map +1 -0
  163. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +170 -0
  164. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -0
  165. package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts +2 -0
  166. package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts.map +1 -0
  167. package/dist/crewfoundry/pages/LearningLearningPagePage.js +154 -0
  168. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -0
  169. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts +2 -0
  170. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts.map +1 -0
  171. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +140 -0
  172. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -0
  173. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts +2 -0
  174. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts.map +1 -0
  175. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +74 -0
  176. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -0
  177. package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts +2 -0
  178. package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts.map +1 -0
  179. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +166 -0
  180. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -0
  181. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts +2 -0
  182. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts.map +1 -0
  183. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +118 -0
  184. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -0
  185. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts +2 -0
  186. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts.map +1 -0
  187. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +148 -0
  188. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -0
  189. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts +2 -0
  190. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts.map +1 -0
  191. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +443 -0
  192. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -0
  193. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts +2 -0
  194. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts.map +1 -0
  195. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +272 -0
  196. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -0
  197. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts +2 -0
  198. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts.map +1 -0
  199. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +136 -0
  200. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -0
  201. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts +2 -0
  202. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts.map +1 -0
  203. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -0
  204. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -0
  205. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts +2 -0
  206. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts.map +1 -0
  207. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +91 -0
  208. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -0
  209. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts +2 -0
  210. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts.map +1 -0
  211. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +80 -0
  212. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -0
  213. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts +2 -0
  214. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts.map +1 -0
  215. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +155 -0
  216. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -0
  217. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts +2 -0
  218. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts.map +1 -0
  219. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +107 -0
  220. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -0
  221. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts +2 -0
  222. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts.map +1 -0
  223. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +133 -0
  224. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -0
  225. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts +2 -0
  226. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts.map +1 -0
  227. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +79 -0
  228. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -0
  229. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts +2 -0
  230. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts.map +1 -0
  231. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +113 -0
  232. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -0
  233. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts +2 -0
  234. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts.map +1 -0
  235. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +80 -0
  236. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -0
  237. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts +2 -0
  238. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts.map +1 -0
  239. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +172 -0
  240. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -0
  241. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts +2 -0
  242. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts.map +1 -0
  243. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +98 -0
  244. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -0
  245. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts +2 -0
  246. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts.map +1 -0
  247. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +163 -0
  248. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -0
  249. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts +2 -0
  250. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts.map +1 -0
  251. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +115 -0
  252. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -0
  253. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts +2 -0
  254. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts.map +1 -0
  255. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +141 -0
  256. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -0
  257. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts +2 -0
  258. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts.map +1 -0
  259. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +176 -0
  260. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -0
  261. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts +2 -0
  262. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts.map +1 -0
  263. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -0
  264. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -0
  265. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts +2 -0
  266. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts.map +1 -0
  267. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +314 -0
  268. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -0
  269. package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts +2 -0
  270. package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts.map +1 -0
  271. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +77 -0
  272. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -0
  273. package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts +6 -0
  274. package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts.map +1 -0
  275. package/dist/crewfoundry/providers/CrewFoundryProvider.js +27 -0
  276. package/dist/crewfoundry/providers/CrewFoundryProvider.js.map +1 -0
  277. package/dist/crewfoundry/store/crewfoundryStore.d.ts +305 -0
  278. package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -0
  279. package/dist/crewfoundry/store/crewfoundryStore.js +326 -0
  280. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -0
  281. package/dist/crewfoundry/types/index.d.ts +51 -0
  282. package/dist/crewfoundry/types/index.d.ts.map +1 -0
  283. package/dist/crewfoundry/utils/cn.d.ts +4 -0
  284. package/dist/crewfoundry/utils/cn.d.ts.map +1 -0
  285. package/dist/crewfoundry/utils/navigation.d.ts +2 -0
  286. package/dist/crewfoundry/utils/navigation.d.ts.map +1 -0
  287. package/dist/crewfoundry/utils/navigation.js +8 -0
  288. package/dist/crewfoundry/utils/navigation.js.map +1 -0
  289. package/dist/dev/main.d.ts +2 -0
  290. package/dist/dev/main.d.ts.map +1 -0
  291. package/dist/generated/global-operations.d.ts +2 -0
  292. package/dist/generated/global-operations.d.ts.map +1 -0
  293. package/dist/generated/global-types.d.ts +20716 -0
  294. package/dist/generated/global-types.d.ts.map +1 -0
  295. package/dist/generated/wspace-operations.d.ts +2 -0
  296. package/dist/generated/wspace-operations.d.ts.map +1 -0
  297. package/dist/generated/wspace-types.d.ts +53363 -0
  298. package/dist/generated/wspace-types.d.ts.map +1 -0
  299. package/dist/index.d.ts +2 -0
  300. package/dist/index.d.ts.map +1 -0
  301. package/dist/index.js +5 -0
  302. package/package.json +108 -0
@@ -0,0 +1,287 @@
1
+ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
+ import { useMemo as t } from "react";
3
+ import { BarChart3 as n, DollarSign as r, Target as i, TrendingDown as a, TrendingUp as o, Users as s } from "lucide-react";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { Badge as u, Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h } from "@burdenoff/fe-libs/ui";
6
+ //#region src/crewfoundry/pages/DashboardAnalyticsPagePage.tsx
7
+ function g() {
8
+ let { employees: g, departments: _, jobPostings: v, payrollRecords: y, projects: b } = e(), x = t(() => {
9
+ let e = [...g].sort((e, t) => e.startDate.localeCompare(t.startDate));
10
+ return e.slice(-6).map((t, n) => {
11
+ let r = new Date(t.startDate).toLocaleString("en-US", { month: "short" });
12
+ return {
13
+ month: r,
14
+ hires: e.filter((e) => new Date(e.startDate).toLocaleString("en-US", { month: "short" }) === r && e.status === "active").length,
15
+ attrition: e.filter((e) => new Date(e.startDate).toLocaleString("en-US", { month: "short" }) === r && e.status === "terminated").length,
16
+ headcount: Math.max(1, e.length - (5 - n))
17
+ };
18
+ });
19
+ }, [g]), S = Math.max(1, ...x.map((e) => e.headcount)), C = y.reduce((e, t) => e + t.netPay, 0), w = Math.round(g.reduce((e, t) => e + t.salary, 0) / Math.max(g.length, 1)), T = v.filter((e) => e.status === "active").length, E = g.reduce((e, t) => {
20
+ let n = t.type.replace("_", " ");
21
+ return e[n] = (e[n] || 0) + 1, e;
22
+ }, {}), D = t(() => {
23
+ let e = [
24
+ {
25
+ category: "Payroll",
26
+ amount: C
27
+ },
28
+ {
29
+ category: "Recruitment",
30
+ amount: v.reduce((e, t) => e + t.applicants * 120, 0)
31
+ },
32
+ {
33
+ category: "Project Delivery",
34
+ amount: b.reduce((e, t) => e + t.spent, 0)
35
+ },
36
+ {
37
+ category: "Department Ops",
38
+ amount: _.reduce((e, t) => e + t.budget * .03, 0)
39
+ }
40
+ ], t = e.reduce((e, t) => e + t.amount, 0) || 1;
41
+ return e.map((e) => ({
42
+ ...e,
43
+ percentage: Math.round(e.amount / t * 100)
44
+ }));
45
+ }, [
46
+ _,
47
+ v,
48
+ b,
49
+ C
50
+ ]);
51
+ return /* @__PURE__ */ l("div", {
52
+ className: "space-y-6 p-6",
53
+ children: [
54
+ /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
55
+ className: "text-2xl font-semibold",
56
+ children: "Dashboard Analytics"
57
+ }), /* @__PURE__ */ c("p", {
58
+ className: "text-sm text-muted-foreground",
59
+ children: "Workforce analytics and operational insights"
60
+ })] }),
61
+ /* @__PURE__ */ l("div", {
62
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
63
+ children: [
64
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, {
65
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
66
+ children: [/* @__PURE__ */ c(h, {
67
+ className: "text-sm font-medium",
68
+ children: "Total Headcount"
69
+ }), /* @__PURE__ */ c(s, { className: "h-4 w-4 text-muted-foreground" })]
70
+ }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c("div", {
71
+ className: "text-2xl font-bold",
72
+ children: g.length
73
+ }), /* @__PURE__ */ l("div", {
74
+ className: "flex items-center text-xs text-green-600",
75
+ children: [/* @__PURE__ */ c(o, { className: "mr-1 h-3 w-3" }), "Live workforce count"]
76
+ })] })] }),
77
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, {
78
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
79
+ children: [/* @__PURE__ */ c(h, {
80
+ className: "text-sm font-medium",
81
+ children: "Avg Salary"
82
+ }), /* @__PURE__ */ c(r, { className: "h-4 w-4 text-muted-foreground" })]
83
+ }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l("div", {
84
+ className: "text-2xl font-bold",
85
+ children: ["$", w.toLocaleString()]
86
+ }), /* @__PURE__ */ l("div", {
87
+ className: "flex items-center text-xs text-green-600",
88
+ children: [/* @__PURE__ */ c(o, { className: "mr-1 h-3 w-3" }), "Updated from employee records"]
89
+ })] })] }),
90
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, {
91
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
92
+ children: [/* @__PURE__ */ c(h, {
93
+ className: "text-sm font-medium",
94
+ children: "Attrition Rate"
95
+ }), /* @__PURE__ */ c(a, { className: "h-4 w-4 text-muted-foreground" })]
96
+ }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l("div", {
97
+ className: "text-2xl font-bold",
98
+ children: [Math.round(g.filter((e) => e.status === "terminated").length / Math.max(g.length, 1) * 100), "%"]
99
+ }), /* @__PURE__ */ l("div", {
100
+ className: "flex items-center text-xs text-green-600",
101
+ children: [/* @__PURE__ */ c(a, { className: "mr-1 h-3 w-3" }), "Calculated from status mix"]
102
+ })] })] }),
103
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, {
104
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
105
+ children: [/* @__PURE__ */ c(h, {
106
+ className: "text-sm font-medium",
107
+ children: "Open Roles"
108
+ }), /* @__PURE__ */ c(i, { className: "h-4 w-4 text-muted-foreground" })]
109
+ }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c("div", {
110
+ className: "text-2xl font-bold",
111
+ children: T
112
+ }), /* @__PURE__ */ c("p", {
113
+ className: "text-xs text-muted-foreground",
114
+ children: "Based on active job postings"
115
+ })] })] })
116
+ ]
117
+ }),
118
+ /* @__PURE__ */ l("div", {
119
+ className: "grid gap-4 md:grid-cols-7",
120
+ children: [/* @__PURE__ */ l(d, {
121
+ className: "col-span-4",
122
+ children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, { children: "Headcount Trend" }), /* @__PURE__ */ c(p, { children: "Monthly headcount over recent months" })] }), /* @__PURE__ */ c(f, {
123
+ className: "space-y-3",
124
+ children: x.map((e, t) => /* @__PURE__ */ l("div", {
125
+ className: "flex items-center gap-3",
126
+ children: [
127
+ /* @__PURE__ */ c("span", {
128
+ className: "w-10 text-sm text-muted-foreground",
129
+ children: e.month
130
+ }),
131
+ /* @__PURE__ */ c("div", {
132
+ className: "h-4 flex-1 overflow-hidden rounded bg-muted",
133
+ children: /* @__PURE__ */ c("div", {
134
+ className: "h-4 rounded bg-primary",
135
+ style: { width: `${Math.round(e.headcount / S * 100)}%` }
136
+ })
137
+ }),
138
+ /* @__PURE__ */ c("span", {
139
+ className: "w-10 text-right text-sm font-medium",
140
+ children: e.headcount
141
+ }),
142
+ /* @__PURE__ */ l("div", {
143
+ className: "flex w-24 gap-1",
144
+ children: [/* @__PURE__ */ l(u, {
145
+ variant: "default",
146
+ className: "text-[10px]",
147
+ children: ["+", e.hires]
148
+ }), /* @__PURE__ */ l(u, {
149
+ variant: "destructive",
150
+ className: "text-[10px]",
151
+ children: ["-", e.attrition]
152
+ })]
153
+ })
154
+ ]
155
+ }, `${e.month}-${t}`))
156
+ })]
157
+ }), /* @__PURE__ */ l(d, {
158
+ className: "col-span-3",
159
+ children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, { children: "Employee Types" }), /* @__PURE__ */ c(p, { children: "Distribution by employment type" })] }), /* @__PURE__ */ c(f, {
160
+ className: "space-y-4",
161
+ children: Object.entries(E).sort(([, e], [, t]) => t - e).map(([e, t]) => /* @__PURE__ */ l("div", {
162
+ className: "flex items-center justify-between",
163
+ children: [/* @__PURE__ */ l("div", {
164
+ className: "flex items-center gap-2",
165
+ children: [/* @__PURE__ */ c(n, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ c("span", {
166
+ className: "text-sm capitalize",
167
+ children: e
168
+ })]
169
+ }), /* @__PURE__ */ l("div", {
170
+ className: "flex items-center gap-2",
171
+ children: [/* @__PURE__ */ c("span", {
172
+ className: "text-sm font-medium",
173
+ children: t
174
+ }), /* @__PURE__ */ l("span", {
175
+ className: "text-xs text-muted-foreground",
176
+ children: [
177
+ "(",
178
+ Math.round(t / Math.max(g.length, 1) * 100),
179
+ "%)"
180
+ ]
181
+ })]
182
+ })]
183
+ }, e))
184
+ })]
185
+ })]
186
+ }),
187
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, { children: "Workforce Cost Breakdown" }), /* @__PURE__ */ c(p, { children: "Operational costs by category" })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c("div", {
188
+ className: "space-y-3",
189
+ children: D.map((e) => /* @__PURE__ */ l("div", {
190
+ className: "flex items-center gap-4",
191
+ children: [
192
+ /* @__PURE__ */ c("span", {
193
+ className: "w-48 text-sm text-muted-foreground",
194
+ children: e.category
195
+ }),
196
+ /* @__PURE__ */ c("div", {
197
+ className: "h-3 flex-1 overflow-hidden rounded bg-muted",
198
+ children: /* @__PURE__ */ c("div", {
199
+ className: "h-3 rounded bg-primary/80",
200
+ style: { width: `${e.percentage}%` }
201
+ })
202
+ }),
203
+ /* @__PURE__ */ l("span", {
204
+ className: "w-24 text-right text-sm font-medium",
205
+ children: [
206
+ "$",
207
+ (e.amount / 1e3).toFixed(0),
208
+ "K"
209
+ ]
210
+ }),
211
+ /* @__PURE__ */ l("span", {
212
+ className: "w-10 text-right text-xs text-muted-foreground",
213
+ children: [e.percentage, "%"]
214
+ })
215
+ ]
216
+ }, e.category))
217
+ }), /* @__PURE__ */ l("div", {
218
+ className: "mt-4 flex justify-between border-t pt-4 text-sm",
219
+ children: [/* @__PURE__ */ c("span", {
220
+ className: "font-medium",
221
+ children: "Total Monthly Cost"
222
+ }), /* @__PURE__ */ l("span", {
223
+ className: "font-bold",
224
+ children: [
225
+ "$",
226
+ (D.reduce((e, t) => e + t.amount, 0) / 1e3).toFixed(0),
227
+ "K"
228
+ ]
229
+ })]
230
+ })] })] }),
231
+ /* @__PURE__ */ l(d, { children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, { children: "Department Overview" }), /* @__PURE__ */ c(p, { children: "Key metrics by department" })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l("div", {
232
+ className: "mb-2 grid grid-cols-5 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground",
233
+ children: [
234
+ /* @__PURE__ */ c("span", { children: "Department" }),
235
+ /* @__PURE__ */ c("span", { children: "Head" }),
236
+ /* @__PURE__ */ c("span", {
237
+ className: "text-right",
238
+ children: "Employees"
239
+ }),
240
+ /* @__PURE__ */ c("span", {
241
+ className: "text-right",
242
+ children: "Budget"
243
+ }),
244
+ /* @__PURE__ */ c("span", {
245
+ className: "text-right",
246
+ children: "Status"
247
+ })
248
+ ]
249
+ }), _.map((e) => /* @__PURE__ */ l("div", {
250
+ className: "grid grid-cols-5 gap-2 border-b py-2 text-sm last:border-0",
251
+ children: [
252
+ /* @__PURE__ */ c("span", {
253
+ className: "font-medium",
254
+ children: e.name
255
+ }),
256
+ /* @__PURE__ */ c("span", {
257
+ className: "text-muted-foreground",
258
+ children: e.headName
259
+ }),
260
+ /* @__PURE__ */ c("span", {
261
+ className: "text-right",
262
+ children: e.employeeCount
263
+ }),
264
+ /* @__PURE__ */ l("span", {
265
+ className: "text-right",
266
+ children: [
267
+ "$",
268
+ (e.budget / 1e6).toFixed(1),
269
+ "M"
270
+ ]
271
+ }),
272
+ /* @__PURE__ */ c("div", {
273
+ className: "text-right",
274
+ children: /* @__PURE__ */ c(u, {
275
+ variant: e.status === "active" ? "default" : "secondary",
276
+ children: e.status
277
+ })
278
+ })
279
+ ]
280
+ }, e.id))] })] })
281
+ ]
282
+ });
283
+ }
284
+ //#endregion
285
+ export { g as DashboardAnalyticsPagePage };
286
+
287
+ //# sourceMappingURL=DashboardAnalyticsPagePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardAnalyticsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/DashboardAnalyticsPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { BarChart3, DollarSign, Target, TrendingDown, TrendingUp, Users } from 'lucide-react';\nimport {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype MonthlyTrend = {\n month: string;\n hires: number;\n attrition: number;\n headcount: number;\n};\n\ntype CostItem = {\n category: string;\n amount: number;\n percentage: number;\n};\n\nexport function DashboardAnalyticsPagePage() {\n const { employees, departments, jobPostings, payrollRecords, projects } = useCrewFoundryStore();\n\n const monthlyTrends = useMemo<MonthlyTrend[]>(() => {\n const sorted = [...employees].sort((a, b) => a.startDate.localeCompare(b.startDate));\n return sorted.slice(-6).map((employee, index) => {\n const month = new Date(employee.startDate).toLocaleString('en-US', { month: 'short' });\n const hires = sorted.filter(\n (item) =>\n new Date(item.startDate).toLocaleString('en-US', { month: 'short' }) === month &&\n item.status === 'active'\n ).length;\n const attrition = sorted.filter(\n (item) =>\n new Date(item.startDate).toLocaleString('en-US', { month: 'short' }) === month &&\n item.status === 'terminated'\n ).length;\n return {\n month,\n hires,\n attrition,\n headcount: Math.max(1, sorted.length - (5 - index)),\n };\n });\n }, [employees]);\n\n const maxTrend = Math.max(1, ...monthlyTrends.map((trend) => trend.headcount));\n\n const totalPayroll = payrollRecords.reduce((sum, record) => sum + record.netPay, 0);\n const avgSalary = Math.round(\n employees.reduce((sum, employee) => sum + employee.salary, 0) / Math.max(employees.length, 1)\n );\n const activePostings = jobPostings.filter((posting) => posting.status === 'active').length;\n\n const typeDistribution = employees.reduce<Record<string, number>>((acc, employee) => {\n const key = employee.type.replace('_', ' ');\n acc[key] = (acc[key] || 0) + 1;\n return acc;\n }, {});\n\n const costBreakdown = useMemo<CostItem[]>(() => {\n const costs: Array<{ category: string; amount: number }> = [\n { category: 'Payroll', amount: totalPayroll },\n {\n category: 'Recruitment',\n amount: jobPostings.reduce((sum, posting) => sum + posting.applicants * 120, 0),\n },\n {\n category: 'Project Delivery',\n amount: projects.reduce((sum, project) => sum + project.spent, 0),\n },\n {\n category: 'Department Ops',\n amount: departments.reduce((sum, department) => sum + department.budget * 0.03, 0),\n },\n ];\n const total = costs.reduce((sum, item) => sum + item.amount, 0) || 1;\n return costs.map((item) => ({\n ...item,\n percentage: Math.round((item.amount / total) * 100),\n }));\n }, [departments, jobPostings, projects, totalPayroll]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Dashboard Analytics</h1>\n <p className=\"text-sm text-muted-foreground\">\n Workforce analytics and operational insights\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Headcount</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{employees.length}</div>\n <div className=\"flex items-center text-xs text-green-600\">\n <TrendingUp className=\"mr-1 h-3 w-3\" />\n Live workforce count\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Avg Salary</CardTitle>\n <DollarSign className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">${avgSalary.toLocaleString()}</div>\n <div className=\"flex items-center text-xs text-green-600\">\n <TrendingUp className=\"mr-1 h-3 w-3\" />\n Updated from employee records\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Attrition Rate</CardTitle>\n <TrendingDown className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {Math.round(\n (employees.filter((employee) => employee.status === 'terminated').length /\n Math.max(employees.length, 1)) *\n 100\n )}\n %\n </div>\n <div className=\"flex items-center text-xs text-green-600\">\n <TrendingDown className=\"mr-1 h-3 w-3\" />\n Calculated from status mix\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Open Roles</CardTitle>\n <Target className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{activePostings}</div>\n <p className=\"text-xs text-muted-foreground\">Based on active job postings</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-7\">\n <Card className=\"col-span-4\">\n <CardHeader>\n <CardTitle>Headcount Trend</CardTitle>\n <CardDescription>Monthly headcount over recent months</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {monthlyTrends.map((trend, index) => (\n <div key={`${trend.month}-${index}`} className=\"flex items-center gap-3\">\n <span className=\"w-10 text-sm text-muted-foreground\">{trend.month}</span>\n <div className=\"h-4 flex-1 overflow-hidden rounded bg-muted\">\n <div\n className=\"h-4 rounded bg-primary\"\n style={{ width: `${Math.round((trend.headcount / maxTrend) * 100)}%` }}\n />\n </div>\n <span className=\"w-10 text-right text-sm font-medium\">{trend.headcount}</span>\n <div className=\"flex w-24 gap-1\">\n <Badge variant=\"default\" className=\"text-[10px]\">\n +{trend.hires}\n </Badge>\n <Badge variant=\"destructive\" className=\"text-[10px]\">\n -{trend.attrition}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"col-span-3\">\n <CardHeader>\n <CardTitle>Employee Types</CardTitle>\n <CardDescription>Distribution by employment type</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {Object.entries(typeDistribution)\n .sort(([, a], [, b]) => b - a)\n .map(([type, count]) => (\n <div key={type} className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <BarChart3 className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-sm capitalize\">{type}</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{count}</span>\n <span className=\"text-xs text-muted-foreground\">\n ({Math.round((count / Math.max(employees.length, 1)) * 100)}%)\n </span>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Workforce Cost Breakdown</CardTitle>\n <CardDescription>Operational costs by category</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {costBreakdown.map((item) => (\n <div key={item.category} className=\"flex items-center gap-4\">\n <span className=\"w-48 text-sm text-muted-foreground\">{item.category}</span>\n <div className=\"h-3 flex-1 overflow-hidden rounded bg-muted\">\n <div\n className=\"h-3 rounded bg-primary/80\"\n style={{ width: `${item.percentage}%` }}\n />\n </div>\n <span className=\"w-24 text-right text-sm font-medium\">\n ${(item.amount / 1000).toFixed(0)}K\n </span>\n <span className=\"w-10 text-right text-xs text-muted-foreground\">\n {item.percentage}%\n </span>\n </div>\n ))}\n </div>\n <div className=\"mt-4 flex justify-between border-t pt-4 text-sm\">\n <span className=\"font-medium\">Total Monthly Cost</span>\n <span className=\"font-bold\">\n ${(costBreakdown.reduce((sum, item) => sum + item.amount, 0) / 1000).toFixed(0)}K\n </span>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Department Overview</CardTitle>\n <CardDescription>Key metrics by department</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"mb-2 grid grid-cols-5 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground\">\n <span>Department</span>\n <span>Head</span>\n <span className=\"text-right\">Employees</span>\n <span className=\"text-right\">Budget</span>\n <span className=\"text-right\">Status</span>\n </div>\n {departments.map((department) => (\n <div\n key={department.id}\n className=\"grid grid-cols-5 gap-2 border-b py-2 text-sm last:border-0\"\n >\n <span className=\"font-medium\">{department.name}</span>\n <span className=\"text-muted-foreground\">{department.headName}</span>\n <span className=\"text-right\">{department.employeeCount}</span>\n <span className=\"text-right\">${(department.budget / 1000000).toFixed(1)}M</span>\n <div className=\"text-right\">\n <Badge variant={department.status === 'active' ? 'default' : 'secondary'}>\n {department.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function DashboardDashboardPagePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=DashboardDashboardPagePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardDashboardPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/DashboardDashboardPagePage.tsx"],"names":[],"mappings":"AAuBA,wBAAgB,0BAA0B,4CA2QzC"}
@@ -0,0 +1,230 @@
1
+ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
+ import { useState as t } from "react";
3
+ import { Activity as n, Briefcase as r, Calendar as i, TrendingUp as a, Users as o } from "lucide-react";
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 } from "@burdenoff/fe-libs/ui";
6
+ import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ //#region src/crewfoundry/pages/DashboardDashboardPagePage.tsx
8
+ function _() {
9
+ let { t: _ } = g(), { employees: v, jobPostings: y, leaveRequests: b, notifications: x, projects: S } = e(), [C, w] = t("month"), T = (e, t) => {
10
+ let n = _(e);
11
+ return n === e ? t : n;
12
+ }, E = v.filter((e) => e.status === "active").length, D = v.filter((e) => e.status === "on_leave").length, O = y.filter((e) => e.status === "active").length, k = y.reduce((e, t) => e + t.applicants, 0), A = b.filter((e) => e.status === "pending").length, j = x.filter((e) => !e.read).length, M = S.filter((e) => e.status === "active").length, N = (v.reduce((e, t) => e + t.performanceScore, 0) / v.length).toFixed(1), P = v.reduce((e, t) => (e[t.department] = (e[t.department] || 0) + 1, e), {}), F = Math.max(...Object.values(P));
13
+ return /* @__PURE__ */ c("div", {
14
+ className: "space-y-6 p-6",
15
+ children: [
16
+ /* @__PURE__ */ c("div", {
17
+ className: "flex items-center justify-between",
18
+ children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
19
+ className: "text-2xl font-semibold",
20
+ children: T("crewfoundry.dashboard.title", "Workforce Dashboard")
21
+ }), /* @__PURE__ */ s("p", {
22
+ className: "text-sm text-muted-foreground",
23
+ children: T("crewfoundry.dashboard.subtitle", "Overview of your organization's workforce metrics")
24
+ })] }), /* @__PURE__ */ s("div", {
25
+ className: "flex gap-2",
26
+ children: [
27
+ "week",
28
+ "month",
29
+ "quarter"
30
+ ].map((e) => /* @__PURE__ */ s(u, {
31
+ variant: C === e ? "default" : "outline",
32
+ size: "sm",
33
+ onClick: () => w(e),
34
+ children: T(`crewfoundry.dashboard.period.${e}`, e.charAt(0).toUpperCase() + e.slice(1))
35
+ }, e))
36
+ })]
37
+ }),
38
+ /* @__PURE__ */ c("div", {
39
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
40
+ children: [
41
+ /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, {
42
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
43
+ children: [/* @__PURE__ */ s(h, {
44
+ className: "text-sm font-medium",
45
+ children: T("crewfoundry.dashboard.stats.totalEmployees", "Total Employees")
46
+ }), /* @__PURE__ */ s(o, { className: "h-4 w-4 text-muted-foreground" })]
47
+ }), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
48
+ className: "text-2xl font-bold",
49
+ children: v.length
50
+ }), /* @__PURE__ */ c("p", {
51
+ className: "text-xs text-muted-foreground",
52
+ children: [
53
+ E,
54
+ " ",
55
+ T("crewfoundry.dashboard.stats.active", "active"),
56
+ ", ",
57
+ D,
58
+ " ",
59
+ T("crewfoundry.dashboard.stats.onLeave", "on leave")
60
+ ]
61
+ })] })] }),
62
+ /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, {
63
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
64
+ children: [/* @__PURE__ */ s(h, {
65
+ className: "text-sm font-medium",
66
+ children: T("crewfoundry.dashboard.stats.openPositions", "Open Positions")
67
+ }), /* @__PURE__ */ s(r, { className: "h-4 w-4 text-muted-foreground" })]
68
+ }), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
69
+ className: "text-2xl font-bold",
70
+ children: O
71
+ }), /* @__PURE__ */ c("p", {
72
+ className: "text-xs text-muted-foreground",
73
+ children: [
74
+ k,
75
+ " ",
76
+ T("crewfoundry.dashboard.stats.totalApplicants", "total applicants")
77
+ ]
78
+ })] })] }),
79
+ /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, {
80
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
81
+ children: [/* @__PURE__ */ s(h, {
82
+ className: "text-sm font-medium",
83
+ children: T("crewfoundry.dashboard.stats.avgPerformance", "Avg Performance")
84
+ }), /* @__PURE__ */ s(a, { className: "h-4 w-4 text-muted-foreground" })]
85
+ }), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ c("div", {
86
+ className: "text-2xl font-bold",
87
+ children: [N, "/5"]
88
+ }), /* @__PURE__ */ s("p", {
89
+ className: "text-xs text-muted-foreground",
90
+ children: T("crewfoundry.dashboard.stats.performanceTrend", "+0.2 from last quarter")
91
+ })] })] }),
92
+ /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, {
93
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
94
+ children: [/* @__PURE__ */ s(h, {
95
+ className: "text-sm font-medium",
96
+ children: T("crewfoundry.dashboard.stats.activeProjects", "Active Projects")
97
+ }), /* @__PURE__ */ s(n, { className: "h-4 w-4 text-muted-foreground" })]
98
+ }), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
99
+ className: "text-2xl font-bold",
100
+ children: M
101
+ }), /* @__PURE__ */ c("p", {
102
+ className: "text-xs text-muted-foreground",
103
+ children: [
104
+ A,
105
+ " ",
106
+ T("crewfoundry.dashboard.stats.pendingLeaveRequests", "pending leave requests")
107
+ ]
108
+ })] })] })
109
+ ]
110
+ }),
111
+ /* @__PURE__ */ c("div", {
112
+ className: "grid gap-4 md:grid-cols-7",
113
+ children: [/* @__PURE__ */ c(d, {
114
+ className: "col-span-4",
115
+ children: [/* @__PURE__ */ c(m, { children: [/* @__PURE__ */ s(h, { children: T("crewfoundry.dashboard.departmentHeadcount.title", "Department Headcount") }), /* @__PURE__ */ s(p, { children: T("crewfoundry.dashboard.departmentHeadcount.description", "Employee distribution across departments") })] }), /* @__PURE__ */ s(f, {
116
+ className: "space-y-3",
117
+ children: Object.entries(P).sort(([, e], [, t]) => t - e).map(([e, t]) => /* @__PURE__ */ c("div", {
118
+ className: "flex items-center gap-3",
119
+ children: [
120
+ /* @__PURE__ */ s("span", {
121
+ className: "w-24 text-sm text-muted-foreground truncate",
122
+ children: e
123
+ }),
124
+ /* @__PURE__ */ s("div", {
125
+ className: "flex-1 h-4 bg-muted rounded overflow-hidden",
126
+ children: /* @__PURE__ */ s("div", {
127
+ className: "h-4 bg-primary rounded",
128
+ style: { width: `${Math.round(t / F * 100)}%` }
129
+ })
130
+ }),
131
+ /* @__PURE__ */ s("span", {
132
+ className: "text-sm font-medium w-8 text-right",
133
+ children: t
134
+ })
135
+ ]
136
+ }, e))
137
+ })]
138
+ }), /* @__PURE__ */ c(d, {
139
+ className: "col-span-3",
140
+ children: [/* @__PURE__ */ c(m, {
141
+ className: "flex flex-row items-center justify-between",
142
+ children: [/* @__PURE__ */ s(h, { children: T("crewfoundry.dashboard.notifications.title", "Recent Notifications") }), /* @__PURE__ */ c(l, {
143
+ variant: "secondary",
144
+ children: [
145
+ j,
146
+ " ",
147
+ T("crewfoundry.dashboard.notifications.unread", "unread")
148
+ ]
149
+ })]
150
+ }), /* @__PURE__ */ s(f, {
151
+ className: "space-y-4",
152
+ children: x.slice(0, 5).map((e) => /* @__PURE__ */ c("div", {
153
+ className: "flex items-start gap-3",
154
+ children: [/* @__PURE__ */ s("div", { className: `mt-1 h-2 w-2 rounded-full flex-shrink-0 ${e.type === "success" ? "bg-green-500" : e.type === "warning" ? "bg-yellow-500" : e.type === "error" ? "bg-red-500" : "bg-blue-500"}` }), /* @__PURE__ */ c("div", {
155
+ className: "flex-1 min-w-0",
156
+ children: [/* @__PURE__ */ s("p", {
157
+ className: `text-sm ${e.read ? "text-muted-foreground" : "font-medium"}`,
158
+ children: e.title
159
+ }), /* @__PURE__ */ s("p", {
160
+ className: "text-xs text-muted-foreground truncate",
161
+ children: e.message
162
+ })]
163
+ })]
164
+ }, e.id))
165
+ })]
166
+ })]
167
+ }),
168
+ /* @__PURE__ */ c("div", {
169
+ className: "grid gap-4 md:grid-cols-2",
170
+ children: [/* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, { children: [/* @__PURE__ */ s(h, { children: T("crewfoundry.dashboard.upcomingInterviews.title", "Upcoming Interviews") }), /* @__PURE__ */ s(p, { children: T("crewfoundry.dashboard.upcomingInterviews.description", "Scheduled for this week") })] }), /* @__PURE__ */ s(f, {
171
+ className: "space-y-3",
172
+ children: S.filter((e) => e.status === "active").slice(0, 4).map((e) => /* @__PURE__ */ c("div", {
173
+ className: "flex items-center justify-between rounded border p-3",
174
+ children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
175
+ className: "text-sm font-medium",
176
+ children: e.name
177
+ }), /* @__PURE__ */ s("p", {
178
+ className: "text-xs text-muted-foreground",
179
+ children: e.teamName
180
+ })] }), /* @__PURE__ */ c("div", {
181
+ className: "flex items-center gap-2",
182
+ children: [/* @__PURE__ */ s("div", {
183
+ className: "w-24 h-2 bg-muted rounded overflow-hidden",
184
+ children: /* @__PURE__ */ s("div", {
185
+ className: "h-2 bg-primary rounded",
186
+ style: { width: `${e.progress}%` }
187
+ })
188
+ }), /* @__PURE__ */ c("span", {
189
+ className: "text-xs text-muted-foreground",
190
+ children: [e.progress, "%"]
191
+ })]
192
+ })]
193
+ }, e.id))
194
+ })] }), /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(m, { children: [/* @__PURE__ */ s(h, { children: T("crewfoundry.dashboard.leaveRequests.title", "Recent Leave Requests") }), /* @__PURE__ */ s(p, { children: T("crewfoundry.dashboard.leaveRequests.description", "Pending approval") })] }), /* @__PURE__ */ s(f, {
195
+ className: "space-y-3",
196
+ children: b.map((e) => /* @__PURE__ */ c("div", {
197
+ className: "flex items-center justify-between rounded border p-3",
198
+ children: [/* @__PURE__ */ s("div", {
199
+ className: "flex items-center gap-3",
200
+ children: /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
201
+ className: "text-sm font-medium",
202
+ children: e.employeeName
203
+ }), /* @__PURE__ */ c("div", {
204
+ className: "flex items-center gap-2 text-xs text-muted-foreground",
205
+ children: [/* @__PURE__ */ s(i, { className: "h-3 w-3" }), /* @__PURE__ */ c("span", { children: [
206
+ e.startDate,
207
+ " - ",
208
+ e.endDate
209
+ ] })]
210
+ })] })
211
+ }), /* @__PURE__ */ c("div", {
212
+ className: "flex items-center gap-2",
213
+ children: [/* @__PURE__ */ s(l, {
214
+ variant: e.status === "approved" ? "default" : e.status === "pending" ? "secondary" : "destructive",
215
+ children: e.status
216
+ }), /* @__PURE__ */ s(l, {
217
+ variant: "outline",
218
+ children: e.type
219
+ })]
220
+ })]
221
+ }, e.id))
222
+ })] })]
223
+ })
224
+ ]
225
+ });
226
+ }
227
+ //#endregion
228
+ export { _ as DashboardDashboardPagePage };
229
+
230
+ //# sourceMappingURL=DashboardDashboardPagePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardDashboardPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/DashboardDashboardPagePage.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} from '@burdenoff/fe-libs/ui';\nimport {\n Activity,\n ArrowUpRight,\n Briefcase,\n Calendar,\n Clock,\n TrendingUp,\n Users,\n UserCheck,\n} from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function DashboardDashboardPagePage() {\n const { t: translate } = useI18n();\n const { employees, jobPostings, leaveRequests, notifications, projects } = useCrewFoundryStore();\n const [selectedPeriod, setSelectedPeriod] = useState<'week' | 'month' | 'quarter'>('month');\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n const activeEmployees = employees.filter((e) => e.status === 'active').length;\n const onLeave = employees.filter((e) => e.status === 'on_leave').length;\n const openPositions = jobPostings.filter((j) => j.status === 'active').length;\n const totalApplicants = jobPostings.reduce((sum, j) => sum + j.applicants, 0);\n const pendingLeaves = leaveRequests.filter((l) => l.status === 'pending').length;\n const unreadNotifications = notifications.filter((n) => !n.read).length;\n const activeProjects = projects.filter((p) => p.status === 'active').length;\n const avgPerformance = (\n employees.reduce((sum, e) => sum + e.performanceScore, 0) / employees.length\n ).toFixed(1);\n\n const departmentHeadcount = employees.reduce<Record<string, number>>((acc, e) => {\n acc[e.department] = (acc[e.department] || 0) + 1;\n return acc;\n }, {});\n\n const maxHeadcount = Math.max(...Object.values(departmentHeadcount));\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.dashboard.title', 'Workforce Dashboard')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'crewfoundry.dashboard.subtitle',\n \"Overview of your organization's workforce metrics\"\n )}\n </p>\n </div>\n <div className=\"flex gap-2\">\n {(['week', 'month', 'quarter'] as const).map((period) => (\n <Button\n key={period}\n variant={selectedPeriod === period ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setSelectedPeriod(period)}\n >\n {t(\n `crewfoundry.dashboard.period.${period}`,\n period.charAt(0).toUpperCase() + period.slice(1)\n )}\n </Button>\n ))}\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.dashboard.stats.totalEmployees', 'Total Employees')}\n </CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{employees.length}</div>\n <p className=\"text-xs text-muted-foreground\">\n {activeEmployees} {t('crewfoundry.dashboard.stats.active', 'active')}, {onLeave}{' '}\n {t('crewfoundry.dashboard.stats.onLeave', 'on leave')}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.dashboard.stats.openPositions', 'Open Positions')}\n </CardTitle>\n <Briefcase className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{openPositions}</div>\n <p className=\"text-xs text-muted-foreground\">\n {totalApplicants}{' '}\n {t('crewfoundry.dashboard.stats.totalApplicants', 'total applicants')}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.dashboard.stats.avgPerformance', 'Avg Performance')}\n </CardTitle>\n <TrendingUp className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{avgPerformance}/5</div>\n <p className=\"text-xs text-muted-foreground\">\n {t('crewfoundry.dashboard.stats.performanceTrend', '+0.2 from last quarter')}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {t('crewfoundry.dashboard.stats.activeProjects', 'Active Projects')}\n </CardTitle>\n <Activity className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{activeProjects}</div>\n <p className=\"text-xs text-muted-foreground\">\n {pendingLeaves}{' '}\n {t('crewfoundry.dashboard.stats.pendingLeaveRequests', 'pending leave requests')}\n </p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-7\">\n <Card className=\"col-span-4\">\n <CardHeader>\n <CardTitle>\n {t('crewfoundry.dashboard.departmentHeadcount.title', 'Department Headcount')}\n </CardTitle>\n <CardDescription>\n {t(\n 'crewfoundry.dashboard.departmentHeadcount.description',\n 'Employee distribution across departments'\n )}\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {Object.entries(departmentHeadcount)\n .sort(([, a], [, b]) => b - a)\n .map(([dept, count]) => (\n <div key={dept} className=\"flex items-center gap-3\">\n <span className=\"w-24 text-sm text-muted-foreground truncate\">{dept}</span>\n <div className=\"flex-1 h-4 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-4 bg-primary rounded\"\n style={{ width: `${Math.round((count / maxHeadcount) * 100)}%` }}\n />\n </div>\n <span className=\"text-sm font-medium w-8 text-right\">{count}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"col-span-3\">\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle>\n {t('crewfoundry.dashboard.notifications.title', 'Recent Notifications')}\n </CardTitle>\n <Badge variant=\"secondary\">\n {unreadNotifications} {t('crewfoundry.dashboard.notifications.unread', 'unread')}\n </Badge>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {notifications.slice(0, 5).map((notif) => (\n <div key={notif.id} className=\"flex items-start gap-3\">\n <div\n className={`mt-1 h-2 w-2 rounded-full flex-shrink-0 ${\n notif.type === 'success'\n ? 'bg-green-500'\n : notif.type === 'warning'\n ? 'bg-yellow-500'\n : notif.type === 'error'\n ? 'bg-red-500'\n : 'bg-blue-500'\n }`}\n />\n <div className=\"flex-1 min-w-0\">\n <p className={`text-sm ${notif.read ? 'text-muted-foreground' : 'font-medium'}`}>\n {notif.title}\n </p>\n <p className=\"text-xs text-muted-foreground truncate\">{notif.message}</p>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>\n {t('crewfoundry.dashboard.upcomingInterviews.title', 'Upcoming Interviews')}\n </CardTitle>\n <CardDescription>\n {t('crewfoundry.dashboard.upcomingInterviews.description', 'Scheduled for this week')}\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {projects\n .filter((p) => p.status === 'active')\n .slice(0, 4)\n .map((project) => (\n <div\n key={project.id}\n className=\"flex items-center justify-between rounded border p-3\"\n >\n <div>\n <p className=\"text-sm font-medium\">{project.name}</p>\n <p className=\"text-xs text-muted-foreground\">{project.teamName}</p>\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"w-24 h-2 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-2 bg-primary rounded\"\n style={{ width: `${project.progress}%` }}\n />\n </div>\n <span className=\"text-xs text-muted-foreground\">{project.progress}%</span>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>\n {t('crewfoundry.dashboard.leaveRequests.title', 'Recent Leave Requests')}\n </CardTitle>\n <CardDescription>\n {t('crewfoundry.dashboard.leaveRequests.description', 'Pending approval')}\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {leaveRequests.map((leave) => (\n <div key={leave.id} className=\"flex items-center justify-between rounded border p-3\">\n <div className=\"flex items-center gap-3\">\n <div>\n <p className=\"text-sm font-medium\">{leave.employeeName}</p>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <Calendar className=\"h-3 w-3\" />\n <span>\n {leave.startDate} - {leave.endDate}\n </span>\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Badge\n variant={\n leave.status === 'approved'\n ? 'default'\n : leave.status === 'pending'\n ? 'secondary'\n : 'destructive'\n }\n >\n {leave.status}\n </Badge>\n <Badge variant=\"outline\">{leave.type}</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function DashboardEnhancedDashboardPagePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=DashboardEnhancedDashboardPagePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardEnhancedDashboardPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/DashboardEnhancedDashboardPagePage.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,kCAAkC,4CA4UjD"}