@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.
- package/README.md +12 -0
- package/dist/crewfoundry/CrewFoundryRoot.d.ts +5 -0
- package/dist/crewfoundry/CrewFoundryRoot.d.ts.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoot.js +465 -0
- package/dist/crewfoundry/CrewFoundryRoot.js.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoutes.d.ts +2 -0
- package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoutes.js +291 -0
- package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -0
- package/dist/crewfoundry/index.d.ts +5 -0
- package/dist/crewfoundry/index.d.ts.map +1 -0
- package/dist/crewfoundry/index.js +3 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.js +267 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +271 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +337 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +344 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +341 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +121 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +124 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +93 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +138 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +118 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +62 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +178 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +138 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +144 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +234 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +84 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +287 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +230 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +365 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +340 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +299 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +183 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +124 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +163 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +148 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +203 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +115 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +145 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +183 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +238 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +191 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +158 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +136 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +103 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +135 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +111 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +97 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +170 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +154 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +140 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +74 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +166 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +118 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +148 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +443 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +272 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +136 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +91 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +80 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +155 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +107 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +133 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +79 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +113 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +80 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +172 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +98 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +163 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +115 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +141 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +176 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +314 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +77 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts +6 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts.map +1 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.js +27 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.js.map +1 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +305 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -0
- package/dist/crewfoundry/store/crewfoundryStore.js +326 -0
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -0
- package/dist/crewfoundry/types/index.d.ts +51 -0
- package/dist/crewfoundry/types/index.d.ts.map +1 -0
- package/dist/crewfoundry/utils/cn.d.ts +4 -0
- package/dist/crewfoundry/utils/cn.d.ts.map +1 -0
- package/dist/crewfoundry/utils/navigation.d.ts +2 -0
- package/dist/crewfoundry/utils/navigation.d.ts.map +1 -0
- package/dist/crewfoundry/utils/navigation.js +8 -0
- package/dist/crewfoundry/utils/navigation.js.map +1 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +20716 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +53363 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/package.json +108 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import { Clock as n, GraduationCap as r, Star as i, Users as a } from "lucide-react";
|
|
4
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as c, Card as l, CardContent as u, CardDescription as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/crewfoundry/pages/LearningLearningAnalyticsPagePage.tsx
|
|
7
|
+
var m = (/* @__PURE__ */ new Date("2026-03-01T00:00:00Z")).getTime();
|
|
8
|
+
function h() {
|
|
9
|
+
let { courses: h } = e(), g = h.reduce((e, t) => e + t.enrolled, 0), _ = h.reduce((e, t) => e + t.completed, 0), v = (h.reduce((e, t) => e + t.rating, 0) / Math.max(h.length, 1)).toFixed(1), y = t(() => h.slice(0, 6).map((e, t) => ({
|
|
10
|
+
month: (/* @__PURE__ */ new Date(m - (5 - t) * 864e5 * 30)).toLocaleString("en-US", { month: "short" }),
|
|
11
|
+
hours: Math.round((e.completed + Math.max(e.modules, 1)) * 2.2),
|
|
12
|
+
completions: e.completed,
|
|
13
|
+
enrollments: e.enrolled
|
|
14
|
+
})), [h]), b = Math.max(1, ...y.map((e) => e.hours)), x = y.reduce((e, t) => e + t.hours, 0), S = h.reduce((e, t) => (e[t.category] = (e[t.category] || 0) + t.enrolled, e), {});
|
|
15
|
+
return /* @__PURE__ */ s("div", {
|
|
16
|
+
className: "space-y-6 p-6",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
19
|
+
className: "text-2xl font-semibold",
|
|
20
|
+
children: "Learning Analytics"
|
|
21
|
+
}), /* @__PURE__ */ o("p", {
|
|
22
|
+
className: "text-sm text-muted-foreground",
|
|
23
|
+
children: "Training metrics and engagement insights"
|
|
24
|
+
})] }),
|
|
25
|
+
/* @__PURE__ */ s("div", {
|
|
26
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
29
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
30
|
+
children: [/* @__PURE__ */ o(p, {
|
|
31
|
+
className: "text-sm font-medium",
|
|
32
|
+
children: "Total Enrollments"
|
|
33
|
+
}), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-muted-foreground" })]
|
|
34
|
+
}), /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o("div", {
|
|
35
|
+
className: "text-2xl font-bold",
|
|
36
|
+
children: g
|
|
37
|
+
}) })] }),
|
|
38
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
39
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
40
|
+
children: [/* @__PURE__ */ o(p, {
|
|
41
|
+
className: "text-sm font-medium",
|
|
42
|
+
children: "Completions"
|
|
43
|
+
}), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-green-500" })]
|
|
44
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
45
|
+
className: "text-2xl font-bold",
|
|
46
|
+
children: _
|
|
47
|
+
}), /* @__PURE__ */ s("p", {
|
|
48
|
+
className: "text-xs text-muted-foreground",
|
|
49
|
+
children: [Math.round(_ / Math.max(g, 1) * 100), "% rate"]
|
|
50
|
+
})] })] }),
|
|
51
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
52
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
53
|
+
children: [/* @__PURE__ */ o(p, {
|
|
54
|
+
className: "text-sm font-medium",
|
|
55
|
+
children: "Avg Rating"
|
|
56
|
+
}), /* @__PURE__ */ o(i, { className: "h-4 w-4 text-yellow-500" })]
|
|
57
|
+
}), /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s("div", {
|
|
58
|
+
className: "text-2xl font-bold",
|
|
59
|
+
children: [v, "/5"]
|
|
60
|
+
}) })] }),
|
|
61
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
62
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
63
|
+
children: [/* @__PURE__ */ o(p, {
|
|
64
|
+
className: "text-sm font-medium",
|
|
65
|
+
children: "Training Hours"
|
|
66
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-muted-foreground" })]
|
|
67
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
68
|
+
className: "text-2xl font-bold",
|
|
69
|
+
children: x.toLocaleString()
|
|
70
|
+
}), /* @__PURE__ */ o("p", {
|
|
71
|
+
className: "text-xs text-muted-foreground",
|
|
72
|
+
children: "Recent 6-month trend"
|
|
73
|
+
})] })] })
|
|
74
|
+
]
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, { children: [/* @__PURE__ */ o(p, { children: "Monthly Training Activity" }), /* @__PURE__ */ o(d, { children: "Hours and completions over time" })] }), /* @__PURE__ */ o(u, {
|
|
77
|
+
className: "space-y-3",
|
|
78
|
+
children: y.map((e) => /* @__PURE__ */ s("div", {
|
|
79
|
+
className: "flex items-center gap-3",
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ o("span", {
|
|
82
|
+
className: "w-10 text-sm text-muted-foreground",
|
|
83
|
+
children: e.month
|
|
84
|
+
}),
|
|
85
|
+
/* @__PURE__ */ o("div", {
|
|
86
|
+
className: "h-4 flex-1 overflow-hidden rounded bg-muted",
|
|
87
|
+
children: /* @__PURE__ */ o("div", {
|
|
88
|
+
className: "h-4 rounded bg-primary",
|
|
89
|
+
style: { width: `${Math.round(e.hours / b * 100)}%` }
|
|
90
|
+
})
|
|
91
|
+
}),
|
|
92
|
+
/* @__PURE__ */ s("span", {
|
|
93
|
+
className: "w-16 text-right text-sm font-medium",
|
|
94
|
+
children: [e.hours, "h"]
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ s(c, {
|
|
97
|
+
variant: "default",
|
|
98
|
+
className: "text-[10px]",
|
|
99
|
+
children: [e.completions, " done"]
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
}, `${e.month}-${e.hours}`))
|
|
103
|
+
})] }),
|
|
104
|
+
/* @__PURE__ */ s("div", {
|
|
105
|
+
className: "grid gap-4 md:grid-cols-2",
|
|
106
|
+
children: [/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Category Distribution" }) }), /* @__PURE__ */ o(u, {
|
|
107
|
+
className: "space-y-3",
|
|
108
|
+
children: Object.entries(S).sort(([, e], [, t]) => t - e).map(([e, t]) => /* @__PURE__ */ s("div", {
|
|
109
|
+
className: "flex items-center justify-between",
|
|
110
|
+
children: [/* @__PURE__ */ o("span", {
|
|
111
|
+
className: "text-sm",
|
|
112
|
+
children: e
|
|
113
|
+
}), /* @__PURE__ */ s("div", {
|
|
114
|
+
className: "flex items-center gap-2",
|
|
115
|
+
children: [/* @__PURE__ */ o("span", {
|
|
116
|
+
className: "text-sm font-medium",
|
|
117
|
+
children: t
|
|
118
|
+
}), /* @__PURE__ */ s(c, {
|
|
119
|
+
variant: "outline",
|
|
120
|
+
className: "text-[10px]",
|
|
121
|
+
children: [Math.round(t / Math.max(g, 1) * 100), "%"]
|
|
122
|
+
})]
|
|
123
|
+
})]
|
|
124
|
+
}, e))
|
|
125
|
+
})] }), /* @__PURE__ */ s(l, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Course Performance" }) }), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s("div", {
|
|
126
|
+
className: "mb-2 grid grid-cols-4 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground",
|
|
127
|
+
children: [
|
|
128
|
+
/* @__PURE__ */ o("span", { children: "Course" }),
|
|
129
|
+
/* @__PURE__ */ o("span", {
|
|
130
|
+
className: "text-right",
|
|
131
|
+
children: "Enrolled"
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ o("span", {
|
|
134
|
+
className: "text-right",
|
|
135
|
+
children: "Completed"
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ o("span", {
|
|
138
|
+
className: "text-right",
|
|
139
|
+
children: "Rating"
|
|
140
|
+
})
|
|
141
|
+
]
|
|
142
|
+
}), h.map((e) => /* @__PURE__ */ s("div", {
|
|
143
|
+
className: "grid grid-cols-4 gap-2 border-b py-2 text-sm last:border-0",
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ o("span", {
|
|
146
|
+
className: "truncate font-medium",
|
|
147
|
+
children: e.title
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ o("span", {
|
|
150
|
+
className: "text-right",
|
|
151
|
+
children: e.enrolled
|
|
152
|
+
}),
|
|
153
|
+
/* @__PURE__ */ o("span", {
|
|
154
|
+
className: "text-right",
|
|
155
|
+
children: e.completed
|
|
156
|
+
}),
|
|
157
|
+
/* @__PURE__ */ s("div", {
|
|
158
|
+
className: "flex items-center justify-end gap-1",
|
|
159
|
+
children: [/* @__PURE__ */ o(i, { className: "h-3 w-3 text-yellow-500" }), e.rating]
|
|
160
|
+
})
|
|
161
|
+
]
|
|
162
|
+
}, e.id))] })] })]
|
|
163
|
+
})
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
export { h as LearningLearningAnalyticsPagePage };
|
|
169
|
+
|
|
170
|
+
//# sourceMappingURL=LearningLearningAnalyticsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningAnalyticsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningLearningAnalyticsPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Clock, GraduationCap, Star, 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 MonthlyLearning = {\n month: string;\n hours: number;\n completions: number;\n enrollments: number;\n};\n\nconst BASE_TS = new Date('2026-03-01T00:00:00Z').getTime();\n\nexport function LearningLearningAnalyticsPagePage() {\n const { courses } = useCrewFoundryStore();\n\n const totalEnrolled = courses.reduce((sum, course) => sum + course.enrolled, 0);\n const totalCompleted = courses.reduce((sum, course) => sum + course.completed, 0);\n const avgRating = (\n courses.reduce((sum, course) => sum + course.rating, 0) / Math.max(courses.length, 1)\n ).toFixed(1);\n\n const monthlyLearning = useMemo<MonthlyLearning[]>(() => {\n return courses.slice(0, 6).map((course, index) => {\n const month = new Date(BASE_TS - (5 - index) * 86400000 * 30).toLocaleString('en-US', {\n month: 'short',\n });\n return {\n month,\n hours: Math.round((course.completed + Math.max(course.modules, 1)) * 2.2),\n completions: course.completed,\n enrollments: course.enrolled,\n };\n });\n }, [courses]);\n\n const maxHours = Math.max(1, ...monthlyLearning.map((item) => item.hours));\n const totalHours = monthlyLearning.reduce((sum, item) => sum + item.hours, 0);\n\n const categoryDistribution = courses.reduce<Record<string, number>>((acc, course) => {\n acc[course.category] = (acc[course.category] || 0) + course.enrolled;\n return acc;\n }, {});\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Learning Analytics</h1>\n <p className=\"text-sm text-muted-foreground\">Training metrics and engagement insights</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 Enrollments</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalEnrolled}</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\">Completions</CardTitle>\n <GraduationCap className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalCompleted}</div>\n <p className=\"text-xs text-muted-foreground\">\n {Math.round((totalCompleted / Math.max(totalEnrolled, 1)) * 100)}% rate\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\">Avg Rating</CardTitle>\n <Star className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{avgRating}/5</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\">Training Hours</CardTitle>\n <Clock className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalHours.toLocaleString()}</div>\n <p className=\"text-xs text-muted-foreground\">Recent 6-month trend</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Monthly Training Activity</CardTitle>\n <CardDescription>Hours and completions over time</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {monthlyLearning.map((item) => (\n <div key={`${item.month}-${item.hours}`} className=\"flex items-center gap-3\">\n <span className=\"w-10 text-sm text-muted-foreground\">{item.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((item.hours / maxHours) * 100)}%` }}\n />\n </div>\n <span className=\"w-16 text-right text-sm font-medium\">{item.hours}h</span>\n <Badge variant=\"default\" className=\"text-[10px]\">\n {item.completions} done\n </Badge>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Category Distribution</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {Object.entries(categoryDistribution)\n .sort(([, a], [, b]) => b - a)\n .map(([category, count]) => (\n <div key={category} className=\"flex items-center justify-between\">\n <span className=\"text-sm\">{category}</span>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{count}</span>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {Math.round((count / Math.max(totalEnrolled, 1)) * 100)}%\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Course Performance</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"mb-2 grid grid-cols-4 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground\">\n <span>Course</span>\n <span className=\"text-right\">Enrolled</span>\n <span className=\"text-right\">Completed</span>\n <span className=\"text-right\">Rating</span>\n </div>\n {courses.map((course) => (\n <div\n key={course.id}\n className=\"grid grid-cols-4 gap-2 border-b py-2 text-sm last:border-0\"\n >\n <span className=\"truncate font-medium\">{course.title}</span>\n <span className=\"text-right\">{course.enrolled}</span>\n <span className=\"text-right\">{course.completed}</span>\n <div className=\"flex items-center justify-end gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {course.rating}\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/LearningLearningPagePage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,wBAAwB,4CA4HvC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { BookOpen as t, GraduationCap as n, Star as r, TrendingUp as i, Users as a } from "lucide-react";
|
|
3
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as c, Card as l, CardContent as u, CardDescription as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/crewfoundry/pages/LearningLearningPagePage.tsx
|
|
6
|
+
function m() {
|
|
7
|
+
let { courses: m, learningPaths: h } = e(), g = m.reduce((e, t) => e + t.enrolled, 0), _ = m.reduce((e, t) => e + t.completed, 0);
|
|
8
|
+
return /* @__PURE__ */ s("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
12
|
+
className: "text-2xl font-semibold",
|
|
13
|
+
children: "Learning & Development"
|
|
14
|
+
}), /* @__PURE__ */ o("p", {
|
|
15
|
+
className: "text-sm text-muted-foreground",
|
|
16
|
+
children: "Explore courses, learning paths, and grow your skills"
|
|
17
|
+
})] }),
|
|
18
|
+
/* @__PURE__ */ s("div", {
|
|
19
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
22
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
23
|
+
children: [/* @__PURE__ */ o(p, {
|
|
24
|
+
className: "text-sm font-medium",
|
|
25
|
+
children: "Courses"
|
|
26
|
+
}), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-muted-foreground" })]
|
|
27
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
28
|
+
className: "text-2xl font-bold",
|
|
29
|
+
children: m.length
|
|
30
|
+
}), /* @__PURE__ */ o("p", {
|
|
31
|
+
className: "text-xs text-muted-foreground",
|
|
32
|
+
children: "Active courses"
|
|
33
|
+
})] })] }),
|
|
34
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
35
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
36
|
+
children: [/* @__PURE__ */ o(p, {
|
|
37
|
+
className: "text-sm font-medium",
|
|
38
|
+
children: "Enrolled"
|
|
39
|
+
}), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-muted-foreground" })]
|
|
40
|
+
}), /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o("div", {
|
|
41
|
+
className: "text-2xl font-bold",
|
|
42
|
+
children: g
|
|
43
|
+
}) })] }),
|
|
44
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
45
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
46
|
+
children: [/* @__PURE__ */ o(p, {
|
|
47
|
+
className: "text-sm font-medium",
|
|
48
|
+
children: "Completed"
|
|
49
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-green-500" })]
|
|
50
|
+
}), /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o("div", {
|
|
51
|
+
className: "text-2xl font-bold",
|
|
52
|
+
children: _
|
|
53
|
+
}) })] }),
|
|
54
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
55
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
56
|
+
children: [/* @__PURE__ */ o(p, {
|
|
57
|
+
className: "text-sm font-medium",
|
|
58
|
+
children: "Paths"
|
|
59
|
+
}), /* @__PURE__ */ o(i, { className: "h-4 w-4 text-muted-foreground" })]
|
|
60
|
+
}), /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o("div", {
|
|
61
|
+
className: "text-2xl font-bold",
|
|
62
|
+
children: h.length
|
|
63
|
+
}) })] })
|
|
64
|
+
]
|
|
65
|
+
}),
|
|
66
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h2", {
|
|
67
|
+
className: "text-lg font-medium mb-3",
|
|
68
|
+
children: "Featured Courses"
|
|
69
|
+
}), /* @__PURE__ */ o("div", {
|
|
70
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
71
|
+
children: m.slice(0, 3).map((e) => /* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, { children: [/* @__PURE__ */ o(p, {
|
|
72
|
+
className: "text-base",
|
|
73
|
+
children: e.title
|
|
74
|
+
}), /* @__PURE__ */ s(d, { children: [
|
|
75
|
+
e.instructor,
|
|
76
|
+
" · ",
|
|
77
|
+
e.duration
|
|
78
|
+
] })] }), /* @__PURE__ */ s(u, { children: [
|
|
79
|
+
/* @__PURE__ */ o("p", {
|
|
80
|
+
className: "text-sm text-muted-foreground mb-3",
|
|
81
|
+
children: e.description
|
|
82
|
+
}),
|
|
83
|
+
/* @__PURE__ */ s("div", {
|
|
84
|
+
className: "flex items-center justify-between",
|
|
85
|
+
children: [/* @__PURE__ */ s("div", {
|
|
86
|
+
className: "flex items-center gap-1",
|
|
87
|
+
children: [/* @__PURE__ */ o(r, { className: "h-3 w-3 text-yellow-500" }), /* @__PURE__ */ o("span", {
|
|
88
|
+
className: "text-sm",
|
|
89
|
+
children: e.rating
|
|
90
|
+
})]
|
|
91
|
+
}), /* @__PURE__ */ s("div", {
|
|
92
|
+
className: "flex gap-1",
|
|
93
|
+
children: [/* @__PURE__ */ o(c, {
|
|
94
|
+
variant: "outline",
|
|
95
|
+
className: "text-[10px]",
|
|
96
|
+
children: e.level
|
|
97
|
+
}), /* @__PURE__ */ o(c, {
|
|
98
|
+
variant: "outline",
|
|
99
|
+
className: "text-[10px]",
|
|
100
|
+
children: e.category
|
|
101
|
+
})]
|
|
102
|
+
})]
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ s("div", {
|
|
105
|
+
className: "mt-2 text-xs text-muted-foreground",
|
|
106
|
+
children: [
|
|
107
|
+
e.enrolled,
|
|
108
|
+
" enrolled · ",
|
|
109
|
+
e.completed,
|
|
110
|
+
" completed"
|
|
111
|
+
]
|
|
112
|
+
})
|
|
113
|
+
] })] }, e.id))
|
|
114
|
+
})] }),
|
|
115
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h2", {
|
|
116
|
+
className: "text-lg font-medium mb-3",
|
|
117
|
+
children: "Learning Paths"
|
|
118
|
+
}), /* @__PURE__ */ o("div", {
|
|
119
|
+
className: "grid gap-4 md:grid-cols-3",
|
|
120
|
+
children: h.map((e) => /* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, { children: [/* @__PURE__ */ o(p, {
|
|
121
|
+
className: "text-base",
|
|
122
|
+
children: e.title
|
|
123
|
+
}), /* @__PURE__ */ o(d, { children: e.description })] }), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s("div", {
|
|
124
|
+
className: "flex items-center justify-between text-sm text-muted-foreground",
|
|
125
|
+
children: [/* @__PURE__ */ s("span", { children: [
|
|
126
|
+
e.courses.length,
|
|
127
|
+
" courses · ",
|
|
128
|
+
e.duration
|
|
129
|
+
] }), /* @__PURE__ */ o(c, {
|
|
130
|
+
variant: "outline",
|
|
131
|
+
className: "text-[10px]",
|
|
132
|
+
children: e.level
|
|
133
|
+
})]
|
|
134
|
+
}), /* @__PURE__ */ s("div", {
|
|
135
|
+
className: "mt-2 space-y-1",
|
|
136
|
+
children: [/* @__PURE__ */ s("div", {
|
|
137
|
+
className: "flex justify-between text-xs",
|
|
138
|
+
children: [/* @__PURE__ */ s("span", { children: [e.enrolled, " enrolled"] }), /* @__PURE__ */ s("span", { children: [e.completionRate, "%"] })]
|
|
139
|
+
}), /* @__PURE__ */ o("div", {
|
|
140
|
+
className: "h-2 bg-muted rounded overflow-hidden",
|
|
141
|
+
children: /* @__PURE__ */ o("div", {
|
|
142
|
+
className: "h-2 bg-primary rounded",
|
|
143
|
+
style: { width: `${e.completionRate}%` }
|
|
144
|
+
})
|
|
145
|
+
})]
|
|
146
|
+
})] })] }, e.id))
|
|
147
|
+
})] })
|
|
148
|
+
]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
export { m as LearningLearningPagePage };
|
|
153
|
+
|
|
154
|
+
//# sourceMappingURL=LearningLearningPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningLearningPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Award, BookOpen, GraduationCap, Star, TrendingUp, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function LearningLearningPagePage() {\n const { courses, learningPaths } = useCrewFoundryStore();\n const totalEnrolled = courses.reduce((s, c) => s + c.enrolled, 0);\n const totalCompleted = courses.reduce((s, c) => s + c.completed, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Learning & Development</h1>\n <p className=\"text-sm text-muted-foreground\">\n Explore courses, learning paths, and grow your skills\n </p>\n </div>\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\">Courses</CardTitle>\n <BookOpen className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{courses.length}</div>\n <p className=\"text-xs text-muted-foreground\">Active courses</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\">Enrolled</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalEnrolled}</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\">Completed</CardTitle>\n <GraduationCap className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalCompleted}</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\">Paths</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{learningPaths.length}</div>\n </CardContent>\n </Card>\n </div>\n <div>\n <h2 className=\"text-lg font-medium mb-3\">Featured Courses</h2>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {courses.slice(0, 3).map((course) => (\n <Card key={course.id}>\n <CardHeader>\n <CardTitle className=\"text-base\">{course.title}</CardTitle>\n <CardDescription>\n {course.instructor} · {course.duration}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground mb-3\">{course.description}</p>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n <span className=\"text-sm\">{course.rating}</span>\n </div>\n <div className=\"flex gap-1\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {course.level}\n </Badge>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {course.category}\n </Badge>\n </div>\n </div>\n <div className=\"mt-2 text-xs text-muted-foreground\">\n {course.enrolled} enrolled · {course.completed} completed\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n <div>\n <h2 className=\"text-lg font-medium mb-3\">Learning Paths</h2>\n <div className=\"grid gap-4 md:grid-cols-3\">\n {learningPaths.map((path) => (\n <Card key={path.id}>\n <CardHeader>\n <CardTitle className=\"text-base\">{path.title}</CardTitle>\n <CardDescription>{path.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex items-center justify-between text-sm text-muted-foreground\">\n <span>\n {path.courses.length} courses · {path.duration}\n </span>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {path.level}\n </Badge>\n </div>\n <div className=\"mt-2 space-y-1\">\n <div className=\"flex justify-between text-xs\">\n <span>{path.enrolled} enrolled</span>\n <span>{path.completionRate}%</span>\n </div>\n <div className=\"h-2 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-2 bg-primary rounded\"\n style={{ width: `${path.completionRate}%` }}\n />\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPathDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/LearningLearningPathDetailPagePage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,kCAAkC,4CAwFjD"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { BookOpen as t, CheckCircle as n, Clock as r, Star as i, Users as a } from "lucide-react";
|
|
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 } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/crewfoundry/pages/LearningLearningPathDetailPagePage.tsx
|
|
6
|
+
function h() {
|
|
7
|
+
let { learningPaths: h, courses: g } = e(), _ = h[0];
|
|
8
|
+
if (!_) return /* @__PURE__ */ o("div", {
|
|
9
|
+
className: "p-6 text-muted-foreground",
|
|
10
|
+
children: "No learning path found."
|
|
11
|
+
});
|
|
12
|
+
let v = g.filter((e) => _.courses.includes(e.id));
|
|
13
|
+
return /* @__PURE__ */ s("div", {
|
|
14
|
+
className: "space-y-6 p-6 max-w-4xl",
|
|
15
|
+
children: [
|
|
16
|
+
/* @__PURE__ */ s("div", {
|
|
17
|
+
className: "flex items-center justify-between",
|
|
18
|
+
children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
19
|
+
className: "text-2xl font-semibold",
|
|
20
|
+
children: _.title
|
|
21
|
+
}), /* @__PURE__ */ o("p", {
|
|
22
|
+
className: "text-sm text-muted-foreground",
|
|
23
|
+
children: _.description
|
|
24
|
+
})] }), /* @__PURE__ */ o(l, { children: "Enroll Now" })]
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ s("div", {
|
|
27
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
30
|
+
className: "p-4 text-center",
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ o(t, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
33
|
+
/* @__PURE__ */ o("p", {
|
|
34
|
+
className: "text-lg font-bold",
|
|
35
|
+
children: _.courses.length
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ o("p", {
|
|
38
|
+
className: "text-xs text-muted-foreground",
|
|
39
|
+
children: "Courses"
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
}) }),
|
|
43
|
+
/* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
44
|
+
className: "p-4 text-center",
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ o(r, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
47
|
+
/* @__PURE__ */ o("p", {
|
|
48
|
+
className: "text-lg font-bold",
|
|
49
|
+
children: _.duration
|
|
50
|
+
}),
|
|
51
|
+
/* @__PURE__ */ o("p", {
|
|
52
|
+
className: "text-xs text-muted-foreground",
|
|
53
|
+
children: "Duration"
|
|
54
|
+
})
|
|
55
|
+
]
|
|
56
|
+
}) }),
|
|
57
|
+
/* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
58
|
+
className: "p-4 text-center",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ o(a, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
61
|
+
/* @__PURE__ */ o("p", {
|
|
62
|
+
className: "text-lg font-bold",
|
|
63
|
+
children: _.enrolled
|
|
64
|
+
}),
|
|
65
|
+
/* @__PURE__ */ o("p", {
|
|
66
|
+
className: "text-xs text-muted-foreground",
|
|
67
|
+
children: "Enrolled"
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
}) }),
|
|
71
|
+
/* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
72
|
+
className: "p-4 text-center",
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ o(n, { className: "h-5 w-5 mx-auto text-green-500 mb-1" }),
|
|
75
|
+
/* @__PURE__ */ s("p", {
|
|
76
|
+
className: "text-lg font-bold",
|
|
77
|
+
children: [_.completionRate, "%"]
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ o("p", {
|
|
80
|
+
className: "text-xs text-muted-foreground",
|
|
81
|
+
children: "Completion"
|
|
82
|
+
})
|
|
83
|
+
]
|
|
84
|
+
}) })
|
|
85
|
+
]
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Courses in this Path" }), /* @__PURE__ */ s(f, { children: [
|
|
88
|
+
v.length,
|
|
89
|
+
" courses · ",
|
|
90
|
+
_.level
|
|
91
|
+
] })] }), /* @__PURE__ */ o(d, {
|
|
92
|
+
className: "space-y-3",
|
|
93
|
+
children: v.map((e, t) => /* @__PURE__ */ s("div", {
|
|
94
|
+
className: "flex items-center gap-3 rounded border p-4",
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ o("div", {
|
|
97
|
+
className: "flex-shrink-0 w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-sm font-bold",
|
|
98
|
+
children: t + 1
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ s("div", {
|
|
101
|
+
className: "flex-1",
|
|
102
|
+
children: [/* @__PURE__ */ o("p", {
|
|
103
|
+
className: "text-sm font-medium",
|
|
104
|
+
children: e.title
|
|
105
|
+
}), /* @__PURE__ */ s("p", {
|
|
106
|
+
className: "text-xs text-muted-foreground",
|
|
107
|
+
children: [
|
|
108
|
+
e.instructor,
|
|
109
|
+
" · ",
|
|
110
|
+
e.duration,
|
|
111
|
+
" · ",
|
|
112
|
+
e.modules,
|
|
113
|
+
" modules"
|
|
114
|
+
]
|
|
115
|
+
})]
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ s("div", {
|
|
118
|
+
className: "flex items-center gap-2",
|
|
119
|
+
children: [/* @__PURE__ */ s("div", {
|
|
120
|
+
className: "flex items-center gap-1",
|
|
121
|
+
children: [/* @__PURE__ */ o(i, { className: "h-3 w-3 text-yellow-500" }), /* @__PURE__ */ o("span", {
|
|
122
|
+
className: "text-sm",
|
|
123
|
+
children: e.rating
|
|
124
|
+
})]
|
|
125
|
+
}), /* @__PURE__ */ o(c, {
|
|
126
|
+
variant: e.level === "beginner" ? "secondary" : e.level === "intermediate" ? "default" : "destructive",
|
|
127
|
+
className: "text-[10px]",
|
|
128
|
+
children: e.level
|
|
129
|
+
})]
|
|
130
|
+
})
|
|
131
|
+
]
|
|
132
|
+
}, e.id))
|
|
133
|
+
})] })
|
|
134
|
+
]
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//#endregion
|
|
138
|
+
export { h as LearningLearningPathDetailPagePage };
|
|
139
|
+
|
|
140
|
+
//# sourceMappingURL=LearningLearningPathDetailPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPathDetailPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningLearningPathDetailPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { BookOpen, CheckCircle, Clock, Star, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function LearningLearningPathDetailPagePage() {\n const { learningPaths, courses } = useCrewFoundryStore();\n const path = learningPaths[0];\n if (!path) return <div className=\"p-6 text-muted-foreground\">No learning path found.</div>;\n const pathCourses = courses.filter((c) => path.courses.includes(c.id));\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 <h1 className=\"text-2xl font-semibold\">{path.title}</h1>\n <p className=\"text-sm text-muted-foreground\">{path.description}</p>\n </div>\n <Button>Enroll Now</Button>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <BookOpen className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{path.courses.length}</p>\n <p className=\"text-xs text-muted-foreground\">Courses</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Clock className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{path.duration}</p>\n <p className=\"text-xs text-muted-foreground\">Duration</p>\n </CardContent>\n </Card>\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-lg font-bold\">{path.enrolled}</p>\n <p className=\"text-xs text-muted-foreground\">Enrolled</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-green-500 mb-1\" />\n <p className=\"text-lg font-bold\">{path.completionRate}%</p>\n <p className=\"text-xs text-muted-foreground\">Completion</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Courses in this Path</CardTitle>\n <CardDescription>\n {pathCourses.length} courses · {path.level}\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {pathCourses.map((course, idx) => (\n <div key={course.id} className=\"flex items-center gap-3 rounded border p-4\">\n <div className=\"flex-shrink-0 w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-sm font-bold\">\n {idx + 1}\n </div>\n <div className=\"flex-1\">\n <p className=\"text-sm font-medium\">{course.title}</p>\n <p className=\"text-xs text-muted-foreground\">\n {course.instructor} · {course.duration} · {course.modules} modules\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n <span className=\"text-sm\">{course.rating}</span>\n </div>\n <Badge\n variant={\n course.level === 'beginner'\n ? 'secondary'\n : course.level === 'intermediate'\n ? 'default'\n : 'destructive'\n }\n className=\"text-[10px]\"\n >\n {course.level}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPathsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/LearningLearningPathsPagePage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,6BAA6B,4CA+D5C"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { BookOpen as t, GraduationCap as n } from "lucide-react";
|
|
3
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as a, Card as o, CardContent as s, CardDescription as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/crewfoundry/pages/LearningLearningPathsPagePage.tsx
|
|
6
|
+
function d() {
|
|
7
|
+
let { learningPaths: d, courses: f } = e();
|
|
8
|
+
return /* @__PURE__ */ i("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("h1", {
|
|
11
|
+
className: "text-2xl font-semibold",
|
|
12
|
+
children: "Learning Paths"
|
|
13
|
+
}), /* @__PURE__ */ r("p", {
|
|
14
|
+
className: "text-sm text-muted-foreground",
|
|
15
|
+
children: "Structured learning journeys for career growth"
|
|
16
|
+
})] }), /* @__PURE__ */ r("div", {
|
|
17
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
18
|
+
children: d.map((e) => {
|
|
19
|
+
let d = f.filter((t) => e.courses.includes(t.id));
|
|
20
|
+
return /* @__PURE__ */ i(o, {
|
|
21
|
+
className: "hover:shadow-md transition-shadow cursor-pointer",
|
|
22
|
+
children: [/* @__PURE__ */ i(l, { children: [/* @__PURE__ */ r(u, {
|
|
23
|
+
className: "text-lg",
|
|
24
|
+
children: e.title
|
|
25
|
+
}), /* @__PURE__ */ r(c, { children: e.description })] }), /* @__PURE__ */ r(s, { children: /* @__PURE__ */ i("div", {
|
|
26
|
+
className: "space-y-3",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ i("div", {
|
|
29
|
+
className: "flex items-center justify-between text-sm text-muted-foreground",
|
|
30
|
+
children: [/* @__PURE__ */ i("span", {
|
|
31
|
+
className: "flex items-center gap-1",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ r(t, { className: "h-3 w-3" }),
|
|
34
|
+
e.courses.length,
|
|
35
|
+
" courses"
|
|
36
|
+
]
|
|
37
|
+
}), /* @__PURE__ */ r("span", { children: e.duration })]
|
|
38
|
+
}),
|
|
39
|
+
/* @__PURE__ */ r(a, {
|
|
40
|
+
variant: "outline",
|
|
41
|
+
className: "text-[10px]",
|
|
42
|
+
children: e.level
|
|
43
|
+
}),
|
|
44
|
+
/* @__PURE__ */ r("div", {
|
|
45
|
+
className: "space-y-1 mt-2",
|
|
46
|
+
children: d.map((e) => /* @__PURE__ */ i("div", {
|
|
47
|
+
className: "flex items-center gap-2 text-xs text-muted-foreground",
|
|
48
|
+
children: [/* @__PURE__ */ r(n, { className: "h-3 w-3" }), e.title]
|
|
49
|
+
}, e.id))
|
|
50
|
+
}),
|
|
51
|
+
/* @__PURE__ */ i("div", {
|
|
52
|
+
className: "pt-2 border-t",
|
|
53
|
+
children: [/* @__PURE__ */ i("div", {
|
|
54
|
+
className: "flex justify-between text-xs mb-1",
|
|
55
|
+
children: [/* @__PURE__ */ i("span", { children: [e.enrolled, " enrolled"] }), /* @__PURE__ */ i("span", { children: [e.completionRate, "%"] })]
|
|
56
|
+
}), /* @__PURE__ */ r("div", {
|
|
57
|
+
className: "h-2 bg-muted rounded overflow-hidden",
|
|
58
|
+
children: /* @__PURE__ */ r("div", {
|
|
59
|
+
className: "h-2 bg-primary rounded",
|
|
60
|
+
style: { width: `${e.completionRate}%` }
|
|
61
|
+
})
|
|
62
|
+
})]
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
}) })]
|
|
66
|
+
}, e.id);
|
|
67
|
+
})
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
export { d as LearningLearningPathsPagePage };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=LearningLearningPathsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningLearningPathsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningLearningPathsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { BookOpen, GraduationCap, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function LearningLearningPathsPagePage() {\n const { learningPaths, courses } = useCrewFoundryStore();\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Learning Paths</h1>\n <p className=\"text-sm text-muted-foreground\">\n Structured learning journeys for career growth\n </p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {learningPaths.map((path) => {\n const pathCourses = courses.filter((c) => path.courses.includes(c.id));\n return (\n <Card key={path.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardHeader>\n <CardTitle className=\"text-lg\">{path.title}</CardTitle>\n <CardDescription>{path.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <BookOpen className=\"h-3 w-3\" />\n {path.courses.length} courses\n </span>\n <span>{path.duration}</span>\n </div>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {path.level}\n </Badge>\n <div className=\"space-y-1 mt-2\">\n {pathCourses.map((c) => (\n <div\n key={c.id}\n className=\"flex items-center gap-2 text-xs text-muted-foreground\"\n >\n <GraduationCap className=\"h-3 w-3\" />\n {c.title}\n </div>\n ))}\n </div>\n <div className=\"pt-2 border-t\">\n <div className=\"flex justify-between text-xs mb-1\">\n <span>{path.enrolled} enrolled</span>\n <span>{path.completionRate}%</span>\n </div>\n <div className=\"h-2 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-2 bg-primary rounded\"\n style={{ width: `${path.completionRate}%` }}\n />\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAWA,SAAgB,IAAgC;CAC9C,IAAM,EAAE,kBAAe,eAAY,GAAqB;AAExD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAyB;GAAmB,CAAA,EAC1D,kBAAC,KAAD;GAAG,WAAU;aAAgC;GAEzC,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAc,KAAK,MAAS;IAC3B,IAAM,IAAc,EAAQ,QAAQ,MAAM,EAAK,QAAQ,SAAS,EAAE,GAAG,CAAC;AACtE,WACE,kBAAC,GAAD;KAAoB,WAAU;eAA9B,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAW,WAAU;gBAAW,EAAK;MAAkB,CAAA,EACvD,kBAAC,GAAD,EAAA,UAAkB,EAAK,aAA8B,CAAA,CAC1C,EAAA,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA;UAC/B,EAAK,QAAQ;UAAO;UAChB;YACP,kBAAC,QAAD,EAAA,UAAO,EAAK,UAAgB,CAAA,CACxB;;OACN,kBAAC,GAAD;QAAO,SAAQ;QAAU,WAAU;kBAChC,EAAK;QACA,CAAA;OACR,kBAAC,OAAD;QAAK,WAAU;kBACZ,EAAY,KAAK,MAChB,kBAAC,OAAD;SAEE,WAAU;mBAFZ,CAIE,kBAAC,GAAD,EAAe,WAAU,WAAY,CAAA,EACpC,EAAE,MACC;WALC,EAAE,GAKH,CACN;QACE,CAAA;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAK,UAAS,YAAgB,EAAA,CAAA,EACrC,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAK,gBAAe,IAAQ,EAAA,CAAA,CAC/B;YACN,kBAAC,OAAD;SAAK,WAAU;mBACb,kBAAC,OAAD;UACE,WAAU;UACV,OAAO,EAAE,OAAO,GAAG,EAAK,eAAe,IAAI;UAC3C,CAAA;SACE,CAAA,CACF;;OACF;SACM,CAAA,CACT;OA1CI,EAAK,GA0CT;KAET;GACE,CAAA,CACF"}
|