@hydralms/components 0.2.0 → 0.3.1

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 (302) hide show
  1. package/dist/StudentProfile-BPsZBaJj.cjs +1 -0
  2. package/dist/StudentProfile-Cw2p-RZn.js +3273 -0
  3. package/dist/assessment-toolbar/question-navigator.d.ts +1 -1
  4. package/dist/assessment-toolbar/timer-display.d.ts +1 -1
  5. package/dist/common/index.d.ts +2 -1
  6. package/dist/common/pagination.d.ts +26 -0
  7. package/dist/common/types.d.ts +1 -0
  8. package/dist/components.css +1 -1
  9. package/dist/content/audio-player.d.ts +22 -0
  10. package/dist/content/code-block.d.ts +30 -0
  11. package/dist/content/embed-block.d.ts +28 -0
  12. package/dist/content/index.d.ts +6 -0
  13. package/dist/content/types.d.ts +24 -0
  14. package/dist/curriculum/course-card.d.ts +51 -0
  15. package/dist/curriculum/index.d.ts +2 -0
  16. package/dist/curriculum/types.d.ts +2 -2
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.js +495 -439
  20. package/dist/license/HydraContext.d.ts +16 -0
  21. package/dist/license/ProBadge.d.ts +6 -0
  22. package/dist/license/index.d.ts +7 -0
  23. package/dist/license/tiers.d.ts +6 -0
  24. package/dist/license/useHydraLicense.d.ts +6 -0
  25. package/dist/license/validate.d.ts +13 -0
  26. package/dist/license/withProGate.d.ts +6 -0
  27. package/dist/modules/AssignmentModule/AssignmentModule.d.ts +4 -7
  28. package/dist/modules/AssignmentModule/types.d.ts +5 -1
  29. package/dist/modules/CertificateModule/CertificateModule.d.ts +4 -8
  30. package/dist/modules/CertificateModule/types.d.ts +6 -4
  31. package/dist/modules/CourseCatalogModule/CourseCatalogModule.d.ts +5 -0
  32. package/dist/modules/CourseCatalogModule/types.d.ts +43 -0
  33. package/dist/modules/CoursePlayer/CoursePlayer.d.ts +4 -1
  34. package/dist/modules/DiscussionModule/DiscussionModule.d.ts +4 -7
  35. package/dist/modules/ExamModule/ExamModule.d.ts +4 -7
  36. package/dist/modules/ExamModule/types.d.ts +5 -14
  37. package/dist/modules/FlashcardLab/FlashcardLab.d.ts +4 -1
  38. package/dist/modules/FlashcardLab/types.d.ts +2 -0
  39. package/dist/modules/GradeCenterModule/GradeCenterModule.d.ts +4 -8
  40. package/dist/modules/GradeCenterModule/types.d.ts +2 -0
  41. package/dist/modules/QuizModule/QuizModule.d.ts +4 -1
  42. package/dist/modules/QuizModule/types.d.ts +5 -14
  43. package/dist/modules/StudentDashboardModule/StudentDashboardModule.d.ts +5 -0
  44. package/dist/modules/StudentDashboardModule/types.d.ts +54 -0
  45. package/dist/modules/StudentProfileModule/StudentProfileModule.d.ts +5 -0
  46. package/dist/modules/StudentProfileModule/types.d.ts +43 -0
  47. package/dist/modules/SurveyModule/SurveyModule.d.ts +4 -6
  48. package/dist/modules/SurveyModule/types.d.ts +2 -0
  49. package/dist/modules/_shared/assessment-intro.d.ts +16 -0
  50. package/dist/modules/_shared/assessment-results.d.ts +23 -0
  51. package/dist/modules/_shared/types.d.ts +10 -0
  52. package/dist/modules/_shared/use-timer.d.ts +9 -0
  53. package/dist/modules/index.d.ts +6 -0
  54. package/dist/modules.cjs +1 -1
  55. package/dist/modules.js +1267 -854
  56. package/dist/progress/types.d.ts +2 -0
  57. package/dist/provider/HydraProvider.d.ts +5 -1
  58. package/dist/questions/choice.d.ts +1 -1
  59. package/dist/questions/confidence-indicator.d.ts +37 -0
  60. package/dist/questions/essay.d.ts +1 -1
  61. package/dist/questions/fill-in-the-blank.d.ts +1 -1
  62. package/dist/questions/hotspot.d.ts +1 -1
  63. package/dist/questions/index.d.ts +2 -0
  64. package/dist/questions/inline-choice.d.ts +1 -1
  65. package/dist/questions/matching.d.ts +1 -1
  66. package/dist/questions/multiple-choice.d.ts +1 -1
  67. package/dist/questions/numeric.d.ts +1 -1
  68. package/dist/questions/ordering.d.ts +1 -1
  69. package/dist/questions/question-renderer.d.ts +1 -1
  70. package/dist/questions/scenario.d.ts +1 -1
  71. package/dist/questions/spreadsheet.d.ts +1 -1
  72. package/dist/questions/true-false.d.ts +1 -1
  73. package/dist/sections/AdaptiveLearningPath/AdaptiveLearningPath.d.ts +5 -0
  74. package/dist/sections/AdaptiveLearningPath/path-connector.d.ts +8 -0
  75. package/dist/sections/AdaptiveLearningPath/path-milestone-marker.d.ts +7 -0
  76. package/dist/sections/AdaptiveLearningPath/path-node-card.d.ts +10 -0
  77. package/dist/sections/AdaptiveLearningPath/path-skill-bar.d.ts +8 -0
  78. package/dist/sections/AdaptiveLearningPath/types.d.ts +136 -0
  79. package/dist/sections/AnnouncementFeed/AnnouncementFeed.d.ts +1 -1
  80. package/dist/sections/AnnouncementFeed/types.d.ts +15 -1
  81. package/dist/sections/AssessmentReview/AssessmentReview.d.ts +1 -1
  82. package/dist/sections/AssessmentReview/types.d.ts +6 -0
  83. package/dist/sections/AssignmentSubmission/AssignmentSubmission.d.ts +1 -1
  84. package/dist/sections/AssignmentSubmission/types.d.ts +6 -0
  85. package/dist/sections/CertificateViewer/CertificateViewer.d.ts +1 -1
  86. package/dist/sections/CertificateViewer/certificate-variants.d.ts +42 -0
  87. package/dist/sections/CertificateViewer/types.d.ts +6 -0
  88. package/dist/sections/ContentAuthoringStudio/ContentAuthoringStudio.d.ts +5 -0
  89. package/dist/sections/ContentAuthoringStudio/block-editor-item.d.ts +14 -0
  90. package/dist/sections/ContentAuthoringStudio/block-type-picker.d.ts +12 -0
  91. package/dist/sections/ContentAuthoringStudio/types.d.ts +67 -0
  92. package/dist/sections/CourseCatalog/CourseCatalog.d.ts +2 -0
  93. package/dist/sections/CourseCatalog/types.d.ts +80 -0
  94. package/dist/sections/CourseOutline/CourseOutline.d.ts +1 -1
  95. package/dist/sections/CourseOutline/types.d.ts +6 -0
  96. package/dist/sections/DiscussionThread/DiscussionThread.d.ts +1 -1
  97. package/dist/sections/DiscussionThread/types.d.ts +6 -0
  98. package/dist/sections/EnrollmentWizard/EnrollmentWizard.d.ts +2 -0
  99. package/dist/sections/EnrollmentWizard/types.d.ts +66 -0
  100. package/dist/sections/ExamSession/ExamSession.d.ts +1 -1
  101. package/dist/sections/ExamSession/types.d.ts +6 -0
  102. package/dist/sections/FlashcardStudySession/FlashcardStudySession.d.ts +1 -1
  103. package/dist/sections/FlashcardStudySession/types.d.ts +6 -0
  104. package/dist/sections/ForumBoard/ForumBoard.d.ts +1 -1
  105. package/dist/sections/ForumBoard/types.d.ts +14 -0
  106. package/dist/sections/GradebookTable/GradebookTable.d.ts +1 -1
  107. package/dist/sections/GradebookTable/types.d.ts +14 -0
  108. package/dist/sections/LecturePlayer/LecturePlayer.d.ts +1 -1
  109. package/dist/sections/LecturePlayer/types.d.ts +8 -0
  110. package/dist/sections/LessonPage/LessonPage.d.ts +1 -1
  111. package/dist/sections/LessonPage/types.d.ts +6 -0
  112. package/dist/sections/PracticeQuiz/PracticeQuiz.d.ts +1 -1
  113. package/dist/sections/PracticeQuiz/types.d.ts +6 -0
  114. package/dist/sections/ProgressDashboard/ProgressDashboard.d.ts +1 -1
  115. package/dist/sections/ProgressDashboard/types.d.ts +6 -0
  116. package/dist/sections/QuizSession/QuizSession.d.ts +1 -1
  117. package/dist/sections/QuizSession/types.d.ts +6 -0
  118. package/dist/sections/RequirementsChecklist/RequirementsChecklist.d.ts +1 -1
  119. package/dist/sections/RequirementsChecklist/types.d.ts +6 -0
  120. package/dist/sections/ResourceLibrary/ResourceLibrary.d.ts +1 -1
  121. package/dist/sections/ResourceLibrary/types.d.ts +15 -1
  122. package/dist/sections/RubricView/RubricView.d.ts +1 -1
  123. package/dist/sections/RubricView/types.d.ts +6 -0
  124. package/dist/sections/ScrollableQuiz/ScrollableQuiz.d.ts +1 -1
  125. package/dist/sections/ScrollableQuiz/types.d.ts +6 -0
  126. package/dist/sections/StudentProfile/StudentProfile.d.ts +2 -0
  127. package/dist/sections/StudentProfile/types.d.ts +98 -0
  128. package/dist/sections/SurveyForm/SurveyForm.d.ts +1 -1
  129. package/dist/sections/SurveyForm/types.d.ts +6 -0
  130. package/dist/sections/_shared/merge-answers.d.ts +9 -0
  131. package/dist/sections/_shared/section-shell.d.ts +20 -0
  132. package/dist/sections/_shared/use-assessment-session.d.ts +30 -0
  133. package/dist/sections/index.d.ts +10 -0
  134. package/dist/sections.cjs +1 -1
  135. package/dist/sections.js +1361 -307
  136. package/dist/ui/badge.d.ts +1 -1
  137. package/dist/ui/index.d.ts +2 -0
  138. package/dist/ui/progress.d.ts +1 -1
  139. package/dist/ui/rich-text-editor.d.ts +3 -1
  140. package/dist/ui/toast.d.ts +43 -0
  141. package/dist/utils/debounce.d.ts +5 -1
  142. package/dist/utils/pick-palette-color.d.ts +19 -0
  143. package/dist/video/types.d.ts +15 -0
  144. package/dist/video/video-player.d.ts +1 -1
  145. package/dist/withProGate-BJdu1T9Y.cjs +2 -0
  146. package/dist/withProGate-BvFc7Jwy.js +4975 -0
  147. package/package.json +57 -226
  148. package/src/assessment-toolbar/question-navigator.tsx +10 -5
  149. package/src/assessment-toolbar/timer-display.tsx +4 -3
  150. package/src/assessment-toolbar/use-countdown.ts +1 -1
  151. package/src/common/empty-state.tsx +1 -0
  152. package/src/common/index.ts +2 -0
  153. package/src/common/pagination.tsx +135 -0
  154. package/src/common/search-input.tsx +2 -1
  155. package/src/common/types.ts +2 -0
  156. package/src/content/attachment-list.tsx +2 -0
  157. package/src/content/audio-player.tsx +196 -0
  158. package/src/content/code-block.tsx +113 -0
  159. package/src/content/content-block.tsx +64 -0
  160. package/src/content/embed-block.tsx +78 -0
  161. package/src/content/file-upload-zone.tsx +10 -0
  162. package/src/content/index.ts +6 -0
  163. package/src/content/types.ts +5 -0
  164. package/src/curriculum/course-card.tsx +199 -0
  165. package/src/curriculum/curriculum-item.tsx +3 -3
  166. package/src/curriculum/curriculum-tree.tsx +20 -13
  167. package/src/curriculum/index.ts +2 -0
  168. package/src/curriculum/types.ts +2 -2
  169. package/src/flashcards/flashcard.tsx +28 -8
  170. package/src/index.ts +3 -0
  171. package/src/license/HydraContext.tsx +62 -0
  172. package/src/license/ProBadge.tsx +43 -0
  173. package/src/license/index.ts +7 -0
  174. package/src/license/tiers.ts +34 -0
  175. package/src/license/useHydraLicense.ts +10 -0
  176. package/src/license/validate.ts +90 -0
  177. package/src/license/withProGate.tsx +21 -0
  178. package/src/modules/AssignmentModule/AssignmentModule.tsx +17 -8
  179. package/src/modules/AssignmentModule/types.ts +5 -1
  180. package/src/modules/CertificateModule/CertificateModule.tsx +21 -9
  181. package/src/modules/CertificateModule/types.ts +6 -4
  182. package/src/modules/CourseCatalogModule/CourseCatalogModule.tsx +126 -0
  183. package/src/modules/CourseCatalogModule/types.ts +47 -0
  184. package/src/modules/CoursePlayer/CoursePlayer.tsx +39 -22
  185. package/src/modules/DiscussionModule/DiscussionModule.tsx +57 -22
  186. package/src/modules/ExamModule/ExamModule.tsx +64 -198
  187. package/src/modules/ExamModule/types.ts +5 -14
  188. package/src/modules/FlashcardLab/FlashcardLab.tsx +10 -5
  189. package/src/modules/FlashcardLab/types.ts +2 -0
  190. package/src/modules/GradeCenterModule/GradeCenterModule.tsx +7 -2
  191. package/src/modules/GradeCenterModule/types.ts +2 -0
  192. package/src/modules/QuizModule/QuizModule.tsx +49 -169
  193. package/src/modules/QuizModule/types.ts +5 -15
  194. package/src/modules/StudentDashboardModule/StudentDashboardModule.tsx +117 -0
  195. package/src/modules/StudentDashboardModule/types.ts +56 -0
  196. package/src/modules/StudentProfileModule/StudentProfileModule.tsx +289 -0
  197. package/src/modules/StudentProfileModule/types.ts +45 -0
  198. package/src/modules/SurveyModule/SurveyModule.tsx +9 -4
  199. package/src/modules/SurveyModule/types.ts +2 -0
  200. package/src/modules/_shared/assessment-intro.tsx +75 -0
  201. package/src/modules/_shared/assessment-results.tsx +133 -0
  202. package/src/modules/_shared/types.ts +11 -0
  203. package/src/modules/_shared/use-timer.ts +49 -0
  204. package/src/modules/index.ts +9 -0
  205. package/src/progress/achievement-badge.tsx +3 -3
  206. package/src/progress/grade-indicator.tsx +9 -1
  207. package/src/progress/progress-ring.tsx +2 -1
  208. package/src/progress/stat-card.tsx +14 -2
  209. package/src/progress/types.ts +2 -0
  210. package/src/provider/HydraProvider.tsx +15 -6
  211. package/src/questions/choice.tsx +13 -6
  212. package/src/questions/confidence-indicator.tsx +107 -0
  213. package/src/questions/essay.tsx +6 -4
  214. package/src/questions/fill-in-the-blank.tsx +8 -4
  215. package/src/questions/hotspot.tsx +4 -4
  216. package/src/questions/index.ts +2 -0
  217. package/src/questions/inline-choice.tsx +5 -4
  218. package/src/questions/matching.tsx +5 -4
  219. package/src/questions/multiple-choice.tsx +13 -6
  220. package/src/questions/numeric.tsx +8 -4
  221. package/src/questions/ordering.tsx +12 -4
  222. package/src/questions/question-renderer.tsx +3 -2
  223. package/src/questions/scenario.tsx +4 -4
  224. package/src/questions/spreadsheet.tsx +5 -4
  225. package/src/questions/true-false.tsx +13 -6
  226. package/src/sections/AdaptiveLearningPath/AdaptiveLearningPath.tsx +251 -0
  227. package/src/sections/AdaptiveLearningPath/path-connector.tsx +27 -0
  228. package/src/sections/AdaptiveLearningPath/path-milestone-marker.tsx +50 -0
  229. package/src/sections/AdaptiveLearningPath/path-node-card.tsx +166 -0
  230. package/src/sections/AdaptiveLearningPath/path-skill-bar.tsx +49 -0
  231. package/src/sections/AdaptiveLearningPath/types.ts +159 -0
  232. package/src/sections/AnnouncementFeed/AnnouncementFeed.tsx +64 -8
  233. package/src/sections/AnnouncementFeed/types.ts +15 -1
  234. package/src/sections/AssessmentReview/AssessmentReview.tsx +37 -0
  235. package/src/sections/AssessmentReview/types.ts +6 -0
  236. package/src/sections/AssignmentSubmission/AssignmentSubmission.tsx +37 -1
  237. package/src/sections/AssignmentSubmission/types.ts +6 -0
  238. package/src/sections/CertificateViewer/CertificateViewer.tsx +29 -227
  239. package/src/sections/CertificateViewer/certificate-variants.tsx +170 -0
  240. package/src/sections/CertificateViewer/types.ts +6 -0
  241. package/src/sections/ContentAuthoringStudio/ContentAuthoringStudio.tsx +289 -0
  242. package/src/sections/ContentAuthoringStudio/block-editor-item.tsx +487 -0
  243. package/src/sections/ContentAuthoringStudio/block-type-picker.tsx +123 -0
  244. package/src/sections/ContentAuthoringStudio/types.ts +67 -0
  245. package/src/sections/CourseCatalog/CourseCatalog.tsx +220 -0
  246. package/src/sections/CourseCatalog/types.ts +76 -0
  247. package/src/sections/CourseOutline/CourseOutline.tsx +41 -0
  248. package/src/sections/CourseOutline/types.ts +6 -0
  249. package/src/sections/DiscussionThread/DiscussionThread.tsx +42 -1
  250. package/src/sections/DiscussionThread/types.ts +6 -0
  251. package/src/sections/EnrollmentWizard/EnrollmentWizard.tsx +343 -0
  252. package/src/sections/EnrollmentWizard/types.ts +65 -0
  253. package/src/sections/ExamSession/ExamSession.tsx +100 -94
  254. package/src/sections/ExamSession/types.ts +6 -0
  255. package/src/sections/FlashcardStudySession/FlashcardStudySession.tsx +53 -36
  256. package/src/sections/FlashcardStudySession/types.ts +6 -0
  257. package/src/sections/ForumBoard/ForumBoard.tsx +67 -7
  258. package/src/sections/ForumBoard/types.ts +14 -0
  259. package/src/sections/GradebookTable/GradebookTable.tsx +54 -1
  260. package/src/sections/GradebookTable/types.ts +14 -0
  261. package/src/sections/LecturePlayer/LecturePlayer.tsx +63 -37
  262. package/src/sections/LecturePlayer/types.ts +8 -0
  263. package/src/sections/LessonPage/LessonPage.tsx +34 -6
  264. package/src/sections/LessonPage/types.ts +6 -0
  265. package/src/sections/PracticeQuiz/PracticeQuiz.tsx +106 -74
  266. package/src/sections/PracticeQuiz/types.ts +6 -0
  267. package/src/sections/ProgressDashboard/ProgressDashboard.tsx +64 -10
  268. package/src/sections/ProgressDashboard/types.ts +6 -0
  269. package/src/sections/QuizSession/QuizSession.tsx +71 -82
  270. package/src/sections/QuizSession/types.ts +6 -0
  271. package/src/sections/RequirementsChecklist/RequirementsChecklist.tsx +41 -1
  272. package/src/sections/RequirementsChecklist/types.ts +6 -0
  273. package/src/sections/ResourceLibrary/ResourceLibrary.tsx +64 -8
  274. package/src/sections/ResourceLibrary/types.ts +15 -1
  275. package/src/sections/RubricView/RubricView.tsx +37 -1
  276. package/src/sections/RubricView/types.ts +6 -0
  277. package/src/sections/ScrollableQuiz/ScrollableQuiz.tsx +36 -15
  278. package/src/sections/ScrollableQuiz/types.ts +6 -0
  279. package/src/sections/StudentProfile/StudentProfile.tsx +279 -0
  280. package/src/sections/StudentProfile/types.ts +99 -0
  281. package/src/sections/SurveyForm/SurveyForm.tsx +32 -5
  282. package/src/sections/SurveyForm/types.ts +6 -0
  283. package/src/sections/_shared/merge-answers.ts +22 -0
  284. package/src/sections/_shared/section-shell.tsx +64 -0
  285. package/src/sections/_shared/use-assessment-session.ts +125 -0
  286. package/src/sections/index.ts +40 -0
  287. package/src/social/user-avatar.tsx +9 -5
  288. package/src/styles/globals.css +39 -41
  289. package/src/ui/badge.tsx +8 -0
  290. package/src/ui/index.ts +2 -0
  291. package/src/ui/progress.tsx +4 -0
  292. package/src/ui/rich-text-editor.tsx +10 -0
  293. package/src/ui/rich-text-toolbar.tsx +2 -1
  294. package/src/ui/toast.tsx +170 -0
  295. package/src/utils/debounce.ts +8 -2
  296. package/src/utils/pick-palette-color.ts +33 -0
  297. package/src/video/types.ts +16 -0
  298. package/src/video/video-player.tsx +27 -6
  299. package/dist/ForumBoard-CHXU3mjC.js +0 -2207
  300. package/dist/ForumBoard-d1w5-r6n.cjs +0 -1
  301. package/dist/tabs-DRM2Iq_J.cjs +0 -172
  302. package/dist/tabs-Wf3h_Cx3.js +0 -21580
