@burdenoff/microfe-crewfoundry 2026.703.2 → 2026.704.2
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/dist/crewfoundry/components/forms/FormModal.js.map +1 -1
- package/dist/crewfoundry/pages/AdminAdminPagePage.js +117 -164
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +99 -82
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +160 -192
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +238 -231
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +196 -166
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +45 -147
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +20 -11
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +45 -152
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +50 -138
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +149 -67
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +50 -201
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +205 -136
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -31
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +118 -104
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +117 -58
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +90 -94
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +210 -191
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +213 -180
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +133 -264
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +279 -212
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +131 -105
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +167 -148
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +3 -3
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +13 -5
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +151 -152
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +38 -21
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +3 -3
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +134 -127
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +163 -132
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +202 -160
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +104 -91
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +29 -147
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +22 -106
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +74 -74
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +101 -97
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +64 -47
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +111 -121
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +131 -110
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +65 -64
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +58 -43
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +66 -82
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +38 -88
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +59 -65
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +209 -323
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +175 -220
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +74 -59
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +96 -80
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +28 -100
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +27 -20
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +73 -73
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +62 -56
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +40 -138
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +126 -93
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +99 -77
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +73 -74
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +122 -122
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +130 -113
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +68 -59
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +73 -62
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +82 -58
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +153 -153
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +63 -48
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LearningAssessmentsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningAssessmentsPagePage.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"LearningAssessmentsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningAssessmentsPagePage.tsx"],"sourcesContent":["import { Button, GradientText, IllustratedEmptyState, PagePurpose } from '@burdenoff/fe-libs/ui';\nimport { useNavigate } from 'react-router-dom';\n\nexport function LearningAssessmentsPagePage() {\n const navigate = useNavigate();\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Assessments</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Quizzes and exams for your enrolled courses</p>\n <PagePurpose className=\"mt-1\">\n Create and review assessments that measure what your team has learned — use them to\n certify skills and identify knowledge gaps.\n </PagePurpose>\n </div>\n\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"Assessments are coming soon\"\n description=\"Course assessments — question banks, timed attempts, scoring and pass thresholds — are being built. Once available, the quizzes tied to your enrolled courses will appear here.\"\n action={\n <Button variant=\"outline\" onClick={() => navigate('../../learning/courses-page')}>\n Browse courses\n </Button>\n }\n />\n </div>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,IAA8B;CAC5C,IAAM,IAAW,GAAa;AAE9B,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAc,eAA0B,CAAA;IACrC,CAAA;GACL,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAA+C,CAAA;GAC1F,kBAAC,GAAD;IAAa,WAAU;cAAO;IAGhB,CAAA;GACV,EAAA,CAAA,EAEN,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,GAAD;IAAQ,SAAQ;IAAU,eAAe,EAAS,8BAA8B;cAAE;IAEzE,CAAA;GAEX,CAAA,CACE"}
|
|
@@ -1,121 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
|
-
import { Badge as s, Button as c, CardContent as l, CardHeader as u, CardTitle as d, GlassCard as f, GradientText as p, IllustratedEmptyState as m, PagePurpose as h } from "@burdenoff/fe-libs/ui";
|
|
1
|
+
import { useNavigate as e } from "react-router-dom";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
import { Button as r, GradientText as i, IllustratedEmptyState as a, PagePurpose as o } from "@burdenoff/fe-libs/ui";
|
|
6
4
|
//#region src/crewfoundry/pages/LearningCertificatesPagePage.tsx
|
|
7
|
-
|
|
8
|
-
let
|
|
9
|
-
return
|
|
10
|
-
};
|
|
11
|
-
function v() {
|
|
12
|
-
let { courses: v, employees: y } = e(), b = t(() => v.slice(0, 12).map((e, t) => {
|
|
13
|
-
let n = y[t % Math.max(y.length, 1)]?.firstName && y[t % Math.max(y.length, 1)]?.lastName ? `${y[t % y.length].firstName} ${y[t % y.length].lastName}` : e.instructor;
|
|
14
|
-
return {
|
|
15
|
-
id: e.id,
|
|
16
|
-
title: e.title,
|
|
17
|
-
issueDate: _((/* @__PURE__ */ new Date(g - t * 864e5 * 12)).toISOString()),
|
|
18
|
-
instructor: n,
|
|
19
|
-
credentialId: `CF-${e.id.slice(0, 6).toUpperCase()}-${t + 1}`,
|
|
20
|
-
status: t % 5 == 0 ? "expiring" : "active",
|
|
21
|
-
expiryDate: t % 5 == 0 ? _(new Date(g + 864e5 * (60 + t * 3)).toISOString()) : void 0
|
|
22
|
-
};
|
|
23
|
-
}), [v, y]);
|
|
24
|
-
return /* @__PURE__ */ o("div", {
|
|
5
|
+
function s() {
|
|
6
|
+
let s = e();
|
|
7
|
+
return /* @__PURE__ */ n("div", {
|
|
25
8
|
className: "space-y-6 p-6",
|
|
26
|
-
children: [/* @__PURE__ */
|
|
27
|
-
/* @__PURE__ */
|
|
9
|
+
children: [/* @__PURE__ */ n("div", { children: [
|
|
10
|
+
/* @__PURE__ */ t("h1", {
|
|
28
11
|
className: "text-2xl font-semibold",
|
|
29
|
-
children: /* @__PURE__ */
|
|
12
|
+
children: /* @__PURE__ */ t(i, { children: "Certificates" })
|
|
30
13
|
}),
|
|
31
|
-
/* @__PURE__ */
|
|
14
|
+
/* @__PURE__ */ t("p", {
|
|
32
15
|
className: "text-sm text-text-secondary",
|
|
33
|
-
children:
|
|
16
|
+
children: "Proof of completed training and validated skills"
|
|
34
17
|
}),
|
|
35
|
-
/* @__PURE__ */
|
|
18
|
+
/* @__PURE__ */ t(o, {
|
|
36
19
|
className: "mt-1",
|
|
37
20
|
children: "View and manage the certificates your team has earned — proof of completed training and validated skills."
|
|
38
21
|
})
|
|
39
|
-
] }), /* @__PURE__ */ a
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}) : b.map((e, t) => /* @__PURE__ */ o(f, {
|
|
49
|
-
treatment: t === 0 ? "glass" : "plain",
|
|
50
|
-
glow: t === 0,
|
|
51
|
-
children: [/* @__PURE__ */ o(u, { children: [/* @__PURE__ */ o("div", {
|
|
52
|
-
className: "flex items-center justify-between",
|
|
53
|
-
children: [/* @__PURE__ */ a(n, { className: "h-8 w-8 text-status-warning-text" }), /* @__PURE__ */ a(s, {
|
|
54
|
-
variant: e.status === "active" ? "default" : "secondary",
|
|
55
|
-
className: "text-[10px]",
|
|
56
|
-
children: e.status
|
|
57
|
-
})]
|
|
58
|
-
}), /* @__PURE__ */ a(d, {
|
|
59
|
-
className: "mt-2 text-base",
|
|
60
|
-
children: e.title
|
|
61
|
-
})] }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ o("div", {
|
|
62
|
-
className: "space-y-2 text-sm text-text-secondary",
|
|
63
|
-
children: [
|
|
64
|
-
/* @__PURE__ */ o("div", { children: [
|
|
65
|
-
/* @__PURE__ */ a("span", {
|
|
66
|
-
className: "text-xs",
|
|
67
|
-
children: "Instructor:"
|
|
68
|
-
}),
|
|
69
|
-
" ",
|
|
70
|
-
e.instructor
|
|
71
|
-
] }),
|
|
72
|
-
/* @__PURE__ */ o("div", { children: [
|
|
73
|
-
/* @__PURE__ */ a("span", {
|
|
74
|
-
className: "text-xs",
|
|
75
|
-
children: "Issued:"
|
|
76
|
-
}),
|
|
77
|
-
" ",
|
|
78
|
-
e.issueDate
|
|
79
|
-
] }),
|
|
80
|
-
/* @__PURE__ */ o("div", { children: [
|
|
81
|
-
/* @__PURE__ */ a("span", {
|
|
82
|
-
className: "text-xs",
|
|
83
|
-
children: "Credential ID:"
|
|
84
|
-
}),
|
|
85
|
-
" ",
|
|
86
|
-
e.credentialId
|
|
87
|
-
] }),
|
|
88
|
-
e.expiryDate ? /* @__PURE__ */ o("div", {
|
|
89
|
-
className: "text-status-warning-text",
|
|
90
|
-
children: [
|
|
91
|
-
/* @__PURE__ */ a("span", {
|
|
92
|
-
className: "text-xs",
|
|
93
|
-
children: "Expires:"
|
|
94
|
-
}),
|
|
95
|
-
" ",
|
|
96
|
-
e.expiryDate
|
|
97
|
-
]
|
|
98
|
-
}) : null
|
|
99
|
-
]
|
|
100
|
-
}), /* @__PURE__ */ o("div", {
|
|
101
|
-
className: "mt-3 flex gap-2",
|
|
102
|
-
children: [/* @__PURE__ */ o(c, {
|
|
103
|
-
variant: "outline",
|
|
104
|
-
size: "sm",
|
|
105
|
-
className: "flex-1",
|
|
106
|
-
children: [/* @__PURE__ */ a(r, { className: "mr-1 h-3 w-3" }), "Download"]
|
|
107
|
-
}), /* @__PURE__ */ o(c, {
|
|
108
|
-
variant: "outline",
|
|
109
|
-
size: "sm",
|
|
110
|
-
className: "flex-1",
|
|
111
|
-
children: [/* @__PURE__ */ a(i, { className: "mr-1 h-3 w-3" }), "Verify"]
|
|
112
|
-
})]
|
|
113
|
-
})] })]
|
|
114
|
-
}, e.id))
|
|
22
|
+
] }), /* @__PURE__ */ t(a, {
|
|
23
|
+
illustration: "empty-generic",
|
|
24
|
+
title: "No certificates yet",
|
|
25
|
+
description: "Certificates are issued when a course is completed. Once certificate issuance is available, every credential you earn will appear here with its issue date and verification link.",
|
|
26
|
+
action: /* @__PURE__ */ t(r, {
|
|
27
|
+
variant: "outline",
|
|
28
|
+
onClick: () => s("../../learning/courses-page"),
|
|
29
|
+
children: "Browse courses"
|
|
30
|
+
})
|
|
115
31
|
})]
|
|
116
32
|
});
|
|
117
33
|
}
|
|
118
34
|
//#endregion
|
|
119
|
-
export {
|
|
35
|
+
export { s as LearningCertificatesPagePage };
|
|
120
36
|
|
|
121
37
|
//# sourceMappingURL=LearningCertificatesPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LearningCertificatesPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningCertificatesPagePage.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"LearningCertificatesPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningCertificatesPagePage.tsx"],"sourcesContent":["import { Button, GradientText, IllustratedEmptyState, PagePurpose } from '@burdenoff/fe-libs/ui';\nimport { useNavigate } from 'react-router-dom';\n\nexport function LearningCertificatesPagePage() {\n const navigate = useNavigate();\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Certificates</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n Proof of completed training and validated skills\n </p>\n <PagePurpose className=\"mt-1\">\n View and manage the certificates your team has earned — proof of completed training and\n validated skills.\n </PagePurpose>\n </div>\n\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No certificates yet\"\n description=\"Certificates are issued when a course is completed. Once certificate issuance is available, every credential you earn will appear here with its issue date and verification link.\"\n action={\n <Button variant=\"outline\" onClick={() => navigate('../../learning/courses-page')}>\n Browse courses\n </Button>\n }\n />\n </div>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,IAA+B;CAC7C,IAAM,IAAW,GAAa;AAE9B,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAc,gBAA2B,CAAA;IACtC,CAAA;GACL,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAEvC,CAAA;GACJ,kBAAC,GAAD;IAAa,WAAU;cAAO;IAGhB,CAAA;GACV,EAAA,CAAA,EAEN,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,GAAD;IAAQ,SAAQ;IAAU,eAAe,EAAS,8BAA8B;cAAE;IAEzE,CAAA;GAEX,CAAA,CACE"}
|
|
@@ -1,146 +1,146 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
2
|
import { useState as t } from "react";
|
|
3
3
|
import { BookOpen as n, Clock as r, GraduationCap as i, Play as a, Star as o, Users as s } from "lucide-react";
|
|
4
|
-
import { useNavigate as c } from "react-router-dom";
|
|
5
|
-
import { jsx as
|
|
6
|
-
import { Badge as
|
|
7
|
-
import { useGlobalUi as
|
|
4
|
+
import { useNavigate as c, useSearchParams as l } from "react-router-dom";
|
|
5
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
6
|
+
import { Badge as f, Button as p, Card as m, CardContent as h, CardHeader as g, CardTitle as _, EmphasisPanel as v, GradientText as y, IllustratedEmptyState as b, NextSteps as x, PagePurpose as S } from "@burdenoff/fe-libs/ui";
|
|
7
|
+
import { useGlobalUi as C } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
8
8
|
//#region src/crewfoundry/pages/LearningCourseDetailsPagePage.tsx
|
|
9
|
-
function
|
|
10
|
-
let
|
|
11
|
-
if (!
|
|
9
|
+
function w() {
|
|
10
|
+
let w = c(), [T] = l(), { courses: E, enrollCourse: D } = e(), { showToast: O } = C(), [k, A] = t(!1), j = T.get("id"), M = j ? E.find((e) => e.id === j) : E[0];
|
|
11
|
+
if (!M) return /* @__PURE__ */ u("div", {
|
|
12
12
|
className: "p-6",
|
|
13
|
-
children: /* @__PURE__ */
|
|
13
|
+
children: /* @__PURE__ */ u(b, {
|
|
14
14
|
illustration: "empty-search",
|
|
15
15
|
title: "Course not found",
|
|
16
16
|
description: "This course is no longer available."
|
|
17
17
|
})
|
|
18
18
|
});
|
|
19
|
-
let
|
|
20
|
-
return /* @__PURE__ */
|
|
19
|
+
let N = M.enrolled > 0 ? Math.round(M.completed / M.enrolled * 100) : 0;
|
|
20
|
+
return /* @__PURE__ */ d("div", {
|
|
21
21
|
className: "space-y-6 p-6 max-w-4xl",
|
|
22
22
|
children: [
|
|
23
|
-
/* @__PURE__ */
|
|
23
|
+
/* @__PURE__ */ d("div", {
|
|
24
24
|
className: "flex items-center justify-between",
|
|
25
|
-
children: [/* @__PURE__ */
|
|
26
|
-
/* @__PURE__ */
|
|
25
|
+
children: [/* @__PURE__ */ d("div", { children: [
|
|
26
|
+
/* @__PURE__ */ d("div", {
|
|
27
27
|
className: "flex items-center gap-2 mb-1",
|
|
28
|
-
children: [/* @__PURE__ */
|
|
28
|
+
children: [/* @__PURE__ */ u("h1", {
|
|
29
29
|
className: "text-2xl font-semibold",
|
|
30
|
-
children: /* @__PURE__ */
|
|
31
|
-
}), /* @__PURE__ */
|
|
32
|
-
variant:
|
|
33
|
-
children:
|
|
30
|
+
children: /* @__PURE__ */ u(y, { children: M.title })
|
|
31
|
+
}), /* @__PURE__ */ u(f, {
|
|
32
|
+
variant: M.level === "beginner" ? "secondary" : M.level === "intermediate" ? "default" : "destructive",
|
|
33
|
+
children: M.level
|
|
34
34
|
})]
|
|
35
35
|
}),
|
|
36
|
-
/* @__PURE__ */
|
|
36
|
+
/* @__PURE__ */ d("p", {
|
|
37
37
|
className: "text-sm text-text-secondary",
|
|
38
38
|
children: [
|
|
39
39
|
"by ",
|
|
40
|
-
|
|
40
|
+
M.instructor,
|
|
41
41
|
" · ",
|
|
42
|
-
|
|
42
|
+
M.category
|
|
43
43
|
]
|
|
44
44
|
}),
|
|
45
|
-
/* @__PURE__ */
|
|
45
|
+
/* @__PURE__ */ u(S, {
|
|
46
46
|
className: "mt-2",
|
|
47
47
|
children: "Everything you need to decide on and start this course — what it covers, who it's for, and how others have done — so you can enroll with confidence and build the right skills."
|
|
48
48
|
})
|
|
49
|
-
] }), /* @__PURE__ */
|
|
49
|
+
] }), /* @__PURE__ */ d(p, {
|
|
50
50
|
onClick: async () => {
|
|
51
|
-
|
|
51
|
+
A(!0);
|
|
52
52
|
try {
|
|
53
|
-
await
|
|
53
|
+
await D(M.id), O("Enrolled — your course is ready", "success");
|
|
54
54
|
} catch (e) {
|
|
55
|
-
|
|
55
|
+
O(e instanceof Error ? e.message : "Unable to enroll in course", "error");
|
|
56
56
|
} finally {
|
|
57
|
-
|
|
57
|
+
A(!1);
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
|
-
disabled:
|
|
61
|
-
children: [/* @__PURE__ */
|
|
60
|
+
disabled: k,
|
|
61
|
+
children: [/* @__PURE__ */ u(a, { className: "h-4 w-4 mr-1" }), k ? "Enrolling…" : "Start Course"]
|
|
62
62
|
})]
|
|
63
63
|
}),
|
|
64
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ u(x, {
|
|
65
65
|
storageKey: "crewfoundry-course-details",
|
|
66
66
|
steps: [
|
|
67
67
|
{
|
|
68
68
|
id: "start",
|
|
69
69
|
label: "Start the first module",
|
|
70
70
|
description: "Begin learning and track your progress as you go.",
|
|
71
|
-
icon: /* @__PURE__ */
|
|
72
|
-
onClick: () =>
|
|
71
|
+
icon: /* @__PURE__ */ u(a, { className: "h-4 w-4" }),
|
|
72
|
+
onClick: () => w(`../../learning/course-learning-page?id=${encodeURIComponent(M.id)}`)
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
id: "my-learning",
|
|
76
76
|
label: "See all your learning",
|
|
77
77
|
description: "Review everything you are currently enrolled in.",
|
|
78
|
-
icon: /* @__PURE__ */
|
|
79
|
-
onClick: () =>
|
|
78
|
+
icon: /* @__PURE__ */ u(i, { className: "h-4 w-4" }),
|
|
79
|
+
onClick: () => w("../../learning/my-learning-page")
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
id: "browse",
|
|
83
83
|
label: "Browse more courses",
|
|
84
84
|
description: "Find related training to round out your skills.",
|
|
85
|
-
icon: /* @__PURE__ */
|
|
86
|
-
onClick: () =>
|
|
85
|
+
icon: /* @__PURE__ */ u(n, { className: "h-4 w-4" }),
|
|
86
|
+
onClick: () => w("../../learning/courses-page")
|
|
87
87
|
}
|
|
88
88
|
]
|
|
89
89
|
}),
|
|
90
|
-
/* @__PURE__ */
|
|
90
|
+
/* @__PURE__ */ d("div", {
|
|
91
91
|
className: "grid gap-4 md:grid-cols-4",
|
|
92
92
|
children: [
|
|
93
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ u(m, { children: /* @__PURE__ */ d(h, {
|
|
94
94
|
className: "p-4 text-center",
|
|
95
95
|
children: [
|
|
96
|
-
/* @__PURE__ */
|
|
97
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ u(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
97
|
+
/* @__PURE__ */ u("p", {
|
|
98
98
|
className: "text-lg font-bold",
|
|
99
|
-
children:
|
|
99
|
+
children: M.duration
|
|
100
100
|
}),
|
|
101
|
-
/* @__PURE__ */
|
|
101
|
+
/* @__PURE__ */ u("p", {
|
|
102
102
|
className: "text-xs text-text-secondary",
|
|
103
103
|
children: "Duration"
|
|
104
104
|
})
|
|
105
105
|
]
|
|
106
106
|
}) }),
|
|
107
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ u(m, { children: /* @__PURE__ */ d(h, {
|
|
108
108
|
className: "p-4 text-center",
|
|
109
109
|
children: [
|
|
110
|
-
/* @__PURE__ */
|
|
111
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ u(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
111
|
+
/* @__PURE__ */ u("p", {
|
|
112
112
|
className: "text-lg font-bold",
|
|
113
|
-
children:
|
|
113
|
+
children: M.modules
|
|
114
114
|
}),
|
|
115
|
-
/* @__PURE__ */
|
|
115
|
+
/* @__PURE__ */ u("p", {
|
|
116
116
|
className: "text-xs text-text-secondary",
|
|
117
117
|
children: "Modules"
|
|
118
118
|
})
|
|
119
119
|
]
|
|
120
120
|
}) }),
|
|
121
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ u(m, { children: /* @__PURE__ */ d(h, {
|
|
122
122
|
className: "p-4 text-center",
|
|
123
123
|
children: [
|
|
124
|
-
/* @__PURE__ */
|
|
125
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ u(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
|
|
125
|
+
/* @__PURE__ */ u("p", {
|
|
126
126
|
className: "text-lg font-bold",
|
|
127
|
-
children:
|
|
127
|
+
children: M.enrolled
|
|
128
128
|
}),
|
|
129
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ u("p", {
|
|
130
130
|
className: "text-xs text-text-secondary",
|
|
131
131
|
children: "Enrolled"
|
|
132
132
|
})
|
|
133
133
|
]
|
|
134
134
|
}) }),
|
|
135
|
-
/* @__PURE__ */
|
|
135
|
+
/* @__PURE__ */ u(m, { children: /* @__PURE__ */ d(h, {
|
|
136
136
|
className: "p-4 text-center",
|
|
137
137
|
children: [
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
/* @__PURE__ */
|
|
138
|
+
/* @__PURE__ */ u(o, { className: "h-5 w-5 mx-auto text-status-warning-text mb-1" }),
|
|
139
|
+
/* @__PURE__ */ d("p", {
|
|
140
140
|
className: "text-lg font-bold",
|
|
141
|
-
children: [
|
|
141
|
+
children: [M.rating, "/5"]
|
|
142
142
|
}),
|
|
143
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ u("p", {
|
|
144
144
|
className: "text-xs text-text-secondary",
|
|
145
145
|
children: "Rating"
|
|
146
146
|
})
|
|
@@ -148,41 +148,41 @@ function C() {
|
|
|
148
148
|
}) })
|
|
149
149
|
]
|
|
150
150
|
}),
|
|
151
|
-
/* @__PURE__ */
|
|
152
|
-
/* @__PURE__ */
|
|
151
|
+
/* @__PURE__ */ d(v, { children: [
|
|
152
|
+
/* @__PURE__ */ u("div", {
|
|
153
153
|
className: "mb-2 text-lg font-semibold",
|
|
154
154
|
children: "About this Course"
|
|
155
155
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ u("p", {
|
|
157
157
|
className: "text-sm text-text-secondary",
|
|
158
|
-
children:
|
|
158
|
+
children: M.description
|
|
159
159
|
}),
|
|
160
|
-
/* @__PURE__ */
|
|
160
|
+
/* @__PURE__ */ u("div", {
|
|
161
161
|
className: "flex flex-wrap gap-1 mt-3",
|
|
162
|
-
children:
|
|
162
|
+
children: M.skills.map((e) => /* @__PURE__ */ u(f, {
|
|
163
163
|
variant: "outline",
|
|
164
164
|
children: e
|
|
165
165
|
}, e))
|
|
166
166
|
})
|
|
167
167
|
] }),
|
|
168
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ d(m, { children: [/* @__PURE__ */ u(g, { children: /* @__PURE__ */ u(_, { children: "Completion Statistics" }) }), /* @__PURE__ */ u(h, { children: /* @__PURE__ */ d("div", {
|
|
169
169
|
className: "space-y-2",
|
|
170
|
-
children: [/* @__PURE__ */
|
|
170
|
+
children: [/* @__PURE__ */ d("div", {
|
|
171
171
|
className: "flex justify-between text-sm",
|
|
172
|
-
children: [/* @__PURE__ */
|
|
173
|
-
|
|
172
|
+
children: [/* @__PURE__ */ d("span", { children: [
|
|
173
|
+
M.completed,
|
|
174
174
|
" of ",
|
|
175
|
-
|
|
175
|
+
M.enrolled,
|
|
176
176
|
" students completed"
|
|
177
|
-
] }), /* @__PURE__ */
|
|
177
|
+
] }), /* @__PURE__ */ d("span", {
|
|
178
178
|
className: "font-medium",
|
|
179
|
-
children: [
|
|
179
|
+
children: [N, "%"]
|
|
180
180
|
})]
|
|
181
|
-
}), /* @__PURE__ */
|
|
181
|
+
}), /* @__PURE__ */ u("div", {
|
|
182
182
|
className: "h-3 bg-bg-sunken rounded overflow-hidden",
|
|
183
|
-
children: /* @__PURE__ */
|
|
183
|
+
children: /* @__PURE__ */ u("div", {
|
|
184
184
|
className: "h-3 bg-status-success-text rounded",
|
|
185
|
-
style: { width: `${
|
|
185
|
+
style: { width: `${N}%` }
|
|
186
186
|
})
|
|
187
187
|
})]
|
|
188
188
|
}) })] })
|
|
@@ -190,6 +190,6 @@ function C() {
|
|
|
190
190
|
});
|
|
191
191
|
}
|
|
192
192
|
//#endregion
|
|
193
|
-
export {
|
|
193
|
+
export { w as LearningCourseDetailsPagePage };
|
|
194
194
|
|
|
195
195
|
//# sourceMappingURL=LearningCourseDetailsPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LearningCourseDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningCourseDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n EmphasisPanel,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { BookOpen, Clock, GraduationCap, Play, Star, Users } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useState } from 'react';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function LearningCourseDetailsPagePage() {\n const navigate = useNavigate();\n const { courses, enrollCourse } = useCrewFoundryStore();\n const { showToast } = useGlobalUi();\n const [enrolling, setEnrolling] = useState(false);\n const course = courses[0];\n if (!course)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Course not found\"\n description=\"This course is no longer available.\"\n />\n </div>\n );\n const completionRate
|
|
1
|
+
{"version":3,"file":"LearningCourseDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/LearningCourseDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n EmphasisPanel,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { BookOpen, Clock, GraduationCap, Play, Star, Users } from 'lucide-react';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\nimport { useState } from 'react';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function LearningCourseDetailsPagePage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const { courses, enrollCourse } = useCrewFoundryStore();\n const { showToast } = useGlobalUi();\n const [enrolling, setEnrolling] = useState(false);\n const courseId = searchParams.get('id');\n const course = courseId ? courses.find((c) => c.id === courseId) : courses[0];\n if (!course)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Course not found\"\n description=\"This course is no longer available.\"\n />\n </div>\n );\n const completionRate =\n course.enrolled > 0 ? Math.round((course.completed / course.enrolled) * 100) : 0;\n\n const handleStart = async () => {\n setEnrolling(true);\n try {\n await enrollCourse(course.id);\n showToast('Enrolled — your course is ready', 'success');\n } catch (error) {\n showToast(error instanceof Error ? error.message : 'Unable to enroll in course', 'error');\n } finally {\n setEnrolling(false);\n }\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{course.title}</GradientText>\n </h1>\n <Badge\n variant={\n course.level === 'beginner'\n ? 'secondary'\n : course.level === 'intermediate'\n ? 'default'\n : 'destructive'\n }\n >\n {course.level}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n by {course.instructor} · {course.category}\n </p>\n <PagePurpose className=\"mt-2\">\n Everything you need to decide on and start this course — what it covers, who it's\n for, and how others have done — so you can enroll with confidence and build the right\n skills.\n </PagePurpose>\n </div>\n <Button onClick={handleStart} disabled={enrolling}>\n <Play className=\"h-4 w-4 mr-1\" />\n {enrolling ? 'Enrolling…' : 'Start Course'}\n </Button>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-course-details\"\n steps={[\n {\n id: 'start',\n label: 'Start the first module',\n description: 'Begin learning and track your progress as you go.',\n icon: <Play className=\"h-4 w-4\" />,\n onClick: () =>\n navigate(`../../learning/course-learning-page?id=${encodeURIComponent(course.id)}`),\n },\n {\n id: 'my-learning',\n label: 'See all your learning',\n description: 'Review everything you are currently enrolled in.',\n icon: <GraduationCap className=\"h-4 w-4\" />,\n onClick: () => navigate('../../learning/my-learning-page'),\n },\n {\n id: 'browse',\n label: 'Browse more courses',\n description: 'Find related training to round out your skills.',\n icon: <BookOpen className=\"h-4 w-4\" />,\n onClick: () => navigate('../../learning/courses-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Clock className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{course.duration}</p>\n <p className=\"text-xs text-text-secondary\">Duration</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <BookOpen className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{course.modules}</p>\n <p className=\"text-xs text-text-secondary\">Modules</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{course.enrolled}</p>\n <p className=\"text-xs text-text-secondary\">Enrolled</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Star className=\"h-5 w-5 mx-auto text-status-warning-text mb-1\" />\n <p className=\"text-lg font-bold\">{course.rating}/5</p>\n <p className=\"text-xs text-text-secondary\">Rating</p>\n </CardContent>\n </Card>\n </div>\n <EmphasisPanel>\n <div className=\"mb-2 text-lg font-semibold\">About this Course</div>\n <p className=\"text-sm text-text-secondary\">{course.description}</p>\n <div className=\"flex flex-wrap gap-1 mt-3\">\n {course.skills.map((s) => (\n <Badge key={s} variant=\"outline\">\n {s}\n </Badge>\n ))}\n </div>\n </EmphasisPanel>\n <Card>\n <CardHeader>\n <CardTitle>Completion Statistics</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>\n {course.completed} of {course.enrolled} students completed\n </span>\n <span className=\"font-medium\">{completionRate}%</span>\n </div>\n <div className=\"h-3 bg-bg-sunken rounded overflow-hidden\">\n <div\n className=\"h-3 bg-status-success-text rounded\"\n style={{ width: `${completionRate}%` }}\n />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|