@burdenoff/microfe-buildmyiq 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/buildmyiq/BuildMyIQRoot.d.ts +5 -0
- package/dist/buildmyiq/BuildMyIQRoot.d.ts.map +1 -0
- package/dist/buildmyiq/BuildMyIQRoot.js +329 -0
- package/dist/buildmyiq/BuildMyIQRoot.js.map +1 -0
- package/dist/buildmyiq/BuildMyIQRoutes.d.ts +2 -0
- package/dist/buildmyiq/BuildMyIQRoutes.d.ts.map +1 -0
- package/dist/buildmyiq/BuildMyIQRoutes.js +171 -0
- package/dist/buildmyiq/BuildMyIQRoutes.js.map +1 -0
- package/dist/buildmyiq/index.d.ts +5 -0
- package/dist/buildmyiq/index.d.ts.map +1 -0
- package/dist/buildmyiq/index.js +3 -0
- package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.js +271 -0
- package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.js +212 -0
- package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AdminAdminUsersPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AdminAdminUsersPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AdminAdminUsersPagePage.js +235 -0
- package/dist/buildmyiq/pages/AdminAdminUsersPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AdminIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/AdminIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AdminIndexPage.js +274 -0
- package/dist/buildmyiq/pages/AdminIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/AiAichatPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AiAichatPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AiAichatPagePage.js +209 -0
- package/dist/buildmyiq/pages/AiAichatPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.js +318 -0
- package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AiAitutoringPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AiAitutoringPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AiAitutoringPagePage.js +290 -0
- package/dist/buildmyiq/pages/AiAitutoringPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AiIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/AiIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AiIndexPage.js +191 -0
- package/dist/buildmyiq/pages/AiIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.js +290 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.js +215 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.js +224 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.js +174 -0
- package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.js.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/AssessmentsIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/AssessmentsIndexPage.js +174 -0
- package/dist/buildmyiq/pages/AssessmentsIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/CalendarPage.d.ts +2 -0
- package/dist/buildmyiq/pages/CalendarPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CalendarPage.js +242 -0
- package/dist/buildmyiq/pages/CalendarPage.js.map +1 -0
- package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.js +180 -0
- package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CommunicationForumsPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CommunicationForumsPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CommunicationForumsPagePage.js +154 -0
- package/dist/buildmyiq/pages/CommunicationForumsPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CommunicationIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/CommunicationIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CommunicationIndexPage.js +191 -0
- package/dist/buildmyiq/pages/CommunicationIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/CommunicationMessagesPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CommunicationMessagesPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CommunicationMessagesPagePage.js +261 -0
- package/dist/buildmyiq/pages/CommunicationMessagesPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseContentPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesCourseContentPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseContentPagePage.js +164 -0
- package/dist/buildmyiq/pages/CoursesCourseContentPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.js +239 -0
- package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.js +368 -0
- package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.js +219 -0
- package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseListPagePage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesCourseListPagePage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesCourseListPagePage.js +153 -0
- package/dist/buildmyiq/pages/CoursesCourseListPagePage.js.map +1 -0
- package/dist/buildmyiq/pages/CoursesIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/CoursesIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/CoursesIndexPage.js +138 -0
- package/dist/buildmyiq/pages/CoursesIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/DashboardPage.d.ts +2 -0
- package/dist/buildmyiq/pages/DashboardPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/DashboardPage.js +264 -0
- package/dist/buildmyiq/pages/DashboardPage.js.map +1 -0
- package/dist/buildmyiq/pages/MessagesPage.d.ts +2 -0
- package/dist/buildmyiq/pages/MessagesPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/MessagesPage.js +261 -0
- package/dist/buildmyiq/pages/MessagesPage.js.map +1 -0
- package/dist/buildmyiq/pages/ProfileProgressPage.d.ts +2 -0
- package/dist/buildmyiq/pages/ProfileProgressPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/ProfileProgressPage.js +194 -0
- package/dist/buildmyiq/pages/ProfileProgressPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingAnalyticsPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingAnalyticsPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingAnalyticsPage.js +243 -0
- package/dist/buildmyiq/pages/TeachingAnalyticsPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingContentPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingContentPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingContentPage.js +165 -0
- package/dist/buildmyiq/pages/TeachingContentPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingCoursesPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingCoursesPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingCoursesPage.js +151 -0
- package/dist/buildmyiq/pages/TeachingCoursesPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingGradingPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingGradingPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingGradingPage.js +204 -0
- package/dist/buildmyiq/pages/TeachingGradingPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingIndexPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingIndexPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingIndexPage.js +220 -0
- package/dist/buildmyiq/pages/TeachingIndexPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingLessonPlansPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingLessonPlansPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingLessonPlansPage.js +157 -0
- package/dist/buildmyiq/pages/TeachingLessonPlansPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingQuestionsPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingQuestionsPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingQuestionsPage.js +184 -0
- package/dist/buildmyiq/pages/TeachingQuestionsPage.js.map +1 -0
- package/dist/buildmyiq/pages/TeachingStudentsPage.d.ts +2 -0
- package/dist/buildmyiq/pages/TeachingStudentsPage.d.ts.map +1 -0
- package/dist/buildmyiq/pages/TeachingStudentsPage.js +204 -0
- package/dist/buildmyiq/pages/TeachingStudentsPage.js.map +1 -0
- package/dist/buildmyiq/providers/BuildMyIQProvider.d.ts +6 -0
- package/dist/buildmyiq/providers/BuildMyIQProvider.d.ts.map +1 -0
- package/dist/buildmyiq/providers/BuildMyIQProvider.js +27 -0
- package/dist/buildmyiq/providers/BuildMyIQProvider.js.map +1 -0
- package/dist/buildmyiq/store/buildmyiqStore.d.ts +189 -0
- package/dist/buildmyiq/store/buildmyiqStore.d.ts.map +1 -0
- package/dist/buildmyiq/store/buildmyiqStore.js +1160 -0
- package/dist/buildmyiq/store/buildmyiqStore.js.map +1 -0
- package/dist/buildmyiq/types/index.d.ts +51 -0
- package/dist/buildmyiq/types/index.d.ts.map +1 -0
- package/dist/buildmyiq/utils/cn.d.ts +4 -0
- package/dist/buildmyiq/utils/cn.d.ts.map +1 -0
- package/dist/buildmyiq/utils/navigation.d.ts +2 -0
- package/dist/buildmyiq/utils/navigation.d.ts.map +1 -0
- package/dist/buildmyiq/utils/navigation.js +8 -0
- package/dist/buildmyiq/utils/navigation.js.map +1 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +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/package.json +107 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
|
|
2
|
+
import { Clock as t, DollarSign as n, GraduationCap as r, Users as i } from "lucide-react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/buildmyiq/pages/AdminAdminAnalyticsPagePage.tsx
|
|
6
|
+
function f() {
|
|
7
|
+
let { courses: f, students: p, grades: m, assessments: h } = e(), g = f.reduce((e, t) => e + t.students, 0), _ = m.filter((e) => e.status === "graded").reduce((e, t, n, r) => e + t.score / t.maxScore * 100 / r.length, 0), v = f.reduce((e, t) => e + t.price * t.students, 0), y = [
|
|
8
|
+
{
|
|
9
|
+
grade: "A",
|
|
10
|
+
count: m.filter((e) => e.grade.startsWith("A")).length,
|
|
11
|
+
color: "bg-green-500"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
grade: "B",
|
|
15
|
+
count: m.filter((e) => e.grade.startsWith("B")).length,
|
|
16
|
+
color: "bg-blue-500"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
grade: "C",
|
|
20
|
+
count: m.filter((e) => e.grade.startsWith("C")).length,
|
|
21
|
+
color: "bg-yellow-500"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
grade: "D",
|
|
25
|
+
count: m.filter((e) => e.grade.startsWith("D")).length,
|
|
26
|
+
color: "bg-orange-500"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
grade: "F",
|
|
30
|
+
count: m.filter((e) => e.grade.startsWith("F")).length,
|
|
31
|
+
color: "bg-red-500"
|
|
32
|
+
}
|
|
33
|
+
], b = Math.max(...y.map((e) => e.count), 1);
|
|
34
|
+
return /* @__PURE__ */ o("div", {
|
|
35
|
+
className: "space-y-6 p-6",
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
38
|
+
className: "text-2xl font-semibold",
|
|
39
|
+
children: "Platform Analytics"
|
|
40
|
+
}), /* @__PURE__ */ a("p", {
|
|
41
|
+
className: "text-sm text-muted-foreground",
|
|
42
|
+
children: "Comprehensive insights into platform performance and usage"
|
|
43
|
+
})] }),
|
|
44
|
+
/* @__PURE__ */ a("div", {
|
|
45
|
+
className: "grid grid-cols-1 md:grid-cols-4 gap-4",
|
|
46
|
+
children: [
|
|
47
|
+
{
|
|
48
|
+
label: "Daily Active Users",
|
|
49
|
+
value: "487",
|
|
50
|
+
icon: i,
|
|
51
|
+
color: "text-blue-600",
|
|
52
|
+
trend: "+12.3%"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: "Course Completions",
|
|
56
|
+
value: "156",
|
|
57
|
+
icon: r,
|
|
58
|
+
color: "text-green-600",
|
|
59
|
+
trend: "+8.7%"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Avg. Session Time",
|
|
63
|
+
value: "24 min",
|
|
64
|
+
icon: t,
|
|
65
|
+
color: "text-purple-600",
|
|
66
|
+
trend: "+3.1%"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
label: "Monthly Revenue",
|
|
70
|
+
value: `$${(v / 12).toFixed(0)}`,
|
|
71
|
+
icon: n,
|
|
72
|
+
color: "text-orange-600",
|
|
73
|
+
trend: "+15.2%"
|
|
74
|
+
}
|
|
75
|
+
].map((e) => /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a(l, {
|
|
76
|
+
className: "pt-6",
|
|
77
|
+
children: /* @__PURE__ */ o("div", {
|
|
78
|
+
className: "flex items-center gap-3",
|
|
79
|
+
children: [/* @__PURE__ */ a(e.icon, { className: `h-5 w-5 ${e.color}` }), /* @__PURE__ */ o("div", { children: [
|
|
80
|
+
/* @__PURE__ */ a("p", {
|
|
81
|
+
className: "text-sm text-muted-foreground",
|
|
82
|
+
children: e.label
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ a("p", {
|
|
85
|
+
className: "text-2xl font-bold",
|
|
86
|
+
children: e.value
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ a("p", {
|
|
89
|
+
className: "text-xs text-green-600",
|
|
90
|
+
children: e.trend
|
|
91
|
+
})
|
|
92
|
+
] })]
|
|
93
|
+
})
|
|
94
|
+
}) }, e.label))
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ o("div", {
|
|
97
|
+
className: "grid grid-cols-1 lg:grid-cols-2 gap-4",
|
|
98
|
+
children: [/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, {
|
|
99
|
+
className: "text-lg",
|
|
100
|
+
children: "Enrollment by Course"
|
|
101
|
+
}) }), /* @__PURE__ */ a(l, {
|
|
102
|
+
className: "space-y-3",
|
|
103
|
+
children: f.map((e) => {
|
|
104
|
+
let t = Math.round(e.students / Math.max(g, 1) * 100);
|
|
105
|
+
return /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ o("div", {
|
|
106
|
+
className: "flex justify-between text-sm mb-1",
|
|
107
|
+
children: [/* @__PURE__ */ a("span", {
|
|
108
|
+
className: "truncate max-w-[60%]",
|
|
109
|
+
children: e.title
|
|
110
|
+
}), /* @__PURE__ */ o("span", {
|
|
111
|
+
className: "font-medium",
|
|
112
|
+
children: [e.students, " students"]
|
|
113
|
+
})]
|
|
114
|
+
}), /* @__PURE__ */ a("div", {
|
|
115
|
+
className: "h-2 rounded-full bg-muted",
|
|
116
|
+
children: /* @__PURE__ */ a("div", {
|
|
117
|
+
className: "h-2 rounded-full bg-primary",
|
|
118
|
+
style: { width: `${t}%` }
|
|
119
|
+
})
|
|
120
|
+
})] }, e.id);
|
|
121
|
+
})
|
|
122
|
+
})] }), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, {
|
|
123
|
+
className: "text-lg",
|
|
124
|
+
children: "Grade Distribution"
|
|
125
|
+
}) }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a("div", {
|
|
126
|
+
className: "flex items-end gap-4 h-40",
|
|
127
|
+
children: y.map((e) => /* @__PURE__ */ o("div", {
|
|
128
|
+
className: "flex-1 flex flex-col items-center gap-1",
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ a("span", {
|
|
131
|
+
className: "text-xs font-bold",
|
|
132
|
+
children: e.count
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ a("div", {
|
|
135
|
+
className: `w-full rounded-t ${e.color}`,
|
|
136
|
+
style: {
|
|
137
|
+
height: `${e.count / b * 100}%`,
|
|
138
|
+
minHeight: e.count > 0 ? "8px" : "0"
|
|
139
|
+
}
|
|
140
|
+
}),
|
|
141
|
+
/* @__PURE__ */ a("span", {
|
|
142
|
+
className: "text-sm font-medium",
|
|
143
|
+
children: e.grade
|
|
144
|
+
})
|
|
145
|
+
]
|
|
146
|
+
}, e.grade))
|
|
147
|
+
}) })] })]
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, {
|
|
150
|
+
className: "text-lg",
|
|
151
|
+
children: "Top Performing Courses"
|
|
152
|
+
}) }), /* @__PURE__ */ a(l, {
|
|
153
|
+
className: "p-0",
|
|
154
|
+
children: /* @__PURE__ */ a("div", {
|
|
155
|
+
className: "overflow-x-auto",
|
|
156
|
+
children: /* @__PURE__ */ o("table", {
|
|
157
|
+
className: "w-full",
|
|
158
|
+
children: [/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ o("tr", {
|
|
159
|
+
className: "border-b bg-muted/50",
|
|
160
|
+
children: [
|
|
161
|
+
/* @__PURE__ */ a("th", {
|
|
162
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
163
|
+
children: "Course"
|
|
164
|
+
}),
|
|
165
|
+
/* @__PURE__ */ a("th", {
|
|
166
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
167
|
+
children: "Instructor"
|
|
168
|
+
}),
|
|
169
|
+
/* @__PURE__ */ a("th", {
|
|
170
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
171
|
+
children: "Students"
|
|
172
|
+
}),
|
|
173
|
+
/* @__PURE__ */ a("th", {
|
|
174
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
175
|
+
children: "Avg. Score"
|
|
176
|
+
}),
|
|
177
|
+
/* @__PURE__ */ a("th", {
|
|
178
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
179
|
+
children: "Rating"
|
|
180
|
+
}),
|
|
181
|
+
/* @__PURE__ */ a("th", {
|
|
182
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
183
|
+
children: "Revenue"
|
|
184
|
+
})
|
|
185
|
+
]
|
|
186
|
+
}) }), /* @__PURE__ */ a("tbody", { children: f.sort((e, t) => t.rating - e.rating).map((e) => /* @__PURE__ */ o("tr", {
|
|
187
|
+
className: "border-b hover:bg-muted/30",
|
|
188
|
+
children: [
|
|
189
|
+
/* @__PURE__ */ a("td", {
|
|
190
|
+
className: "p-3 text-sm font-medium",
|
|
191
|
+
children: e.title
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ a("td", {
|
|
194
|
+
className: "p-3 text-sm text-muted-foreground",
|
|
195
|
+
children: e.instructor
|
|
196
|
+
}),
|
|
197
|
+
/* @__PURE__ */ a("td", {
|
|
198
|
+
className: "p-3 text-sm",
|
|
199
|
+
children: e.students
|
|
200
|
+
}),
|
|
201
|
+
/* @__PURE__ */ o("td", {
|
|
202
|
+
className: "p-3 text-sm",
|
|
203
|
+
children: [Math.round(_), "%"]
|
|
204
|
+
}),
|
|
205
|
+
/* @__PURE__ */ a("td", {
|
|
206
|
+
className: "p-3",
|
|
207
|
+
children: /* @__PURE__ */ o(s, {
|
|
208
|
+
variant: "secondary",
|
|
209
|
+
children: [e.rating, "/5"]
|
|
210
|
+
})
|
|
211
|
+
}),
|
|
212
|
+
/* @__PURE__ */ o("td", {
|
|
213
|
+
className: "p-3 text-sm font-medium",
|
|
214
|
+
children: ["$", (e.price * e.students).toLocaleString()]
|
|
215
|
+
})
|
|
216
|
+
]
|
|
217
|
+
}, e.id)) })]
|
|
218
|
+
})
|
|
219
|
+
})
|
|
220
|
+
})] }),
|
|
221
|
+
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, {
|
|
222
|
+
className: "text-lg",
|
|
223
|
+
children: "Student Engagement Metrics"
|
|
224
|
+
}) }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a("div", {
|
|
225
|
+
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
226
|
+
children: [
|
|
227
|
+
{
|
|
228
|
+
label: "Forum Posts",
|
|
229
|
+
value: "1,247",
|
|
230
|
+
change: "+15%"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
label: "Submissions",
|
|
234
|
+
value: "3,892",
|
|
235
|
+
change: "+22%"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
label: "Resource Downloads",
|
|
239
|
+
value: "8,456",
|
|
240
|
+
change: "+18%"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
label: "AI Chat Sessions",
|
|
244
|
+
value: "2,156",
|
|
245
|
+
change: "+45%"
|
|
246
|
+
}
|
|
247
|
+
].map((e) => /* @__PURE__ */ o("div", {
|
|
248
|
+
className: "rounded-lg border p-4 text-center",
|
|
249
|
+
children: [
|
|
250
|
+
/* @__PURE__ */ a("p", {
|
|
251
|
+
className: "text-2xl font-bold",
|
|
252
|
+
children: e.value
|
|
253
|
+
}),
|
|
254
|
+
/* @__PURE__ */ a("p", {
|
|
255
|
+
className: "text-sm text-muted-foreground",
|
|
256
|
+
children: e.label
|
|
257
|
+
}),
|
|
258
|
+
/* @__PURE__ */ o("p", {
|
|
259
|
+
className: "text-xs text-green-600 mt-1",
|
|
260
|
+
children: [e.change, " this month"]
|
|
261
|
+
})
|
|
262
|
+
]
|
|
263
|
+
}, e.label))
|
|
264
|
+
}) })] })
|
|
265
|
+
]
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
//#endregion
|
|
269
|
+
export { f as AdminAdminAnalyticsPagePage };
|
|
270
|
+
|
|
271
|
+
//# sourceMappingURL=AdminAdminAnalyticsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAdminAnalyticsPagePage.js","names":[],"sources":["../../../src/buildmyiq/pages/AdminAdminAnalyticsPagePage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Badge } from '@burdenoff/fe-libs/ui';\nimport {\n BarChart3,\n Users,\n BookOpen,\n TrendingUp,\n Clock,\n DollarSign,\n Activity,\n GraduationCap,\n} from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nexport function AdminAdminAnalyticsPagePage() {\n const { courses, students, grades, assessments } = useBuildMyIQStore();\n\n const totalEnrollments = courses.reduce((sum, c) => sum + c.students, 0);\n const avgScore = grades\n .filter((g) => g.status === 'graded')\n .reduce((sum, g, _, arr) => sum + ((g.score / g.maxScore) * 100) / arr.length, 0);\n const totalRevenue = courses.reduce((sum, c) => sum + c.price * c.students, 0);\n\n const gradeDistribution = [\n {\n grade: 'A',\n count: grades.filter((g) => g.grade.startsWith('A')).length,\n color: 'bg-green-500',\n },\n {\n grade: 'B',\n count: grades.filter((g) => g.grade.startsWith('B')).length,\n color: 'bg-blue-500',\n },\n {\n grade: 'C',\n count: grades.filter((g) => g.grade.startsWith('C')).length,\n color: 'bg-yellow-500',\n },\n {\n grade: 'D',\n count: grades.filter((g) => g.grade.startsWith('D')).length,\n color: 'bg-orange-500',\n },\n {\n grade: 'F',\n count: grades.filter((g) => g.grade.startsWith('F')).length,\n color: 'bg-red-500',\n },\n ];\n const maxGradeCount = Math.max(...gradeDistribution.map((g) => g.count), 1);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Platform Analytics</h1>\n <p className=\"text-sm text-muted-foreground\">\n Comprehensive insights into platform performance and usage\n </p>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n {[\n {\n label: 'Daily Active Users',\n value: '487',\n icon: Users,\n color: 'text-blue-600',\n trend: '+12.3%',\n },\n {\n label: 'Course Completions',\n value: '156',\n icon: GraduationCap,\n color: 'text-green-600',\n trend: '+8.7%',\n },\n {\n label: 'Avg. Session Time',\n value: '24 min',\n icon: Clock,\n color: 'text-purple-600',\n trend: '+3.1%',\n },\n {\n label: 'Monthly Revenue',\n value: `$${(totalRevenue / 12).toFixed(0)}`,\n icon: DollarSign,\n color: 'text-orange-600',\n trend: '+15.2%',\n },\n ].map((kpi) => (\n <Card key={kpi.label}>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center gap-3\">\n <kpi.icon className={`h-5 w-5 ${kpi.color}`} />\n <div>\n <p className=\"text-sm text-muted-foreground\">{kpi.label}</p>\n <p className=\"text-2xl font-bold\">{kpi.value}</p>\n <p className=\"text-xs text-green-600\">{kpi.trend}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-lg\">Enrollment by Course</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {courses.map((course) => {\n const pct = Math.round((course.students / Math.max(totalEnrollments, 1)) * 100);\n return (\n <div key={course.id}>\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"truncate max-w-[60%]\">{course.title}</span>\n <span className=\"font-medium\">{course.students} students</span>\n </div>\n <div className=\"h-2 rounded-full bg-muted\">\n <div className=\"h-2 rounded-full bg-primary\" style={{ width: `${pct}%` }} />\n </div>\n </div>\n );\n })}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-lg\">Grade Distribution</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"flex items-end gap-4 h-40\">\n {gradeDistribution.map((g) => (\n <div key={g.grade} className=\"flex-1 flex flex-col items-center gap-1\">\n <span className=\"text-xs font-bold\">{g.count}</span>\n <div\n className={`w-full rounded-t ${g.color}`}\n style={{\n height: `${(g.count / maxGradeCount) * 100}%`,\n minHeight: g.count > 0 ? '8px' : '0',\n }}\n />\n <span className=\"text-sm font-medium\">{g.grade}</span>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-lg\">Top Performing Courses</CardTitle>\n </CardHeader>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Course\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Instructor\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Students\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Avg. Score\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Rating\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Revenue\n </th>\n </tr>\n </thead>\n <tbody>\n {courses\n .sort((a, b) => b.rating - a.rating)\n .map((c) => (\n <tr key={c.id} className=\"border-b hover:bg-muted/30\">\n <td className=\"p-3 text-sm font-medium\">{c.title}</td>\n <td className=\"p-3 text-sm text-muted-foreground\">{c.instructor}</td>\n <td className=\"p-3 text-sm\">{c.students}</td>\n <td className=\"p-3 text-sm\">{Math.round(avgScore)}%</td>\n <td className=\"p-3\">\n <Badge variant=\"secondary\">{c.rating}/5</Badge>\n </td>\n <td className=\"p-3 text-sm font-medium\">\n ${(c.price * c.students).toLocaleString()}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-lg\">Student Engagement Metrics</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-4\">\n {[\n { label: 'Forum Posts', value: '1,247', change: '+15%' },\n { label: 'Submissions', value: '3,892', change: '+22%' },\n { label: 'Resource Downloads', value: '8,456', change: '+18%' },\n { label: 'AI Chat Sessions', value: '2,156', change: '+45%' },\n ].map((m) => (\n <div key={m.label} className=\"rounded-lg border p-4 text-center\">\n <p className=\"text-2xl font-bold\">{m.value}</p>\n <p className=\"text-sm text-muted-foreground\">{m.label}</p>\n <p className=\"text-xs text-green-600 mt-1\">{m.change} this month</p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAdminCoursesPagePage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/AdminAdminCoursesPagePage.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,yBAAyB,4CAiKxC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { BookOpen as n, MoreHorizontal as r, Plus as i, Search as a, Star as o, Users as s } from "lucide-react";
|
|
4
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as u, Button as d, Card as f, CardContent as p, Input as m } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/buildmyiq/pages/AdminAdminCoursesPagePage.tsx
|
|
7
|
+
var h = {
|
|
8
|
+
published: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400",
|
|
9
|
+
draft: "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400",
|
|
10
|
+
archived: "bg-gray-100 text-gray-700 dark:bg-gray-900/30 dark:text-gray-400"
|
|
11
|
+
};
|
|
12
|
+
function g() {
|
|
13
|
+
let { courses: g } = e(), [_, v] = t(""), [y, b] = t("all"), x = g.filter((e) => {
|
|
14
|
+
let t = e.title.toLowerCase().includes(_.toLowerCase()) || e.instructor.toLowerCase().includes(_.toLowerCase()), n = y === "all" || e.status === y;
|
|
15
|
+
return t && n;
|
|
16
|
+
}), S = g.filter((e) => e.status === "published").length, C = g.filter((e) => e.status === "draft").length, w = g.filter((e) => e.status === "archived").length;
|
|
17
|
+
return /* @__PURE__ */ l("div", {
|
|
18
|
+
className: "space-y-6 p-6",
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ l("div", {
|
|
21
|
+
className: "flex items-center justify-between",
|
|
22
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
|
|
23
|
+
className: "text-2xl font-semibold",
|
|
24
|
+
children: "Course Management"
|
|
25
|
+
}), /* @__PURE__ */ c("p", {
|
|
26
|
+
className: "text-sm text-muted-foreground",
|
|
27
|
+
children: "Administer and manage all platform courses"
|
|
28
|
+
})] }), /* @__PURE__ */ l(d, {
|
|
29
|
+
size: "sm",
|
|
30
|
+
children: [/* @__PURE__ */ c(i, { className: "mr-2 h-4 w-4" }), "Add Course"]
|
|
31
|
+
})]
|
|
32
|
+
}),
|
|
33
|
+
/* @__PURE__ */ l("div", {
|
|
34
|
+
className: "grid grid-cols-1 md:grid-cols-4 gap-4",
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
|
|
37
|
+
className: "pt-6",
|
|
38
|
+
children: [/* @__PURE__ */ c("p", {
|
|
39
|
+
className: "text-sm text-muted-foreground",
|
|
40
|
+
children: "Total Courses"
|
|
41
|
+
}), /* @__PURE__ */ c("p", {
|
|
42
|
+
className: "text-2xl font-bold",
|
|
43
|
+
children: g.length
|
|
44
|
+
})]
|
|
45
|
+
}) }),
|
|
46
|
+
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
|
|
47
|
+
className: "pt-6",
|
|
48
|
+
children: [/* @__PURE__ */ c("p", {
|
|
49
|
+
className: "text-sm text-muted-foreground",
|
|
50
|
+
children: "Published"
|
|
51
|
+
}), /* @__PURE__ */ c("p", {
|
|
52
|
+
className: "text-2xl font-bold text-green-600",
|
|
53
|
+
children: S
|
|
54
|
+
})]
|
|
55
|
+
}) }),
|
|
56
|
+
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
|
|
57
|
+
className: "pt-6",
|
|
58
|
+
children: [/* @__PURE__ */ c("p", {
|
|
59
|
+
className: "text-sm text-muted-foreground",
|
|
60
|
+
children: "Draft"
|
|
61
|
+
}), /* @__PURE__ */ c("p", {
|
|
62
|
+
className: "text-2xl font-bold text-yellow-600",
|
|
63
|
+
children: C
|
|
64
|
+
})]
|
|
65
|
+
}) }),
|
|
66
|
+
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
|
|
67
|
+
className: "pt-6",
|
|
68
|
+
children: [/* @__PURE__ */ c("p", {
|
|
69
|
+
className: "text-sm text-muted-foreground",
|
|
70
|
+
children: "Archived"
|
|
71
|
+
}), /* @__PURE__ */ c("p", {
|
|
72
|
+
className: "text-2xl font-bold text-gray-600",
|
|
73
|
+
children: w
|
|
74
|
+
})]
|
|
75
|
+
}) })
|
|
76
|
+
]
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ l("div", {
|
|
79
|
+
className: "flex flex-col sm:flex-row gap-3",
|
|
80
|
+
children: [/* @__PURE__ */ l("div", {
|
|
81
|
+
className: "relative flex-1",
|
|
82
|
+
children: [/* @__PURE__ */ c(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ c(m, {
|
|
83
|
+
placeholder: "Search courses or instructors...",
|
|
84
|
+
value: _,
|
|
85
|
+
onChange: (e) => v(e.target.value),
|
|
86
|
+
className: "pl-10"
|
|
87
|
+
})]
|
|
88
|
+
}), /* @__PURE__ */ c("div", {
|
|
89
|
+
className: "flex gap-1",
|
|
90
|
+
children: [
|
|
91
|
+
"all",
|
|
92
|
+
"published",
|
|
93
|
+
"draft",
|
|
94
|
+
"archived"
|
|
95
|
+
].map((e) => /* @__PURE__ */ c(d, {
|
|
96
|
+
variant: y === e ? "default" : "outline",
|
|
97
|
+
size: "sm",
|
|
98
|
+
className: "capitalize",
|
|
99
|
+
onClick: () => b(e),
|
|
100
|
+
children: e
|
|
101
|
+
}, e))
|
|
102
|
+
})]
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ c(f, { children: /* @__PURE__ */ c(p, {
|
|
105
|
+
className: "p-0",
|
|
106
|
+
children: /* @__PURE__ */ c("div", {
|
|
107
|
+
className: "overflow-x-auto",
|
|
108
|
+
children: /* @__PURE__ */ l("table", {
|
|
109
|
+
className: "w-full",
|
|
110
|
+
children: [/* @__PURE__ */ c("thead", { children: /* @__PURE__ */ l("tr", {
|
|
111
|
+
className: "border-b bg-muted/50",
|
|
112
|
+
children: [
|
|
113
|
+
/* @__PURE__ */ c("th", {
|
|
114
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
115
|
+
children: "Course"
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ c("th", {
|
|
118
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
119
|
+
children: "Instructor"
|
|
120
|
+
}),
|
|
121
|
+
/* @__PURE__ */ c("th", {
|
|
122
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
123
|
+
children: "Category"
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ c("th", {
|
|
126
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
127
|
+
children: "Students"
|
|
128
|
+
}),
|
|
129
|
+
/* @__PURE__ */ c("th", {
|
|
130
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
131
|
+
children: "Rating"
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ c("th", {
|
|
134
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
135
|
+
children: "Status"
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ c("th", {
|
|
138
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
139
|
+
children: "Updated"
|
|
140
|
+
}),
|
|
141
|
+
/* @__PURE__ */ c("th", { className: "text-left text-xs font-medium text-muted-foreground p-3" })
|
|
142
|
+
]
|
|
143
|
+
}) }), /* @__PURE__ */ c("tbody", { children: x.map((e) => /* @__PURE__ */ l("tr", {
|
|
144
|
+
className: "border-b hover:bg-muted/30 transition-colors",
|
|
145
|
+
children: [
|
|
146
|
+
/* @__PURE__ */ c("td", {
|
|
147
|
+
className: "p-3",
|
|
148
|
+
children: /* @__PURE__ */ l("div", {
|
|
149
|
+
className: "flex items-center gap-2",
|
|
150
|
+
children: [/* @__PURE__ */ c(n, { className: "h-4 w-4 text-muted-foreground shrink-0" }), /* @__PURE__ */ c("span", {
|
|
151
|
+
className: "text-sm font-medium",
|
|
152
|
+
children: e.title
|
|
153
|
+
})]
|
|
154
|
+
})
|
|
155
|
+
}),
|
|
156
|
+
/* @__PURE__ */ c("td", {
|
|
157
|
+
className: "p-3 text-sm text-muted-foreground",
|
|
158
|
+
children: e.instructor
|
|
159
|
+
}),
|
|
160
|
+
/* @__PURE__ */ c("td", {
|
|
161
|
+
className: "p-3",
|
|
162
|
+
children: /* @__PURE__ */ c(u, {
|
|
163
|
+
variant: "outline",
|
|
164
|
+
className: "text-xs",
|
|
165
|
+
children: e.category
|
|
166
|
+
})
|
|
167
|
+
}),
|
|
168
|
+
/* @__PURE__ */ c("td", {
|
|
169
|
+
className: "p-3",
|
|
170
|
+
children: /* @__PURE__ */ l("div", {
|
|
171
|
+
className: "flex items-center gap-1 text-sm",
|
|
172
|
+
children: [/* @__PURE__ */ c(s, { className: "h-3.5 w-3.5 text-muted-foreground" }), e.students]
|
|
173
|
+
})
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ c("td", {
|
|
176
|
+
className: "p-3",
|
|
177
|
+
children: /* @__PURE__ */ l("div", {
|
|
178
|
+
className: "flex items-center gap-1 text-sm",
|
|
179
|
+
children: [/* @__PURE__ */ c(o, { className: "h-3.5 w-3.5 text-yellow-500 fill-yellow-500" }), e.rating]
|
|
180
|
+
})
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ c("td", {
|
|
183
|
+
className: "p-3",
|
|
184
|
+
children: /* @__PURE__ */ c(u, {
|
|
185
|
+
className: `text-xs ${h[e.status]}`,
|
|
186
|
+
children: e.status
|
|
187
|
+
})
|
|
188
|
+
}),
|
|
189
|
+
/* @__PURE__ */ c("td", {
|
|
190
|
+
className: "p-3 text-sm text-muted-foreground",
|
|
191
|
+
children: e.lastUpdated
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ c("td", {
|
|
194
|
+
className: "p-3",
|
|
195
|
+
children: /* @__PURE__ */ c(d, {
|
|
196
|
+
variant: "ghost",
|
|
197
|
+
size: "sm",
|
|
198
|
+
children: /* @__PURE__ */ c(r, { className: "h-4 w-4" })
|
|
199
|
+
})
|
|
200
|
+
})
|
|
201
|
+
]
|
|
202
|
+
}, e.id)) })]
|
|
203
|
+
})
|
|
204
|
+
})
|
|
205
|
+
}) })
|
|
206
|
+
]
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
//#endregion
|
|
210
|
+
export { g as AdminAdminCoursesPagePage };
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=AdminAdminCoursesPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAdminCoursesPagePage.js","names":[],"sources":["../../../src/buildmyiq/pages/AdminAdminCoursesPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { BookOpen, Search, Plus, Star, Users, MoreHorizontal } from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nconst statusColors: Record<string, string> = {\n published: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400',\n draft: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400',\n archived: 'bg-gray-100 text-gray-700 dark:bg-gray-900/30 dark:text-gray-400',\n};\n\nexport function AdminAdminCoursesPagePage() {\n const { courses } = useBuildMyIQStore();\n const [search, setSearch] = useState('');\n const [statusFilter, setStatusFilter] = useState('all');\n\n const filtered = courses.filter((c) => {\n const matchesSearch =\n c.title.toLowerCase().includes(search.toLowerCase()) ||\n c.instructor.toLowerCase().includes(search.toLowerCase());\n const matchesStatus = statusFilter === 'all' || c.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n const published = courses.filter((c) => c.status === 'published').length;\n const draft = courses.filter((c) => c.status === 'draft').length;\n const archived = courses.filter((c) => c.status === 'archived').length;\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\">Course Management</h1>\n <p className=\"text-sm text-muted-foreground\">\n Administer and manage all platform courses\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Course\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Total Courses</p>\n <p className=\"text-2xl font-bold\">{courses.length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Published</p>\n <p className=\"text-2xl font-bold text-green-600\">{published}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Draft</p>\n <p className=\"text-2xl font-bold text-yellow-600\">{draft}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Archived</p>\n <p className=\"text-2xl font-bold text-gray-600\">{archived}</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <div className=\"relative flex-1\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search courses or instructors...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n <div className=\"flex gap-1\">\n {['all', 'published', 'draft', 'archived'].map((s) => (\n <Button\n key={s}\n variant={statusFilter === s ? 'default' : 'outline'}\n size=\"sm\"\n className=\"capitalize\"\n onClick={() => setStatusFilter(s)}\n >\n {s}\n </Button>\n ))}\n </div>\n </div>\n\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Course\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Instructor\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Category\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Students\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Rating\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Status\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Updated\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\"></th>\n </tr>\n </thead>\n <tbody>\n {filtered.map((course) => (\n <tr key={course.id} className=\"border-b hover:bg-muted/30 transition-colors\">\n <td className=\"p-3\">\n <div className=\"flex items-center gap-2\">\n <BookOpen className=\"h-4 w-4 text-muted-foreground shrink-0\" />\n <span className=\"text-sm font-medium\">{course.title}</span>\n </div>\n </td>\n <td className=\"p-3 text-sm text-muted-foreground\">{course.instructor}</td>\n <td className=\"p-3\">\n <Badge variant=\"outline\" className=\"text-xs\">\n {course.category}\n </Badge>\n </td>\n <td className=\"p-3\">\n <div className=\"flex items-center gap-1 text-sm\">\n <Users className=\"h-3.5 w-3.5 text-muted-foreground\" />\n {course.students}\n </div>\n </td>\n <td className=\"p-3\">\n <div className=\"flex items-center gap-1 text-sm\">\n <Star className=\"h-3.5 w-3.5 text-yellow-500 fill-yellow-500\" />\n {course.rating}\n </div>\n </td>\n <td className=\"p-3\">\n <Badge className={`text-xs ${statusColors[course.status]}`}>\n {course.status}\n </Badge>\n </td>\n <td className=\"p-3 text-sm text-muted-foreground\">{course.lastUpdated}</td>\n <td className=\"p-3\">\n <Button variant=\"ghost\" size=\"sm\">\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAdminUsersPagePage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/AdminAdminUsersPagePage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,4CAuLtC"}
|