@@ -0,0 +1,30 @@
1
+ import { QuestionNavigatorItem } from '../../assessment-toolbar/types';
2
+ import { QuestionData, QuestionMaterial, SessionAnswer } from '../../questions/types';
3
+ export interface UseAssessmentSessionOptions {
4
+ questions: QuestionData[];
5
+ initialAnswers?: SessionAnswer[];
6
+ onAnswerChange?: (answers: SessionAnswer[]) => void;
7
+ questionMaterials?: QuestionMaterial[];
8
+ }
9
+ export declare function useAssessmentSession({ questions, initialAnswers, onAnswerChange, questionMaterials, }: UseAssessmentSessionOptions): {
10
+ currentIndex: number;
11
+ currentQuestion: QuestionData;
12
+ sessionAnswers: SessionAnswer[];
13
+ flaggedUids: Set<string>;
14
+ materialsOpen: boolean;
15
+ setMaterialsOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>;
16
+ questionAreaRef: import('react').RefObject<HTMLDivElement | null>;
17
+ currentQuestionAnswers: SessionAnswer[];
18
+ currentMaterials: QuestionMaterial[];
19
+ navigatorItems: QuestionNavigatorItem[];
20
+ handleAnswer: (rawAnswers: {
21
+ uid: string;
22
+ content?: string;
23
+ }[]) => void;
24
+ handleNavigate: (uid: string) => void;
25
+ handleToggleFlag: (uid: string) => void;
26
+ goNext: () => void;
27
+ goPrevious: () => void;
28
+ hasNext: boolean;
29
+ hasPrevious: boolean;
30
+ };
@@ -38,3 +38,13 @@ export { RequirementsChecklist } from './RequirementsChecklist/RequirementsCheck
38
38
  export type { RequirementsChecklistProps, Requirement, } from './RequirementsChecklist/types';
