@burdenoff/microfe-technospam 2026.509.101
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/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 +18199 -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 +43046 -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/dist/technospam/TechnoSpamRoot.d.ts +5 -0
- package/dist/technospam/TechnoSpamRoot.d.ts.map +1 -0
- package/dist/technospam/TechnoSpamRoot.js +482 -0
- package/dist/technospam/TechnoSpamRoot.js.map +1 -0
- package/dist/technospam/TechnoSpamRoutes.d.ts +2 -0
- package/dist/technospam/TechnoSpamRoutes.d.ts.map +1 -0
- package/dist/technospam/TechnoSpamRoutes.js +191 -0
- package/dist/technospam/TechnoSpamRoutes.js.map +1 -0
- package/dist/technospam/index.d.ts +5 -0
- package/dist/technospam/index.d.ts.map +1 -0
- package/dist/technospam/index.js +3 -0
- package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts +2 -0
- package/dist/technospam/pages/AdminAdminDashboardPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js +269 -0
- package/dist/technospam/pages/AdminAdminDashboardPagePage.js.map +1 -0
- package/dist/technospam/pages/AdminAuditReportsPagePage.d.ts +2 -0
- package/dist/technospam/pages/AdminAuditReportsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AdminAuditReportsPagePage.js +179 -0
- package/dist/technospam/pages/AdminAuditReportsPagePage.js.map +1 -0
- package/dist/technospam/pages/AnalyticsAchievementsPagePage.d.ts +2 -0
- package/dist/technospam/pages/AnalyticsAchievementsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AnalyticsAchievementsPagePage.js +149 -0
- package/dist/technospam/pages/AnalyticsAchievementsPagePage.js.map +1 -0
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js +260 -0
- package/dist/technospam/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
- package/dist/technospam/pages/AnalyticsProgressPagePage.d.ts +2 -0
- package/dist/technospam/pages/AnalyticsProgressPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AnalyticsProgressPagePage.js +215 -0
- package/dist/technospam/pages/AnalyticsProgressPagePage.js.map +1 -0
- package/dist/technospam/pages/AnalyticsReportsPagePage.d.ts +2 -0
- package/dist/technospam/pages/AnalyticsReportsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/AnalyticsReportsPagePage.js +145 -0
- package/dist/technospam/pages/AnalyticsReportsPagePage.js.map +1 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.d.ts +2 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.js +227 -0
- package/dist/technospam/pages/ApplicationsPortfolioPagePage.js.map +1 -0
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +194 -0
- package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/ApplicationsProblemsPagePage.d.ts +2 -0
- package/dist/technospam/pages/ApplicationsProblemsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/ApplicationsProblemsPagePage.js +203 -0
- package/dist/technospam/pages/ApplicationsProblemsPagePage.js.map +1 -0
- package/dist/technospam/pages/ApplicationsSolutionsPagePage.d.ts +2 -0
- package/dist/technospam/pages/ApplicationsSolutionsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/ApplicationsSolutionsPagePage.js +182 -0
- package/dist/technospam/pages/ApplicationsSolutionsPagePage.js.map +1 -0
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +261 -0
- package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/CoursesCoursesPagePage.d.ts +2 -0
- package/dist/technospam/pages/CoursesCoursesPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/CoursesCoursesPagePage.js +179 -0
- package/dist/technospam/pages/CoursesCoursesPagePage.js.map +1 -0
- package/dist/technospam/pages/CoursesInstructorProfilePagePage.d.ts +2 -0
- package/dist/technospam/pages/CoursesInstructorProfilePagePage.d.ts.map +1 -0
- package/dist/technospam/pages/CoursesInstructorProfilePagePage.js +346 -0
- package/dist/technospam/pages/CoursesInstructorProfilePagePage.js.map +1 -0
- package/dist/technospam/pages/CoursesInstructorsPagePage.d.ts +2 -0
- package/dist/technospam/pages/CoursesInstructorsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/CoursesInstructorsPagePage.js +104 -0
- package/dist/technospam/pages/CoursesInstructorsPagePage.js.map +1 -0
- package/dist/technospam/pages/CoursesMyLearningPagePage.d.ts +2 -0
- package/dist/technospam/pages/CoursesMyLearningPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/CoursesMyLearningPagePage.js +187 -0
- package/dist/technospam/pages/CoursesMyLearningPagePage.js.map +1 -0
- package/dist/technospam/pages/DashboardDashboardPagePage.d.ts +2 -0
- package/dist/technospam/pages/DashboardDashboardPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/DashboardDashboardPagePage.js +344 -0
- package/dist/technospam/pages/DashboardDashboardPagePage.js.map +1 -0
- package/dist/technospam/pages/HackathonsEventsPagePage.d.ts +2 -0
- package/dist/technospam/pages/HackathonsEventsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/HackathonsEventsPagePage.js +121 -0
- package/dist/technospam/pages/HackathonsEventsPagePage.js.map +1 -0
- package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js +250 -0
- package/dist/technospam/pages/HackathonsHackathonDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/HackathonsHackathonsPagePage.d.ts +2 -0
- package/dist/technospam/pages/HackathonsHackathonsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/HackathonsHackathonsPagePage.js +162 -0
- package/dist/technospam/pages/HackathonsHackathonsPagePage.js.map +1 -0
- package/dist/technospam/pages/HackathonsTeamsPagePage.d.ts +2 -0
- package/dist/technospam/pages/HackathonsTeamsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/HackathonsTeamsPagePage.js +185 -0
- package/dist/technospam/pages/HackathonsTeamsPagePage.js.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseArticleDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/KnowledgeBaseArticleDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseArticleDetailsPagePage.js +181 -0
- package/dist/technospam/pages/KnowledgeBaseArticleDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseArticlesPagePage.d.ts +2 -0
- package/dist/technospam/pages/KnowledgeBaseArticlesPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseArticlesPagePage.js +112 -0
- package/dist/technospam/pages/KnowledgeBaseArticlesPagePage.js.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseCategoriesPagePage.d.ts +2 -0
- package/dist/technospam/pages/KnowledgeBaseCategoriesPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseCategoriesPagePage.js +105 -0
- package/dist/technospam/pages/KnowledgeBaseCategoriesPagePage.js.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseKnowledgeBasePagePage.d.ts +2 -0
- package/dist/technospam/pages/KnowledgeBaseKnowledgeBasePagePage.d.ts.map +1 -0
- package/dist/technospam/pages/KnowledgeBaseKnowledgeBasePagePage.js +165 -0
- package/dist/technospam/pages/KnowledgeBaseKnowledgeBasePagePage.js.map +1 -0
- package/dist/technospam/pages/MentorshipBookingsPagePage.d.ts +2 -0
- package/dist/technospam/pages/MentorshipBookingsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/MentorshipBookingsPagePage.js +188 -0
- package/dist/technospam/pages/MentorshipBookingsPagePage.js.map +1 -0
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.d.ts +2 -0
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.d.ts.map +1 -0
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.js +310 -0
- package/dist/technospam/pages/MentorshipMentorProfilePagePage.js.map +1 -0
- package/dist/technospam/pages/MentorshipMentorsPagePage.d.ts +2 -0
- package/dist/technospam/pages/MentorshipMentorsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/MentorshipMentorsPagePage.js +128 -0
- package/dist/technospam/pages/MentorshipMentorsPagePage.js.map +1 -0
- package/dist/technospam/pages/MentorshipMentorshipPagePage.d.ts +2 -0
- package/dist/technospam/pages/MentorshipMentorshipPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/MentorshipMentorshipPagePage.js +209 -0
- package/dist/technospam/pages/MentorshipMentorshipPagePage.js.map +1 -0
- package/dist/technospam/pages/MentorshipSessionsPagePage.d.ts +2 -0
- package/dist/technospam/pages/MentorshipSessionsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/MentorshipSessionsPagePage.js +170 -0
- package/dist/technospam/pages/MentorshipSessionsPagePage.js.map +1 -0
- package/dist/technospam/pages/OpenSourceContributionsPagePage.d.ts +2 -0
- package/dist/technospam/pages/OpenSourceContributionsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/OpenSourceContributionsPagePage.js +191 -0
- package/dist/technospam/pages/OpenSourceContributionsPagePage.js.map +1 -0
- package/dist/technospam/pages/OpenSourceOpenSourcePagePage.d.ts +2 -0
- package/dist/technospam/pages/OpenSourceOpenSourcePagePage.d.ts.map +1 -0
- package/dist/technospam/pages/OpenSourceOpenSourcePagePage.js +216 -0
- package/dist/technospam/pages/OpenSourceOpenSourcePagePage.js.map +1 -0
- package/dist/technospam/pages/OpenSourceProjectsPagePage.d.ts +2 -0
- package/dist/technospam/pages/OpenSourceProjectsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/OpenSourceProjectsPagePage.js +150 -0
- package/dist/technospam/pages/OpenSourceProjectsPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerGoalsPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerGoalsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerGoalsPagePage.js +161 -0
- package/dist/technospam/pages/StudyPlannerGoalsPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerLearningPathDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerLearningPathDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerLearningPathDetailsPagePage.js +198 -0
- package/dist/technospam/pages/StudyPlannerLearningPathDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerLearningPathsPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerLearningPathsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerLearningPathsPagePage.js +105 -0
- package/dist/technospam/pages/StudyPlannerLearningPathsPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanDetailsPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanDetailsPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanDetailsPagePage.js +161 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanDetailsPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanEditPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanEditPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanEditPagePage.js +127 -0
- package/dist/technospam/pages/StudyPlannerStudyPlanEditPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js +238 -0
- package/dist/technospam/pages/StudyPlannerStudyPlannerPagePage.js.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlansPagePage.d.ts +2 -0
- package/dist/technospam/pages/StudyPlannerStudyPlansPagePage.d.ts.map +1 -0
- package/dist/technospam/pages/StudyPlannerStudyPlansPagePage.js +113 -0
- package/dist/technospam/pages/StudyPlannerStudyPlansPagePage.js.map +1 -0
- package/dist/technospam/providers/TechnoSpamProvider.d.ts +6 -0
- package/dist/technospam/providers/TechnoSpamProvider.d.ts.map +1 -0
- package/dist/technospam/providers/TechnoSpamProvider.js +27 -0
- package/dist/technospam/providers/TechnoSpamProvider.js.map +1 -0
- package/dist/technospam/store/technospamStore.d.ts +190 -0
- package/dist/technospam/store/technospamStore.d.ts.map +1 -0
- package/dist/technospam/store/technospamStore.js +912 -0
- package/dist/technospam/store/technospamStore.js.map +1 -0
- package/dist/technospam/types/index.d.ts +51 -0
- package/dist/technospam/types/index.d.ts.map +1 -0
- package/dist/technospam/utils/cn.d.ts +4 -0
- package/dist/technospam/utils/cn.d.ts.map +1 -0
- package/dist/technospam/utils/i18n.d.ts +6 -0
- package/dist/technospam/utils/i18n.d.ts.map +1 -0
- package/dist/technospam/utils/i18n.js +15 -0
- package/dist/technospam/utils/i18n.js.map +1 -0
- package/dist/technospam/utils/navigation.d.ts +2 -0
- package/dist/technospam/utils/navigation.d.ts.map +1 -0
- package/dist/technospam/utils/navigation.js +8 -0
- package/dist/technospam/utils/navigation.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { useTechnoSpamStore as e } from "../store/technospamStore.js";
|
|
2
|
+
import { ArrowLeft as t, Award as n, BookOpen as r, CheckCircle as i, Clock as a, Sparkles as o, Star as s, User as c, Users as l } from "lucide-react";
|
|
3
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as f, Button as p, Card as m, CardContent as h, CardHeader as g, CardTitle as _ } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/technospam/pages/CoursesCourseDetailsPagePage.tsx
|
|
6
|
+
var v = [
|
|
7
|
+
{
|
|
8
|
+
title: "Introduction & Setup",
|
|
9
|
+
duration: "2h",
|
|
10
|
+
lessons: 8
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
title: "Core Concepts & Fundamentals",
|
|
14
|
+
duration: "6h",
|
|
15
|
+
lessons: 15
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: "Advanced Patterns & Techniques",
|
|
19
|
+
duration: "8h",
|
|
20
|
+
lessons: 12
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
title: "Real-World Projects",
|
|
24
|
+
duration: "10h",
|
|
25
|
+
lessons: 6
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title: "Testing & Best Practices",
|
|
29
|
+
duration: "4h",
|
|
30
|
+
lessons: 10
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: "Deployment & Performance",
|
|
34
|
+
duration: "3h",
|
|
35
|
+
lessons: 7
|
|
36
|
+
}
|
|
37
|
+
], y = [
|
|
38
|
+
"Build production-ready applications with best practices",
|
|
39
|
+
"Understand and implement advanced design patterns",
|
|
40
|
+
"Write comprehensive tests and maintain high code quality",
|
|
41
|
+
"Deploy and optimize applications for performance",
|
|
42
|
+
"Collaborate effectively in team environments"
|
|
43
|
+
];
|
|
44
|
+
function b() {
|
|
45
|
+
let { courses: b } = e(), x = b[0];
|
|
46
|
+
return x ? /* @__PURE__ */ d("div", {
|
|
47
|
+
className: "space-y-6 p-6",
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ d(p, {
|
|
50
|
+
variant: "ghost",
|
|
51
|
+
size: "sm",
|
|
52
|
+
className: "text-muted-foreground",
|
|
53
|
+
children: [/* @__PURE__ */ u(t, { className: "mr-2 h-4 w-4" }), "Back to Courses"]
|
|
54
|
+
}),
|
|
55
|
+
/* @__PURE__ */ d("div", {
|
|
56
|
+
className: "grid gap-6 lg:grid-cols-3",
|
|
57
|
+
children: [/* @__PURE__ */ d("div", {
|
|
58
|
+
className: "space-y-4 lg:col-span-2",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ d("div", {
|
|
61
|
+
className: "flex flex-wrap items-center gap-2",
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ u("span", {
|
|
64
|
+
className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${((e) => {
|
|
65
|
+
switch (e) {
|
|
66
|
+
case "beginner": return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400";
|
|
67
|
+
case "intermediate": return "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400";
|
|
68
|
+
case "advanced": return "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400";
|
|
69
|
+
case "expert": return "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400";
|
|
70
|
+
default: return "";
|
|
71
|
+
}
|
|
72
|
+
})(x.level)}`,
|
|
73
|
+
children: x.level
|
|
74
|
+
}),
|
|
75
|
+
/* @__PURE__ */ u(f, {
|
|
76
|
+
variant: "secondary",
|
|
77
|
+
children: x.category
|
|
78
|
+
}),
|
|
79
|
+
x.isFeatured && /* @__PURE__ */ d(f, {
|
|
80
|
+
variant: "secondary",
|
|
81
|
+
className: "flex items-center gap-1",
|
|
82
|
+
children: [/* @__PURE__ */ u(o, { className: "h-3 w-3" }), "Featured"]
|
|
83
|
+
})
|
|
84
|
+
]
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ u("h1", {
|
|
87
|
+
className: "text-3xl font-bold text-foreground",
|
|
88
|
+
children: x.title
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ u("p", {
|
|
91
|
+
className: "text-muted-foreground",
|
|
92
|
+
children: "Master the concepts and techniques needed to build professional-grade applications. This comprehensive course covers everything from fundamentals to advanced topics."
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ d("div", {
|
|
95
|
+
className: "flex flex-wrap items-center gap-4 text-sm text-muted-foreground",
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ d("span", {
|
|
98
|
+
className: "flex items-center gap-1",
|
|
99
|
+
children: [/* @__PURE__ */ u(c, { className: "h-4 w-4" }), x.instructor]
|
|
100
|
+
}),
|
|
101
|
+
/* @__PURE__ */ d("span", {
|
|
102
|
+
className: "flex items-center gap-1",
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ u(s, { className: "h-4 w-4 text-yellow-500" }),
|
|
105
|
+
x.rating,
|
|
106
|
+
" rating"
|
|
107
|
+
]
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ d("span", {
|
|
110
|
+
className: "flex items-center gap-1",
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ u(l, { className: "h-4 w-4" }),
|
|
113
|
+
x.enrollmentCount.toLocaleString(),
|
|
114
|
+
" students"
|
|
115
|
+
]
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ d("span", {
|
|
118
|
+
className: "flex items-center gap-1",
|
|
119
|
+
children: [
|
|
120
|
+
/* @__PURE__ */ u(a, { className: "h-4 w-4" }),
|
|
121
|
+
x.duration,
|
|
122
|
+
" hours"
|
|
123
|
+
]
|
|
124
|
+
})
|
|
125
|
+
]
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ u("div", {
|
|
128
|
+
className: "flex flex-wrap gap-1.5",
|
|
129
|
+
children: x.tags.map((e) => /* @__PURE__ */ u(f, {
|
|
130
|
+
variant: "outline",
|
|
131
|
+
children: e
|
|
132
|
+
}, e))
|
|
133
|
+
})
|
|
134
|
+
]
|
|
135
|
+
}), /* @__PURE__ */ u(m, { children: /* @__PURE__ */ d(h, {
|
|
136
|
+
className: "space-y-4 pt-6",
|
|
137
|
+
children: [
|
|
138
|
+
/* @__PURE__ */ u("div", {
|
|
139
|
+
className: "text-center",
|
|
140
|
+
children: /* @__PURE__ */ u("span", {
|
|
141
|
+
className: "text-3xl font-bold",
|
|
142
|
+
children: x.price === 0 ? "Free" : `$${x.price}`
|
|
143
|
+
})
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ u(p, {
|
|
146
|
+
className: "w-full",
|
|
147
|
+
size: "lg",
|
|
148
|
+
children: "Enroll Now"
|
|
149
|
+
}),
|
|
150
|
+
x.certificateAvailable && /* @__PURE__ */ d("div", {
|
|
151
|
+
className: "flex items-center justify-center gap-2 text-sm text-muted-foreground",
|
|
152
|
+
children: [/* @__PURE__ */ u(n, { className: "h-4 w-4 text-primary" }), "Certificate of Completion"]
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ d("div", {
|
|
155
|
+
className: "space-y-2 border-t border-border pt-4 text-sm text-muted-foreground",
|
|
156
|
+
children: [
|
|
157
|
+
/* @__PURE__ */ d("div", {
|
|
158
|
+
className: "flex justify-between",
|
|
159
|
+
children: [/* @__PURE__ */ u("span", { children: "Duration" }), /* @__PURE__ */ d("span", {
|
|
160
|
+
className: "font-medium text-foreground",
|
|
161
|
+
children: [x.duration, " hours"]
|
|
162
|
+
})]
|
|
163
|
+
}),
|
|
164
|
+
/* @__PURE__ */ d("div", {
|
|
165
|
+
className: "flex justify-between",
|
|
166
|
+
children: [/* @__PURE__ */ u("span", { children: "Level" }), /* @__PURE__ */ u("span", {
|
|
167
|
+
className: "font-medium text-foreground capitalize",
|
|
168
|
+
children: x.level
|
|
169
|
+
})]
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ d("div", {
|
|
172
|
+
className: "flex justify-between",
|
|
173
|
+
children: [/* @__PURE__ */ u("span", { children: "Students" }), /* @__PURE__ */ u("span", {
|
|
174
|
+
className: "font-medium text-foreground",
|
|
175
|
+
children: x.enrollmentCount.toLocaleString()
|
|
176
|
+
})]
|
|
177
|
+
})
|
|
178
|
+
]
|
|
179
|
+
})
|
|
180
|
+
]
|
|
181
|
+
}) })]
|
|
182
|
+
}),
|
|
183
|
+
/* @__PURE__ */ d(m, { children: [/* @__PURE__ */ u(g, { children: /* @__PURE__ */ u(_, {
|
|
184
|
+
className: "text-base",
|
|
185
|
+
children: "What You'll Learn"
|
|
186
|
+
}) }), /* @__PURE__ */ u(h, { children: /* @__PURE__ */ u("div", {
|
|
187
|
+
className: "grid gap-3 sm:grid-cols-2",
|
|
188
|
+
children: y.map((e) => /* @__PURE__ */ d("div", {
|
|
189
|
+
className: "flex items-start gap-2",
|
|
190
|
+
children: [/* @__PURE__ */ u(i, { className: "mt-0.5 h-4 w-4 shrink-0 text-green-500" }), /* @__PURE__ */ u("span", {
|
|
191
|
+
className: "text-sm",
|
|
192
|
+
children: e
|
|
193
|
+
})]
|
|
194
|
+
}, e))
|
|
195
|
+
}) })] }),
|
|
196
|
+
/* @__PURE__ */ d(m, { children: [/* @__PURE__ */ u(g, { children: /* @__PURE__ */ d(_, {
|
|
197
|
+
className: "flex items-center gap-2 text-base",
|
|
198
|
+
children: [/* @__PURE__ */ u(r, { className: "h-4 w-4" }), "Course Curriculum"]
|
|
199
|
+
}) }), /* @__PURE__ */ u(h, {
|
|
200
|
+
className: "space-y-3",
|
|
201
|
+
children: v.map((e, t) => /* @__PURE__ */ d("div", {
|
|
202
|
+
className: "flex items-center justify-between rounded-lg border border-border p-4",
|
|
203
|
+
children: [/* @__PURE__ */ d("div", {
|
|
204
|
+
className: "flex items-center gap-3",
|
|
205
|
+
children: [/* @__PURE__ */ u("span", {
|
|
206
|
+
className: "flex h-8 w-8 items-center justify-center rounded-full bg-muted text-sm font-medium",
|
|
207
|
+
children: t + 1
|
|
208
|
+
}), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
209
|
+
className: "text-sm font-medium",
|
|
210
|
+
children: e.title
|
|
211
|
+
}), /* @__PURE__ */ d("p", {
|
|
212
|
+
className: "text-xs text-muted-foreground",
|
|
213
|
+
children: [e.lessons, " lessons"]
|
|
214
|
+
})] })]
|
|
215
|
+
}), /* @__PURE__ */ u("span", {
|
|
216
|
+
className: "text-sm text-muted-foreground",
|
|
217
|
+
children: e.duration
|
|
218
|
+
})]
|
|
219
|
+
}, e.title))
|
|
220
|
+
})] }),
|
|
221
|
+
/* @__PURE__ */ d(m, { children: [/* @__PURE__ */ u(g, { children: /* @__PURE__ */ u(_, {
|
|
222
|
+
className: "text-base",
|
|
223
|
+
children: "About the Instructor"
|
|
224
|
+
}) }), /* @__PURE__ */ u(h, { children: /* @__PURE__ */ d("div", {
|
|
225
|
+
className: "flex items-start gap-4",
|
|
226
|
+
children: [/* @__PURE__ */ u("div", {
|
|
227
|
+
className: "flex h-12 w-12 items-center justify-center rounded-full bg-muted",
|
|
228
|
+
children: /* @__PURE__ */ u(c, { className: "h-6 w-6 text-muted-foreground" })
|
|
229
|
+
}), /* @__PURE__ */ d("div", {
|
|
230
|
+
className: "space-y-1",
|
|
231
|
+
children: [
|
|
232
|
+
/* @__PURE__ */ u("p", {
|
|
233
|
+
className: "font-medium",
|
|
234
|
+
children: x.instructor
|
|
235
|
+
}),
|
|
236
|
+
/* @__PURE__ */ u("p", {
|
|
237
|
+
className: "text-sm text-muted-foreground",
|
|
238
|
+
children: "Expert instructor with years of industry experience. Passionate about helping students master complex topics through practical, hands-on learning."
|
|
239
|
+
}),
|
|
240
|
+
/* @__PURE__ */ d("div", {
|
|
241
|
+
className: "flex items-center gap-2 text-xs text-muted-foreground",
|
|
242
|
+
children: [
|
|
243
|
+
/* @__PURE__ */ u(s, { className: "h-3 w-3 text-yellow-500" }),
|
|
244
|
+
/* @__PURE__ */ d("span", { children: [x.rating, " instructor rating"] }),
|
|
245
|
+
/* @__PURE__ */ u("span", { children: "·" }),
|
|
246
|
+
/* @__PURE__ */ d("span", { children: [x.enrollmentCount.toLocaleString(), " students"] })
|
|
247
|
+
]
|
|
248
|
+
})
|
|
249
|
+
]
|
|
250
|
+
})]
|
|
251
|
+
}) })] })
|
|
252
|
+
]
|
|
253
|
+
}) : /* @__PURE__ */ u("div", {
|
|
254
|
+
className: "p-6 text-center text-muted-foreground",
|
|
255
|
+
children: "Course not found"
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
//#endregion
|
|
259
|
+
export { b as CoursesCourseDetailsPagePage };
|
|
260
|
+
|
|
261
|
+
//# sourceMappingURL=CoursesCourseDetailsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoursesCourseDetailsPagePage.js","names":[],"sources":["../../../src/technospam/pages/CoursesCourseDetailsPagePage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport {\n Star,\n Users,\n Clock,\n Award,\n ArrowLeft,\n CheckCircle,\n User,\n Sparkles,\n BookOpen,\n} from 'lucide-react';\nimport { useTechnoSpamStore } from '../store/technospamStore';\n\nconst mockCurriculum = [\n { title: 'Introduction & Setup', duration: '2h', lessons: 8 },\n { title: 'Core Concepts & Fundamentals', duration: '6h', lessons: 15 },\n { title: 'Advanced Patterns & Techniques', duration: '8h', lessons: 12 },\n { title: 'Real-World Projects', duration: '10h', lessons: 6 },\n { title: 'Testing & Best Practices', duration: '4h', lessons: 10 },\n { title: 'Deployment & Performance', duration: '3h', lessons: 7 },\n];\n\nconst mockLearningOutcomes = [\n 'Build production-ready applications with best practices',\n 'Understand and implement advanced design patterns',\n 'Write comprehensive tests and maintain high code quality',\n 'Deploy and optimize applications for performance',\n 'Collaborate effectively in team environments',\n];\n\nexport function CoursesCourseDetailsPagePage() {\n const { courses } = useTechnoSpamStore();\n const course = courses[0];\n\n if (!course) {\n return <div className=\"p-6 text-center text-muted-foreground\">Course not found</div>;\n }\n\n const levelColor = (level: string) => {\n switch (level) {\n case 'beginner':\n return 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400';\n case 'intermediate':\n return 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400';\n case 'advanced':\n return 'bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400';\n case 'expert':\n return 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400';\n default:\n return '';\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"ghost\" size=\"sm\" className=\"text-muted-foreground\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back to Courses\n </Button>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"space-y-4 lg:col-span-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span\n className={`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${levelColor(course.level)}`}\n >\n {course.level}\n </span>\n <Badge variant=\"secondary\">{course.category}</Badge>\n {course.isFeatured && (\n <Badge variant=\"secondary\" className=\"flex items-center gap-1\">\n <Sparkles className=\"h-3 w-3\" />\n Featured\n </Badge>\n )}\n </div>\n <h1 className=\"text-3xl font-bold text-foreground\">{course.title}</h1>\n <p className=\"text-muted-foreground\">\n Master the concepts and techniques needed to build professional-grade applications. This\n comprehensive course covers everything from fundamentals to advanced topics.\n </p>\n <div className=\"flex flex-wrap items-center gap-4 text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <User className=\"h-4 w-4\" />\n {course.instructor}\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-4 w-4 text-yellow-500\" />\n {course.rating} rating\n </span>\n <span className=\"flex items-center gap-1\">\n <Users className=\"h-4 w-4\" />\n {course.enrollmentCount.toLocaleString()} students\n </span>\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-4 w-4\" />\n {course.duration} hours\n </span>\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {course.tags.map((tag) => (\n <Badge key={tag} variant=\"outline\">\n {tag}\n </Badge>\n ))}\n </div>\n </div>\n\n <Card>\n <CardContent className=\"space-y-4 pt-6\">\n <div className=\"text-center\">\n <span className=\"text-3xl font-bold\">\n {course.price === 0 ? 'Free' : `$${course.price}`}\n </span>\n </div>\n <Button className=\"w-full\" size=\"lg\">\n Enroll Now\n </Button>\n {course.certificateAvailable && (\n <div className=\"flex items-center justify-center gap-2 text-sm text-muted-foreground\">\n <Award className=\"h-4 w-4 text-primary\" />\n Certificate of Completion\n </div>\n )}\n <div className=\"space-y-2 border-t border-border pt-4 text-sm text-muted-foreground\">\n <div className=\"flex justify-between\">\n <span>Duration</span>\n <span className=\"font-medium text-foreground\">{course.duration} hours</span>\n </div>\n <div className=\"flex justify-between\">\n <span>Level</span>\n <span className=\"font-medium text-foreground capitalize\">{course.level}</span>\n </div>\n <div className=\"flex justify-between\">\n <span>Students</span>\n <span className=\"font-medium text-foreground\">\n {course.enrollmentCount.toLocaleString()}\n </span>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">What You'll Learn</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 sm:grid-cols-2\">\n {mockLearningOutcomes.map((outcome) => (\n <div key={outcome} className=\"flex items-start gap-2\">\n <CheckCircle className=\"mt-0.5 h-4 w-4 shrink-0 text-green-500\" />\n <span className=\"text-sm\">{outcome}</span>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2 text-base\">\n <BookOpen className=\"h-4 w-4\" />\n Course Curriculum\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {mockCurriculum.map((section, index) => (\n <div\n key={section.title}\n className=\"flex items-center justify-between rounded-lg border border-border p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <span className=\"flex h-8 w-8 items-center justify-center rounded-full bg-muted text-sm font-medium\">\n {index + 1}\n </span>\n <div>\n <p className=\"text-sm font-medium\">{section.title}</p>\n <p className=\"text-xs text-muted-foreground\">{section.lessons} lessons</p>\n </div>\n </div>\n <span className=\"text-sm text-muted-foreground\">{section.duration}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">About the Instructor</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"flex items-start gap-4\">\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-muted\">\n <User className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n <div className=\"space-y-1\">\n <p className=\"font-medium\">{course.instructor}</p>\n <p className=\"text-sm text-muted-foreground\">\n Expert instructor with years of industry experience. Passionate about helping\n students master complex topics through practical, hands-on learning.\n </p>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n <span>{course.rating} instructor rating</span>\n <span>·</span>\n <span>{course.enrollmentCount.toLocaleString()} students</span>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoursesCoursesPagePage.d.ts","sourceRoot":"","sources":["../../../src/technospam/pages/CoursesCoursesPagePage.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,sBAAsB,4CAsLrC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { useTechnoSpamStore as e } from "../store/technospamStore.js";
|
|
2
|
+
import { tWithFallback as t } from "../utils/i18n.js";
|
|
3
|
+
import { useMemo as n, useState as r } from "react";
|
|
4
|
+
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
5
|
+
import { Award as a, Clock as o, Search as s, Sparkles as c, Star as l, Users as u } from "lucide-react";
|
|
6
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
7
|
+
import { Badge as p, Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, Input as y } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
//#region src/technospam/pages/CoursesCoursesPagePage.tsx
|
|
9
|
+
function b() {
|
|
10
|
+
let { t: b } = i(), x = (e, n, r) => t(b, e, n, r), { courses: S } = e(), [C, w] = r(""), [T, E] = r("all"), D = n(() => S.filter((e) => {
|
|
11
|
+
let t = C === "" || e.title.toLowerCase().includes(C.toLowerCase()) || e.instructor.toLowerCase().includes(C.toLowerCase()) || e.category.toLowerCase().includes(C.toLowerCase()) || e.tags.some((e) => e.toLowerCase().includes(C.toLowerCase())), n = T === "all" || e.level === T;
|
|
12
|
+
return t && n;
|
|
13
|
+
}), [
|
|
14
|
+
S,
|
|
15
|
+
C,
|
|
16
|
+
T
|
|
17
|
+
]), O = S.filter((e) => e.isFeatured).length, k = S.filter((e) => e.price === 0).length, A = (e) => {
|
|
18
|
+
switch (e) {
|
|
19
|
+
case "beginner": return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400";
|
|
20
|
+
case "intermediate": return "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400";
|
|
21
|
+
case "advanced": return "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400";
|
|
22
|
+
case "expert": return "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400";
|
|
23
|
+
default: return "";
|
|
24
|
+
}
|
|
25
|
+
}, j = [
|
|
26
|
+
{
|
|
27
|
+
label: x("technospam.courses.filters.allLevels", "All Levels"),
|
|
28
|
+
value: "all"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: x("technospam.courses.filters.beginner", "Beginner"),
|
|
32
|
+
value: "beginner"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: x("technospam.courses.filters.intermediate", "Intermediate"),
|
|
36
|
+
value: "intermediate"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: x("technospam.courses.filters.advanced", "Advanced"),
|
|
40
|
+
value: "advanced"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
label: x("technospam.courses.filters.expert", "Expert"),
|
|
44
|
+
value: "expert"
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
return /* @__PURE__ */ f("div", {
|
|
48
|
+
className: "space-y-6 p-6",
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ f("div", {
|
|
51
|
+
className: "flex items-center justify-between",
|
|
52
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h1", {
|
|
53
|
+
className: "text-2xl font-semibold text-foreground",
|
|
54
|
+
children: x("technospam.courses.title", "Course Catalog")
|
|
55
|
+
}), /* @__PURE__ */ d("p", {
|
|
56
|
+
className: "text-sm text-muted-foreground",
|
|
57
|
+
children: x("technospam.courses.subtitle", "{{count}} courses available", { count: S.length })
|
|
58
|
+
})] }), /* @__PURE__ */ f("div", {
|
|
59
|
+
className: "flex gap-2",
|
|
60
|
+
children: [/* @__PURE__ */ d(p, {
|
|
61
|
+
variant: "secondary",
|
|
62
|
+
children: x("technospam.courses.badges.featured", "{{count}} Featured", { count: O })
|
|
63
|
+
}), /* @__PURE__ */ d(p, {
|
|
64
|
+
variant: "secondary",
|
|
65
|
+
children: x("technospam.courses.badges.free", "{{count}} Free", { count: k })
|
|
66
|
+
})]
|
|
67
|
+
})]
|
|
68
|
+
}),
|
|
69
|
+
/* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(g, {
|
|
70
|
+
className: "pt-6",
|
|
71
|
+
children: /* @__PURE__ */ f("div", {
|
|
72
|
+
className: "flex flex-col gap-4 sm:flex-row sm:items-center",
|
|
73
|
+
children: [/* @__PURE__ */ f("div", {
|
|
74
|
+
className: "relative flex-1",
|
|
75
|
+
children: [/* @__PURE__ */ d(s, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ d(y, {
|
|
76
|
+
placeholder: x("technospam.courses.search.placeholder", "Search courses, instructors, topics..."),
|
|
77
|
+
value: C,
|
|
78
|
+
onChange: (e) => w(e.target.value),
|
|
79
|
+
className: "pl-9"
|
|
80
|
+
})]
|
|
81
|
+
}), /* @__PURE__ */ d("div", {
|
|
82
|
+
className: "flex flex-wrap gap-2",
|
|
83
|
+
children: j.map((e) => /* @__PURE__ */ d(m, {
|
|
84
|
+
variant: T === e.value ? "default" : "outline",
|
|
85
|
+
size: "sm",
|
|
86
|
+
onClick: () => E(e.value),
|
|
87
|
+
children: e.label
|
|
88
|
+
}, e.value))
|
|
89
|
+
})]
|
|
90
|
+
})
|
|
91
|
+
}) }),
|
|
92
|
+
D.length === 0 ? /* @__PURE__ */ d("div", {
|
|
93
|
+
className: "py-12 text-center text-sm text-muted-foreground",
|
|
94
|
+
children: x("technospam.courses.empty", "No courses match your filters")
|
|
95
|
+
}) : /* @__PURE__ */ d("div", {
|
|
96
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
97
|
+
children: D.map((e) => /* @__PURE__ */ f(h, {
|
|
98
|
+
className: "flex flex-col",
|
|
99
|
+
children: [/* @__PURE__ */ d(_, {
|
|
100
|
+
className: "pb-3",
|
|
101
|
+
children: /* @__PURE__ */ f("div", {
|
|
102
|
+
className: "flex items-start justify-between",
|
|
103
|
+
children: [/* @__PURE__ */ f("div", {
|
|
104
|
+
className: "space-y-1",
|
|
105
|
+
children: [/* @__PURE__ */ d(v, {
|
|
106
|
+
className: "text-base leading-tight",
|
|
107
|
+
children: e.title
|
|
108
|
+
}), /* @__PURE__ */ d("p", {
|
|
109
|
+
className: "text-xs text-muted-foreground",
|
|
110
|
+
children: e.instructor
|
|
111
|
+
})]
|
|
112
|
+
}), e.isFeatured && /* @__PURE__ */ d(c, { className: "h-4 w-4 shrink-0 text-yellow-500" })]
|
|
113
|
+
})
|
|
114
|
+
}), /* @__PURE__ */ f(g, {
|
|
115
|
+
className: "flex flex-1 flex-col justify-between space-y-3",
|
|
116
|
+
children: [/* @__PURE__ */ f("div", {
|
|
117
|
+
className: "space-y-3",
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ f("div", {
|
|
120
|
+
className: "flex flex-wrap gap-1.5",
|
|
121
|
+
children: [/* @__PURE__ */ d("span", {
|
|
122
|
+
className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${A(e.level)}`,
|
|
123
|
+
children: e.level
|
|
124
|
+
}), /* @__PURE__ */ d(p, {
|
|
125
|
+
variant: "secondary",
|
|
126
|
+
className: "text-xs",
|
|
127
|
+
children: e.category
|
|
128
|
+
})]
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ f("div", {
|
|
131
|
+
className: "flex items-center gap-3 text-xs text-muted-foreground",
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ f("span", {
|
|
134
|
+
className: "flex items-center gap-1",
|
|
135
|
+
children: [/* @__PURE__ */ d(l, { className: "h-3 w-3 text-yellow-500" }), e.rating]
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ f("span", {
|
|
138
|
+
className: "flex items-center gap-1",
|
|
139
|
+
children: [/* @__PURE__ */ d(u, { className: "h-3 w-3" }), e.enrollmentCount.toLocaleString()]
|
|
140
|
+
}),
|
|
141
|
+
/* @__PURE__ */ f("span", {
|
|
142
|
+
className: "flex items-center gap-1",
|
|
143
|
+
children: [/* @__PURE__ */ d(o, { className: "h-3 w-3" }), x("technospam.courses.course.duration", "{{hours}}h", { hours: e.duration })]
|
|
144
|
+
})
|
|
145
|
+
]
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ d("div", {
|
|
148
|
+
className: "flex flex-wrap gap-1",
|
|
149
|
+
children: e.tags.map((e) => /* @__PURE__ */ d(p, {
|
|
150
|
+
variant: "outline",
|
|
151
|
+
className: "text-xs",
|
|
152
|
+
children: e
|
|
153
|
+
}, e))
|
|
154
|
+
}),
|
|
155
|
+
e.certificateAvailable && /* @__PURE__ */ f("div", {
|
|
156
|
+
className: "flex items-center gap-1 text-xs text-muted-foreground",
|
|
157
|
+
children: [/* @__PURE__ */ d(a, { className: "h-3 w-3" }), x("technospam.courses.course.certificate", "Certificate available")]
|
|
158
|
+
})
|
|
159
|
+
]
|
|
160
|
+
}), /* @__PURE__ */ f("div", {
|
|
161
|
+
className: "flex items-center justify-between pt-2",
|
|
162
|
+
children: [/* @__PURE__ */ d("span", {
|
|
163
|
+
className: "text-lg font-bold",
|
|
164
|
+
children: e.price === 0 ? x("technospam.courses.course.free", "Free") : x("technospam.courses.course.price", "${{price}}", { price: e.price })
|
|
165
|
+
}), /* @__PURE__ */ d(m, {
|
|
166
|
+
size: "sm",
|
|
167
|
+
children: x("technospam.courses.actions.enroll", "Enroll Now")
|
|
168
|
+
})]
|
|
169
|
+
})]
|
|
170
|
+
})]
|
|
171
|
+
}, e.id))
|
|
172
|
+
})
|
|
173
|
+
]
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
export { b as CoursesCoursesPagePage };
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=CoursesCoursesPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoursesCoursesPagePage.js","names":[],"sources":["../../../src/technospam/pages/CoursesCoursesPagePage.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Badge,\n Button,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Search, Star, Users, Clock, Award, Sparkles } from 'lucide-react';\nimport { useTechnoSpamStore } from '../store/technospamStore';\nimport { tWithFallback } from '../utils/i18n';\n\ntype LevelFilter = 'all' | 'beginner' | 'intermediate' | 'advanced' | 'expert';\n\nexport function CoursesCoursesPagePage() {\n const { t } = useI18n();\n const tr = (key: string, fallback: string, params?: Record<string, string | number>): string =>\n tWithFallback(t, key, fallback, params);\n const { courses } = useTechnoSpamStore();\n const [searchTerm, setSearchTerm] = useState('');\n const [levelFilter, setLevelFilter] = useState<LevelFilter>('all');\n\n const filteredCourses = useMemo(() => {\n return courses.filter((course) => {\n const matchesSearch =\n searchTerm === '' ||\n course.title.toLowerCase().includes(searchTerm.toLowerCase()) ||\n course.instructor.toLowerCase().includes(searchTerm.toLowerCase()) ||\n course.category.toLowerCase().includes(searchTerm.toLowerCase()) ||\n course.tags.some((tag) => tag.toLowerCase().includes(searchTerm.toLowerCase()));\n const matchesLevel = levelFilter === 'all' || course.level === levelFilter;\n return matchesSearch && matchesLevel;\n });\n }, [courses, searchTerm, levelFilter]);\n\n const featuredCount = courses.filter((course) => course.isFeatured).length;\n const freeCount = courses.filter((course) => course.price === 0).length;\n\n const levelColor = (level: string) => {\n switch (level) {\n case 'beginner':\n return 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400';\n case 'intermediate':\n return 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400';\n case 'advanced':\n return 'bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400';\n case 'expert':\n return 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400';\n default:\n return '';\n }\n };\n\n const levels: { label: string; value: LevelFilter }[] = [\n { label: tr('technospam.courses.filters.allLevels', 'All Levels'), value: 'all' },\n { label: tr('technospam.courses.filters.beginner', 'Beginner'), value: 'beginner' },\n {\n label: tr('technospam.courses.filters.intermediate', 'Intermediate'),\n value: 'intermediate',\n },\n { label: tr('technospam.courses.filters.advanced', 'Advanced'), value: 'advanced' },\n { label: tr('technospam.courses.filters.expert', 'Expert'), value: 'expert' },\n ];\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 text-foreground\">\n {tr('technospam.courses.title', 'Course Catalog')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n {tr('technospam.courses.subtitle', '{{count}} courses available', {\n count: courses.length,\n })}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Badge variant=\"secondary\">\n {tr('technospam.courses.badges.featured', '{{count}} Featured', {\n count: featuredCount,\n })}\n </Badge>\n <Badge variant=\"secondary\">\n {tr('technospam.courses.badges.free', '{{count}} Free', { count: freeCount })}\n </Badge>\n </div>\n </div>\n\n <Card>\n <CardContent className=\"pt-6\">\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center\">\n <div className=\"relative flex-1\">\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n placeholder={tr(\n 'technospam.courses.search.placeholder',\n 'Search courses, instructors, topics...'\n )}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"pl-9\"\n />\n </div>\n <div className=\"flex flex-wrap gap-2\">\n {levels.map((level) => (\n <Button\n key={level.value}\n variant={levelFilter === level.value ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setLevelFilter(level.value)}\n >\n {level.label}\n </Button>\n ))}\n </div>\n </div>\n </CardContent>\n </Card>\n\n {filteredCourses.length === 0 ? (\n <div className=\"py-12 text-center text-sm text-muted-foreground\">\n {tr('technospam.courses.empty', 'No courses match your filters')}\n </div>\n ) : (\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {filteredCourses.map((course) => (\n <Card key={course.id} className=\"flex flex-col\">\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between\">\n <div className=\"space-y-1\">\n <CardTitle className=\"text-base leading-tight\">{course.title}</CardTitle>\n <p className=\"text-xs text-muted-foreground\">{course.instructor}</p>\n </div>\n {course.isFeatured && <Sparkles className=\"h-4 w-4 shrink-0 text-yellow-500\" />}\n </div>\n </CardHeader>\n <CardContent className=\"flex flex-1 flex-col justify-between space-y-3\">\n <div className=\"space-y-3\">\n <div className=\"flex flex-wrap gap-1.5\">\n <span\n className={`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${levelColor(course.level)}`}\n >\n {course.level}\n </span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {course.category}\n </Badge>\n </div>\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {course.rating}\n </span>\n <span className=\"flex items-center gap-1\">\n <Users className=\"h-3 w-3\" />\n {course.enrollmentCount.toLocaleString()}\n </span>\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" />\n {tr('technospam.courses.course.duration', '{{hours}}h', {\n hours: course.duration,\n })}\n </span>\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {course.tags.map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </div>\n {course.certificateAvailable && (\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <Award className=\"h-3 w-3\" />\n {tr('technospam.courses.course.certificate', 'Certificate available')}\n </div>\n )}\n </div>\n <div className=\"flex items-center justify-between pt-2\">\n <span className=\"text-lg font-bold\">\n {course.price === 0\n ? tr('technospam.courses.course.free', 'Free')\n : tr('technospam.courses.course.price', '${{price}}', {\n price: course.price,\n })}\n </span>\n <Button size=\"sm\">{tr('technospam.courses.actions.enroll', 'Enroll Now')}</Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoursesInstructorProfilePagePage.d.ts","sourceRoot":"","sources":["../../../src/technospam/pages/CoursesInstructorProfilePagePage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,gCAAgC,4CA6R/C"}
|