@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.
Files changed (182) hide show
  1. package/README.md +12 -0
  2. package/dist/buildmyiq/BuildMyIQRoot.d.ts +5 -0
  3. package/dist/buildmyiq/BuildMyIQRoot.d.ts.map +1 -0
  4. package/dist/buildmyiq/BuildMyIQRoot.js +329 -0
  5. package/dist/buildmyiq/BuildMyIQRoot.js.map +1 -0
  6. package/dist/buildmyiq/BuildMyIQRoutes.d.ts +2 -0
  7. package/dist/buildmyiq/BuildMyIQRoutes.d.ts.map +1 -0
  8. package/dist/buildmyiq/BuildMyIQRoutes.js +171 -0
  9. package/dist/buildmyiq/BuildMyIQRoutes.js.map +1 -0
  10. package/dist/buildmyiq/index.d.ts +5 -0
  11. package/dist/buildmyiq/index.d.ts.map +1 -0
  12. package/dist/buildmyiq/index.js +3 -0
  13. package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.d.ts +2 -0
  14. package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.d.ts.map +1 -0
  15. package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.js +271 -0
  16. package/dist/buildmyiq/pages/AdminAdminAnalyticsPagePage.js.map +1 -0
  17. package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.d.ts +2 -0
  18. package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.d.ts.map +1 -0
  19. package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.js +212 -0
  20. package/dist/buildmyiq/pages/AdminAdminCoursesPagePage.js.map +1 -0
  21. package/dist/buildmyiq/pages/AdminAdminUsersPagePage.d.ts +2 -0
  22. package/dist/buildmyiq/pages/AdminAdminUsersPagePage.d.ts.map +1 -0
  23. package/dist/buildmyiq/pages/AdminAdminUsersPagePage.js +235 -0
  24. package/dist/buildmyiq/pages/AdminAdminUsersPagePage.js.map +1 -0
  25. package/dist/buildmyiq/pages/AdminIndexPage.d.ts +2 -0
  26. package/dist/buildmyiq/pages/AdminIndexPage.d.ts.map +1 -0
  27. package/dist/buildmyiq/pages/AdminIndexPage.js +274 -0
  28. package/dist/buildmyiq/pages/AdminIndexPage.js.map +1 -0
  29. package/dist/buildmyiq/pages/AiAichatPagePage.d.ts +2 -0
  30. package/dist/buildmyiq/pages/AiAichatPagePage.d.ts.map +1 -0
  31. package/dist/buildmyiq/pages/AiAichatPagePage.js +209 -0
  32. package/dist/buildmyiq/pages/AiAichatPagePage.js.map +1 -0
  33. package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.d.ts +2 -0
  34. package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.d.ts.map +1 -0
  35. package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.js +318 -0
  36. package/dist/buildmyiq/pages/AiAicontentGenerationPagePage.js.map +1 -0
  37. package/dist/buildmyiq/pages/AiAitutoringPagePage.d.ts +2 -0
  38. package/dist/buildmyiq/pages/AiAitutoringPagePage.d.ts.map +1 -0
  39. package/dist/buildmyiq/pages/AiAitutoringPagePage.js +290 -0
  40. package/dist/buildmyiq/pages/AiAitutoringPagePage.js.map +1 -0
  41. package/dist/buildmyiq/pages/AiIndexPage.d.ts +2 -0
  42. package/dist/buildmyiq/pages/AiIndexPage.d.ts.map +1 -0
  43. package/dist/buildmyiq/pages/AiIndexPage.js +191 -0
  44. package/dist/buildmyiq/pages/AiIndexPage.js.map +1 -0
  45. package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.d.ts +2 -0
  46. package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.d.ts.map +1 -0
  47. package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.js +290 -0
  48. package/dist/buildmyiq/pages/AssessmentsAssessmentBuilderPagePage.js.map +1 -0
  49. package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.d.ts +2 -0
  50. package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.d.ts.map +1 -0
  51. package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.js +215 -0
  52. package/dist/buildmyiq/pages/AssessmentsAssessmentGradingPagePage.js.map +1 -0
  53. package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.d.ts +2 -0
  54. package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.d.ts.map +1 -0
  55. package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.js +224 -0
  56. package/dist/buildmyiq/pages/AssessmentsAssessmentResultsPagePage.js.map +1 -0
  57. package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.d.ts +2 -0
  58. package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.d.ts.map +1 -0
  59. package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.js +174 -0
  60. package/dist/buildmyiq/pages/AssessmentsAssessmentTakePagePage.js.map +1 -0
  61. package/dist/buildmyiq/pages/AssessmentsIndexPage.d.ts +2 -0
  62. package/dist/buildmyiq/pages/AssessmentsIndexPage.d.ts.map +1 -0
  63. package/dist/buildmyiq/pages/AssessmentsIndexPage.js +174 -0
  64. package/dist/buildmyiq/pages/AssessmentsIndexPage.js.map +1 -0
  65. package/dist/buildmyiq/pages/CalendarPage.d.ts +2 -0
  66. package/dist/buildmyiq/pages/CalendarPage.d.ts.map +1 -0
  67. package/dist/buildmyiq/pages/CalendarPage.js +242 -0
  68. package/dist/buildmyiq/pages/CalendarPage.js.map +1 -0
  69. package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.d.ts +2 -0
  70. package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.d.ts.map +1 -0
  71. package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.js +180 -0
  72. package/dist/buildmyiq/pages/CommunicationAnnouncementsPagePage.js.map +1 -0
  73. package/dist/buildmyiq/pages/CommunicationForumsPagePage.d.ts +2 -0
  74. package/dist/buildmyiq/pages/CommunicationForumsPagePage.d.ts.map +1 -0
  75. package/dist/buildmyiq/pages/CommunicationForumsPagePage.js +154 -0
  76. package/dist/buildmyiq/pages/CommunicationForumsPagePage.js.map +1 -0
  77. package/dist/buildmyiq/pages/CommunicationIndexPage.d.ts +2 -0
  78. package/dist/buildmyiq/pages/CommunicationIndexPage.d.ts.map +1 -0
  79. package/dist/buildmyiq/pages/CommunicationIndexPage.js +191 -0
  80. package/dist/buildmyiq/pages/CommunicationIndexPage.js.map +1 -0
  81. package/dist/buildmyiq/pages/CommunicationMessagesPagePage.d.ts +2 -0
  82. package/dist/buildmyiq/pages/CommunicationMessagesPagePage.d.ts.map +1 -0
  83. package/dist/buildmyiq/pages/CommunicationMessagesPagePage.js +261 -0
  84. package/dist/buildmyiq/pages/CommunicationMessagesPagePage.js.map +1 -0
  85. package/dist/buildmyiq/pages/CoursesCourseContentPagePage.d.ts +2 -0
  86. package/dist/buildmyiq/pages/CoursesCourseContentPagePage.d.ts.map +1 -0
  87. package/dist/buildmyiq/pages/CoursesCourseContentPagePage.js +164 -0
  88. package/dist/buildmyiq/pages/CoursesCourseContentPagePage.js.map +1 -0
  89. package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.d.ts +2 -0
  90. package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.d.ts.map +1 -0
  91. package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.js +239 -0
  92. package/dist/buildmyiq/pages/CoursesCourseCreatePagePage.js.map +1 -0
  93. package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.d.ts +2 -0
  94. package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.d.ts.map +1 -0
  95. package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.js +368 -0
  96. package/dist/buildmyiq/pages/CoursesCourseDashboardPagePage.js.map +1 -0
  97. package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.d.ts +2 -0
  98. package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.d.ts.map +1 -0
  99. package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.js +219 -0
  100. package/dist/buildmyiq/pages/CoursesCourseDetailPagePage.js.map +1 -0
  101. package/dist/buildmyiq/pages/CoursesCourseListPagePage.d.ts +2 -0
  102. package/dist/buildmyiq/pages/CoursesCourseListPagePage.d.ts.map +1 -0
  103. package/dist/buildmyiq/pages/CoursesCourseListPagePage.js +153 -0
  104. package/dist/buildmyiq/pages/CoursesCourseListPagePage.js.map +1 -0
  105. package/dist/buildmyiq/pages/CoursesIndexPage.d.ts +2 -0
  106. package/dist/buildmyiq/pages/CoursesIndexPage.d.ts.map +1 -0
  107. package/dist/buildmyiq/pages/CoursesIndexPage.js +138 -0
  108. package/dist/buildmyiq/pages/CoursesIndexPage.js.map +1 -0
  109. package/dist/buildmyiq/pages/DashboardPage.d.ts +2 -0
  110. package/dist/buildmyiq/pages/DashboardPage.d.ts.map +1 -0
  111. package/dist/buildmyiq/pages/DashboardPage.js +264 -0
  112. package/dist/buildmyiq/pages/DashboardPage.js.map +1 -0
  113. package/dist/buildmyiq/pages/MessagesPage.d.ts +2 -0
  114. package/dist/buildmyiq/pages/MessagesPage.d.ts.map +1 -0
  115. package/dist/buildmyiq/pages/MessagesPage.js +261 -0
  116. package/dist/buildmyiq/pages/MessagesPage.js.map +1 -0
  117. package/dist/buildmyiq/pages/ProfileProgressPage.d.ts +2 -0
  118. package/dist/buildmyiq/pages/ProfileProgressPage.d.ts.map +1 -0
  119. package/dist/buildmyiq/pages/ProfileProgressPage.js +194 -0
  120. package/dist/buildmyiq/pages/ProfileProgressPage.js.map +1 -0
  121. package/dist/buildmyiq/pages/TeachingAnalyticsPage.d.ts +2 -0
  122. package/dist/buildmyiq/pages/TeachingAnalyticsPage.d.ts.map +1 -0
  123. package/dist/buildmyiq/pages/TeachingAnalyticsPage.js +243 -0
  124. package/dist/buildmyiq/pages/TeachingAnalyticsPage.js.map +1 -0
  125. package/dist/buildmyiq/pages/TeachingContentPage.d.ts +2 -0
  126. package/dist/buildmyiq/pages/TeachingContentPage.d.ts.map +1 -0
  127. package/dist/buildmyiq/pages/TeachingContentPage.js +165 -0
  128. package/dist/buildmyiq/pages/TeachingContentPage.js.map +1 -0
  129. package/dist/buildmyiq/pages/TeachingCoursesPage.d.ts +2 -0
  130. package/dist/buildmyiq/pages/TeachingCoursesPage.d.ts.map +1 -0
  131. package/dist/buildmyiq/pages/TeachingCoursesPage.js +151 -0
  132. package/dist/buildmyiq/pages/TeachingCoursesPage.js.map +1 -0
  133. package/dist/buildmyiq/pages/TeachingGradingPage.d.ts +2 -0
  134. package/dist/buildmyiq/pages/TeachingGradingPage.d.ts.map +1 -0
  135. package/dist/buildmyiq/pages/TeachingGradingPage.js +204 -0
  136. package/dist/buildmyiq/pages/TeachingGradingPage.js.map +1 -0
  137. package/dist/buildmyiq/pages/TeachingIndexPage.d.ts +2 -0
  138. package/dist/buildmyiq/pages/TeachingIndexPage.d.ts.map +1 -0
  139. package/dist/buildmyiq/pages/TeachingIndexPage.js +220 -0
  140. package/dist/buildmyiq/pages/TeachingIndexPage.js.map +1 -0
  141. package/dist/buildmyiq/pages/TeachingLessonPlansPage.d.ts +2 -0
  142. package/dist/buildmyiq/pages/TeachingLessonPlansPage.d.ts.map +1 -0
  143. package/dist/buildmyiq/pages/TeachingLessonPlansPage.js +157 -0
  144. package/dist/buildmyiq/pages/TeachingLessonPlansPage.js.map +1 -0
  145. package/dist/buildmyiq/pages/TeachingQuestionsPage.d.ts +2 -0
  146. package/dist/buildmyiq/pages/TeachingQuestionsPage.d.ts.map +1 -0
  147. package/dist/buildmyiq/pages/TeachingQuestionsPage.js +184 -0
  148. package/dist/buildmyiq/pages/TeachingQuestionsPage.js.map +1 -0
  149. package/dist/buildmyiq/pages/TeachingStudentsPage.d.ts +2 -0
  150. package/dist/buildmyiq/pages/TeachingStudentsPage.d.ts.map +1 -0
  151. package/dist/buildmyiq/pages/TeachingStudentsPage.js +204 -0
  152. package/dist/buildmyiq/pages/TeachingStudentsPage.js.map +1 -0
  153. package/dist/buildmyiq/providers/BuildMyIQProvider.d.ts +6 -0
  154. package/dist/buildmyiq/providers/BuildMyIQProvider.d.ts.map +1 -0
  155. package/dist/buildmyiq/providers/BuildMyIQProvider.js +27 -0
  156. package/dist/buildmyiq/providers/BuildMyIQProvider.js.map +1 -0
  157. package/dist/buildmyiq/store/buildmyiqStore.d.ts +189 -0
  158. package/dist/buildmyiq/store/buildmyiqStore.d.ts.map +1 -0
  159. package/dist/buildmyiq/store/buildmyiqStore.js +1160 -0
  160. package/dist/buildmyiq/store/buildmyiqStore.js.map +1 -0
  161. package/dist/buildmyiq/types/index.d.ts +51 -0
  162. package/dist/buildmyiq/types/index.d.ts.map +1 -0
  163. package/dist/buildmyiq/utils/cn.d.ts +4 -0
  164. package/dist/buildmyiq/utils/cn.d.ts.map +1 -0
  165. package/dist/buildmyiq/utils/navigation.d.ts +2 -0
  166. package/dist/buildmyiq/utils/navigation.d.ts.map +1 -0
  167. package/dist/buildmyiq/utils/navigation.js +8 -0
  168. package/dist/buildmyiq/utils/navigation.js.map +1 -0
  169. package/dist/dev/main.d.ts +2 -0
  170. package/dist/dev/main.d.ts.map +1 -0
  171. package/dist/generated/global-operations.d.ts +2 -0
  172. package/dist/generated/global-operations.d.ts.map +1 -0
  173. package/dist/generated/global-types.d.ts +18199 -0
  174. package/dist/generated/global-types.d.ts.map +1 -0
  175. package/dist/generated/wspace-operations.d.ts +2 -0
  176. package/dist/generated/wspace-operations.d.ts.map +1 -0
  177. package/dist/generated/wspace-types.d.ts +43046 -0
  178. package/dist/generated/wspace-types.d.ts.map +1 -0
  179. package/dist/index.d.ts +2 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +5 -0
  182. package/package.json +107 -0
