analytica-frontend-lib 1.6.21 → 1.6.22

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 (405) hide show
  1. package/dist/AccessReportModal/index.js +1 -1
  2. package/dist/AccessReportModal/index.mjs +1 -1
  3. package/dist/AccessibilityWidget/index.js +1 -1
  4. package/dist/AccessibilityWidget/index.mjs +1 -1
  5. package/dist/Accordation/index.js +1 -1
  6. package/dist/Accordation/index.mjs +1 -1
  7. package/dist/ActivitiesHistory/index.js +19 -19
  8. package/dist/ActivitiesHistory/index.mjs +18 -18
  9. package/dist/ActivityCardQuestionBanks/index.js +19 -19
  10. package/dist/ActivityCardQuestionBanks/index.mjs +18 -18
  11. package/dist/ActivityCardQuestionPreview/index.js +19 -19
  12. package/dist/ActivityCardQuestionPreview/index.mjs +18 -18
  13. package/dist/ActivityCreate/ActivityCreate.utils/index.js +3 -3
  14. package/dist/ActivityCreate/ActivityCreate.utils/index.mjs +2 -2
  15. package/dist/ActivityCreate/ActivityCreateContent/index.js +19 -19
  16. package/dist/ActivityCreate/ActivityCreateContent/index.mjs +18 -18
  17. package/dist/ActivityCreate/index.js +19 -19
  18. package/dist/ActivityCreate/index.mjs +18 -18
  19. package/dist/ActivityDetails/index.js +19 -19
  20. package/dist/ActivityDetails/index.mjs +18 -18
  21. package/dist/ActivityFilters/index.js +19 -19
  22. package/dist/ActivityFilters/index.mjs +18 -18
  23. package/dist/ActivityPageLayout/index.js +19 -19
  24. package/dist/ActivityPageLayout/index.mjs +18 -18
  25. package/dist/ActivityPreview/index.js +19 -19
  26. package/dist/ActivityPreview/index.mjs +18 -18
  27. package/dist/Alert/index.js +1 -1
  28. package/dist/Alert/index.mjs +1 -1
  29. package/dist/AlertDialog/index.js +1 -1
  30. package/dist/AlertDialog/index.mjs +1 -1
  31. package/dist/AlertManager/index.js +19 -19
  32. package/dist/AlertManager/index.mjs +18 -18
  33. package/dist/AlertManagerView/index.js +1 -1
  34. package/dist/AlertManagerView/index.mjs +1 -1
  35. package/dist/Alternative/index.js +1 -1
  36. package/dist/Alternative/index.mjs +1 -1
  37. package/dist/AnnouncementModal/index.js +1 -1
  38. package/dist/AnnouncementModal/index.mjs +1 -1
  39. package/dist/AnnouncementsGate/index.js +1 -1
  40. package/dist/AnnouncementsGate/index.mjs +1 -1
  41. package/dist/AnswerKeyModal/index.js +1 -1
  42. package/dist/AnswerKeyModal/index.mjs +1 -1
  43. package/dist/AppHeader/index.js +1 -1
  44. package/dist/AppHeader/index.mjs +1 -1
  45. package/dist/AppLayout/index.js +1 -1
  46. package/dist/AppLayout/index.mjs +1 -1
  47. package/dist/Avatar/index.js +1 -1
  48. package/dist/Avatar/index.mjs +1 -1
  49. package/dist/Badge/index.js +1 -1
  50. package/dist/Badge/index.mjs +1 -1
  51. package/dist/BreadcrumbMenu/index.js +1 -1
  52. package/dist/BreadcrumbMenu/index.mjs +1 -1
  53. package/dist/Button/index.js +1 -1
  54. package/dist/Button/index.mjs +1 -1
  55. package/dist/Calendar/index.js +1 -1
  56. package/dist/Calendar/index.mjs +1 -1
  57. package/dist/CalendarCard/index.js +1 -1
  58. package/dist/CalendarCard/index.mjs +1 -1
  59. package/dist/Card/index.js +1 -1
  60. package/dist/Card/index.mjs +1 -1
  61. package/dist/ChartComponents/index.js +1 -1
  62. package/dist/ChartComponents/index.mjs +1 -1
  63. package/dist/Chat/index.js +1 -1
  64. package/dist/Chat/index.mjs +1 -1
  65. package/dist/Chatbot/index.js +1 -1
  66. package/dist/Chatbot/index.mjs +1 -1
  67. package/dist/CheckBox/index.js +1 -1
  68. package/dist/CheckBox/index.mjs +1 -1
  69. package/dist/CheckBoxGroup/index.js +19 -19
  70. package/dist/CheckBoxGroup/index.mjs +18 -18
  71. package/dist/Chips/index.js +1 -1
  72. package/dist/Chips/index.mjs +1 -1
  73. package/dist/ChoroplethMap/index.js +1 -1
  74. package/dist/ChoroplethMap/index.mjs +1 -1
  75. package/dist/ColorPicker/index.js +1 -1
  76. package/dist/ColorPicker/index.mjs +1 -1
  77. package/dist/ComparatorChart/ComparatorView/index.js +1 -1
  78. package/dist/ComparatorChart/ComparatorView/index.mjs +1 -1
  79. package/dist/CorrectActivityModal/index.js +6 -6
  80. package/dist/CorrectActivityModal/index.mjs +5 -5
  81. package/dist/Divider/index.js +1 -1
  82. package/dist/Divider/index.mjs +1 -1
  83. package/dist/DownloadButton/index.js +1 -1
  84. package/dist/DownloadButton/index.mjs +1 -1
  85. package/dist/DownloadModal/index.js +1 -1
  86. package/dist/DownloadModal/index.mjs +1 -1
  87. package/dist/DragHandleButton/index.js +1 -1
  88. package/dist/DragHandleButton/index.mjs +1 -1
  89. package/dist/DropdownMenu/index.js +1 -1
  90. package/dist/DropdownMenu/index.mjs +1 -1
  91. package/dist/EmptyState/index.js +1 -1
  92. package/dist/EmptyState/index.mjs +1 -1
  93. package/dist/EnemClassroomStartModal/index.d.ts +0 -2
  94. package/dist/EnemClassroomStartModal/index.d.ts.map +1 -1
  95. package/dist/EnemClassroomStartModal/index.js +4 -6
  96. package/dist/EnemClassroomStartModal/index.js.map +1 -1
  97. package/dist/EnemClassroomStartModal/index.mjs +3 -5
  98. package/dist/EssayThemePicker/index.js +1 -1
  99. package/dist/EssayThemePicker/index.mjs +1 -1
  100. package/dist/ExamDetailsLayout/ExamDetailsPage/index.js +19 -19
  101. package/dist/ExamDetailsLayout/ExamDetailsPage/index.mjs +18 -18
  102. package/dist/ExamPageLayout/examsTableConfig/index.js +1 -1
  103. package/dist/ExamPageLayout/examsTableConfig/index.mjs +1 -1
  104. package/dist/ExamPageLayout/index.js +19 -19
  105. package/dist/ExamPageLayout/index.mjs +18 -18
  106. package/dist/FileAttachment/index.js +1 -1
  107. package/dist/FileAttachment/index.mjs +1 -1
  108. package/dist/FileDropzone/index.js +1 -1
  109. package/dist/FileDropzone/index.mjs +1 -1
  110. package/dist/Forum/index.js +4 -4
  111. package/dist/Forum/index.mjs +3 -3
  112. package/dist/HtmlMathRenderer/index.js +1 -1
  113. package/dist/HtmlMathRenderer/index.mjs +1 -1
  114. package/dist/IconButton/index.js +1 -1
  115. package/dist/IconButton/index.mjs +1 -1
  116. package/dist/IconRoundedButton/index.js +1 -1
  117. package/dist/IconRoundedButton/index.mjs +1 -1
  118. package/dist/ImagePreviewCard/index.js +1 -1
  119. package/dist/ImagePreviewCard/index.mjs +1 -1
  120. package/dist/ImageUpload/index.js +1 -1
  121. package/dist/ImageUpload/index.mjs +1 -1
  122. package/dist/LatexRenderer/index.js +1 -1
  123. package/dist/LatexRenderer/index.mjs +1 -1
  124. package/dist/LevelBar/index.js +1 -1
  125. package/dist/LevelBar/index.mjs +1 -1
  126. package/dist/Menu/index.js +1 -1
  127. package/dist/Menu/index.mjs +1 -1
  128. package/dist/MetricBox/index.js +1 -1
  129. package/dist/MetricBox/index.mjs +1 -1
  130. package/dist/Modal/index.js +1 -1
  131. package/dist/Modal/index.mjs +1 -1
  132. package/dist/ModalComponents/index.js +1 -1
  133. package/dist/ModalComponents/index.mjs +1 -1
  134. package/dist/MultiSearchSelect/index.js +1 -1
  135. package/dist/MultiSearchSelect/index.mjs +1 -1
  136. package/dist/MultipleChoice/index.js +1 -1
  137. package/dist/MultipleChoice/index.mjs +1 -1
  138. package/dist/NavButton/index.js +1 -1
  139. package/dist/NavButton/index.mjs +1 -1
  140. package/dist/NoSearchResult/index.js +1 -1
  141. package/dist/NoSearchResult/index.mjs +1 -1
  142. package/dist/NotFound/index.js +1 -1
  143. package/dist/NotFound/index.mjs +1 -1
  144. package/dist/NotificationCard/index.js +1 -1
  145. package/dist/NotificationCard/index.mjs +1 -1
  146. package/dist/PerformanceDistributionChart/index.js +1 -1
  147. package/dist/PerformanceDistributionChart/index.mjs +1 -1
  148. package/dist/PerformanceQuestionsData/index.js +1 -1
  149. package/dist/PerformanceQuestionsData/index.mjs +1 -1
  150. package/dist/PerformanceRanking/index.js +1 -1
  151. package/dist/PerformanceRanking/index.mjs +1 -1
  152. package/dist/PerformanceReport/index.js +1 -1
  153. package/dist/PerformanceReport/index.mjs +1 -1
  154. package/dist/PerformanceReportModal/index.js +1 -1
  155. package/dist/PerformanceReportModal/index.mjs +1 -1
  156. package/dist/PeriodSelector/index.js +1 -1
  157. package/dist/PeriodSelector/index.mjs +1 -1
  158. package/dist/PrintableUsersTable/index.js +19 -19
  159. package/dist/PrintableUsersTable/index.mjs +18 -18
  160. package/dist/ProficiencyChart/index.js +1 -1
  161. package/dist/ProficiencyChart/index.mjs +1 -1
  162. package/dist/ProgressBar/index.js +1 -1
  163. package/dist/ProgressBar/index.mjs +1 -1
  164. package/dist/ProgressCircle/index.js +1 -1
  165. package/dist/ProgressCircle/index.mjs +1 -1
  166. package/dist/ProgressModal/index.js +1 -1
  167. package/dist/ProgressModal/index.mjs +1 -1
  168. package/dist/QuestionsData/index.js +1 -1
  169. package/dist/QuestionsData/index.mjs +1 -1
  170. package/dist/QuestionsPerformanceCard/index.js +19 -19
  171. package/dist/QuestionsPerformanceCard/index.mjs +18 -18
  172. package/dist/Quiz/QuizResult/index.d.ts.map +1 -1
  173. package/dist/Quiz/QuizResult/index.js +4 -4
  174. package/dist/Quiz/QuizResult/index.mjs +3 -3
  175. package/dist/Quiz/TeacherFeedbackSection/index.js +3 -3
  176. package/dist/Quiz/TeacherFeedbackSection/index.mjs +2 -2
  177. package/dist/Quiz/TeacherQuestionComment/index.js +3 -3
  178. package/dist/Quiz/TeacherQuestionComment/index.mjs +2 -2
  179. package/dist/Quiz/index.d.ts.map +1 -1
  180. package/dist/Quiz/index.js +6 -6
  181. package/dist/Quiz/index.mjs +5 -5
  182. package/dist/Quiz/useQuizStore/index.d.ts +6 -0
  183. package/dist/Quiz/useQuizStore/index.d.ts.map +1 -1
  184. package/dist/Quiz/useQuizStore/index.js +2 -2
  185. package/dist/Quiz/useQuizStore/index.mjs +1 -1
  186. package/dist/QuizTimer/index.js +3 -3
  187. package/dist/QuizTimer/index.mjs +2 -2
  188. package/dist/Radio/index.js +1 -1
  189. package/dist/Radio/index.mjs +1 -1
  190. package/dist/RangeGauge/index.js +1 -1
  191. package/dist/RangeGauge/index.mjs +1 -1
  192. package/dist/RecommendedLessonCreate/index.js +19 -19
  193. package/dist/RecommendedLessonCreate/index.mjs +18 -18
  194. package/dist/RecommendedLessonDetails/index.js +1 -1
  195. package/dist/RecommendedLessonDetails/index.mjs +1 -1
  196. package/dist/RecommendedLessonsHistory/index.js +19 -19
  197. package/dist/RecommendedLessonsHistory/index.mjs +18 -18
  198. package/dist/ReportDetailModal/index.js +1 -1
  199. package/dist/ReportDetailModal/index.mjs +1 -1
  200. package/dist/RestrictedAccess/index.js +1 -1
  201. package/dist/RestrictedAccess/index.mjs +1 -1
  202. package/dist/RichEditor/index.js +3 -3
  203. package/dist/RichEditor/index.mjs +2 -2
  204. package/dist/{RichEditorCore-F5QPQLEK.js → RichEditorCore-NEIZKFKE.js} +2 -2
  205. package/dist/{RichEditorCore-F5QPQLEK.js.map → RichEditorCore-NEIZKFKE.js.map} +1 -1
  206. package/dist/{RichEditorCore-QZYPHNRY.mjs → RichEditorCore-TLAFZ5XG.mjs} +2 -2
  207. package/dist/ScoreCircle/index.js +1 -1
  208. package/dist/ScoreCircle/index.mjs +1 -1
  209. package/dist/Search/index.js +1 -1
  210. package/dist/Search/index.mjs +1 -1
  211. package/dist/SearchSelect/index.js +1 -1
  212. package/dist/SearchSelect/index.mjs +1 -1
  213. package/dist/Select/index.js +1 -1
  214. package/dist/Select/index.mjs +1 -1
  215. package/dist/SelectionButton/index.js +1 -1
  216. package/dist/SelectionButton/index.mjs +1 -1
  217. package/dist/SendActivityModal/SendActivityModal.js +19 -19
  218. package/dist/SendActivityModal/SendActivityModal.mjs +18 -18
  219. package/dist/SendActivityModal/index.js +19 -19
  220. package/dist/SendActivityModal/index.mjs +18 -18
  221. package/dist/SendLessonModal/index.js +19 -19
  222. package/dist/SendLessonModal/index.mjs +18 -18
  223. package/dist/SimpleBarChart/index.js +1 -1
  224. package/dist/SimpleBarChart/index.mjs +1 -1
  225. package/dist/SimulatedPerformance/SimulatedPerformanceView/index.js +19 -19
  226. package/dist/SimulatedPerformance/SimulatedPerformanceView/index.mjs +18 -18
  227. package/dist/SimulatedPerformance/useSimulatedPerformance/index.js +1 -1
  228. package/dist/SimulatedPerformance/useSimulatedPerformance/index.mjs +1 -1
  229. package/dist/SimulatedStudentSimulationsModal/index.js +19 -19
  230. package/dist/SimulatedStudentSimulationsModal/index.mjs +5 -5
  231. package/dist/SimulationsPage/index.js +19 -19
  232. package/dist/SimulationsPage/index.mjs +18 -18
  233. package/dist/Skeleton/index.js +1 -1
  234. package/dist/Skeleton/index.mjs +1 -1
  235. package/dist/StatisticsCard/index.js +1 -1
  236. package/dist/StatisticsCard/index.mjs +1 -1
  237. package/dist/Stepper/index.js +1 -1
  238. package/dist/Stepper/index.mjs +1 -1
  239. package/dist/StudentLessonProgressModal/index.js +1 -1
  240. package/dist/StudentLessonProgressModal/index.mjs +1 -1
  241. package/dist/StudentPerformanceDetailsModal/index.js +1 -1
  242. package/dist/StudentPerformanceDetailsModal/index.mjs +1 -1
  243. package/dist/StudentRanking/index.js +1 -1
  244. package/dist/StudentRanking/index.mjs +1 -1
  245. package/dist/SubjectIcons/index.js +1 -1
  246. package/dist/SubjectIcons/index.mjs +1 -1
  247. package/dist/SubjectMenuOverflow/index.js +1 -1
  248. package/dist/SubjectMenuOverflow/index.mjs +1 -1
  249. package/dist/Support/TicketModal/index.js +1 -1
  250. package/dist/Support/TicketModal/index.mjs +1 -1
  251. package/dist/Support/index.js +1 -1
  252. package/dist/Support/index.mjs +1 -1
  253. package/dist/Table/TablePagination/index.js +1 -1
  254. package/dist/Table/TablePagination/index.mjs +1 -1
  255. package/dist/Table/index.js +1 -1
  256. package/dist/Table/index.mjs +1 -1
  257. package/dist/TableProvider/index.js +19 -19
  258. package/dist/TableProvider/index.mjs +18 -18
  259. package/dist/Text/index.js +1 -1
  260. package/dist/Text/index.mjs +1 -1
  261. package/dist/TextArea/index.js +1 -1
  262. package/dist/TextArea/index.mjs +1 -1
  263. package/dist/ThemeToggle/index.js +1 -1
  264. package/dist/ThemeToggle/index.mjs +1 -1
  265. package/dist/TimeChart/index.js +1 -1
  266. package/dist/TimeChart/index.mjs +1 -1
  267. package/dist/TimeReport/index.js +1 -1
  268. package/dist/TimeReport/index.mjs +1 -1
  269. package/dist/Toast/Toaster/index.js +1 -1
  270. package/dist/Toast/Toaster/index.mjs +1 -1
  271. package/dist/Toast/index.js +1 -1
  272. package/dist/Toast/index.mjs +1 -1
  273. package/dist/ToggleSwitch/index.js +1 -1
  274. package/dist/ToggleSwitch/index.mjs +1 -1
  275. package/dist/TokenValidation/index.js +1 -1
  276. package/dist/TokenValidation/index.mjs +1 -1
  277. package/dist/Tooltip/index.js +1 -1
  278. package/dist/Tooltip/index.mjs +1 -1
  279. package/dist/TruncatedText/index.js +1 -1
  280. package/dist/TruncatedText/index.mjs +1 -1
  281. package/dist/TypeSelector/index.js +1 -1
  282. package/dist/TypeSelector/index.mjs +1 -1
  283. package/dist/UnifiedDraftModelPage/index.js +19 -19
  284. package/dist/UnifiedDraftModelPage/index.mjs +18 -18
  285. package/dist/UnifiedHistoryPage/index.js +19 -19
  286. package/dist/UnifiedHistoryPage/index.mjs +18 -18
  287. package/dist/VerticalBarChart/index.js +1 -1
  288. package/dist/VerticalBarChart/index.mjs +1 -1
  289. package/dist/VideoPlayer/index.js +1 -1
  290. package/dist/VideoPlayer/index.mjs +1 -1
  291. package/dist/Whiteboard/index.js +1 -1
  292. package/dist/Whiteboard/index.mjs +1 -1
  293. package/dist/{chunk-JBAGQ7L5.js → chunk-3VG5MEMY.js} +14 -13
  294. package/dist/chunk-3VG5MEMY.js.map +1 -0
  295. package/dist/{chunk-ED23HOE6.mjs → chunk-5NIU4XJY.mjs} +7 -6
  296. package/dist/chunk-5NIU4XJY.mjs.map +1 -0
  297. package/dist/{chunk-DDZDNGBU.mjs → chunk-64WGFT5E.mjs} +3 -1
  298. package/dist/chunk-64WGFT5E.mjs.map +1 -0
  299. package/dist/{chunk-QN32O3J3.js → chunk-6MK23BTK.js} +62 -62
  300. package/dist/{chunk-QN32O3J3.js.map → chunk-6MK23BTK.js.map} +1 -1
  301. package/dist/{chunk-XX4WE4TL.js → chunk-726PIA5M.js} +1 -1
  302. package/dist/chunk-726PIA5M.js.map +1 -0
  303. package/dist/{chunk-VZJKHIHN.mjs → chunk-7KALNPIG.mjs} +4 -4
  304. package/dist/{chunk-NQNEG4KR.mjs → chunk-7VKFZHWP.mjs} +11 -10
  305. package/dist/chunk-7VKFZHWP.mjs.map +1 -0
  306. package/dist/{chunk-GYQUB3VW.js → chunk-BBFV3NDF.js} +8 -6
  307. package/dist/chunk-BBFV3NDF.js.map +1 -0
  308. package/dist/{chunk-I3Z2BHGN.js → chunk-BJHYT75K.js} +3 -3
  309. package/dist/{chunk-I3Z2BHGN.js.map → chunk-BJHYT75K.js.map} +1 -1
  310. package/dist/{chunk-CFTQ24UT.mjs → chunk-CMYBNZ74.mjs} +2 -2
  311. package/dist/{chunk-R7NS5KFE.mjs → chunk-CWUNF7U6.mjs} +3 -3
  312. package/dist/{chunk-NAOHJW6H.mjs → chunk-DLHV7CZN.mjs} +6 -6
  313. package/dist/{chunk-7EXSCXPK.mjs → chunk-DMYETMZG.mjs} +2 -2
  314. package/dist/{chunk-RQPSA4QV.js → chunk-GQUTHDV2.js} +3 -3
  315. package/dist/{chunk-RQPSA4QV.js.map → chunk-GQUTHDV2.js.map} +1 -1
  316. package/dist/{chunk-OZWPOXVU.mjs → chunk-GVGDUCVF.mjs} +2 -2
  317. package/dist/{chunk-QFWY46XU.js → chunk-IMDS5NQL.js} +16 -16
  318. package/dist/{chunk-QFWY46XU.js.map → chunk-IMDS5NQL.js.map} +1 -1
  319. package/dist/{chunk-KYGFYAU7.js → chunk-JHN35HPH.js} +3 -3
  320. package/dist/{chunk-KYGFYAU7.js.map → chunk-JHN35HPH.js.map} +1 -1
  321. package/dist/{chunk-DMZTDCUF.js → chunk-JPQI2RIV.js} +3 -3
  322. package/dist/{chunk-DMZTDCUF.js.map → chunk-JPQI2RIV.js.map} +1 -1
  323. package/dist/{chunk-LXX5KU3O.mjs → chunk-LMDAF6LA.mjs} +2 -2
  324. package/dist/{chunk-FL4W4S6J.mjs → chunk-MOSP7FR5.mjs} +1 -1
  325. package/dist/chunk-MOSP7FR5.mjs.map +1 -0
  326. package/dist/{chunk-HZXXADG4.js → chunk-NLPBW3SW.js} +44 -43
  327. package/dist/chunk-NLPBW3SW.js.map +1 -0
  328. package/dist/{chunk-TAABXGZL.mjs → chunk-O3JP6ZMQ.mjs} +2 -2
  329. package/dist/{chunk-MFO4S7T5.js → chunk-PJOBOBNJ.js} +3 -3
  330. package/dist/{chunk-MFO4S7T5.js.map → chunk-PJOBOBNJ.js.map} +1 -1
  331. package/dist/{chunk-CWGYVJTQ.mjs → chunk-PORNR2NU.mjs} +3 -3
  332. package/dist/chunk-QF3UKRIJ.js +33 -0
  333. package/dist/chunk-QF3UKRIJ.js.map +1 -0
  334. package/dist/chunk-RAHXO5YU.mjs +33 -0
  335. package/dist/chunk-RAHXO5YU.mjs.map +1 -0
  336. package/dist/{chunk-BTZANNVO.js → chunk-RQ65U5G2.js} +3 -3
  337. package/dist/{chunk-BTZANNVO.js.map → chunk-RQ65U5G2.js.map} +1 -1
  338. package/dist/{chunk-Q56I63FO.mjs → chunk-RVGLLMWG.mjs} +2 -2
  339. package/dist/{chunk-VVRRAF6H.js → chunk-S2S7TK3L.js} +49 -36
  340. package/dist/chunk-S2S7TK3L.js.map +1 -0
  341. package/dist/{chunk-INIH23HU.js → chunk-VF6QXUX3.js} +2 -2
  342. package/dist/{chunk-INIH23HU.js.map → chunk-VF6QXUX3.js.map} +1 -1
  343. package/dist/{chunk-QWC5GC2Q.mjs → chunk-WY7V5UJN.mjs} +2 -2
  344. package/dist/{chunk-OCKO7T7L.js → chunk-XQAYZBLL.js} +3 -3
  345. package/dist/{chunk-OCKO7T7L.js.map → chunk-XQAYZBLL.js.map} +1 -1
  346. package/dist/{chunk-ATGLKKXI.js → chunk-Y7ZBWTD7.js} +17 -17
  347. package/dist/{chunk-ATGLKKXI.js.map → chunk-Y7ZBWTD7.js.map} +1 -1
  348. package/dist/{chunk-7XWWI5EY.js → chunk-YFIB3YNQ.js} +11 -11
  349. package/dist/{chunk-7XWWI5EY.js.map → chunk-YFIB3YNQ.js.map} +1 -1
  350. package/dist/{chunk-UCWTF336.mjs → chunk-YWGJAB63.mjs} +2 -2
  351. package/dist/{chunk-4MPXVPBQ.mjs → chunk-YYHS2TM6.mjs} +43 -30
  352. package/dist/chunk-YYHS2TM6.mjs.map +1 -0
  353. package/dist/components/Quiz/Quiz.utils.d.ts +8 -0
  354. package/dist/components/Quiz/Quiz.utils.d.ts.map +1 -1
  355. package/dist/hooks/useAppContent/index.js +19 -19
  356. package/dist/hooks/useAppContent/index.mjs +18 -18
  357. package/dist/hooks/useComparator/index.js +1 -1
  358. package/dist/hooks/useComparator/index.mjs +1 -1
  359. package/dist/hooks/useDraftAutoSave/index.js +3 -3
  360. package/dist/hooks/useDraftAutoSave/index.mjs +2 -2
  361. package/dist/index.js +19 -19
  362. package/dist/index.mjs +18 -18
  363. package/dist/types/enemClassroom/index.d.ts +29 -2
  364. package/dist/types/enemClassroom/index.d.ts.map +1 -1
  365. package/dist/types/enemClassroom/index.js +4 -2
  366. package/dist/types/enemClassroom/index.js.map +1 -1
  367. package/dist/types/enemClassroom/index.mjs +3 -1
  368. package/dist/types/enemClassroom.d.ts +29 -2
  369. package/dist/types/enemClassroom.d.ts.map +1 -1
  370. package/dist/types/questionTypes/index.js +1 -1
  371. package/dist/types/questionTypes/index.mjs +1 -1
  372. package/dist/utils/index.js +1 -1
  373. package/dist/utils/index.mjs +1 -1
  374. package/dist/utils/renderSubjectCell/index.js +1 -1
  375. package/dist/utils/renderSubjectCell/index.mjs +1 -1
  376. package/dist/utils/renderTextCell/index.js +1 -1
  377. package/dist/utils/renderTextCell/index.mjs +1 -1
  378. package/package.json +1 -1
  379. package/dist/chunk-4MPXVPBQ.mjs.map +0 -1
  380. package/dist/chunk-DDZDNGBU.mjs.map +0 -1
  381. package/dist/chunk-ED23HOE6.mjs.map +0 -1
  382. package/dist/chunk-FL4W4S6J.mjs.map +0 -1
  383. package/dist/chunk-GYQUB3VW.js.map +0 -1
  384. package/dist/chunk-HZXXADG4.js.map +0 -1
  385. package/dist/chunk-JBAGQ7L5.js.map +0 -1
  386. package/dist/chunk-ND5M3DZA.mjs +0 -21
  387. package/dist/chunk-ND5M3DZA.mjs.map +0 -1
  388. package/dist/chunk-NQNEG4KR.mjs.map +0 -1
  389. package/dist/chunk-NYKBCQUO.js +0 -21
  390. package/dist/chunk-NYKBCQUO.js.map +0 -1
  391. package/dist/chunk-VVRRAF6H.js.map +0 -1
  392. package/dist/chunk-XX4WE4TL.js.map +0 -1
  393. /package/dist/{RichEditorCore-QZYPHNRY.mjs.map → RichEditorCore-TLAFZ5XG.mjs.map} +0 -0
  394. /package/dist/{chunk-VZJKHIHN.mjs.map → chunk-7KALNPIG.mjs.map} +0 -0
  395. /package/dist/{chunk-CFTQ24UT.mjs.map → chunk-CMYBNZ74.mjs.map} +0 -0
  396. /package/dist/{chunk-R7NS5KFE.mjs.map → chunk-CWUNF7U6.mjs.map} +0 -0
  397. /package/dist/{chunk-NAOHJW6H.mjs.map → chunk-DLHV7CZN.mjs.map} +0 -0
  398. /package/dist/{chunk-7EXSCXPK.mjs.map → chunk-DMYETMZG.mjs.map} +0 -0
  399. /package/dist/{chunk-OZWPOXVU.mjs.map → chunk-GVGDUCVF.mjs.map} +0 -0
  400. /package/dist/{chunk-LXX5KU3O.mjs.map → chunk-LMDAF6LA.mjs.map} +0 -0
  401. /package/dist/{chunk-TAABXGZL.mjs.map → chunk-O3JP6ZMQ.mjs.map} +0 -0
  402. /package/dist/{chunk-CWGYVJTQ.mjs.map → chunk-PORNR2NU.mjs.map} +0 -0
  403. /package/dist/{chunk-Q56I63FO.mjs.map → chunk-RVGLLMWG.mjs.map} +0 -0
  404. /package/dist/{chunk-QWC5GC2Q.mjs.map → chunk-WY7V5UJN.mjs.map} +0 -0
  405. /package/dist/{chunk-UCWTF336.mjs.map → chunk-YWGJAB63.mjs.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkMFO4S7T5js = require('./chunk-MFO4S7T5.js');
3
+ var _chunkPJOBOBNJjs = require('./chunk-PJOBOBNJ.js');
4
4
 
5
5
 
6
6
  var _chunkZW6L2ZQAjs = require('./chunk-ZW6L2ZQA.js');
@@ -18,10 +18,11 @@ var _chunkYCOW5GXGjs = require('./chunk-YCOW5GXG.js');
18
18
 
19
19
 
20
20
 
21
- var _chunkQFWY46XUjs = require('./chunk-QFWY46XU.js');
21
+ var _chunkIMDS5NQLjs = require('./chunk-IMDS5NQL.js');
22
22
 
23
23
 
24
- var _chunkGYQUB3VWjs = require('./chunk-GYQUB3VW.js');
24
+
25
+ var _chunkBBFV3NDFjs = require('./chunk-BBFV3NDF.js');
25
26
 
26
27
 
27
28
  var _chunk4XUEJUISjs = require('./chunk-4XUEJUIS.js');
@@ -58,7 +59,7 @@ var _chunkANT66KVKjs = require('./chunk-ANT66KVK.js');
58
59
  var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
59
60
 
60
61
 
61
- var _chunkXX4WE4TLjs = require('./chunk-XX4WE4TL.js');
62
+ var _chunk726PIA5Mjs = require('./chunk-726PIA5M.js');
62
63
 
63
64
  // src/components/Quiz/Quiz.tsx
64
65
  var _BookOpen = require('@phosphor-icons/react/dist/csr/BookOpen');
@@ -129,7 +130,7 @@ var getFinishConfirmationText = (type) => {
129
130
  return `Tem certeza que deseja finalizar ${config.article} ${config.label.toLowerCase()}?`;
130
131
  };
131
132
  var Quiz = _react.forwardRef.call(void 0, ({ children, className, variant = "default" /* DEFAULT */, ...props }, ref) => {
132
- const { setVariant } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
133
+ const { setVariant } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
133
134
  _react.useEffect.call(void 0, () => {
134
135
  setVariant(variant);
135
136
  }, [variant, setVariant]);
@@ -142,7 +143,7 @@ var QuizTitle = _react.forwardRef.call(void 0, ({ className, onBack, showTimer =
142
143
  getTotalQuestions,
143
144
  getQuizTitle,
144
145
  isStarted
145
- } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
146
+ } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
146
147
  const [showExitConfirmation, setShowExitConfirmation] = _react.useState.call(void 0, false);
147
148
  const totalQuestions = getTotalQuestions();
148
149
  const quizTitle = getQuizTitle();
@@ -192,7 +193,7 @@ var QuizTitle = _react.forwardRef.call(void 0, ({ className, onBack, showTimer =
192
193
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", weight: "bold", color: "text-text-950", children: quizTitle }),
193
194
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "xs", color: "text-text-600", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
194
195
  ] }),
195
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "justify-self-end", children: showTimer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMFO4S7T5js.QuizTimer_default, {}) })
196
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "justify-self-end", children: showTimer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPJOBOBNJjs.QuizTimer_default, {}) })
196
197
  ]
