@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,209 @@
|
|
|
1
|
+
import { useTechnoSpamStore as e } from "../store/technospamStore.js";
|
|
2
|
+
import { ArrowRight as t, Calendar as n, Clock as r, MessageSquare as i, Star as a, User as o } from "lucide-react";
|
|
3
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as l, Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as m } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/technospam/pages/MentorshipMentorshipPagePage.tsx
|
|
6
|
+
var h = [{
|
|
7
|
+
id: 1,
|
|
8
|
+
mentorName: "Sarah Chen",
|
|
9
|
+
topic: "System Design Review",
|
|
10
|
+
date: "2026-02-12T10:00:00Z",
|
|
11
|
+
duration: 60
|
|
12
|
+
}, {
|
|
13
|
+
id: 2,
|
|
14
|
+
mentorName: "Dr. Priya Sharma",
|
|
15
|
+
topic: "ML Pipeline Discussion",
|
|
16
|
+
date: "2026-02-14T14:00:00Z",
|
|
17
|
+
duration: 45
|
|
18
|
+
}];
|
|
19
|
+
function g() {
|
|
20
|
+
let { mentors: g, userStats: _ } = e(), v = g.filter((e) => e.isAvailable), y = g.slice(0, 3);
|
|
21
|
+
return /* @__PURE__ */ c("div", {
|
|
22
|
+
className: "space-y-6 p-6",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
|
|
25
|
+
className: "text-2xl font-semibold text-foreground",
|
|
26
|
+
children: "Mentorship"
|
|
27
|
+
}), /* @__PURE__ */ s("p", {
|
|
28
|
+
className: "text-sm text-muted-foreground",
|
|
29
|
+
children: "Connect with experienced mentors to accelerate your growth"
|
|
30
|
+
})] }),
|
|
31
|
+
/* @__PURE__ */ c("div", {
|
|
32
|
+
className: "grid gap-4 md:grid-cols-3",
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(p, {
|
|
35
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
36
|
+
children: [/* @__PURE__ */ s(m, {
|
|
37
|
+
className: "text-sm font-medium",
|
|
38
|
+
children: "Total Sessions"
|
|
39
|
+
}), /* @__PURE__ */ s(i, { className: "h-4 w-4 text-muted-foreground" })]
|
|
40
|
+
}), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
|
|
41
|
+
className: "text-2xl font-bold",
|
|
42
|
+
children: _.mentorshipSessions
|
|
43
|
+
}), /* @__PURE__ */ s("p", {
|
|
44
|
+
className: "text-xs text-muted-foreground",
|
|
45
|
+
children: "Completed sessions"
|
|
46
|
+
})] })] }),
|
|
47
|
+
/* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(p, {
|
|
48
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
49
|
+
children: [/* @__PURE__ */ s(m, {
|
|
50
|
+
className: "text-sm font-medium",
|
|
51
|
+
children: "Available Mentors"
|
|
52
|
+
}), /* @__PURE__ */ s(o, { className: "h-4 w-4 text-green-500" })]
|
|
53
|
+
}), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
|
|
54
|
+
className: "text-2xl font-bold",
|
|
55
|
+
children: v.length
|
|
56
|
+
}), /* @__PURE__ */ s("p", {
|
|
57
|
+
className: "text-xs text-muted-foreground",
|
|
58
|
+
children: "Ready to book"
|
|
59
|
+
})] })] }),
|
|
60
|
+
/* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(p, {
|
|
61
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
62
|
+
children: [/* @__PURE__ */ s(m, {
|
|
63
|
+
className: "text-sm font-medium",
|
|
64
|
+
children: "Upcoming"
|
|
65
|
+
}), /* @__PURE__ */ s(n, { className: "h-4 w-4 text-muted-foreground" })]
|
|
66
|
+
}), /* @__PURE__ */ c(f, { children: [/* @__PURE__ */ s("div", {
|
|
67
|
+
className: "text-2xl font-bold",
|
|
68
|
+
children: h.length
|
|
69
|
+
}), /* @__PURE__ */ s("p", {
|
|
70
|
+
className: "text-xs text-muted-foreground",
|
|
71
|
+
children: "Scheduled sessions"
|
|
72
|
+
})] })] })
|
|
73
|
+
]
|
|
74
|
+
}),
|
|
75
|
+
/* @__PURE__ */ c("div", {
|
|
76
|
+
className: "grid gap-6 lg:grid-cols-3",
|
|
77
|
+
children: [/* @__PURE__ */ s("div", {
|
|
78
|
+
className: "space-y-4 lg:col-span-2",
|
|
79
|
+
children: /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ c(p, {
|
|
80
|
+
className: "flex flex-row items-center justify-between",
|
|
81
|
+
children: [/* @__PURE__ */ s(m, {
|
|
82
|
+
className: "text-base",
|
|
83
|
+
children: "Featured Mentors"
|
|
84
|
+
}), /* @__PURE__ */ c(u, {
|
|
85
|
+
variant: "ghost",
|
|
86
|
+
size: "sm",
|
|
87
|
+
className: "text-xs",
|
|
88
|
+
children: ["View All ", /* @__PURE__ */ s(t, { className: "ml-1 h-3 w-3" })]
|
|
89
|
+
})]
|
|
90
|
+
}), /* @__PURE__ */ s(f, {
|
|
91
|
+
className: "space-y-4",
|
|
92
|
+
children: y.map((e) => /* @__PURE__ */ c("div", {
|
|
93
|
+
className: "flex items-start gap-4 rounded-lg border border-border p-4",
|
|
94
|
+
children: [
|
|
95
|
+
/* @__PURE__ */ s("div", {
|
|
96
|
+
className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted",
|
|
97
|
+
children: /* @__PURE__ */ s(o, { className: "h-5 w-5 text-muted-foreground" })
|
|
98
|
+
}),
|
|
99
|
+
/* @__PURE__ */ c("div", {
|
|
100
|
+
className: "flex-1 space-y-1",
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ c("div", {
|
|
103
|
+
className: "flex items-center gap-2",
|
|
104
|
+
children: [/* @__PURE__ */ s("p", {
|
|
105
|
+
className: "font-medium",
|
|
106
|
+
children: e.name
|
|
107
|
+
}), /* @__PURE__ */ s("span", { className: `h-2 w-2 rounded-full ${e.isAvailable ? "bg-green-500" : "bg-gray-400"}` })]
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ c("p", {
|
|
110
|
+
className: "text-xs text-muted-foreground",
|
|
111
|
+
children: [
|
|
112
|
+
e.title,
|
|
113
|
+
" at ",
|
|
114
|
+
e.company
|
|
115
|
+
]
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ c("div", {
|
|
118
|
+
className: "flex items-center gap-3 text-xs text-muted-foreground",
|
|
119
|
+
children: [
|
|
120
|
+
/* @__PURE__ */ c("span", {
|
|
121
|
+
className: "flex items-center gap-1",
|
|
122
|
+
children: [/* @__PURE__ */ s(a, { className: "h-3 w-3 text-yellow-500" }), e.rating]
|
|
123
|
+
}),
|
|
124
|
+
/* @__PURE__ */ c("span", { children: [e.totalSessions, " sessions"] }),
|
|
125
|
+
/* @__PURE__ */ s("span", { children: e.hourlyRate === 0 ? "Free" : `$${e.hourlyRate}/hr` })
|
|
126
|
+
]
|
|
127
|
+
}),
|
|
128
|
+
/* @__PURE__ */ s("div", {
|
|
129
|
+
className: "flex flex-wrap gap-1 pt-1",
|
|
130
|
+
children: e.expertise.slice(0, 3).map((e) => /* @__PURE__ */ s(l, {
|
|
131
|
+
variant: "outline",
|
|
132
|
+
className: "text-xs",
|
|
133
|
+
children: e
|
|
134
|
+
}, e))
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ s(u, {
|
|
139
|
+
size: "sm",
|
|
140
|
+
variant: "outline",
|
|
141
|
+
children: "Book"
|
|
142
|
+
})
|
|
143
|
+
]
|
|
144
|
+
}, e.id))
|
|
145
|
+
})] })
|
|
146
|
+
}), /* @__PURE__ */ c("div", {
|
|
147
|
+
className: "space-y-4",
|
|
148
|
+
children: [/* @__PURE__ */ c(d, { children: [/* @__PURE__ */ s(p, { children: /* @__PURE__ */ c(m, {
|
|
149
|
+
className: "flex items-center gap-2 text-base",
|
|
150
|
+
children: [/* @__PURE__ */ s(n, { className: "h-4 w-4" }), "Upcoming Sessions"]
|
|
151
|
+
}) }), /* @__PURE__ */ s(f, {
|
|
152
|
+
className: "space-y-3",
|
|
153
|
+
children: h.map((e) => /* @__PURE__ */ c("div", {
|
|
154
|
+
className: "rounded-lg border border-border p-3 space-y-1",
|
|
155
|
+
children: [
|
|
156
|
+
/* @__PURE__ */ s("p", {
|
|
157
|
+
className: "text-sm font-medium",
|
|
158
|
+
children: e.topic
|
|
159
|
+
}),
|
|
160
|
+
/* @__PURE__ */ c("p", {
|
|
161
|
+
className: "text-xs text-muted-foreground",
|
|
162
|
+
children: ["with ", e.mentorName]
|
|
163
|
+
}),
|
|
164
|
+
/* @__PURE__ */ c("div", {
|
|
165
|
+
className: "flex items-center gap-2 text-xs text-muted-foreground",
|
|
166
|
+
children: [/* @__PURE__ */ s(r, { className: "h-3 w-3" }), /* @__PURE__ */ c("span", { children: [
|
|
167
|
+
new Date(e.date).toLocaleDateString(),
|
|
168
|
+
" · ",
|
|
169
|
+
e.duration,
|
|
170
|
+
"min"
|
|
171
|
+
] })]
|
|
172
|
+
})
|
|
173
|
+
]
|
|
174
|
+
}, e.id))
|
|
175
|
+
})] }), /* @__PURE__ */ c(d, { children: [/* @__PURE__ */ s(p, { children: /* @__PURE__ */ s(m, {
|
|
176
|
+
className: "text-base",
|
|
177
|
+
children: "Quick Actions"
|
|
178
|
+
}) }), /* @__PURE__ */ c(f, {
|
|
179
|
+
className: "space-y-2",
|
|
180
|
+
children: [
|
|
181
|
+
/* @__PURE__ */ c(u, {
|
|
182
|
+
variant: "outline",
|
|
183
|
+
className: "w-full justify-start",
|
|
184
|
+
size: "sm",
|
|
185
|
+
children: [/* @__PURE__ */ s(o, { className: "mr-2 h-4 w-4" }), "Browse Mentors"]
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ c(u, {
|
|
188
|
+
variant: "outline",
|
|
189
|
+
className: "w-full justify-start",
|
|
190
|
+
size: "sm",
|
|
191
|
+
children: [/* @__PURE__ */ s(n, { className: "mr-2 h-4 w-4" }), "My Bookings"]
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ c(u, {
|
|
194
|
+
variant: "outline",
|
|
195
|
+
className: "w-full justify-start",
|
|
196
|
+
size: "sm",
|
|
197
|
+
children: [/* @__PURE__ */ s(i, { className: "mr-2 h-4 w-4" }), "Session History"]
|
|
198
|
+
})
|
|
199
|
+
]
|
|
200
|
+
})] })]
|
|
201
|
+
})]
|
|
202
|
+
})
|
|
203
|
+
]
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
//#endregion
|
|
207
|
+
export { g as MentorshipMentorshipPagePage };
|
|
208
|
+
|
|
209
|
+
//# sourceMappingURL=MentorshipMentorshipPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentorshipMentorshipPagePage.js","names":[],"sources":["../../../src/technospam/pages/MentorshipMentorshipPagePage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { User, Star, Calendar, MessageSquare, ArrowRight, Clock } from 'lucide-react';\nimport { useTechnoSpamStore } from '../store/technospamStore';\n\nconst upcomingSessions = [\n {\n id: 1,\n mentorName: 'Sarah Chen',\n topic: 'System Design Review',\n date: '2026-02-12T10:00:00Z',\n duration: 60,\n },\n {\n id: 2,\n mentorName: 'Dr. Priya Sharma',\n topic: 'ML Pipeline Discussion',\n date: '2026-02-14T14:00:00Z',\n duration: 45,\n },\n];\n\nexport function MentorshipMentorshipPagePage() {\n const { mentors, userStats } = useTechnoSpamStore();\n const availableMentors = mentors.filter((m) => m.isAvailable);\n const featuredMentors = mentors.slice(0, 3);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold text-foreground\">Mentorship</h1>\n <p className=\"text-sm text-muted-foreground\">\n Connect with experienced mentors to accelerate your growth\n </p>\n </div>\n\n {/* Stats */}\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Sessions</CardTitle>\n <MessageSquare className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{userStats.mentorshipSessions}</div>\n <p className=\"text-xs text-muted-foreground\">Completed sessions</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\">Available Mentors</CardTitle>\n <User className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{availableMentors.length}</div>\n <p className=\"text-xs text-muted-foreground\">Ready to book</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\">Upcoming</CardTitle>\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{upcomingSessions.length}</div>\n <p className=\"text-xs text-muted-foreground\">Scheduled sessions</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n {/* Featured Mentors */}\n <div className=\"space-y-4 lg:col-span-2\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle className=\"text-base\">Featured Mentors</CardTitle>\n <Button variant=\"ghost\" size=\"sm\" className=\"text-xs\">\n View All <ArrowRight className=\"ml-1 h-3 w-3\" />\n </Button>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {featuredMentors.map((mentor) => (\n <div\n key={mentor.id}\n className=\"flex items-start gap-4 rounded-lg border border-border p-4\"\n >\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-muted\">\n <User className=\"h-5 w-5 text-muted-foreground\" />\n </div>\n <div className=\"flex-1 space-y-1\">\n <div className=\"flex items-center gap-2\">\n <p className=\"font-medium\">{mentor.name}</p>\n <span\n className={`h-2 w-2 rounded-full ${mentor.isAvailable ? 'bg-green-500' : 'bg-gray-400'}`}\n />\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {mentor.title} at {mentor.company}\n </p>\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 {mentor.rating}\n </span>\n <span>{mentor.totalSessions} sessions</span>\n <span>{mentor.hourlyRate === 0 ? 'Free' : `$${mentor.hourlyRate}/hr`}</span>\n </div>\n <div className=\"flex flex-wrap gap-1 pt-1\">\n {mentor.expertise.slice(0, 3).map((skill) => (\n <Badge key={skill} variant=\"outline\" className=\"text-xs\">\n {skill}\n </Badge>\n ))}\n </div>\n </div>\n <Button size=\"sm\" variant=\"outline\">\n Book\n </Button>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n {/* Upcoming Sessions Sidebar */}\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2 text-base\">\n <Calendar className=\"h-4 w-4\" />\n Upcoming Sessions\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {upcomingSessions.map((session) => (\n <div key={session.id} className=\"rounded-lg border border-border p-3 space-y-1\">\n <p className=\"text-sm font-medium\">{session.topic}</p>\n <p className=\"text-xs text-muted-foreground\">with {session.mentorName}</p>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <Clock className=\"h-3 w-3\" />\n <span>\n {new Date(session.date).toLocaleDateString()} · {session.duration}min\n </span>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Quick Actions</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <Button variant=\"outline\" className=\"w-full justify-start\" size=\"sm\">\n <User className=\"mr-2 h-4 w-4\" />\n Browse Mentors\n </Button>\n <Button variant=\"outline\" className=\"w-full justify-start\" size=\"sm\">\n <Calendar className=\"mr-2 h-4 w-4\" />\n My Bookings\n </Button>\n <Button variant=\"outline\" className=\"w-full justify-start\" size=\"sm\">\n <MessageSquare className=\"mr-2 h-4 w-4\" />\n Session History\n </Button>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentorshipSessionsPagePage.d.ts","sourceRoot":"","sources":["../../../src/technospam/pages/MentorshipSessionsPagePage.tsx"],"names":[],"mappings":"AA4DA,wBAAgB,0BAA0B,4CAyFzC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { useState as e } from "react";
|
|
2
|
+
import { Calendar as t, Clock as n, MessageSquare as r, User as i, Video as a } from "lucide-react";
|
|
3
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as c, Button as l, Card as u, CardContent as d } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/technospam/pages/MentorshipSessionsPagePage.tsx
|
|
6
|
+
var f = [
|
|
7
|
+
{
|
|
8
|
+
id: 1,
|
|
9
|
+
mentorName: "Sarah Chen",
|
|
10
|
+
topic: "System Design Review",
|
|
11
|
+
date: "2026-02-12T10:00:00Z",
|
|
12
|
+
duration: 60,
|
|
13
|
+
status: "upcoming",
|
|
14
|
+
type: "video"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 2,
|
|
18
|
+
mentorName: "Dr. Priya Sharma",
|
|
19
|
+
topic: "ML Pipeline Discussion",
|
|
20
|
+
date: "2026-02-14T14:00:00Z",
|
|
21
|
+
duration: 45,
|
|
22
|
+
status: "upcoming",
|
|
23
|
+
type: "video"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 3,
|
|
27
|
+
mentorName: "Alex Morgan",
|
|
28
|
+
topic: "Career Path Planning",
|
|
29
|
+
date: "2026-02-05T11:00:00Z",
|
|
30
|
+
duration: 60,
|
|
31
|
+
status: "completed",
|
|
32
|
+
type: "video",
|
|
33
|
+
rating: 5,
|
|
34
|
+
notes: "Great session on career transition strategies"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 4,
|
|
38
|
+
mentorName: "James Rodriguez",
|
|
39
|
+
topic: "Deep Learning Basics",
|
|
40
|
+
date: "2026-01-28T15:00:00Z",
|
|
41
|
+
duration: 45,
|
|
42
|
+
status: "completed",
|
|
43
|
+
type: "chat",
|
|
44
|
+
rating: 4,
|
|
45
|
+
notes: "Covered CNN architectures and transfer learning"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 5,
|
|
49
|
+
mentorName: "Emily Davis",
|
|
50
|
+
topic: "Microservices Architecture",
|
|
51
|
+
date: "2026-01-20T09:00:00Z",
|
|
52
|
+
duration: 60,
|
|
53
|
+
status: "completed",
|
|
54
|
+
type: "video",
|
|
55
|
+
rating: 5,
|
|
56
|
+
notes: "Discussed event-driven patterns and Kafka"
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
function p() {
|
|
60
|
+
let [p, m] = e("upcoming"), h = f.filter((e) => e.status === p);
|
|
61
|
+
return /* @__PURE__ */ s("div", {
|
|
62
|
+
className: "space-y-6 p-6",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
65
|
+
className: "text-2xl font-semibold text-foreground",
|
|
66
|
+
children: "My Sessions"
|
|
67
|
+
}), /* @__PURE__ */ o("p", {
|
|
68
|
+
className: "text-sm text-muted-foreground",
|
|
69
|
+
children: "Manage your mentorship sessions"
|
|
70
|
+
})] }),
|
|
71
|
+
/* @__PURE__ */ s("div", {
|
|
72
|
+
className: "flex gap-2 border-b border-border pb-2",
|
|
73
|
+
children: [/* @__PURE__ */ s(l, {
|
|
74
|
+
variant: p === "upcoming" ? "default" : "ghost",
|
|
75
|
+
size: "sm",
|
|
76
|
+
onClick: () => m("upcoming"),
|
|
77
|
+
children: [
|
|
78
|
+
"Upcoming (",
|
|
79
|
+
f.filter((e) => e.status === "upcoming").length,
|
|
80
|
+
")"
|
|
81
|
+
]
|
|
82
|
+
}), /* @__PURE__ */ s(l, {
|
|
83
|
+
variant: p === "completed" ? "default" : "ghost",
|
|
84
|
+
size: "sm",
|
|
85
|
+
onClick: () => m("completed"),
|
|
86
|
+
children: [
|
|
87
|
+
"Completed (",
|
|
88
|
+
f.filter((e) => e.status === "completed").length,
|
|
89
|
+
")"
|
|
90
|
+
]
|
|
91
|
+
})]
|
|
92
|
+
}),
|
|
93
|
+
h.length === 0 ? /* @__PURE__ */ s("div", {
|
|
94
|
+
className: "py-12 text-center text-sm text-muted-foreground",
|
|
95
|
+
children: [
|
|
96
|
+
"No ",
|
|
97
|
+
p,
|
|
98
|
+
" sessions"
|
|
99
|
+
]
|
|
100
|
+
}) : /* @__PURE__ */ o("div", {
|
|
101
|
+
className: "space-y-4",
|
|
102
|
+
children: h.map((e) => /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
103
|
+
className: "flex flex-col gap-4 p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
104
|
+
children: [/* @__PURE__ */ s("div", {
|
|
105
|
+
className: "flex items-start gap-4",
|
|
106
|
+
children: [/* @__PURE__ */ o("div", {
|
|
107
|
+
className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted",
|
|
108
|
+
children: /* @__PURE__ */ o(i, { className: "h-5 w-5 text-muted-foreground" })
|
|
109
|
+
}), /* @__PURE__ */ s("div", {
|
|
110
|
+
className: "space-y-1",
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ o("p", {
|
|
113
|
+
className: "text-sm font-medium",
|
|
114
|
+
children: e.topic
|
|
115
|
+
}),
|
|
116
|
+
/* @__PURE__ */ s("p", {
|
|
117
|
+
className: "text-xs text-muted-foreground",
|
|
118
|
+
children: ["with ", e.mentorName]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ s("div", {
|
|
121
|
+
className: "flex items-center gap-3 text-xs text-muted-foreground",
|
|
122
|
+
children: [
|
|
123
|
+
/* @__PURE__ */ s("span", {
|
|
124
|
+
className: "flex items-center gap-1",
|
|
125
|
+
children: [/* @__PURE__ */ o(t, { className: "h-3 w-3" }), new Date(e.date).toLocaleDateString()]
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ s("span", {
|
|
128
|
+
className: "flex items-center gap-1",
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ o(n, { className: "h-3 w-3" }),
|
|
131
|
+
e.duration,
|
|
132
|
+
"min"
|
|
133
|
+
]
|
|
134
|
+
}),
|
|
135
|
+
/* @__PURE__ */ s("span", {
|
|
136
|
+
className: "flex items-center gap-1",
|
|
137
|
+
children: [e.type === "video" ? /* @__PURE__ */ o(a, { className: "h-3 w-3" }) : /* @__PURE__ */ o(r, { className: "h-3 w-3" }), e.type]
|
|
138
|
+
})
|
|
139
|
+
]
|
|
140
|
+
}),
|
|
141
|
+
"notes" in e && e.notes && /* @__PURE__ */ o("p", {
|
|
142
|
+
className: "text-xs text-muted-foreground italic",
|
|
143
|
+
children: e.notes
|
|
144
|
+
})
|
|
145
|
+
]
|
|
146
|
+
})]
|
|
147
|
+
}), /* @__PURE__ */ s("div", {
|
|
148
|
+
className: "flex items-center gap-2",
|
|
149
|
+
children: ["rating" in e && e.rating && /* @__PURE__ */ o(c, {
|
|
150
|
+
variant: "secondary",
|
|
151
|
+
className: "text-xs",
|
|
152
|
+
children: "★".repeat(e.rating)
|
|
153
|
+
}), e.status === "upcoming" ? /* @__PURE__ */ o(l, {
|
|
154
|
+
size: "sm",
|
|
155
|
+
children: "Join Session"
|
|
156
|
+
}) : /* @__PURE__ */ o(l, {
|
|
157
|
+
variant: "outline",
|
|
158
|
+
size: "sm",
|
|
159
|
+
children: "View Notes"
|
|
160
|
+
})]
|
|
161
|
+
})]
|
|
162
|
+
}) }, e.id))
|
|
163
|
+
})
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
export { p as MentorshipSessionsPagePage };
|
|
169
|
+
|
|
170
|
+
//# sourceMappingURL=MentorshipSessionsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentorshipSessionsPagePage.js","names":[],"sources":["../../../src/technospam/pages/MentorshipSessionsPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { Calendar, Clock, User, Video, MessageSquare } from 'lucide-react';\n\ntype TabFilter = 'upcoming' | 'completed';\n\nconst mockSessions = [\n {\n id: 1,\n mentorName: 'Sarah Chen',\n topic: 'System Design Review',\n date: '2026-02-12T10:00:00Z',\n duration: 60,\n status: 'upcoming',\n type: 'video',\n },\n {\n id: 2,\n mentorName: 'Dr. Priya Sharma',\n topic: 'ML Pipeline Discussion',\n date: '2026-02-14T14:00:00Z',\n duration: 45,\n status: 'upcoming',\n type: 'video',\n },\n {\n id: 3,\n mentorName: 'Alex Morgan',\n topic: 'Career Path Planning',\n date: '2026-02-05T11:00:00Z',\n duration: 60,\n status: 'completed',\n type: 'video',\n rating: 5,\n notes: 'Great session on career transition strategies',\n },\n {\n id: 4,\n mentorName: 'James Rodriguez',\n topic: 'Deep Learning Basics',\n date: '2026-01-28T15:00:00Z',\n duration: 45,\n status: 'completed',\n type: 'chat',\n rating: 4,\n notes: 'Covered CNN architectures and transfer learning',\n },\n {\n id: 5,\n mentorName: 'Emily Davis',\n topic: 'Microservices Architecture',\n date: '2026-01-20T09:00:00Z',\n duration: 60,\n status: 'completed',\n type: 'video',\n rating: 5,\n notes: 'Discussed event-driven patterns and Kafka',\n },\n];\n\nexport function MentorshipSessionsPagePage() {\n const [activeTab, setActiveTab] = useState<TabFilter>('upcoming');\n\n const filteredSessions = mockSessions.filter((s) => s.status === activeTab);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold text-foreground\">My Sessions</h1>\n <p className=\"text-sm text-muted-foreground\">Manage your mentorship sessions</p>\n </div>\n\n <div className=\"flex gap-2 border-b border-border pb-2\">\n <Button\n variant={activeTab === 'upcoming' ? 'default' : 'ghost'}\n size=\"sm\"\n onClick={() => setActiveTab('upcoming')}\n >\n Upcoming ({mockSessions.filter((s) => s.status === 'upcoming').length})\n </Button>\n <Button\n variant={activeTab === 'completed' ? 'default' : 'ghost'}\n size=\"sm\"\n onClick={() => setActiveTab('completed')}\n >\n Completed ({mockSessions.filter((s) => s.status === 'completed').length})\n </Button>\n </div>\n\n {filteredSessions.length === 0 ? (\n <div className=\"py-12 text-center text-sm text-muted-foreground\">\n No {activeTab} sessions\n </div>\n ) : (\n <div className=\"space-y-4\">\n {filteredSessions.map((session) => (\n <Card key={session.id}>\n <CardContent className=\"flex flex-col gap-4 p-4 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-start gap-4\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-muted\">\n <User className=\"h-5 w-5 text-muted-foreground\" />\n </div>\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">{session.topic}</p>\n <p className=\"text-xs text-muted-foreground\">with {session.mentorName}</p>\n <div className=\"flex items-center gap-3 text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n {new Date(session.date).toLocaleDateString()}\n </span>\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" />\n {session.duration}min\n </span>\n <span className=\"flex items-center gap-1\">\n {session.type === 'video' ? (\n <Video className=\"h-3 w-3\" />\n ) : (\n <MessageSquare className=\"h-3 w-3\" />\n )}\n {session.type}\n </span>\n </div>\n {'notes' in session && session.notes && (\n <p className=\"text-xs text-muted-foreground italic\">{session.notes}</p>\n )}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {'rating' in session && session.rating && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {'★'.repeat(session.rating as number)}\n </Badge>\n )}\n {session.status === 'upcoming' ? (\n <Button size=\"sm\">Join Session</Button>\n ) : (\n <Button variant=\"outline\" size=\"sm\">\n View Notes\n </Button>\n )}\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":"OpenSourceContributionsPagePage.d.ts","sourceRoot":"","sources":["../../../src/technospam/pages/OpenSourceContributionsPagePage.tsx"],"names":[],"mappings":"AA6EA,wBAAgB,+BAA+B,4CAqH9C"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { useTechnoSpamStore as e } from "../store/technospamStore.js";
|
|
2
|
+
import { AlertCircle as t, CheckCircle as n, GitBranch as r, GitPullRequest as i } from "lucide-react";
|
|
3
|
+
import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
+
import { Card as c, CardContent as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/technospam/pages/OpenSourceContributionsPagePage.tsx
|
|
6
|
+
var f = [
|
|
7
|
+
{
|
|
8
|
+
id: 1,
|
|
9
|
+
project: "algo-visualizer",
|
|
10
|
+
type: "PR",
|
|
11
|
+
title: "Add Dijkstra animation",
|
|
12
|
+
status: "merged",
|
|
13
|
+
date: "2026-02-08",
|
|
14
|
+
additions: 245,
|
|
15
|
+
deletions: 12
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 2,
|
|
19
|
+
project: "code-playground",
|
|
20
|
+
type: "Issue",
|
|
21
|
+
title: "Fix WebSocket reconnection",
|
|
22
|
+
status: "closed",
|
|
23
|
+
date: "2026-02-05",
|
|
24
|
+
additions: 0,
|
|
25
|
+
deletions: 0
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 3,
|
|
29
|
+
project: "ml-toolkit",
|
|
30
|
+
type: "PR",
|
|
31
|
+
title: "Add random forest classifier",
|
|
32
|
+
status: "open",
|
|
33
|
+
date: "2026-02-03",
|
|
34
|
+
additions: 380,
|
|
35
|
+
deletions: 45
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 4,
|
|
39
|
+
project: "algo-visualizer",
|
|
40
|
+
type: "PR",
|
|
41
|
+
title: "Implement binary search tree viz",
|
|
42
|
+
status: "merged",
|
|
43
|
+
date: "2026-01-28",
|
|
44
|
+
additions: 189,
|
|
45
|
+
deletions: 8
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 5,
|
|
49
|
+
project: "devops-starter",
|
|
50
|
+
type: "PR",
|
|
51
|
+
title: "Add Helm chart templates",
|
|
52
|
+
status: "merged",
|
|
53
|
+
date: "2026-01-22",
|
|
54
|
+
additions: 156,
|
|
55
|
+
deletions: 23
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 6,
|
|
59
|
+
project: "code-playground",
|
|
60
|
+
type: "Issue",
|
|
61
|
+
title: "Support Rust language",
|
|
62
|
+
status: "open",
|
|
63
|
+
date: "2026-01-18",
|
|
64
|
+
additions: 0,
|
|
65
|
+
deletions: 0
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 7,
|
|
69
|
+
project: "algo-visualizer",
|
|
70
|
+
type: "PR",
|
|
71
|
+
title: "Fix merge sort animation timing",
|
|
72
|
+
status: "merged",
|
|
73
|
+
date: "2026-01-12",
|
|
74
|
+
additions: 34,
|
|
75
|
+
deletions: 18
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
function p() {
|
|
79
|
+
let { userStats: p } = e(), m = f.filter((e) => e.type === "PR" && e.status === "merged").length, h = f.filter((e) => e.type === "PR" && e.status === "open").length, g = f.reduce((e, t) => e + t.additions, 0), _ = (e) => {
|
|
80
|
+
switch (e) {
|
|
81
|
+
case "merged": return "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400";
|
|
82
|
+
case "open": return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400";
|
|
83
|
+
case "closed": return "bg-gray-100 text-gray-800 dark:bg-gray-900/30 dark:text-gray-400";
|
|
84
|
+
default: return "";
|
|
85
|
+
}
|
|
86
|
+
}, v = (e) => o(e === "PR" ? i : t, { className: "h-4 w-4" });
|
|
87
|
+
return /* @__PURE__ */ s("div", {
|
|
88
|
+
className: "space-y-6 p-6",
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
|
|
91
|
+
className: "text-2xl font-semibold text-foreground",
|
|
92
|
+
children: "My Contributions"
|
|
93
|
+
}), /* @__PURE__ */ o("p", {
|
|
94
|
+
className: "text-sm text-muted-foreground",
|
|
95
|
+
children: "Track your open source contributions and impact"
|
|
96
|
+
})] }),
|
|
97
|
+
/* @__PURE__ */ s("div", {
|
|
98
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s(u, {
|
|
101
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
102
|
+
children: [/* @__PURE__ */ o(d, {
|
|
103
|
+
className: "text-sm font-medium",
|
|
104
|
+
children: "Total"
|
|
105
|
+
}), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-muted-foreground" })]
|
|
106
|
+
}), /* @__PURE__ */ o(l, { children: /* @__PURE__ */ o("div", {
|
|
107
|
+
className: "text-2xl font-bold",
|
|
108
|
+
children: p.contributionsMade
|
|
109
|
+
}) })] }),
|
|
110
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s(u, {
|
|
111
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
112
|
+
children: [/* @__PURE__ */ o(d, {
|
|
113
|
+
className: "text-sm font-medium",
|
|
114
|
+
children: "Merged PRs"
|
|
115
|
+
}), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-purple-500" })]
|
|
116
|
+
}), /* @__PURE__ */ o(l, { children: /* @__PURE__ */ o("div", {
|
|
117
|
+
className: "text-2xl font-bold",
|
|
118
|
+
children: m
|
|
119
|
+
}) })] }),
|
|
120
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s(u, {
|
|
121
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
122
|
+
children: [/* @__PURE__ */ o(d, {
|
|
123
|
+
className: "text-sm font-medium",
|
|
124
|
+
children: "Open PRs"
|
|
125
|
+
}), /* @__PURE__ */ o(i, { className: "h-4 w-4 text-green-500" })]
|
|
126
|
+
}), /* @__PURE__ */ o(l, { children: /* @__PURE__ */ o("div", {
|
|
127
|
+
className: "text-2xl font-bold",
|
|
128
|
+
children: h
|
|
129
|
+
}) })] }),
|
|
130
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s(u, {
|
|
131
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
132
|
+
children: [/* @__PURE__ */ o(d, {
|
|
133
|
+
className: "text-sm font-medium",
|
|
134
|
+
children: "Lines Added"
|
|
135
|
+
}), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-muted-foreground" })]
|
|
136
|
+
}), /* @__PURE__ */ o(l, { children: /* @__PURE__ */ s("div", {
|
|
137
|
+
className: "text-2xl font-bold text-green-600",
|
|
138
|
+
children: ["+", g]
|
|
139
|
+
}) })] })
|
|
140
|
+
]
|
|
141
|
+
}),
|
|
142
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
|
|
143
|
+
className: "text-base",
|
|
144
|
+
children: "Contribution History"
|
|
145
|
+
}) }), /* @__PURE__ */ o(l, {
|
|
146
|
+
className: "space-y-3",
|
|
147
|
+
children: f.map((e) => /* @__PURE__ */ s("div", {
|
|
148
|
+
className: "flex items-center justify-between rounded-lg border border-border p-4",
|
|
149
|
+
children: [/* @__PURE__ */ s("div", {
|
|
150
|
+
className: "flex items-start gap-3",
|
|
151
|
+
children: [/* @__PURE__ */ o("div", {
|
|
152
|
+
className: "mt-0.5 text-muted-foreground",
|
|
153
|
+
children: v(e.type)
|
|
154
|
+
}), /* @__PURE__ */ s("div", {
|
|
155
|
+
className: "space-y-1",
|
|
156
|
+
children: [/* @__PURE__ */ o("p", {
|
|
157
|
+
className: "text-sm font-medium",
|
|
158
|
+
children: e.title
|
|
159
|
+
}), /* @__PURE__ */ s("div", {
|
|
160
|
+
className: "flex items-center gap-2 text-xs text-muted-foreground",
|
|
161
|
+
children: [
|
|
162
|
+
/* @__PURE__ */ o("span", { children: e.project }),
|
|
163
|
+
/* @__PURE__ */ o("span", { children: "·" }),
|
|
164
|
+
/* @__PURE__ */ o("span", { children: new Date(e.date).toLocaleDateString() }),
|
|
165
|
+
e.additions > 0 && /* @__PURE__ */ s(a, { children: [
|
|
166
|
+
/* @__PURE__ */ o("span", { children: "·" }),
|
|
167
|
+
/* @__PURE__ */ s("span", {
|
|
168
|
+
className: "text-green-600",
|
|
169
|
+
children: ["+", e.additions]
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ s("span", {
|
|
172
|
+
className: "text-red-600",
|
|
173
|
+
children: ["-", e.deletions]
|
|
174
|
+
})
|
|
175
|
+
] })
|
|
176
|
+
]
|
|
177
|
+
})]
|
|
178
|
+
})]
|
|
179
|
+
}), /* @__PURE__ */ o("span", {
|
|
180
|
+
className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${_(e.status)}`,
|
|
181
|
+
children: e.status
|
|
182
|
+
})]
|
|
183
|
+
}, e.id))
|
|
184
|
+
})] })
|
|
185
|
+
]
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
//#endregion
|
|
189
|
+
export { p as OpenSourceContributionsPagePage };
|
|
190
|
+
|
|
191
|
+
//# sourceMappingURL=OpenSourceContributionsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenSourceContributionsPagePage.js","names":[],"sources":["../../../src/technospam/pages/OpenSourceContributionsPagePage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge } from '@burdenoff/fe-libs/ui';\nimport { GitBranch, GitPullRequest, AlertCircle, CheckCircle } from 'lucide-react';\nimport { useTechnoSpamStore } from '../store/technospamStore';\n\nconst mockContributions = [\n {\n id: 1,\n project: 'algo-visualizer',\n type: 'PR',\n title: 'Add Dijkstra animation',\n status: 'merged',\n date: '2026-02-08',\n additions: 245,\n deletions: 12,\n },\n {\n id: 2,\n project: 'code-playground',\n type: 'Issue',\n title: 'Fix WebSocket reconnection',\n status: 'closed',\n date: '2026-02-05',\n additions: 0,\n deletions: 0,\n },\n {\n id: 3,\n project: 'ml-toolkit',\n type: 'PR',\n title: 'Add random forest classifier',\n status: 'open',\n date: '2026-02-03',\n additions: 380,\n deletions: 45,\n },\n {\n id: 4,\n project: 'algo-visualizer',\n type: 'PR',\n title: 'Implement binary search tree viz',\n status: 'merged',\n date: '2026-01-28',\n additions: 189,\n deletions: 8,\n },\n {\n id: 5,\n project: 'devops-starter',\n type: 'PR',\n title: 'Add Helm chart templates',\n status: 'merged',\n date: '2026-01-22',\n additions: 156,\n deletions: 23,\n },\n {\n id: 6,\n project: 'code-playground',\n type: 'Issue',\n title: 'Support Rust language',\n status: 'open',\n date: '2026-01-18',\n additions: 0,\n deletions: 0,\n },\n {\n id: 7,\n project: 'algo-visualizer',\n type: 'PR',\n title: 'Fix merge sort animation timing',\n status: 'merged',\n date: '2026-01-12',\n additions: 34,\n deletions: 18,\n },\n];\n\nexport function OpenSourceContributionsPagePage() {\n const { userStats } = useTechnoSpamStore();\n\n const mergedPRs = mockContributions.filter(\n (c) => c.type === 'PR' && c.status === 'merged'\n ).length;\n const openPRs = mockContributions.filter((c) => c.type === 'PR' && c.status === 'open').length;\n const totalAdditions = mockContributions.reduce((sum, c) => sum + c.additions, 0);\n\n const statusClass = (status: string) => {\n switch (status) {\n case 'merged':\n return 'bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400';\n case 'open':\n return 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400';\n case 'closed':\n return 'bg-gray-100 text-gray-800 dark:bg-gray-900/30 dark:text-gray-400';\n default:\n return '';\n }\n };\n\n const typeIcon = (type: string) => {\n return type === 'PR' ? (\n <GitPullRequest className=\"h-4 w-4\" />\n ) : (\n <AlertCircle className=\"h-4 w-4\" />\n );\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold text-foreground\">My Contributions</h1>\n <p className=\"text-sm text-muted-foreground\">\n Track your open source contributions and impact\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total</CardTitle>\n <GitBranch className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{userStats.contributionsMade}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Merged PRs</CardTitle>\n <CheckCircle className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{mergedPRs}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Open PRs</CardTitle>\n <GitPullRequest className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{openPRs}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Lines Added</CardTitle>\n <GitBranch className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold text-green-600\">+{totalAdditions}</div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Contribution History</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {mockContributions.map((contrib) => (\n <div\n key={contrib.id}\n className=\"flex items-center justify-between rounded-lg border border-border p-4\"\n >\n <div className=\"flex items-start gap-3\">\n <div className=\"mt-0.5 text-muted-foreground\">{typeIcon(contrib.type)}</div>\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">{contrib.title}</p>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <span>{contrib.project}</span>\n <span>·</span>\n <span>{new Date(contrib.date).toLocaleDateString()}</span>\n {contrib.additions > 0 && (\n <>\n <span>·</span>\n <span className=\"text-green-600\">+{contrib.additions}</span>\n <span className=\"text-red-600\">-{contrib.deletions}</span>\n </>\n )}\n </div>\n </div>\n </div>\n <span\n className={`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${statusClass(contrib.status)}`}\n >\n {contrib.status}\n </span>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|