@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,299 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { useMemo as t, useState as n } from "react";
|
|
3
|
+
import { BookOpen as r, ChevronRight as i, Code2 as a, Copy as o, ExternalLink as s, Lock as c, Search as l, Server as u, Zap as d } from "lucide-react";
|
|
4
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as m, Button as h, Card as g, CardContent as _, CardDescription as v, CardHeader as y, CardTitle as b, Input as x } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/crewfoundry/pages/HelpApiDocumentationPagePage.tsx
|
|
7
|
+
var S = {
|
|
8
|
+
GET: "bg-green-100 text-green-700",
|
|
9
|
+
POST: "bg-blue-100 text-blue-700",
|
|
10
|
+
PATCH: "bg-yellow-100 text-yellow-700",
|
|
11
|
+
DELETE: "bg-red-100 text-red-700"
|
|
12
|
+
};
|
|
13
|
+
function C() {
|
|
14
|
+
let { employees: C, jobPostings: w, candidates: T, payrollRecords: E, leaveRequests: D } = e(), [O, k] = n(""), [A, j] = n(null), M = t(() => [
|
|
15
|
+
{
|
|
16
|
+
name: "Employees",
|
|
17
|
+
version: "v2",
|
|
18
|
+
endpoints: [
|
|
19
|
+
{
|
|
20
|
+
method: "GET",
|
|
21
|
+
path: "/api/v2/employees",
|
|
22
|
+
description: `List all employees (${C.length} records) with pagination and filters`
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
method: "POST",
|
|
26
|
+
path: "/api/v2/employees",
|
|
27
|
+
description: "Create a new employee record"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
method: "GET",
|
|
31
|
+
path: "/api/v2/employees/:id",
|
|
32
|
+
description: "Get employee details by ID"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
method: "PATCH",
|
|
36
|
+
path: "/api/v2/employees/:id",
|
|
37
|
+
description: "Update employee information"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
method: "DELETE",
|
|
41
|
+
path: "/api/v2/employees/:id",
|
|
42
|
+
description: "Deactivate an employee record"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "Hiring",
|
|
48
|
+
version: "v2",
|
|
49
|
+
endpoints: [
|
|
50
|
+
{
|
|
51
|
+
method: "GET",
|
|
52
|
+
path: "/api/v2/jobs",
|
|
53
|
+
description: `List all job postings (${w.length} total)`
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
method: "POST",
|
|
57
|
+
path: "/api/v2/jobs",
|
|
58
|
+
description: "Create a new job posting"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
method: "GET",
|
|
62
|
+
path: "/api/v2/candidates",
|
|
63
|
+
description: `List candidates (${T.length}) with pipeline filters`
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
method: "POST",
|
|
67
|
+
path: "/api/v2/candidates",
|
|
68
|
+
description: "Add a new candidate to the pipeline"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "Payroll",
|
|
74
|
+
version: "v1",
|
|
75
|
+
endpoints: [
|
|
76
|
+
{
|
|
77
|
+
method: "GET",
|
|
78
|
+
path: "/api/v1/payroll/records",
|
|
79
|
+
description: `List payroll records by period (${E.length} loaded)`
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
method: "POST",
|
|
83
|
+
path: "/api/v1/payroll/run",
|
|
84
|
+
description: "Trigger payroll processing"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
method: "GET",
|
|
88
|
+
path: "/api/v1/payroll/reports",
|
|
89
|
+
description: "Generate payroll reports"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "Leave",
|
|
95
|
+
version: "v2",
|
|
96
|
+
endpoints: [
|
|
97
|
+
{
|
|
98
|
+
method: "GET",
|
|
99
|
+
path: "/api/v2/leave/requests",
|
|
100
|
+
description: `List leave requests with status filters (${D.length} total)`
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
method: "POST",
|
|
104
|
+
path: "/api/v2/leave/requests",
|
|
105
|
+
description: "Submit a new leave request"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
method: "PATCH",
|
|
109
|
+
path: "/api/v2/leave/requests/:id/approve",
|
|
110
|
+
description: "Approve a leave request"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
], [
|
|
115
|
+
T.length,
|
|
116
|
+
C.length,
|
|
117
|
+
w.length,
|
|
118
|
+
D.length,
|
|
119
|
+
E.length
|
|
120
|
+
]), N = (e) => {
|
|
121
|
+
j(e), setTimeout(() => j(null), 1500);
|
|
122
|
+
}, P = M.map((e) => ({
|
|
123
|
+
...e,
|
|
124
|
+
endpoints: e.endpoints.filter((e) => e.path.toLowerCase().includes(O.toLowerCase()) || e.description.toLowerCase().includes(O.toLowerCase()))
|
|
125
|
+
})).filter((e) => e.endpoints.length > 0);
|
|
126
|
+
return /* @__PURE__ */ p("div", {
|
|
127
|
+
className: "space-y-6 p-6",
|
|
128
|
+
children: [
|
|
129
|
+
/* @__PURE__ */ p("div", {
|
|
130
|
+
className: "flex items-center justify-between",
|
|
131
|
+
children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
|
|
132
|
+
className: "text-2xl font-semibold",
|
|
133
|
+
children: "API Documentation"
|
|
134
|
+
}), /* @__PURE__ */ f("p", {
|
|
135
|
+
className: "text-sm text-muted-foreground",
|
|
136
|
+
children: "CrewFoundry REST API reference for integrations"
|
|
137
|
+
})] }), /* @__PURE__ */ p("div", {
|
|
138
|
+
className: "flex gap-2",
|
|
139
|
+
children: [/* @__PURE__ */ f(m, {
|
|
140
|
+
variant: "secondary",
|
|
141
|
+
children: "Base URL: api.crewfoundry.com"
|
|
142
|
+
}), /* @__PURE__ */ p(h, {
|
|
143
|
+
size: "sm",
|
|
144
|
+
variant: "outline",
|
|
145
|
+
children: [/* @__PURE__ */ f(s, { className: "h-3 w-3 mr-1" }), "OpenAPI Spec"]
|
|
146
|
+
})]
|
|
147
|
+
})]
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ f("div", {
|
|
150
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
151
|
+
children: [
|
|
152
|
+
{
|
|
153
|
+
icon: u,
|
|
154
|
+
label: "REST API",
|
|
155
|
+
value: "v2.1.0",
|
|
156
|
+
color: "text-blue-500"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
icon: a,
|
|
160
|
+
label: "GraphQL",
|
|
161
|
+
value: "Federation v2",
|
|
162
|
+
color: "text-purple-500"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
icon: c,
|
|
166
|
+
label: "Auth",
|
|
167
|
+
value: "OAuth 2.0 + JWT",
|
|
168
|
+
color: "text-green-500"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
icon: d,
|
|
172
|
+
label: "Rate Limit",
|
|
173
|
+
value: "1,000 req/min",
|
|
174
|
+
color: "text-yellow-500"
|
|
175
|
+
}
|
|
176
|
+
].map((e) => /* @__PURE__ */ f(g, { children: /* @__PURE__ */ p(_, {
|
|
177
|
+
className: "flex items-center gap-3 pt-6",
|
|
178
|
+
children: [/* @__PURE__ */ f(e.icon, { className: `h-5 w-5 ${e.color}` }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
|
|
179
|
+
className: "text-xs text-muted-foreground",
|
|
180
|
+
children: e.label
|
|
181
|
+
}), /* @__PURE__ */ f("p", {
|
|
182
|
+
className: "text-sm font-medium",
|
|
183
|
+
children: e.value
|
|
184
|
+
})] })]
|
|
185
|
+
}) }, e.label))
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ p("div", {
|
|
188
|
+
className: "grid gap-6 lg:grid-cols-4",
|
|
189
|
+
children: [/* @__PURE__ */ p("div", {
|
|
190
|
+
className: "space-y-4",
|
|
191
|
+
children: [/* @__PURE__ */ p(g, { children: [/* @__PURE__ */ f(y, { children: /* @__PURE__ */ f(b, {
|
|
192
|
+
className: "text-sm",
|
|
193
|
+
children: "Quick Start"
|
|
194
|
+
}) }), /* @__PURE__ */ f(_, {
|
|
195
|
+
className: "space-y-2",
|
|
196
|
+
children: [
|
|
197
|
+
{
|
|
198
|
+
icon: r,
|
|
199
|
+
label: "Authentication Guide"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
icon: a,
|
|
203
|
+
label: "SDK Reference"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
icon: d,
|
|
207
|
+
label: "Webhooks"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
icon: u,
|
|
211
|
+
label: "Rate Limiting"
|
|
212
|
+
}
|
|
213
|
+
].map((e) => /* @__PURE__ */ p("button", {
|
|
214
|
+
className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-muted transition-colors",
|
|
215
|
+
children: [
|
|
216
|
+
/* @__PURE__ */ f(e.icon, { className: "h-3 w-3 text-muted-foreground" }),
|
|
217
|
+
/* @__PURE__ */ f("span", { children: e.label }),
|
|
218
|
+
/* @__PURE__ */ f(i, { className: "h-3 w-3 ml-auto text-muted-foreground" })
|
|
219
|
+
]
|
|
220
|
+
}, e.label))
|
|
221
|
+
})] }), /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ f(y, { children: /* @__PURE__ */ f(b, {
|
|
222
|
+
className: "text-sm",
|
|
223
|
+
children: "Authentication"
|
|
224
|
+
}) }), /* @__PURE__ */ p(_, {
|
|
225
|
+
className: "space-y-2",
|
|
226
|
+
children: [/* @__PURE__ */ f("div", {
|
|
227
|
+
className: "rounded-md bg-muted p-3",
|
|
228
|
+
children: /* @__PURE__ */ p("code", {
|
|
229
|
+
className: "text-xs font-mono",
|
|
230
|
+
children: ["Authorization: Bearer ", "<token>"]
|
|
231
|
+
})
|
|
232
|
+
}), /* @__PURE__ */ f("p", {
|
|
233
|
+
className: "text-xs text-muted-foreground",
|
|
234
|
+
children: "All API requests require a valid JWT token obtained through the OAuth 2.0 flow."
|
|
235
|
+
})]
|
|
236
|
+
})] })]
|
|
237
|
+
}), /* @__PURE__ */ p("div", {
|
|
238
|
+
className: "lg:col-span-3 space-y-4",
|
|
239
|
+
children: [
|
|
240
|
+
/* @__PURE__ */ p("div", {
|
|
241
|
+
className: "relative max-w-md",
|
|
242
|
+
children: [/* @__PURE__ */ f(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ f(x, {
|
|
243
|
+
placeholder: "Search endpoints...",
|
|
244
|
+
className: "pl-9",
|
|
245
|
+
value: O,
|
|
246
|
+
onChange: (e) => k(e.target.value)
|
|
247
|
+
})]
|
|
248
|
+
}),
|
|
249
|
+
P.map((e) => /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ p("div", {
|
|
250
|
+
className: "flex items-center gap-2",
|
|
251
|
+
children: [/* @__PURE__ */ f(b, {
|
|
252
|
+
className: "text-base",
|
|
253
|
+
children: e.name
|
|
254
|
+
}), /* @__PURE__ */ f(m, {
|
|
255
|
+
variant: "outline",
|
|
256
|
+
className: "text-[10px]",
|
|
257
|
+
children: e.version
|
|
258
|
+
})]
|
|
259
|
+
}), /* @__PURE__ */ p(v, { children: [e.endpoints.length, " endpoints"] })] }), /* @__PURE__ */ f(_, {
|
|
260
|
+
className: "p-0",
|
|
261
|
+
children: e.endpoints.map((t, n) => /* @__PURE__ */ p("div", {
|
|
262
|
+
className: `flex items-center gap-3 px-6 py-3 hover:bg-muted/50 cursor-pointer ${n < e.endpoints.length - 1 ? "border-b" : ""}`,
|
|
263
|
+
children: [
|
|
264
|
+
/* @__PURE__ */ f(m, {
|
|
265
|
+
className: `${S[t.method]} text-[10px] font-mono border-0 min-w-[50px] justify-center`,
|
|
266
|
+
children: t.method
|
|
267
|
+
}),
|
|
268
|
+
/* @__PURE__ */ f("code", {
|
|
269
|
+
className: "text-sm font-mono flex-1",
|
|
270
|
+
children: t.path
|
|
271
|
+
}),
|
|
272
|
+
/* @__PURE__ */ f("span", {
|
|
273
|
+
className: "text-xs text-muted-foreground hidden lg:block max-w-[250px] truncate",
|
|
274
|
+
children: t.description
|
|
275
|
+
}),
|
|
276
|
+
/* @__PURE__ */ f(h, {
|
|
277
|
+
variant: "ghost",
|
|
278
|
+
size: "sm",
|
|
279
|
+
className: "h-6 w-6 p-0",
|
|
280
|
+
onClick: () => N(t.path),
|
|
281
|
+
children: /* @__PURE__ */ f(o, { className: `h-3 w-3 ${A === t.path ? "text-green-500" : "text-muted-foreground"}` })
|
|
282
|
+
})
|
|
283
|
+
]
|
|
284
|
+
}, t.path + t.method))
|
|
285
|
+
})] }, e.name)),
|
|
286
|
+
P.length === 0 && /* @__PURE__ */ f("div", {
|
|
287
|
+
className: "rounded-lg border p-8 text-center text-sm text-muted-foreground",
|
|
288
|
+
children: "No endpoints match your search criteria."
|
|
289
|
+
})
|
|
290
|
+
]
|
|
291
|
+
})]
|
|
292
|
+
})
|
|
293
|
+
]
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
//#endregion
|
|
297
|
+
export { C as HelpApiDocumentationPagePage };
|
|
298
|
+
|
|
299
|
+
//# sourceMappingURL=HelpApiDocumentationPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpApiDocumentationPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HelpApiDocumentationPagePage.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport {\n BookOpen,\n ChevronRight,\n Code2,\n Copy,\n ExternalLink,\n Lock,\n Search,\n Server,\n Zap,\n} from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nconst methodColors: Record<string, string> = {\n GET: 'bg-green-100 text-green-700',\n POST: 'bg-blue-100 text-blue-700',\n PATCH: 'bg-yellow-100 text-yellow-700',\n DELETE: 'bg-red-100 text-red-700',\n};\n\nexport function HelpApiDocumentationPagePage() {\n const { employees, jobPostings, candidates, payrollRecords, leaveRequests } =\n useCrewFoundryStore();\n const [search, setSearch] = useState('');\n const [copiedPath, setCopiedPath] = useState<string | null>(null);\n\n const apiSections = useMemo(\n () => [\n {\n name: 'Employees',\n version: 'v2',\n endpoints: [\n {\n method: 'GET',\n path: '/api/v2/employees',\n description: `List all employees (${employees.length} records) with pagination and filters`,\n },\n {\n method: 'POST',\n path: '/api/v2/employees',\n description: 'Create a new employee record',\n },\n {\n method: 'GET',\n path: '/api/v2/employees/:id',\n description: 'Get employee details by ID',\n },\n {\n method: 'PATCH',\n path: '/api/v2/employees/:id',\n description: 'Update employee information',\n },\n {\n method: 'DELETE',\n path: '/api/v2/employees/:id',\n description: 'Deactivate an employee record',\n },\n ],\n },\n {\n name: 'Hiring',\n version: 'v2',\n endpoints: [\n {\n method: 'GET',\n path: '/api/v2/jobs',\n description: `List all job postings (${jobPostings.length} total)`,\n },\n { method: 'POST', path: '/api/v2/jobs', description: 'Create a new job posting' },\n {\n method: 'GET',\n path: '/api/v2/candidates',\n description: `List candidates (${candidates.length}) with pipeline filters`,\n },\n {\n method: 'POST',\n path: '/api/v2/candidates',\n description: 'Add a new candidate to the pipeline',\n },\n ],\n },\n {\n name: 'Payroll',\n version: 'v1',\n endpoints: [\n {\n method: 'GET',\n path: '/api/v1/payroll/records',\n description: `List payroll records by period (${payrollRecords.length} loaded)`,\n },\n {\n method: 'POST',\n path: '/api/v1/payroll/run',\n description: 'Trigger payroll processing',\n },\n {\n method: 'GET',\n path: '/api/v1/payroll/reports',\n description: 'Generate payroll reports',\n },\n ],\n },\n {\n name: 'Leave',\n version: 'v2',\n endpoints: [\n {\n method: 'GET',\n path: '/api/v2/leave/requests',\n description: `List leave requests with status filters (${leaveRequests.length} total)`,\n },\n {\n method: 'POST',\n path: '/api/v2/leave/requests',\n description: 'Submit a new leave request',\n },\n {\n method: 'PATCH',\n path: '/api/v2/leave/requests/:id/approve',\n description: 'Approve a leave request',\n },\n ],\n },\n ],\n [\n candidates.length,\n employees.length,\n jobPostings.length,\n leaveRequests.length,\n payrollRecords.length,\n ]\n );\n\n const handleCopy = (path: string) => {\n setCopiedPath(path);\n setTimeout(() => setCopiedPath(null), 1500);\n };\n\n const filteredSections = apiSections\n .map((section) => ({\n ...section,\n endpoints: section.endpoints.filter(\n (ep) =>\n ep.path.toLowerCase().includes(search.toLowerCase()) ||\n ep.description.toLowerCase().includes(search.toLowerCase())\n ),\n }))\n .filter((s) => s.endpoints.length > 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">API Documentation</h1>\n <p className=\"text-sm text-muted-foreground\">\n CrewFoundry REST API reference for integrations\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Badge variant=\"secondary\">Base URL: api.crewfoundry.com</Badge>\n <Button size=\"sm\" variant=\"outline\">\n <ExternalLink className=\"h-3 w-3 mr-1\" />\n OpenAPI Spec\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n { icon: Server, label: 'REST API', value: 'v2.1.0', color: 'text-blue-500' },\n { icon: Code2, label: 'GraphQL', value: 'Federation v2', color: 'text-purple-500' },\n { icon: Lock, label: 'Auth', value: 'OAuth 2.0 + JWT', color: 'text-green-500' },\n { icon: Zap, label: 'Rate Limit', value: '1,000 req/min', color: 'text-yellow-500' },\n ].map((item) => (\n <Card key={item.label}>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <item.icon className={`h-5 w-5 ${item.color}`} />\n <div>\n <p className=\"text-xs text-muted-foreground\">{item.label}</p>\n <p className=\"text-sm font-medium\">{item.value}</p>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-4\">\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Quick Start</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {[\n { icon: BookOpen, label: 'Authentication Guide' },\n { icon: Code2, label: 'SDK Reference' },\n { icon: Zap, label: 'Webhooks' },\n { icon: Server, label: 'Rate Limiting' },\n ].map((link) => (\n <button\n key={link.label}\n className=\"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-muted transition-colors\"\n >\n <link.icon className=\"h-3 w-3 text-muted-foreground\" />\n <span>{link.label}</span>\n <ChevronRight className=\"h-3 w-3 ml-auto text-muted-foreground\" />\n </button>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Authentication</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <div className=\"rounded-md bg-muted p-3\">\n <code className=\"text-xs font-mono\">Authorization: Bearer {'<token>'}</code>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n All API requests require a valid JWT token obtained through the OAuth 2.0 flow.\n </p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"lg:col-span-3 space-y-4\">\n <div className=\"relative max-w-md\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search endpoints...\"\n className=\"pl-9\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n\n {filteredSections.map((section) => (\n <Card key={section.name}>\n <CardHeader>\n <div className=\"flex items-center gap-2\">\n <CardTitle className=\"text-base\">{section.name}</CardTitle>\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {section.version}\n </Badge>\n </div>\n <CardDescription>{section.endpoints.length} endpoints</CardDescription>\n </CardHeader>\n <CardContent className=\"p-0\">\n {section.endpoints.map((ep, i) => (\n <div\n key={ep.path + ep.method}\n className={`flex items-center gap-3 px-6 py-3 hover:bg-muted/50 cursor-pointer ${i < section.endpoints.length - 1 ? 'border-b' : ''}`}\n >\n <Badge\n className={`${methodColors[ep.method]} text-[10px] font-mono border-0 min-w-[50px] justify-center`}\n >\n {ep.method}\n </Badge>\n <code className=\"text-sm font-mono flex-1\">{ep.path}</code>\n <span className=\"text-xs text-muted-foreground hidden lg:block max-w-[250px] truncate\">\n {ep.description}\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0\"\n onClick={() => handleCopy(ep.path)}\n >\n <Copy\n className={`h-3 w-3 ${copiedPath === ep.path ? 'text-green-500' : 'text-muted-foreground'}`}\n />\n </Button>\n </div>\n ))}\n </CardContent>\n </Card>\n ))}\n\n {filteredSections.length === 0 && (\n <div className=\"rounded-lg border p-8 text-center text-sm text-muted-foreground\">\n No endpoints match your search criteria.\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HiringApplicationsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/HiringApplicationsPagePage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,0BAA0B,4CAyJzC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { Clock as t, FileText as n, Star as r, UserCheck 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/HiringApplicationsPagePage.tsx
|
|
6
|
+
function m() {
|
|
7
|
+
let { candidates: m, jobPostings: h } = e(), g = m.filter((e) => e.status === "new"), _ = m.filter((e) => e.status === "screening"), v = m.filter((e) => e.status === "interview"), y = h.reduce((e, t) => e + t.applicants, 0);
|
|
8
|
+
return /* @__PURE__ */ s("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ o("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
14
|
+
className: "text-2xl font-semibold",
|
|
15
|
+
children: "Applications"
|
|
16
|
+
}), /* @__PURE__ */ s("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: [y, " total applications across all positions"]
|
|
19
|
+
})] })
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ s("div", {
|
|
22
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
25
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
26
|
+
children: [/* @__PURE__ */ o(p, {
|
|
27
|
+
className: "text-sm font-medium",
|
|
28
|
+
children: "New"
|
|
29
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-blue-500" })]
|
|
30
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
31
|
+
className: "text-2xl font-bold",
|
|
32
|
+
children: g.length
|
|
33
|
+
}), /* @__PURE__ */ o("p", {
|
|
34
|
+
className: "text-xs text-muted-foreground",
|
|
35
|
+
children: "Unreviewed applications"
|
|
36
|
+
})] })] }),
|
|
37
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
38
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
39
|
+
children: [/* @__PURE__ */ o(p, {
|
|
40
|
+
className: "text-sm font-medium",
|
|
41
|
+
children: "Screening"
|
|
42
|
+
}), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-yellow-500" })]
|
|
43
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
44
|
+
className: "text-2xl font-bold",
|
|
45
|
+
children: _.length
|
|
46
|
+
}), /* @__PURE__ */ o("p", {
|
|
47
|
+
className: "text-xs text-muted-foreground",
|
|
48
|
+
children: "Under review"
|
|
49
|
+
})] })] }),
|
|
50
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
51
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
52
|
+
children: [/* @__PURE__ */ o(p, {
|
|
53
|
+
className: "text-sm font-medium",
|
|
54
|
+
children: "Interview Stage"
|
|
55
|
+
}), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-purple-500" })]
|
|
56
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
57
|
+
className: "text-2xl font-bold",
|
|
58
|
+
children: v.length
|
|
59
|
+
}), /* @__PURE__ */ o("p", {
|
|
60
|
+
className: "text-xs text-muted-foreground",
|
|
61
|
+
children: "Moving forward"
|
|
62
|
+
})] })] }),
|
|
63
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, {
|
|
64
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
65
|
+
children: [/* @__PURE__ */ o(p, {
|
|
66
|
+
className: "text-sm font-medium",
|
|
67
|
+
children: "Conversion Rate"
|
|
68
|
+
}), /* @__PURE__ */ o(i, { className: "h-4 w-4 text-green-500" })]
|
|
69
|
+
}), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o("div", {
|
|
70
|
+
className: "text-2xl font-bold",
|
|
71
|
+
children: "4.8%"
|
|
72
|
+
}), /* @__PURE__ */ o("p", {
|
|
73
|
+
className: "text-xs text-muted-foreground",
|
|
74
|
+
children: "Application to hire"
|
|
75
|
+
})] })] })
|
|
76
|
+
]
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, { children: [/* @__PURE__ */ o(p, { children: "Applications by Position" }), /* @__PURE__ */ o(d, { children: "Applicant count per open role" })] }), /* @__PURE__ */ o(u, {
|
|
79
|
+
className: "space-y-3",
|
|
80
|
+
children: h.sort((e, t) => t.applicants - e.applicants).map((e) => {
|
|
81
|
+
let t = Math.max(...h.map((e) => e.applicants));
|
|
82
|
+
return /* @__PURE__ */ s("div", {
|
|
83
|
+
className: "flex items-center gap-3",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ o("span", {
|
|
86
|
+
className: "w-56 text-sm font-medium truncate",
|
|
87
|
+
children: e.title
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ o("div", {
|
|
90
|
+
className: "flex-1 h-4 bg-muted rounded overflow-hidden",
|
|
91
|
+
children: /* @__PURE__ */ o("div", {
|
|
92
|
+
className: "h-4 bg-primary rounded",
|
|
93
|
+
style: { width: `${Math.round(e.applicants / t * 100)}%` }
|
|
94
|
+
})
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ o("span", {
|
|
97
|
+
className: "text-sm font-medium w-10 text-right",
|
|
98
|
+
children: e.applicants
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ o(c, {
|
|
101
|
+
variant: e.status === "active" ? "default" : "secondary",
|
|
102
|
+
className: "text-[10px]",
|
|
103
|
+
children: e.status
|
|
104
|
+
})
|
|
105
|
+
]
|
|
106
|
+
}, e.id);
|
|
107
|
+
})
|
|
108
|
+
})] }),
|
|
109
|
+
/* @__PURE__ */ s(l, { children: [/* @__PURE__ */ s(f, { children: [/* @__PURE__ */ o(p, { children: "All Candidates" }), /* @__PURE__ */ o(d, { children: "Complete candidate pipeline" })] }), /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s("div", {
|
|
110
|
+
className: "grid grid-cols-7 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2",
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ o("span", { children: "Candidate" }),
|
|
113
|
+
/* @__PURE__ */ o("span", { children: "Position" }),
|
|
114
|
+
/* @__PURE__ */ o("span", { children: "Company" }),
|
|
115
|
+
/* @__PURE__ */ o("span", {
|
|
116
|
+
className: "text-right",
|
|
117
|
+
children: "Experience"
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ o("span", {
|
|
120
|
+
className: "text-center",
|
|
121
|
+
children: "Rating"
|
|
122
|
+
}),
|
|
123
|
+
/* @__PURE__ */ o("span", { children: "Skills" }),
|
|
124
|
+
/* @__PURE__ */ o("span", {
|
|
125
|
+
className: "text-center",
|
|
126
|
+
children: "Status"
|
|
127
|
+
})
|
|
128
|
+
]
|
|
129
|
+
}), m.map((e) => /* @__PURE__ */ s("div", {
|
|
130
|
+
className: "grid grid-cols-7 gap-2 py-2 border-b last:border-0 text-sm",
|
|
131
|
+
children: [
|
|
132
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ s("p", {
|
|
133
|
+
className: "font-medium",
|
|
134
|
+
children: [
|
|
135
|
+
e.firstName,
|
|
136
|
+
" ",
|
|
137
|
+
e.lastName
|
|
138
|
+
]
|
|
139
|
+
}), /* @__PURE__ */ o("p", {
|
|
140
|
+
className: "text-xs text-muted-foreground",
|
|
141
|
+
children: e.email
|
|
142
|
+
})] }),
|
|
143
|
+
/* @__PURE__ */ o("span", {
|
|
144
|
+
className: "text-muted-foreground truncate",
|
|
145
|
+
children: e.position
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ o("span", {
|
|
148
|
+
className: "text-muted-foreground",
|
|
149
|
+
children: e.currentCompany
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ s("span", {
|
|
152
|
+
className: "text-right",
|
|
153
|
+
children: [e.experience, " yrs"]
|
|
154
|
+
}),
|
|
155
|
+
/* @__PURE__ */ s("div", {
|
|
156
|
+
className: "flex items-center justify-center gap-1",
|
|
157
|
+
children: [/* @__PURE__ */ o(r, { className: "h-3 w-3 text-yellow-500" }), e.rating]
|
|
158
|
+
}),
|
|
159
|
+
/* @__PURE__ */ o("div", {
|
|
160
|
+
className: "flex flex-wrap gap-1",
|
|
161
|
+
children: e.skills.slice(0, 2).map((e) => /* @__PURE__ */ o(c, {
|
|
162
|
+
variant: "outline",
|
|
163
|
+
className: "text-[9px]",
|
|
164
|
+
children: e
|
|
165
|
+
}, e))
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ o("div", {
|
|
168
|
+
className: "text-center",
|
|
169
|
+
children: /* @__PURE__ */ o(c, {
|
|
170
|
+
variant: e.status === "hired" || e.status === "offer" ? "default" : e.status === "rejected" ? "destructive" : "secondary",
|
|
171
|
+
className: "text-[10px]",
|
|
172
|
+
children: e.status
|
|
173
|
+
})
|
|
174
|
+
})
|
|
175
|
+
]
|
|
176
|
+
}, e.id))] })] })
|
|
177
|
+
]
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
//#endregion
|
|
181
|
+
export { m as HiringApplicationsPagePage };
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=HiringApplicationsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HiringApplicationsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringApplicationsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Clock, FileText, Star, UserCheck, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringApplicationsPagePage() {\n const { candidates, jobPostings } = useCrewFoundryStore();\n\n const newApps = candidates.filter((c) => c.status === 'new');\n const screeningApps = candidates.filter((c) => c.status === 'screening');\n const interviewApps = candidates.filter((c) => c.status === 'interview');\n const totalApps = jobPostings.reduce((s, j) => s + j.applicants, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Applications</h1>\n <p className=\"text-sm text-muted-foreground\">\n {totalApps} total applications across all positions\n </p>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">New</CardTitle>\n <FileText className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{newApps.length}</div>\n <p className=\"text-xs text-muted-foreground\">Unreviewed applications</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\">Screening</CardTitle>\n <Clock className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{screeningApps.length}</div>\n <p className=\"text-xs text-muted-foreground\">Under review</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\">Interview Stage</CardTitle>\n <Users className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{interviewApps.length}</div>\n <p className=\"text-xs text-muted-foreground\">Moving forward</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\">Conversion Rate</CardTitle>\n <UserCheck className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">4.8%</div>\n <p className=\"text-xs text-muted-foreground\">Application to hire</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Applications by Position</CardTitle>\n <CardDescription>Applicant count per open role</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {jobPostings\n .sort((a, b) => b.applicants - a.applicants)\n .map((job) => {\n const maxApplicants = Math.max(...jobPostings.map((j) => j.applicants));\n return (\n <div key={job.id} className=\"flex items-center gap-3\">\n <span className=\"w-56 text-sm font-medium truncate\">{job.title}</span>\n <div className=\"flex-1 h-4 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-4 bg-primary rounded\"\n style={{ width: `${Math.round((job.applicants / maxApplicants) * 100)}%` }}\n />\n </div>\n <span className=\"text-sm font-medium w-10 text-right\">{job.applicants}</span>\n <Badge\n variant={job.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {job.status}\n </Badge>\n </div>\n );\n })}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>All Candidates</CardTitle>\n <CardDescription>Complete candidate pipeline</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-7 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2\">\n <span>Candidate</span>\n <span>Position</span>\n <span>Company</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span>Skills</span>\n <span className=\"text-center\">Status</span>\n </div>\n {candidates.map((c) => (\n <div key={c.id} className=\"grid grid-cols-7 gap-2 py-2 border-b last:border-0 text-sm\">\n <div>\n <p className=\"font-medium\">\n {c.firstName} {c.lastName}\n </p>\n <p className=\"text-xs text-muted-foreground\">{c.email}</p>\n </div>\n <span className=\"text-muted-foreground truncate\">{c.position}</span>\n <span className=\"text-muted-foreground\">{c.currentCompany}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"flex items-center justify-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {c.rating}\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {c.skills.slice(0, 2).map((s) => (\n <Badge key={s} variant=\"outline\" className=\"text-[9px]\">\n {s}\n </Badge>\n ))}\n </div>\n <div className=\"text-center\">\n <Badge\n variant={\n c.status === 'hired'\n ? 'default'\n : c.status === 'offer'\n ? 'default'\n : c.status === 'rejected'\n ? 'destructive'\n : 'secondary'\n }\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HiringCandidatesPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/HiringCandidatesPagePage.tsx"],"names":[],"mappings":"AAcA,wBAAgB,wBAAwB,4CA8GvC"}
|