@@ -0,0 +1,165 @@
1
+ import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
2
+ import { useState as t } from "react";
3
+ import { BookOpen as n, Clock as r, Dumbbell as i, HelpCircle as a, Search as o, Upload as s, Video as c } from "lucide-react";
4
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
+ import { Badge as d, Button as f, Card as p, CardContent as m, Input as h } from "@burdenoff/fe-libs/ui";
6
+ //#region src/buildmyiq/pages/TeachingContentPage.tsx
7
+ var g = {
8
+ video: {
9
+ label: "Video",
10
+ icon: c,
11
+ color: "text-blue-600 bg-blue-100 dark:bg-blue-900/30"
12
+ },
13
+ reading: {
14
+ label: "Reading",
15
+ icon: n,
16
+ color: "text-green-600 bg-green-100 dark:bg-green-900/30"
17
+ },
18
+ exercise: {
19
+ label: "Exercise",
20
+ icon: i,
21
+ color: "text-orange-600 bg-orange-100 dark:bg-orange-900/30"
22
+ },
23
+ quiz: {
24
+ label: "Quiz",
25
+ icon: a,
26
+ color: "text-purple-600 bg-purple-100 dark:bg-purple-900/30"
27
+ }
28
+ };
29
+ function _() {
30
+ let { courses: n } = e(), [i, a] = t(""), [c, _] = t("all"), v = n.flatMap((e) => e.modules.flatMap((t) => t.lessons.map((n) => ({
31
+ ...n,
32
+ course: e.title,
33
+ module: t.title
34
+ })))), y = v.filter((e) => {
35
+ let t = e.title.toLowerCase().includes(i.toLowerCase()) || e.course.toLowerCase().includes(i.toLowerCase()), n = c === "all" || e.type === c;
36
+ return t && n;
37
+ }), b = {
38
+ video: v.filter((e) => e.type === "video").length,
39
+ reading: v.filter((e) => e.type === "reading").length,
40
+ exercise: v.filter((e) => e.type === "exercise").length,
41
+ quiz: v.filter((e) => e.type === "quiz").length
42
+ };
43
+ return /* @__PURE__ */ u("div", {
44
+ className: "space-y-6 p-6",
45
+ children: [
46
+ /* @__PURE__ */ u("div", {
47
+ className: "flex items-center justify-between",
48
+ children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h1", {
49
+ className: "text-2xl font-semibold",
50
+ children: "Content Library"
51
+ }), /* @__PURE__ */ l("p", {
52
+ className: "text-sm text-muted-foreground",
53
+ children: "Manage all course content and materials"
54
+ })] }), /* @__PURE__ */ u(f, {
55
+ size: "sm",
56
+ children: [/* @__PURE__ */ l(s, { className: "mr-2 h-4 w-4" }), "Upload Content"]
57
+ })]
58
+ }),
59
+ /* @__PURE__ */ u("div", {
60
+ className: "grid grid-cols-1 md:grid-cols-5 gap-4",
61
+ children: [/* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
62
+ className: "pt-6",
63
+ children: [/* @__PURE__ */ l("p", {
64
+ className: "text-sm text-muted-foreground",
65
+ children: "Total Content"
66
+ }), /* @__PURE__ */ l("p", {
67
+ className: "text-2xl font-bold",
68
+ children: v.length
69
+ })]
70
+ }) }), Object.entries(g).map(([e, t]) => /* @__PURE__ */ l(p, { children: /* @__PURE__ */ l(m, {
71
+ className: "pt-6",
72
+ children: /* @__PURE__ */ u("div", {
73
+ className: "flex items-center gap-2",
74
+ children: [/* @__PURE__ */ l(t.icon, { className: `h-4 w-4 ${t.color.split(" ")[0]}` }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
75
+ className: "text-sm text-muted-foreground",
76
+ children: t.label
77
+ }), /* @__PURE__ */ l("p", {
78
+ className: "text-2xl font-bold",
79
+ children: b[e]
80
+ })] })]
81
+ })
82
+ }) }, e))]
83
+ }),
84
+ /* @__PURE__ */ u("div", {
85
+ className: "flex flex-col sm:flex-row gap-3",
86
+ children: [/* @__PURE__ */ u("div", {
87
+ className: "relative flex-1",
88
+ children: [/* @__PURE__ */ l(o, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ l(h, {
89
+ placeholder: "Search content...",
90
+ value: i,
91
+ onChange: (e) => a(e.target.value),
92
+ className: "pl-10"
93
+ })]
94
+ }), /* @__PURE__ */ u("div", {
95
+ className: "flex gap-1",
96
+ children: [/* @__PURE__ */ l(f, {
97
+ variant: c === "all" ? "default" : "outline",
98
+ size: "sm",
99
+ onClick: () => _("all"),
100
+ children: "All"
101
+ }), Object.entries(g).map(([e, t]) => /* @__PURE__ */ l(f, {
102
+ variant: c === e ? "default" : "outline",
103
+ size: "sm",
104
+ onClick: () => _(e),
105
+ children: t.label
106
+ }, e))]
107
+ })]
108
+ }),
109
+ /* @__PURE__ */ l("div", {
110
+ className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
111
+ children: y.map((e) => {
112
+ let t = g[e.type];
113
+ return /* @__PURE__ */ l(p, {
114
+ className: "hover:shadow-md transition-shadow cursor-pointer",
115
+ children: /* @__PURE__ */ l(m, {
116
+ className: "pt-6",
117
+ children: /* @__PURE__ */ u("div", {
118
+ className: "flex items-start gap-3",
119
+ children: [/* @__PURE__ */ l("div", {
120
+ className: `rounded-lg p-2 ${t.color.split(" ").slice(1).join(" ")}`,
121
+ children: /* @__PURE__ */ l(t.icon, { className: `h-5 w-5 ${t.color.split(" ")[0]}` })
122
+ }), /* @__PURE__ */ u("div", {
123
+ className: "flex-1 min-w-0",
124
+ children: [
125
+ /* @__PURE__ */ l("h3", {
126
+ className: "text-sm font-medium",
127
+ children: e.title
128
+ }),
129
+ /* @__PURE__ */ l("p", {
130
+ className: "text-xs text-muted-foreground",
131
+ children: e.course
132
+ }),
133
+ /* @__PURE__ */ l("p", {
134
+ className: "text-xs text-muted-foreground",
135
+ children: e.module
136
+ }),
137
+ /* @__PURE__ */ u("div", {
138
+ className: "flex items-center gap-2 mt-2",
139
+ children: [/* @__PURE__ */ l(d, {
140
+ variant: "outline",
141
+ className: "text-xs",
142
+ children: t.label
143
+ }), /* @__PURE__ */ u("div", {
144
+ className: "flex items-center gap-1 text-xs text-muted-foreground",
145
+ children: [/* @__PURE__ */ l(r, { className: "h-3 w-3" }), e.duration]
146
+ })]
147
+ }),
148
+ e.completed && /* @__PURE__ */ l(d, {
149
+ className: "mt-2 text-xs bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400",
150
+ children: "Completed"
151
+ })
152
+ ]
153
+ })]
154
+ })
155
+ })
156
+ }, e.id);
157
+ })
158
+ })
159
+ ]
160
+ });
161
+ }
162
+ //#endregion
163
+ export { _ as TeachingContentPage };
164
+
165
+ //# sourceMappingURL=TeachingContentPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingContentPage.js","names":[],"sources":["../../../src/buildmyiq/pages/TeachingContentPage.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 { Video, BookOpen, Dumbbell, HelpCircle, Search, Upload, Clock, Filter } from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nconst typeConfig: Record<string, { label: string; icon: typeof Video; color: string }> = {\n video: { label: 'Video', icon: Video, color: 'text-blue-600 bg-blue-100 dark:bg-blue-900/30' },\n reading: {\n label: 'Reading',\n icon: BookOpen,\n color: 'text-green-600 bg-green-100 dark:bg-green-900/30',\n },\n exercise: {\n label: 'Exercise',\n icon: Dumbbell,\n color: 'text-orange-600 bg-orange-100 dark:bg-orange-900/30',\n },\n quiz: {\n label: 'Quiz',\n icon: HelpCircle,\n color: 'text-purple-600 bg-purple-100 dark:bg-purple-900/30',\n },\n};\n\nexport function TeachingContentPage() {\n const { courses } = useBuildMyIQStore();\n const [search, setSearch] = useState('');\n const [typeFilter, setTypeFilter] = useState('all');\n\n const allContent = courses.flatMap((course) =>\n course.modules.flatMap((mod) =>\n mod.lessons.map((lesson) => ({\n ...lesson,\n course: course.title,\n module: mod.title,\n }))\n )\n );\n\n const filtered = allContent.filter((item) => {\n const matchesSearch =\n item.title.toLowerCase().includes(search.toLowerCase()) ||\n item.course.toLowerCase().includes(search.toLowerCase());\n const matchesType = typeFilter === 'all' || item.type === typeFilter;\n return matchesSearch && matchesType;\n });\n\n const typeCounts = {\n video: allContent.filter((c) => c.type === 'video').length,\n reading: allContent.filter((c) => c.type === 'reading').length,\n exercise: allContent.filter((c) => c.type === 'exercise').length,\n quiz: allContent.filter((c) => c.type === 'quiz').length,\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Content Library</h1>\n <p className=\"text-sm text-muted-foreground\">Manage all course content and materials</p>\n </div>\n <Button size=\"sm\">\n <Upload className=\"mr-2 h-4 w-4\" />\n Upload Content\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-5 gap-4\">\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Total Content</p>\n <p className=\"text-2xl font-bold\">{allContent.length}</p>\n </CardContent>\n </Card>\n {Object.entries(typeConfig).map(([key, cfg]) => (\n <Card key={key}>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center gap-2\">\n <cfg.icon className={`h-4 w-4 ${cfg.color.split(' ')[0]}`} />\n <div>\n <p className=\"text-sm text-muted-foreground\">{cfg.label}</p>\n <p className=\"text-2xl font-bold\">{typeCounts[key as keyof typeof typeCounts]}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\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 content...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n <div className=\"flex gap-1\">\n <Button\n variant={typeFilter === 'all' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setTypeFilter('all')}\n >\n All\n </Button>\n {Object.entries(typeConfig).map(([key, cfg]) => (\n <Button\n key={key}\n variant={typeFilter === key ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setTypeFilter(key)}\n >\n {cfg.label}\n </Button>\n ))}\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {filtered.map((item) => {\n const cfg = typeConfig[item.type];\n return (\n <Card key={item.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardContent className=\"pt-6\">\n <div className=\"flex items-start gap-3\">\n <div className={`rounded-lg p-2 ${cfg.color.split(' ').slice(1).join(' ')}`}>\n <cfg.icon className={`h-5 w-5 ${cfg.color.split(' ')[0]}`} />\n </div>\n <div className=\"flex-1 min-w-0\">\n <h3 className=\"text-sm font-medium\">{item.title}</h3>\n <p className=\"text-xs text-muted-foreground\">{item.course}</p>\n <p className=\"text-xs text-muted-foreground\">{item.module}</p>\n <div className=\"flex items-center gap-2 mt-2\">\n <Badge variant=\"outline\" className=\"text-xs\">\n {cfg.label}\n </Badge>\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <Clock className=\"h-3 w-3\" />\n {item.duration}\n </div>\n </div>\n {item.completed && (\n <Badge className=\"mt-2 text-xs bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400\">\n Completed\n </Badge>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function TeachingCoursesPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TeachingCoursesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingCoursesPage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/TeachingCoursesPage.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,mBAAmB,4CA6FlC"}
@@ -0,0 +1,151 @@
1
+ import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
2
+ import { useState as t } from "react";
3
+ import { BookOpen as n, Clock 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, CardHeader as m, CardTitle as h, Input as g } from "@burdenoff/fe-libs/ui";
6
+ //#region src/buildmyiq/pages/TeachingCoursesPage.tsx
7
+ var _ = {
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 v() {
13
+ let { courses: v } = e(), [y, b] = t(""), [x, S] = t("all"), C = v.filter((e) => {
14
+ let t = e.title.toLowerCase().includes(y.toLowerCase()), n = x === "all" || e.status === x;
15
+ return t && n;
16
+ });
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: "My Courses"
25
+ }), /* @__PURE__ */ c("p", {
26
+ className: "text-sm text-muted-foreground",
27
+ children: "Manage and organize your teaching courses"
28
+ })] }), /* @__PURE__ */ l(d, {
29
+ size: "sm",
30
+ children: [/* @__PURE__ */ c(i, { className: "mr-2 h-4 w-4" }), "Create New Course"]
31
+ })]
32
+ }),
33
+ /* @__PURE__ */ l("div", {
34
+ className: "flex flex-col sm:flex-row gap-3",
35
+ children: [/* @__PURE__ */ l("div", {
36
+ className: "relative flex-1",
37
+ children: [/* @__PURE__ */ c(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ c(g, {
38
+ placeholder: "Search courses...",
39
+ value: y,
40
+ onChange: (e) => b(e.target.value),
41
+ className: "pl-10"
42
+ })]
43
+ }), /* @__PURE__ */ c("div", {
44
+ className: "flex gap-1",
45
+ children: [
46
+ "all",
47
+ "published",
48
+ "draft",
49
+ "archived"
50
+ ].map((e) => /* @__PURE__ */ c(d, {
51
+ variant: x === e ? "default" : "outline",
52
+ size: "sm",
53
+ className: "capitalize",
54
+ onClick: () => S(e),
55
+ children: e
56
+ }, e))
57
+ })]
58
+ }),
59
+ /* @__PURE__ */ c("div", {
60
+ className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
61
+ children: C.map((e) => /* @__PURE__ */ l(f, {
62
+ className: "hover:shadow-md transition-shadow cursor-pointer",
63
+ children: [/* @__PURE__ */ l(m, {
64
+ className: "pb-2",
65
+ children: [/* @__PURE__ */ l("div", {
66
+ className: "flex items-center justify-between",
67
+ children: [/* @__PURE__ */ c(u, {
68
+ className: `text-xs ${_[e.status]}`,
69
+ children: e.status
70
+ }), /* @__PURE__ */ c(u, {
71
+ variant: "outline",
72
+ className: "text-xs",
73
+ children: e.level
74
+ })]
75
+ }), /* @__PURE__ */ c(h, {
76
+ className: "text-lg mt-2",
77
+ children: e.title
78
+ })]
79
+ }), /* @__PURE__ */ l(p, { children: [
80
+ /* @__PURE__ */ c("p", {
81
+ className: "text-sm text-muted-foreground mb-3 line-clamp-2",
82
+ children: e.description
83
+ }),
84
+ /* @__PURE__ */ l("div", {
85
+ className: "grid grid-cols-3 gap-2 text-center mb-3",
86
+ children: [
87
+ /* @__PURE__ */ l("div", {
88
+ className: "rounded-lg bg-muted p-2",
89
+ children: [
90
+ /* @__PURE__ */ c(s, { className: "h-4 w-4 mx-auto mb-1 text-muted-foreground" }),
91
+ /* @__PURE__ */ c("p", {
92
+ className: "text-sm font-bold",
93
+ children: e.students
94
+ }),
95
+ /* @__PURE__ */ c("p", {
96
+ className: "text-xs text-muted-foreground",
97
+ children: "Students"
98
+ })
99
+ ]
100
+ }),
101
+ /* @__PURE__ */ l("div", {
102
+ className: "rounded-lg bg-muted p-2",
103
+ children: [
104
+ /* @__PURE__ */ c(n, { className: "h-4 w-4 mx-auto mb-1 text-muted-foreground" }),
105
+ /* @__PURE__ */ c("p", {
106
+ className: "text-sm font-bold",
107
+ children: e.lessons
108
+ }),
109
+ /* @__PURE__ */ c("p", {
110
+ className: "text-xs text-muted-foreground",
111
+ children: "Lessons"
112
+ })
113
+ ]
114
+ }),
115
+ /* @__PURE__ */ l("div", {
116
+ className: "rounded-lg bg-muted p-2",
117
+ children: [
118
+ /* @__PURE__ */ c(o, { className: "h-4 w-4 mx-auto mb-1 text-yellow-500 fill-yellow-500" }),
119
+ /* @__PURE__ */ c("p", {
120
+ className: "text-sm font-bold",
121
+ children: e.rating
122
+ }),
123
+ /* @__PURE__ */ c("p", {
124
+ className: "text-xs text-muted-foreground",
125
+ children: "Rating"
126
+ })
127
+ ]
128
+ })
129
+ ]
130
+ }),
131
+ /* @__PURE__ */ l("div", {
132
+ className: "flex items-center gap-2 text-xs text-muted-foreground",
133
+ children: [
134
+ /* @__PURE__ */ c(r, { className: "h-3 w-3" }),
135
+ /* @__PURE__ */ l("span", { children: ["Updated ", e.lastUpdated] }),
136
+ /* @__PURE__ */ c("span", {
137
+ className: "ml-auto",
138
+ children: e.duration
139
+ })
140
+ ]
141
+ })
142
+ ] })]
143
+ }, e.id))
144
+ })
145
+ ]
146
+ });
147
+ }
148
+ //#endregion
149
+ export { v as TeachingCoursesPage };
150
+
151
+ //# sourceMappingURL=TeachingCoursesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingCoursesPage.js","names":[],"sources":["../../../src/buildmyiq/pages/TeachingCoursesPage.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, Clock } 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 TeachingCoursesPage() {\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 = c.title.toLowerCase().includes(search.toLowerCase());\n const matchesStatus = statusFilter === 'all' || c.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">My Courses</h1>\n <p className=\"text-sm text-muted-foreground\">Manage and organize your teaching courses</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Create New Course\n </Button>\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...\"\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 <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {filtered.map((course) => (\n <Card key={course.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardHeader className=\"pb-2\">\n <div className=\"flex items-center justify-between\">\n <Badge className={`text-xs ${statusColors[course.status]}`}>{course.status}</Badge>\n <Badge variant=\"outline\" className=\"text-xs\">\n {course.level}\n </Badge>\n </div>\n <CardTitle className=\"text-lg mt-2\">{course.title}</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground mb-3 line-clamp-2\">\n {course.description}\n </p>\n <div className=\"grid grid-cols-3 gap-2 text-center mb-3\">\n <div className=\"rounded-lg bg-muted p-2\">\n <Users className=\"h-4 w-4 mx-auto mb-1 text-muted-foreground\" />\n <p className=\"text-sm font-bold\">{course.students}</p>\n <p className=\"text-xs text-muted-foreground\">Students</p>\n </div>\n <div className=\"rounded-lg bg-muted p-2\">\n <BookOpen className=\"h-4 w-4 mx-auto mb-1 text-muted-foreground\" />\n <p className=\"text-sm font-bold\">{course.lessons}</p>\n <p className=\"text-xs text-muted-foreground\">Lessons</p>\n </div>\n <div className=\"rounded-lg bg-muted p-2\">\n <Star className=\"h-4 w-4 mx-auto mb-1 text-yellow-500 fill-yellow-500\" />\n <p className=\"text-sm font-bold\">{course.rating}</p>\n <p className=\"text-xs text-muted-foreground\">Rating</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <Clock className=\"h-3 w-3\" />\n <span>Updated {course.lastUpdated}</span>\n <span className=\"ml-auto\">{course.duration}</span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function TeachingGradingPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TeachingGradingPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingGradingPage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/TeachingGradingPage.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,mBAAmB,4CA8IlC"}
@@ -0,0 +1,204 @@
1
+ import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
2
+ import { useState as t } from "react";
3
+ import { AlertTriangle as n, CheckCircle as r, ClipboardList as i, Clock as a } from "lucide-react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ import { Badge as c, Button as l, Card as u, CardContent as d } from "@burdenoff/fe-libs/ui";
6
+ //#region src/buildmyiq/pages/TeachingGradingPage.tsx
7
+ var f = {
8
+ high: "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400",
9
+ medium: "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400",
10
+ low: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"
11
+ }, p = {
12
+ assignment: "bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",
13
+ quiz: "bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400",
14
+ project: "bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400"
15
+ };
16
+ function m() {
17
+ let { gradingQueue: m } = e(), [h, g] = t("all"), [_, v] = t("all"), y = m.filter((e) => {
18
+ let t = h === "all" || e.priority === h, n = _ === "all" || e.status === _;
19
+ return t && n;
20
+ }).sort((e, t) => {
21
+ let n = {
22
+ high: 0,
23
+ medium: 1,
24
+ low: 2
25
+ };
26
+ return n[e.priority] - n[t.priority];
27
+ }), b = m.filter((e) => e.status === "pending").length, x = m.filter((e) => e.status === "in_review").length, S = m.filter((e) => e.priority === "high").length;
28
+ return /* @__PURE__ */ s("div", {
29
+ className: "space-y-6 p-6",
30
+ children: [
31
+ /* @__PURE__ */ o("div", {
32
+ className: "flex items-center justify-between",
33
+ children: /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
34
+ className: "text-2xl font-semibold",
35
+ children: "Grading Queue"
36
+ }), /* @__PURE__ */ o("p", {
37
+ className: "text-sm text-muted-foreground",
38
+ children: "Review and grade student submissions"
39
+ })] })
40
+ }),
41
+ /* @__PURE__ */ s("div", {
42
+ className: "grid grid-cols-1 md:grid-cols-3 gap-4",
43
+ children: [
44
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
45
+ className: "pt-6",
46
+ children: /* @__PURE__ */ s("div", {
47
+ className: "flex items-center gap-3",
48
+ children: [/* @__PURE__ */ o(i, { className: "h-5 w-5 text-blue-600" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
49
+ className: "text-sm text-muted-foreground",
50
+ children: "Pending"
51
+ }), /* @__PURE__ */ o("p", {
52
+ className: "text-2xl font-bold",
53
+ children: b
54
+ })] })]
55
+ })
56
+ }) }),
57
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
58
+ className: "pt-6",
59
+ children: /* @__PURE__ */ s("div", {
60
+ className: "flex items-center gap-3",
61
+ children: [/* @__PURE__ */ o(n, { className: "h-5 w-5 text-red-600" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
62
+ className: "text-sm text-muted-foreground",
63
+ children: "High Priority"
64
+ }), /* @__PURE__ */ o("p", {
65
+ className: "text-2xl font-bold text-red-600",
66
+ children: S
67
+ })] })]
68
+ })
69
+ }) }),
70
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
71
+ className: "pt-6",
72
+ children: /* @__PURE__ */ s("div", {
73
+ className: "flex items-center gap-3",
74
+ children: [/* @__PURE__ */ o(r, { className: "h-5 w-5 text-yellow-600" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
75
+ className: "text-sm text-muted-foreground",
76
+ children: "In Review"
77
+ }), /* @__PURE__ */ o("p", {
78
+ className: "text-2xl font-bold",
79
+ children: x
80
+ })] })]
81
+ })
82
+ }) })
83
+ ]
84
+ }),
85
+ /* @__PURE__ */ s("div", {
86
+ className: "flex flex-col sm:flex-row gap-3",
87
+ children: [/* @__PURE__ */ s("div", {
88
+ className: "flex gap-1",
89
+ children: [/* @__PURE__ */ o("span", {
90
+ className: "text-sm self-center mr-1 text-muted-foreground",
91
+ children: "Priority:"
92
+ }), [
93
+ "all",
94
+ "high",
95
+ "medium",
96
+ "low"
97
+ ].map((e) => /* @__PURE__ */ o(l, {
98
+ variant: h === e ? "default" : "outline",
99
+ size: "sm",
100
+ className: "capitalize",
101
+ onClick: () => g(e),
102
+ children: e
103
+ }, e))]
104
+ }), /* @__PURE__ */ s("div", {
105
+ className: "flex gap-1",
106
+ children: [/* @__PURE__ */ o("span", {
107
+ className: "text-sm self-center mr-1 text-muted-foreground",
108
+ children: "Status:"
109
+ }), [
110
+ "all",
111
+ "pending",
112
+ "in_review"
113
+ ].map((e) => /* @__PURE__ */ o(l, {
114
+ variant: _ === e ? "default" : "outline",
115
+ size: "sm",
116
+ className: "capitalize",
117
+ onClick: () => v(e),
118
+ children: e.replace("_", " ")
119
+ }, e))]
120
+ })]
121
+ }),
122
+ /* @__PURE__ */ o("div", {
123
+ className: "space-y-3",
124
+ children: y.length === 0 ? /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
125
+ className: "py-12 text-center",
126
+ children: [/* @__PURE__ */ o(r, { className: "h-12 w-12 mx-auto mb-3 text-green-500" }), /* @__PURE__ */ o("p", {
127
+ className: "text-muted-foreground",
128
+ children: "All submissions graded!"
129
+ })]
130
+ }) }) : y.map((e) => /* @__PURE__ */ o(u, {
131
+ className: "hover:shadow-md transition-shadow",
132
+ children: /* @__PURE__ */ o(d, {
133
+ className: "py-4",
134
+ children: /* @__PURE__ */ s("div", {
135
+ className: "flex items-center gap-4",
136
+ children: [
137
+ /* @__PURE__ */ o("div", {
138
+ className: "w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center text-sm font-bold shrink-0",
139
+ children: e.studentAvatar
140
+ }),
141
+ /* @__PURE__ */ s("div", {
142
+ className: "flex-1 min-w-0",
143
+ children: [
144
+ /* @__PURE__ */ s("div", {
145
+ className: "flex items-center gap-2 mb-1",
146
+ children: [
147
+ /* @__PURE__ */ o("p", {
148
+ className: "text-sm font-medium",
149
+ children: e.studentName
150
+ }),
151
+ /* @__PURE__ */ o(c, {
152
+ className: `text-xs ${p[e.type]}`,
153
+ children: e.type
154
+ }),
155
+ /* @__PURE__ */ o(c, {
156
+ className: `text-xs ${f[e.priority]}`,
157
+ children: e.priority
158
+ })
159
+ ]
160
+ }),
161
+ /* @__PURE__ */ o("p", {
162
+ className: "text-sm text-muted-foreground",
163
+ children: e.assignment
164
+ }),
165
+ /* @__PURE__ */ o("p", {
166
+ className: "text-xs text-muted-foreground",
167
+ children: e.course
168
+ })
169
+ ]
170
+ }),
171
+ /* @__PURE__ */ s("div", {
172
+ className: "text-right shrink-0",
173
+ children: [/* @__PURE__ */ s("div", {
174
+ className: "flex items-center gap-1 text-xs text-muted-foreground mb-1",
175
+ children: [
176
+ /* @__PURE__ */ o(a, { className: "h-3 w-3" }),
177
+ "Submitted: ",
178
+ e.submittedDate
179
+ ]
180
+ }), /* @__PURE__ */ s("div", {
181
+ className: "flex items-center gap-1 text-xs text-muted-foreground",
182
+ children: [
183
+ /* @__PURE__ */ o(a, { className: "h-3 w-3" }),
184
+ "Due: ",
185
+ e.dueDate
186
+ ]
187
+ })]
188
+ }),
189
+ /* @__PURE__ */ o(l, {
190
+ size: "sm",
191
+ children: e.status === "in_review" ? "Continue" : "Grade"
192
+ })
193
+ ]
194
+ })
195
+ })
196
+ }, e.id))
197
+ })
198
+ ]
199
+ });
200
+ }
201
+ //#endregion
202
+ export { m as TeachingGradingPage };
203
+
204
+ //# sourceMappingURL=TeachingGradingPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingGradingPage.js","names":[],"sources":["../../../src/buildmyiq/pages/TeachingGradingPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Badge, Button, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { ClipboardList, Clock, AlertTriangle, CheckCircle } from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nconst priorityColors: Record<string, string> = {\n high: 'bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400',\n medium: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400',\n low: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400',\n};\n\nconst typeColors: Record<string, string> = {\n assignment: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400',\n quiz: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400',\n project: 'bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400',\n};\n\nexport function TeachingGradingPage() {\n const { gradingQueue } = useBuildMyIQStore();\n const [priorityFilter, setPriorityFilter] = useState('all');\n const [statusFilter, setStatusFilter] = useState('all');\n\n const filtered = gradingQueue\n .filter((item) => {\n const matchesPriority = priorityFilter === 'all' || item.priority === priorityFilter;\n const matchesStatus = statusFilter === 'all' || item.status === statusFilter;\n return matchesPriority && matchesStatus;\n })\n .sort((a, b) => {\n const priorityOrder = { high: 0, medium: 1, low: 2 };\n return priorityOrder[a.priority] - priorityOrder[b.priority];\n });\n\n const pending = gradingQueue.filter((g) => g.status === 'pending').length;\n const inReview = gradingQueue.filter((g) => g.status === 'in_review').length;\n const highPriority = gradingQueue.filter((g) => g.priority === 'high').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\">Grading Queue</h1>\n <p className=\"text-sm text-muted-foreground\">Review and grade student submissions</p>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <Card>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center gap-3\">\n <ClipboardList className=\"h-5 w-5 text-blue-600\" />\n <div>\n <p className=\"text-sm text-muted-foreground\">Pending</p>\n <p className=\"text-2xl font-bold\">{pending}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center gap-3\">\n <AlertTriangle className=\"h-5 w-5 text-red-600\" />\n <div>\n <p className=\"text-sm text-muted-foreground\">High Priority</p>\n <p className=\"text-2xl font-bold text-red-600\">{highPriority}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center gap-3\">\n <CheckCircle className=\"h-5 w-5 text-yellow-600\" />\n <div>\n <p className=\"text-sm text-muted-foreground\">In Review</p>\n <p className=\"text-2xl font-bold\">{inReview}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <div className=\"flex gap-1\">\n <span className=\"text-sm self-center mr-1 text-muted-foreground\">Priority:</span>\n {['all', 'high', 'medium', 'low'].map((p) => (\n <Button\n key={p}\n variant={priorityFilter === p ? 'default' : 'outline'}\n size=\"sm\"\n className=\"capitalize\"\n onClick={() => setPriorityFilter(p)}\n >\n {p}\n </Button>\n ))}\n </div>\n <div className=\"flex gap-1\">\n <span className=\"text-sm self-center mr-1 text-muted-foreground\">Status:</span>\n {['all', 'pending', 'in_review'].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.replace('_', ' ')}\n </Button>\n ))}\n </div>\n </div>\n\n <div className=\"space-y-3\">\n {filtered.length === 0 ? (\n <Card>\n <CardContent className=\"py-12 text-center\">\n <CheckCircle className=\"h-12 w-12 mx-auto mb-3 text-green-500\" />\n <p className=\"text-muted-foreground\">All submissions graded!</p>\n </CardContent>\n </Card>\n ) : (\n filtered.map((item) => (\n <Card key={item.id} className=\"hover:shadow-md transition-shadow\">\n <CardContent className=\"py-4\">\n <div className=\"flex items-center gap-4\">\n <div className=\"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center text-sm font-bold shrink-0\">\n {item.studentAvatar}\n </div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2 mb-1\">\n <p className=\"text-sm font-medium\">{item.studentName}</p>\n <Badge className={`text-xs ${typeColors[item.type]}`}>{item.type}</Badge>\n <Badge className={`text-xs ${priorityColors[item.priority]}`}>\n {item.priority}\n </Badge>\n </div>\n <p className=\"text-sm text-muted-foreground\">{item.assignment}</p>\n <p className=\"text-xs text-muted-foreground\">{item.course}</p>\n </div>\n <div className=\"text-right shrink-0\">\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground mb-1\">\n <Clock className=\"h-3 w-3\" />\n Submitted: {item.submittedDate}\n </div>\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <Clock className=\"h-3 w-3\" />\n Due: {item.dueDate}\n </div>\n </div>\n <Button size=\"sm\">{item.status === 'in_review' ? 'Continue' : 'Grade'}</Button>\n </div>\n </CardContent>\n </Card>\n ))\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function TeachingIndexPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TeachingIndexPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeachingIndexPage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/TeachingIndexPage.tsx"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,4CA8MhC"}