analytica-frontend-lib 1.7.21 → 1.7.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AccessReportModal/index.js +3 -3
- package/dist/AccessReportModal/index.mjs +2 -2
- package/dist/ActivitiesHistory/index.js +49 -49
- package/dist/ActivitiesHistory/index.mjs +48 -48
- package/dist/ActivityCardQuestionBanks/index.js +49 -49
- package/dist/ActivityCardQuestionBanks/index.mjs +48 -48
- package/dist/ActivityCardQuestionPreview/index.js +49 -49
- package/dist/ActivityCardQuestionPreview/index.mjs +48 -48
- package/dist/ActivityCreate/ActivityCreateContent/index.js +49 -49
- package/dist/ActivityCreate/ActivityCreateContent/index.mjs +48 -48
- package/dist/ActivityCreate/index.js +49 -49
- package/dist/ActivityCreate/index.mjs +48 -48
- package/dist/ActivityDetails/index.js +49 -49
- package/dist/ActivityDetails/index.mjs +48 -48
- package/dist/ActivityFilters/index.js +49 -49
- package/dist/ActivityFilters/index.mjs +48 -48
- package/dist/ActivityPageLayout/index.js +49 -49
- package/dist/ActivityPageLayout/index.mjs +48 -48
- package/dist/ActivityPreview/index.js +49 -49
- package/dist/ActivityPreview/index.mjs +48 -48
- package/dist/AlertManager/index.js +49 -49
- package/dist/AlertManager/index.mjs +48 -48
- package/dist/AlertManagerView/index.js +3 -3
- package/dist/AlertManagerView/index.mjs +2 -2
- package/dist/AnnouncementModal/index.js +3 -3
- package/dist/AnnouncementModal/index.mjs +2 -2
- package/dist/AnnouncementsGate/index.js +4 -4
- package/dist/AnnouncementsGate/index.mjs +3 -3
- package/dist/AnswerKeyModal/index.js +3 -3
- package/dist/AnswerKeyModal/index.mjs +2 -2
- package/dist/AppHeader/index.js +6 -6
- package/dist/AppHeader/index.mjs +5 -5
- package/dist/CalendarCard/index.js +4 -4
- package/dist/CalendarCard/index.mjs +3 -3
- package/dist/Chat/index.js +3 -3
- package/dist/Chat/index.mjs +2 -2
- package/dist/CheckBox/index.d.ts.map +1 -1
- package/dist/CheckBox/index.js +2 -2
- package/dist/CheckBox/index.mjs +1 -1
- package/dist/CheckBoxGroup/index.js +49 -49
- package/dist/CheckBoxGroup/index.mjs +48 -48
- package/dist/ComparatorChart/ComparatorView/index.js +3 -3
- package/dist/ComparatorChart/ComparatorView/index.mjs +2 -2
- package/dist/CorrectActivityModal/index.js +7 -7
- package/dist/CorrectActivityModal/index.mjs +6 -6
- package/dist/DownloadButton/index.js +4 -4
- package/dist/DownloadButton/index.mjs +3 -3
- package/dist/DownloadModal/index.js +3 -3
- package/dist/DownloadModal/index.mjs +2 -2
- package/dist/DropdownMenu/index.js +3 -3
- package/dist/DropdownMenu/index.mjs +2 -2
- package/dist/EnemClassroomStartModal/index.d.ts.map +1 -1
- package/dist/EnemClassroomStartModal/index.js +7 -7
- package/dist/EnemClassroomStartModal/index.mjs +6 -6
- package/dist/EnemMoment/index.js +57 -57
- package/dist/EnemMoment/index.mjs +51 -51
- package/dist/EnemMomentStudentModal/index.js +50 -50
- package/dist/EnemMomentStudentModal/index.mjs +48 -48
- package/dist/ExamDetailsLayout/ExamDetailsPage/index.js +49 -49
- package/dist/ExamDetailsLayout/ExamDetailsPage/index.mjs +48 -48
- package/dist/ExamPageLayout/index.js +49 -49
- package/dist/ExamPageLayout/index.mjs +48 -48
- package/dist/Forum/index.js +5 -5
- package/dist/Forum/index.mjs +4 -4
- package/dist/KnowledgePerformanceCard/index.js +51 -51
- package/dist/KnowledgePerformanceCard/index.mjs +50 -50
- package/dist/LessonCardPreview/index.js +49 -49
- package/dist/LessonCardPreview/index.mjs +48 -48
- package/dist/LessonMediaSections/index.js +49 -49
- package/dist/LessonMediaSections/index.mjs +48 -48
- package/dist/LessonsCatalog/index.js +49 -49
- package/dist/LessonsCatalog/index.mjs +48 -48
- package/dist/Modal/index.d.ts.map +1 -1
- package/dist/Modal/index.js +2 -2
- package/dist/Modal/index.mjs +1 -1
- package/dist/MultiCheckSelect/index.js +5 -5
- package/dist/MultiCheckSelect/index.mjs +4 -4
- package/dist/MultiSearchSelect/index.js +3 -3
- package/dist/MultiSearchSelect/index.mjs +2 -2
- package/dist/MultipleChoice/index.js +3 -3
- package/dist/MultipleChoice/index.mjs +2 -2
- package/dist/NotificationCard/index.js +4 -4
- package/dist/NotificationCard/index.mjs +3 -3
- package/dist/PerformanceReportModal/index.js +3 -3
- package/dist/PerformanceReportModal/index.mjs +2 -2
- package/dist/PrintableUsersTable/index.js +49 -49
- package/dist/PrintableUsersTable/index.mjs +48 -48
- package/dist/ProgressModal/index.js +3 -3
- package/dist/ProgressModal/index.mjs +2 -2
- package/dist/QuestionsPerformanceCard/index.js +50 -50
- package/dist/QuestionsPerformanceCard/index.mjs +49 -49
- package/dist/Quiz/index.js +6 -6
- package/dist/Quiz/index.mjs +5 -5
- package/dist/RecommendedLessonCreate/index.js +49 -49
- package/dist/RecommendedLessonCreate/index.mjs +48 -48
- package/dist/RecommendedLessonDetails/index.js +7 -7
- package/dist/RecommendedLessonDetails/index.mjs +6 -6
- package/dist/RecommendedLessonsHistory/index.js +49 -49
- package/dist/RecommendedLessonsHistory/index.mjs +48 -48
- package/dist/ReportDetailModal/index.js +4 -4
- package/dist/ReportDetailModal/index.mjs +3 -3
- package/dist/RichEditor/index.js +5 -5
- package/dist/RichEditor/index.mjs +4 -4
- package/dist/{RichEditorCore-6MTYSSKS.mjs → RichEditorCore-2S5YUAOI.mjs} +5 -5
- package/dist/{RichEditorCore-KDARBEK4.js → RichEditorCore-N7A2445B.js} +16 -16
- package/dist/{RichEditorCore-KDARBEK4.js.map → RichEditorCore-N7A2445B.js.map} +1 -1
- package/dist/Search/index.js +4 -4
- package/dist/Search/index.mjs +3 -3
- package/dist/SendActivityModal/SendActivityModal.js +49 -49
- package/dist/SendActivityModal/SendActivityModal.mjs +48 -48
- package/dist/SendActivityModal/index.js +49 -49
- package/dist/SendActivityModal/index.mjs +48 -48
- package/dist/SendLessonModal/index.js +49 -49
- package/dist/SendLessonModal/index.mjs +48 -48
- package/dist/SimulatedPerformance/SimulatedPerformanceView/index.js +49 -49
- package/dist/SimulatedPerformance/SimulatedPerformanceView/index.mjs +48 -48
- package/dist/SimulatedPerformance/useSimulatedPerformance/index.js +5 -5
- package/dist/SimulatedPerformance/useSimulatedPerformance/index.mjs +4 -4
- package/dist/SimulatedStudentSimulationsModal/index.js +6 -6
- package/dist/SimulatedStudentSimulationsModal/index.mjs +5 -5
- package/dist/SimulationsPage/index.js +49 -49
- package/dist/SimulationsPage/index.mjs +48 -48
- package/dist/StudentLessonProgressModal/index.js +3 -3
- package/dist/StudentLessonProgressModal/index.mjs +2 -2
- package/dist/StudentPerformanceDetailsModal/index.js +5 -5
- package/dist/StudentPerformanceDetailsModal/index.mjs +4 -4
- package/dist/Support/TicketModal/index.js +3 -3
- package/dist/Support/TicketModal/index.mjs +2 -2
- package/dist/Support/index.js +4 -4
- package/dist/Support/index.mjs +3 -3
- package/dist/SupportChatComposer/index.js +3 -3
- package/dist/SupportChatComposer/index.mjs +2 -2
- package/dist/SupportChatEvent/index.js +3 -3
- package/dist/SupportChatEvent/index.mjs +2 -2
- package/dist/SupportChatMessage/index.js +3 -3
- package/dist/SupportChatMessage/index.mjs +2 -2
- package/dist/SupportChatWidget/index.js +3 -3
- package/dist/SupportChatWidget/index.mjs +2 -2
- package/dist/SupportConcludeModal/index.js +4 -4
- package/dist/SupportConcludeModal/index.mjs +3 -3
- package/dist/SupportConversationHeader/index.js +4 -4
- package/dist/SupportConversationHeader/index.mjs +3 -3
- package/dist/SupportConversationMessages/index.js +5 -5
- package/dist/SupportConversationMessages/index.mjs +4 -4
- package/dist/SupportTicketConversation/index.js +12 -12
- package/dist/SupportTicketConversation/index.mjs +11 -11
- package/dist/TableProvider/index.js +49 -49
- package/dist/TableProvider/index.mjs +48 -48
- package/dist/UnifiedDraftModelPage/index.js +49 -49
- package/dist/UnifiedDraftModelPage/index.mjs +48 -48
- package/dist/UnifiedHistoryPage/index.js +49 -49
- package/dist/UnifiedHistoryPage/index.mjs +48 -48
- package/dist/VideoPlayer/index.js +5 -5
- package/dist/VideoPlayer/index.mjs +4 -4
- package/dist/Whiteboard/index.js +3 -3
- package/dist/Whiteboard/index.mjs +2 -2
- package/dist/{chunk-B6QOBHZM.mjs → chunk-24BEZK43.mjs} +2 -2
- package/dist/{chunk-CYSODZGX.js → chunk-27Y6V3GM.js} +169 -66
- package/dist/chunk-27Y6V3GM.js.map +1 -0
- package/dist/{chunk-OQTXTDSK.mjs → chunk-2OJ3QSLU.mjs} +3 -3
- package/dist/{chunk-VDUO65VK.mjs → chunk-3EGJJDIM.mjs} +2 -2
- package/dist/{chunk-VDUO65VK.mjs.map → chunk-3EGJJDIM.mjs.map} +1 -1
- package/dist/{chunk-4OUBPEVS.mjs → chunk-3HKLGNUE.mjs} +3 -3
- package/dist/{chunk-YA7XLH7D.js → chunk-3MFACEZ2.js} +3 -3
- package/dist/{chunk-YA7XLH7D.js.map → chunk-3MFACEZ2.js.map} +1 -1
- package/dist/{chunk-IHBWJM4C.mjs → chunk-3Q7RJKUP.mjs} +2 -2
- package/dist/{chunk-PY6WD6SB.mjs → chunk-3WRB4WCD.mjs} +4 -4
- package/dist/{chunk-4RHCBMMP.js → chunk-46VHAL4S.js} +3 -3
- package/dist/{chunk-4RHCBMMP.js.map → chunk-46VHAL4S.js.map} +1 -1
- package/dist/{chunk-POT3ALY3.js → chunk-5DINXU6W.js} +1 -1
- package/dist/{chunk-POT3ALY3.js.map → chunk-5DINXU6W.js.map} +1 -1
- package/dist/{chunk-L52NFNFK.mjs → chunk-5VC4BK65.mjs} +3 -3
- package/dist/{chunk-B67RLIUM.js → chunk-72D7G6YQ.js} +3 -3
- package/dist/{chunk-B67RLIUM.js.map → chunk-72D7G6YQ.js.map} +1 -1
- package/dist/{chunk-C65DG2RI.mjs → chunk-7FSBWUOM.mjs} +2 -2
- package/dist/{chunk-QWMFWYII.js → chunk-7IZNLARX.js} +3 -3
- package/dist/{chunk-QWMFWYII.js.map → chunk-7IZNLARX.js.map} +1 -1
- package/dist/{chunk-ZCBT2BUZ.js → chunk-7RFHXFFV.js} +13 -13
- package/dist/{chunk-ZCBT2BUZ.js.map → chunk-7RFHXFFV.js.map} +1 -1
- package/dist/{chunk-EMWX6IKP.js → chunk-7VJP5D26.js} +13 -13
- package/dist/{chunk-EMWX6IKP.js.map → chunk-7VJP5D26.js.map} +1 -1
- package/dist/{chunk-HCQJR5CE.mjs → chunk-7ZWEBNFB.mjs} +2 -2
- package/dist/{chunk-3RHNJUXU.mjs → chunk-ACSEJOW6.mjs} +2 -2
- package/dist/{chunk-WQZHUW7C.mjs → chunk-ANFHLSDB.mjs} +3 -3
- package/dist/{chunk-H6NQOLQY.mjs → chunk-ANFLWCVD.mjs} +2 -2
- package/dist/{chunk-BKBDQXZX.js → chunk-AOYPUZRO.js} +3 -3
- package/dist/{chunk-BKBDQXZX.js.map → chunk-AOYPUZRO.js.map} +1 -1
- package/dist/{chunk-5WS6IENQ.mjs → chunk-AU2HLQDJ.mjs} +2 -2
- package/dist/{chunk-P6FX3NT6.mjs → chunk-AZGDHAP5.mjs} +2 -2
- package/dist/{chunk-NCGO7FPB.js → chunk-AZKNYREH.js} +8 -8
- package/dist/{chunk-NCGO7FPB.js.map → chunk-AZKNYREH.js.map} +1 -1
- package/dist/{chunk-R6MTPYYW.js → chunk-AZTBNERQ.js} +3 -3
- package/dist/{chunk-R6MTPYYW.js.map → chunk-AZTBNERQ.js.map} +1 -1
- package/dist/{chunk-NPB2JTYC.mjs → chunk-BO3QVQ37.mjs} +4 -4
- package/dist/{chunk-2WI4Q2I2.mjs → chunk-BPMWRFSI.mjs} +4 -4
- package/dist/{chunk-TEW33GLR.mjs → chunk-BXN3VO6I.mjs} +2 -2
- package/dist/{chunk-7ZB3YHF2.mjs → chunk-C6LC5LD5.mjs} +1 -1
- package/dist/{chunk-7ZB3YHF2.mjs.map → chunk-C6LC5LD5.mjs.map} +1 -1
- package/dist/{chunk-5HONWYQA.js → chunk-C7ILTLT5.js} +3 -3
- package/dist/{chunk-5HONWYQA.js.map → chunk-C7ILTLT5.js.map} +1 -1
- package/dist/{chunk-OES54VU6.mjs → chunk-CFV2OZ3P.mjs} +116 -13
- package/dist/chunk-CFV2OZ3P.mjs.map +1 -0
- package/dist/{chunk-4OVIHZ3I.js → chunk-CGXWWPEA.js} +6 -6
- package/dist/{chunk-4OVIHZ3I.js.map → chunk-CGXWWPEA.js.map} +1 -1
- package/dist/{chunk-MNU45FM3.js → chunk-COT4KW3H.js} +2 -2
- package/dist/{chunk-MNU45FM3.js.map → chunk-COT4KW3H.js.map} +1 -1
- package/dist/{chunk-JDQUXG75.js → chunk-CVDNCU6L.js} +3 -3
- package/dist/{chunk-JDQUXG75.js.map → chunk-CVDNCU6L.js.map} +1 -1
- package/dist/{chunk-HBZHWSMZ.mjs → chunk-D46PJSQ7.mjs} +13 -13
- package/dist/{chunk-ARYIJ4RU.js → chunk-DDORKDQO.js} +3 -3
- package/dist/{chunk-ARYIJ4RU.js.map → chunk-DDORKDQO.js.map} +1 -1
- package/dist/{chunk-7YQTDJFA.js → chunk-DKXSR2V3.js} +3 -3
- package/dist/{chunk-7YQTDJFA.js.map → chunk-DKXSR2V3.js.map} +1 -1
- package/dist/{chunk-I6EAPPBL.mjs → chunk-DZMYIOKZ.mjs} +5 -5
- package/dist/{chunk-SKM7NFPY.js → chunk-EPXAFJVW.js} +6 -6
- package/dist/{chunk-SKM7NFPY.js.map → chunk-EPXAFJVW.js.map} +1 -1
- package/dist/{chunk-AYYMS23L.js → chunk-ESIQ2GB4.js} +7 -7
- package/dist/{chunk-AYYMS23L.js.map → chunk-ESIQ2GB4.js.map} +1 -1
- package/dist/{chunk-NU2WNYOD.js → chunk-EW7HGUFV.js} +87 -87
- package/dist/{chunk-NU2WNYOD.js.map → chunk-EW7HGUFV.js.map} +1 -1
- package/dist/{chunk-I4QGQMXI.mjs → chunk-EXYXZFNK.mjs} +2 -2
- package/dist/{chunk-RBJAO57A.js → chunk-FAAR4XC5.js} +3 -3
- package/dist/{chunk-RBJAO57A.js.map → chunk-FAAR4XC5.js.map} +1 -1
- package/dist/{chunk-N2VNE3ON.js → chunk-FDTDJDZI.js} +13 -13
- package/dist/{chunk-N2VNE3ON.js.map → chunk-FDTDJDZI.js.map} +1 -1
- package/dist/{chunk-SU5Q64TW.mjs → chunk-FVCTKS33.mjs} +6 -5
- package/dist/chunk-FVCTKS33.mjs.map +1 -0
- package/dist/{chunk-AVHZHWI3.js → chunk-GBIFSFWJ.js} +15 -15
- package/dist/{chunk-AVHZHWI3.js.map → chunk-GBIFSFWJ.js.map} +1 -1
- package/dist/{chunk-KSUPPAKH.js → chunk-GIQSHTB5.js} +9 -9
- package/dist/{chunk-KSUPPAKH.js.map → chunk-GIQSHTB5.js.map} +1 -1
- package/dist/{chunk-4QBKD4JN.js → chunk-GUUJYGXF.js} +3 -3
- package/dist/{chunk-4QBKD4JN.js.map → chunk-GUUJYGXF.js.map} +1 -1
- package/dist/{chunk-M4O46VDY.mjs → chunk-GX2PKLN2.mjs} +2 -2
- package/dist/{chunk-5BUTINIM.mjs → chunk-HLVLSWKD.mjs} +3 -3
- package/dist/{chunk-FU23WOTY.js → chunk-HSV5VZ4Z.js} +6 -6
- package/dist/{chunk-FU23WOTY.js.map → chunk-HSV5VZ4Z.js.map} +1 -1
- package/dist/{chunk-MMS2ELDK.mjs → chunk-IIQCS3A2.mjs} +2 -2
- package/dist/{chunk-NKWLCZUZ.mjs → chunk-JGGUMHM6.mjs} +2 -2
- package/dist/{chunk-HT2GREFH.js → chunk-JLD46DL7.js} +11 -11
- package/dist/{chunk-HT2GREFH.js.map → chunk-JLD46DL7.js.map} +1 -1
- package/dist/{chunk-NVL5TKWD.mjs → chunk-JYFLOQYT.mjs} +2 -2
- package/dist/{chunk-DWGDEUEW.mjs → chunk-KG563P7F.mjs} +5 -5
- package/dist/{chunk-TCIC5556.mjs → chunk-KH4TEDGD.mjs} +2 -2
- package/dist/{chunk-23PAYKWB.js → chunk-KM27ZDHZ.js} +2 -2
- package/dist/{chunk-23PAYKWB.js.map → chunk-KM27ZDHZ.js.map} +1 -1
- package/dist/{chunk-XZUMD3CB.mjs → chunk-LODDYDTP.mjs} +2 -2
- package/dist/{chunk-XZUMD3CB.mjs.map → chunk-LODDYDTP.mjs.map} +1 -1
- package/dist/{chunk-E6CGJBID.mjs → chunk-LUHKMY56.mjs} +2 -2
- package/dist/{chunk-TVLEUNKE.mjs → chunk-LZP5VZCO.mjs} +2 -2
- package/dist/{chunk-EHNEBXS7.mjs → chunk-M6DXZ2FM.mjs} +2 -2
- package/dist/{chunk-B4C5DWAP.mjs → chunk-MMMJDO75.mjs} +2 -2
- package/dist/{chunk-AFCWMJQO.js → chunk-MOUPNP53.js} +3 -3
- package/dist/{chunk-AFCWMJQO.js.map → chunk-MOUPNP53.js.map} +1 -1
- package/dist/{chunk-36KFIZ43.js → chunk-MYPUZ6EG.js} +3 -3
- package/dist/{chunk-36KFIZ43.js.map → chunk-MYPUZ6EG.js.map} +1 -1
- package/dist/{chunk-6JHIKIPA.js → chunk-NUGLTWEA.js} +23 -23
- package/dist/{chunk-6JHIKIPA.js.map → chunk-NUGLTWEA.js.map} +1 -1
- package/dist/{chunk-KWXOYHYK.mjs → chunk-P7MORXSE.mjs} +2 -2
- package/dist/{chunk-YG4IZ5Q3.mjs → chunk-Q2OSEROT.mjs} +2 -2
- package/dist/{chunk-L5SXG6T6.mjs → chunk-QQKOHKO2.mjs} +3 -3
- package/dist/{chunk-SADSJ2MV.js → chunk-QVGUYPXO.js} +3 -3
- package/dist/{chunk-SADSJ2MV.js.map → chunk-QVGUYPXO.js.map} +1 -1
- package/dist/{chunk-K45PTE7F.mjs → chunk-RBKQXT73.mjs} +4 -4
- package/dist/{chunk-JZFISWTP.js → chunk-RIN2IN7E.js} +2 -2
- package/dist/{chunk-JZFISWTP.js.map → chunk-RIN2IN7E.js.map} +1 -1
- package/dist/{chunk-BXLAOYAG.mjs → chunk-RIUVPTG7.mjs} +2 -2
- package/dist/{chunk-QVB54LBS.mjs → chunk-RNZGX6MX.mjs} +3 -3
- package/dist/{chunk-VSVLIRO2.js → chunk-RXEU77VN.js} +15 -15
- package/dist/{chunk-VSVLIRO2.js.map → chunk-RXEU77VN.js.map} +1 -1
- package/dist/{chunk-ZRIYCU2V.js → chunk-S2BZPPAI.js} +5 -5
- package/dist/{chunk-ZRIYCU2V.js.map → chunk-S2BZPPAI.js.map} +1 -1
- package/dist/{chunk-MES2BP4T.mjs → chunk-SGL5IUCV.mjs} +2 -2
- package/dist/{chunk-7LS5UQCQ.mjs → chunk-STKUPDHG.mjs} +2 -2
- package/dist/{chunk-PPYCCT2K.js → chunk-SWDVSCQJ.js} +9 -8
- package/dist/chunk-SWDVSCQJ.js.map +1 -0
- package/dist/{chunk-JCA76TCX.mjs → chunk-SZKLJOTN.mjs} +2 -2
- package/dist/{chunk-F5WR6XZZ.js → chunk-T73HPYF2.js} +3 -3
- package/dist/{chunk-F5WR6XZZ.js.map → chunk-T73HPYF2.js.map} +1 -1
- package/dist/{chunk-ZB6HDDE4.js → chunk-TQO37PVW.js} +14 -14
- package/dist/{chunk-ZB6HDDE4.js.map → chunk-TQO37PVW.js.map} +1 -1
- package/dist/{chunk-VKQ5AJDT.mjs → chunk-UENZQF2Y.mjs} +2 -2
- package/dist/{chunk-DCG7EUBC.js → chunk-UWLW5YVB.js} +6 -6
- package/dist/{chunk-DCG7EUBC.js.map → chunk-UWLW5YVB.js.map} +1 -1
- package/dist/{chunk-37AJ2GVO.mjs → chunk-UXJIZDXQ.mjs} +2 -2
- package/dist/{chunk-PLLPFCN3.js → chunk-UXMDPRAI.js} +14 -14
- package/dist/{chunk-PLLPFCN3.js.map → chunk-UXMDPRAI.js.map} +1 -1
- package/dist/{chunk-7BOTKRY6.mjs → chunk-V55DG5B4.mjs} +2 -2
- package/dist/{chunk-YRTIDZTN.js → chunk-VHEDMUAW.js} +4 -4
- package/dist/{chunk-YRTIDZTN.js.map → chunk-VHEDMUAW.js.map} +1 -1
- package/dist/{chunk-4RD55E4R.js → chunk-VWLWSO4J.js} +3 -3
- package/dist/{chunk-4RD55E4R.js.map → chunk-VWLWSO4J.js.map} +1 -1
- package/dist/{chunk-VJQIKFMG.mjs → chunk-W3CWEZDB.mjs} +3 -3
- package/dist/{chunk-JM6SLU7D.js → chunk-W7NNH4VY.js} +6 -6
- package/dist/{chunk-JM6SLU7D.js.map → chunk-W7NNH4VY.js.map} +1 -1
- package/dist/{chunk-VQ7MSYIH.js → chunk-WUN5NHZE.js} +4 -4
- package/dist/{chunk-VQ7MSYIH.js.map → chunk-WUN5NHZE.js.map} +1 -1
- package/dist/{chunk-AAU7ABJN.js → chunk-WWTRSQ3X.js} +3 -3
- package/dist/{chunk-AAU7ABJN.js.map → chunk-WWTRSQ3X.js.map} +1 -1
- package/dist/{chunk-BR6D2TGF.js → chunk-WZOA2PVJ.js} +3 -3
- package/dist/{chunk-BR6D2TGF.js.map → chunk-WZOA2PVJ.js.map} +1 -1
- package/dist/{chunk-TZKR5Z4J.mjs → chunk-XJF2F36N.mjs} +2 -2
- package/dist/{chunk-P6ACVNQK.mjs → chunk-YD2XBEKO.mjs} +2 -2
- package/dist/{chunk-LMXWIPGR.js → chunk-YWPLHFAK.js} +3 -3
- package/dist/{chunk-LMXWIPGR.js.map → chunk-YWPLHFAK.js.map} +1 -1
- package/dist/{chunk-DCEWWHV5.mjs → chunk-Z3HGYPH7.mjs} +2 -2
- package/dist/{chunk-Q3PKW6TH.js → chunk-ZCV3HWI2.js} +6 -6
- package/dist/{chunk-Q3PKW6TH.js.map → chunk-ZCV3HWI2.js.map} +1 -1
- package/dist/{chunk-OSA3YVDZ.mjs → chunk-ZF46DCAC.mjs} +2 -2
- package/dist/{chunk-5T6IDXSB.js → chunk-ZO2GA23I.js} +3 -3
- package/dist/{chunk-5T6IDXSB.js.map → chunk-ZO2GA23I.js.map} +1 -1
- package/dist/{chunk-ZN3763VZ.js → chunk-ZQLW4EJB.js} +9 -9
- package/dist/{chunk-ZN3763VZ.js.map → chunk-ZQLW4EJB.js.map} +1 -1
- package/dist/{chunk-CM5R4SPF.js → chunk-ZQQJTO6T.js} +3 -3
- package/dist/{chunk-CM5R4SPF.js.map → chunk-ZQQJTO6T.js.map} +1 -1
- package/dist/{chunk-SEL4QDCO.js → chunk-ZSXSAE3D.js} +3 -3
- package/dist/{chunk-SEL4QDCO.js.map → chunk-ZSXSAE3D.js.map} +1 -1
- package/dist/components/SupportChatWidget/guestSupportChatAdapter.d.ts +6 -1
- package/dist/components/SupportChatWidget/guestSupportChatAdapter.d.ts.map +1 -1
- package/dist/hooks/useAppContent/index.js +49 -49
- package/dist/hooks/useAppContent/index.mjs +48 -48
- package/dist/hooks/useSupportChat.d.ts +2 -0
- package/dist/hooks/useSupportChat.d.ts.map +1 -1
- package/dist/index.js +49 -49
- package/dist/index.mjs +48 -48
- package/dist/types/supportChat/index.d.ts +14 -0
- package/dist/types/supportChat/index.d.ts.map +1 -1
- package/dist/types/supportChat/index.js +2 -2
- package/dist/types/supportChat/index.mjs +1 -1
- package/dist/types/supportChat.d.ts +14 -0
- package/dist/types/supportChat.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-CYSODZGX.js.map +0 -1
- package/dist/chunk-OES54VU6.mjs.map +0 -1
- package/dist/chunk-PPYCCT2K.js.map +0 -1
- package/dist/chunk-SU5Q64TW.mjs.map +0 -1
- /package/dist/{RichEditorCore-6MTYSSKS.mjs.map → RichEditorCore-2S5YUAOI.mjs.map} +0 -0
- /package/dist/{chunk-B6QOBHZM.mjs.map → chunk-24BEZK43.mjs.map} +0 -0
- /package/dist/{chunk-OQTXTDSK.mjs.map → chunk-2OJ3QSLU.mjs.map} +0 -0
- /package/dist/{chunk-4OUBPEVS.mjs.map → chunk-3HKLGNUE.mjs.map} +0 -0
- /package/dist/{chunk-IHBWJM4C.mjs.map → chunk-3Q7RJKUP.mjs.map} +0 -0
- /package/dist/{chunk-PY6WD6SB.mjs.map → chunk-3WRB4WCD.mjs.map} +0 -0
- /package/dist/{chunk-L52NFNFK.mjs.map → chunk-5VC4BK65.mjs.map} +0 -0
- /package/dist/{chunk-C65DG2RI.mjs.map → chunk-7FSBWUOM.mjs.map} +0 -0
- /package/dist/{chunk-HCQJR5CE.mjs.map → chunk-7ZWEBNFB.mjs.map} +0 -0
- /package/dist/{chunk-3RHNJUXU.mjs.map → chunk-ACSEJOW6.mjs.map} +0 -0
- /package/dist/{chunk-WQZHUW7C.mjs.map → chunk-ANFHLSDB.mjs.map} +0 -0
- /package/dist/{chunk-H6NQOLQY.mjs.map → chunk-ANFLWCVD.mjs.map} +0 -0
- /package/dist/{chunk-5WS6IENQ.mjs.map → chunk-AU2HLQDJ.mjs.map} +0 -0
- /package/dist/{chunk-P6FX3NT6.mjs.map → chunk-AZGDHAP5.mjs.map} +0 -0
- /package/dist/{chunk-NPB2JTYC.mjs.map → chunk-BO3QVQ37.mjs.map} +0 -0
- /package/dist/{chunk-2WI4Q2I2.mjs.map → chunk-BPMWRFSI.mjs.map} +0 -0
- /package/dist/{chunk-TEW33GLR.mjs.map → chunk-BXN3VO6I.mjs.map} +0 -0
- /package/dist/{chunk-HBZHWSMZ.mjs.map → chunk-D46PJSQ7.mjs.map} +0 -0
- /package/dist/{chunk-I6EAPPBL.mjs.map → chunk-DZMYIOKZ.mjs.map} +0 -0
- /package/dist/{chunk-I4QGQMXI.mjs.map → chunk-EXYXZFNK.mjs.map} +0 -0
- /package/dist/{chunk-M4O46VDY.mjs.map → chunk-GX2PKLN2.mjs.map} +0 -0
- /package/dist/{chunk-5BUTINIM.mjs.map → chunk-HLVLSWKD.mjs.map} +0 -0
- /package/dist/{chunk-MMS2ELDK.mjs.map → chunk-IIQCS3A2.mjs.map} +0 -0
- /package/dist/{chunk-NKWLCZUZ.mjs.map → chunk-JGGUMHM6.mjs.map} +0 -0
- /package/dist/{chunk-NVL5TKWD.mjs.map → chunk-JYFLOQYT.mjs.map} +0 -0
- /package/dist/{chunk-DWGDEUEW.mjs.map → chunk-KG563P7F.mjs.map} +0 -0
- /package/dist/{chunk-TCIC5556.mjs.map → chunk-KH4TEDGD.mjs.map} +0 -0
- /package/dist/{chunk-E6CGJBID.mjs.map → chunk-LUHKMY56.mjs.map} +0 -0
- /package/dist/{chunk-TVLEUNKE.mjs.map → chunk-LZP5VZCO.mjs.map} +0 -0
- /package/dist/{chunk-EHNEBXS7.mjs.map → chunk-M6DXZ2FM.mjs.map} +0 -0
- /package/dist/{chunk-B4C5DWAP.mjs.map → chunk-MMMJDO75.mjs.map} +0 -0
- /package/dist/{chunk-KWXOYHYK.mjs.map → chunk-P7MORXSE.mjs.map} +0 -0
- /package/dist/{chunk-YG4IZ5Q3.mjs.map → chunk-Q2OSEROT.mjs.map} +0 -0
- /package/dist/{chunk-L5SXG6T6.mjs.map → chunk-QQKOHKO2.mjs.map} +0 -0
- /package/dist/{chunk-K45PTE7F.mjs.map → chunk-RBKQXT73.mjs.map} +0 -0
- /package/dist/{chunk-BXLAOYAG.mjs.map → chunk-RIUVPTG7.mjs.map} +0 -0
- /package/dist/{chunk-QVB54LBS.mjs.map → chunk-RNZGX6MX.mjs.map} +0 -0
- /package/dist/{chunk-MES2BP4T.mjs.map → chunk-SGL5IUCV.mjs.map} +0 -0
- /package/dist/{chunk-7LS5UQCQ.mjs.map → chunk-STKUPDHG.mjs.map} +0 -0
- /package/dist/{chunk-JCA76TCX.mjs.map → chunk-SZKLJOTN.mjs.map} +0 -0
- /package/dist/{chunk-VKQ5AJDT.mjs.map → chunk-UENZQF2Y.mjs.map} +0 -0
- /package/dist/{chunk-37AJ2GVO.mjs.map → chunk-UXJIZDXQ.mjs.map} +0 -0
- /package/dist/{chunk-7BOTKRY6.mjs.map → chunk-V55DG5B4.mjs.map} +0 -0
- /package/dist/{chunk-VJQIKFMG.mjs.map → chunk-W3CWEZDB.mjs.map} +0 -0
- /package/dist/{chunk-TZKR5Z4J.mjs.map → chunk-XJF2F36N.mjs.map} +0 -0
- /package/dist/{chunk-P6ACVNQK.mjs.map → chunk-YD2XBEKO.mjs.map} +0 -0
- /package/dist/{chunk-DCEWWHV5.mjs.map → chunk-Z3HGYPH7.mjs.map} +0 -0
- /package/dist/{chunk-OSA3YVDZ.mjs.map → chunk-ZF46DCAC.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-JDQUXG75.js","../src/components/ComparatorChart/ComparatorView.tsx","../src/components/ComparatorChart/ComparatorEmptyState.tsx","../src/components/ComparatorChart/ComparatorLoadingState.tsx","../src/components/ComparatorChart/ComparatorSelectTypeStep.tsx","../src/components/ComparatorChart/ComparatorSelectItemsStep.tsx","../src/components/ComparatorChart/Legend.tsx","../src/components/ComparatorChart/PercentageScale.tsx","../src/components/ComparatorChart/ChartArea.tsx","../src/components/ComparatorChart/BarChartRow.tsx","../src/components/ComparatorChart/KnowledgeAreasContent.tsx","../src/components/ComparatorChart/CurricularComponentsContent.tsx","../src/components/ComparatorChart/CompetenciesContent.tsx","../src/components/ComparatorChart/NationalAverageCard.tsx","../src/components/ComparatorChart/NationalAveragesContent.tsx","../src/components/ComparatorChart/ComparatorTabContent.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-JDQUXG75.js","sourcesContent":[null,"import { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport { CaretLeftIcon } from '@phosphor-icons/react/dist/csr/CaretLeft';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport Modal from '../Modal/Modal';\nimport type { SearchSelectOption } from '../SearchSelect/SearchSelect';\nimport { ComparatorEmptyState } from './ComparatorEmptyState';\nimport { ComparatorLoadingState } from './ComparatorLoadingState';\nimport { ComparatorSelectTypeStep } from './ComparatorSelectTypeStep';\nimport { ComparatorSelectItemsStep } from './ComparatorSelectItemsStep';\nimport { ComparatorTabContent } from './ComparatorTabContent';\nimport {\n ComparatorTabValue,\n DEFAULT_COMPARATOR_LABELS,\n DEFAULT_COMPARATOR_TABS,\n type ComparisonType,\n type ComparatorTabType,\n type ComparatorStoreState,\n type UseComparatorReturn,\n type ComparatorLabels,\n type ComparatorTab,\n} from '../../types/comparator';\n\nexport interface ComparatorViewProps {\n // Data sources\n readonly schools: SearchSelectOption[];\n readonly schoolYears: SearchSelectOption[];\n\n // Store hooks (injected)\n readonly useComparatorStore: () => ComparatorStoreState;\n readonly useComparator: () => UseComparatorReturn;\n\n // Navigation\n readonly onBack?: () => void;\n\n // Tab management\n readonly activeTab?: ComparatorTabType;\n readonly onTabChange?: (tab: ComparatorTabType) => void;\n readonly tabs?: ComparatorTab[];\n\n // Customization\n readonly labels?: Partial<ComparatorLabels>;\n readonly isUserLoading?: boolean;\n\n // Callbacks\n readonly onFetchUserData?: (force?: boolean) => void;\n}\n\nexport function ComparatorView({\n schools,\n schoolYears,\n useComparatorStore,\n useComparator,\n onBack,\n activeTab: externalActiveTab,\n onTabChange,\n tabs = DEFAULT_COMPARATOR_TABS,\n labels: customLabels,\n isUserLoading = false,\n onFetchUserData,\n}: ComparatorViewProps) {\n const labels = useMemo(\n () => ({ ...DEFAULT_COMPARATOR_LABELS, ...customLabels }),\n [customLabels]\n );\n\n // Store state\n const {\n comparisonType,\n selectedItems,\n setComparisonType,\n addItem,\n removeItem,\n clearSelection,\n } = useComparatorStore();\n\n // Data hook\n const { data, loading, fetchData } = useComparator();\n\n // Local UI state\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [modalStep, setModalStep] = useState<1 | 2>(1);\n const [internalActiveTab, setInternalActiveTab] = useState<ComparatorTabType>(\n ComparatorTabValue.KNOWLEDGE_AREAS\n );\n const hasInitializedRef = useRef(false);\n\n // Use external tab if provided, otherwise internal\n const activeTab = externalActiveTab ?? internalActiveTab;\n\n // Determine comparison availability\n const canCompareSchools = schools.length > 1;\n const canCompareSchoolYears = schoolYears.length > 1;\n const hasAnyComparisonOption = canCompareSchools || canCompareSchoolYears;\n\n // Fetch user data on mount\n useEffect(() => {\n onFetchUserData?.(true);\n }, [onFetchUserData]);\n\n // Load comparison data on mount if there are persisted selections\n useEffect(() => {\n if (hasInitializedRef.current) return;\n if (selectedItems.length > 0 && comparisonType) {\n hasInitializedRef.current = true;\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n activeTab\n );\n }\n }, [selectedItems, comparisonType, activeTab, fetchData]);\n\n // Options based on comparison type\n const options = useMemo((): SearchSelectOption[] => {\n if (comparisonType === 'school') return schools;\n if (comparisonType === 'schoolYear') return schoolYears;\n return [];\n }, [comparisonType, schools, schoolYears]);\n\n // Filter out already selected items\n const availableOptions = useMemo(() => {\n return options.filter(\n (opt) => !selectedItems.some((item) => item.id === opt.value)\n );\n }, [options, selectedItems]);\n\n // Handlers\n const handleTabChange = useCallback(\n (tab: ComparatorTabType) => {\n if (onTabChange) {\n onTabChange(tab);\n } else {\n setInternalActiveTab(tab);\n }\n\n if (selectedItems.length > 0 && comparisonType) {\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n tab\n );\n }\n },\n [selectedItems, comparisonType, onTabChange, fetchData]\n );\n\n const handleOpenModal = useCallback(() => {\n if (comparisonType) {\n setModalStep(2);\n setIsModalOpen(true);\n return;\n }\n\n if (canCompareSchools && !canCompareSchoolYears) {\n setComparisonType('school');\n setModalStep(2);\n } else if (canCompareSchoolYears && !canCompareSchools) {\n setComparisonType('schoolYear');\n setModalStep(2);\n } else {\n setModalStep(1);\n }\n setIsModalOpen(true);\n }, [\n comparisonType,\n canCompareSchools,\n canCompareSchoolYears,\n setComparisonType,\n ]);\n\n const handleSelectType = useCallback(\n (type: ComparisonType) => {\n clearSelection();\n setComparisonType(type);\n setModalStep(2);\n },\n [clearSelection, setComparisonType]\n );\n\n const handleSelectItem = useCallback(\n (value: string) => {\n if (selectedItems.length >= 5) return;\n\n const option = options.find((opt) => opt.value === value);\n if (!option) return;\n\n addItem({\n id: option.value,\n name: option.label,\n color: '',\n });\n },\n [options, selectedItems.length, addItem]\n );\n\n const handleRemoveItem = useCallback(\n (itemId: string) => {\n removeItem(itemId);\n },\n [removeItem]\n );\n\n const handleConfirmSelection = useCallback(() => {\n setIsModalOpen(false);\n if (selectedItems.length > 0 && comparisonType) {\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n activeTab\n );\n }\n }, [selectedItems, comparisonType, activeTab, fetchData]);\n\n const handleCloseModal = useCallback(() => {\n setIsModalOpen(false);\n }, []);\n\n const handleChangeType = useCallback(() => {\n setModalStep(1);\n clearSelection();\n }, [clearSelection]);\n\n // Get button text\n const buttonText = useMemo(() => {\n if (selectedItems.length > 0) {\n return comparisonType === 'school'\n ? labels.selectSchools\n : labels.selectSchoolYears;\n }\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.selectComparison;\n }\n return canCompareSchools ? labels.selectSchools : labels.selectSchoolYears;\n }, [\n selectedItems.length,\n comparisonType,\n canCompareSchools,\n canCompareSchoolYears,\n labels,\n ]);\n\n const renderMainContent = () => {\n if (selectedItems.length === 0) {\n return (\n <ComparatorEmptyState\n onSelectClick={handleOpenModal}\n canCompareSchools={canCompareSchools}\n canCompareSchoolYears={canCompareSchoolYears}\n isLoading={isUserLoading}\n labels={labels}\n />\n );\n }\n\n if (loading) {\n return <ComparatorLoadingState />;\n }\n\n return (\n <ComparatorTabContent\n activeTab={activeTab}\n data={data}\n selectedItems={selectedItems}\n labels={labels}\n />\n );\n };\n\n return (\n <div className=\"h-screen bg-background flex flex-col\">\n {/* Header */}\n <header className=\"flex items-center justify-between px-6 py-4 border-b border-border-100 bg-secondary-50\">\n {onBack ? (\n <Button\n variant=\"raw\"\n onClick={onBack}\n className=\"flex items-center gap-2 text-text-950 hover:text-text-700 transition-colors\"\n >\n <CaretLeftIcon size={20} weight=\"bold\" />\n <Text size=\"lg\" weight=\"semibold\">\n {labels.title}\n </Text>\n </Button>\n ) : (\n <div className=\"flex items-center gap-2 text-text-950\">\n <Text size=\"lg\" weight=\"semibold\">\n {labels.title}\n </Text>\n </div>\n )}\n <Button\n variant=\"solid\"\n action=\"primary\"\n size=\"medium\"\n onClick={handleOpenModal}\n disabled={!hasAnyComparisonOption || isUserLoading}\n >\n {buttonText}\n </Button>\n </header>\n\n {/* Tabs */}\n <div className=\"flex gap-2 px-6 py-4 border-b border-border-100 bg-secondary-50\">\n {tabs.map((tab) => (\n <Button\n variant=\"raw\"\n key={tab.value}\n onClick={() => handleTabChange(tab.value)}\n className={`px-4 py-2 text-sm font-medium transition-colors ${\n activeTab === tab.value\n ? 'text-primary-700 border-b-2 border-primary-600'\n : 'text-text-500 hover:text-text-700'\n }`}\n >\n {tab.label}\n </Button>\n ))}\n </div>\n\n {/* Content */}\n <main className=\"flex-1 overflow-auto p-6\">{renderMainContent()}</main>\n\n {/* Selection Modal */}\n <Modal\n isOpen={isModalOpen}\n onClose={handleCloseModal}\n title={labels.filters}\n size=\"md\"\n footer={\n modalStep === 2 ? (\n <div className=\"flex justify-end gap-3 w-full\">\n <Button variant=\"outline\" onClick={handleChangeType}>\n {labels.back}\n </Button>\n <Button\n variant=\"solid\"\n action=\"primary\"\n onClick={handleConfirmSelection}\n disabled={selectedItems.length === 0}\n >\n {labels.confirm} ({selectedItems.length}/5)\n </Button>\n </div>\n ) : undefined\n }\n >\n {modalStep === 1 ? (\n <ComparatorSelectTypeStep\n onSelectType={handleSelectType}\n canCompareSchools={canCompareSchools}\n canCompareSchoolYears={canCompareSchoolYears}\n labels={labels}\n />\n ) : (\n <ComparatorSelectItemsStep\n options={availableOptions}\n selectedItems={selectedItems}\n onSelectItem={handleSelectItem}\n onRemoveItem={handleRemoveItem}\n comparisonType={comparisonType!}\n labels={labels}\n />\n )}\n </Modal>\n </div>\n );\n}\n","import { PlusIcon } from '@phosphor-icons/react/dist/csr/Plus';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport type { ComparatorLabels } from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorEmptyStateProps {\n readonly onSelectClick: () => void;\n readonly canCompareSchools: boolean;\n readonly canCompareSchoolYears: boolean;\n readonly isLoading?: boolean;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorEmptyState({\n onSelectClick,\n canCompareSchools,\n canCompareSchoolYears,\n isLoading = false,\n labels: customLabels,\n}: ComparatorEmptyStateProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n const hasAnyOption = canCompareSchools || canCompareSchoolYears;\n\n const getButtonText = (): string => {\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.selectComparison;\n }\n if (canCompareSchools) {\n return labels.selectSchools;\n }\n return labels.selectSchoolYears;\n };\n\n const getDescriptionText = (): string => {\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.emptyStateDescriptionBoth;\n }\n if (canCompareSchools) {\n return labels.emptyStateDescriptionSchools;\n }\n if (canCompareSchoolYears) {\n return labels.emptyStateDescriptionSchoolYears;\n }\n return labels.noAccessMessage;\n };\n\n const buttonText = getButtonText();\n const descriptionText = getDescriptionText();\n\n return (\n <div className=\"flex flex-col items-center justify-center h-full gap-6\">\n <div className=\"w-24 h-24 rounded-full bg-primary-100 flex items-center justify-center\">\n <svg\n className=\"w-12 h-12 text-primary-600\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"\n />\n </svg>\n </div>\n <div className=\"text-center\">\n <Text size=\"lg\" weight=\"semibold\" className=\"text-text-950 mb-2\">\n {labels.title}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {descriptionText}\n </Text>\n </div>\n {hasAnyOption && (\n <Button\n variant=\"outline\"\n action=\"primary\"\n size=\"medium\"\n onClick={onSelectClick}\n disabled={isLoading}\n >\n <PlusIcon size={18} />\n {buttonText}\n </Button>\n )}\n </div>\n );\n}\n","import { SkeletonCard } from '../Skeleton/Skeleton';\n\nexport function ComparatorLoadingState() {\n return (\n <div\n className=\"flex flex-col gap-6\"\n data-testid=\"comparator-loading-skeleton\"\n >\n <SkeletonCard className=\"h-12 w-full\" />\n <SkeletonCard className=\"h-64 w-full\" />\n <SkeletonCard className=\"h-64 w-full\" />\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport type { ComparisonType, ComparatorLabels } from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorSelectTypeStepProps {\n readonly onSelectType: (type: ComparisonType) => void;\n readonly canCompareSchools: boolean;\n readonly canCompareSchoolYears: boolean;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorSelectTypeStep({\n onSelectType,\n canCompareSchools,\n canCompareSchoolYears,\n labels: customLabels,\n}: ComparatorSelectTypeStepProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n if (!canCompareSchools && !canCompareSchoolYears) {\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.noAccessMessage}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.selectComparisonType}\n </Text>\n <div className=\"flex gap-4\">\n {canCompareSchools && (\n <Button\n variant=\"raw\"\n onClick={() => onSelectType('school')}\n className=\"flex-1 p-4 border border-border-200 rounded-xl hover:border-primary-500 hover:bg-primary-50 transition-colors text-left\"\n >\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {labels.schools}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {labels.compareSchoolsDescription}\n </Text>\n </Button>\n )}\n {canCompareSchoolYears && (\n <Button\n variant=\"raw\"\n onClick={() => onSelectType('schoolYear')}\n className=\"flex-1 p-4 border border-border-200 rounded-xl hover:border-primary-500 hover:bg-primary-50 transition-colors text-left\"\n >\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {labels.schoolYears}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {labels.compareSchoolYearsDescription}\n </Text>\n </Button>\n )}\n </div>\n </div>\n );\n}\n","import { XIcon } from '@phosphor-icons/react/dist/csr/X';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport Badge from '../Badge/Badge';\nimport SearchSelect from '../SearchSelect/SearchSelect';\nimport type { SearchSelectOption } from '../SearchSelect/SearchSelect';\nimport type {\n ComparisonType,\n ComparisonItem,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorSelectItemsStepProps {\n readonly options: SearchSelectOption[];\n readonly selectedItems: ComparisonItem[];\n readonly onSelectItem: (value: string) => void;\n readonly onRemoveItem: (itemId: string) => void;\n readonly comparisonType: ComparisonType;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorSelectItemsStep({\n options,\n selectedItems,\n onSelectItem,\n onRemoveItem,\n comparisonType,\n labels: customLabels,\n}: ComparatorSelectItemsStepProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n const isMaxReached = selectedItems.length >= 5;\n const placeholder =\n comparisonType === 'school' ? labels.schools : labels.schoolYears;\n const itemTypeName =\n comparisonType === 'school'\n ? labels.schools.toLowerCase()\n : labels.schoolYears.toLowerCase();\n const singularItemTypeName =\n comparisonType === 'school' ? labels.school : labels.schoolYear;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.selectItemInstruction.replace('{item}', singularItemTypeName)}\n </Text>\n\n <SearchSelect\n options={options}\n placeholder={placeholder}\n searchPlaceholder={`${labels.search} ${placeholder.toLowerCase()}...`}\n onValueChange={onSelectItem}\n disabled={isMaxReached}\n emptyText=\"Nenhum resultado encontrado\"\n size=\"medium\"\n variant=\"outlined\"\n />\n\n {selectedItems.length > 0 && (\n <div className=\"flex flex-wrap gap-2 p-3 bg-secondary-50 rounded-xl border border-border-100\">\n {selectedItems.map((item) => (\n <Badge\n key={item.id}\n variant=\"outlined\"\n action=\"info\"\n size=\"medium\"\n className=\"flex items-center gap-1 pr-1\"\n >\n <span\n className=\"w-2 h-2 rounded-full mr-1\"\n style={{ backgroundColor: item.color }}\n />\n <span className=\"truncate max-w-[200px]\">{item.name}</span>\n <Button\n variant=\"raw\"\n onClick={() => onRemoveItem(item.id)}\n className=\"ml-1 p-0.5 rounded-full hover:bg-secondary-200 transition-colors\"\n aria-label={`Remover ${item.name}`}\n >\n <XIcon size={14} />\n </Button>\n </Badge>\n ))}\n </div>\n )}\n\n {isMaxReached && (\n <Text size=\"xs\" className=\"text-warning-600\">\n {labels.maxLimitWarning}\n </Text>\n )}\n\n <Text size=\"xs\" className=\"text-text-500\">\n {selectedItems.length} de 5 {itemTypeName} {labels.ofSelected}\n </Text>\n </div>\n );\n}\n","import Text from '../Text/Text';\n\nexport interface LegendItem {\n id: string;\n name: string;\n color: string;\n}\n\nexport interface LegendProps {\n readonly items: LegendItem[];\n}\n\nexport function Legend({ items }: LegendProps) {\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex flex-wrap gap-4 items-center\">\n {items.map((item) => (\n <div key={item.id} className=\"flex items-center gap-2\">\n <div\n className=\"w-3 h-3 rounded-full\"\n style={{ backgroundColor: item.color }}\n />\n <Text size=\"sm\" className=\"text-text-700\">\n {item.name}\n </Text>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import Text from '../Text/Text';\n\nexport function PercentageScale() {\n return (\n <div className=\"flex items-center gap-4 mb-2 border-b border-border-100 pb-2\">\n {/* Spacer for label column (matches BarChartRow label width) */}\n <div className=\"w-64 shrink-0\" />\n {/* Scale markers */}\n <div className=\"flex-1 flex justify-between px-1\">\n <Text size=\"xs\" className=\"text-text-400\">\n 0%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 25%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 50%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 75%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 100%\n </Text>\n </div>\n </div>\n );\n}\n","import { ReactNode } from 'react';\n\nexport interface ChartAreaProps {\n readonly children: ReactNode;\n}\n\nexport function ChartArea({ children }: ChartAreaProps) {\n return (\n <div className=\"relative\">\n {/* Grid lines */}\n <div className=\"absolute inset-0 flex items-stretch pointer-events-none gap-4\">\n {/* Spacer for label column (matches BarChartRow label width) */}\n <div className=\"w-64 shrink-0\" />\n <div className=\"flex-1 flex\">\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4\" />\n </div>\n </div>\n {/* Content */}\n <div className=\"relative space-y-6\">{children}</div>\n </div>\n );\n}\n","import { useState } from 'react';\nimport Text from '../Text/Text';\nimport type { LegendItem } from './Legend';\n\nexport interface BarChartValue {\n itemId: string;\n percentage: number;\n}\n\nexport interface BarChartRowProps {\n readonly label: string;\n readonly values: BarChartValue[];\n readonly items: LegendItem[];\n}\n\nexport function BarChartRow({ label, values, items }: BarChartRowProps) {\n const [hoveredItem, setHoveredItem] = useState<string | null>(null);\n\n return (\n <div className=\"flex items-center gap-4\">\n <Text size=\"sm\" className=\"text-text-700 w-64 shrink-0\">\n {label}\n </Text>\n <div className=\"flex-1 space-y-1.5\">\n {items.map((item) => {\n const value = values.find((v) => v.itemId === item.id);\n const percentage = value?.percentage ?? 0;\n const clampedPercentage = Math.max(0, Math.min(percentage, 100));\n const isHovered = hoveredItem === item.id;\n\n return (\n <div\n key={item.id}\n className=\"relative group\"\n onMouseEnter={() => setHoveredItem(item.id)}\n onMouseLeave={() => setHoveredItem(null)}\n >\n <div className=\"flex-1 h-5 bg-secondary-100 rounded-full overflow-hidden relative\">\n <div\n className={`h-full rounded-full transition-all duration-500 ${\n isHovered ? 'opacity-90' : ''\n }`}\n style={{\n width: `${clampedPercentage}%`,\n backgroundColor: item.color,\n minWidth: clampedPercentage > 0 ? '8px' : '0px',\n }}\n />\n </div>\n {/* Tooltip */}\n {isHovered && (\n <div\n className=\"absolute z-10 px-2 py-1 bg-text-900 rounded shadow-lg whitespace-nowrap\"\n style={{\n left: `${Math.min(Math.max(percentage, 5), 95)}%`,\n top: '-28px',\n transform: 'translateX(-50%)',\n }}\n >\n <Text size=\"xs\" weight=\"medium\" className=\"text-white\">\n {item.name}: {percentage.toFixed(1)}%\n </Text>\n <div\n className=\"absolute w-2 h-2 bg-text-900 rotate-45\"\n style={{\n left: '50%',\n bottom: '-4px',\n transform: 'translateX(-50%)',\n }}\n />\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type { KnowledgeAreaData, ComparisonItem } from '../../types/comparator';\n\nexport interface KnowledgeAreasContentProps {\n readonly data: KnowledgeAreaData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function KnowledgeAreasContent({\n data,\n items,\n title = 'Proficiência média das escolas por área do Enem',\n}: KnowledgeAreasContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((area) => (\n <BarChartRow\n key={area.area}\n label={area.area}\n values={area.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type {\n CurricularComponentData,\n ComparisonItem,\n} from '../../types/comparator';\n\nexport interface CurricularComponentsContentProps {\n readonly data: CurricularComponentData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function CurricularComponentsContent({\n data,\n items,\n title = 'Proficiência média por componente curricular',\n}: CurricularComponentsContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((component) => (\n <BarChartRow\n key={component.component}\n label={component.component}\n values={component.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type { CompetencyData, ComparisonItem } from '../../types/comparator';\n\nexport interface CompetenciesContentProps {\n readonly data: CompetencyData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function CompetenciesContent({\n data,\n items,\n title = 'Proficiência média por competência',\n}: CompetenciesContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((competency) => (\n <BarChartRow\n key={competency.competency}\n label={competency.competency}\n values={competency.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport Badge from '../Badge/Badge';\nimport type {\n NationalAverageData,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface NationalAverageCardProps {\n readonly data: NationalAverageData;\n readonly color?: string;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nconst DETAIL_LABELS = [\n { key: 'languages', label: 'LINGUAGENS, CÓDIGOS E SUAS TECNOLOGIAS' },\n { key: 'humanities', label: 'CIÊNCIAS HUMANAS E SUAS TECNOLOGIAS' },\n { key: 'essay', label: 'REDAÇÃO' },\n { key: 'naturalSciences', label: 'CIÊNCIAS DA NATUREZA E SUAS TECNOLOGIAS' },\n { key: 'mathematics', label: 'MATEMÁTICA E SUAS TECNOLOGIAS' },\n] as const;\n\nexport function NationalAverageCard({\n data,\n color,\n labels: customLabels,\n}: NationalAverageCardProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {data.itemName}\n </Text>\n\n {/* Main scores */}\n <div className=\"grid grid-cols-3 gap-4 mb-6\">\n <div\n className=\"bg-background rounded-xl p-4 text-center border-l-4\"\n style={{ borderColor: color }}\n >\n <Text size=\"2xl\" weight=\"bold\" className=\"text-primary-700\">\n {data.simulatedProficiency.toFixed(1)}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.simulatedProficiency}\n </Text>\n </div>\n <div className=\"bg-warning-50 rounded-xl p-4 text-center\">\n <Text size=\"2xl\" weight=\"bold\" className=\"text-warning-700\">\n {data.publicAverage}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.publicSchoolAverage}\n </Text>\n </div>\n <div className=\"bg-success-50 rounded-xl p-4 text-center\">\n <Text size=\"2xl\" weight=\"bold\" className=\"text-success-700\">\n {data.privateAverage}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.privateSchoolAverage}\n </Text>\n </div>\n </div>\n\n {/* Detail scores */}\n <div className=\"grid grid-cols-5 gap-4 mb-4\">\n {DETAIL_LABELS.map(({ key, label }) => (\n <div key={key} className=\"bg-background rounded-xl p-3 text-center\">\n <Text\n size=\"xs\"\n className=\"text-text-500 uppercase mb-1 line-clamp-2\"\n >\n {label}\n </Text>\n <Text size=\"lg\" weight=\"bold\" className=\"text-primary-700\">\n {data.details[key]}\n </Text>\n </div>\n ))}\n </div>\n\n {/* Status */}\n <Badge\n variant=\"solid\"\n action={data.status === 'above' ? 'success' : 'warning'}\n size=\"medium\"\n className=\"w-full justify-center py-3\"\n >\n {data.status === 'above' ? labels.aboveAverage : labels.belowAverage}\n </Badge>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { NationalAverageCard } from './NationalAverageCard';\nimport type {\n NationalAverageData,\n ComparisonItem,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface NationalAveragesContentProps {\n readonly data: NationalAverageData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function NationalAveragesContent({\n data,\n items,\n title,\n labels: customLabels,\n}: NationalAveragesContentProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n return (\n <div className=\"space-y-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {title || labels.nationalAveragesTitle}\n </Text>\n {data.map((item) => {\n const selectedItem = items.find((i) => i.id === item.itemId);\n return (\n <NationalAverageCard\n key={item.itemId}\n data={item}\n color={selectedItem?.color}\n labels={labels}\n />\n );\n })}\n </div>\n );\n}\n","import { KnowledgeAreasContent } from './KnowledgeAreasContent';\nimport { CurricularComponentsContent } from './CurricularComponentsContent';\nimport { CompetenciesContent } from './CompetenciesContent';\nimport { NationalAveragesContent } from './NationalAveragesContent';\nimport {\n ComparatorTabValue,\n type ComparatorTabType,\n type ComparatorData,\n type ComparisonItem,\n type ComparatorLabels,\n} from '../../types/comparator';\n\nexport interface ComparatorTabContentProps {\n readonly activeTab: ComparatorTabType;\n readonly data: ComparatorData;\n readonly selectedItems: ComparisonItem[];\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorTabContent({\n activeTab,\n data,\n selectedItems,\n labels,\n}: ComparatorTabContentProps) {\n switch (activeTab) {\n case ComparatorTabValue.KNOWLEDGE_AREAS:\n return (\n <KnowledgeAreasContent\n data={data.knowledgeAreas}\n items={selectedItems}\n title={labels?.knowledgeAreasTitle}\n />\n );\n case ComparatorTabValue.CURRICULAR_COMPONENTS:\n return (\n <CurricularComponentsContent\n data={data.curricularComponents}\n items={selectedItems}\n title={labels?.curricularComponentsTitle}\n />\n );\n case ComparatorTabValue.COMPETENCIES:\n return (\n <CompetenciesContent\n data={data.competencies}\n items={selectedItems}\n title={labels?.competenciesTitle}\n />\n );\n case ComparatorTabValue.NATIONAL_AVERAGES:\n return (\n <NationalAveragesContent\n data={data.nationalAverages}\n items={selectedItems}\n title={labels?.nationalAveragesTitle}\n labels={labels}\n />\n );\n default:\n return null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-CVDNCU6L.js","../src/components/ComparatorChart/ComparatorView.tsx","../src/components/ComparatorChart/ComparatorEmptyState.tsx","../src/components/ComparatorChart/ComparatorLoadingState.tsx","../src/components/ComparatorChart/ComparatorSelectTypeStep.tsx","../src/components/ComparatorChart/ComparatorSelectItemsStep.tsx","../src/components/ComparatorChart/Legend.tsx","../src/components/ComparatorChart/PercentageScale.tsx","../src/components/ComparatorChart/ChartArea.tsx","../src/components/ComparatorChart/BarChartRow.tsx","../src/components/ComparatorChart/KnowledgeAreasContent.tsx","../src/components/ComparatorChart/CurricularComponentsContent.tsx","../src/components/ComparatorChart/CompetenciesContent.tsx","../src/components/ComparatorChart/NationalAverageCard.tsx","../src/components/ComparatorChart/NationalAveragesContent.tsx","../src/components/ComparatorChart/ComparatorTabContent.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-CVDNCU6L.js","sourcesContent":[null,"import { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport { CaretLeftIcon } from '@phosphor-icons/react/dist/csr/CaretLeft';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport Modal from '../Modal/Modal';\nimport type { SearchSelectOption } from '../SearchSelect/SearchSelect';\nimport { ComparatorEmptyState } from './ComparatorEmptyState';\nimport { ComparatorLoadingState } from './ComparatorLoadingState';\nimport { ComparatorSelectTypeStep } from './ComparatorSelectTypeStep';\nimport { ComparatorSelectItemsStep } from './ComparatorSelectItemsStep';\nimport { ComparatorTabContent } from './ComparatorTabContent';\nimport {\n ComparatorTabValue,\n DEFAULT_COMPARATOR_LABELS,\n DEFAULT_COMPARATOR_TABS,\n type ComparisonType,\n type ComparatorTabType,\n type ComparatorStoreState,\n type UseComparatorReturn,\n type ComparatorLabels,\n type ComparatorTab,\n} from '../../types/comparator';\n\nexport interface ComparatorViewProps {\n // Data sources\n readonly schools: SearchSelectOption[];\n readonly schoolYears: SearchSelectOption[];\n\n // Store hooks (injected)\n readonly useComparatorStore: () => ComparatorStoreState;\n readonly useComparator: () => UseComparatorReturn;\n\n // Navigation\n readonly onBack?: () => void;\n\n // Tab management\n readonly activeTab?: ComparatorTabType;\n readonly onTabChange?: (tab: ComparatorTabType) => void;\n readonly tabs?: ComparatorTab[];\n\n // Customization\n readonly labels?: Partial<ComparatorLabels>;\n readonly isUserLoading?: boolean;\n\n // Callbacks\n readonly onFetchUserData?: (force?: boolean) => void;\n}\n\nexport function ComparatorView({\n schools,\n schoolYears,\n useComparatorStore,\n useComparator,\n onBack,\n activeTab: externalActiveTab,\n onTabChange,\n tabs = DEFAULT_COMPARATOR_TABS,\n labels: customLabels,\n isUserLoading = false,\n onFetchUserData,\n}: ComparatorViewProps) {\n const labels = useMemo(\n () => ({ ...DEFAULT_COMPARATOR_LABELS, ...customLabels }),\n [customLabels]\n );\n\n // Store state\n const {\n comparisonType,\n selectedItems,\n setComparisonType,\n addItem,\n removeItem,\n clearSelection,\n } = useComparatorStore();\n\n // Data hook\n const { data, loading, fetchData } = useComparator();\n\n // Local UI state\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [modalStep, setModalStep] = useState<1 | 2>(1);\n const [internalActiveTab, setInternalActiveTab] = useState<ComparatorTabType>(\n ComparatorTabValue.KNOWLEDGE_AREAS\n );\n const hasInitializedRef = useRef(false);\n\n // Use external tab if provided, otherwise internal\n const activeTab = externalActiveTab ?? internalActiveTab;\n\n // Determine comparison availability\n const canCompareSchools = schools.length > 1;\n const canCompareSchoolYears = schoolYears.length > 1;\n const hasAnyComparisonOption = canCompareSchools || canCompareSchoolYears;\n\n // Fetch user data on mount\n useEffect(() => {\n onFetchUserData?.(true);\n }, [onFetchUserData]);\n\n // Load comparison data on mount if there are persisted selections\n useEffect(() => {\n if (hasInitializedRef.current) return;\n if (selectedItems.length > 0 && comparisonType) {\n hasInitializedRef.current = true;\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n activeTab\n );\n }\n }, [selectedItems, comparisonType, activeTab, fetchData]);\n\n // Options based on comparison type\n const options = useMemo((): SearchSelectOption[] => {\n if (comparisonType === 'school') return schools;\n if (comparisonType === 'schoolYear') return schoolYears;\n return [];\n }, [comparisonType, schools, schoolYears]);\n\n // Filter out already selected items\n const availableOptions = useMemo(() => {\n return options.filter(\n (opt) => !selectedItems.some((item) => item.id === opt.value)\n );\n }, [options, selectedItems]);\n\n // Handlers\n const handleTabChange = useCallback(\n (tab: ComparatorTabType) => {\n if (onTabChange) {\n onTabChange(tab);\n } else {\n setInternalActiveTab(tab);\n }\n\n if (selectedItems.length > 0 && comparisonType) {\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n tab\n );\n }\n },\n [selectedItems, comparisonType, onTabChange, fetchData]\n );\n\n const handleOpenModal = useCallback(() => {\n if (comparisonType) {\n setModalStep(2);\n setIsModalOpen(true);\n return;\n }\n\n if (canCompareSchools && !canCompareSchoolYears) {\n setComparisonType('school');\n setModalStep(2);\n } else if (canCompareSchoolYears && !canCompareSchools) {\n setComparisonType('schoolYear');\n setModalStep(2);\n } else {\n setModalStep(1);\n }\n setIsModalOpen(true);\n }, [\n comparisonType,\n canCompareSchools,\n canCompareSchoolYears,\n setComparisonType,\n ]);\n\n const handleSelectType = useCallback(\n (type: ComparisonType) => {\n clearSelection();\n setComparisonType(type);\n setModalStep(2);\n },\n [clearSelection, setComparisonType]\n );\n\n const handleSelectItem = useCallback(\n (value: string) => {\n if (selectedItems.length >= 5) return;\n\n const option = options.find((opt) => opt.value === value);\n if (!option) return;\n\n addItem({\n id: option.value,\n name: option.label,\n color: '',\n });\n },\n [options, selectedItems.length, addItem]\n );\n\n const handleRemoveItem = useCallback(\n (itemId: string) => {\n removeItem(itemId);\n },\n [removeItem]\n );\n\n const handleConfirmSelection = useCallback(() => {\n setIsModalOpen(false);\n if (selectedItems.length > 0 && comparisonType) {\n fetchData(\n selectedItems.map((i) => i.id),\n comparisonType,\n activeTab\n );\n }\n }, [selectedItems, comparisonType, activeTab, fetchData]);\n\n const handleCloseModal = useCallback(() => {\n setIsModalOpen(false);\n }, []);\n\n const handleChangeType = useCallback(() => {\n setModalStep(1);\n clearSelection();\n }, [clearSelection]);\n\n // Get button text\n const buttonText = useMemo(() => {\n if (selectedItems.length > 0) {\n return comparisonType === 'school'\n ? labels.selectSchools\n : labels.selectSchoolYears;\n }\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.selectComparison;\n }\n return canCompareSchools ? labels.selectSchools : labels.selectSchoolYears;\n }, [\n selectedItems.length,\n comparisonType,\n canCompareSchools,\n canCompareSchoolYears,\n labels,\n ]);\n\n const renderMainContent = () => {\n if (selectedItems.length === 0) {\n return (\n <ComparatorEmptyState\n onSelectClick={handleOpenModal}\n canCompareSchools={canCompareSchools}\n canCompareSchoolYears={canCompareSchoolYears}\n isLoading={isUserLoading}\n labels={labels}\n />\n );\n }\n\n if (loading) {\n return <ComparatorLoadingState />;\n }\n\n return (\n <ComparatorTabContent\n activeTab={activeTab}\n data={data}\n selectedItems={selectedItems}\n labels={labels}\n />\n );\n };\n\n return (\n <div className=\"h-screen bg-background flex flex-col\">\n {/* Header */}\n <header className=\"flex items-center justify-between px-6 py-4 border-b border-border-100 bg-secondary-50\">\n {onBack ? (\n <Button\n variant=\"raw\"\n onClick={onBack}\n className=\"flex items-center gap-2 text-text-950 hover:text-text-700 transition-colors\"\n >\n <CaretLeftIcon size={20} weight=\"bold\" />\n <Text size=\"lg\" weight=\"semibold\">\n {labels.title}\n </Text>\n </Button>\n ) : (\n <div className=\"flex items-center gap-2 text-text-950\">\n <Text size=\"lg\" weight=\"semibold\">\n {labels.title}\n </Text>\n </div>\n )}\n <Button\n variant=\"solid\"\n action=\"primary\"\n size=\"medium\"\n onClick={handleOpenModal}\n disabled={!hasAnyComparisonOption || isUserLoading}\n >\n {buttonText}\n </Button>\n </header>\n\n {/* Tabs */}\n <div className=\"flex gap-2 px-6 py-4 border-b border-border-100 bg-secondary-50\">\n {tabs.map((tab) => (\n <Button\n variant=\"raw\"\n key={tab.value}\n onClick={() => handleTabChange(tab.value)}\n className={`px-4 py-2 text-sm font-medium transition-colors ${\n activeTab === tab.value\n ? 'text-primary-700 border-b-2 border-primary-600'\n : 'text-text-500 hover:text-text-700'\n }`}\n >\n {tab.label}\n </Button>\n ))}\n </div>\n\n {/* Content */}\n <main className=\"flex-1 overflow-auto p-6\">{renderMainContent()}</main>\n\n {/* Selection Modal */}\n <Modal\n isOpen={isModalOpen}\n onClose={handleCloseModal}\n title={labels.filters}\n size=\"md\"\n footer={\n modalStep === 2 ? (\n <div className=\"flex justify-end gap-3 w-full\">\n <Button variant=\"outline\" onClick={handleChangeType}>\n {labels.back}\n </Button>\n <Button\n variant=\"solid\"\n action=\"primary\"\n onClick={handleConfirmSelection}\n disabled={selectedItems.length === 0}\n >\n {labels.confirm} ({selectedItems.length}/5)\n </Button>\n </div>\n ) : undefined\n }\n >\n {modalStep === 1 ? (\n <ComparatorSelectTypeStep\n onSelectType={handleSelectType}\n canCompareSchools={canCompareSchools}\n canCompareSchoolYears={canCompareSchoolYears}\n labels={labels}\n />\n ) : (\n <ComparatorSelectItemsStep\n options={availableOptions}\n selectedItems={selectedItems}\n onSelectItem={handleSelectItem}\n onRemoveItem={handleRemoveItem}\n comparisonType={comparisonType!}\n labels={labels}\n />\n )}\n </Modal>\n </div>\n );\n}\n","import { PlusIcon } from '@phosphor-icons/react/dist/csr/Plus';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport type { ComparatorLabels } from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorEmptyStateProps {\n readonly onSelectClick: () => void;\n readonly canCompareSchools: boolean;\n readonly canCompareSchoolYears: boolean;\n readonly isLoading?: boolean;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorEmptyState({\n onSelectClick,\n canCompareSchools,\n canCompareSchoolYears,\n isLoading = false,\n labels: customLabels,\n}: ComparatorEmptyStateProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n const hasAnyOption = canCompareSchools || canCompareSchoolYears;\n\n const getButtonText = (): string => {\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.selectComparison;\n }\n if (canCompareSchools) {\n return labels.selectSchools;\n }\n return labels.selectSchoolYears;\n };\n\n const getDescriptionText = (): string => {\n if (canCompareSchools && canCompareSchoolYears) {\n return labels.emptyStateDescriptionBoth;\n }\n if (canCompareSchools) {\n return labels.emptyStateDescriptionSchools;\n }\n if (canCompareSchoolYears) {\n return labels.emptyStateDescriptionSchoolYears;\n }\n return labels.noAccessMessage;\n };\n\n const buttonText = getButtonText();\n const descriptionText = getDescriptionText();\n\n return (\n <div className=\"flex flex-col items-center justify-center h-full gap-6\">\n <div className=\"w-24 h-24 rounded-full bg-primary-100 flex items-center justify-center\">\n <svg\n className=\"w-12 h-12 text-primary-600\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"\n />\n </svg>\n </div>\n <div className=\"text-center\">\n <Text size=\"lg\" weight=\"semibold\" className=\"text-text-950 mb-2\">\n {labels.title}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {descriptionText}\n </Text>\n </div>\n {hasAnyOption && (\n <Button\n variant=\"outline\"\n action=\"primary\"\n size=\"medium\"\n onClick={onSelectClick}\n disabled={isLoading}\n >\n <PlusIcon size={18} />\n {buttonText}\n </Button>\n )}\n </div>\n );\n}\n","import { SkeletonCard } from '../Skeleton/Skeleton';\n\nexport function ComparatorLoadingState() {\n return (\n <div\n className=\"flex flex-col gap-6\"\n data-testid=\"comparator-loading-skeleton\"\n >\n <SkeletonCard className=\"h-12 w-full\" />\n <SkeletonCard className=\"h-64 w-full\" />\n <SkeletonCard className=\"h-64 w-full\" />\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport type { ComparisonType, ComparatorLabels } from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorSelectTypeStepProps {\n readonly onSelectType: (type: ComparisonType) => void;\n readonly canCompareSchools: boolean;\n readonly canCompareSchoolYears: boolean;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorSelectTypeStep({\n onSelectType,\n canCompareSchools,\n canCompareSchoolYears,\n labels: customLabels,\n}: ComparatorSelectTypeStepProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n if (!canCompareSchools && !canCompareSchoolYears) {\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.noAccessMessage}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.selectComparisonType}\n </Text>\n <div className=\"flex gap-4\">\n {canCompareSchools && (\n <Button\n variant=\"raw\"\n onClick={() => onSelectType('school')}\n className=\"flex-1 p-4 border border-border-200 rounded-xl hover:border-primary-500 hover:bg-primary-50 transition-colors text-left\"\n >\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {labels.schools}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {labels.compareSchoolsDescription}\n </Text>\n </Button>\n )}\n {canCompareSchoolYears && (\n <Button\n variant=\"raw\"\n onClick={() => onSelectType('schoolYear')}\n className=\"flex-1 p-4 border border-border-200 rounded-xl hover:border-primary-500 hover:bg-primary-50 transition-colors text-left\"\n >\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {labels.schoolYears}\n </Text>\n <Text size=\"sm\" className=\"text-text-500\">\n {labels.compareSchoolYearsDescription}\n </Text>\n </Button>\n )}\n </div>\n </div>\n );\n}\n","import { XIcon } from '@phosphor-icons/react/dist/csr/X';\nimport Text from '../Text/Text';\nimport Button from '../Button/Button';\nimport Badge from '../Badge/Badge';\nimport SearchSelect from '../SearchSelect/SearchSelect';\nimport type { SearchSelectOption } from '../SearchSelect/SearchSelect';\nimport type {\n ComparisonType,\n ComparisonItem,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface ComparatorSelectItemsStepProps {\n readonly options: SearchSelectOption[];\n readonly selectedItems: ComparisonItem[];\n readonly onSelectItem: (value: string) => void;\n readonly onRemoveItem: (itemId: string) => void;\n readonly comparisonType: ComparisonType;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorSelectItemsStep({\n options,\n selectedItems,\n onSelectItem,\n onRemoveItem,\n comparisonType,\n labels: customLabels,\n}: ComparatorSelectItemsStepProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n const isMaxReached = selectedItems.length >= 5;\n const placeholder =\n comparisonType === 'school' ? labels.schools : labels.schoolYears;\n const itemTypeName =\n comparisonType === 'school'\n ? labels.schools.toLowerCase()\n : labels.schoolYears.toLowerCase();\n const singularItemTypeName =\n comparisonType === 'school' ? labels.school : labels.schoolYear;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Text size=\"sm\" className=\"text-text-600\">\n {labels.selectItemInstruction.replace('{item}', singularItemTypeName)}\n </Text>\n\n <SearchSelect\n options={options}\n placeholder={placeholder}\n searchPlaceholder={`${labels.search} ${placeholder.toLowerCase()}...`}\n onValueChange={onSelectItem}\n disabled={isMaxReached}\n emptyText=\"Nenhum resultado encontrado\"\n size=\"medium\"\n variant=\"outlined\"\n />\n\n {selectedItems.length > 0 && (\n <div className=\"flex flex-wrap gap-2 p-3 bg-secondary-50 rounded-xl border border-border-100\">\n {selectedItems.map((item) => (\n <Badge\n key={item.id}\n variant=\"outlined\"\n action=\"info\"\n size=\"medium\"\n className=\"flex items-center gap-1 pr-1\"\n >\n <span\n className=\"w-2 h-2 rounded-full mr-1\"\n style={{ backgroundColor: item.color }}\n />\n <span className=\"truncate max-w-[200px]\">{item.name}</span>\n <Button\n variant=\"raw\"\n onClick={() => onRemoveItem(item.id)}\n className=\"ml-1 p-0.5 rounded-full hover:bg-secondary-200 transition-colors\"\n aria-label={`Remover ${item.name}`}\n >\n <XIcon size={14} />\n </Button>\n </Badge>\n ))}\n </div>\n )}\n\n {isMaxReached && (\n <Text size=\"xs\" className=\"text-warning-600\">\n {labels.maxLimitWarning}\n </Text>\n )}\n\n <Text size=\"xs\" className=\"text-text-500\">\n {selectedItems.length} de 5 {itemTypeName} {labels.ofSelected}\n </Text>\n </div>\n );\n}\n","import Text from '../Text/Text';\n\nexport interface LegendItem {\n id: string;\n name: string;\n color: string;\n}\n\nexport interface LegendProps {\n readonly items: LegendItem[];\n}\n\nexport function Legend({ items }: LegendProps) {\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex flex-wrap gap-4 items-center\">\n {items.map((item) => (\n <div key={item.id} className=\"flex items-center gap-2\">\n <div\n className=\"w-3 h-3 rounded-full\"\n style={{ backgroundColor: item.color }}\n />\n <Text size=\"sm\" className=\"text-text-700\">\n {item.name}\n </Text>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import Text from '../Text/Text';\n\nexport function PercentageScale() {\n return (\n <div className=\"flex items-center gap-4 mb-2 border-b border-border-100 pb-2\">\n {/* Spacer for label column (matches BarChartRow label width) */}\n <div className=\"w-64 shrink-0\" />\n {/* Scale markers */}\n <div className=\"flex-1 flex justify-between px-1\">\n <Text size=\"xs\" className=\"text-text-400\">\n 0%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 25%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 50%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 75%\n </Text>\n <Text size=\"xs\" className=\"text-text-400\">\n 100%\n </Text>\n </div>\n </div>\n );\n}\n","import { ReactNode } from 'react';\n\nexport interface ChartAreaProps {\n readonly children: ReactNode;\n}\n\nexport function ChartArea({ children }: ChartAreaProps) {\n return (\n <div className=\"relative\">\n {/* Grid lines */}\n <div className=\"absolute inset-0 flex items-stretch pointer-events-none gap-4\">\n {/* Spacer for label column (matches BarChartRow label width) */}\n <div className=\"w-64 shrink-0\" />\n <div className=\"flex-1 flex\">\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4 border-r border-dashed border-border-200\" />\n <div className=\"w-1/4\" />\n </div>\n </div>\n {/* Content */}\n <div className=\"relative space-y-6\">{children}</div>\n </div>\n );\n}\n","import { useState } from 'react';\nimport Text from '../Text/Text';\nimport type { LegendItem } from './Legend';\n\nexport interface BarChartValue {\n itemId: string;\n percentage: number;\n}\n\nexport interface BarChartRowProps {\n readonly label: string;\n readonly values: BarChartValue[];\n readonly items: LegendItem[];\n}\n\nexport function BarChartRow({ label, values, items }: BarChartRowProps) {\n const [hoveredItem, setHoveredItem] = useState<string | null>(null);\n\n return (\n <div className=\"flex items-center gap-4\">\n <Text size=\"sm\" className=\"text-text-700 w-64 shrink-0\">\n {label}\n </Text>\n <div className=\"flex-1 space-y-1.5\">\n {items.map((item) => {\n const value = values.find((v) => v.itemId === item.id);\n const percentage = value?.percentage ?? 0;\n const clampedPercentage = Math.max(0, Math.min(percentage, 100));\n const isHovered = hoveredItem === item.id;\n\n return (\n <div\n key={item.id}\n className=\"relative group\"\n onMouseEnter={() => setHoveredItem(item.id)}\n onMouseLeave={() => setHoveredItem(null)}\n >\n <div className=\"flex-1 h-5 bg-secondary-100 rounded-full overflow-hidden relative\">\n <div\n className={`h-full rounded-full transition-all duration-500 ${\n isHovered ? 'opacity-90' : ''\n }`}\n style={{\n width: `${clampedPercentage}%`,\n backgroundColor: item.color,\n minWidth: clampedPercentage > 0 ? '8px' : '0px',\n }}\n />\n </div>\n {/* Tooltip */}\n {isHovered && (\n <div\n className=\"absolute z-10 px-2 py-1 bg-text-900 rounded shadow-lg whitespace-nowrap\"\n style={{\n left: `${Math.min(Math.max(percentage, 5), 95)}%`,\n top: '-28px',\n transform: 'translateX(-50%)',\n }}\n >\n <Text size=\"xs\" weight=\"medium\" className=\"text-white\">\n {item.name}: {percentage.toFixed(1)}%\n </Text>\n <div\n className=\"absolute w-2 h-2 bg-text-900 rotate-45\"\n style={{\n left: '50%',\n bottom: '-4px',\n transform: 'translateX(-50%)',\n }}\n />\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type { KnowledgeAreaData, ComparisonItem } from '../../types/comparator';\n\nexport interface KnowledgeAreasContentProps {\n readonly data: KnowledgeAreaData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function KnowledgeAreasContent({\n data,\n items,\n title = 'Proficiência média das escolas por área do Enem',\n}: KnowledgeAreasContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((area) => (\n <BarChartRow\n key={area.area}\n label={area.area}\n values={area.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type {\n CurricularComponentData,\n ComparisonItem,\n} from '../../types/comparator';\n\nexport interface CurricularComponentsContentProps {\n readonly data: CurricularComponentData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function CurricularComponentsContent({\n data,\n items,\n title = 'Proficiência média por componente curricular',\n}: CurricularComponentsContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((component) => (\n <BarChartRow\n key={component.component}\n label={component.component}\n values={component.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { Legend } from './Legend';\nimport { PercentageScale } from './PercentageScale';\nimport { ChartArea } from './ChartArea';\nimport { BarChartRow } from './BarChartRow';\nimport type { CompetencyData, ComparisonItem } from '../../types/comparator';\n\nexport interface CompetenciesContentProps {\n readonly data: CompetencyData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n}\n\nexport function CompetenciesContent({\n data,\n items,\n title = 'Proficiência média por competência',\n}: CompetenciesContentProps) {\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <div className=\"mb-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {title}\n </Text>\n <Legend items={items} />\n </div>\n <PercentageScale />\n <ChartArea>\n {data.map((competency) => (\n <BarChartRow\n key={competency.competency}\n label={competency.competency}\n values={competency.values}\n items={items}\n />\n ))}\n </ChartArea>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport Badge from '../Badge/Badge';\nimport type {\n NationalAverageData,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface NationalAverageCardProps {\n readonly data: NationalAverageData;\n readonly color?: string;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nconst DETAIL_LABELS = [\n { key: 'languages', label: 'LINGUAGENS, CÓDIGOS E SUAS TECNOLOGIAS' },\n { key: 'humanities', label: 'CIÊNCIAS HUMANAS E SUAS TECNOLOGIAS' },\n { key: 'essay', label: 'REDAÇÃO' },\n { key: 'naturalSciences', label: 'CIÊNCIAS DA NATUREZA E SUAS TECNOLOGIAS' },\n { key: 'mathematics', label: 'MATEMÁTICA E SUAS TECNOLOGIAS' },\n] as const;\n\nexport function NationalAverageCard({\n data,\n color,\n labels: customLabels,\n}: NationalAverageCardProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n return (\n <div className=\"bg-secondary-50 rounded-2xl p-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950 mb-4\">\n {data.itemName}\n </Text>\n\n {/* Main scores */}\n <div className=\"grid grid-cols-3 gap-4 mb-6\">\n <div\n className=\"bg-background rounded-xl p-4 text-center border-l-4\"\n style={{ borderColor: color }}\n >\n <Text size=\"2xl\" weight=\"bold\" className=\"text-primary-700\">\n {data.simulatedProficiency.toFixed(1)}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.simulatedProficiency}\n </Text>\n </div>\n <div className=\"bg-warning-50 rounded-xl p-4 text-center\">\n <Text size=\"2xl\" weight=\"bold\" className=\"text-warning-700\">\n {data.publicAverage}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.publicSchoolAverage}\n </Text>\n </div>\n <div className=\"bg-success-50 rounded-xl p-4 text-center\">\n <Text size=\"2xl\" weight=\"bold\" className=\"text-success-700\">\n {data.privateAverage}\n </Text>\n <Text size=\"xs\" className=\"text-text-500 uppercase\">\n {labels.privateSchoolAverage}\n </Text>\n </div>\n </div>\n\n {/* Detail scores */}\n <div className=\"grid grid-cols-5 gap-4 mb-4\">\n {DETAIL_LABELS.map(({ key, label }) => (\n <div key={key} className=\"bg-background rounded-xl p-3 text-center\">\n <Text\n size=\"xs\"\n className=\"text-text-500 uppercase mb-1 line-clamp-2\"\n >\n {label}\n </Text>\n <Text size=\"lg\" weight=\"bold\" className=\"text-primary-700\">\n {data.details[key]}\n </Text>\n </div>\n ))}\n </div>\n\n {/* Status */}\n <Badge\n variant=\"solid\"\n action={data.status === 'above' ? 'success' : 'warning'}\n size=\"medium\"\n className=\"w-full justify-center py-3\"\n >\n {data.status === 'above' ? labels.aboveAverage : labels.belowAverage}\n </Badge>\n </div>\n );\n}\n","import Text from '../Text/Text';\nimport { NationalAverageCard } from './NationalAverageCard';\nimport type {\n NationalAverageData,\n ComparisonItem,\n ComparatorLabels,\n} from '../../types/comparator';\nimport { DEFAULT_COMPARATOR_LABELS } from '../../types/comparator';\n\nexport interface NationalAveragesContentProps {\n readonly data: NationalAverageData[];\n readonly items: ComparisonItem[];\n readonly title?: string;\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function NationalAveragesContent({\n data,\n items,\n title,\n labels: customLabels,\n}: NationalAveragesContentProps) {\n const labels = { ...DEFAULT_COMPARATOR_LABELS, ...customLabels };\n\n return (\n <div className=\"space-y-6\">\n <Text size=\"md\" weight=\"semibold\" className=\"text-text-950\">\n {title || labels.nationalAveragesTitle}\n </Text>\n {data.map((item) => {\n const selectedItem = items.find((i) => i.id === item.itemId);\n return (\n <NationalAverageCard\n key={item.itemId}\n data={item}\n color={selectedItem?.color}\n labels={labels}\n />\n );\n })}\n </div>\n );\n}\n","import { KnowledgeAreasContent } from './KnowledgeAreasContent';\nimport { CurricularComponentsContent } from './CurricularComponentsContent';\nimport { CompetenciesContent } from './CompetenciesContent';\nimport { NationalAveragesContent } from './NationalAveragesContent';\nimport {\n ComparatorTabValue,\n type ComparatorTabType,\n type ComparatorData,\n type ComparisonItem,\n type ComparatorLabels,\n} from '../../types/comparator';\n\nexport interface ComparatorTabContentProps {\n readonly activeTab: ComparatorTabType;\n readonly data: ComparatorData;\n readonly selectedItems: ComparisonItem[];\n readonly labels?: Partial<ComparatorLabels>;\n}\n\nexport function ComparatorTabContent({\n activeTab,\n data,\n selectedItems,\n labels,\n}: ComparatorTabContentProps) {\n switch (activeTab) {\n case ComparatorTabValue.KNOWLEDGE_AREAS:\n return (\n <KnowledgeAreasContent\n data={data.knowledgeAreas}\n items={selectedItems}\n title={labels?.knowledgeAreasTitle}\n />\n );\n case ComparatorTabValue.CURRICULAR_COMPONENTS:\n return (\n <CurricularComponentsContent\n data={data.curricularComponents}\n items={selectedItems}\n title={labels?.curricularComponentsTitle}\n />\n );\n case ComparatorTabValue.COMPETENCIES:\n return (\n <CompetenciesContent\n data={data.competencies}\n items={selectedItems}\n title={labels?.competenciesTitle}\n />\n );\n case ComparatorTabValue.NATIONAL_AVERAGES:\n return (\n <NationalAveragesContent\n data={data.nationalAverages}\n items={selectedItems}\n title={labels?.nationalAveragesTitle}\n labels={labels}\n />\n );\n default:\n return null;\n }\n}\n"]}
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
isClassesData,
|
|
24
24
|
isMunicipalitiesData,
|
|
25
25
|
isStudentsData
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-BXN3VO6I.mjs";
|
|
27
27
|
import {
|
|
28
28
|
useModulesStore
|
|
29
29
|
} from "./chunk-IJXNISWM.mjs";
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
} from "./chunk-RV6HA5CB.mjs";
|
|
110
110
|
import {
|
|
111
111
|
ReportDetailModal_default
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-RNZGX6MX.mjs";
|
|
113
113
|
import {
|
|
114
114
|
createUseActivitiesHistory,
|
|
115
115
|
getClassOptionsFromUserData,
|
|
@@ -213,13 +213,13 @@ import {
|
|
|
213
213
|
} from "./chunk-E5KQ4LYQ.mjs";
|
|
214
214
|
import {
|
|
215
215
|
VideoPlayer_default
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-AU2HLQDJ.mjs";
|
|
217
217
|
import {
|
|
218
218
|
DownloadButton_default
|
|
219
|
-
} from "./chunk-
|
|
219
|
+
} from "./chunk-ZF46DCAC.mjs";
|
|
220
220
|
import {
|
|
221
221
|
Whiteboard_default
|
|
222
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-SGL5IUCV.mjs";
|
|
223
223
|
import {
|
|
224
224
|
PerformanceDistributionChart
|
|
225
225
|
} from "./chunk-ANKVQHNP.mjs";
|
|
@@ -235,11 +235,11 @@ import {
|
|
|
235
235
|
import {
|
|
236
236
|
CorrectActivityModal_default,
|
|
237
237
|
renderFromMap
|
|
238
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-KG563P7F.mjs";
|
|
239
239
|
import {
|
|
240
240
|
SimulationsDetailModal,
|
|
241
241
|
convertApiResponseToCorrectionData
|
|
242
|
-
} from "./chunk-
|
|
242
|
+
} from "./chunk-HLVLSWKD.mjs";
|
|
243
243
|
import {
|
|
244
244
|
createUseSimulations
|
|
245
245
|
} from "./chunk-MHRJKJBN.mjs";
|
|
@@ -258,7 +258,7 @@ import {
|
|
|
258
258
|
} from "./chunk-ISA7EZU4.mjs";
|
|
259
259
|
import {
|
|
260
260
|
MultipleChoiceList
|
|
261
|
-
} from "./chunk-
|
|
261
|
+
} from "./chunk-YD2XBEKO.mjs";
|
|
262
262
|
import {
|
|
263
263
|
HtmlMathRenderer_default,
|
|
264
264
|
stripHtml
|
|
@@ -329,7 +329,7 @@ import {
|
|
|
329
329
|
} from "./chunk-4WPEHJCN.mjs";
|
|
330
330
|
import {
|
|
331
331
|
Search_default
|
|
332
|
-
} from "./chunk-
|
|
332
|
+
} from "./chunk-SZKLJOTN.mjs";
|
|
333
333
|
import {
|
|
334
334
|
ProgressBar_default
|
|
335
335
|
} from "./chunk-YUX6DM2Z.mjs";
|
|
@@ -359,7 +359,7 @@ import {
|
|
|
359
359
|
} from "./chunk-N26PFH64.mjs";
|
|
360
360
|
import {
|
|
361
361
|
CheckBox_default
|
|
362
|
-
} from "./chunk-
|
|
362
|
+
} from "./chunk-3EGJJDIM.mjs";
|
|
363
363
|
import {
|
|
364
364
|
Chips_default
|
|
365
365
|
} from "./chunk-TVFP3HZX.mjs";
|
|
@@ -371,13 +371,13 @@ import {
|
|
|
371
371
|
DropdownMenuItem,
|
|
372
372
|
DropdownMenuTrigger,
|
|
373
373
|
DropdownMenu_default
|
|
374
|
-
} from "./chunk-
|
|
374
|
+
} from "./chunk-7ZWEBNFB.mjs";
|
|
375
375
|
import {
|
|
376
376
|
SelectionButton_default
|
|
377
377
|
} from "./chunk-W46HZ2AP.mjs";
|
|
378
378
|
import {
|
|
379
379
|
Modal_default
|
|
380
|
-
} from "./chunk-
|
|
380
|
+
} from "./chunk-LODDYDTP.mjs";
|
|
381
381
|
import {
|
|
382
382
|
readingFluencyFallbackPortrait
|
|
383
383
|
} from "./chunk-624IUGB4.mjs";
|
|
@@ -23469,4 +23469,4 @@ export {
|
|
|
23469
23469
|
ExamDetailsPage,
|
|
23470
23470
|
ExamDetailsPage_default
|
|
23471
23471
|
};
|
|
23472
|
-
//# sourceMappingURL=chunk-
|
|
23472
|
+
//# sourceMappingURL=chunk-D46PJSQ7.mjs.map
|
|
@@ -6,7 +6,7 @@ var _chunk5DY2JMMJjs = require('./chunk-5DY2JMMJ.js');
|
|
|
6
6
|
var _chunkK74NP7Q7js = require('./chunk-K74NP7Q7.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkS2BZPPAIjs = require('./chunk-S2BZPPAI.js');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -1065,7 +1065,7 @@ function SimulatedStudentDetailsModal({
|
|
|
1065
1065
|
] });
|
|
1066
1066
|
};
|
|
1067
1067
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1068
|
-
|
|
1068
|
+
_chunkS2BZPPAIjs.ReportDetailModal_default,
|
|
1069
1069
|
{
|
|
1070
1070
|
isOpen,
|
|
1071
1071
|
onClose,
|
|
@@ -2010,4 +2010,4 @@ function useSimulatedPerformance({
|
|
|
2010
2010
|
|
|
2011
2011
|
|
|
2012
2012
|
exports.GeneralOverviewSection = GeneralOverviewSection; exports.useGeneralOverview = useGeneralOverview; exports.ESSAY_AREA_ID = ESSAY_AREA_ID; exports.AreaKnowledgeSelector = AreaKnowledgeSelector; exports.SIMULATED_PERFORMANCE_TAG_CONFIG = SIMULATED_PERFORMANCE_TAG_CONFIG; exports.PerformanceBadgeAction = PerformanceBadgeAction; exports.PERFORMANCE_TAG_TO_BADGE_ACTION = PERFORMANCE_TAG_TO_BADGE_ACTION; exports.ReportSimulationType = ReportSimulationType; exports.isStudentSubjectsData = isStudentSubjectsData; exports.isStudentContentsData = isStudentContentsData; exports.simulationTypeToActivityFilters = simulationTypeToActivityFilters; exports.useSimulatedStudentDetails = useSimulatedStudentDetails; exports.SimulatedStudentDetailsModal = SimulatedStudentDetailsModal; exports.useSimulatedContents = useSimulatedContents; exports.isStudentsData = isStudentsData; exports.isClassesData = isClassesData; exports.isMunicipalitiesData = isMunicipalitiesData; exports.useSimulatedOverview = useSimulatedOverview; exports.useAggregatedOverview = useAggregatedOverview; exports.getAggregationTypeByProfile = getAggregationTypeByProfile; exports.shouldUseAggregatedOverview = shouldUseAggregatedOverview; exports.SimulatedViewTab = SimulatedViewTab; exports.useSimulatedPerformance = useSimulatedPerformance;
|
|
2013
|
-
//# sourceMappingURL=chunk-
|
|
2013
|
+
//# sourceMappingURL=chunk-DDORKDQO.js.map
|