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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-3VG5MEMY.js","../src/components/Quiz/QuizResult.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-3VG5MEMY.js","sourcesContent":[null,"import { forwardRef, useEffect, useState } from 'react';\nimport { CardResults, CardStatus } from '../Card/Card';\nimport {\n ANSWER_STATUS,\n Question,\n QuestionResult,\n QUESTION_DIFFICULTY,\n QUIZ_TYPE,\n SUBTYPE_ENUM,\n useQuizStore,\n} from './useQuizStore';\nimport ProgressCircle from '../ProgressCircle/ProgressCircle';\nimport { ClockIcon } from '@phosphor-icons/react/dist/csr/Clock';\nimport ProgressBar from '../ProgressBar/ProgressBar';\nimport { cn, getSubjectColorWithOpacity } from '../../utils/utils';\nimport Badge from '../Badge/Badge';\nimport { useTheme } from '../../hooks/useTheme';\nimport Button from '../Button/Button';\nimport { formatExamInfo, shouldShowExamInfo } from './Quiz.utils';\n\nconst QuizBadge = ({\n subtype,\n}: {\n subtype: SUBTYPE_ENUM | undefined | string;\n}) => {\n switch (subtype) {\n case SUBTYPE_ENUM.PROVA:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam2\" data-testid=\"quiz-badge\">\n Prova\n </Badge>\n );\n case SUBTYPE_ENUM.ENEM_PROVA_1:\n case SUBTYPE_ENUM.ENEM_PROVA_2:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam1\" data-testid=\"quiz-badge\">\n Enem\n </Badge>\n );\n case SUBTYPE_ENUM.VESTIBULAR:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam4\" data-testid=\"quiz-badge\">\n Vestibular\n </Badge>\n );\n case SUBTYPE_ENUM.SIMULADO:\n case SUBTYPE_ENUM.SIMULADAO:\n case undefined:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam3\" data-testid=\"quiz-badge\">\n Simuladão\n </Badge>\n );\n default:\n return (\n <Badge variant=\"solid\" action=\"info\" data-testid=\"quiz-badge\">\n {subtype}\n </Badge>\n );\n }\n};\n\nconst QuizHeaderResult = forwardRef<HTMLDivElement, { className?: string }>(\n ({ className, ...props }, ref) => {\n const {\n getQuestionResultByQuestionId,\n getCurrentQuestion,\n questionsResult,\n } = useQuizStore();\n const [status, setStatus] = useState<ANSWER_STATUS | undefined>(undefined);\n useEffect(() => {\n const cq = getCurrentQuestion();\n if (!cq) {\n setStatus(undefined);\n return;\n }\n const qr = getQuestionResultByQuestionId(cq.id);\n setStatus(qr?.answerStatus);\n }, [\n getCurrentQuestion,\n getQuestionResultByQuestionId,\n getCurrentQuestion()?.id,\n questionsResult,\n ]);\n\n const getClassesByAnswersStatus = () => {\n // Guard para quando status ainda está carregando\n if (status === undefined) {\n return 'bg-gray-100';\n }\n\n switch (status) {\n case ANSWER_STATUS.RESPOSTA_CORRETA:\n return 'bg-success-background';\n case ANSWER_STATUS.RESPOSTA_INCORRETA:\n return 'bg-error-background';\n case ANSWER_STATUS.PENDENTE_AVALIACAO:\n return 'bg-info-background';\n default:\n return 'bg-error-background';\n }\n };\n\n const getLabelByAnswersStatus = () => {\n // Guard para quando status ainda está carregando\n if (status === undefined) {\n return 'Carregando...';\n }\n\n switch (status) {\n case ANSWER_STATUS.RESPOSTA_CORRETA:\n return '🎉 Parabéns!!';\n case ANSWER_STATUS.RESPOSTA_INCORRETA:\n return 'Não foi dessa vez...';\n case ANSWER_STATUS.PENDENTE_AVALIACAO:\n return 'Avaliação pendente';\n case ANSWER_STATUS.NAO_RESPONDIDO:\n return 'Não foi dessa vez...você deixou a resposta em branco';\n default:\n return 'Não foi dessa vez...você deixou a resposta em branco';\n }\n };\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-row items-center gap-10 p-3.5 rounded-xl mb-4',\n getClassesByAnswersStatus(),\n className\n )}\n {...props}\n >\n <p className=\"text-text-950 font-bold text-lg\">Resultado</p>\n <p className=\"text-text-700 text-md\">{getLabelByAnswersStatus()}</p>\n </div>\n );\n }\n);\n\nconst getRetryButtonLabel = (type: QUIZ_TYPE | undefined) => {\n switch (type) {\n case QUIZ_TYPE.ATIVIDADE:\n return 'Refazer atividade';\n case QUIZ_TYPE.QUESTIONARIO:\n return 'Repetir questionário';\n case QUIZ_TYPE.SIMULADO:\n return 'Repetir simulado';\n default:\n return 'Refazer';\n }\n};\n\nconst QuizResultHeaderTitle = forwardRef<\n HTMLDivElement,\n {\n className?: string;\n showBadge?: boolean;\n onRepeat?: () => void;\n canRetry?: boolean;\n }\n>(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {\n const { quiz } = useQuizStore();\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-row pt-4 justify-between items-center',\n className\n )}\n {...props}\n >\n <p className=\"text-text-950 font-bold text-2xl\">Resultado</p>\n <div className=\"flex flex-row gap-3 items-center\">\n {canRetry && onRepeat && (\n <Button\n variant=\"solid\"\n action=\"primary\"\n size=\"medium\"\n onClick={onRepeat}\n >\n {getRetryButtonLabel(quiz?.type)}\n </Button>\n )}\n\n {showBadge && <QuizBadge subtype={quiz?.subtype || undefined} />}\n </div>\n </div>\n );\n});\n\nconst QuizResultTitle = forwardRef<\n HTMLParagraphElement,\n { className?: string }\n>(({ className, ...props }, ref) => {\n const { getQuizTitle } = useQuizStore();\n const quizTitle = getQuizTitle();\n\n return (\n <p\n className={cn('pt-6 pb-4 text-text-950 font-bold text-lg', className)}\n ref={ref}\n {...props}\n >\n {quizTitle}\n </p>\n );\n});\n\n/**\n * Update statistics counters based on difficulty level\n * @param stats - Statistics object to update\n * @param difficulty - Question difficulty level\n * @param isCorrect - Whether the answer is correct\n */\nconst updateDifficultyStats = (\n stats: {\n correctEasyAnswers: number;\n correctMediumAnswers: number;\n correctDifficultAnswers: number;\n totalEasyQuestions: number;\n totalMediumQuestions: number;\n totalDifficultQuestions: number;\n },\n difficulty: string | undefined,\n isCorrect: boolean\n) => {\n if (difficulty === QUESTION_DIFFICULTY.FACIL) {\n stats.totalEasyQuestions++;\n if (isCorrect) stats.correctEasyAnswers++;\n } else if (difficulty === QUESTION_DIFFICULTY.MEDIO) {\n stats.totalMediumQuestions++;\n if (isCorrect) stats.correctMediumAnswers++;\n } else if (difficulty === QUESTION_DIFFICULTY.DIFICIL) {\n stats.totalDifficultQuestions++;\n if (isCorrect) stats.correctDifficultAnswers++;\n }\n};\n\n/**\n * Calculate answer statistics by difficulty level\n * @param answers - Array of question answers\n * @returns Statistics object with counts by difficulty\n */\nconst calculateAnswerStatistics = (\n answers: Array<{\n answerStatus: string;\n difficultyLevel?: string;\n }>\n) => {\n const stats = {\n correctAnswers: 0,\n correctEasyAnswers: 0,\n correctMediumAnswers: 0,\n correctDifficultAnswers: 0,\n totalEasyQuestions: 0,\n totalMediumQuestions: 0,\n totalDifficultQuestions: 0,\n };\n\n for (const answer of answers) {\n const isCorrect = answer.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA;\n\n if (isCorrect) {\n stats.correctAnswers++;\n }\n\n updateDifficultyStats(stats, answer.difficultyLevel, isCorrect);\n }\n\n return stats;\n};\n\nconst QuizResultPerformance = forwardRef<\n HTMLDivElement,\n {\n showDetails?: boolean;\n /**\n * Tempo gasto, dentro do anel. Segue `showDetails` por padrão; existe\n * separado porque uma prova feita no papel tem o desempenho por\n * dificuldade, mas não tem cronômetro — qualquer número ali seria\n * inventado.\n */\n showTimeSpent?: boolean;\n }\n>(({ showDetails = true, showTimeSpent = showDetails, ...props }, ref) => {\n const {\n getTotalQuestions,\n formatTime,\n getQuestionResultStatistics,\n getQuestionResult,\n } = useQuizStore();\n\n const totalQuestions = getTotalQuestions();\n const questionResult = getQuestionResult();\n\n const stats = questionResult\n ? calculateAnswerStatistics(questionResult.answers)\n : {\n correctAnswers: 0,\n correctEasyAnswers: 0,\n correctMediumAnswers: 0,\n correctDifficultAnswers: 0,\n totalEasyQuestions: 0,\n totalMediumQuestions: 0,\n totalDifficultQuestions: 0,\n };\n\n const percentage =\n totalQuestions > 0\n ? Math.round((stats.correctAnswers / totalQuestions) * 100)\n : 0;\n\n const classesJustifyBetween = showDetails\n ? 'justify-between'\n : 'justify-center';\n return (\n <div\n className={cn(\n 'flex flex-row gap-6 p-6 rounded-xl bg-background',\n classesJustifyBetween\n )}\n ref={ref}\n {...props}\n >\n <div className=\"relative\">\n <ProgressCircle\n size=\"medium\"\n variant=\"green\"\n value={percentage}\n showPercentage={false}\n label=\"\"\n />\n\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {showTimeSpent && (\n <div className=\"flex items-center gap-1 mb-1\">\n <ClockIcon size={12} weight=\"regular\" className=\"text-text-800\" />\n <span className=\"text-2xs font-medium text-text-800\">\n {formatTime(\n (getQuestionResultStatistics()?.timeSpent ?? 0) * 60\n )}\n </span>\n </div>\n )}\n\n <div className=\"text-2xl font-medium text-text-800 leading-7\">\n {getQuestionResultStatistics()?.correctAnswers ?? '--'} de{' '}\n {totalQuestions}\n </div>\n\n <div className=\"text-2xs font-medium text-text-600 mt-1\">\n Corretas\n </div>\n </div>\n </div>\n\n {showDetails && (\n <div className=\"flex flex-col gap-4 w-full\">\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctEasyAnswers}\n max={stats.totalEasyQuestions}\n label=\"Fáceis\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctMediumAnswers}\n max={stats.totalMediumQuestions}\n label=\"Médias\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctDifficultAnswers}\n max={stats.totalDifficultQuestions}\n label=\"Difíceis\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n </div>\n )}\n </div>\n );\n});\n\nconst QuizListResult = forwardRef<\n HTMLDivElement,\n {\n className?: string;\n onSubjectClick?: (subject: string) => void;\n }\n>(({ className, onSubjectClick, ...props }, ref) => {\n const { getQuestionsGroupedBySubject } = useQuizStore();\n const { isDark } = useTheme();\n const groupedQuestions = getQuestionsGroupedBySubject();\n const subjectsStats = Object.entries(groupedQuestions).map(\n ([subjectId, questions]) => {\n let correct = 0;\n let incorrect = 0;\n\n for (const question of questions) {\n if (question.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA) {\n correct++;\n } else {\n incorrect++;\n }\n }\n\n return {\n subject: {\n name:\n questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ??\n 'Sem componente curricular',\n id: subjectId,\n color: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.color ?? '',\n icon: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.icon ?? '',\n },\n correct,\n incorrect,\n total: questions.length,\n };\n }\n );\n\n return (\n <section ref={ref} className={className} {...props}>\n <p className=\"pt-6 pb-4 text-text-950 font-bold text-lg\">\n Componentes curriculares\n </p>\n\n <ul className=\"flex flex-col gap-2\">\n {subjectsStats.map((subject) => (\n <li key={subject.subject.id}>\n <CardResults\n onClick={() => onSubjectClick?.(subject.subject.id)}\n className=\"max-w-full\"\n header={subject.subject.name}\n correct_answers={subject.correct}\n incorrect_answers={subject.incorrect}\n icon={subject.subject.icon || 'Book'}\n color={\n getSubjectColorWithOpacity(subject.subject.color, isDark) ||\n undefined\n }\n direction=\"row\"\n />\n </li>\n ))}\n </ul>\n </section>\n );\n});\n\nconst QuizListResultByMateria = ({\n subject,\n onQuestionClick,\n subjectName,\n}: {\n subject: string;\n onQuestionClick: (\n question: Question | QuestionResult['answers'][number]\n ) => void;\n subjectName?: string;\n}) => {\n const { getQuestionsGroupedBySubject, getQuestionIndex, quiz } =\n useQuizStore();\n const groupedQuestions = getQuestionsGroupedBySubject();\n\n const showExamInfo = shouldShowExamInfo(quiz);\n\n const answeredQuestions = groupedQuestions[subject] || [];\n const formattedQuestions =\n subject == 'all'\n ? Object.values(groupedQuestions).flat()\n : answeredQuestions;\n return (\n <div className=\"flex flex-col\">\n <div className=\"flex flex-row pt-4 justify-between\">\n <p className=\"text-text-950 font-bold text-2xl\">\n {subjectName ||\n formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ||\n 'Sem componente curricular'}\n </p>\n </div>\n\n <section className=\"flex flex-col \">\n <p className=\"pt-6 pb-4 text-text-950 font-bold text-lg\">\n Resultado das questões\n </p>\n\n <ul className=\"flex flex-col gap-2 pt-4\">\n {formattedQuestions.map((question) => {\n // questionId exists in QuestionResult answers, id in Question\n const questionId =\n 'questionId' in question ? question.questionId : question.id;\n const questionIndex = getQuestionIndex(questionId);\n\n // examBoard and examYear only exist in Question type - only show for SIMULADO\n const examBoard =\n 'examBoard' in question ? question.examBoard : null;\n const examYear = 'examYear' in question ? question.examYear : null;\n const examInfo = showExamInfo\n ? formatExamInfo(examBoard, examYear)\n : '';\n const questionTitle = `Questão ${questionIndex.toString().padStart(2, '0')}`;\n const header = examInfo\n ? `${questionTitle} ${examInfo}`\n : questionTitle;\n return (\n <li key={question.id}>\n <CardStatus\n className=\"max-w-full\"\n header={header}\n status={(() => {\n if (\n question.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA\n )\n return 'correct';\n if (\n question.answerStatus === ANSWER_STATUS.RESPOSTA_INCORRETA\n )\n return 'incorrect';\n if (question.answerStatus === ANSWER_STATUS.NAO_RESPONDIDO)\n return 'unanswered';\n if (\n question.answerStatus === ANSWER_STATUS.PENDENTE_AVALIACAO\n )\n return 'pending';\n return undefined;\n })()}\n onClick={() => onQuestionClick?.(question)}\n />\n </li>\n );\n })}\n </ul>\n </section>\n </div>\n );\n};\n\nexport {\n QuizListResultByMateria,\n QuizListResult,\n QuizResultPerformance,\n QuizResultTitle,\n QuizResultHeaderTitle,\n QuizHeaderResult,\n};\n"]}
@@ -1,6 +1,7 @@
1
1
  import {
2
- formatExamInfo
3
- } from "./chunk-DDZDNGBU.mjs";
2
+ formatExamInfo,
3
+ shouldShowExamInfo
4
+ } from "./chunk-64WGFT5E.mjs";
4
5
  import {
5
6
  CardResults,
6
7
  CardStatus
@@ -26,7 +27,7 @@ import {
26
27
  } from "./chunk-53ICLDGS.mjs";
27
28
  import {
28
29
  useQuizStore
29
- } from "./chunk-FL4W4S6J.mjs";
30
+ } from "./chunk-MOSP7FR5.mjs";
30
31
 