197
198
  }
198
199
  ),
@@ -212,36 +213,36 @@ var QuizTitle = _react.forwardRef.call(void 0, ({ className, onBack, showTimer =
212
213
  ] });
213
214
  });
214
215
  var QuizHeader = () => {
215
- const { getCurrentQuestion, getQuestionIndex, quiz } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
216
+ const { getCurrentQuestion, getQuestionIndex, quiz } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
216
217
  const currentQuestion = getCurrentQuestion();
217
218
  let currentId = currentQuestion && "questionId" in currentQuestion ? currentQuestion.questionId : _optionalChain([currentQuestion, 'optionalAccess', _2 => _2.id]);
218
219
  const questionIndex = getQuestionIndex(currentId);
219
220
  const questionNumber = currentQuestion ? `Quest\xE3o ${questionIndex.toString().padStart(2, "0")}` : "Quest\xE3o";
220
- const shouldShowExamInfo = _optionalChain([quiz, 'optionalAccess', _3 => _3.type]) === "SIMULADO" /* SIMULADO */;
221
- const examInfo = shouldShowExamInfo ? _chunkGYQUB3VWjs.formatExamInfo.call(void 0, _optionalChain([currentQuestion, 'optionalAccess', _4 => _4.examBoard]), _optionalChain([currentQuestion, 'optionalAccess', _5 => _5.examYear])) : "";
221
+ const showExamInfo = _chunkBBFV3NDFjs.shouldShowExamInfo.call(void 0, quiz);
222
+ const examInfo = showExamInfo ? _chunkBBFV3NDFjs.formatExamInfo.call(void 0, _optionalChain([currentQuestion, 'optionalAccess', _3 => _3.examBoard]), _optionalChain([currentQuestion, 'optionalAccess', _4 => _4.examYear])) : "";
222
223
  const title = examInfo ? `${questionNumber} ${examInfo}` : questionNumber;
223
224
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
224
225
  _chunkB6K3W2ERjs.HeaderAlternative,
225
226
  {
226
227
  title,
227
- subTitle: _nullishCoalesce(_optionalChain([currentQuestion, 'optionalAccess', _6 => _6.knowledgeMatrix, 'optionalAccess', _7 => _7[0], 'optionalAccess', _8 => _8.topic, 'optionalAccess', _9 => _9.name]), () => ( "")),
228
- content: _nullishCoalesce(_optionalChain([currentQuestion, 'optionalAccess', _10 => _10.statement]), () => ( ""))
228
+ subTitle: _nullishCoalesce(_optionalChain([currentQuestion, 'optionalAccess', _5 => _5.knowledgeMatrix, 'optionalAccess', _6 => _6[0], 'optionalAccess', _7 => _7.topic, 'optionalAccess', _8 => _8.name]), () => ( "")),
229
+ content: _nullishCoalesce(_optionalChain([currentQuestion, 'optionalAccess', _9 => _9.statement]), () => ( ""))
229
230
  }
230
231
  );