39
39
  export { ForumBoard } from './ForumBoard/ForumBoard';
40
40
  export type { ForumBoardProps, ForumTopic, ForumSortOrder } from './ForumBoard/types';
41
+ export { EnrollmentWizard } from './EnrollmentWizard/EnrollmentWizard';
42
+ export type { EnrollmentWizardProps, EnrollmentCourse, Prerequisite, } from './EnrollmentWizard/types';
43
+ export { CourseCatalog } from './CourseCatalog/CourseCatalog';
44
+ export type { CourseCatalogProps, CourseInfo, } from './CourseCatalog/types';
45
+ export { StudentProfile } from './StudentProfile/StudentProfile';
46
+ export type { StudentProfileProps, StudentInfo, EnrolledCourse, ProfileAchievement, ProfileCertificate, } from './StudentProfile/types';
47
+ export { ContentAuthoringStudio } from './ContentAuthoringStudio/ContentAuthoringStudio';
48
+ export type { ContentAuthoringStudioProps, AuthoringBlock, } from './ContentAuthoringStudio/types';
49
+ export { AdaptiveLearningPath } from './AdaptiveLearningPath/AdaptiveLearningPath';
50
+ export type { AdaptiveLearningPathProps, PathNode, PathNodeStatus, PathNodeType, PathSkill, PathMilestone, PathBranch, PathProgress, } from './AdaptiveLearningPath/types';
package/dist/sections.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./ForumBoard-d1w5-r6n.cjs"),e=require("react/jsx-runtime"),u=require("react"),s=require("./tabs-DRM2Iq_J.cjs"),L=require("lucide-react");function E({questions:a,initialAnswers:h=[],onSubmit:j,onAnswerChange:b,showNavigator:C=!0,showQuestionNumbers:T=!0,questionGroups:g,isSubmitting:N=!1,readOnly:p=!1,className:z,style:k}){var U;const[f,w]=u.useState(h),[i,m]=u.useState(((U=a[0])==null?void 0:U.uid)??null),o=u.useRef(new Map),x=u.useMemo(()=>{const n=new Map;for(const r of f){const l=n.get(r.uid);l?l.push(r):n.set(r.uid,[r])}return n},[f]),P=u.useMemo(()=>a.filter(n=>x.has(n.uid)).length,[a,x]);u.useEffect(()=>{const n=new IntersectionObserver(r=>{for(const l of r)l.isIntersecting&&m(l.target.getAttribute("data-question-uid"))},{rootMargin:"-20% 0px -60% 0px"});return o.current.forEach(r=>n.observe(r)),()=>n.disconnect()},[a]);const Q=u.useCallback((n,r)=>{r?o.current.set(n,r):o.current.delete(n)},[]);function t(n,r){const l=r.map(c=>({uid:n,answerUid:c.uid,content:c.content}));w(c=>{const R=[...c.filter(F=>F.uid!==n),...l];return b==null||b(R),R})}function v(n){var r;(r=o.current.get(n))==null||r.scrollIntoView({behavior:"smooth",block:"center"})}const y=u.useMemo(()=>{if(!g)return[{label:null,questions:a}];const n=g.map(c=>({label:c.label,questions:c.questionUids.map(S=>a.find(R=>R.uid===S)).filter(Boolean)})),r=new Set(g.flatMap(c=>c.questionUids)),l=a.filter(c=>!r.has(c.uid));return l.length>0&&n.push({label:null,questions:l}),n},[a,g]);let A=0;return e.jsxs("div",{className:s.cn("flex gap-3",z),style:k,children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[y.map((n,r)=>e.jsxs("div",{children:[n.label&&e.jsx("p",{className:s.cn("text-lg font-semibold mb-2 text-foreground",r>0&&"mt-4"),children:n.label}),n.questions.map(l=>{const c=A++;return e.jsx(s.Card,{ref:S=>Q(l.uid,S),"data-question-uid":l.uid,className:"mb-2",children:e.jsxs(s.CardContent,{className:"pt-6",children:[T&&e.jsxs("p",{className:"font-semibold text-sm text-muted-foreground mb-1",children:["Question ",c+1]}),e.jsx(s.QuestionRenderer,{question:l,sessionAnswers:x.get(l.uid)??[],onAnswer:S=>t(l.uid,S),readOnly:p})]})},l.uid)})]},n.label??`ungrouped-${r}`)),e.jsx(s.Separator,{className:"my-3"}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("span",{className:"text-sm text-muted-foreground",children:[P," of ",a.length," answered"]}),e.jsx(s.Button,{onClick:()=>j(f),disabled:N||p,children:N?"Submitting...":"Submit"})]})]}),C&&e.jsx(s.Card,{className:"hidden md:block w-50 shrink-0 sticky top-4 self-start",children:e.jsxs(s.CardContent,{className:"p-3",children:[e.jsx("p",{className:"font-semibold text-sm mb-1 text-foreground",children:"Questions"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:a.map((n,r)=>{const l=x.has(n.uid),c=i===n.uid;return e.jsx("button",{type:"button",className:s.cn("inline-flex items-center justify-center text-xs font-medium min-w-9 px-1 py-0.5 rounded-full cursor-pointer border transition-colors",c?"bg-primary border-primary text-primary-foreground":l?"border-success text-success bg-transparent":"border-border text-foreground bg-transparent hover:bg-muted"),onClick:()=>v(n.uid),children:r+1},n.uid)})})]})})]})}const B={pdf:"document",document:"document",video:"video",link:"link",image:"document",archive:"document",other:"document"};function I({resources:a,categories:h,onResourceClick:j,onDownload:b,viewMode:C="list",allowViewToggle:T=!0,showSearch:g=!0,emptyMessage:N="No resources found",readOnly:p=!1,className:z,style:k}){const[f,w]=u.useState(""),[i,m]=u.useState(null),[o,x]=u.useState(C),P=u.useMemo(()=>{let t=a;if(i&&(t=t.filter(v=>v.categoryUid===i)),f.trim()){const v=f.toLowerCase();t=t.filter(y=>{var A;return y.name.toLowerCase().includes(v)||((A=y.description)==null?void 0:A.toLowerCase().includes(v))})}return t},[a,i,f]);function Q(t){const v=B[t.type]??"document";return e.jsxs("div",{className:s.cn("flex items-center gap-3 px-3 py-2",!p&&"cursor-pointer hover:bg-muted",p&&"opacity-70"),onClick:()=>!p&&j(t),children:[e.jsx("div",{className:"min-w-10",children:e.jsx(s.LearningObjectIcon,{type:v,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm text-foreground",children:t.name}),(t.description||t.fileSize!=null)&&e.jsx("span",{className:"block text-xs text-muted-foreground",children:[t.description,t.fileSize!=null&&s.formatFileSize(t.fileSize)].filter(Boolean).join(" · ")})]}),b&&e.jsxs(s.Tooltip,{children:[e.jsx(s.TooltipTrigger,{children:e.jsx(s.Button,{variant:"ghost",size:"icon-xs","aria-label":"Download",onClick:y=>{y.stopPropagation(),b(t)},children:e.jsx(L.Download,{size:16})})}),e.jsx(s.TooltipContent,{children:"Download"})]})]},t.uid)}return e.jsxs("div",{className:z,style:k,children:[e.jsxs("div",{className:"flex gap-2 items-center mb-2",children:[g&&e.jsx("div",{className:"flex-1 max-w-80",children:e.jsx(s.SearchInput,{value:f,onChange:w,placeholder:"Search resources...",size:"small"})}),T&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsxs(s.Tooltip,{children:[e.jsx(s.TooltipTrigger,{children:e.jsx(s.Button,{variant:"ghost",size:"icon-xs","aria-label":"List view",className:s.cn(o==="list"&&"text-primary"),onClick:()=>x("list"),children:e.jsx(L.List,{size:18})})}),e.jsx(s.TooltipContent,{children:"List view"})]}),e.jsxs(s.Tooltip,{children:[e.jsx(s.TooltipTrigger,{children:e.jsx(s.Button,{variant:"ghost",size:"icon-xs","aria-label":"Grid view",className:s.cn(o==="grid"&&"text-primary"),onClick:()=>x("grid"),children:e.jsx(L.Grid,{size:18})})}),e.jsx(s.TooltipContent,{children:"Grid view"})]})]})]}),h&&h.length>0&&e.jsx(s.Tabs,{value:i??"all",onValueChange:t=>m(t==="all"?null:t),className:"mb-2",children:e.jsxs(s.TabsList,{children:[e.jsx(s.TabsTrigger,{value:"all",children:"All"}),h.map(t=>e.jsx(s.TabsTrigger,{value:t.uid,children:t.label},t.uid))]})}),P.length===0?e.jsx(s.EmptyState,{title:N,description:"Try adjusting your search or filter."}):o==="list"?e.jsx(s.Card,{children:P.map(Q)}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(240px,1fr))] gap-2",children:P.map(t=>e.jsx(s.Card,{className:s.cn("transition-colors",!p&&"cursor-pointer hover:border-primary"),onClick:()=>!p&&j(t),children:e.jsxs(s.CardContent,{className:"pt-4 pb-4",children:[e.jsxs("div",{className:"flex gap-1 items-center mb-1",children:[e.jsx(s.LearningObjectIcon,{type:B[t.type]??"document",size:20}),e.jsx("span",{className:"font-semibold text-sm text-foreground truncate",children:t.name})]}),t.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-1 truncate",children:t.description}),t.fileSize!=null&&e.jsx("span",{className:"text-xs text-muted-foreground",children:s.formatFileSize(t.fileSize)})]})},t.uid))})]})}function M({announcements:a,onMarkRead:h,onSelect:j,showAvatars:b=!0,previewLines:C=3,emptyMessage:T="No announcements yet",readOnly:g=!1,className:N,style:p}){const[z,k]=u.useState(new Set),f=u.useMemo(()=>{const i=a.filter(o=>o.isPinned),m=a.filter(o=>!o.isPinned);return[...i,...m]},[a]);function w(i){k(o=>{const x=new Set(o);return x.has(i)?x.delete(i):x.add(i),x});const m=a.find(o=>o.uid===i);m&&!m.isRead&&(h==null||h(i))}return f.length===0?e.jsx("div",{className:N,style:p,children:e.jsx(s.EmptyState,{title:T})}):e.jsx("div",{className:s.cn("flex flex-col gap-2",N),style:p,children:f.map(i=>{const m=z.has(i.uid);return e.jsx(s.Card,{className:s.cn(i.isRead&&"opacity-85",j&&"cursor-pointer",i.isPinned&&"border-l-4 border-l-warning"),onClick:()=>j&&!g?j(i):w(i.uid),children:e.jsx(s.CardContent,{className:"py-4",children:e.jsxs("div",{className:"flex gap-1.5 items-start",children:[b&&e.jsx(s.UserAvatar,{displayName:i.author.displayName,avatarUrl:i.author.avatarUrl,role:i.author.role,size:"medium"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1 mb-0.5",children:[i.isPinned&&e.jsx(L.Pin,{size:14}),e.jsx("span",{className:s.cn("text-foreground",i.isRead?"font-normal":"font-semibold"),children:i.title}),!i.isRead&&e.jsx(s.Badge,{variant:"destructive",className:"text-[10px] px-1.5 py-0",children:"New"})]}),e.jsxs("span",{className:"block text-xs text-muted-foreground mb-1",children:[i.author.displayName," · ",s.formatTimestamp(i.createdAt)]}),e.jsx("span",{className:s.cn("text-sm text-foreground",!m&&"line-clamp-(--preview-lines) overflow-hidden"),style:m?void 0:{"--preview-lines":C},children:i.content}),!m&&i.content.length>200&&e.jsx(s.Button,{variant:"link",size:"xs",className:"px-0 mt-0.5 h-auto",onClick:o=>{o.stopPropagation(),w(i.uid)},children:"Read more"})]})]})})},i.uid)})})}exports.AssessmentReview=d.AssessmentReview;exports.AssignmentSubmission=d.AssignmentSubmission;exports.CertificateViewer=d.CertificateViewer;exports.CourseOutline=d.CourseOutline;exports.DiscussionThread=d.DiscussionThread;exports.ExamSession=d.ExamSession;exports.FlashcardStudySession=d.FlashcardStudySession;exports.ForumBoard=d.ForumBoard;exports.GradebookTable=d.GradebookTable;exports.LecturePlayer=d.LecturePlayer;exports.LessonPage=d.LessonPage;exports.PracticeQuiz=d.PracticeQuiz;exports.ProgressDashboard=d.ProgressDashboard;exports.QuizSession=d.QuizSession;exports.RequirementsChecklist=d.RequirementsChecklist;exports.RubricView=d.RubricView;exports.SurveyForm=d.SurveyForm;exports.AnnouncementFeed=M;exports.ResourceLibrary=I;exports.ScrollableQuiz=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("./StudentProfile-BPsZBaJj.cjs"),e=require("react/jsx-runtime"),c=require("react"),t=require("./withProGate-BJdu1T9Y.cjs"),n=require("lucide-react"),X=[];function Z({questions:s,initialAnswers:r=[],onSubmit:a,onAnswerChange:i,showNavigator:l=!0,showQuestionNumbers:T=!0,questionGroups:N,isSubmitting:h=!1,readOnly:g=!1,isLoading:y,error:A,onRetry:x,className:d,style:u}){var B;const[S,v]=c.useState(r),[L,C]=c.useState(((B=s[0])==null?void 0:B.uid)??null),k=c.useRef(new Map),I=c.useMemo(()=>{const m=new Map;for(const f of S){const w=m.get(f.uid);w?w.push(f):m.set(f.uid,[f])}return m},[S]),j=c.useMemo(()=>s.filter(m=>I.has(m.uid)).length,[s,I]);c.useEffect(()=>{const m=new IntersectionObserver(f=>{for(const w of f)w.isIntersecting&&C(w.target.getAttribute("data-question-uid"))},{rootMargin:"-20% 0px -60% 0px"});return k.current.forEach(f=>m.observe(f)),()=>m.disconnect()},[s]);const D=c.useCallback((m,f)=>{f?k.current.set(m,f):k.current.delete(m)},[]),F=c.useRef(i);F.current=i;const _=c.useCallback((m,f)=>{v(w=>b.mergeSessionAnswers(w,m,f,F.current))},[]);function R(m){var f;(f=k.current.get(m))==null||f.scrollIntoView({behavior:"smooth",block:"center"})}const U=c.useMemo(()=>{if(!N)return[{label:null,questions:s}];const m=N.map(E=>({label:E.label,questions:E.questionUids.map(M=>s.find(p=>p.uid===M)).filter(Boolean)})),f=new Set(N.flatMap(E=>E.questionUids)),w=s.filter(E=>!f.has(E.uid));return w.length>0&&m.push({label:null,questions:w}),m},[s,N]);let o=0;return e.jsx(b.SectionShell,{isLoading:y,error:A,onRetry:x,className:d,style:u,skeleton:e.jsxs(e.Fragment,{children:[e.jsx(t.Skeleton,{className:"h-32 w-full"}),e.jsx(t.Skeleton,{className:"h-32 w-full"}),e.jsx(t.Skeleton,{className:"h-32 w-full"})]}),children:e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[U.map((m,f)=>e.jsxs("div",{children:[m.label&&e.jsx("p",{className:t.cn("text-lg font-semibold mb-2 text-foreground",f>0&&"mt-4"),children:m.label}),m.questions.map(w=>{const E=o++;return e.jsx(t.Card,{ref:M=>D(w.uid,M),"data-question-uid":w.uid,className:"mb-2",children:e.jsxs(t.CardContent,{className:"pt-6",children:[T&&e.jsxs("p",{className:"font-semibold text-sm text-muted-foreground mb-1",children:["Question ",E+1]}),e.jsx(t.QuestionRenderer,{question:w,sessionAnswers:I.get(w.uid)??X,onAnswer:M=>_(w.uid,M),readOnly:g})]})},w.uid)})]},m.label??`ungrouped-${f}`)),e.jsx(t.Separator,{className:"my-3"}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("span",{className:"text-sm text-muted-foreground",children:[j," of ",s.length," answered"]}),e.jsx(t.Button,{onClick:()=>a(S),disabled:h||g,children:h?"Submitting...":"Submit"})]})]}),l&&e.jsx(t.Card,{className:"hidden md:block w-50 shrink-0 sticky top-4 self-start",children:e.jsxs(t.CardContent,{className:"p-3",children:[e.jsx("p",{className:"font-semibold text-sm mb-1 text-foreground",children:"Questions"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:s.map((m,f)=>{const w=I.has(m.uid),E=L===m.uid;return e.jsx("button",{type:"button",className:t.cn("inline-flex items-center justify-center text-xs font-medium min-w-9 px-1 py-0.5 rounded-full cursor-pointer border transition-colors",E?"bg-primary border-primary text-primary-foreground":w?"border-success text-success bg-transparent":"border-border text-foreground bg-transparent hover:bg-muted"),onClick:()=>R(m.uid),children:f+1},m.uid)})})]})})]})})}const G={pdf:"document",document:"document",video:"video",link:"link",image:"document",archive:"document",other:"document"};function ee({resources:s,categories:r,onResourceClick:a,onDownload:i,viewMode:l="list",allowViewToggle:T=!0,showSearch:N=!0,emptyMessage:h="No resources found",readOnly:g=!1,isLoading:y,error:A,onRetry:x,pageSize:d,currentPage:u=1,totalItems:S,onPageChange:v,className:L,style:C}){const[k,I]=c.useState(""),[j,D]=c.useState(null),[F,_]=c.useState(l),R=c.useMemo(()=>{let o=s;if(j&&(o=o.filter(B=>B.categoryUid===j)),k.trim()){const B=k.toLowerCase();o=o.filter(m=>{var f;return m.name.toLowerCase().includes(B)||((f=m.description)==null?void 0:f.toLowerCase().includes(B))})}return o},[s,j,k]);if(y)return e.jsxs("div",{className:t.cn("space-y-4",L),style:C,children:[e.jsx(t.Skeleton,{className:"h-9 w-full"}),e.jsx("div",{className:"grid grid-cols-3 gap-4",children:Array.from({length:6}).map((o,B)=>e.jsx(t.Skeleton,{className:"h-32 w-full rounded-lg"},B))})]});if(A)return e.jsx("div",{className:t.cn("py-12",L),style:C,children:e.jsx(t.EmptyState,{icon:e.jsx(n.AlertCircle,{className:"size-10 text-destructive"}),title:"Something went wrong",description:A,action:x?e.jsx(t.Button,{variant:"outline",onClick:x,children:"Retry"}):void 0})});function U(o){const B=G[o.type]??"document";return e.jsxs("div",{className:t.cn("flex items-center gap-3 px-3 py-2",!g&&a&&"cursor-pointer hover:bg-muted",(g||!a)&&"opacity-70"),onClick:()=>!g&&(a==null?void 0:a(o)),children:[e.jsx("div",{className:"min-w-10",children:e.jsx(t.LearningObjectIcon,{type:B,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm text-foreground",children:o.name}),(o.description||o.fileSize!=null)&&e.jsx("span",{className:"block text-xs text-muted-foreground",children:[o.description,o.fileSize!=null&&t.formatFileSize(o.fileSize)].filter(Boolean).join(" · ")})]}),i&&e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsx(t.Button,{variant:"ghost",size:"icon-xs","aria-label":"Download",onClick:m=>{m.stopPropagation(),i(o)},children:e.jsx(n.Download,{size:16})})}),e.jsx(t.TooltipContent,{children:"Download"})]})]},o.uid)}return e.jsxs("div",{className:L,style:C,children:[e.jsxs("div",{className:"flex gap-2 items-center mb-2",children:[N&&e.jsx("div",{className:"flex-1 max-w-80",children:e.jsx(t.SearchInput,{value:k,onChange:I,placeholder:"Search resources...",size:"small"})}),T&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsx(t.Button,{variant:"ghost",size:"icon-xs","aria-label":"List view",className:t.cn(F==="list"&&"text-primary"),onClick:()=>_("list"),children:e.jsx(n.List,{size:18})})}),e.jsx(t.TooltipContent,{children:"List view"})]}),e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsx(t.Button,{variant:"ghost",size:"icon-xs","aria-label":"Grid view",className:t.cn(F==="grid"&&"text-primary"),onClick:()=>_("grid"),children:e.jsx(n.Grid,{size:18})})}),e.jsx(t.TooltipContent,{children:"Grid view"})]})]})]}),r&&r.length>0&&e.jsx(t.Tabs,{value:j??"all",onValueChange:o=>D(o==="all"?null:o),className:"mb-2",children:e.jsxs(t.TabsList,{children:[e.jsx(t.TabsTrigger,{value:"all",children:"All"}),r.map(o=>e.jsx(t.TabsTrigger,{value:o.uid,children:o.label},o.uid))]})}),R.length===0?e.jsx(t.EmptyState,{title:h,description:"Try adjusting your search or filter."}):F==="list"?e.jsx(t.Card,{children:(v&&d?R.slice((u-1)*d,u*d):R).map(U)}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(240px,1fr))] gap-2",children:(v&&d?R.slice((u-1)*d,u*d):R).map(o=>e.jsx(t.Card,{className:t.cn("transition-colors",!g&&a&&"cursor-pointer hover:border-primary"),onClick:()=>!g&&(a==null?void 0:a(o)),children:e.jsxs(t.CardContent,{className:"pt-4 pb-4",children:[e.jsxs("div",{className:"flex gap-1 items-center mb-1",children:[e.jsx(t.LearningObjectIcon,{type:G[o.type]??"document",size:20}),e.jsx("span",{className:"font-semibold text-sm text-foreground truncate",children:o.name})]}),o.description&&e.jsx("p",{className:"text-sm text-muted-foreground mb-1 truncate",children:o.description}),o.fileSize!=null&&e.jsx("span",{className:"text-xs text-muted-foreground",children:t.formatFileSize(o.fileSize)})]})},o.uid))}),v&&d&&R.length>0&&e.jsx(t.Pagination,{currentPage:u,totalPages:Math.ceil((S??R.length)/d),onPageChange:v,className:"mt-4"})]})}const $=[{type:"richtext",label:"Rich Text",description:"Formatted text content"},{type:"heading",label:"Heading",description:"Section heading"},{type:"image",label:"Image",description:"Image with caption"},{type:"video",label:"Video",description:"Video player"},{type:"code",label:"Code",description:"Code snippet"},{type:"callout",label:"Callout",description:"Info, warning, or tip"},{type:"audio",label:"Audio",description:"Audio player"},{type:"embed",label:"Embed",description:"External embed"},{type:"table",label:"Table",description:"Data table"},{type:"file",label:"Files",description:"File attachments"},{type:"divider",label:"Divider",description:"Horizontal separator"}],q={richtext:n.Type,heading:n.Heading,image:n.Image,video:n.Video,code:n.Code,callout:n.MessageSquare,audio:n.Music,embed:n.Globe,table:n.Table,file:n.Paperclip,divider:n.Minus};function te(s){return q[s]??n.Type}function se(s){var r;return((r=$.find(a=>a.type===s))==null?void 0:r.label)??s}function H({onSelect:s,allowedTypes:r,className:a}){const[i,l]=c.useState(!1),T=c.useRef(null),N=r?$.filter(h=>r.includes(h.type)):$;return c.useEffect(()=>{if(!i)return;function h(g){T.current&&!T.current.contains(g.target)&&l(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[i]),e.jsxs("div",{className:t.cn("relative",a),ref:T,children:[e.jsxs(t.Button,{variant:"ghost",size:"sm",onClick:()=>l(!i),className:"text-muted-foreground hover:text-foreground gap-1 h-7 text-xs",children:[e.jsx(n.Plus,{className:"size-3.5"}),"Add block"]}),i&&e.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-full mt-1 z-50 w-72 rounded-lg border border-border bg-background shadow-lg p-2",children:e.jsx("div",{className:"grid grid-cols-3 gap-1",children:N.map(({type:h,label:g})=>{const y=q[h]??n.Type;return e.jsxs("button",{type:"button",onClick:()=>{s(h),l(!1)},className:"flex flex-col items-center gap-1 rounded-md p-2 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors",children:[e.jsx(y,{className:"size-4"}),e.jsx("span",{children:g})]},h)})})})]})}const ae=c.memo(function({item:r,onChange:a,onRemove:i,onDuplicate:l,onToggleCollapse:T,dragProps:N,isDragging:h,isDragOver:g}){const{id:y,block:A,collapsed:x}=r,d=te(A.type),u=se(A.type),S=c.useCallback(k=>a(y,k),[y,a]),v=c.useCallback(()=>i(y),[y,i]),L=c.useCallback(()=>l(y),[y,l]),C=c.useCallback(()=>T(y),[y,T]);return e.jsxs("div",{...N,className:t.cn("group rounded-lg border border-border bg-background transition-all",h&&"opacity-50",g&&"border-primary shadow-sm"),children:[e.jsxs("div",{className:"flex items-center gap-1 px-2 py-1.5 border-b border-border/50",children:[e.jsx("span",{className:"cursor-grab text-muted-foreground/50 hover:text-muted-foreground","aria-label":"Drag to reorder",children:e.jsx(n.GripVertical,{className:"size-4"})}),e.jsx("button",{type:"button",onClick:C,className:"text-muted-foreground hover:text-foreground p-0.5",children:x?e.jsx(n.ChevronRight,{className:"size-3.5"}):e.jsx(n.ChevronDown,{className:"size-3.5"})}),e.jsxs(t.Badge,{variant:"secondary",className:"text-[10px] gap-1 px-1.5 py-0",children:[e.jsx(d,{className:"size-3"}),u]}),e.jsx("div",{className:"flex-1"}),e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:L,className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100 text-muted-foreground",children:e.jsx(n.Copy,{className:"size-3"})}),e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:v,className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100 text-destructive",children:e.jsx(n.Trash2,{className:"size-3"})})]}),!x&&e.jsx("div",{className:"p-3",children:e.jsx(re,{block:A,onChange:S})})]})});function re({block:s,onChange:r}){switch(s.type){case"richtext":return e.jsx(t.RichTextEditor,{value:s.html,onChange:a=>r({...s,html:a}),placeholder:"Write your content..."});case"heading":return e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("select",{value:s.level??2,onChange:a=>r({...s,level:Number(a.target.value)}),className:"h-9 rounded-md border border-input bg-transparent px-2 text-sm",children:[e.jsx("option",{value:1,children:"H1"}),e.jsx("option",{value:2,children:"H2"}),e.jsx("option",{value:3,children:"H3"})]}),e.jsx(t.Input,{value:s.text,onChange:a=>r({...s,text:a.target.value}),placeholder:"Heading text...",className:"flex-1"})]});case"image":return e.jsxs("div",{className:"space-y-2",children:[e.jsx(t.Input,{value:s.src,onChange:a=>r({...s,src:a.target.value}),placeholder:"Image URL..."}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(t.Input,{value:s.alt??"",onChange:a=>r({...s,alt:a.target.value}),placeholder:"Alt text...",className:"flex-1"}),e.jsx(t.Input,{value:s.caption??"",onChange:a=>r({...s,caption:a.target.value}),placeholder:"Caption...",className:"flex-1"})]}),s.src&&e.jsx("img",{src:s.src,alt:s.alt??"",className:"max-h-40 rounded-md object-cover"})]});case"video":return e.jsxs("div",{className:"space-y-2",children:[e.jsx(t.Input,{value:s.video.src??"",onChange:a=>r({...s,video:{...s.video,src:a.target.value}}),placeholder:"Video URL..."}),e.jsx(t.Input,{value:s.video.title??"",onChange:a=>r({...s,video:{...s.video,title:a.target.value}}),placeholder:"Video title..."})]});case"code":return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(t.Input,{value:s.language??"",onChange:a=>r({...s,language:a.target.value}),placeholder:"Language (e.g. javascript)",className:"w-40"}),e.jsx(t.Input,{value:s.filename??"",onChange:a=>r({...s,filename:a.target.value}),placeholder:"Filename (optional)",className:"flex-1"})]}),e.jsx("textarea",{value:s.code,onChange:a=>r({...s,code:a.target.value}),placeholder:"Paste your code...",className:"w-full min-h-24 rounded-md border border-input bg-muted p-3 font-mono text-sm resize-y focus:outline-none focus:ring-2 focus:ring-ring",spellCheck:!1})]});case"callout":return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("select",{value:s.variant??"info",onChange:a=>r({...s,variant:a.target.value}),className:"h-9 rounded-md border border-input bg-transparent px-2 text-sm",children:[e.jsx("option",{value:"info",children:"Info"}),e.jsx("option",{value:"warning",children:"Warning"}),e.jsx("option",{value:"tip",children:"Tip"})]}),e.jsx(t.Input,{value:s.content,onChange:a=>r({...s,content:a.target.value}),placeholder:"Callout text..."})]});case"audio":return e.jsxs("div",{className:"space-y-2",children:[e.jsx(t.Input,{value:s.src,onChange:a=>r({...s,src:a.target.value}),placeholder:"Audio URL..."}),e.jsx(t.Input,{value:s.title??"",onChange:a=>r({...s,title:a.target.value}),placeholder:"Title (optional)"})]});case"embed":return e.jsxs("div",{className:"space-y-2",children:[e.jsx(t.Input,{value:s.src,onChange:a=>r({...s,src:a.target.value}),placeholder:"Embed URL..."}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(t.Input,{value:s.title??"",onChange:a=>r({...s,title:a.target.value}),placeholder:"Title (optional)",className:"flex-1"}),e.jsxs("select",{value:s.aspectRatio??"16/9",onChange:a=>r({...s,aspectRatio:a.target.value}),className:"h-9 rounded-md border border-input bg-transparent px-2 text-sm",children:[e.jsx("option",{value:"16/9",children:"16:9"}),e.jsx("option",{value:"4/3",children:"4:3"}),e.jsx("option",{value:"1/1",children:"1:1"})]})]})]});case"table":return e.jsx(ne,{block:s,onChange:r});case"file":return e.jsxs("p",{className:"text-sm text-muted-foreground",children:["File attachments are managed via the ",e.jsx("code",{className:"text-xs",children:"files"})," prop.",s.files.length>0&&e.jsxs("span",{className:"ml-1",children:["(",s.files.length," file",s.files.length!==1&&"s"," attached)"]})]});case"divider":return e.jsx(t.Separator,{});case"question":case"flashcards":return e.jsxs("p",{className:"text-sm text-muted-foreground italic",children:["Interactive ",s.type," blocks are configured via props."]});case"custom":return e.jsx("p",{className:"text-sm text-muted-foreground italic",children:"Custom blocks are not editable in the authoring studio."});default:return null}}function ne({block:s,onChange:r}){const{headers:a,rows:i,caption:l}=s;function T(x,d){const u=[...a];u[x]=d,r({...s,headers:u})}function N(x,d,u){const S=i.map(v=>[...v]);S[x][d]=u,r({...s,rows:S})}function h(){r({...s,headers:[...a,""],rows:i.map(x=>[...x,""])})}function g(x){a.length<=1||r({...s,headers:a.filter((d,u)=>u!==x),rows:i.map(d=>d.filter((u,S)=>S!==x))})}function y(){r({...s,rows:[...i,a.map(()=>"")]})}function A(x){r({...s,rows:i.filter((d,u)=>u!==x)})}return e.jsxs("div",{className:"space-y-2",children:[e.jsx(t.Input,{value:l??"",onChange:x=>r({...s,caption:x.target.value}),placeholder:"Table caption (optional)",className:"text-sm"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[a.map((x,d)=>e.jsx("th",{className:"p-1",children:e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(t.Input,{value:x,onChange:u=>T(d,u.target.value),placeholder:`Col ${d+1}`,className:"h-7 text-xs font-semibold"}),a.length>1&&e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:()=>g(d),className:"h-7 w-7 p-0 text-destructive shrink-0",children:e.jsx(n.Trash2,{className:"size-3"})})]})},d)),e.jsx("th",{className:"p-1 w-8",children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:h,className:"h-7 w-7 p-0 text-muted-foreground",children:"+"})})]})}),e.jsx("tbody",{children:i.map((x,d)=>e.jsxs("tr",{children:[x.map((u,S)=>e.jsx("td",{className:"p-1",children:e.jsx(t.Input,{value:u,onChange:v=>N(d,S,v.target.value),className:"h-7 text-xs"})},S)),e.jsx("td",{className:"p-1",children:e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:()=>A(d),className:"h-7 w-7 p-0 text-destructive",children:e.jsx(n.Trash2,{className:"size-3"})})})]},d))})]})}),e.jsx(t.Button,{variant:"ghost",size:"sm",onClick:y,className:"text-xs text-muted-foreground",children:"+ Add row"})]})}let ie=0;function V(){return`ab_${++ie}_${Date.now().toString(36)}`}function le(s){return s.map(r=>({id:V(),block:r}))}function ce(s){switch(s){case"richtext":return{type:"richtext",html:""};case"heading":return{type:"heading",text:"",level:2};case"image":return{type:"image",src:"",alt:""};case"video":return{type:"video",video:{src:""}};case"code":return{type:"code",code:"",language:"javascript"};case"callout":return{type:"callout",content:"",variant:"info"};case"audio":return{type:"audio",src:""};case"embed":return{type:"embed",src:""};case"table":return{type:"table",headers:["Column 1","Column 2"],rows:[["",""]]};case"file":return{type:"file",files:[]};case"divider":return{type:"divider"};case"question":return{type:"question",question:{uid:V(),type:"multiple_choice",content:"",answers:[]}};case"flashcards":return{type:"flashcards",cards:[]};case"custom":return{type:"custom",render:null};default:return{type:"richtext",html:""}}}function oe({title:s="",blocks:r,onBlocksChange:a,onTitleChange:i,onSave:l,showPreviewToggle:T=!0,allowedBlockTypes:N,readOnly:h=!1,isLoading:g,error:y,onRetry:A,className:x,style:d}){const[u,S]=c.useState(s),[v,L]=c.useState(()=>le(r??[])),[C,k]=c.useState(h?"preview":"edit"),I=c.useMemo(()=>v.map(p=>p.block),[v]),j=c.useCallback(p=>{L(p),a==null||a(p.map(z=>z.block))},[a]),D=c.useRef(v);D.current=v;function F(p,z){const P={id:V(),block:ce(p)},Q=[...v];Q.splice(z,0,P),j(Q)}const _=c.useCallback((p,z)=>{j(D.current.map(P=>P.id===p?{...P,block:z}:P))},[j]),R=c.useCallback(p=>{j(D.current.filter(z=>z.id!==p))},[j]),U=c.useCallback(p=>{const z=D.current,P=z.findIndex(J=>J.id===p);if(P===-1)return;const Q={id:V(),block:structuredClone(z[P].block)},O=[...z];O.splice(P+1,0,Q),j(O)},[j]),o=c.useCallback(p=>{L(z=>z.map(P=>P.id===p?{...P,collapsed:!P.collapsed}:P))},[]);function B(p){S(p),i==null||i(p)}function m(){l==null||l({title:u,blocks:I})}const{getDragProps:f,dragIndex:w,dragOverIndex:E}=t.useDragReorder({items:v,onReorder:j,disabled:h||C==="preview"}),M=C==="edit"&&!h;return e.jsx(b.SectionShell,{isLoading:g,error:y,onRetry:A,className:x,style:d,skeleton:e.jsxs(e.Fragment,{children:[e.jsx(t.Skeleton,{className:"h-10 w-64"}),e.jsx(t.Skeleton,{className:"h-6 w-32"}),e.jsx(t.Skeleton,{className:"h-32 w-full"}),e.jsx(t.Skeleton,{className:"h-24 w-full"}),e.jsx(t.Skeleton,{className:"h-32 w-full"})]}),children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[M?e.jsx(t.Input,{value:u,onChange:p=>B(p.target.value),placeholder:"Lesson title...",className:"text-lg font-semibold flex-1 h-10"}):e.jsx("h2",{className:"text-xl font-bold flex-1 text-foreground",children:u||"Untitled Lesson"}),T&&!h&&e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>k(C==="edit"?"preview":"edit"),className:"gap-1.5",children:C==="edit"?e.jsxs(e.Fragment,{children:[e.jsx(n.Eye,{className:"size-3.5"})," Preview"]}):e.jsxs(e.Fragment,{children:[e.jsx(n.Pencil,{className:"size-3.5"})," Edit"]})}),l&&!h&&e.jsxs(t.Button,{size:"sm",onClick:m,className:"gap-1.5",children:[e.jsx(n.Save,{className:"size-3.5"})," Save"]})]}),M?e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex justify-center py-1",children:e.jsx(H,{onSelect:p=>F(p,0),allowedTypes:N})}),v.length===0&&e.jsx(t.EmptyState,{title:"No content blocks",description:"Click 'Add block' above to start building your lesson."}),v.map((p,z)=>e.jsxs("div",{children:[e.jsx(ae,{item:p,onChange:_,onRemove:R,onDuplicate:U,onToggleCollapse:o,dragProps:f(z),isDragging:w===z,isDragOver:E===z}),e.jsx("div",{className:"flex justify-center py-1",children:e.jsx(H,{onSelect:P=>F(P,z+1),allowedTypes:N})})]},p.id))]}):e.jsx("div",{className:"flex flex-col gap-3",children:v.length>0?v.map(p=>e.jsx(t.ContentBlock,{block:p.block,readOnly:!0},p.id)):e.jsx(t.EmptyState,{title:"No content yet",description:"Switch to edit mode to add content blocks."})})]})})}const de=t.withProGate(oe,"ContentAuthoringStudio"),ue={mastered:{label:"Mastered",variant:"success",icon:n.ShieldCheck},completed:{label:"Completed",variant:"success",icon:n.CheckCircle2},in_progress:{label:"In Progress",variant:"info",icon:n.Play},available:{label:"Available",variant:"secondary"},locked:{label:"Locked",variant:"muted",icon:n.Lock},skipped:{label:"Skipped",variant:"muted",icon:n.SkipForward}},me=c.memo(function({node:r,onClick:a,onStart:i,readOnly:l=!1,className:T}){const N=ue[r.status],h=N.icon,g=r.status!=="locked"&&!l,y=!l&&(r.status==="available"||r.recommended)&&r.status!=="locked"&&r.status!=="completed"&&r.status!=="mastered"&&i,A=c.useCallback(()=>{g&&a&&a(r.uid)},[g,a,r.uid]),x=c.useCallback(u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),a==null||a(r.uid))},[a,r.uid]),d=c.useCallback(u=>{u.stopPropagation(),i==null||i(r.uid)},[i,r.uid]);return e.jsx(t.Card,{className:t.cn("transition-all",g&&a&&"cursor-pointer hover:border-primary/50 hover:shadow-md",r.status==="in_progress"&&"border-primary ring-1 ring-primary/20",r.status==="locked"&&"opacity-60",r.status==="skipped"&&"opacity-50",r.recommended&&r.status!=="locked"&&"border-primary/40",T),onClick:g&&a?A:void 0,role:g&&a?"button":void 0,tabIndex:g&&a?0:void 0,onKeyDown:g&&a?x:void 0,children:e.jsx(t.CardContent,{className:"p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:t.cn("shrink-0 w-9 h-9 rounded-lg flex items-center justify-center",r.status==="locked"?"bg-muted text-muted-foreground":"bg-primary/10 text-primary"),children:r.icon??e.jsx(t.LearningObjectIcon,{type:r.type,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground truncate",children:r.title}),r.recommended&&r.status!=="locked"&&e.jsxs(t.Badge,{variant:"default",className:"text-[10px] px-1.5 h-5 gap-0.5",children:[e.jsx(n.Sparkles,{size:10}),"Recommended"]})]}),r.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-1",children:r.description}),e.jsxs("div",{className:"flex items-center gap-3 mt-2 flex-wrap",children:[e.jsxs(t.Badge,{variant:N.variant,className:"text-[10px] px-1.5 h-5 gap-0.5",children:[h&&e.jsx(h,{size:10}),N.label]}),r.estimatedDuration!=null&&r.estimatedDuration>0&&e.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(n.Clock,{size:12}),t.formatDuration(r.estimatedDuration)]}),r.score!=null&&e.jsxs("span",{className:"text-xs font-medium tabular-nums text-foreground",children:[r.score,"%"]})]})]}),y&&e.jsx(t.Button,{size:"sm",variant:r.recommended?"default":"outline",className:"shrink-0",onClick:d,children:r.status==="in_progress"?"Continue":"Start"})]})})})});function W({fromStatus:s,className:r}){const a=s==="mastered"||s==="completed",i=s==="in_progress";return e.jsx("div",{className:t.cn("flex justify-center",r),children:e.jsx("div",{className:t.cn("w-0.5 h-8",a&&"bg-success",i&&"bg-primary",!a&&!i&&"bg-border",s==="skipped"&&"border-l border-dashed border-muted-foreground bg-transparent")})})}const xe={default:"text-primary",gold:"text-palette-3",silver:"text-muted-foreground",bronze:"text-palette-3/70"};function K({milestone:s,className:r}){const a=s.variant??"default";return e.jsxs("div",{className:t.cn("flex items-center gap-3 py-2 px-4",!s.reached&&"opacity-50",r),children:[e.jsx("div",{className:"flex-1 h-px bg-border"}),e.jsxs("div",{className:"flex items-center gap-2",children:[s.reached?e.jsx(n.Trophy,{size:16,className:xe[a]}):e.jsx(n.Lock,{size:14,className:"text-muted-foreground"}),e.jsx("span",{className:t.cn("text-xs font-semibold whitespace-nowrap",s.reached?"text-foreground":"text-muted-foreground"),children:s.title})]}),e.jsx("div",{className:"flex-1 h-px bg-border"})]})}const pe=c.memo(function({skill:r,onClick:a,className:i}){const l=r.targetProficiency??100;return e.jsxs(t.Tooltip,{children:[e.jsx(t.TooltipTrigger,{children:e.jsxs("button",{type:"button",onClick:a?()=>a(r.uid):void 0,disabled:!a,className:t.cn("flex items-center gap-2 min-w-0 text-left",a&&"cursor-pointer hover:opacity-80",!a&&"cursor-default",i),children:[e.jsx("span",{className:"text-xs font-medium text-foreground whitespace-nowrap truncate min-w-16",children:r.name}),e.jsx(t.Progress,{value:r.proficiency,max:l,size:"sm",className:"flex-1 min-w-20"}),e.jsxs("span",{className:"text-xs tabular-nums text-muted-foreground whitespace-nowrap",children:[r.proficiency,"%"]})]})}),e.jsxs(t.TooltipContent,{children:[r.name,": ",r.proficiency,"%",l<100?` / ${l}% target`:""]})]})}),Y={beginner:{label:"Beginner",variant:"success"},intermediate:{label:"Intermediate",variant:"warning"},advanced:{label:"Advanced",variant:"destructive"}};function he({title:s,description:r,difficulty:a,nodes:i=[],progress:l,skills:T,milestones:N,onNodeClick:h,onNodeStart:g,onSkillClick:y,readOnly:A=!1,isLoading:x,error:d,onRetry:u,className:S,style:v}){const L=c.useMemo(()=>{const I=new Map;if(N)for(const j of N)I.set(j.afterNodeIndex,j);return I},[N]),C=Array.isArray(i)?i:[],k=Array.isArray(T)?T:[];return e.jsx(b.SectionShell,{isLoading:x,error:d,onRetry:u,className:S,style:v,skeleton:e.jsxs(e.Fragment,{children:[e.jsx(t.Skeleton,{className:"h-8 w-64"}),e.jsx(t.Skeleton,{className:"h-4 w-96 mt-2"}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mt-6",children:Array.from({length:4},(I,j)=>e.jsx(t.Skeleton,{className:"h-28"},j))}),e.jsx("div",{className:"mt-8 space-y-3",children:Array.from({length:5},(I,j)=>e.jsx(t.Skeleton,{className:"h-20"},j))})]}),children:e.jsxs("div",{className:S,style:v,children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(t.ProgressRing,{value:l.completionPercentage,size:64,strokeWidth:5,className:"shrink-0 text-primary"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-bold text-foreground",children:s}),r&&e.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:r})]})]}),a&&e.jsx(t.Badge,{variant:Y[a].variant,children:Y[a].label})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mt-6",children:[e.jsx(t.StatCard,{icon:e.jsx(n.Target,{}),label:"Progress",value:`${Math.round(l.completionPercentage)}%`,subtitle:"of path completed",accent:"var(--primary)"}),e.jsx(t.StatCard,{icon:e.jsx(n.BookOpen,{}),label:"Completed",value:`${l.completedNodes}/${l.totalNodes}`,subtitle:"activities",accent:"var(--success)"}),e.jsx(t.StatCard,{icon:e.jsx(n.Clock,{}),label:"Time Spent",value:t.formatDuration(l.totalTimeSpent),subtitle:"total",accent:"var(--info)"}),l.averageScore!=null?e.jsx(t.StatCard,{icon:e.jsx(n.TrendingUp,{}),label:"Avg Score",value:`${Math.round(l.averageScore)}%`,subtitle:"across activities",accent:"var(--warning)"}):l.currentStreak!=null?e.jsx(t.StatCard,{icon:e.jsx(n.Flame,{}),label:"Streak",value:`${l.currentStreak}`,subtitle:"days",accent:"var(--warning)"}):e.jsx(t.StatCard,{icon:e.jsx(n.TrendingUp,{}),label:"Remaining",value:`${l.totalNodes-l.completedNodes}`,subtitle:"activities left",accent:"var(--warning)"})]}),k.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(t.Separator,{className:"my-5"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3",children:"Skills"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-2",children:k.map(I=>e.jsx(pe,{skill:I,onClick:y},I.uid))})]})]}),e.jsx(t.Separator,{className:"my-5"}),e.jsxs("div",{className:"relative",role:"list","aria-label":`Learning path: ${l.completedNodes} of ${l.totalNodes} completed`,children:[C.map((I,j)=>e.jsxs("div",{role:"listitem",children:[j>0&&e.jsx(W,{fromStatus:C[j-1].status}),L.has(j-1)&&e.jsx(K,{milestone:L.get(j-1),className:"my-1"}),e.jsx(me,{node:I,onClick:h,onStart:g,readOnly:A})]},I.uid)),C.length>0&&L.has(C.length-1)&&e.jsxs(e.Fragment,{children:[e.jsx(W,{fromStatus:C[C.length-1].status}),e.jsx(K,{milestone:L.get(C.length-1),className:"my-1"})]})]})]})})}const ge=t.withProGate(he,"AdaptiveLearningPath");exports.AnnouncementFeed=b.AnnouncementFeed;exports.AssessmentReview=b.AssessmentReview;exports.AssignmentSubmission=b.AssignmentSubmission;exports.CertificateViewer=b.CertificateViewer;exports.CourseCatalog=b.CourseCatalog;exports.CourseOutline=b.CourseOutline;exports.DiscussionThread=b.DiscussionThread;exports.EnrollmentWizard=b.EnrollmentWizard;exports.ExamSession=b.ExamSession;exports.FlashcardStudySession=b.FlashcardStudySession;exports.ForumBoard=b.ForumBoard;exports.GradebookTable=b.GradebookTable;exports.LecturePlayer=b.LecturePlayer;exports.LessonPage=b.LessonPage;exports.PracticeQuiz=b.PracticeQuiz;exports.ProgressDashboard=b.ProgressDashboard;exports.QuizSession=b.QuizSession;exports.RequirementsChecklist=b.RequirementsChecklist;exports.RubricView=b.RubricView;exports.StudentProfile=b.StudentProfile;exports.SurveyForm=b.SurveyForm;exports.AdaptiveLearningPath=ge;exports.ContentAuthoringStudio=de;exports.ResourceLibrary=ee;exports.ScrollableQuiz=Z;