31
32
  // src/components/Quiz/QuizResult.tsx
32
33
  import { forwardRef, useEffect, useState } from "react";
@@ -366,7 +367,7 @@ var QuizListResultByMateria = ({
366
367
  }) => {
367
368
  const { getQuestionsGroupedBySubject, getQuestionIndex, quiz } = useQuizStore();
368
369
  const groupedQuestions = getQuestionsGroupedBySubject();
369
- const shouldShowExamInfo = quiz?.type === "SIMULADO" /* SIMULADO */;
370
+ const showExamInfo = shouldShowExamInfo(quiz);
370
371
  const answeredQuestions = groupedQuestions[subject] || [];
371
372
  const formattedQuestions = subject == "all" ? Object.values(groupedQuestions).flat() : answeredQuestions;
372
373
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
@@ -378,7 +379,7 @@ var QuizListResultByMateria = ({
378
379
  const questionIndex = getQuestionIndex(questionId);
379
380
  const examBoard = "examBoard" in question ? question.examBoard : null;
380
381
  const examYear = "examYear" in question ? question.examYear : null;
381
- const examInfo = shouldShowExamInfo ? formatExamInfo(examBoard, examYear) : "";
382
+ const examInfo = showExamInfo ? formatExamInfo(examBoard, examYear) : "";
382
383
  const questionTitle = `Quest\xE3o ${questionIndex.toString().padStart(2, "0")}`;
383
384
  const header = examInfo ? `${questionTitle} ${examInfo}` : questionTitle;
384
385
  return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
@@ -413,4 +414,4 @@ export {
413
414
  QuizListResult,
414
415
  QuizListResultByMateria
415
416
  };
416
- //# sourceMappingURL=chunk-ED23HOE6.mjs.map
417
+ //# sourceMappingURL=chunk-5NIU4XJY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Quiz/QuizResult.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport { CardResults, CardStatus } from '../Card/Card';\nimport {\n ANSWER_STATUS,\n Question,\n QuestionResult,\n QUESTION_DIFFICULTY,\n QUIZ_TYPE,\n SUBTYPE_ENUM,\n useQuizStore,\n} from './useQuizStore';\nimport ProgressCircle from '../ProgressCircle/ProgressCircle';\nimport { ClockIcon } from '@phosphor-icons/react/dist/csr/Clock';\nimport ProgressBar from '../ProgressBar/ProgressBar';\nimport { cn, getSubjectColorWithOpacity } from '../../utils/utils';\nimport Badge from '../Badge/Badge';\nimport { useTheme } from '../../hooks/useTheme';\nimport Button from '../Button/Button';\nimport { formatExamInfo, shouldShowExamInfo } from './Quiz.utils';\n\nconst QuizBadge = ({\n subtype,\n}: {\n subtype: SUBTYPE_ENUM | undefined | string;\n}) => {\n switch (subtype) {\n case SUBTYPE_ENUM.PROVA:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam2\" data-testid=\"quiz-badge\">\n Prova\n </Badge>\n );\n case SUBTYPE_ENUM.ENEM_PROVA_1:\n case SUBTYPE_ENUM.ENEM_PROVA_2:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam1\" data-testid=\"quiz-badge\">\n Enem\n </Badge>\n );\n case SUBTYPE_ENUM.VESTIBULAR:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam4\" data-testid=\"quiz-badge\">\n Vestibular\n </Badge>\n );\n case SUBTYPE_ENUM.SIMULADO:\n case SUBTYPE_ENUM.SIMULADAO:\n case undefined:\n return (\n <Badge variant=\"examsOutlined\" action=\"exam3\" data-testid=\"quiz-badge\">\n Simuladão\n </Badge>\n );\n default:\n return (\n <Badge variant=\"solid\" action=\"info\" data-testid=\"quiz-badge\">\n {subtype}\n </Badge>\n );\n }\n};\n\nconst QuizHeaderResult = forwardRef<HTMLDivElement, { className?: string }>(\n ({ className, ...props }, ref) => {\n const {\n getQuestionResultByQuestionId,\n getCurrentQuestion,\n questionsResult,\n } = useQuizStore();\n const [status, setStatus] = useState<ANSWER_STATUS | undefined>(undefined);\n useEffect(() => {\n const cq = getCurrentQuestion();\n if (!cq) {\n setStatus(undefined);\n return;\n }\n const qr = getQuestionResultByQuestionId(cq.id);\n setStatus(qr?.answerStatus);\n }, [\n getCurrentQuestion,\n getQuestionResultByQuestionId,\n getCurrentQuestion()?.id,\n questionsResult,\n ]);\n\n const getClassesByAnswersStatus = () => {\n // Guard para quando status ainda está carregando\n if (status === undefined) {\n return 'bg-gray-100';\n }\n\n switch (status) {\n case ANSWER_STATUS.RESPOSTA_CORRETA:\n return 'bg-success-background';\n case ANSWER_STATUS.RESPOSTA_INCORRETA:\n return 'bg-error-background';\n case ANSWER_STATUS.PENDENTE_AVALIACAO:\n return 'bg-info-background';\n default:\n return 'bg-error-background';\n }\n };\n\n const getLabelByAnswersStatus = () => {\n // Guard para quando status ainda está carregando\n if (status === undefined) {\n return 'Carregando...';\n }\n\n switch (status) {\n case ANSWER_STATUS.RESPOSTA_CORRETA:\n return '🎉 Parabéns!!';\n case ANSWER_STATUS.RESPOSTA_INCORRETA:\n return 'Não foi dessa vez...';\n case ANSWER_STATUS.PENDENTE_AVALIACAO:\n return 'Avaliação pendente';\n case ANSWER_STATUS.NAO_RESPONDIDO:\n return 'Não foi dessa vez...você deixou a resposta em branco';\n default:\n return 'Não foi dessa vez...você deixou a resposta em branco';\n }\n };\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-row items-center gap-10 p-3.5 rounded-xl mb-4',\n getClassesByAnswersStatus(),\n className\n )}\n {...props}\n >\n <p className=\"text-text-950 font-bold text-lg\">Resultado</p>\n <p className=\"text-text-700 text-md\">{getLabelByAnswersStatus()}</p>\n </div>\n );\n }\n);\n\nconst getRetryButtonLabel = (type: QUIZ_TYPE | undefined) => {\n switch (type) {\n case QUIZ_TYPE.ATIVIDADE:\n return 'Refazer atividade';\n case QUIZ_TYPE.QUESTIONARIO:\n return 'Repetir questionário';\n case QUIZ_TYPE.SIMULADO:\n return 'Repetir simulado';\n default:\n return 'Refazer';\n }\n};\n\nconst QuizResultHeaderTitle = forwardRef<\n HTMLDivElement,\n {\n className?: string;\n showBadge?: boolean;\n onRepeat?: () => void;\n canRetry?: boolean;\n }\n>(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {\n const { quiz } = useQuizStore();\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-row pt-4 justify-between items-center',\n className\n )}\n {...props}\n >\n <p className=\"text-text-950 font-bold text-2xl\">Resultado</p>\n <div className=\"flex flex-row gap-3 items-center\">\n {canRetry && onRepeat && (\n <Button\n variant=\"solid\"\n action=\"primary\"\n size=\"medium\"\n onClick={onRepeat}\n >\n {getRetryButtonLabel(quiz?.type)}\n </Button>\n )}\n\n {showBadge && <QuizBadge subtype={quiz?.subtype || undefined} />}\n </div>\n </div>\n );\n});\n\nconst QuizResultTitle = forwardRef<\n HTMLParagraphElement,\n { className?: string }\n>(({ className, ...props }, ref) => {\n const { getQuizTitle } = useQuizStore();\n const quizTitle = getQuizTitle();\n\n return (\n <p\n className={cn('pt-6 pb-4 text-text-950 font-bold text-lg', className)}\n ref={ref}\n {...props}\n >\n {quizTitle}\n </p>\n );\n});\n\n/**\n * Update statistics counters based on difficulty level\n * @param stats - Statistics object to update\n * @param difficulty - Question difficulty level\n * @param isCorrect - Whether the answer is correct\n */\nconst updateDifficultyStats = (\n stats: {\n correctEasyAnswers: number;\n correctMediumAnswers: number;\n correctDifficultAnswers: number;\n totalEasyQuestions: number;\n totalMediumQuestions: number;\n totalDifficultQuestions: number;\n },\n difficulty: string | undefined,\n isCorrect: boolean\n) => {\n if (difficulty === QUESTION_DIFFICULTY.FACIL) {\n stats.totalEasyQuestions++;\n if (isCorrect) stats.correctEasyAnswers++;\n } else if (difficulty === QUESTION_DIFFICULTY.MEDIO) {\n stats.totalMediumQuestions++;\n if (isCorrect) stats.correctMediumAnswers++;\n } else if (difficulty === QUESTION_DIFFICULTY.DIFICIL) {\n stats.totalDifficultQuestions++;\n if (isCorrect) stats.correctDifficultAnswers++;\n }\n};\n\n/**\n * Calculate answer statistics by difficulty level\n * @param answers - Array of question answers\n * @returns Statistics object with counts by difficulty\n */\nconst calculateAnswerStatistics = (\n answers: Array<{\n answerStatus: string;\n difficultyLevel?: string;\n }>\n) => {\n const stats = {\n correctAnswers: 0,\n correctEasyAnswers: 0,\n correctMediumAnswers: 0,\n correctDifficultAnswers: 0,\n totalEasyQuestions: 0,\n totalMediumQuestions: 0,\n totalDifficultQuestions: 0,\n };\n\n for (const answer of answers) {\n const isCorrect = answer.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA;\n\n if (isCorrect) {\n stats.correctAnswers++;\n }\n\n updateDifficultyStats(stats, answer.difficultyLevel, isCorrect);\n }\n\n return stats;\n};\n\nconst QuizResultPerformance = forwardRef<\n HTMLDivElement,\n {\n showDetails?: boolean;\n /**\n * Tempo gasto, dentro do anel. Segue `showDetails` por padrão; existe\n * separado porque uma prova feita no papel tem o desempenho por\n * dificuldade, mas não tem cronômetro — qualquer número ali seria\n * inventado.\n */\n showTimeSpent?: boolean;\n }\n>(({ showDetails = true, showTimeSpent = showDetails, ...props }, ref) => {\n const {\n getTotalQuestions,\n formatTime,\n getQuestionResultStatistics,\n getQuestionResult,\n } = useQuizStore();\n\n const totalQuestions = getTotalQuestions();\n const questionResult = getQuestionResult();\n\n const stats = questionResult\n ? calculateAnswerStatistics(questionResult.answers)\n : {\n correctAnswers: 0,\n correctEasyAnswers: 0,\n correctMediumAnswers: 0,\n correctDifficultAnswers: 0,\n totalEasyQuestions: 0,\n totalMediumQuestions: 0,\n totalDifficultQuestions: 0,\n };\n\n const percentage =\n totalQuestions > 0\n ? Math.round((stats.correctAnswers / totalQuestions) * 100)\n : 0;\n\n const classesJustifyBetween = showDetails\n ? 'justify-between'\n : 'justify-center';\n return (\n <div\n className={cn(\n 'flex flex-row gap-6 p-6 rounded-xl bg-background',\n classesJustifyBetween\n )}\n ref={ref}\n {...props}\n >\n <div className=\"relative\">\n <ProgressCircle\n size=\"medium\"\n variant=\"green\"\n value={percentage}\n showPercentage={false}\n label=\"\"\n />\n\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {showTimeSpent && (\n <div className=\"flex items-center gap-1 mb-1\">\n <ClockIcon size={12} weight=\"regular\" className=\"text-text-800\" />\n <span className=\"text-2xs font-medium text-text-800\">\n {formatTime(\n (getQuestionResultStatistics()?.timeSpent ?? 0) * 60\n )}\n </span>\n </div>\n )}\n\n <div className=\"text-2xl font-medium text-text-800 leading-7\">\n {getQuestionResultStatistics()?.correctAnswers ?? '--'} de{' '}\n {totalQuestions}\n </div>\n\n <div className=\"text-2xs font-medium text-text-600 mt-1\">\n Corretas\n </div>\n </div>\n </div>\n\n {showDetails && (\n <div className=\"flex flex-col gap-4 w-full\">\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctEasyAnswers}\n max={stats.totalEasyQuestions}\n label=\"Fáceis\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctMediumAnswers}\n max={stats.totalMediumQuestions}\n label=\"Médias\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n\n <ProgressBar\n className=\"w-full\"\n layout=\"stacked\"\n variant=\"green\"\n value={stats.correctDifficultAnswers}\n max={stats.totalDifficultQuestions}\n label=\"Difíceis\"\n showHitCount\n labelClassName=\"text-base font-medium text-text-800 leading-none\"\n percentageClassName=\"text-xs font-medium leading-[14px] text-right\"\n />\n </div>\n )}\n </div>\n );\n});\n\nconst QuizListResult = forwardRef<\n HTMLDivElement,\n {\n className?: string;\n onSubjectClick?: (subject: string) => void;\n }\n>(({ className, onSubjectClick, ...props }, ref) => {\n const { getQuestionsGroupedBySubject } = useQuizStore();\n const { isDark } = useTheme();\n const groupedQuestions = getQuestionsGroupedBySubject();\n const subjectsStats = Object.entries(groupedQuestions).map(\n ([subjectId, questions]) => {\n let correct = 0;\n let incorrect = 0;\n\n for (const question of questions) {\n if (question.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA) {\n correct++;\n } else {\n incorrect++;\n }\n }\n\n return {\n subject: {\n name:\n questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ??\n 'Sem componente curricular',\n id: subjectId,\n color: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.color ?? '',\n icon: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.icon ?? '',\n },\n correct,\n incorrect,\n total: questions.length,\n };\n }\n );\n\n return (\n <section ref={ref} className={className} {...props}>\n <p className=\"pt-6 pb-4 text-text-950 font-bold text-lg\">\n Componentes curriculares\n </p>\n\n <ul className=\"flex flex-col gap-2\">\n {subjectsStats.map((subject) => (\n <li key={subject.subject.id}>\n <CardResults\n onClick={() => onSubjectClick?.(subject.subject.id)}\n className=\"max-w-full\"\n header={subject.subject.name}\n correct_answers={subject.correct}\n incorrect_answers={subject.incorrect}\n icon={subject.subject.icon || 'Book'}\n color={\n getSubjectColorWithOpacity(subject.subject.color, isDark) ||\n undefined\n }\n direction=\"row\"\n />\n </li>\n ))}\n </ul>\n </section>\n );\n});\n\nconst QuizListResultByMateria = ({\n subject,\n onQuestionClick,\n subjectName,\n}: {\n subject: string;\n onQuestionClick: (\n question: Question | QuestionResult['answers'][number]\n ) => void;\n subjectName?: string;\n}) => {\n const { getQuestionsGroupedBySubject, getQuestionIndex, quiz } =\n useQuizStore();\n const groupedQuestions = getQuestionsGroupedBySubject();\n\n const showExamInfo = shouldShowExamInfo(quiz);\n\n const answeredQuestions = groupedQuestions[subject] || [];\n const formattedQuestions =\n subject == 'all'\n ? Object.values(groupedQuestions).flat()\n : answeredQuestions;\n return (\n <div className=\"flex flex-col\">\n <div className=\"flex flex-row pt-4 justify-between\">\n <p className=\"text-text-950 font-bold text-2xl\">\n {subjectName ||\n formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ||\n 'Sem componente curricular'}\n </p>\n </div>\n\n <section className=\"flex flex-col \">\n <p className=\"pt-6 pb-4 text-text-950 font-bold text-lg\">\n Resultado das questões\n </p>\n\n <ul className=\"flex flex-col gap-2 pt-4\">\n {formattedQuestions.map((question) => {\n // questionId exists in QuestionResult answers, id in Question\n const questionId =\n 'questionId' in question ? question.questionId : question.id;\n const questionIndex = getQuestionIndex(questionId);\n\n // examBoard and examYear only exist in Question type - only show for SIMULADO\n const examBoard =\n 'examBoard' in question ? question.examBoard : null;\n const examYear = 'examYear' in question ? question.examYear : null;\n const examInfo = showExamInfo\n ? formatExamInfo(examBoard, examYear)\n : '';\n const questionTitle = `Questão ${questionIndex.toString().padStart(2, '0')}`;\n const header = examInfo\n ? `${questionTitle} ${examInfo}`\n : questionTitle;\n return (\n <li key={question.id}>\n <CardStatus\n className=\"max-w-full\"\n header={header}\n status={(() => {\n if (\n question.answerStatus === ANSWER_STATUS.RESPOSTA_CORRETA\n )\n return 'correct';\n if (\n question.answerStatus === ANSWER_STATUS.RESPOSTA_INCORRETA\n )\n return 'incorrect';\n if (question.answerStatus === ANSWER_STATUS.NAO_RESPONDIDO)\n return 'unanswered';\n if (\n question.answerStatus === ANSWER_STATUS.PENDENTE_AVALIACAO\n )\n return 'pending';\n return undefined;\n })()}\n onClick={() => onQuestionClick?.(question)}\n />\n </li>\n );\n })}\n </ul>\n </section>\n </div>\n );\n};\n\nexport {\n QuizListResultByMateria,\n QuizListResult,\n QuizResultPerformance,\n QuizResultTitle,\n QuizResultHeaderTitle,\n QuizHeaderResult,\n};\n"],"mappings":"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","names":[]}
@@ -1,4 +1,5 @@
1
1
  // src/components/Quiz/Quiz.utils.ts
2
+ var shouldShowExamInfo = (quiz) => quiz?.type === "SIMULADO" /* SIMULADO */ || quiz?.showExamInfo === true;
2
3
  var formatExamInfo = (examBoard, examYear) => {
3
4
  if (examBoard && examYear) {
4
5
  return `(${examBoard} - ${examYear})`;
@@ -70,9 +71,10 @@ var getTrueOrFalseOptionState = (optionId, variant, currentQuestionResult, local
70
71
  };
71
72
 
72
73
  export {
74
+ shouldShowExamInfo,
73
75
  formatExamInfo,
74
76
  shuffleWithSeed,
75
77
  prependLetterToHtml,
76
78
  getTrueOrFalseOptionState
77
79
  };
78
- //# sourceMappingURL=chunk-DDZDNGBU.mjs.map
80
+ //# sourceMappingURL=chunk-64WGFT5E.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Quiz/Quiz.utils.ts"],"sourcesContent":["import {\n QuizVariant,\n type QuestionAnswerResult,\n type TrueOrFalseOptionState,\n} from './Quiz.types';\nimport { TrueFalseEnum } from '../../enums/Quiz';\nimport { OptionStatus } from '../../enums/Options';\nimport { QUIZ_TYPE, type QuizInterface } from './useQuizStore';\n\n/**\n * Whether the banca/year line goes on the questions of a quiz: always on a\n * SIMULADO, and on any quiz that asks for it (`showExamInfo`).\n * @param quiz - The quiz, or null before one is loaded\n * @returns true when the exam info is shown\n */\nexport const shouldShowExamInfo = (\n quiz: Pick<QuizInterface, 'type' | 'showExamInfo'> | null\n): boolean => quiz?.type === QUIZ_TYPE.SIMULADO || quiz?.showExamInfo === true;\n\n/**\n * Helper function to format exam info (bank - year)\n * @param examBoard - The exam board/bank name\n * @param examYear - The exam year\n * @returns Formatted string like \"(ENEM - 2023)\" or empty string if no info\n */\nexport const formatExamInfo = (\n examBoard: string | null | undefined,\n examYear: string | null | undefined\n): string => {\n if (examBoard && examYear) {\n return `(${examBoard} - ${examYear})`;\n }\n if (examBoard) {\n return `(${examBoard})`;\n }\n if (examYear) {\n return `(${examYear})`;\n }\n return '';\n};\n\n/**\n * Shuffle array using a seed for consistent ordering per question\n * Uses Fisher-Yates shuffle with seeded random for deterministic results\n */\nexport const shuffleWithSeed = <T>(array: T[], seed: string): T[] => {\n const shuffled = [...array];\n // Simple hash function to convert string seed to number\n let hash = 0;\n for (let i = 0; i < seed.length; i++) {\n const char = seed.codePointAt(i) ?? 0;\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n // Fisher-Yates shuffle with seeded random\n const seededRandom = (max: number) => {\n hash = (hash * 1103515245 + 12345) & 0x7fffffff;\n return hash % max;\n };\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = seededRandom(i + 1);\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];\n }\n return shuffled;\n};\n\n/**\n * Helper to prepend letter to HTML content (handles <p> tags)\n * @example prependLetterToHtml('a', '<p>Text</p>') => '<p>a) Text</p>'\n * @example prependLetterToHtml('a', 'Text') => 'a) Text'\n */\nexport const prependLetterToHtml = (letter: string, html: string): string => {\n if (html.trim().startsWith('<p>')) {\n return html.replace(/^(\\s*<p>)/, `$1${letter}) `);\n }\n return `${letter}) ${html}`;\n};\n\n/**\n * Compute state for a true/false option\n * Handles both interactive (default) and result modes\n */\nexport const getTrueOrFalseOptionState = (\n optionId: string,\n variant: string,\n currentQuestionResult: QuestionAnswerResult | null | undefined,\n localAnswers: Record<string, string>\n): TrueOrFalseOptionState => {\n // Get whether the statement is TRUE or FALSE from persisted result\n const correctAnswerOption = currentQuestionResult?.options?.find(\n (op) => op.id === optionId\n );\n const isStatementTrue =\n variant === QuizVariant.RESULT\n ? (correctAnswerOption?.isCorrect ?? false)\n : false;\n\n // Get student's selection from selectedOptions\n const studentSelection =\n variant === QuizVariant.RESULT\n ? currentQuestionResult?.selectedOptions?.find(\n (op) => op.optionId === optionId\n )\n : undefined;\n\n // Determine if answered and what was marked\n const hasAnswered =\n variant === QuizVariant.RESULT\n ? studentSelection !== undefined\n : !!localAnswers[optionId];\n\n const studentMarkedTrue =\n variant === QuizVariant.RESULT\n ? (studentSelection?.isCorrect ?? false)\n : localAnswers[optionId] === TrueFalseEnum.VERDADEIRO;\n\n // Compute display values\n const getStudentAnswerDisplay = (): string => {\n if (variant !== QuizVariant.RESULT) {\n return localAnswers[optionId] || '-';\n }\n if (!hasAnswered) {\n return '-';\n }\n return studentMarkedTrue ? TrueFalseEnum.VERDADEIRO : TrueFalseEnum.FALSO;\n };\n const studentAnswer = getStudentAnswerDisplay();\n\n const correctAnswer = isStatementTrue\n ? TrueFalseEnum.VERDADEIRO\n : TrueFalseEnum.FALSO;\n const isStudentCorrect = hasAnswered && studentMarkedTrue === isStatementTrue;\n const variantCorrect = isStudentCorrect\n ? OptionStatus.CORRECT\n : OptionStatus.INCORRECT;\n\n return {\n isStatementTrue,\n hasAnswered,\n studentMarkedTrue,\n studentAnswer,\n correctAnswer,\n isStudentCorrect,\n variantCorrect,\n };\n};\n"],"mappings":";AAeO,IAAM,qBAAqB,CAChC,SACY,MAAM,sCAA+B,MAAM,iBAAiB;AAQnE,IAAM,iBAAiB,CAC5B,WACA,aACW;AACX,MAAI,aAAa,UAAU;AACzB,WAAO,IAAI,SAAS,MAAM,QAAQ;AAAA,EACpC;AACA,MAAI,WAAW;AACb,WAAO,IAAI,SAAS;AAAA,EACtB;AACA,MAAI,UAAU;AACZ,WAAO,IAAI,QAAQ;AAAA,EACrB;AACA,SAAO;AACT;AAMO,IAAM,kBAAkB,CAAI,OAAY,SAAsB;AACnE,QAAM,WAAW,CAAC,GAAG,KAAK;AAE1B,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,UAAM,OAAO,KAAK,YAAY,CAAC,KAAK;AACpC,YAAQ,QAAQ,KAAK,OAAO;AAC5B,WAAO,OAAO;AAAA,EAChB;AAEA,QAAM,eAAe,CAAC,QAAgB;AACpC,WAAQ,OAAO,aAAa,QAAS;AACrC,WAAO,OAAO;AAAA,EAChB;AACA,WAAS,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;AAC5C,UAAM,IAAI,aAAa,IAAI,CAAC;AAC5B,KAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,EACxD;AACA,SAAO;AACT;AAOO,IAAM,sBAAsB,CAAC,QAAgB,SAAyB;AAC3E,MAAI,KAAK,KAAK,EAAE,WAAW,KAAK,GAAG;AACjC,WAAO,KAAK,QAAQ,aAAa,KAAK,MAAM,IAAI;AAAA,EAClD;AACA,SAAO,GAAG,MAAM,KAAK,IAAI;AAC3B;AAMO,IAAM,4BAA4B,CACvC,UACA,SACA,uBACA,iBAC2B;AAE3B,QAAM,sBAAsB,uBAAuB,SAAS;AAAA,IAC1D,CAAC,OAAO,GAAG,OAAO;AAAA,EACpB;AACA,QAAM,kBACJ,oCACK,qBAAqB,aAAa,QACnC;AAGN,QAAM,mBACJ,oCACI,uBAAuB,iBAAiB;AAAA,IACtC,CAAC,OAAO,GAAG,aAAa;AAAA,EAC1B,IACA;AAGN,QAAM,cACJ,oCACI,qBAAqB,SACrB,CAAC,CAAC,aAAa,QAAQ;AAE7B,QAAM,oBACJ,oCACK,kBAAkB,aAAa,QAChC,aAAa,QAAQ;AAG3B,QAAM,0BAA0B,MAAc;AAC5C,QAAI,mCAAgC;AAClC,aAAO,aAAa,QAAQ,KAAK;AAAA,IACnC;AACA,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,QAAM,gBAAgB,wBAAwB;AAE9C,QAAM,gBAAgB;AAGtB,QAAM,mBAAmB,eAAe,sBAAsB;AAC9D,QAAM,iBAAiB;AAIvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}