@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 @@
|
|
|
1
|
+
{"version":3,"file":"TeachingQuestionsPage.js","names":[],"sources":["../../../src/buildmyiq/pages/TeachingQuestionsPage.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 { HelpCircle, Search, Plus, CheckSquare, Type, FileText, ToggleLeft } from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nconst typeConfig: Record<string, { label: string; icon: typeof CheckSquare; color: string }> = {\n multiple_choice: {\n label: 'Multiple Choice',\n icon: CheckSquare,\n color: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400',\n },\n short_answer: {\n label: 'Short Answer',\n icon: Type,\n color: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400',\n },\n essay: {\n label: 'Essay',\n icon: FileText,\n color: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400',\n },\n true_false: {\n label: 'True/False',\n icon: ToggleLeft,\n color: 'bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400',\n },\n};\n\nexport function TeachingQuestionsPage() {\n const { quizQuestions } = useBuildMyIQStore();\n const [search, setSearch] = useState('');\n const [typeFilter, setTypeFilter] = useState('all');\n const [courseFilter, setCourseFilter] = useState('all');\n\n const courses = ['all', ...Array.from(new Set(quizQuestions.map((q) => q.course)))];\n\n const filtered = quizQuestions.filter((q) => {\n const matchesSearch =\n q.question.toLowerCase().includes(search.toLowerCase()) ||\n q.topic.toLowerCase().includes(search.toLowerCase());\n const matchesType = typeFilter === 'all' || q.type === typeFilter;\n const matchesCourse = courseFilter === 'all' || q.course === courseFilter;\n return matchesSearch && matchesType && matchesCourse;\n });\n\n const typeCounts = {\n multiple_choice: quizQuestions.filter((q) => q.type === 'multiple_choice').length,\n short_answer: quizQuestions.filter((q) => q.type === 'short_answer').length,\n essay: quizQuestions.filter((q) => q.type === 'essay').length,\n true_false: quizQuestions.filter((q) => q.type === 'true_false').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\">Question Bank</h1>\n <p className=\"text-sm text-muted-foreground\">\n Manage and organize your assessment questions\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Question\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 Questions</p>\n <p className=\"text-2xl font-bold\">{quizQuestions.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(' ')[1]}`} />\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 questions...\"\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 Types\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 <select\n value={courseFilter}\n onChange={(e) => setCourseFilter(e.target.value)}\n className=\"h-9 rounded-md border border-input bg-background px-3 text-sm\"\n >\n {courses.map((c) => (\n <option key={c} value={c}>\n {c === 'all' ? 'All Courses' : c}\n </option>\n ))}\n </select>\n </div>\n\n <div className=\"space-y-3\">\n {filtered.map((q) => {\n const cfg = typeConfig[q.type];\n return (\n <Card key={q.id} className=\"hover:shadow-md transition-shadow\">\n <CardContent className=\"py-4\">\n <div className=\"flex items-start gap-3\">\n <div\n className={`rounded-lg p-2 ${cfg.color.split(' ').slice(0, 1).join(' ')} shrink-0 mt-0.5`}\n >\n <cfg.icon className={`h-4 w-4 ${cfg.color.split(' ')[1]}`} />\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium mb-1\">{q.question}</p>\n {q.options && (\n <div className=\"flex flex-wrap gap-1 mb-2\">\n {q.options.map((opt, i) => (\n <Badge\n key={i}\n variant={opt === q.correctAnswer ? 'default' : 'outline'}\n className=\"text-xs\"\n >\n {opt}\n </Badge>\n ))}\n </div>\n )}\n <div className=\"flex flex-wrap items-center gap-2 text-xs text-muted-foreground\">\n <Badge className={cfg.color}>{cfg.label}</Badge>\n <span>{q.course}</span>\n <span>-</span>\n <span>{q.topic}</span>\n <Badge variant=\"outline\" className=\"text-xs\">\n {q.points} pts\n </Badge>\n </div>\n </div>\n <Button size=\"sm\" variant=\"outline\" className=\"shrink-0\">\n Edit\n </Button>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAaA,IAAM,IAAyF;CAC7F,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,OAAO;EACR;CACD,cAAc;EACZ,OAAO;EACP,MAAM;EACN,OAAO;EACR;CACD,OAAO;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACR;CACD,YAAY;EACV,OAAO;EACP,MAAM;EACN,OAAO;EACR;CACF;AAED,SAAgB,IAAwB;CACtC,IAAM,EAAE,qBAAkB,GAAmB,EACvC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,CAAC,GAAY,KAAiB,EAAS,MAAM,EAC7C,CAAC,GAAc,KAAmB,EAAS,MAAM,EAEjD,IAAU,CAAC,OAAO,GAAG,MAAM,KAAK,IAAI,IAAI,EAAc,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAE7E,IAAW,EAAc,QAAQ,MAAM;EAC3C,IAAM,IACJ,EAAE,SAAS,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,IACvD,EAAE,MAAM,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,EAChD,IAAc,MAAe,SAAS,EAAE,SAAS,GACjD,IAAgB,MAAiB,SAAS,EAAE,WAAW;AAC7D,SAAO,KAAiB,KAAe;GACvC,EAEI,IAAa;EACjB,iBAAiB,EAAc,QAAQ,MAAM,EAAE,SAAS,kBAAkB,CAAC;EAC3E,cAAc,EAAc,QAAQ,MAAM,EAAE,SAAS,eAAe,CAAC;EACrE,OAAO,EAAc,QAAQ,MAAM,EAAE,SAAS,QAAQ,CAAC;EACvD,YAAY,EAAc,QAAQ,MAAM,EAAE,SAAS,aAAa,CAAC;EAClE;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAyB;KAAkB,CAAA,EACzD,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAEzC,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,GAAD;KAAQ,MAAK;eAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,kBAE1B;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;KAAa,WAAU;eAAvB,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAmB,CAAA,EAChE,kBAAC,KAAD;MAAG,WAAU;gBAAsB,EAAc;MAAW,CAAA,CAChD;QACT,CAAA,EACN,OAAO,QAAQ,EAAW,CAAC,KAAK,CAAC,GAAK,OACrC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;KAAa,WAAU;eACrB,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,EAAI,MAAL,EAAU,WAAW,WAAW,EAAI,MAAM,MAAM,IAAI,CAAC,MAAQ,CAAA,EAC7D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAiC,EAAI;OAAU,CAAA,EAC5D,kBAAC,KAAD;OAAG,WAAU;iBAAsB,EAAW;OAAoC,CAAA,CAC9E,EAAA,CAAA,CACF;;KACM,CAAA,EACT,EAVI,EAUJ,CACP,CACE;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,0EAA2E,CAAA,EAC7F,kBAAC,GAAD;OACE,aAAY;OACZ,OAAO;OACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;OAC1C,WAAU;OACV,CAAA,CACE;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD;OACE,SAAS,MAAe,QAAQ,YAAY;OAC5C,MAAK;OACL,eAAe,EAAc,MAAM;iBACpC;OAEQ,CAAA,EACR,OAAO,QAAQ,EAAW,CAAC,KAAK,CAAC,GAAK,OACrC,kBAAC,GAAD;OAEE,SAAS,MAAe,IAAM,YAAY;OAC1C,MAAK;OACL,eAAe,EAAc,EAAI;iBAEhC,EAAI;OACE,EANF,EAME,CACT,CACE;;KACN,kBAAC,UAAD;MACE,OAAO;MACP,WAAW,MAAM,EAAgB,EAAE,OAAO,MAAM;MAChD,WAAU;gBAET,EAAQ,KAAK,MACZ,kBAAC,UAAD;OAAgB,OAAO;iBACpB,MAAM,QAAQ,gBAAgB;OACxB,EAFI,EAEJ,CACT;MACK,CAAA;KACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAS,KAAK,MAAM;KACnB,IAAM,IAAM,EAAW,EAAE;AACzB,YACE,kBAAC,GAAD;MAAiB,WAAU;gBACzB,kBAAC,GAAD;OAAa,WAAU;iBACrB,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,OAAD;UACE,WAAW,kBAAkB,EAAI,MAAM,MAAM,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;oBAExE,kBAAC,EAAI,MAAL,EAAU,WAAW,WAAW,EAAI,MAAM,MAAM,IAAI,CAAC,MAAQ,CAAA;UACzD,CAAA;SACN,kBAAC,OAAD;UAAK,WAAU;oBAAf;WACE,kBAAC,KAAD;YAAG,WAAU;sBAA4B,EAAE;YAAa,CAAA;WACvD,EAAE,WACD,kBAAC,OAAD;YAAK,WAAU;sBACZ,EAAE,QAAQ,KAAK,GAAK,MACnB,kBAAC,GAAD;aAEE,SAAS,MAAQ,EAAE,gBAAgB,YAAY;aAC/C,WAAU;uBAET;aACK,EALD,EAKC,CACR;YACE,CAAA;WAER,kBAAC,OAAD;YAAK,WAAU;sBAAf;aACE,kBAAC,GAAD;cAAO,WAAW,EAAI;wBAAQ,EAAI;cAAc,CAAA;aAChD,kBAAC,QAAD,EAAA,UAAO,EAAE,QAAc,CAAA;aACvB,kBAAC,QAAD,EAAA,UAAM,KAAQ,CAAA;aACd,kBAAC,QAAD,EAAA,UAAO,EAAE,OAAa,CAAA;aACtB,kBAAC,GAAD;cAAO,SAAQ;cAAU,WAAU;wBAAnC,CACG,EAAE,QAAO,OACJ;;aACJ;;WACF;;SACN,kBAAC,GAAD;UAAQ,MAAK;UAAK,SAAQ;UAAU,WAAU;oBAAW;UAEhD,CAAA;SACL;;OACM,CAAA;MACT,EAtCI,EAAE,GAsCN;MAET;IACE,CAAA;GACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeachingStudentsPage.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/pages/TeachingStudentsPage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,oBAAoB,4CAoJnC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { useBuildMyIQStore as e } from "../store/buildmyiqStore.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { Download as n, Search as r } from "lucide-react";
|
|
4
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as o, Button as s, Card as c, CardContent as l, Input as u } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/buildmyiq/pages/TeachingStudentsPage.tsx
|
|
7
|
+
var d = {
|
|
8
|
+
active: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400",
|
|
9
|
+
inactive: "bg-gray-100 text-gray-700 dark:bg-gray-900/30 dark:text-gray-400",
|
|
10
|
+
at_risk: "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"
|
|
11
|
+
};
|
|
12
|
+
function f() {
|
|
13
|
+
let { students: f } = e(), [p, m] = t(""), [h, g] = t("all"), _ = f.filter((e) => {
|
|
14
|
+
let t = e.name.toLowerCase().includes(p.toLowerCase()) || e.email.toLowerCase().includes(p.toLowerCase()), n = h === "all" || e.status === h;
|
|
15
|
+
return t && n;
|
|
16
|
+
}), v = f.filter((e) => e.status === "active").length, y = f.filter((e) => e.status === "at_risk").length, b = f.filter((e) => e.status === "inactive").length;
|
|
17
|
+
return /* @__PURE__ */ a("div", {
|
|
18
|
+
className: "space-y-6 p-6",
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ a("div", {
|
|
21
|
+
className: "flex items-center justify-between",
|
|
22
|
+
children: [/* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
|
|
23
|
+
className: "text-2xl font-semibold",
|
|
24
|
+
children: "Students"
|
|
25
|
+
}), /* @__PURE__ */ i("p", {
|
|
26
|
+
className: "text-sm text-muted-foreground",
|
|
27
|
+
children: "Monitor and manage your students"
|
|
28
|
+
})] }), /* @__PURE__ */ a(s, {
|
|
29
|
+
variant: "outline",
|
|
30
|
+
size: "sm",
|
|
31
|
+
children: [/* @__PURE__ */ i(n, { className: "mr-2 h-4 w-4" }), "Export"]
|
|
32
|
+
})]
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ a("div", {
|
|
35
|
+
className: "grid grid-cols-1 md:grid-cols-4 gap-4",
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ i(c, { children: /* @__PURE__ */ a(l, {
|
|
38
|
+
className: "pt-6",
|
|
39
|
+
children: [/* @__PURE__ */ i("p", {
|
|
40
|
+
className: "text-sm text-muted-foreground",
|
|
41
|
+
children: "Total Students"
|
|
42
|
+
}), /* @__PURE__ */ i("p", {
|
|
43
|
+
className: "text-2xl font-bold",
|
|
44
|
+
children: f.length
|
|
45
|
+
})]
|
|
46
|
+
}) }),
|
|
47
|
+
/* @__PURE__ */ i(c, { children: /* @__PURE__ */ a(l, {
|
|
48
|
+
className: "pt-6",
|
|
49
|
+
children: [/* @__PURE__ */ i("p", {
|
|
50
|
+
className: "text-sm text-muted-foreground",
|
|
51
|
+
children: "Active"
|
|
52
|
+
}), /* @__PURE__ */ i("p", {
|
|
53
|
+
className: "text-2xl font-bold text-green-600",
|
|
54
|
+
children: v
|
|
55
|
+
})]
|
|
56
|
+
}) }),
|
|
57
|
+
/* @__PURE__ */ i(c, { children: /* @__PURE__ */ a(l, {
|
|
58
|
+
className: "pt-6",
|
|
59
|
+
children: [/* @__PURE__ */ i("p", {
|
|
60
|
+
className: "text-sm text-muted-foreground",
|
|
61
|
+
children: "At Risk"
|
|
62
|
+
}), /* @__PURE__ */ i("p", {
|
|
63
|
+
className: "text-2xl font-bold text-yellow-600",
|
|
64
|
+
children: y
|
|
65
|
+
})]
|
|
66
|
+
}) }),
|
|
67
|
+
/* @__PURE__ */ i(c, { children: /* @__PURE__ */ a(l, {
|
|
68
|
+
className: "pt-6",
|
|
69
|
+
children: [/* @__PURE__ */ i("p", {
|
|
70
|
+
className: "text-sm text-muted-foreground",
|
|
71
|
+
children: "Inactive"
|
|
72
|
+
}), /* @__PURE__ */ i("p", {
|
|
73
|
+
className: "text-2xl font-bold text-gray-600",
|
|
74
|
+
children: b
|
|
75
|
+
})]
|
|
76
|
+
}) })
|
|
77
|
+
]
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ a("div", {
|
|
80
|
+
className: "flex flex-col sm:flex-row gap-3",
|
|
81
|
+
children: [/* @__PURE__ */ a("div", {
|
|
82
|
+
className: "relative flex-1",
|
|
83
|
+
children: [/* @__PURE__ */ i(r, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ i(u, {
|
|
84
|
+
placeholder: "Search students...",
|
|
85
|
+
value: p,
|
|
86
|
+
onChange: (e) => m(e.target.value),
|
|
87
|
+
className: "pl-10"
|
|
88
|
+
})]
|
|
89
|
+
}), /* @__PURE__ */ i("div", {
|
|
90
|
+
className: "flex gap-1",
|
|
91
|
+
children: [
|
|
92
|
+
"all",
|
|
93
|
+
"active",
|
|
94
|
+
"at_risk",
|
|
95
|
+
"inactive"
|
|
96
|
+
].map((e) => /* @__PURE__ */ i(s, {
|
|
97
|
+
variant: h === e ? "default" : "outline",
|
|
98
|
+
size: "sm",
|
|
99
|
+
className: "capitalize",
|
|
100
|
+
onClick: () => g(e),
|
|
101
|
+
children: e === "at_risk" ? "At Risk" : e
|
|
102
|
+
}, e))
|
|
103
|
+
})]
|
|
104
|
+
}),
|
|
105
|
+
/* @__PURE__ */ i(c, { children: /* @__PURE__ */ i(l, {
|
|
106
|
+
className: "p-0",
|
|
107
|
+
children: /* @__PURE__ */ i("div", {
|
|
108
|
+
className: "overflow-x-auto",
|
|
109
|
+
children: /* @__PURE__ */ a("table", {
|
|
110
|
+
className: "w-full",
|
|
111
|
+
children: [/* @__PURE__ */ i("thead", { children: /* @__PURE__ */ a("tr", {
|
|
112
|
+
className: "border-b bg-muted/50",
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ i("th", {
|
|
115
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
116
|
+
children: "Student"
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ i("th", {
|
|
119
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
120
|
+
children: "Courses"
|
|
121
|
+
}),
|
|
122
|
+
/* @__PURE__ */ i("th", {
|
|
123
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
124
|
+
children: "Progress"
|
|
125
|
+
}),
|
|
126
|
+
/* @__PURE__ */ i("th", {
|
|
127
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
128
|
+
children: "Grade"
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ i("th", {
|
|
131
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
132
|
+
children: "Last Active"
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ i("th", {
|
|
135
|
+
className: "text-left text-xs font-medium text-muted-foreground p-3",
|
|
136
|
+
children: "Status"
|
|
137
|
+
})
|
|
138
|
+
]
|
|
139
|
+
}) }), /* @__PURE__ */ i("tbody", { children: _.map((e) => /* @__PURE__ */ a("tr", {
|
|
140
|
+
className: "border-b hover:bg-muted/30 transition-colors",
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ i("td", {
|
|
143
|
+
className: "p-3",
|
|
144
|
+
children: /* @__PURE__ */ a("div", {
|
|
145
|
+
className: "flex items-center gap-2",
|
|
146
|
+
children: [/* @__PURE__ */ i("div", {
|
|
147
|
+
className: "w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-bold",
|
|
148
|
+
children: e.avatar
|
|
149
|
+
}), /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("p", {
|
|
150
|
+
className: "text-sm font-medium",
|
|
151
|
+
children: e.name
|
|
152
|
+
}), /* @__PURE__ */ i("p", {
|
|
153
|
+
className: "text-xs text-muted-foreground",
|
|
154
|
+
children: e.email
|
|
155
|
+
})] })]
|
|
156
|
+
})
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ i("td", {
|
|
159
|
+
className: "p-3 text-sm",
|
|
160
|
+
children: e.enrolledCourses
|
|
161
|
+
}),
|
|
162
|
+
/* @__PURE__ */ i("td", {
|
|
163
|
+
className: "p-3",
|
|
164
|
+
children: /* @__PURE__ */ a("div", {
|
|
165
|
+
className: "flex items-center gap-2",
|
|
166
|
+
children: [/* @__PURE__ */ i("div", {
|
|
167
|
+
className: "h-2 w-24 rounded-full bg-muted",
|
|
168
|
+
children: /* @__PURE__ */ i("div", {
|
|
169
|
+
className: "h-2 rounded-full bg-primary",
|
|
170
|
+
style: { width: `${e.overallProgress}%` }
|
|
171
|
+
})
|
|
172
|
+
}), /* @__PURE__ */ a("span", {
|
|
173
|
+
className: "text-xs font-medium",
|
|
174
|
+
children: [e.overallProgress, "%"]
|
|
175
|
+
})]
|
|
176
|
+
})
|
|
177
|
+
}),
|
|
178
|
+
/* @__PURE__ */ i("td", {
|
|
179
|
+
className: "p-3 text-sm font-medium",
|
|
180
|
+
children: e.averageGrade
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ i("td", {
|
|
183
|
+
className: "p-3 text-sm text-muted-foreground",
|
|
184
|
+
children: e.lastActive
|
|
185
|
+
}),
|
|
186
|
+
/* @__PURE__ */ i("td", {
|
|
187
|
+
className: "p-3",
|
|
188
|
+
children: /* @__PURE__ */ i(o, {
|
|
189
|
+
className: `text-xs ${d[e.status]}`,
|
|
190
|
+
children: e.status.replace("_", " ")
|
|
191
|
+
})
|
|
192
|
+
})
|
|
193
|
+
]
|
|
194
|
+
}, e.id)) })]
|
|
195
|
+
})
|
|
196
|
+
})
|
|
197
|
+
}) })
|
|
198
|
+
]
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
//#endregion
|
|
202
|
+
export { f as TeachingStudentsPage };
|
|
203
|
+
|
|
204
|
+
//# sourceMappingURL=TeachingStudentsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeachingStudentsPage.js","names":[],"sources":["../../../src/buildmyiq/pages/TeachingStudentsPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Badge, Button, Card, CardContent, Input } from '@burdenoff/fe-libs/ui';\nimport { Users, Search, Download } from 'lucide-react';\nimport { useBuildMyIQStore } from '../store/buildmyiqStore';\n\nconst statusColors: Record<string, string> = {\n active: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400',\n inactive: 'bg-gray-100 text-gray-700 dark:bg-gray-900/30 dark:text-gray-400',\n at_risk: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400',\n};\n\nexport function TeachingStudentsPage() {\n const { students } = useBuildMyIQStore();\n const [search, setSearch] = useState('');\n const [statusFilter, setStatusFilter] = useState('all');\n\n const filtered = students.filter((s) => {\n const matchesSearch =\n s.name.toLowerCase().includes(search.toLowerCase()) ||\n s.email.toLowerCase().includes(search.toLowerCase());\n const matchesStatus = statusFilter === 'all' || s.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n const active = students.filter((s) => s.status === 'active').length;\n const atRisk = students.filter((s) => s.status === 'at_risk').length;\n const inactive = students.filter((s) => s.status === 'inactive').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\">Students</h1>\n <p className=\"text-sm text-muted-foreground\">Monitor and manage your students</p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n Export\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 Students</p>\n <p className=\"text-2xl font-bold\">{students.length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Active</p>\n <p className=\"text-2xl font-bold text-green-600\">{active}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">At Risk</p>\n <p className=\"text-2xl font-bold text-yellow-600\">{atRisk}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"text-sm text-muted-foreground\">Inactive</p>\n <p className=\"text-2xl font-bold text-gray-600\">{inactive}</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 students...\"\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', 'active', 'at_risk', 'inactive'].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 === 'at_risk' ? 'At Risk' : 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 Student\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Courses\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Progress\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">Grade</th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Last Active\n </th>\n <th className=\"text-left text-xs font-medium text-muted-foreground p-3\">\n Status\n </th>\n </tr>\n </thead>\n <tbody>\n {filtered.map((student) => (\n <tr key={student.id} className=\"border-b hover:bg-muted/30 transition-colors\">\n <td className=\"p-3\">\n <div className=\"flex items-center gap-2\">\n <div className=\"w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-bold\">\n {student.avatar}\n </div>\n <div>\n <p className=\"text-sm font-medium\">{student.name}</p>\n <p className=\"text-xs text-muted-foreground\">{student.email}</p>\n </div>\n </div>\n </td>\n <td className=\"p-3 text-sm\">{student.enrolledCourses}</td>\n <td className=\"p-3\">\n <div className=\"flex items-center gap-2\">\n <div className=\"h-2 w-24 rounded-full bg-muted\">\n <div\n className=\"h-2 rounded-full bg-primary\"\n style={{ width: `${student.overallProgress}%` }}\n />\n </div>\n <span className=\"text-xs font-medium\">{student.overallProgress}%</span>\n </div>\n </td>\n <td className=\"p-3 text-sm font-medium\">{student.averageGrade}</td>\n <td className=\"p-3 text-sm text-muted-foreground\">{student.lastActive}</td>\n <td className=\"p-3\">\n <Badge className={`text-xs ${statusColors[student.status]}`}>\n {student.status.replace('_', ' ')}\n </Badge>\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,6 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
import { BuildMyIQRootProps } from '../types';
|
|
3
|
+
|
|
4
|
+
export declare const useBuildMyIQ: () => BuildMyIQRootProps;
|
|
5
|
+
export declare const BuildMyIQProvider: FC<PropsWithChildren<BuildMyIQRootProps>>;
|
|
6
|
+
//# sourceMappingURL=BuildMyIQProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildMyIQProvider.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/providers/BuildMyIQProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMnD,eAAO,MAAM,YAAY,0BAIxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAsBvE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createContext as e, useContext as t, useMemo as n } from "react";
|
|
2
|
+
import { MemoryRouter as r } from "react-router-dom";
|
|
3
|
+
import { QueryClient as i, QueryClientProvider as a } from "@tanstack/react-query";
|
|
4
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
5
|
+
//#region src/buildmyiq/providers/BuildMyIQProvider.tsx
|
|
6
|
+
var s = e(null), c = () => {
|
|
7
|
+
let e = t(s);
|
|
8
|
+
if (!e) throw Error("useBuildMyIQ must be used within BuildMyIQProvider");
|
|
9
|
+
return e;
|
|
10
|
+
}, l = ({ children: e, ...t }) => {
|
|
11
|
+
let c = /* @__PURE__ */ o(a, {
|
|
12
|
+
client: n(() => new i({ defaultOptions: { queries: {
|
|
13
|
+
retry: 1,
|
|
14
|
+
refetchOnWindowFocus: !1,
|
|
15
|
+
staleTime: 300 * 1e3
|
|
16
|
+
} } }), []),
|
|
17
|
+
children: /* @__PURE__ */ o(s.Provider, {
|
|
18
|
+
value: t,
|
|
19
|
+
children: e
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
return t.basePath ? c : /* @__PURE__ */ o(r, { children: c });
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { l as BuildMyIQProvider, c as useBuildMyIQ };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=BuildMyIQProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildMyIQProvider.js","names":[],"sources":["../../../src/buildmyiq/providers/BuildMyIQProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { BuildMyIQRootProps } from '../types';\n\ntype BuildMyIQContextValue = BuildMyIQRootProps;\n\nconst BuildMyIQContext = createContext<BuildMyIQContextValue | null>(null);\n\nexport const useBuildMyIQ = () => {\n const context = useContext(BuildMyIQContext);\n if (!context) throw new Error('useBuildMyIQ must be used within BuildMyIQProvider');\n return context;\n};\n\nexport const BuildMyIQProvider: FC<PropsWithChildren<BuildMyIQRootProps>> = ({\n children,\n ...props\n}) => {\n const queryClient = useMemo(\n () =>\n new QueryClient({\n defaultOptions: {\n queries: { retry: 1, refetchOnWindowFocus: false, staleTime: 5 * 60 * 1000 },\n },\n }),\n []\n );\n\n const content = (\n <QueryClientProvider client={queryClient}>\n <BuildMyIQContext.Provider value={props}>{children}</BuildMyIQContext.Provider>\n </QueryClientProvider>\n );\n\n if (props.basePath) return content;\n return <MemoryRouter>{content}</MemoryRouter>;\n};\n"],"mappings":";;;;;AAQA,IAAM,IAAmB,EAA4C,KAAK,EAE7D,UAAqB;CAChC,IAAM,IAAU,EAAW,EAAiB;AAC5C,KAAI,CAAC,EAAS,OAAU,MAAM,qDAAqD;AACnF,QAAO;GAGI,KAAgE,EAC3E,aACA,GAAG,QACC;CAWJ,IAAM,IACJ,kBAAC,GAAD;EAAqB,QAXH,QAEhB,IAAI,EAAY,EACd,gBAAgB,EACd,SAAS;GAAE,OAAO;GAAG,sBAAsB;GAAO,WAAW,MAAS;GAAM,EAC7E,EACF,CAAC,EACJ,EAAE,CACH;YAIG,kBAAC,EAAiB,UAAlB;GAA2B,OAAO;GAAQ;GAAqC,CAAA;EAC3D,CAAA;AAIxB,QADI,EAAM,WAAiB,IACpB,kBAAC,GAAD,EAAA,UAAe,GAAuB,CAAA"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
export interface Course {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
instructor: string;
|
|
6
|
+
category: string;
|
|
7
|
+
level: 'Beginner' | 'Intermediate' | 'Advanced';
|
|
8
|
+
duration: string;
|
|
9
|
+
students: number;
|
|
10
|
+
rating: number;
|
|
11
|
+
progress?: number;
|
|
12
|
+
price: number;
|
|
13
|
+
lessons: number;
|
|
14
|
+
assessments: number;
|
|
15
|
+
status: 'published' | 'draft' | 'archived';
|
|
16
|
+
tags: string[];
|
|
17
|
+
modules: CourseModule[];
|
|
18
|
+
lastUpdated: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CourseModule {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
lessons: Lesson[];
|
|
24
|
+
}
|
|
25
|
+
export interface Lesson {
|
|
26
|
+
id: string;
|
|
27
|
+
title: string;
|
|
28
|
+
type: 'video' | 'reading' | 'exercise' | 'quiz';
|
|
29
|
+
duration: string;
|
|
30
|
+
completed: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface Student {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
email: string;
|
|
36
|
+
avatar: string;
|
|
37
|
+
enrolledCourses: number;
|
|
38
|
+
overallProgress: number;
|
|
39
|
+
averageGrade: string;
|
|
40
|
+
lastActive: string;
|
|
41
|
+
status: 'active' | 'inactive' | 'at_risk';
|
|
42
|
+
}
|
|
43
|
+
export interface Instructor {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
email: string;
|
|
47
|
+
department: string;
|
|
48
|
+
courses: number;
|
|
49
|
+
students: number;
|
|
50
|
+
rating: number;
|
|
51
|
+
specialization: string;
|
|
52
|
+
}
|
|
53
|
+
export interface Assessment {
|
|
54
|
+
id: string;
|
|
55
|
+
title: string;
|
|
56
|
+
course: string;
|
|
57
|
+
courseId: string;
|
|
58
|
+
type: 'exam' | 'quiz' | 'assignment';
|
|
59
|
+
dueDate: string;
|
|
60
|
+
duration: number | null;
|
|
61
|
+
questions: number;
|
|
62
|
+
totalPoints: number;
|
|
63
|
+
status: 'published' | 'draft' | 'grading';
|
|
64
|
+
submissions: number;
|
|
65
|
+
totalStudents: number;
|
|
66
|
+
averageScore: number | null;
|
|
67
|
+
}
|
|
68
|
+
export interface QuizQuestion {
|
|
69
|
+
id: string;
|
|
70
|
+
question: string;
|
|
71
|
+
type: 'multiple_choice' | 'short_answer' | 'essay' | 'true_false';
|
|
72
|
+
options?: string[];
|
|
73
|
+
correctAnswer: string;
|
|
74
|
+
points: number;
|
|
75
|
+
course: string;
|
|
76
|
+
topic: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ForumTopic {
|
|
79
|
+
id: string;
|
|
80
|
+
title: string;
|
|
81
|
+
author: string;
|
|
82
|
+
course: string;
|
|
83
|
+
replies: number;
|
|
84
|
+
views: number;
|
|
85
|
+
lastReply: string;
|
|
86
|
+
pinned: boolean;
|
|
87
|
+
category: string;
|
|
88
|
+
}
|
|
89
|
+
export interface Announcement {
|
|
90
|
+
id: string;
|
|
91
|
+
title: string;
|
|
92
|
+
content: string;
|
|
93
|
+
author: string;
|
|
94
|
+
course: string;
|
|
95
|
+
priority: 'high' | 'medium' | 'low';
|
|
96
|
+
timestamp: string;
|
|
97
|
+
unread: boolean;
|
|
98
|
+
pinned: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface GradeEntry {
|
|
101
|
+
id: string;
|
|
102
|
+
studentId: string;
|
|
103
|
+
studentName: string;
|
|
104
|
+
courseId: string;
|
|
105
|
+
courseName: string;
|
|
106
|
+
assessmentTitle: string;
|
|
107
|
+
score: number;
|
|
108
|
+
maxScore: number;
|
|
109
|
+
grade: string;
|
|
110
|
+
submittedAt: string;
|
|
111
|
+
status: 'graded' | 'pending' | 'in_progress';
|
|
112
|
+
}
|
|
113
|
+
export interface LessonPlan {
|
|
114
|
+
id: string;
|
|
115
|
+
title: string;
|
|
116
|
+
course: string;
|
|
117
|
+
courseId: string;
|
|
118
|
+
objectives: string[];
|
|
119
|
+
duration: string;
|
|
120
|
+
materials: string[];
|
|
121
|
+
status: 'published' | 'draft';
|
|
122
|
+
lastUpdated: string;
|
|
123
|
+
grade: string;
|
|
124
|
+
}
|
|
125
|
+
export interface CalendarEvent {
|
|
126
|
+
id: string;
|
|
127
|
+
title: string;
|
|
128
|
+
date: string;
|
|
129
|
+
time: string;
|
|
130
|
+
type: 'lecture' | 'exam' | 'assignment' | 'lab' | 'office_hours';
|
|
131
|
+
course: string;
|
|
132
|
+
location: string;
|
|
133
|
+
}
|
|
134
|
+
export interface OverviewMetric {
|
|
135
|
+
label: string;
|
|
136
|
+
value: string;
|
|
137
|
+
trend: string;
|
|
138
|
+
}
|
|
139
|
+
export interface WorkItem {
|
|
140
|
+
id: string;
|
|
141
|
+
title: string;
|
|
142
|
+
status: 'active' | 'planned' | 'at_risk' | 'completed';
|
|
143
|
+
owner: string;
|
|
144
|
+
updatedAt: string;
|
|
145
|
+
}
|
|
146
|
+
export interface GradingQueueItem {
|
|
147
|
+
id: string;
|
|
148
|
+
studentName: string;
|
|
149
|
+
studentAvatar: string;
|
|
150
|
+
assignment: string;
|
|
151
|
+
course: string;
|
|
152
|
+
type: 'assignment' | 'quiz' | 'project';
|
|
153
|
+
priority: 'high' | 'medium' | 'low';
|
|
154
|
+
status: 'pending' | 'in_review';
|
|
155
|
+
submittedDate: string;
|
|
156
|
+
dueDate: string;
|
|
157
|
+
}
|
|
158
|
+
interface BuildMyIQState {
|
|
159
|
+
metrics: OverviewMetric[];
|
|
160
|
+
workItems: WorkItem[];
|
|
161
|
+
selectedView: string;
|
|
162
|
+
courses: Course[];
|
|
163
|
+
students: Student[];
|
|
164
|
+
instructors: Instructor[];
|
|
165
|
+
assessments: Assessment[];
|
|
166
|
+
quizQuestions: QuizQuestion[];
|
|
167
|
+
forumTopics: ForumTopic[];
|
|
168
|
+
announcements: Announcement[];
|
|
169
|
+
grades: GradeEntry[];
|
|
170
|
+
lessonPlans: LessonPlan[];
|
|
171
|
+
calendarEvents: CalendarEvent[];
|
|
172
|
+
gradingQueue: GradingQueueItem[];
|
|
173
|
+
setSelectedView: (view: string) => void;
|
|
174
|
+
setWorkItems: (items: WorkItem[]) => void;
|
|
175
|
+
addCourse: (course: Course) => void;
|
|
176
|
+
updateCourse: (id: string, updates: Partial<Course>) => void;
|
|
177
|
+
addStudent: (student: Student) => void;
|
|
178
|
+
addAssessment: (assessment: Assessment) => void;
|
|
179
|
+
addAnnouncement: (announcement: Announcement) => void;
|
|
180
|
+
markAnnouncementRead: (id: string) => void;
|
|
181
|
+
addGradeEntry: (entry: GradeEntry) => void;
|
|
182
|
+
updateGradeStatus: (id: string, status: GradeEntry['status']) => void;
|
|
183
|
+
addForumTopic: (topic: ForumTopic) => void;
|
|
184
|
+
addLessonPlan: (plan: LessonPlan) => void;
|
|
185
|
+
addCalendarEvent: (event: CalendarEvent) => void;
|
|
186
|
+
}
|
|
187
|
+
export declare const useBuildMyIQStore: import('zustand').UseBoundStore<import('zustand').StoreApi<BuildMyIQState>>;
|
|
188
|
+
export {};
|
|
189
|
+
//# sourceMappingURL=buildmyiqStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildmyiqStore.d.ts","sourceRoot":"","sources":["../../../src/buildmyiq/store/buildmyiqStore.ts"],"names":[],"mappings":"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"}
|