@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,172 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import { AlertTriangle as n, CheckCircle as r, Shield as i, ShieldCheck as a } from "lucide-react";
|
|
4
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/crewfoundry/pages/PaymentsSecurityPagePage.tsx
|
|
7
|
+
var m = (e) => {
|
|
8
|
+
let t = new Date(e);
|
|
9
|
+
return Number.isNaN(t.getTime()) ? "Unknown" : t.toISOString().split("T")[0];
|
|
10
|
+
}, h = (e) => {
|
|
11
|
+
let t = new Date(e);
|
|
12
|
+
if (Number.isNaN(t.getTime())) return "recently";
|
|
13
|
+
let n = Math.max(1, Math.floor((Date.now() - t.getTime()) / (1e3 * 60 * 60)));
|
|
14
|
+
return n < 24 ? `${n}h ago` : `${Math.floor(n / 24)}d ago`;
|
|
15
|
+
};
|
|
16
|
+
function g() {
|
|
17
|
+
let { notifications: g, invoices: _, payrollRecords: v } = e(), y = t(() => {
|
|
18
|
+
let e = _.filter((e) => e.status === "overdue").length, t = v.filter((e) => e.status === "failed").length, n = e > 0 || t > 0;
|
|
19
|
+
return [
|
|
20
|
+
{
|
|
21
|
+
name: "PCI DSS Compliance",
|
|
22
|
+
status: "passed",
|
|
23
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "SSL/TLS Encryption",
|
|
27
|
+
status: "passed",
|
|
28
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "Two-Factor Authentication",
|
|
32
|
+
status: "passed",
|
|
33
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "Data Encryption at Rest",
|
|
37
|
+
status: "passed",
|
|
38
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "Payment Processing Audit",
|
|
42
|
+
status: n ? "warning" : "passed",
|
|
43
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Access Control Review",
|
|
47
|
+
status: g.some((e) => e.type === "error") ? "warning" : "passed",
|
|
48
|
+
lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
}, [
|
|
52
|
+
_,
|
|
53
|
+
g,
|
|
54
|
+
v
|
|
55
|
+
]), b = t(() => g.slice(0, 6).map((e) => {
|
|
56
|
+
let t = e.type === "error" ? "medium" : e.type === "warning" ? "low" : "info";
|
|
57
|
+
return {
|
|
58
|
+
id: e.id,
|
|
59
|
+
message: e.message,
|
|
60
|
+
severity: t,
|
|
61
|
+
time: h(e.createdAt)
|
|
62
|
+
};
|
|
63
|
+
}), [g]), x = y.filter((e) => e.status === "passed").length, S = Math.round(x / Math.max(y.length, 1) * 100);
|
|
64
|
+
return /* @__PURE__ */ s("div", {
|
|
65
|
+
className: "space-y-6 p-6",
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ s("div", {
|
|
68
|
+
className: "flex items-center justify-between",
|
|
69
|
+
children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
70
|
+
className: "text-2xl font-semibold",
|
|
71
|
+
children: "Payment Security"
|
|
72
|
+
}), /* @__PURE__ */ o("p", {
|
|
73
|
+
className: "text-sm text-muted-foreground",
|
|
74
|
+
children: "Security controls and compliance status"
|
|
75
|
+
})] }), /* @__PURE__ */ s(l, {
|
|
76
|
+
variant: "outline",
|
|
77
|
+
size: "sm",
|
|
78
|
+
children: [/* @__PURE__ */ o(i, { className: "mr-1 h-4 w-4" }), "Run Audit"]
|
|
79
|
+
})]
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ s("div", {
|
|
82
|
+
className: "grid gap-4 md:grid-cols-3",
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
|
|
85
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
86
|
+
children: [/* @__PURE__ */ o(p, {
|
|
87
|
+
className: "text-sm font-medium",
|
|
88
|
+
children: "Security Score"
|
|
89
|
+
}), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-green-500" })]
|
|
90
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
|
|
91
|
+
className: "text-2xl font-bold",
|
|
92
|
+
children: [S, "/100"]
|
|
93
|
+
}) })] }),
|
|
94
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
|
|
95
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
96
|
+
children: [/* @__PURE__ */ o(p, {
|
|
97
|
+
className: "text-sm font-medium",
|
|
98
|
+
children: "Checks Passing"
|
|
99
|
+
}), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-green-500" })]
|
|
100
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
|
|
101
|
+
className: "text-2xl font-bold",
|
|
102
|
+
children: [
|
|
103
|
+
x,
|
|
104
|
+
"/",
|
|
105
|
+
y.length
|
|
106
|
+
]
|
|
107
|
+
}) })] }),
|
|
108
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
|
|
109
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
110
|
+
children: [/* @__PURE__ */ o(p, {
|
|
111
|
+
className: "text-sm font-medium",
|
|
112
|
+
children: "Active Alerts"
|
|
113
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-yellow-500" })]
|
|
114
|
+
}), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
|
|
115
|
+
className: "text-2xl font-bold",
|
|
116
|
+
children: b.length
|
|
117
|
+
}) })] })
|
|
118
|
+
]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Security Checks" }) }), /* @__PURE__ */ o(d, {
|
|
121
|
+
className: "space-y-3",
|
|
122
|
+
children: y.map((e) => /* @__PURE__ */ s("div", {
|
|
123
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
124
|
+
children: [/* @__PURE__ */ s("div", {
|
|
125
|
+
className: "flex items-center gap-2",
|
|
126
|
+
children: [e.status === "passed" ? /* @__PURE__ */ o(r, { className: "h-4 w-4 text-green-500" }) : /* @__PURE__ */ o(n, { className: "h-4 w-4 text-yellow-500" }), /* @__PURE__ */ o("span", {
|
|
127
|
+
className: "text-sm font-medium",
|
|
128
|
+
children: e.name
|
|
129
|
+
})]
|
|
130
|
+
}), /* @__PURE__ */ s("div", {
|
|
131
|
+
className: "flex items-center gap-2",
|
|
132
|
+
children: [/* @__PURE__ */ s("span", {
|
|
133
|
+
className: "text-xs text-muted-foreground",
|
|
134
|
+
children: ["Last: ", e.lastChecked]
|
|
135
|
+
}), /* @__PURE__ */ o(c, {
|
|
136
|
+
variant: e.status === "passed" ? "default" : "secondary",
|
|
137
|
+
className: "text-[10px]",
|
|
138
|
+
children: e.status
|
|
139
|
+
})]
|
|
140
|
+
})]
|
|
141
|
+
}, e.name))
|
|
142
|
+
})] }),
|
|
143
|
+
/* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Security Alerts" }) }), /* @__PURE__ */ o(d, {
|
|
144
|
+
className: "space-y-3",
|
|
145
|
+
children: b.map((e) => /* @__PURE__ */ s("div", {
|
|
146
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
147
|
+
children: [/* @__PURE__ */ s("div", {
|
|
148
|
+
className: "flex items-center gap-2",
|
|
149
|
+
children: [/* @__PURE__ */ o(n, { className: `h-4 w-4 ${e.severity === "medium" ? "text-yellow-500" : e.severity === "low" ? "text-blue-500" : "text-muted-foreground"}` }), /* @__PURE__ */ o("span", {
|
|
150
|
+
className: "text-sm",
|
|
151
|
+
children: e.message
|
|
152
|
+
})]
|
|
153
|
+
}), /* @__PURE__ */ s("div", {
|
|
154
|
+
className: "flex items-center gap-2",
|
|
155
|
+
children: [/* @__PURE__ */ o("span", {
|
|
156
|
+
className: "text-xs text-muted-foreground",
|
|
157
|
+
children: e.time
|
|
158
|
+
}), /* @__PURE__ */ o(c, {
|
|
159
|
+
variant: "outline",
|
|
160
|
+
className: "text-[10px]",
|
|
161
|
+
children: e.severity
|
|
162
|
+
})]
|
|
163
|
+
})]
|
|
164
|
+
}, e.id))
|
|
165
|
+
})] })
|
|
166
|
+
]
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//#endregion
|
|
170
|
+
export { g as PaymentsSecurityPagePage };
|
|
171
|
+
|
|
172
|
+
//# sourceMappingURL=PaymentsSecurityPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentsSecurityPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsSecurityPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Badge, Button, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { AlertTriangle, CheckCircle, Shield, ShieldCheck } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype SecurityCheck = {\n name: string;\n status: 'passed' | 'warning';\n lastChecked: string;\n};\n\ntype SecurityAlert = {\n id: string;\n message: string;\n severity: 'medium' | 'low' | 'info';\n time: string;\n};\n\nconst formatDate = (value: string): string => {\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return 'Unknown';\n }\n return parsed.toISOString().split('T')[0];\n};\n\nconst timeAgo = (value: string): string => {\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return 'recently';\n }\n const hours = Math.max(1, Math.floor((Date.now() - parsed.getTime()) / (1000 * 60 * 60)));\n return hours < 24 ? `${hours}h ago` : `${Math.floor(hours / 24)}d ago`;\n};\n\nexport function PaymentsSecurityPagePage() {\n const { notifications, invoices, payrollRecords } = useCrewFoundryStore();\n\n const securityChecks = useMemo<SecurityCheck[]>(() => {\n const failedInvoices = invoices.filter((invoice) => invoice.status === 'overdue').length;\n const payrollFailures = payrollRecords.filter((record) => record.status === 'failed').length;\n const warning = failedInvoices > 0 || payrollFailures > 0;\n\n return [\n {\n name: 'PCI DSS Compliance',\n status: 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n {\n name: 'SSL/TLS Encryption',\n status: 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n {\n name: 'Two-Factor Authentication',\n status: 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n {\n name: 'Data Encryption at Rest',\n status: 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n {\n name: 'Payment Processing Audit',\n status: warning ? 'warning' : 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n {\n name: 'Access Control Review',\n status: notifications.some((notification) => notification.type === 'error')\n ? 'warning'\n : 'passed',\n lastChecked: formatDate(new Date().toISOString()),\n },\n ];\n }, [invoices, notifications, payrollRecords]);\n\n const recentAlerts = useMemo<SecurityAlert[]>(() => {\n return notifications.slice(0, 6).map((notification) => {\n const severity: SecurityAlert['severity'] =\n notification.type === 'error' ? 'medium' : notification.type === 'warning' ? 'low' : 'info';\n\n return {\n id: notification.id,\n message: notification.message,\n severity,\n time: timeAgo(notification.createdAt),\n };\n });\n }, [notifications]);\n\n const passedChecks = securityChecks.filter((check) => check.status === 'passed').length;\n const securityScore = Math.round((passedChecks / Math.max(securityChecks.length, 1)) * 100);\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\">Payment Security</h1>\n <p className=\"text-sm text-muted-foreground\">Security controls and compliance status</p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Shield className=\"mr-1 h-4 w-4\" />\n Run Audit\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Security Score</CardTitle>\n <ShieldCheck className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{securityScore}/100</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\">Checks Passing</CardTitle>\n <CheckCircle className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {passedChecks}/{securityChecks.length}\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\">Active Alerts</CardTitle>\n <AlertTriangle className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{recentAlerts.length}</div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Security Checks</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {securityChecks.map((check) => (\n <div key={check.name} className=\"flex items-center justify-between rounded border p-3\">\n <div className=\"flex items-center gap-2\">\n {check.status === 'passed' ? (\n <CheckCircle className=\"h-4 w-4 text-green-500\" />\n ) : (\n <AlertTriangle className=\"h-4 w-4 text-yellow-500\" />\n )}\n <span className=\"text-sm font-medium\">{check.name}</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-xs text-muted-foreground\">Last: {check.lastChecked}</span>\n <Badge\n variant={check.status === 'passed' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {check.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Security Alerts</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {recentAlerts.map((alert) => (\n <div key={alert.id} className=\"flex items-center justify-between rounded border p-3\">\n <div className=\"flex items-center gap-2\">\n <AlertTriangle\n className={`h-4 w-4 ${\n alert.severity === 'medium'\n ? 'text-yellow-500'\n : alert.severity === 'low'\n ? 'text-blue-500'\n : 'text-muted-foreground'\n }`}\n />\n <span className=\"text-sm\">{alert.message}</span>\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-xs text-muted-foreground\">{alert.time}</span>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {alert.severity}\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":"ProjectsCreateProjectPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/ProjectsCreateProjectPagePage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,6BAA6B,4CAoE5C"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { useState as e } from "react";
|
|
2
|
+
import { FolderKanban as t, Save as n } from "lucide-react";
|
|
3
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
4
|
+
import { Button as a, Card as o, CardContent as s, CardHeader as c, CardTitle as l, Input as u, Textarea as d } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/crewfoundry/pages/ProjectsCreateProjectPagePage.tsx
|
|
6
|
+
function f() {
|
|
7
|
+
let [f, p] = e(""), [m, h] = e(""), [g, _] = e(""), [v, y] = e(""), [b, x] = e("");
|
|
8
|
+
return /* @__PURE__ */ i("div", {
|
|
9
|
+
className: "space-y-6 p-6 max-w-3xl",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("h1", {
|
|
12
|
+
className: "text-2xl font-semibold",
|
|
13
|
+
children: "Create Project"
|
|
14
|
+
}), /* @__PURE__ */ r("p", {
|
|
15
|
+
className: "text-sm text-muted-foreground",
|
|
16
|
+
children: "Set up a new project for your team"
|
|
17
|
+
})] }),
|
|
18
|
+
/* @__PURE__ */ i(o, { children: [/* @__PURE__ */ r(c, { children: /* @__PURE__ */ i(l, {
|
|
19
|
+
className: "flex items-center gap-2",
|
|
20
|
+
children: [/* @__PURE__ */ r(t, { className: "h-5 w-5" }), "Project Details"]
|
|
21
|
+
}) }), /* @__PURE__ */ i(s, {
|
|
22
|
+
className: "space-y-4",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ i("div", {
|
|
25
|
+
className: "space-y-2",
|
|
26
|
+
children: [/* @__PURE__ */ r("label", {
|
|
27
|
+
className: "text-sm font-medium",
|
|
28
|
+
children: "Project Name"
|
|
29
|
+
}), /* @__PURE__ */ r(u, {
|
|
30
|
+
placeholder: "e.g. HR Analytics Dashboard v3",
|
|
31
|
+
value: f,
|
|
32
|
+
onChange: (e) => p(e.target.value)
|
|
33
|
+
})]
|
|
34
|
+
}),
|
|
35
|
+
/* @__PURE__ */ i("div", {
|
|
36
|
+
className: "space-y-2",
|
|
37
|
+
children: [/* @__PURE__ */ r("label", {
|
|
38
|
+
className: "text-sm font-medium",
|
|
39
|
+
children: "Description"
|
|
40
|
+
}), /* @__PURE__ */ r(d, {
|
|
41
|
+
placeholder: "Describe the project objectives and scope...",
|
|
42
|
+
rows: 3,
|
|
43
|
+
value: m,
|
|
44
|
+
onChange: (e) => h(e.target.value)
|
|
45
|
+
})]
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ i("div", {
|
|
48
|
+
className: "grid grid-cols-2 gap-4",
|
|
49
|
+
children: [/* @__PURE__ */ i("div", {
|
|
50
|
+
className: "space-y-2",
|
|
51
|
+
children: [/* @__PURE__ */ r("label", {
|
|
52
|
+
className: "text-sm font-medium",
|
|
53
|
+
children: "Start Date"
|
|
54
|
+
}), /* @__PURE__ */ r(u, {
|
|
55
|
+
type: "date",
|
|
56
|
+
value: g,
|
|
57
|
+
onChange: (e) => _(e.target.value)
|
|
58
|
+
})]
|
|
59
|
+
}), /* @__PURE__ */ i("div", {
|
|
60
|
+
className: "space-y-2",
|
|
61
|
+
children: [/* @__PURE__ */ r("label", {
|
|
62
|
+
className: "text-sm font-medium",
|
|
63
|
+
children: "End Date"
|
|
64
|
+
}), /* @__PURE__ */ r(u, {
|
|
65
|
+
type: "date",
|
|
66
|
+
value: v,
|
|
67
|
+
onChange: (e) => y(e.target.value)
|
|
68
|
+
})]
|
|
69
|
+
})]
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ i("div", {
|
|
72
|
+
className: "space-y-2",
|
|
73
|
+
children: [/* @__PURE__ */ r("label", {
|
|
74
|
+
className: "text-sm font-medium",
|
|
75
|
+
children: "Budget ($)"
|
|
76
|
+
}), /* @__PURE__ */ r(u, {
|
|
77
|
+
type: "number",
|
|
78
|
+
placeholder: "e.g. 250000",
|
|
79
|
+
value: b,
|
|
80
|
+
onChange: (e) => x(e.target.value)
|
|
81
|
+
})]
|
|
82
|
+
})
|
|
83
|
+
]
|
|
84
|
+
})] }),
|
|
85
|
+
/* @__PURE__ */ i("div", {
|
|
86
|
+
className: "flex justify-end gap-2",
|
|
87
|
+
children: [/* @__PURE__ */ r(a, {
|
|
88
|
+
variant: "outline",
|
|
89
|
+
children: "Save as Draft"
|
|
90
|
+
}), /* @__PURE__ */ i(a, { children: [/* @__PURE__ */ r(n, { className: "h-4 w-4 mr-1" }), "Create Project"] })]
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { f as ProjectsCreateProjectPagePage };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=ProjectsCreateProjectPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsCreateProjectPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/ProjectsCreateProjectPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport { FolderKanban, Save } from 'lucide-react';\n\nexport function ProjectsCreateProjectPagePage() {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n const [budget, setBudget] = useState('');\n\n return (\n <div className=\"space-y-6 p-6 max-w-3xl\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Create Project</h1>\n <p className=\"text-sm text-muted-foreground\">Set up a new project for your team</p>\n </div>\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <FolderKanban className=\"h-5 w-5\" />\n Project Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Project Name</label>\n <Input\n placeholder=\"e.g. HR Analytics Dashboard v3\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Description</label>\n <Textarea\n placeholder=\"Describe the project objectives and scope...\"\n rows={3}\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Start Date</label>\n <Input type=\"date\" value={startDate} onChange={(e) => setStartDate(e.target.value)} />\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">End Date</label>\n <Input type=\"date\" value={endDate} onChange={(e) => setEndDate(e.target.value)} />\n </div>\n </div>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium\">Budget ($)</label>\n <Input\n type=\"number\"\n placeholder=\"e.g. 250000\"\n value={budget}\n onChange={(e) => setBudget(e.target.value)}\n />\n </div>\n </CardContent>\n </Card>\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\">Save as Draft</Button>\n <Button>\n <Save className=\"h-4 w-4 mr-1\" />\n Create Project\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAaA,SAAgB,IAAgC;CAC9C,IAAM,CAAC,GAAM,KAAW,EAAS,GAAG,EAC9B,CAAC,GAAa,KAAkB,EAAS,GAAG,EAC5C,CAAC,GAAW,KAAgB,EAAS,GAAG,EACxC,CAAC,GAAS,KAAc,EAAS,GAAG,EACpC,CAAC,GAAQ,KAAa,EAAS,GAAG;AAExC,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAmB,CAAA,EAC1D,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAAsC,CAAA,CAC/E,EAAA,CAAA;GACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAW,WAAU;cAArB,CACE,kBAAC,GAAD,EAAc,WAAU,WAAY,CAAA,EAAA,kBAE1B;OACD,CAAA,EACb,kBAAC,GAAD;IAAa,WAAU;cAAvB;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,WAAU;iBAAsB;OAAoB,CAAA,EAC3D,kBAAC,GAAD;OACE,aAAY;OACZ,OAAO;OACP,WAAW,MAAM,EAAQ,EAAE,OAAO,MAAM;OACxC,CAAA,CACE;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,WAAU;iBAAsB;OAAmB,CAAA,EAC1D,kBAAC,GAAD;OACE,aAAY;OACZ,MAAM;OACN,OAAO;OACP,WAAW,MAAM,EAAe,EAAE,OAAO,MAAM;OAC/C,CAAA,CACE;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,WAAU;kBAAsB;QAAkB,CAAA,EACzD,kBAAC,GAAD;QAAO,MAAK;QAAO,OAAO;QAAW,WAAW,MAAM,EAAa,EAAE,OAAO,MAAM;QAAI,CAAA,CAClF;UACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,WAAU;kBAAsB;QAAgB,CAAA,EACvD,kBAAC,GAAD;QAAO,MAAK;QAAO,OAAO;QAAS,WAAW,MAAM,EAAW,EAAE,OAAO,MAAM;QAAI,CAAA,CAC9E;SACF;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,WAAU;iBAAsB;OAAkB,CAAA,EACzD,kBAAC,GAAD;OACE,MAAK;OACL,aAAY;OACZ,OAAO;OACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;OAC1C,CAAA,CACE;;KACM;MACT,EAAA,CAAA;GACP,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAQ,SAAQ;eAAU;KAAsB,CAAA,EAChD,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,iBAE1B,EAAA,CAAA,CACL;;GACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsProjectDetailsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/ProjectsProjectDetailsPagePage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,8BAA8B,4CA2G7C"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { Calendar as t, DollarSign as n, Target as r, Users as i } from "lucide-react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/crewfoundry/pages/ProjectsProjectDetailsPagePage.tsx
|
|
6
|
+
function f() {
|
|
7
|
+
let { projects: f } = e(), p = f[1];
|
|
8
|
+
return p ? /* @__PURE__ */ o("div", {
|
|
9
|
+
className: "space-y-6 p-6 max-w-4xl",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ o("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
14
|
+
className: "text-2xl font-semibold",
|
|
15
|
+
children: p.name
|
|
16
|
+
}), /* @__PURE__ */ a("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: p.description
|
|
19
|
+
})] }), /* @__PURE__ */ o("div", {
|
|
20
|
+
className: "flex gap-1",
|
|
21
|
+
children: [/* @__PURE__ */ a(s, {
|
|
22
|
+
variant: p.priority === "critical" ? "destructive" : "default",
|
|
23
|
+
children: p.priority
|
|
24
|
+
}), /* @__PURE__ */ a(s, {
|
|
25
|
+
variant: p.status === "active" ? "default" : "secondary",
|
|
26
|
+
children: p.status
|
|
27
|
+
})]
|
|
28
|
+
})]
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ o("div", {
|
|
31
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
|
|
34
|
+
className: "p-4 text-center",
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ a(r, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
37
|
+
/* @__PURE__ */ o("p", {
|
|
38
|
+
className: "text-lg font-bold",
|
|
39
|
+
children: [p.progress, "%"]
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ a("p", {
|
|
42
|
+
className: "text-xs text-muted-foreground",
|
|
43
|
+
children: "Progress"
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
}) }),
|
|
47
|
+
/* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
|
|
48
|
+
className: "p-4 text-center",
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ a(n, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
51
|
+
/* @__PURE__ */ o("p", {
|
|
52
|
+
className: "text-lg font-bold",
|
|
53
|
+
children: [
|
|
54
|
+
"$",
|
|
55
|
+
(p.budget / 1e3).toFixed(0),
|
|
56
|
+
"K"
|
|
57
|
+
]
|
|
58
|
+
}),
|
|
59
|
+
/* @__PURE__ */ a("p", {
|
|
60
|
+
className: "text-xs text-muted-foreground",
|
|
61
|
+
children: "Budget"
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
}) }),
|
|
65
|
+
/* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
|
|
66
|
+
className: "p-4 text-center",
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ a(i, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
69
|
+
/* @__PURE__ */ a("p", {
|
|
70
|
+
className: "text-lg font-bold",
|
|
71
|
+
children: p.teamName
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ a("p", {
|
|
74
|
+
className: "text-xs text-muted-foreground",
|
|
75
|
+
children: "Team"
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
}) }),
|
|
79
|
+
/* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
|
|
80
|
+
className: "p-4 text-center",
|
|
81
|
+
children: [
|
|
82
|
+
/* @__PURE__ */ a(t, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
|
|
83
|
+
/* @__PURE__ */ a("p", {
|
|
84
|
+
className: "text-lg font-bold",
|
|
85
|
+
children: p.endDate
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ a("p", {
|
|
88
|
+
className: "text-xs text-muted-foreground",
|
|
89
|
+
children: "Deadline"
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
}) })
|
|
93
|
+
]
|
|
94
|
+
}),
|
|
95
|
+
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Task Progress" }) }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
|
|
96
|
+
className: "space-y-2",
|
|
97
|
+
children: [/* @__PURE__ */ o("div", {
|
|
98
|
+
className: "flex justify-between text-sm",
|
|
99
|
+
children: [/* @__PURE__ */ o("span", { children: [
|
|
100
|
+
p.completedTasks,
|
|
101
|
+
" of ",
|
|
102
|
+
p.tasks,
|
|
103
|
+
" tasks completed"
|
|
104
|
+
] }), /* @__PURE__ */ o("span", {
|
|
105
|
+
className: "font-medium",
|
|
106
|
+
children: [p.progress, "%"]
|
|
107
|
+
})]
|
|
108
|
+
}), /* @__PURE__ */ a("div", {
|
|
109
|
+
className: "h-3 bg-muted rounded overflow-hidden",
|
|
110
|
+
children: /* @__PURE__ */ a("div", {
|
|
111
|
+
className: "h-3 bg-primary rounded",
|
|
112
|
+
style: { width: `${p.progress}%` }
|
|
113
|
+
})
|
|
114
|
+
})]
|
|
115
|
+
}) })] }),
|
|
116
|
+
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Budget Tracking" }) }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ o("div", {
|
|
117
|
+
className: "space-y-2",
|
|
118
|
+
children: [/* @__PURE__ */ o("div", {
|
|
119
|
+
className: "flex justify-between text-sm",
|
|
120
|
+
children: [/* @__PURE__ */ o("span", { children: [
|
|
121
|
+
"Spent $",
|
|
122
|
+
(p.spent / 1e3).toFixed(0),
|
|
123
|
+
"K of $",
|
|
124
|
+
(p.budget / 1e3).toFixed(0),
|
|
125
|
+
"K"
|
|
126
|
+
] }), /* @__PURE__ */ o("span", {
|
|
127
|
+
className: "font-medium",
|
|
128
|
+
children: [Math.round(p.spent / p.budget * 100), "%"]
|
|
129
|
+
})]
|
|
130
|
+
}), /* @__PURE__ */ a("div", {
|
|
131
|
+
className: "h-3 bg-muted rounded overflow-hidden",
|
|
132
|
+
children: /* @__PURE__ */ a("div", {
|
|
133
|
+
className: `h-3 rounded ${p.spent / p.budget > .9 ? "bg-red-500" : "bg-green-500"}`,
|
|
134
|
+
style: { width: `${Math.round(p.spent / p.budget * 100)}%` }
|
|
135
|
+
})
|
|
136
|
+
})]
|
|
137
|
+
}), /* @__PURE__ */ o("div", {
|
|
138
|
+
className: "grid grid-cols-2 gap-4 mt-4 text-sm",
|
|
139
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
|
|
140
|
+
className: "text-xs text-muted-foreground",
|
|
141
|
+
children: "Manager"
|
|
142
|
+
}), /* @__PURE__ */ a("p", {
|
|
143
|
+
className: "font-medium",
|
|
144
|
+
children: p.managerName
|
|
145
|
+
})] }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
|
|
146
|
+
className: "text-xs text-muted-foreground",
|
|
147
|
+
children: "Timeline"
|
|
148
|
+
}), /* @__PURE__ */ o("p", { children: [
|
|
149
|
+
p.startDate,
|
|
150
|
+
" — ",
|
|
151
|
+
p.endDate
|
|
152
|
+
] })] })]
|
|
153
|
+
})] })] })
|
|
154
|
+
]
|
|
155
|
+
}) : /* @__PURE__ */ a("div", {
|
|
156
|
+
className: "p-6 text-muted-foreground",
|
|
157
|
+
children: "No project found."
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
export { f as ProjectsProjectDetailsPagePage };
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=ProjectsProjectDetailsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsProjectDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/ProjectsProjectDetailsPagePage.tsx"],"sourcesContent":["import { Badge, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Calendar, DollarSign, Target, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function ProjectsProjectDetailsPagePage() {\n const { projects } = useCrewFoundryStore();\n const project = projects[1]; // Show second project for variety\n if (!project) return <div className=\"p-6 text-muted-foreground\">No project found.</div>;\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\">{project.name}</h1>\n <p className=\"text-sm text-muted-foreground\">{project.description}</p>\n </div>\n <div className=\"flex gap-1\">\n <Badge variant={project.priority === 'critical' ? 'destructive' : 'default'}>\n {project.priority}\n </Badge>\n <Badge variant={project.status === 'active' ? 'default' : 'secondary'}>\n {project.status}\n </Badge>\n </div>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Target className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{project.progress}%</p>\n <p className=\"text-xs text-muted-foreground\">Progress</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">${(project.budget / 1000).toFixed(0)}K</p>\n <p className=\"text-xs text-muted-foreground\">Budget</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\">{project.teamName}</p>\n <p className=\"text-xs text-muted-foreground\">Team</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{project.endDate}</p>\n <p className=\"text-xs text-muted-foreground\">Deadline</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Task Progress</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>\n {project.completedTasks} of {project.tasks} tasks completed\n </span>\n <span className=\"font-medium\">{project.progress}%</span>\n </div>\n <div className=\"h-3 bg-muted rounded overflow-hidden\">\n <div className=\"h-3 bg-primary rounded\" style={{ width: `${project.progress}%` }} />\n </div>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Budget Tracking</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>\n Spent ${(project.spent / 1000).toFixed(0)}K of ${(project.budget / 1000).toFixed(0)}\n K\n </span>\n <span className=\"font-medium\">\n {Math.round((project.spent / project.budget) * 100)}%\n </span>\n </div>\n <div className=\"h-3 bg-muted rounded overflow-hidden\">\n <div\n className={`h-3 rounded ${project.spent / project.budget > 0.9 ? 'bg-red-500' : 'bg-green-500'}`}\n style={{ width: `${Math.round((project.spent / project.budget) * 100)}%` }}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4 mt-4 text-sm\">\n <div>\n <p className=\"text-xs text-muted-foreground\">Manager</p>\n <p className=\"font-medium\">{project.managerName}</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Timeline</p>\n <p>\n {project.startDate} — {project.endDate}\n </p>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsProjectsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/ProjectsProjectsPagePage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,wBAAwB,4CAoGvC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { Plus as t } from "lucide-react";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as i, Button as a, Card as o, CardContent as s, CardDescription as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { useI18n as d } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
|
+
//#region src/crewfoundry/pages/ProjectsProjectsPagePage.tsx
|
|
7
|
+
function f() {
|
|
8
|
+
let { t: f } = d(), { projects: p } = e(), m = p.filter((e) => e.status === "active"), h = (e, t) => {
|
|
9
|
+
let n = f(e);
|
|
10
|
+
return n === e ? t : n;
|
|
11
|
+
};
|
|
12
|
+
return /* @__PURE__ */ r("div", {
|
|
13
|
+
className: "space-y-6 p-6",
|
|
14
|
+
children: [/* @__PURE__ */ r("div", {
|
|
15
|
+
className: "flex items-center justify-between",
|
|
16
|
+
children: [/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("h1", {
|
|
17
|
+
className: "text-2xl font-semibold",
|
|
18
|
+
children: h("crewfoundry.projects.title", "Projects")
|
|
19
|
+
}), /* @__PURE__ */ r("p", {
|
|
20
|
+
className: "text-sm text-muted-foreground",
|
|
21
|
+
children: [
|
|
22
|
+
m.length,
|
|
23
|
+
" ",
|
|
24
|
+
h("crewfoundry.projects.summary.activeProjects", "active projects")
|
|
25
|
+
]
|
|
26
|
+
})] }), /* @__PURE__ */ r(a, {
|
|
27
|
+
size: "sm",
|
|
28
|
+
children: [/* @__PURE__ */ n(t, { className: "h-4 w-4 mr-1" }), h("crewfoundry.projects.actions.newProject", "New Project")]
|
|
29
|
+
})]
|
|
30
|
+
}), /* @__PURE__ */ n("div", {
|
|
31
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
32
|
+
children: p.map((e) => /* @__PURE__ */ r(o, {
|
|
33
|
+
className: "hover:shadow-md transition-shadow cursor-pointer",
|
|
34
|
+
children: [/* @__PURE__ */ r(l, { children: [/* @__PURE__ */ r("div", {
|
|
35
|
+
className: "flex items-center justify-between",
|
|
36
|
+
children: [/* @__PURE__ */ n(u, {
|
|
37
|
+
className: "text-base",
|
|
38
|
+
children: e.name
|
|
39
|
+
}), /* @__PURE__ */ n(i, {
|
|
40
|
+
variant: e.status === "active" ? "default" : e.status === "completed" ? "secondary" : "outline",
|
|
41
|
+
className: "text-[10px]",
|
|
42
|
+
children: e.status
|
|
43
|
+
})]
|
|
44
|
+
}), /* @__PURE__ */ n(c, { children: e.description })] }), /* @__PURE__ */ r(s, { children: [
|
|
45
|
+
/* @__PURE__ */ r("div", {
|
|
46
|
+
className: "space-y-2 mb-3",
|
|
47
|
+
children: [/* @__PURE__ */ r("div", {
|
|
48
|
+
className: "flex justify-between text-xs",
|
|
49
|
+
children: [/* @__PURE__ */ r("span", { children: [
|
|
50
|
+
e.completedTasks,
|
|
51
|
+
"/",
|
|
52
|
+
e.tasks,
|
|
53
|
+
" ",
|
|
54
|
+
h("crewfoundry.projects.card.tasks", "tasks")
|
|
55
|
+
] }), /* @__PURE__ */ r("span", { children: [e.progress, "%"] })]
|
|
56
|
+
}), /* @__PURE__ */ n("div", {
|
|
57
|
+
className: "h-2 bg-muted rounded overflow-hidden",
|
|
58
|
+
children: /* @__PURE__ */ n("div", {
|
|
59
|
+
className: "h-2 bg-primary rounded",
|
|
60
|
+
style: { width: `${e.progress}%` }
|
|
61
|
+
})
|
|
62
|
+
})]
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ r("div", {
|
|
65
|
+
className: "grid grid-cols-2 gap-2 text-xs text-muted-foreground",
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ r("span", { children: [
|
|
68
|
+
h("crewfoundry.projects.card.team", "Team"),
|
|
69
|
+
": ",
|
|
70
|
+
e.teamName
|
|
71
|
+
] }),
|
|
72
|
+
/* @__PURE__ */ r("span", { children: [
|
|
73
|
+
h("crewfoundry.projects.card.manager", "Manager"),
|
|
74
|
+
": ",
|
|
75
|
+
e.managerName
|
|
76
|
+
] }),
|
|
77
|
+
/* @__PURE__ */ r("span", { children: [
|
|
78
|
+
h("crewfoundry.projects.card.budget", "Budget"),
|
|
79
|
+
": $",
|
|
80
|
+
(e.budget / 1e3).toFixed(0),
|
|
81
|
+
"K"
|
|
82
|
+
] }),
|
|
83
|
+
/* @__PURE__ */ r("span", { children: [
|
|
84
|
+
h("crewfoundry.projects.card.spent", "Spent"),
|
|
85
|
+
": $",
|
|
86
|
+
(e.spent / 1e3).toFixed(0),
|
|
87
|
+
"K"
|
|
88
|
+
] })
|
|
89
|
+
]
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ r("div", {
|
|
92
|
+
className: "flex gap-1 mt-2",
|
|
93
|
+
children: [/* @__PURE__ */ n(i, {
|
|
94
|
+
variant: e.priority === "critical" ? "destructive" : e.priority === "high" ? "default" : "secondary",
|
|
95
|
+
className: "text-[10px]",
|
|
96
|
+
children: e.priority
|
|
97
|
+
}), /* @__PURE__ */ r(i, {
|
|
98
|
+
variant: "outline",
|
|
99
|
+
className: "text-[10px]",
|
|
100
|
+
children: [
|
|
101
|
+
e.startDate,
|
|
102
|
+
" — ",
|
|
103
|
+
e.endDate
|
|
104
|
+
]
|
|
105
|
+
})]
|
|
106
|
+
})
|
|
107
|
+
] })]
|
|
108
|
+
}, e.id))
|
|
109
|
+
})]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { f as ProjectsProjectsPagePage };
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=ProjectsProjectsPagePage.js.map
|