231
232
  };
232
233
  var QuizContent = ({ paddingBottom }) => {
233
- const { getCurrentQuestion } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
234
+ const { getCurrentQuestion } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
234
235
  const { isMobile } = _chunkZHWRUIVEjs.useMobile.call(void 0, );
235
236
  const currentQuestion = getCurrentQuestion();
236
237
  const contentPaddingBottom = _nullishCoalesce(paddingBottom, () => ( (isMobile ? "pb-32" : "pb-24")));
237
238
  const questionComponents = {
238
- ["ALTERNATIVA" /* ALTERNATIVA */]: _chunkQFWY46XUjs.QuizAlternative,
239
- ["MULTIPLA_ESCOLHA" /* MULTIPLA_ESCOLHA */]: _chunkQFWY46XUjs.QuizMultipleChoice,
240
- ["DISSERTATIVA" /* DISSERTATIVA */]: _chunkQFWY46XUjs.QuizDissertative,
241
- ["VERDADEIRO_FALSO" /* VERDADEIRO_FALSO */]: _chunkQFWY46XUjs.QuizTrueOrFalse,
242
- ["RELACIONAR" /* RELACIONAR */]: _chunkQFWY46XUjs.QuizConnectDots,
243
- ["PREENCHER_LACUNAS" /* PREENCHER_LACUNAS */]: _chunkQFWY46XUjs.QuizFill,
244
- ["IMAGEM" /* IMAGEM */]: _chunkQFWY46XUjs.QuizImageQuestion
239
+ ["ALTERNATIVA" /* ALTERNATIVA */]: _chunkIMDS5NQLjs.QuizAlternative,
240
+ ["MULTIPLA_ESCOLHA" /* MULTIPLA_ESCOLHA */]: _chunkIMDS5NQLjs.QuizMultipleChoice,
241
+ ["DISSERTATIVA" /* DISSERTATIVA */]: _chunkIMDS5NQLjs.QuizDissertative,
242
+ ["VERDADEIRO_FALSO" /* VERDADEIRO_FALSO */]: _chunkIMDS5NQLjs.QuizTrueOrFalse,
243
+ ["RELACIONAR" /* RELACIONAR */]: _chunkIMDS5NQLjs.QuizConnectDots,
244
+ ["PREENCHER_LACUNAS" /* PREENCHER_LACUNAS */]: _chunkIMDS5NQLjs.QuizFill,
245
+ ["IMAGEM" /* IMAGEM */]: _chunkIMDS5NQLjs.QuizImageQuestion
245
246
  };
246
247
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
247
248
  if (!QuestionComponent) {
@@ -259,8 +260,8 @@ var QuizQuestionList = ({
259
260
  getQuestionStatusFromUserAnswers,
260
261
  getQuestionIndex,
261
262
  quiz
262
- } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
263
- const shouldShowExamInfo = _optionalChain([quiz, 'optionalAccess', _11 => _11.type]) === "SIMULADO" /* SIMULADO */;
263
+ } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
264
+ const showExamInfo = _chunkBBFV3NDFjs.shouldShowExamInfo.call(void 0, quiz);
264
265
  const groupedQuestions = getQuestionsGroupedBySubject();
265
266
  const getQuestionStatus = (questionId) => {
266
267
  return getQuestionStatusFromUserAnswers(questionId);
@@ -302,12 +303,12 @@ var QuizQuestionList = ({
302
303
  ([subjectId, questions]) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { className: "flex flex-col gap-2", children: [
303
304
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
304
305
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _BookOpen.BookOpenIcon, { size: 17, className: "text-white" }) }),
305
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-text-800 font-bold text-lg", children: _nullishCoalesce(_optionalChain([questions, 'optionalAccess', _12 => _12[0], 'optionalAccess', _13 => _13.knowledgeMatrix, 'optionalAccess', _14 => _14[0], 'optionalAccess', _15 => _15.subject, 'optionalAccess', _16 => _16.name]), () => ( "Sem componente curricular")) })
306
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-text-800 font-bold text-lg", children: _nullishCoalesce(_optionalChain([questions, 'optionalAccess', _10 => _10[0], 'optionalAccess', _11 => _11.knowledgeMatrix, 'optionalAccess', _12 => _12[0], 'optionalAccess', _13 => _13.subject, 'optionalAccess', _14 => _14.name]), () => ( "Sem componente curricular")) })
306
307
  ] }),
307
308
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
308
309
  const status = getQuestionStatus(question.id);
309
310
  const questionNumber = getQuestionIndex(question.id);
310
- const examInfo = shouldShowExamInfo ? _chunkGYQUB3VWjs.formatExamInfo.call(void 0, question.examBoard, question.examYear) : "";
311
+ const examInfo = showExamInfo ? _chunkBBFV3NDFjs.formatExamInfo.call(void 0, question.examBoard, question.examYear) : "";
311
312
  const questionTitle = `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`;
312
313
  const header = examInfo ? `${questionTitle} ${examInfo}` : questionTitle;
313
314
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -317,7 +318,7 @@ var QuizQuestionList = ({
317
318
  label: getStatusLabel(status),
318
319
  onClick: () => {
319
320
  goToQuestion(questionNumber - 1);
320
- _optionalChain([onQuestionClick, 'optionalCall', _17 => _17()]);
321
+ _optionalChain([onQuestionClick, 'optionalCall', _15 => _15()]);
321
322
  }
322
323
  },
323
324
  question.id
@@ -355,13 +356,13 @@ var QuizResultModal = ({
355
356
  }
356
357
  );
357
358
  var useCurrentCorrection = () => {
358
- const { getCurrentQuestion, getQuestionResultByQuestionId } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
359
+ const { getCurrentQuestion, getQuestionResultByQuestionId } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
359
360
  const currentQuestion = getCurrentQuestion();
360
361
  const result = currentQuestion ? getQuestionResultByQuestionId(currentQuestion.id) : null;
361
362
  return {
362
363
  comment: _chunkYCOW5GXGjs.resolveCorrectionText.call(void 0, { ...result }),
363
- correctionSource: _optionalChain([result, 'optionalAccess', _18 => _18.correctionSource]),
364
- aiCorrectionStatus: _optionalChain([result, 'optionalAccess', _19 => _19.aiCorrectionStatus])
364
+ correctionSource: _optionalChain([result, 'optionalAccess', _16 => _16.correctionSource]),
365
+ aiCorrectionStatus: _optionalChain([result, 'optionalAccess', _17 => _17.aiCorrectionStatus])
365
366
  };
366
367
  };
367
368
  var getCorrectionModalTitle = (correctionSource) => {
@@ -378,10 +379,10 @@ var QuizReviewActions = ({
378
379
  onOpenComment,
379
380
  className
380
381
  }) => {
381
- const { getCurrentQuestion } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
382
+ const { getCurrentQuestion } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
382
383
  const { comment, correctionSource, aiCorrectionStatus } = useCurrentCorrection();
383
384
  const currentQuestion = getCurrentQuestion();
384
- const hasResolution = Boolean(_optionalChain([currentQuestion, 'optionalAccess', _20 => _20.solutionExplanation]));
385
+ const hasResolution = Boolean(_optionalChain([currentQuestion, 'optionalAccess', _18 => _18.solutionExplanation]));
385
386
  const isAiCorrecting = aiCorrectionStatus === "PENDING" /* PENDING */;
386
387
  const commentLabel = correctionSource === "IA" /* IA */ ? "Ver corre\xE7\xE3o da IA" : "Ver coment\xE1rio";
387
388
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, children: [
@@ -442,7 +443,7 @@ var QuizFooter = _react.forwardRef.call(void 0,
442
443
  getQuestionStatusFromUserAnswers,
443
444
  variant,
444
445
  getQuestionResultStatistics
445
- } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
446
+ } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
446
447
  const { isMobile } = _chunkZHWRUIVEjs.useMobile.call(void 0, );
447
448
  const totalQuestions = getTotalQuestions();
448
449
  const isFirstQuestion = currentQuestionIndex === 0;
@@ -463,10 +464,10 @@ var QuizFooter = _react.forwardRef.call(void 0,
463
464
  const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
464
465
  const allQuestions = getTotalQuestions();
465
466
  const stats = getQuestionResultStatistics();
466
- const correctAnswers = _optionalChain([stats, 'optionalAccess', _21 => _21.correctAnswers]);
467
- const quizType = _optionalChain([quiz, 'optionalAccess', _22 => _22.type]) || "SIMULADO" /* SIMULADO */;
467
+ const correctAnswers = _optionalChain([stats, 'optionalAccess', _19 => _19.correctAnswers]);
468
+ const quizType = _optionalChain([quiz, 'optionalAccess', _20 => _20.type]) || "SIMULADO" /* SIMULADO */;
468
469
  const quizTypeLabel = getTypeLabel(quizType);
469
- const moduleName = _optionalChain([quiz, 'optionalAccess', _23 => _23.questions, 'optionalAccess', _24 => _24[0], 'optionalAccess', _25 => _25.knowledgeMatrix, 'optionalAccess', _26 => _26[0], 'optionalAccess', _27 => _27.subtopic, 'optionalAccess', _28 => _28.name]);
470
+ const moduleName = _optionalChain([quiz, 'optionalAccess', _21 => _21.questions, 'optionalAccess', _22 => _22[0], 'optionalAccess', _23 => _23.knowledgeMatrix, 'optionalAccess', _24 => _24[0], 'optionalAccess', _25 => _25.subtopic, 'optionalAccess', _26 => _26.name]);
470
471
  const submitAndOpenResultModal = async () => {
471
472
  if (handleFinishSimulated) {
472
473
  await Promise.resolve(handleFinishSimulated());
@@ -476,8 +477,8 @@ var QuizFooter = _react.forwardRef.call(void 0,
476
477
  return;
477
478
  }
478
479
  const latestStats = getQuestionResultStatistics();
479
- const latestCorrect = _optionalChain([latestStats, 'optionalAccess', _29 => _29.correctAnswers]);
480
- const latestTotal = _optionalChain([latestStats, 'optionalAccess', _30 => _30.totalAnswered]);
480
+ const latestCorrect = _optionalChain([latestStats, 'optionalAccess', _27 => _27.correctAnswers]);
481
+ const latestTotal = _optionalChain([latestStats, 'optionalAccess', _28 => _28.totalAnswered]);
481
482
  if (quizType === "QUESTIONARIO" /* QUESTIONARIO */ && typeof latestCorrect === "number" && typeof latestTotal === "number" && latestCorrect === latestTotal) {
482
483
  openModal("modalQuestionnaireAllCorrect");
483
484
  return;
@@ -754,7 +755,7 @@ var QuizFooter = _react.forwardRef.call(void 0,
754
755
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
755
756
  _chunk5W7C4GZVjs.HtmlMathRenderer_default,
756
757
  {
757
- content: _optionalChain([currentQuestion, 'optionalAccess', _31 => _31.solutionExplanation]) || "",
758
+ content: _optionalChain([currentQuestion, 'optionalAccess', _29 => _29.solutionExplanation]) || "",
758
759
  className: "text-text-950 text-base"
759
760
  }
760
761
  )
@@ -809,10 +810,10 @@ var QuizFooter = _react.forwardRef.call(void 0,
809
810
  description: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
810
811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { as: "p", size: "sm", color: "text-text-500", children: "Voc\xEA tirou 0 no question\xE1rio, mas n\xE3o se preocupe! Isso \xE9 apenas uma oportunidade de aprendizado." }),
811
812
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { as: "p", size: "sm", color: "text-text-500", children: "Que tal tentar novamente para melhorar sua nota? Estamos aqui para te ajudar a entender o conte\xFAdo e evoluir." }),
812
- _optionalChain([quiz, 'optionalAccess', _32 => _32.canRetry]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { as: "p", size: "sm", color: "text-text-500", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
813
+ _optionalChain([quiz, 'optionalAccess', _30 => _30.canRetry]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { as: "p", size: "sm", color: "text-text-500", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
813
814
  ] }),
814
815
  footer: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
815
- _optionalChain([quiz, 'optionalAccess', _33 => _33.canRetry]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
816
+ _optionalChain([quiz, 'optionalAccess', _31 => _31.canRetry]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
816
817
  _chunkXN2HPVVHjs.Button_default,
817
818
  {
818
819
  type: "button",
@@ -836,7 +837,7 @@ var QuizFooter = _react.forwardRef.call(void 0,
836
837
  children: "Detalhar resultado"
837
838
  }
838
839
  ),
839
- _optionalChain([quiz, 'optionalAccess', _34 => _34.canRetry]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXN2HPVVHjs.Button_default, { className: "w-auto", size: "small", onClick: onRepeat, children: "Repetir question\xE1rio" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
840
+ _optionalChain([quiz, 'optionalAccess', _32 => _32.canRetry]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXN2HPVVHjs.Button_default, { className: "w-auto", size: "small", onClick: onRepeat, children: "Repetir question\xE1rio" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
840
841
  _chunkXN2HPVVHjs.Button_default,
841
842
  {
842
843
  className: "w-auto",
@@ -858,11 +859,11 @@ var QuizFooter = _react.forwardRef.call(void 0,
858
859
  cancelButtonLabel: "Repetir question\xE1rio",
859
860
  submitButtonLabel: "Tentar depois",
860
861
  onSubmit: () => {
861
- _optionalChain([onTryLater, 'optionalCall', _35 => _35()]);
862
+ _optionalChain([onTryLater, 'optionalCall', _33 => _33()]);
862
863
  closeModal();
863
864
  },
864
865
  onCancel: () => {
865
- _optionalChain([onRepeat, 'optionalCall', _36 => _36()]);
866
+ _optionalChain([onRepeat, 'optionalCall', _34 => _34()]);
866
867
  closeModal();
867
868
  }
868
869
  }
@@ -887,4 +888,4 @@ var QuizFooter = _react.forwardRef.call(void 0,
887
888
 
888
889
 
889
890
  exports.getQuizTypeConfig = getQuizTypeConfig; exports.getTypeLabel = getTypeLabel; exports.getQuizArticle = getQuizArticle; exports.getQuizPreposition = getQuizPreposition; exports.getCompletionTitle = getCompletionTitle; exports.getGoBackButtonLabel = getGoBackButtonLabel; exports.getExitConfirmationText = getExitConfirmationText; exports.getFinishConfirmationText = getFinishConfirmationText; exports.Quiz = Quiz; exports.QuizTitle = QuizTitle; exports.QuizHeader = QuizHeader; exports.QuizContent = QuizContent; exports.QuizQuestionList = QuizQuestionList; exports.QuizFooter = QuizFooter;
890
- //# sourceMappingURL=chunk-HZXXADG4.js.map
891
+ //# sourceMappingURL=chunk-NLPBW3SW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-NLPBW3SW.js","../src/components/Quiz/Quiz.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-NLPBW3SW.js","sourcesContent":[null,"import { BookOpenIcon } from '@phosphor-icons/react/dist/csr/BookOpen';\nimport { CaretLeftIcon } from '@phosphor-icons/react/dist/csr/CaretLeft';\nimport { CaretRightIcon } from '@phosphor-icons/react/dist/csr/CaretRight';\nimport { SquaresFourIcon } from '@phosphor-icons/react/dist/csr/SquaresFour';\nimport { HeaderAlternative } from '../Alternative/Alternative';\nimport Button from '../Button/Button';\nimport IconButton from '../IconButton/IconButton';\nimport {\n forwardRef,\n ReactNode,\n useEffect,\n useState,\n ComponentType,\n} from 'react';\nimport {\n useQuizStore,\n QUESTION_TYPE,\n QUIZ_TYPE,\n AI_CORRECTION_STATUS,\n CORRECTION_SOURCE,\n} from './useQuizStore';\nimport CorrectionSourceTag from './CorrectionSourceTag';\nimport { resolveCorrectionText } from './correction.utils';\nimport { QuizVariant } from './Quiz.types';\nimport { AlertDialog } from '../AlertDialog/AlertDialog';\nimport Modal from '../Modal/Modal';\n\nimport Select, {\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../Select/Select';\nimport { cn } from '../../utils/utils';\nimport {\n QuizAlternative,\n QuizConnectDots,\n QuizDissertative,\n QuizFill,\n QuizImageQuestion,\n QuizMultipleChoice,\n QuizTrueOrFalse,\n} from './QuizContent';\nimport { CardStatus } from '../Card/Card';\nimport Text from '../Text/Text';\nimport HtmlMathRenderer from '../HtmlMathRenderer/HtmlMathRenderer';\nimport { formatExamInfo, shouldShowExamInfo } from './Quiz.utils';\nimport QuizTimer from '../QuizTimer/QuizTimer';\nimport { useMobile } from '../../hooks/useMobile';\n\n// Função para obter configuração do tipo de quiz\nexport const getQuizTypeConfig = (type: QUIZ_TYPE) => {\n // Configuração centralizada para cada tipo de quiz\n const QUIZ_TYPE_CONFIG = {\n [QUIZ_TYPE.SIMULADO]: {\n label: 'Simulado',\n article: 'o',\n preposition: 'do',\n },\n [QUIZ_TYPE.QUESTIONARIO]: {\n label: 'Questionário',\n article: 'o',\n preposition: 'do',\n },\n [QUIZ_TYPE.ATIVIDADE]: {\n label: 'Atividade',\n article: 'a',\n preposition: 'da',\n },\n [QUIZ_TYPE.AULA_RECOMENDADA]: {\n label: 'Aula recomendada',\n article: 'a',\n preposition: 'da',\n },\n } as const;\n\n const config = QUIZ_TYPE_CONFIG[type];\n return config || QUIZ_TYPE_CONFIG[QUIZ_TYPE.SIMULADO]; // fallback para simulado\n};\n\n// Função para obter o label do tipo\nexport const getTypeLabel = (type: QUIZ_TYPE) => {\n return getQuizTypeConfig(type).label;\n};\n\n// Função para obter o artigo (o/a)\nexport const getQuizArticle = (type: QUIZ_TYPE) => {\n return getQuizTypeConfig(type).article;\n};\n\n// Função para obter a preposição (do/da)\nexport const getQuizPreposition = (type: QUIZ_TYPE) => {\n return getQuizTypeConfig(type).preposition;\n};\n\n// Função para gerar título de conclusão\nexport const getCompletionTitle = (type: QUIZ_TYPE) => {\n const config = getQuizTypeConfig(type);\n return `Você concluiu ${config.article} ${config.label.toLowerCase()}!`;\n};\n\n// Função para gerar o rótulo do botão de retorno no modal de conclusão\nexport const getGoBackButtonLabel = (type: QUIZ_TYPE): string => {\n if (type === QUIZ_TYPE.SIMULADO) return 'Ir para simulados';\n if (type === QUIZ_TYPE.QUESTIONARIO) return 'Ir para aulas';\n if (type === QUIZ_TYPE.ATIVIDADE) return 'Ir para atividades';\n if (type === QUIZ_TYPE.AULA_RECOMENDADA) return 'Ir para aulas recomendadas';\n return 'Ir para simulados';\n};\n\n// Função para gerar texto de confirmação de saída\nexport const getExitConfirmationText = (type: QUIZ_TYPE) => {\n const config = getQuizTypeConfig(type);\n // QUESTIONARIO não tem rascunho: ao sair, as respostas são perdidas.\n // Demais tipos (SIMULADO, ATIVIDADE, AULA_RECOMENDADA e fallback) salvam o\n // progresso, então o aluno pode continuar depois de onde parou.\n if (type === QUIZ_TYPE.QUESTIONARIO) {\n return `Se você sair ${config.preposition} ${config.label.toLowerCase()} agora, todas as respostas serão perdidas.`;\n }\n return `Se você sair ${config.preposition} ${config.label.toLowerCase()} agora, poderá continuar de onde parou depois.`;\n};\n\n// Função para gerar texto de confirmação de finalização\nexport const getFinishConfirmationText = (type: QUIZ_TYPE) => {\n const config = getQuizTypeConfig(type);\n return `Tem certeza que deseja finalizar ${config.article} ${config.label.toLowerCase()}?`;\n};\n\nconst Quiz = forwardRef<\n HTMLDivElement,\n { children: ReactNode; className?: string; variant?: 'result' | 'default' }\n>(({ children, className, variant = QuizVariant.DEFAULT, ...props }, ref) => {\n const { setVariant } = useQuizStore();\n\n useEffect(() => {\n setVariant(variant as QuizVariant);\n }, [variant, setVariant]);\n\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {children}\n </div>\n );\n});\n\nconst QuizTitle = forwardRef<\n HTMLDivElement,\n { className?: string; onBack?: () => void; showTimer?: boolean }\n>(({ className, onBack, showTimer = false, ...props }, ref) => {\n const {\n quiz,\n currentQuestionIndex,\n getTotalQuestions,\n getQuizTitle,\n isStarted,\n } = useQuizStore();\n\n const [showExitConfirmation, setShowExitConfirmation] = useState(false);\n\n const totalQuestions = getTotalQuestions();\n const quizTitle = getQuizTitle();\n\n const handleBackClick = () => {\n if (isStarted) {\n setShowExitConfirmation(true);\n } else {\n actionOnBack();\n }\n };\n\n const handleConfirmExit = () => {\n setShowExitConfirmation(false);\n actionOnBack();\n };\n\n const actionOnBack = () => {\n if (onBack) {\n onBack();\n } else {\n globalThis.history.back();\n }\n };\n\n const handleCancelExit = () => {\n setShowExitConfirmation(false);\n };\n\n return (\n <>\n <div\n ref={ref}\n /*\n * Três colunas em vez de `justify-between`: as laterais são `1fr`\n * iguais, então o título fica centralizado na tela mesmo com o voltar\n * e o cronômetro tendo larguras diferentes. Com flex ele era empurrado\n * para a direita junto do cronômetro.\n */\n className={cn(\n 'grid grid-cols-[1fr_auto_1fr] items-center gap-2 relative p-2',\n className\n )}\n {...props}\n >\n <IconButton\n icon={<CaretLeftIcon size={24} />}\n size=\"md\"\n aria-label=\"Voltar\"\n onClick={handleBackClick}\n className=\"justify-self-start\"\n />\n <span className=\"flex flex-col gap-2 text-center\">\n <Text size=\"md\" weight=\"bold\" color=\"text-text-950\">\n {quizTitle}\n </Text>\n <Text size=\"xs\" color=\"text-text-600\">\n {totalQuestions > 0\n ? `${currentQuestionIndex + 1} de ${totalQuestions}`\n : '0 de 0'}\n </Text>\n </span>\n <div className=\"justify-self-end\">{showTimer && <QuizTimer />}</div>\n </div>\n\n <AlertDialog\n isOpen={showExitConfirmation}\n onChangeOpen={setShowExitConfirmation}\n title=\"Deseja sair?\"\n description={getExitConfirmationText(quiz?.type || QUIZ_TYPE.SIMULADO)}\n cancelButtonLabel=\"Voltar e revisar\"\n submitButtonLabel=\"Sair Mesmo Assim\"\n onSubmit={handleConfirmExit}\n onCancel={handleCancelExit}\n />\n </>\n );\n});\n\nconst QuizHeader = () => {\n const { getCurrentQuestion, getQuestionIndex, quiz } = useQuizStore();\n const currentQuestion = getCurrentQuestion();\n let currentId =\n currentQuestion && 'questionId' in currentQuestion\n ? (currentQuestion.questionId as string)\n : currentQuestion?.id;\n const questionIndex = getQuestionIndex(currentId!);\n\n const questionNumber = currentQuestion\n ? `Questão ${questionIndex.toString().padStart(2, '0')}`\n : 'Questão';\n\n const showExamInfo = shouldShowExamInfo(quiz);\n const examInfo = showExamInfo\n ? formatExamInfo(currentQuestion?.examBoard, currentQuestion?.examYear)\n : '';\n\n const title = examInfo ? `${questionNumber} ${examInfo}` : questionNumber;\n\n return (\n <HeaderAlternative\n title={title}\n subTitle={currentQuestion?.knowledgeMatrix?.[0]?.topic?.name ?? ''}\n content={currentQuestion?.statement ?? ''}\n />\n );\n};\n\nconst QuizContent = ({ paddingBottom }: { paddingBottom?: string }) => {\n const { getCurrentQuestion } = useQuizStore();\n const { isMobile } = useMobile();\n const currentQuestion = getCurrentQuestion();\n\n // `QuizFooter` is `position: fixed`, so it sits on top of the content instead\n // of taking space in the flow — without room reserved here, the last\n // alternative ends up underneath it and unreadable. The bar is taller on a\n // phone, where its controls stack into two rows.\n const contentPaddingBottom = paddingBottom ?? (isMobile ? 'pb-32' : 'pb-24');\n const questionComponents: Record<\n string,\n ComponentType<QuizVariantInterface>\n > = {\n [QUESTION_TYPE.ALTERNATIVA]: QuizAlternative,\n [QUESTION_TYPE.MULTIPLA_ESCOLHA]: QuizMultipleChoice,\n [QUESTION_TYPE.DISSERTATIVA]: QuizDissertative,\n [QUESTION_TYPE.VERDADEIRO_FALSO]: QuizTrueOrFalse,\n [QUESTION_TYPE.RELACIONAR]: QuizConnectDots,\n [QUESTION_TYPE.PREENCHER_LACUNAS]: QuizFill,\n [QUESTION_TYPE.IMAGEM]: QuizImageQuestion,\n };\n\n const QuestionComponent = currentQuestion\n ? questionComponents[currentQuestion.questionType]\n : null;\n\n if (!QuestionComponent) {\n return (\n <Text size=\"md\" weight=\"medium\" className=\"text-text-950 text-md\">\n Tipo de questão não suportado\n </Text>\n );\n }\n\n // The teacher's comment is no longer echoed here: in the result variant it\n // lives behind the \"Ver comentário\" button in the footer, so it is not shown\n // twice on the same screen.\n return <QuestionComponent paddingBottom={contentPaddingBottom} />;\n};\n\ninterface QuizVariantInterface {\n paddingBottom?: string;\n}\n\nconst QuizQuestionList = ({\n filterType = 'all',\n onQuestionClick,\n}: {\n filterType?: string;\n onQuestionClick?: () => void;\n} = {}) => {\n const {\n getQuestionsGroupedBySubject,\n goToQuestion,\n getQuestionStatusFromUserAnswers,\n getQuestionIndex,\n quiz,\n } = useQuizStore();\n\n const showExamInfo = shouldShowExamInfo(quiz);\n\n const groupedQuestions = getQuestionsGroupedBySubject();\n const getQuestionStatus = (questionId: string) => {\n return getQuestionStatusFromUserAnswers(questionId);\n };\n const filteredGroupedQuestions = Object.entries(groupedQuestions).reduce(\n (acc, [subjectId, questions]) => {\n const filteredQuestions = questions.filter((question) => {\n const status = getQuestionStatus(question.id);\n switch (filterType) {\n case 'answered':\n return status === 'answered';\n case 'unanswered':\n return status === 'unanswered' || status === 'skipped';\n default:\n return true;\n }\n });\n\n if (filteredQuestions.length > 0) {\n acc[subjectId] = filteredQuestions;\n }\n\n return acc;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {} as { [key: string]: any[] }\n );\n\n const getStatusLabel = (status: string) => {\n switch (status) {\n case 'answered':\n return 'Respondida';\n case 'skipped':\n return 'Em branco';\n default:\n return 'Em branco';\n }\n };\n return (\n <div className=\"space-y-6 px-4 h-full\">\n {Object.entries(filteredGroupedQuestions).length == 0 && (\n <div className=\"flex items-center justify-center text-gray-500 py-8 h-full\">\n <p className=\"text-lg\">Nenhum resultado</p>\n </div>\n )}\n {Object.entries(filteredGroupedQuestions).map(\n ([subjectId, questions]) => (\n <section key={subjectId} className=\"flex flex-col gap-2\">\n <span className=\"pt-6 pb-4 flex flex-row gap-2\">\n <div className=\"bg-primary-500 p-1 rounded-sm flex items-center justify-center\">\n <BookOpenIcon size={17} className=\"text-white\" />\n </div>\n <p className=\"text-text-800 font-bold text-lg\">\n {questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ??\n 'Sem componente curricular'}\n </p>\n </span>\n\n <ul className=\"flex flex-col gap-2\">\n {questions.map((question) => {\n const status = getQuestionStatus(question.id);\n const questionNumber = getQuestionIndex(question.id);\n const examInfo = showExamInfo\n ? formatExamInfo(question.examBoard, question.examYear)\n : '';\n const questionTitle = `Questão ${questionNumber.toString().padStart(2, '0')}`;\n const header = examInfo\n ? `${questionTitle} ${examInfo}`\n : questionTitle;\n return (\n <CardStatus\n key={question.id}\n header={header}\n label={getStatusLabel(status)}\n onClick={() => {\n goToQuestion(questionNumber - 1);\n onQuestionClick?.();\n }}\n />\n );\n })}\n </ul>\n </section>\n )\n )}\n </div>\n );\n};\n\n/**\n * Shared layout for the quiz result modals (generic result, all-correct and\n * all-incorrect questionnaire variants): a centered image, a title and a\n * footer with action buttons.\n */\nconst QuizResultModal = ({\n isOpen,\n onClose,\n image,\n showImagePlaceholder = true,\n title,\n description,\n footer,\n}: {\n isOpen: boolean;\n onClose: () => void;\n image?: ReactNode;\n showImagePlaceholder?: boolean;\n title: ReactNode;\n description: ReactNode;\n footer: ReactNode;\n}) => (\n <Modal\n isOpen={isOpen}\n onClose={onClose}\n title=\"\"\n closeOnEscape={false}\n hideCloseButton\n size={'md'}\n >\n <div className=\"flex flex-col w-full h-full items-center justify-center gap-4\">\n {image ? (\n <div className=\"w-[282px] h-auto\">{image}</div>\n ) : (\n showImagePlaceholder && (\n <div className=\"w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center\">\n <Text as=\"span\" size=\"sm\" color=\"text-gray-500\">\n Imagem de resultado\n </Text>\n </div>\n )\n )}\n <div className=\"flex flex-col gap-2 text-center\">\n <Text as=\"h2\" size=\"lg\" weight=\"bold\">\n {title}\n </Text>\n {description}\n </div>\n {footer}\n </div>\n </Modal>\n);\n\n/**\n * Correction of the question currently on screen, resolved once.\n *\n * A dissertativa may have been graded by the AI. The teacher's text wins when it\n * exists, the AI's stands otherwise; the two are never merged — the backend\n * keeps them in separate columns precisely so a review does not destroy the\n * original verdict — and `correctionSource` says which one is on screen.\n *\n * It lives here, and not inline in `QuizFooter`, because both the footer (for\n * the modal body and title) and `QuizReviewActions` (for the buttons) need the\n * same four values, and deriving them twice would be two chances to disagree.\n *\n * @returns The effective comment plus the fields the tag and the title read\n */\nconst useCurrentCorrection = () => {\n const { getCurrentQuestion, getQuestionResultByQuestionId } = useQuizStore();\n\n const currentQuestion = getCurrentQuestion();\n const result = currentQuestion\n ? getQuestionResultByQuestionId(currentQuestion.id)\n : null;\n\n return {\n comment: resolveCorrectionText({ ...result }),\n correctionSource: result?.correctionSource,\n aiCorrectionStatus: result?.aiCorrectionStatus,\n };\n};\n\n/**\n * Title for the per-question feedback modal, phrased for whoever wrote it.\n *\n * Calling an AI correction \"Comentário do professor\" would be a lie the tag\n * inside the modal immediately contradicts, so both are derived from the same\n * `correctionSource`.\n *\n * @param correctionSource - Who produced the correction on display\n * @returns The modal title\n */\nconst getCorrectionModalTitle = (\n correctionSource?: CORRECTION_SOURCE | null\n): string => {\n if (correctionSource === CORRECTION_SOURCE.IA) {\n return 'Correção por IA';\n }\n\n if (correctionSource === CORRECTION_SOURCE.IA_PROFESSOR) {\n return 'Correção revisada pelo professor';\n }\n\n return 'Comentário do professor';\n};\n\n/**\n * The review bar's question-scoped actions: see the resolution, see the correction.\n *\n * Split out of `QuizFooter` because the two bars do different jobs — the\n * `default` one navigates between questions, this one reads a question already\n * graded — and because the four conditions the correction needs pushed the\n * footer past the cognitive-complexity limit while sitting in the middle of\n * unrelated navigation markup.\n *\n * @param props - Callbacks that open the footer's modals\n * @returns JSX element\n */\nconst QuizReviewActions = ({\n onOpenResolution,\n onOpenComment,\n className,\n}: {\n onOpenResolution: () => void;\n onOpenComment: () => void;\n readonly className?: string;\n}) => {\n const { getCurrentQuestion } = useQuizStore();\n const { comment, correctionSource, aiCorrectionStatus } =\n useCurrentCorrection();\n\n const currentQuestion = getCurrentQuestion();\n const hasResolution = Boolean(currentQuestion?.solutionExplanation);\n const isAiCorrecting = aiCorrectionStatus === AI_CORRECTION_STATUS.PENDING;\n const commentLabel =\n correctionSource === CORRECTION_SOURCE.IA\n ? 'Ver correção da IA'\n : 'Ver comentário';\n\n return (\n <div className={className}>\n {hasResolution && (\n <Button\n variant=\"solid\"\n action=\"primary\"\n size=\"large\"\n onClick={onOpenResolution}\n >\n Ver resolução\n </Button>\n )}\n {comment && (\n <Button\n variant=\"outline\"\n action=\"primary\"\n size=\"large\"\n onClick={onOpenComment}\n >\n {commentLabel}\n </Button>\n )}\n {/* Sem comentário ainda, mas a IA está corrigindo: o aluno acaba de\n entregar e chegou aqui antes do feedback existir. Dizer que está a\n caminho é melhor do que não mostrar nada. */}\n {!comment && isAiCorrecting && (\n <CorrectionSourceTag\n aiCorrectionStatus={aiCorrectionStatus}\n className=\"self-center\"\n />\n )}\n </div>\n );\n};\n\n/**\n * What the completion modal shows instead of the score.\n *\n * Some exams are not corrected on the spot — the in-classroom ENEM simulation\n * is graded later — so telling the student how many they got right would be\n * wrong. With this set, finishing opens a modal with only this content and\n * one button.\n */\nexport interface QuizCompletionOverride {\n title: ReactNode;\n description: ReactNode;\n buttonLabel: string;\n onConfirm: () => void;\n}\n\nconst QuizFooter = forwardRef<\n HTMLDivElement,\n {\n className?: string;\n onGoToSimulated?: () => void;\n onDetailResult?: () => void;\n handleFinishSimulated?: () => void;\n onGoToNextModule?: () => void;\n onRepeat?: () => void;\n onTryLater?: () => void;\n resultImageComponent?: ReactNode;\n resultIncorrectImageComponent?: ReactNode;\n /** Replaces the score modal; see `QuizCompletionOverride`. */\n completionOverride?: QuizCompletionOverride;\n }\n>(\n (\n {\n className,\n onGoToSimulated,\n onDetailResult,\n handleFinishSimulated,\n onGoToNextModule,\n onRepeat,\n onTryLater,\n resultImageComponent,\n resultIncorrectImageComponent,\n completionOverride,\n ...props\n },\n ref\n ) => {\n const {\n quiz,\n currentQuestionIndex,\n getTotalQuestions,\n goToNextQuestion,\n goToPreviousQuestion,\n getUnansweredQuestionsFromUserAnswers,\n getCurrentAnswer,\n skipQuestion,\n skipCurrentQuestionIfUnanswered,\n getCurrentQuestion,\n getQuestionStatusFromUserAnswers,\n variant,\n getQuestionResultStatistics,\n } = useQuizStore();\n\n // The review bar carries four controls. Below ~500px they no longer fit on\n // one line, so the actions and the pagination stack into two centred rows.\n const { isMobile } = useMobile();\n\n const totalQuestions = getTotalQuestions();\n const isFirstQuestion = currentQuestionIndex === 0;\n const isLastQuestion = currentQuestionIndex === totalQuestions - 1;\n const currentAnswer = getCurrentAnswer();\n const currentQuestion = getCurrentQuestion();\n const {\n comment: teacherComment,\n correctionSource,\n aiCorrectionStatus,\n } = useCurrentCorrection();\n const isCurrentQuestionSkipped = currentQuestion\n ? getQuestionStatusFromUserAnswers(currentQuestion.id) === 'skipped'\n : false;\n // Sistema unificado de controle de modais\n const [activeModal, setActiveModal] = useState<string | null>(null);\n const [filterType, setFilterType] = useState<string>('all');\n\n // Funções para controlar modais\n const openModal = (modalName: string) => setActiveModal(modalName);\n const closeModal = () => setActiveModal(null);\n const isModalOpen = (modalName: string) => activeModal === modalName;\n const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();\n const allQuestions = getTotalQuestions();\n const stats = getQuestionResultStatistics();\n const correctAnswers = stats?.correctAnswers;\n const quizType = quiz?.type || QUIZ_TYPE.SIMULADO;\n const quizTypeLabel = getTypeLabel(quizType);\n // Real subtopic name, used to label the questionnaire completion modals.\n // The backend always populates the question knowledge matrix, so this is\n // available as soon as the quiz is loaded.\n const moduleName =\n quiz?.questions?.[0]?.knowledgeMatrix?.[0]?.subtopic?.name;\n\n // Submits the answers and opens the correct result modal. Statistics must\n // be read AFTER handleFinishSimulated, which is what populates\n // questionsResult in the store (the render-time values are still empty).\n const submitAndOpenResultModal = async () => {\n if (handleFinishSimulated) {\n await Promise.resolve(handleFinishSimulated());\n }\n\n if (completionOverride) {\n openModal('modalCompletionOverride');\n return;\n }\n\n const latestStats = getQuestionResultStatistics();\n const latestCorrect = latestStats?.correctAnswers;\n const latestTotal = latestStats?.totalAnswered;\n\n if (\n quizType === QUIZ_TYPE.QUESTIONARIO &&\n typeof latestCorrect === 'number' &&\n typeof latestTotal === 'number' &&\n latestCorrect === latestTotal\n ) {\n openModal('modalQuestionnaireAllCorrect');\n return;\n }\n\n if (\n quizType === QUIZ_TYPE.QUESTIONARIO &&\n typeof latestCorrect === 'number' &&\n latestCorrect === 0\n ) {\n openModal('modalQuestionnaireAllIncorrect');\n return;\n }\n\n openModal('modalResult');\n };\n\n const handleFinishQuiz = async () => {\n // Marca a questão atual como pulada se não foi respondida\n skipCurrentQuestionIfUnanswered();\n\n if (unansweredQuestions.length > 0) {\n openModal('alertDialog');\n return;\n }\n\n try {\n await submitAndOpenResultModal();\n } catch (err) {\n console.error('handleFinishSimulated failed:', err);\n }\n };\n\n const handleAlertSubmit = async () => {\n try {\n await submitAndOpenResultModal();\n } catch (err) {\n console.error('handleFinishSimulated failed:', err);\n closeModal();\n }\n };\n\n return (\n <>\n <footer\n ref={ref}\n className={cn(\n 'w-full px-2 bg-background lg:max-w-[1000px] not-lg:max-w-[calc(100vw-32px)] border-t border-border-50 fixed bottom-0 min-h-[80px] flex flex-row justify-between items-center',\n className\n )}\n {...props}\n >\n {variant === 'default' ? (\n <>\n <div className=\"flex flex-row items-center gap-1\">\n <IconButton\n icon={<SquaresFourIcon size={24} className=\"text-text-950\" />}\n size=\"md\"\n onClick={() => openModal('modalNavigate')}\n />\n\n {isFirstQuestion ? (\n <Button\n variant=\"outline\"\n size=\"small\"\n onClick={() => {\n skipQuestion();\n goToNextQuestion();\n }}\n >\n Pular\n </Button>\n ) : (\n <Button\n size=\"medium\"\n variant=\"link\"\n action=\"primary\"\n iconLeft={<CaretLeftIcon size={18} />}\n onClick={() => {\n goToPreviousQuestion();\n }}\n >\n Voltar\n </Button>\n )}\n </div>\n\n {!isFirstQuestion && !isLastQuestion && (\n <Button\n size=\"small\"\n variant=\"outline\"\n action=\"primary\"\n onClick={() => {\n skipQuestion();\n goToNextQuestion();\n }}\n >\n Pular\n </Button>\n )}\n\n {isLastQuestion ? (\n <Button\n size=\"medium\"\n variant=\"solid\"\n action=\"primary\"\n onClick={handleFinishQuiz}\n >\n Finalizar\n </Button>\n ) : (\n <Button\n size=\"medium\"\n variant=\"link\"\n action=\"primary\"\n iconRight={<CaretRightIcon size={18} />}\n disabled={!currentAnswer && !isCurrentQuestionSkipped}\n onClick={() => {\n goToNextQuestion();\n }}\n >\n Avançar\n </Button>\n )}\n </>\n ) : (\n <div\n className={cn(\n 'flex w-full items-center gap-2',\n isMobile ? 'flex-col py-2' : 'flex-row'\n )}\n >\n <QuizReviewActions\n className={cn(\n 'flex flex-row items-center gap-2',\n isMobile && 'justify-center'\n )}\n onOpenResolution={() => openModal('modalResolution')}\n onOpenComment={() => openModal('modalTeacherComment')}\n />\n {/* On a wide bar the pagination sits at the far end, away from the\n actions that act on the question being read; stacked, it is\n centred under them. */}\n <div\n className={cn(\n 'flex flex-row items-center gap-2',\n isMobile ? 'justify-center' : 'flex-1 justify-end'\n )}\n >\n <Button\n variant=\"outline\"\n action=\"primary\"\n size=\"medium\"\n aria-label=\"Questão anterior\"\n disabled={isFirstQuestion}\n onClick={goToPreviousQuestion}\n >\n <CaretLeftIcon size={18} />\n </Button>\n <Button\n variant=\"outline\"\n action=\"primary\"\n size=\"medium\"\n aria-label=\"Próxima questão\"\n disabled={isLastQuestion}\n onClick={goToNextQuestion}\n >\n <CaretRightIcon size={18} />\n </Button>\n </div>\n </div>\n )}\n </footer>\n\n <AlertDialog\n isOpen={isModalOpen('alertDialog')}\n onChangeOpen={(open) =>\n open ? openModal('alertDialog') : closeModal()\n }\n title={`Finalizar ${quizTypeLabel.toLowerCase()}?`}\n description={\n unansweredQuestions.length > 0\n ? `Você deixou as questões ${unansweredQuestions.join(', ')} sem resposta. Finalizar agora pode impactar seu desempenho.`\n : getFinishConfirmationText(quizType)\n }\n cancelButtonLabel=\"Voltar e revisar\"\n submitButtonLabel=\"Finalizar Mesmo Assim\"\n onSubmit={handleAlertSubmit}\n />\n\n <QuizResultModal\n isOpen={isModalOpen('modalResult')}\n onClose={closeModal}\n image={resultImageComponent}\n title={getCompletionTitle(quizType)}\n description={\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n Você acertou {correctAnswers ?? '--'} de {allQuestions} questões.\n </Text>\n }\n footer={\n <div className=\"px-6 flex flex-row items-center gap-2 w-full\">\n <Button\n variant=\"outline\"\n className=\"w-full\"\n size=\"small\"\n onClick={onGoToSimulated}\n >\n {getGoBackButtonLabel(quizType)}\n </Button>\n\n <Button className=\"w-full\" onClick={onDetailResult}>\n Detalhar resultado\n </Button>\n </div>\n }\n />\n\n {completionOverride && (\n <QuizResultModal\n isOpen={isModalOpen('modalCompletionOverride')}\n onClose={closeModal}\n image={resultImageComponent}\n title={completionOverride.title}\n description={\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n {completionOverride.description}\n </Text>\n }\n footer={\n <div className=\"px-6 flex flex-row items-center w-full\">\n <Button\n className=\"w-full\"\n onClick={completionOverride.onConfirm}\n data-testid=\"quiz-completion-override-confirm\"\n >\n {completionOverride.buttonLabel}\n </Button>\n </div>\n }\n />\n )}\n\n <Modal\n isOpen={isModalOpen('modalNavigate')}\n onClose={closeModal}\n title=\"Questões\"\n size={'lg'}\n >\n <div className=\"flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]\">\n <div className=\"flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0\">\n <p className=\"text-text-950 font-bold text-lg\">Filtrar por</p>\n <span className=\"max-w-[266px]\">\n <Select value={filterType} onValueChange={setFilterType}>\n <SelectTrigger\n variant=\"rounded\"\n className=\"max-w-[266px] min-w-[160px]\"\n >\n <SelectValue placeholder=\"Selecione uma opção\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">Todas</SelectItem>\n <SelectItem value=\"unanswered\">Em branco</SelectItem>\n <SelectItem value=\"answered\">Respondidas</SelectItem>\n </SelectContent>\n </Select>\n </span>\n </div>\n\n <div className=\"flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto\">\n <QuizQuestionList\n filterType={filterType}\n onQuestionClick={closeModal}\n />\n </div>\n </div>\n </Modal>\n\n <Modal\n isOpen={isModalOpen('modalResolution')}\n onClose={closeModal}\n title=\"Resolução\"\n size={'lg'}\n >\n <HtmlMathRenderer\n content={currentQuestion?.solutionExplanation || ''}\n className=\"text-text-950 text-base\"\n />\n </Modal>\n\n <Modal\n isOpen={isModalOpen('modalTeacherComment')}\n onClose={closeModal}\n title={getCorrectionModalTitle(correctionSource)}\n size={'lg'}\n >\n {/* A tag fica dentro do modal, junto do texto: é ela que diz se o que\n está sendo lido saiu da IA, do professor, ou da IA revisada por\n ele. Sem isso o título sozinho teria que carregar essa informação\n em toda variação. */}\n <CorrectionSourceTag\n correctionSource={correctionSource}\n aiCorrectionStatus={aiCorrectionStatus}\n className=\"mb-3\"\n />\n {/* Plain text on purpose: the teacher writes this in a bare textarea,\n so running it through the HTML/LaTeX renderer would change what\n they typed. `whitespace-pre-wrap` keeps their line breaks. The AI\n feedback is plain text for the same reason. */}\n <Text\n size=\"md\"\n className=\"text-text-950 whitespace-pre-wrap break-words\"\n >\n {teacherComment}\n </Text>\n </Modal>\n\n <QuizResultModal\n isOpen={isModalOpen('modalQuestionnaireAllCorrect')}\n onClose={closeModal}\n image={resultImageComponent}\n title=\"🎉 Parabéns!\"\n description={\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n {moduleName\n ? `Você concluiu o módulo ${moduleName}.`\n : 'Você concluiu o questionário!'}\n </Text>\n }\n footer={\n <div className=\"px-6 flex flex-row items-center gap-2 w-full\">\n <Button className=\"w-full\" onClick={onGoToNextModule}>\n {getGoBackButtonLabel(quizType)}\n </Button>\n </div>\n }\n />\n\n <QuizResultModal\n isOpen={isModalOpen('modalQuestionnaireAllIncorrect')}\n onClose={closeModal}\n image={resultIncorrectImageComponent}\n showImagePlaceholder={false}\n title=\"😕 Não foi dessa vez...\"\n description={\n <>\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n Você tirou 0 no questionário, mas não se preocupe! Isso é apenas\n uma oportunidade de aprendizado.\n </Text>\n\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n Que tal tentar novamente para melhorar sua nota? Estamos aqui\n para te ajudar a entender o conteúdo e evoluir.\n </Text>\n\n {quiz?.canRetry && (\n <Text as=\"p\" size=\"sm\" color=\"text-text-500\">\n Clique em Repetir Questionário e mostre do que você é capaz!\n 💪\n </Text>\n )}\n </>\n }\n footer={\n <div className=\"flex flex-row justify-center items-center gap-2 w-full\">\n {quiz?.canRetry && (\n <Button\n type=\"button\"\n variant=\"link\"\n size=\"small\"\n className=\"w-auto\"\n onClick={() => {\n closeModal();\n openModal('alertDialogTryLater');\n }}\n >\n Tentar depois\n </Button>\n )}\n\n <Button\n variant=\"outline\"\n size=\"small\"\n className=\"w-auto\"\n onClick={onDetailResult}\n >\n Detalhar resultado\n </Button>\n\n {quiz?.canRetry ? (\n <Button className=\"w-auto\" size=\"small\" onClick={onRepeat}>\n Repetir questionário\n </Button>\n ) : (\n <Button\n className=\"w-auto\"\n size=\"small\"\n onClick={onGoToSimulated}\n >\n {getGoBackButtonLabel(quizType)}\n </Button>\n )}\n </div>\n }\n />\n\n <AlertDialog\n isOpen={isModalOpen('alertDialogTryLater')}\n onChangeOpen={(open) =>\n open ? openModal('alertDialogTryLater') : closeModal()\n }\n title=\"Tentar depois?\"\n description={\n 'Você optou por refazer o questionário mais tarde.\\n\\nLembre-se: enquanto não refazer o questionário, sua nota permanecerá 0 no sistema.'\n }\n cancelButtonLabel=\"Repetir questionário\"\n submitButtonLabel=\"Tentar depois\"\n onSubmit={() => {\n onTryLater?.();\n closeModal();\n }}\n onCancel={() => {\n onRepeat?.();\n closeModal();\n }}\n />\n </>\n );\n }\n);\n\nexport {\n QuizTitle,\n Quiz,\n QuizHeader,\n QuizContent,\n QuizFooter,\n QuizQuestionList,\n};\n"]}
@@ -2,7 +2,7 @@
2
2
  import { lazy, Suspense, Component } from "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  var RichEditorCore = lazy(
5
- () => import("./RichEditorCore-QZYPHNRY.mjs").then((module) => ({
5
+ () => import("./RichEditorCore-TLAFZ5XG.mjs").then((module) => ({
6
6
  default: module.RichEditor
7
7
  }))
8
8
  );
@@ -93,4 +93,4 @@ function MissingDependenciesErrorFallback(error) {
93
93
  export {
94
94
  RichEditor
95
95
  };
96
- //# sourceMappingURL=chunk-TAABXGZL.mjs.map
96
+ //# sourceMappingURL=chunk-O3JP6ZMQ.mjs.map
@@ -9,7 +9,7 @@ var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
9
9
  var _chunkFPOKJGC6js = require('./chunk-FPOKJGC6.js');
10
10
 
11
11
 
12
- var _chunkXX4WE4TLjs = require('./chunk-XX4WE4TL.js');
12
+ var _chunk726PIA5Mjs = require('./chunk-726PIA5M.js');
13
13
 
14
14
  // src/components/QuizTimer/QuizTimer.tsx
15
15
  var _Clock = require('@phosphor-icons/react/dist/csr/Clock');
@@ -17,7 +17,7 @@ var _react = require('react');
17
17
  var _jsxruntime = require('react/jsx-runtime');
18
18
  var QuizTimer = _react.forwardRef.call(void 0,
19
19
  ({ className, ...props }, ref) => {
20
- const { timeElapsed, isTimeExceeded } = _chunkXX4WE4TLjs.useQuizStore.call(void 0, );
20
+ const { timeElapsed, isTimeExceeded } = _chunk726PIA5Mjs.useQuizStore.call(void 0, );
21
21
  const exceeded = isTimeExceeded();
22
22
  const formatted = _chunkFPOKJGC6js.formatTimeSpent.call(void 0, timeElapsed);
23
23
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -48,4 +48,4 @@ var QuizTimer_default = QuizTimer;
48
48
 
49
49
 
50
50
  exports.QuizTimer_default = QuizTimer_default;
51
- //# sourceMappingURL=chunk-MFO4S7T5.js.map
51
+ //# sourceMappingURL=chunk-PJOBOBNJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-MFO4S7T5.js","../src/components/QuizTimer/QuizTimer.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACbA,6DAA0B;AAC1B,8BAA2B;AAyBrB,+CAAA;AAPN,IAAM,UAAA,EAAY,+BAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAChC,IAAA,MAAM,EAAE,WAAA,EAAa,eAAe,EAAA,EAAI,2CAAA,CAAa;AACrD,IAAA,MAAM,SAAA,EAAW,cAAA,CAAe,CAAA;AAChC,IAAA,MAAM,UAAA,EAAY,8CAAA,WAA2B,CAAA;AAE7C,IAAA,uBACE,8BAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,KAAA;AAAA,QACV,YAAA,EAAY,CAAA,gBAAA,EAAmB,SAAS,CAAA,EAAA;AAC7B,QAAA;AACT,UAAA;AACA,UAAA;AAEI,UAAA;AAEJ,UAAA;AACF,QAAA;AACI,QAAA;AAEJ,QAAA;AAAiB,0BAAA;AACR,0BAAA;AAET,QAAA;AAAA,MAAA;AACF,IAAA;AAEJ,EAAA;AACF;AAEwB;AAET;ADNoC;AACA;AACA;AACA","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-MFO4S7T5.js","sourcesContent":[null,"import { ClockIcon } from '@phosphor-icons/react/dist/csr/Clock';\nimport { forwardRef } from 'react';\nimport { useQuizStore } from '../Quiz/useQuizStore';\nimport { formatTimeSpent } from '../../utils/activityDetailsUtils';\nimport { cn } from '../../utils/utils';\nimport Text from '../Text/Text';\n\nexport interface QuizTimerProps {\n className?: string;\n}\n\n/**\n * Progressive exam stopwatch, driven entirely by the quiz store.\n *\n * Presentational only: the counting, the pausing and the resume seed all live\n * in `useQuizStore`. Once the configured warning threshold is passed the\n * display turns red and keeps going — going over time is reported, never\n * enforced.\n */\nconst QuizTimer = forwardRef<HTMLDivElement, QuizTimerProps>(\n ({ className, ...props }, ref) => {\n const { timeElapsed, isTimeExceeded } = useQuizStore();\n const exceeded = isTimeExceeded();\n const formatted = formatTimeSpent(timeElapsed);\n\n return (\n <div\n ref={ref}\n role=\"timer\"\n aria-live=\"off\"\n aria-label={`Tempo de prova: ${formatted}${exceeded ? ' — tempo excedido' : ''}`}\n className={cn(\n 'inline-flex flex-row items-center gap-1 tabular-nums',\n 'rounded-md border px-2 py-1',\n exceeded\n ? 'bg-error-background border-error-300 text-error-700'\n : 'bg-info border-info-300 text-info-800',\n className\n )}\n {...props}\n >\n <ClockIcon size={16} weight={exceeded ? 'fill' : 'regular'} />\n <Text as=\"span\" size=\"sm\" weight=\"medium\" color=\"\">\n {formatted}\n </Text>\n </div>\n );\n }\n);\n\nQuizTimer.displayName = 'QuizTimer';\n\nexport default QuizTimer;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-PJOBOBNJ.js","../src/components/QuizTimer/QuizTimer.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACbA,6DAA0B;AAC1B,8BAA2B;AAyBrB,+CAAA;AAPN,IAAM,UAAA,EAAY,+BAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAChC,IAAA,MAAM,EAAE,WAAA,EAAa,eAAe,EAAA,EAAI,2CAAA,CAAa;AACrD,IAAA,MAAM,SAAA,EAAW,cAAA,CAAe,CAAA;AAChC,IAAA,MAAM,UAAA,EAAY,8CAAA,WAA2B,CAAA;AAE7C,IAAA,uBACE,8BAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,KAAA;AAAA,QACV,YAAA,EAAY,CAAA,gBAAA,EAAmB,SAAS,CAAA,EAAA;AAC7B,QAAA;AACT,UAAA;AACA,UAAA;AAEI,UAAA;AAEJ,UAAA;AACF,QAAA;AACI,QAAA;AAEJ,QAAA;AAAiB,0BAAA;AACR,0BAAA;AAET,QAAA;AAAA,MAAA;AACF,IAAA;AAEJ,EAAA;AACF;AAEwB;AAET;ADNoC;AACA;AACA;AACA","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-PJOBOBNJ.js","sourcesContent":[null,"import { ClockIcon } from '@phosphor-icons/react/dist/csr/Clock';\nimport { forwardRef } from 'react';\nimport { useQuizStore } from '../Quiz/useQuizStore';\nimport { formatTimeSpent } from '../../utils/activityDetailsUtils';\nimport { cn } from '../../utils/utils';\nimport Text from '../Text/Text';\n\nexport interface QuizTimerProps {\n className?: string;\n}\n\n/**\n * Progressive exam stopwatch, driven entirely by the quiz store.\n *\n * Presentational only: the counting, the pausing and the resume seed all live\n * in `useQuizStore`. Once the configured warning threshold is passed the\n * display turns red and keeps going — going over time is reported, never\n * enforced.\n */\nconst QuizTimer = forwardRef<HTMLDivElement, QuizTimerProps>(\n ({ className, ...props }, ref) => {\n const { timeElapsed, isTimeExceeded } = useQuizStore();\n const exceeded = isTimeExceeded();\n const formatted = formatTimeSpent(timeElapsed);\n\n return (\n <div\n ref={ref}\n role=\"timer\"\n aria-live=\"off\"\n aria-label={`Tempo de prova: ${formatted}${exceeded ? ' — tempo excedido' : ''}`}\n className={cn(\n 'inline-flex flex-row items-center gap-1 tabular-nums',\n 'rounded-md border px-2 py-1',\n exceeded\n ? 'bg-error-background border-error-300 text-error-700'\n : 'bg-info border-info-300 text-info-800',\n className\n )}\n {...props}\n >\n <ClockIcon size={16} weight={exceeded ? 'fill' : 'regular'} />\n <Text as=\"span\" size=\"sm\" weight=\"medium\" color=\"\">\n {formatted}\n </Text>\n </div>\n );\n }\n);\n\nQuizTimer.displayName = 'QuizTimer';\n\nexport default QuizTimer;\n"]}
@@ -5,7 +5,7 @@ import {
5
5
  QUESTION_STATUS,
6
6
  TrueFalseStatementList,
7
7
  getQuestionStatusBadgeConfig
8
- } from "./chunk-7EXSCXPK.mjs";
8
+ } from "./chunk-DMYETMZG.mjs";
9
9
  import {
10
10
  QuestionCommentField
11
11
  } from "./chunk-22FRIL3I.mjs";
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  DEFAULT_IMAGE_TOLERANCE,
17
17
  ImageAnswerView
18
- } from "./chunk-R7NS5KFE.mjs";
18
+ } from "./chunk-CWUNF7U6.mjs";
19
19
  import {
20
20
  AlternativesList
21
21
  } from "./chunk-ET3BKMTB.mjs";
@@ -1083,4 +1083,4 @@ export {
1083
1083
  SimulationAnswers,
1084
1084
  SimulationsDetailModal
1085
1085
  };
1086
- //# sourceMappingURL=chunk-CWGYVJTQ.mjs.map
1086
+ //# sourceMappingURL=chunk-PORNR2NU.mjs.map
@@ -0,0 +1,33 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/types/enemClassroom.ts
2
+ var ENEM_CLASSROOM_LANGUAGE = {
3
+ INGLES: "INGLES",
4
+ ESPANHOL: "ESPANHOL"
5
+ };
6
+ var ENEM_CLASSROOM_LANGUAGE_LABELS = {
7
+ INGLES: "Ingl\xEAs",
8
+ ESPANHOL: "Espanhol"
9
+ };
10
+ var ENEM_CLASSROOM_PARTICIPATION_STATUS = {
11
+ NOT_STARTED: "NOT_STARTED",
12
+ IN_PROGRESS: "IN_PROGRESS",
13
+ FINISHED: "FINISHED"
14
+ };
15
+ var ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS = {
16
+ bannerTitle: "Simula\xE7\xE3o do ENEM em sala de aula!",
17
+ bannerSubtitle: "",
18
+ bannerText: "Sua prova est\xE1 liberada.",
19
+ bannerItems: [],
20
+ bannerCta: "Toque para come\xE7ar.",
21
+ introVideoText: "Assista \xE0s orienta\xE7\xF5es.",
22
+ introHeading: "Ei, l\xEA isso antes de come\xE7ar!",
23
+ introWarningTitle: "S\xF3 vale em sala de aula",
24
+ introWarningText: "Essa simula\xE7\xE3o precisa ser feita com seu professor presente. N\xE3o vale fazer em casa!"
25
+ };
26
+
27
+
28
+
29
+
30
+
31
+
32
+ exports.ENEM_CLASSROOM_LANGUAGE = ENEM_CLASSROOM_LANGUAGE; exports.ENEM_CLASSROOM_LANGUAGE_LABELS = ENEM_CLASSROOM_LANGUAGE_LABELS; exports.ENEM_CLASSROOM_PARTICIPATION_STATUS = ENEM_CLASSROOM_PARTICIPATION_STATUS; exports.ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS = ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS;
33
+ //# sourceMappingURL=chunk-QF3UKRIJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-QF3UKRIJ.js","../src/types/enemClassroom.ts"],"names":[],"mappings":"AAAA;ACWO,IAAM,wBAAA,EAA0B;AAAA,EACrC,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU;AACZ,CAAA;AAMO,IAAM,+BAAA,EAGT;AAAA,EACF,MAAA,EAAQ,WAAA;AAAA,EACR,QAAA,EAAU;AACZ,CAAA;AAGO,IAAM,oCAAA,EAAsC;AAAA,EACjD,WAAA,EAAa,aAAA;AAAA,EACb,WAAA,EAAa,aAAA;AAAA,EACb,QAAA,EAAU;AACZ,CAAA;AAsEO,IAAM,qCAAA,EAAkE;AAAA,EAC7E,WAAA,EAAa,0CAAA;AAAA,EACb,cAAA,EAAgB,EAAA;AAAA,EAChB,UAAA,EAAY,6BAAA;AAAA,EACZ,WAAA,EAAa,CAAC,CAAA;AAAA,EACd,SAAA,EAAW,wBAAA;AAAA,EACX,cAAA,EAAgB,kCAAA;AAAA,EAChB,YAAA,EAAc,qCAAA;AAAA,EACd,iBAAA,EAAmB,4BAAA;AAAA,EACnB,gBAAA,EACE;AACJ,CAAA;ADzFA;AACA;AACE;AACA;AACA;AACA;AACF,2SAAC","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-QF3UKRIJ.js","sourcesContent":[null,"/**\n * In-classroom ENEM simulation (\"Simulação do ENEM em sala de aula\").\n *\n * Shapes of the student-facing API (`/enem-classroom/*`), shared by the\n * student web app and the backoffice so both read the same vocabulary.\n */\n\n/**\n * Foreign language the student sits the exam in. Picks which of the two\n * language blocks of the exam the student receives.\n */\nexport const ENEM_CLASSROOM_LANGUAGE = {\n INGLES: 'INGLES',\n ESPANHOL: 'ESPANHOL',\n} as const;\n\nexport type EnemClassroomLanguage =\n (typeof ENEM_CLASSROOM_LANGUAGE)[keyof typeof ENEM_CLASSROOM_LANGUAGE];\n\n/** Human labels for each language, in the order the student sees them. */\nexport const ENEM_CLASSROOM_LANGUAGE_LABELS: Record<\n EnemClassroomLanguage,\n string\n> = {\n INGLES: 'Inglês',\n ESPANHOL: 'Espanhol',\n};\n\n/** Where the student stands in the exam. FINISHED is final. */\nexport const ENEM_CLASSROOM_PARTICIPATION_STATUS = {\n NOT_STARTED: 'NOT_STARTED',\n IN_PROGRESS: 'IN_PROGRESS',\n FINISHED: 'FINISHED',\n} as const;\n\nexport type EnemClassroomParticipationStatus =\n (typeof ENEM_CLASSROOM_PARTICIPATION_STATUS)[keyof typeof ENEM_CLASSROOM_PARTICIPATION_STATUS];\n\n/**\n * One socio-economic question asked before the exam starts. Free text with a\n * \"skip\" option — every field is written by the backoffice.\n */\nexport interface EnemClassroomSurveyQuestion {\n id: string;\n position: number;\n /** Short name of the step in the stepper (\"Curso\"). */\n stepLabel: string;\n /** The question itself (\"Você já tem o curso que quer fazer em mente?\"). */\n prompt: string;\n /** Label of the option that opens the text field (\"Se sim, escreva o seu curso\"). */\n inputLabel: string;\n /** Placeholder of the text field (\"Escreva o curso\"). */\n inputPlaceholder: string;\n /** Label of the option that skips the question (\"Não, ainda estou pensando\"). */\n skipLabel: string;\n}\n\n/** The exam as the student sees it before starting. */\nexport interface EnemClassroomExam {\n id: string;\n title: string;\n /** Introduction video shown on the first step; null when there is none. */\n videoUrl: string | null;\n /** How long the student has once they start. */\n durationMinutes: number;\n /**\n * Whether the student picks English or Spanish before starting (ENEM's\n * day 1). Off, the exam has no foreign-language block and the choice step\n * is not shown (day 2).\n */\n languageChoice: boolean;\n /** The texts of the panel card and of the start modal, as the backoffice wrote them. */\n studentTexts: EnemClassroomStudentTexts;\n surveyQuestions: EnemClassroomSurveyQuestion[];\n}\n\n/**\n * Every text the student sees around the exam — the panel card and the\n * introduction step of the start modal. The backoffice rewrites them per\n * exam; the API always sends the full set.\n */\nexport interface EnemClassroomStudentTexts {\n /** The card's first line. */\n bannerTitle: string;\n /** The card's second line; empty hides it. */\n bannerSubtitle: string;\n /** The card's body line. */\n bannerText: string;\n /** Bullet list under the body; empty hides it. */\n bannerItems: string[];\n /** The call to action on the card's right. */\n bannerCta: string;\n /** Above the introduction video; only shown when the exam has one. */\n introVideoText: string;\n /** The heading over the warnings of the introduction step. */\n introHeading: string;\n /** The first warning's title (the other two are fixed). */\n introWarningTitle: string;\n /** The first warning's description. */\n introWarningText: string;\n}\n\n/** The texts the API sends unless the backoffice wrote others; stories and tests start from here. */\nexport const ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS: EnemClassroomStudentTexts = {\n bannerTitle: 'Simulação do ENEM em sala de aula!',\n bannerSubtitle: '',\n bannerText: 'Sua prova está liberada.',\n bannerItems: [],\n bannerCta: 'Toque para começar.',\n introVideoText: 'Assista às orientações.',\n introHeading: 'Ei, lê isso antes de começar!',\n introWarningTitle: 'Só vale em sala de aula',\n introWarningText:\n 'Essa simulação precisa ser feita com seu professor presente. Não vale fazer em casa!',\n};\n\n/** A survey answer; `null` means the student skipped the question. */\nexport interface EnemClassroomSurveyAnswer {\n questionId: string;\n answer: string | null;\n}\n\n/** The student's own record of the exam. */\nexport interface EnemClassroomParticipation {\n status: EnemClassroomParticipationStatus;\n language: EnemClassroomLanguage | null;\n /** ISO 8601 */\n startedAt: string | null;\n /** ISO 8601. `startedAt + durationMinutes`; the exam is submitted at this point. */\n deadlineAt: string | null;\n /** The shared activity behind the exam — what drafts and answers address. */\n activityId: string;\n surveyAnswers: EnemClassroomSurveyAnswer[];\n}\n\n/** `GET /enem-classroom/current` */\nexport interface EnemClassroomCurrentResponse {\n message: string;\n data: {\n /** Null when the institution has no active exam. */\n exam: EnemClassroomExam | null;\n /** Null until the student starts. */\n participation: EnemClassroomParticipation | null;\n };\n}\n\n/** `POST /enem-classroom/exams/:id/start` body */\nexport interface EnemClassroomStartPayload {\n /** Null when the exam offers no language choice. */\n language: EnemClassroomLanguage | null;\n surveyAnswers: EnemClassroomSurveyAnswer[];\n}\n\n/** `POST /enem-classroom/exams/:id/start` response */\nexport interface EnemClassroomStartResponse {\n message: string;\n data: {\n activityId: string;\n startedAt: string;\n deadlineAt: string;\n };\n}\n"]}
@@ -0,0 +1,33 @@
1
+ // src/types/enemClassroom.ts
2
+ var ENEM_CLASSROOM_LANGUAGE = {
3
+ INGLES: "INGLES",
4
+ ESPANHOL: "ESPANHOL"
5
+ };
6
+ var ENEM_CLASSROOM_LANGUAGE_LABELS = {
7
+ INGLES: "Ingl\xEAs",
8
+ ESPANHOL: "Espanhol"
9
+ };
10
+ var ENEM_CLASSROOM_PARTICIPATION_STATUS = {
11
+ NOT_STARTED: "NOT_STARTED",
12
+ IN_PROGRESS: "IN_PROGRESS",
13
+ FINISHED: "FINISHED"
14
+ };
15
+ var ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS = {
16
+ bannerTitle: "Simula\xE7\xE3o do ENEM em sala de aula!",
17
+ bannerSubtitle: "",
18
+ bannerText: "Sua prova est\xE1 liberada.",
19
+ bannerItems: [],
20
+ bannerCta: "Toque para come\xE7ar.",
21
+ introVideoText: "Assista \xE0s orienta\xE7\xF5es.",
22
+ introHeading: "Ei, l\xEA isso antes de come\xE7ar!",
23
+ introWarningTitle: "S\xF3 vale em sala de aula",
24
+ introWarningText: "Essa simula\xE7\xE3o precisa ser feita com seu professor presente. N\xE3o vale fazer em casa!"
25
+ };
26
+
27
+ export {
28
+ ENEM_CLASSROOM_LANGUAGE,
29
+ ENEM_CLASSROOM_LANGUAGE_LABELS,
30
+ ENEM_CLASSROOM_PARTICIPATION_STATUS,
31
+ ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS
32
+ };
33
+ //# sourceMappingURL=chunk-RAHXO5YU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/enemClassroom.ts"],"sourcesContent":["/**\n * In-classroom ENEM simulation (\"Simulação do ENEM em sala de aula\").\n *\n * Shapes of the student-facing API (`/enem-classroom/*`), shared by the\n * student web app and the backoffice so both read the same vocabulary.\n */\n\n/**\n * Foreign language the student sits the exam in. Picks which of the two\n * language blocks of the exam the student receives.\n */\nexport const ENEM_CLASSROOM_LANGUAGE = {\n INGLES: 'INGLES',\n ESPANHOL: 'ESPANHOL',\n} as const;\n\nexport type EnemClassroomLanguage =\n (typeof ENEM_CLASSROOM_LANGUAGE)[keyof typeof ENEM_CLASSROOM_LANGUAGE];\n\n/** Human labels for each language, in the order the student sees them. */\nexport const ENEM_CLASSROOM_LANGUAGE_LABELS: Record<\n EnemClassroomLanguage,\n string\n> = {\n INGLES: 'Inglês',\n ESPANHOL: 'Espanhol',\n};\n\n/** Where the student stands in the exam. FINISHED is final. */\nexport const ENEM_CLASSROOM_PARTICIPATION_STATUS = {\n NOT_STARTED: 'NOT_STARTED',\n IN_PROGRESS: 'IN_PROGRESS',\n FINISHED: 'FINISHED',\n} as const;\n\nexport type EnemClassroomParticipationStatus =\n (typeof ENEM_CLASSROOM_PARTICIPATION_STATUS)[keyof typeof ENEM_CLASSROOM_PARTICIPATION_STATUS];\n\n/**\n * One socio-economic question asked before the exam starts. Free text with a\n * \"skip\" option — every field is written by the backoffice.\n */\nexport interface EnemClassroomSurveyQuestion {\n id: string;\n position: number;\n /** Short name of the step in the stepper (\"Curso\"). */\n stepLabel: string;\n /** The question itself (\"Você já tem o curso que quer fazer em mente?\"). */\n prompt: string;\n /** Label of the option that opens the text field (\"Se sim, escreva o seu curso\"). */\n inputLabel: string;\n /** Placeholder of the text field (\"Escreva o curso\"). */\n inputPlaceholder: string;\n /** Label of the option that skips the question (\"Não, ainda estou pensando\"). */\n skipLabel: string;\n}\n\n/** The exam as the student sees it before starting. */\nexport interface EnemClassroomExam {\n id: string;\n title: string;\n /** Introduction video shown on the first step; null when there is none. */\n videoUrl: string | null;\n /** How long the student has once they start. */\n durationMinutes: number;\n /**\n * Whether the student picks English or Spanish before starting (ENEM's\n * day 1). Off, the exam has no foreign-language block and the choice step\n * is not shown (day 2).\n */\n languageChoice: boolean;\n /** The texts of the panel card and of the start modal, as the backoffice wrote them. */\n studentTexts: EnemClassroomStudentTexts;\n surveyQuestions: EnemClassroomSurveyQuestion[];\n}\n\n/**\n * Every text the student sees around the exam — the panel card and the\n * introduction step of the start modal. The backoffice rewrites them per\n * exam; the API always sends the full set.\n */\nexport interface EnemClassroomStudentTexts {\n /** The card's first line. */\n bannerTitle: string;\n /** The card's second line; empty hides it. */\n bannerSubtitle: string;\n /** The card's body line. */\n bannerText: string;\n /** Bullet list under the body; empty hides it. */\n bannerItems: string[];\n /** The call to action on the card's right. */\n bannerCta: string;\n /** Above the introduction video; only shown when the exam has one. */\n introVideoText: string;\n /** The heading over the warnings of the introduction step. */\n introHeading: string;\n /** The first warning's title (the other two are fixed). */\n introWarningTitle: string;\n /** The first warning's description. */\n introWarningText: string;\n}\n\n/** The texts the API sends unless the backoffice wrote others; stories and tests start from here. */\nexport const ENEM_CLASSROOM_DEFAULT_STUDENT_TEXTS: EnemClassroomStudentTexts = {\n bannerTitle: 'Simulação do ENEM em sala de aula!',\n bannerSubtitle: '',\n bannerText: 'Sua prova está liberada.',\n bannerItems: [],\n bannerCta: 'Toque para começar.',\n introVideoText: 'Assista às orientações.',\n introHeading: 'Ei, lê isso antes de começar!',\n introWarningTitle: 'Só vale em sala de aula',\n introWarningText:\n 'Essa simulação precisa ser feita com seu professor presente. Não vale fazer em casa!',\n};\n\n/** A survey answer; `null` means the student skipped the question. */\nexport interface EnemClassroomSurveyAnswer {\n questionId: string;\n answer: string | null;\n}\n\n/** The student's own record of the exam. */\nexport interface EnemClassroomParticipation {\n status: EnemClassroomParticipationStatus;\n language: EnemClassroomLanguage | null;\n /** ISO 8601 */\n startedAt: string | null;\n /** ISO 8601. `startedAt + durationMinutes`; the exam is submitted at this point. */\n deadlineAt: string | null;\n /** The shared activity behind the exam — what drafts and answers address. */\n activityId: string;\n surveyAnswers: EnemClassroomSurveyAnswer[];\n}\n\n/** `GET /enem-classroom/current` */\nexport interface EnemClassroomCurrentResponse {\n message: string;\n data: {\n /** Null when the institution has no active exam. */\n exam: EnemClassroomExam | null;\n /** Null until the student starts. */\n participation: EnemClassroomParticipation | null;\n };\n}\n\n/** `POST /enem-classroom/exams/:id/start` body */\nexport interface EnemClassroomStartPayload {\n /** Null when the exam offers no language choice. */\n language: EnemClassroomLanguage | null;\n surveyAnswers: EnemClassroomSurveyAnswer[];\n}\n\n/** `POST /enem-classroom/exams/:id/start` response */\nexport interface EnemClassroomStartResponse {\n message: string;\n data: {\n activityId: string;\n startedAt: string;\n deadlineAt: string;\n };\n}\n"],"mappings":";AAWO,IAAM,0BAA0B;AAAA,EACrC,QAAQ;AAAA,EACR,UAAU;AACZ;AAMO,IAAM,iCAGT;AAAA,EACF,QAAQ;AAAA,EACR,UAAU;AACZ;AAGO,IAAM,sCAAsC;AAAA,EACjD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,UAAU;AACZ;AAsEO,IAAM,uCAAkE;AAAA,EAC7E,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,aAAa,CAAC;AAAA,EACd,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,kBACE;AACJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkQFWY46XUjs = require('./chunk-QFWY46XU.js');
3
+ var _chunkIMDS5NQLjs = require('./chunk-IMDS5NQL.js');
4
4
 
5
5
 
6
6
  var _chunkCOMNJBRHjs = require('./chunk-COMNJBRH.js');
@@ -385,7 +385,7 @@ var TrueFalseStatementList = ({
385
385
  {
386
386
  className: _chunkTN3AYOMVjs.cn.call(void 0,
387
387
  "flex flex-row justify-between items-center gap-2 p-2 rounded-md border",
388
- canShowCorrectness && hasAnswered ? _chunkQFWY46XUjs.getStatusStyles.call(void 0, variantCorrect) : ""
388
+ canShowCorrectness && hasAnswered ? _chunkIMDS5NQLjs.getStatusStyles.call(void 0, variantCorrect) : ""
389
389
  ),
390
390
  children: [
391
391
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkANT66KVKjs.Text_default, { as: "span", size: "sm", weight: "normal", color: "text-text-900", children: [
@@ -425,4 +425,4 @@ var TrueFalseStatementList = ({
425
425
 
426
426
 
427
427
  exports.QUESTION_STATUS = QUESTION_STATUS; exports.getQuestionStatusBadgeConfig = getQuestionStatusBadgeConfig; exports.getQuestionStatusFromData = getQuestionStatusFromData; exports.convertApiResponseToCorrectionData = convertApiResponseToCorrectionData; exports.getStatusBadge = getStatusBadge; exports.FillQuestionContent = FillQuestionContent; exports.TrueFalseStatementList = TrueFalseStatementList;
428
- //# sourceMappingURL=chunk-BTZANNVO.js.map
428
+ //# sourceMappingURL=chunk-RQ65U5G2.js.map