analytica-frontend-lib 1.6.76 → 1.6.78
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 +4 -5
- package/dist/AccessReportModal/index.js.map +1 -1
- package/dist/AccessReportModal/index.mjs +3 -4
- package/dist/AccessibilityWidget/index.js +4 -5
- package/dist/AccessibilityWidget/index.js.map +1 -1
- package/dist/AccessibilityWidget/index.mjs +3 -4
- package/dist/Accordation/index.js +4 -4
- package/dist/Accordation/index.mjs +3 -3
- package/dist/ActivitiesHistory/index.js +48 -49
- package/dist/ActivitiesHistory/index.js.map +1 -1
- package/dist/ActivitiesHistory/index.mjs +47 -48
- package/dist/ActivityCardQuestionBanks/index.d.ts.map +1 -1
- package/dist/ActivityCardQuestionBanks/index.js +48 -49
- package/dist/ActivityCardQuestionBanks/index.js.map +1 -1
- package/dist/ActivityCardQuestionBanks/index.mjs +47 -48
- package/dist/ActivityCardQuestionPreview/index.js +48 -49
- package/dist/ActivityCardQuestionPreview/index.js.map +1 -1
- package/dist/ActivityCardQuestionPreview/index.mjs +47 -48
- package/dist/ActivityCreate/ActivityCreateContent/index.js +48 -49
- package/dist/ActivityCreate/ActivityCreateContent/index.js.map +1 -1
- package/dist/ActivityCreate/ActivityCreateContent/index.mjs +47 -48
- package/dist/ActivityCreate/index.js +48 -49
- package/dist/ActivityCreate/index.js.map +1 -1
- package/dist/ActivityCreate/index.mjs +47 -48
- package/dist/ActivityDetails/index.js +48 -49
- package/dist/ActivityDetails/index.js.map +1 -1
- package/dist/ActivityDetails/index.mjs +47 -48
- package/dist/ActivityFilters/index.js +48 -49
- package/dist/ActivityFilters/index.js.map +1 -1
- package/dist/ActivityFilters/index.mjs +47 -48
- package/dist/ActivityPageLayout/index.js +48 -49
- package/dist/ActivityPageLayout/index.js.map +1 -1
- package/dist/ActivityPageLayout/index.mjs +47 -48
- package/dist/ActivityPreview/index.js +48 -49
- package/dist/ActivityPreview/index.js.map +1 -1
- package/dist/ActivityPreview/index.mjs +47 -48
- package/dist/AlertDialog/index.d.ts.map +1 -1
- package/dist/AlertDialog/index.js +3 -3
- package/dist/AlertDialog/index.mjs +2 -2
- package/dist/AlertManager/index.js +48 -49
- package/dist/AlertManager/index.js.map +1 -1
- package/dist/AlertManager/index.mjs +47 -48
- package/dist/AlertManagerView/index.js +4 -5
- package/dist/AlertManagerView/index.js.map +1 -1
- package/dist/AlertManagerView/index.mjs +3 -4
- package/dist/AnnouncementModal/index.js +4 -5
- package/dist/AnnouncementModal/index.js.map +1 -1
- package/dist/AnnouncementModal/index.mjs +3 -4
- package/dist/AnnouncementsGate/index.js +5 -6
- package/dist/AnnouncementsGate/index.js.map +1 -1
- package/dist/AnnouncementsGate/index.mjs +4 -5
- package/dist/AnswerKeyModal/index.js +4 -5
- package/dist/AnswerKeyModal/index.js.map +1 -1
- package/dist/AnswerKeyModal/index.mjs +3 -4
- package/dist/AppHeader/index.js +8 -9
- package/dist/AppHeader/index.js.map +1 -1
- package/dist/AppHeader/index.mjs +7 -8
- package/dist/CalendarCard/index.js +6 -7
- package/dist/CalendarCard/index.js.map +1 -1
- package/dist/CalendarCard/index.mjs +5 -6
- package/dist/Card/index.d.ts.map +1 -1
- package/dist/Card/index.js +3 -3
- package/dist/Card/index.mjs +2 -2
- package/dist/Chat/index.js +4 -5
- package/dist/Chat/index.js.map +1 -1
- package/dist/Chat/index.mjs +3 -4
- package/dist/Chatbot/index.js +4 -5
- package/dist/Chatbot/index.js.map +1 -1
- package/dist/Chatbot/index.mjs +3 -4
- package/dist/CheckBoxGroup/index.js +48 -49
- package/dist/CheckBoxGroup/index.js.map +1 -1
- package/dist/CheckBoxGroup/index.mjs +47 -48
- package/dist/ComparatorChart/ComparatorView/index.js +4 -5
- package/dist/ComparatorChart/ComparatorView/index.js.map +1 -1
- package/dist/ComparatorChart/ComparatorView/index.mjs +3 -4
- package/dist/CorrectActivityModal/index.js +9 -10
- package/dist/CorrectActivityModal/index.js.map +1 -1
- package/dist/CorrectActivityModal/index.mjs +8 -9
- package/dist/DownloadButton/index.js +6 -7
- package/dist/DownloadButton/index.js.map +1 -1
- package/dist/DownloadButton/index.mjs +5 -6
- package/dist/DownloadModal/index.js +4 -5
- package/dist/DownloadModal/index.js.map +1 -1
- package/dist/DownloadModal/index.mjs +3 -4
- package/dist/DropdownMenu/index.js +4 -5
- package/dist/DropdownMenu/index.js.map +1 -1
- package/dist/DropdownMenu/index.mjs +3 -4
- package/dist/EnemClassroomStartModal/index.js +8 -9
- package/dist/EnemClassroomStartModal/index.js.map +1 -1
- package/dist/EnemClassroomStartModal/index.mjs +7 -8
- package/dist/EnemMoment/index.js +110 -94
- package/dist/EnemMoment/index.js.map +1 -1
- package/dist/EnemMoment/index.mjs +74 -58
- package/dist/EnemMoment/index.mjs.map +1 -1
- package/dist/EnemMomentStudentModal/index.js +62 -63
- package/dist/EnemMomentStudentModal/index.js.map +1 -1
- package/dist/EnemMomentStudentModal/index.mjs +48 -49
- package/dist/EnemMomentStudentModal/index.mjs.map +1 -1
- package/dist/EssayThemePicker/index.js +3 -3
- package/dist/EssayThemePicker/index.mjs +2 -2
- package/dist/ExamDetailsLayout/ExamDetailsPage/index.js +48 -49
- package/dist/ExamDetailsLayout/ExamDetailsPage/index.js.map +1 -1
- package/dist/ExamDetailsLayout/ExamDetailsPage/index.mjs +47 -48
- package/dist/ExamPageLayout/index.js +48 -49
- package/dist/ExamPageLayout/index.js.map +1 -1
- package/dist/ExamPageLayout/index.mjs +47 -48
- package/dist/Forum/index.js +6 -7
- package/dist/Forum/index.js.map +1 -1
- package/dist/Forum/index.mjs +5 -6
- package/dist/IconButton/index.js +2 -2
- package/dist/IconButton/index.mjs +1 -1
- package/dist/LessonCardPreview/index.js +48 -49
- package/dist/LessonCardPreview/index.js.map +1 -1
- package/dist/LessonCardPreview/index.mjs +47 -48
- package/dist/LessonMediaSections/index.js +48 -49
- package/dist/LessonMediaSections/index.js.map +1 -1
- package/dist/LessonMediaSections/index.mjs +47 -48
- package/dist/LessonsCatalog/index.js +48 -49
- package/dist/LessonsCatalog/index.js.map +1 -1
- package/dist/LessonsCatalog/index.mjs +47 -48
- package/dist/Modal/index.d.ts +11 -1
- package/dist/Modal/index.d.ts.map +1 -1
- package/dist/Modal/index.js +3 -4
- package/dist/Modal/index.js.map +1 -1
- package/dist/Modal/index.mjs +2 -3
- package/dist/MultiCheckSelect/index.js +5 -6
- package/dist/MultiCheckSelect/index.js.map +1 -1
- package/dist/MultiCheckSelect/index.mjs +4 -5
- package/dist/NotificationCard/index.js +6 -7
- package/dist/NotificationCard/index.js.map +1 -1
- package/dist/NotificationCard/index.mjs +5 -6
- package/dist/PerformanceReportModal/index.js +4 -5
- package/dist/PerformanceReportModal/index.js.map +1 -1
- package/dist/PerformanceReportModal/index.mjs +3 -4
- package/dist/PrintableUsersTable/index.js +48 -49
- package/dist/PrintableUsersTable/index.js.map +1 -1
- package/dist/PrintableUsersTable/index.mjs +47 -48
- package/dist/ProgressModal/index.js +4 -5
- package/dist/ProgressModal/index.js.map +1 -1
- package/dist/ProgressModal/index.mjs +3 -4
- package/dist/QuestionsPerformanceCard/index.js +49 -50
- package/dist/QuestionsPerformanceCard/index.js.map +1 -1
- package/dist/QuestionsPerformanceCard/index.mjs +48 -49
- package/dist/Quiz/QuizResult/index.js +4 -4
- package/dist/Quiz/QuizResult/index.mjs +3 -3
- package/dist/Quiz/index.d.ts.map +1 -1
- package/dist/Quiz/index.js +8 -9
- package/dist/Quiz/index.js.map +1 -1
- package/dist/Quiz/index.mjs +7 -8
- package/dist/QuizTimer/index.d.ts +12 -0
- package/dist/QuizTimer/index.d.ts.map +1 -1
- package/dist/QuizTimer/index.js +4 -2
- package/dist/QuizTimer/index.js.map +1 -1
- package/dist/QuizTimer/index.mjs +4 -2
- package/dist/RecommendedLessonCreate/index.js +48 -49
- package/dist/RecommendedLessonCreate/index.js.map +1 -1
- package/dist/RecommendedLessonCreate/index.mjs +47 -48
- package/dist/RecommendedLessonDetails/index.js +11 -12
- package/dist/RecommendedLessonDetails/index.js.map +1 -1
- package/dist/RecommendedLessonDetails/index.mjs +10 -11
- package/dist/RecommendedLessonsHistory/index.js +48 -49
- package/dist/RecommendedLessonsHistory/index.js.map +1 -1
- package/dist/RecommendedLessonsHistory/index.mjs +47 -48
- package/dist/ReportDetailModal/index.js +5 -6
- package/dist/ReportDetailModal/index.js.map +1 -1
- package/dist/ReportDetailModal/index.mjs +4 -5
- package/dist/RichEditor/index.js +6 -7
- package/dist/RichEditor/index.js.map +1 -1
- package/dist/RichEditor/index.mjs +5 -6
- package/dist/{RichEditorCore-62NIM7PC.js → RichEditorCore-6OT3VNJR.js} +15 -16
- package/dist/RichEditorCore-6OT3VNJR.js.map +1 -0
- package/dist/{RichEditorCore-CCO3SSSU.mjs → RichEditorCore-IF6JQHEO.mjs} +6 -7
- package/dist/{RichEditorCore-CCO3SSSU.mjs.map → RichEditorCore-IF6JQHEO.mjs.map} +1 -1
- package/dist/Search/index.js +5 -6
- package/dist/Search/index.js.map +1 -1
- package/dist/Search/index.mjs +4 -5
- package/dist/SendActivityModal/SendActivityModal.js +48 -49
- package/dist/SendActivityModal/SendActivityModal.js.map +1 -1
- package/dist/SendActivityModal/SendActivityModal.mjs +47 -48
- package/dist/SendActivityModal/index.js +48 -49
- package/dist/SendActivityModal/index.js.map +1 -1
- package/dist/SendActivityModal/index.mjs +47 -48
- package/dist/SendLessonModal/index.js +48 -49
- package/dist/SendLessonModal/index.js.map +1 -1
- package/dist/SendLessonModal/index.mjs +47 -48
- package/dist/SimulatedPerformance/SimulatedPerformanceView/index.js +48 -49
- package/dist/SimulatedPerformance/SimulatedPerformanceView/index.js.map +1 -1
- package/dist/SimulatedPerformance/SimulatedPerformanceView/index.mjs +47 -48
- package/dist/SimulatedPerformance/useSimulatedPerformance/index.js +6 -7
- package/dist/SimulatedPerformance/useSimulatedPerformance/index.js.map +1 -1
- package/dist/SimulatedPerformance/useSimulatedPerformance/index.mjs +5 -6
- package/dist/SimulatedStudentSimulationsModal/index.js +8 -9
- package/dist/SimulatedStudentSimulationsModal/index.js.map +1 -1
- package/dist/SimulatedStudentSimulationsModal/index.mjs +7 -8
- package/dist/SimulationSummaryCards/index.js +5 -5
- package/dist/SimulationSummaryCards/index.mjs +4 -4
- package/dist/SimulationsPage/index.js +48 -49
- package/dist/SimulationsPage/index.js.map +1 -1
- package/dist/SimulationsPage/index.mjs +47 -48
- package/dist/StudentLessonProgressModal/index.js +6 -7
- package/dist/StudentLessonProgressModal/index.js.map +1 -1
- package/dist/StudentLessonProgressModal/index.mjs +5 -6
- package/dist/StudentPerformanceDetailsModal/index.js +9 -10
- package/dist/StudentPerformanceDetailsModal/index.js.map +1 -1
- package/dist/StudentPerformanceDetailsModal/index.mjs +8 -9
- package/dist/Support/TicketModal/index.js +4 -5
- package/dist/Support/TicketModal/index.js.map +1 -1
- package/dist/Support/TicketModal/index.mjs +3 -4
- package/dist/Support/index.js +5 -6
- package/dist/Support/index.js.map +1 -1
- package/dist/Support/index.mjs +4 -5
- package/dist/TableProvider/index.js +48 -49
- package/dist/TableProvider/index.js.map +1 -1
- package/dist/TableProvider/index.mjs +47 -48
- package/dist/UnifiedDraftModelPage/index.js +48 -49
- package/dist/UnifiedDraftModelPage/index.js.map +1 -1
- package/dist/UnifiedDraftModelPage/index.mjs +47 -48
- package/dist/UnifiedHistoryPage/index.js +48 -49
- package/dist/UnifiedHistoryPage/index.js.map +1 -1
- package/dist/UnifiedHistoryPage/index.mjs +47 -48
- package/dist/VideoPlayer/index.js +7 -8
- package/dist/VideoPlayer/index.js.map +1 -1
- package/dist/VideoPlayer/index.mjs +6 -7
- package/dist/Whiteboard/index.js +4 -5
- package/dist/Whiteboard/index.js.map +1 -1
- package/dist/Whiteboard/index.mjs +3 -4
- package/dist/{chunk-EVBQNVQW.mjs → chunk-233FSBU7.mjs} +5 -5
- package/dist/{chunk-JU63EMZM.js → chunk-24DQFREC.js} +3 -3
- package/dist/{chunk-JU63EMZM.js.map → chunk-24DQFREC.js.map} +1 -1
- package/dist/{chunk-QFXSQKW3.mjs → chunk-254EBPMW.mjs} +22 -22
- package/dist/{chunk-QFXSQKW3.mjs.map → chunk-254EBPMW.mjs.map} +1 -1
- package/dist/{chunk-SFQVZ4KQ.js → chunk-2ETPIOCD.js} +3 -3
- package/dist/{chunk-SFQVZ4KQ.js.map → chunk-2ETPIOCD.js.map} +1 -1
- package/dist/{chunk-RCNIBRZY.js → chunk-2VTJ2PKF.js} +10 -10
- package/dist/{chunk-RCNIBRZY.js.map → chunk-2VTJ2PKF.js.map} +1 -1
- package/dist/{chunk-B35D5S4G.js → chunk-2ZMGNCMI.js} +6 -6
- package/dist/{chunk-B35D5S4G.js.map → chunk-2ZMGNCMI.js.map} +1 -1
- package/dist/{chunk-QEPKR6ZF.js → chunk-3KSRDIS2.js} +20 -20
- package/dist/{chunk-QEPKR6ZF.js.map → chunk-3KSRDIS2.js.map} +1 -1
- package/dist/{chunk-MUCV5ZWZ.mjs → chunk-3YF7H577.mjs} +15 -9
- package/dist/chunk-3YF7H577.mjs.map +1 -0
- package/dist/{chunk-MADPP2PW.mjs → chunk-3ZSI2KI5.mjs} +2 -2
- package/dist/{chunk-2W7PTFXS.mjs → chunk-42XKJV56.mjs} +2 -2
- package/dist/{chunk-M6TC6XRQ.mjs → chunk-55ESXRRM.mjs} +2 -2
- package/dist/{chunk-4MURAKPC.mjs → chunk-5DJVOLVX.mjs} +3 -3
- package/dist/{chunk-YVT7CT3G.mjs → chunk-5P6CBDZ6.mjs} +2 -2
- package/dist/{chunk-BHKTJCFD.js → chunk-5QUP5HKB.js} +3 -3
- package/dist/{chunk-BHKTJCFD.js.map → chunk-5QUP5HKB.js.map} +1 -1
- package/dist/{chunk-SFEU7BMY.mjs → chunk-5SFNRXZB.mjs} +2 -2
- package/dist/{chunk-6ALEXGAN.js → chunk-6U4AI5SE.js} +6 -6
- package/dist/{chunk-6ALEXGAN.js.map → chunk-6U4AI5SE.js.map} +1 -1
- package/dist/{chunk-KYY4U5SN.mjs → chunk-6Z5W5J44.mjs} +3 -3
- package/dist/{chunk-XOKBMLW3.js → chunk-7IGUYLSF.js} +3 -3
- package/dist/{chunk-XOKBMLW3.js.map → chunk-7IGUYLSF.js.map} +1 -1
- package/dist/{chunk-GVYGPJH3.mjs → chunk-AU5M2766.mjs} +2 -2
- package/dist/{chunk-2VODGC76.js → chunk-AVEMHDN2.js} +66 -44
- package/dist/chunk-AVEMHDN2.js.map +1 -0
- package/dist/{chunk-HIIOADV4.js → chunk-AZSRKBYS.js} +63 -71
- package/dist/chunk-AZSRKBYS.js.map +1 -0
- package/dist/{chunk-CY2VKNCB.js → chunk-BQIBVC6X.js} +5 -5
- package/dist/{chunk-CY2VKNCB.js.map → chunk-BQIBVC6X.js.map} +1 -1
- package/dist/{chunk-M77TQ5JJ.mjs → chunk-BU32E6BR.mjs} +4 -6
- package/dist/{chunk-M77TQ5JJ.mjs.map → chunk-BU32E6BR.mjs.map} +1 -1
- package/dist/{chunk-5CQVDUDO.js → chunk-BUNF5POU.js} +5 -5
- package/dist/{chunk-5CQVDUDO.js.map → chunk-BUNF5POU.js.map} +1 -1
- package/dist/{chunk-Z6UN4ZPW.mjs → chunk-BVHVYC7Q.mjs} +4 -4
- package/dist/{chunk-WJENEFDG.js → chunk-CAFVLHDV.js} +3 -3
- package/dist/{chunk-WJENEFDG.js.map → chunk-CAFVLHDV.js.map} +1 -1
- package/dist/{chunk-BVUPM6EY.js → chunk-CAQ2Q3ON.js} +2 -2
- package/dist/chunk-CAQ2Q3ON.js.map +1 -0
- package/dist/{chunk-QMPOGLAR.js → chunk-CIASXVWX.js} +3 -3
- package/dist/{chunk-QMPOGLAR.js.map → chunk-CIASXVWX.js.map} +1 -1
- package/dist/{chunk-APKEYUJ3.js → chunk-CIQLC2ZZ.js} +3 -3
- package/dist/{chunk-APKEYUJ3.js.map → chunk-CIQLC2ZZ.js.map} +1 -1
- package/dist/{chunk-36XPNLGQ.js → chunk-CW3FCWR4.js} +16 -16
- package/dist/{chunk-36XPNLGQ.js.map → chunk-CW3FCWR4.js.map} +1 -1
- package/dist/{chunk-J5VEAJN5.mjs → chunk-CWVUGZNK.mjs} +2 -2
- package/dist/{chunk-BCMDP6GK.mjs → chunk-DV3N2K3Y.mjs} +4 -4
- package/dist/{chunk-PP7SEERV.mjs → chunk-DXYSEBK3.mjs} +9 -3
- package/dist/chunk-DXYSEBK3.mjs.map +1 -0
- package/dist/{chunk-754M6HQ5.js → chunk-EJN4OP3D.js} +5 -5
- package/dist/{chunk-754M6HQ5.js.map → chunk-EJN4OP3D.js.map} +1 -1
- package/dist/{chunk-3IM2SBPO.js → chunk-F5K3HMKT.js} +4 -4
- package/dist/{chunk-3IM2SBPO.js.map → chunk-F5K3HMKT.js.map} +1 -1
- package/dist/{chunk-WMDSGVZ7.mjs → chunk-GCGSAS2Z.mjs} +48 -63
- package/dist/chunk-GCGSAS2Z.mjs.map +1 -0
- package/dist/{chunk-EXHGEJ4P.mjs → chunk-GKARHTZ2.mjs} +2 -2
- package/dist/{chunk-2VDCEEXB.js → chunk-GNKFBVW4.js} +3 -3
- package/dist/{chunk-2VDCEEXB.js.map → chunk-GNKFBVW4.js.map} +1 -1
- package/dist/{chunk-CDLOMECB.js → chunk-GTBPMNTJ.js} +3 -3
- package/dist/{chunk-CDLOMECB.js.map → chunk-GTBPMNTJ.js.map} +1 -1
- package/dist/{chunk-YQKAASWM.js → chunk-GXXDSBN2.js} +10 -4
- package/dist/chunk-GXXDSBN2.js.map +1 -0
- package/dist/{chunk-FASVPU6N.js → chunk-H3F4OCXC.js} +10 -10
- package/dist/{chunk-FASVPU6N.js.map → chunk-H3F4OCXC.js.map} +1 -1
- package/dist/{chunk-JCFN6KRS.mjs → chunk-HGWDB73S.mjs} +2 -2
- package/dist/{chunk-JXXMO7PY.mjs → chunk-HN5RW4C3.mjs} +3 -3
- package/dist/{chunk-I2A4EQPH.mjs → chunk-HQ2GXFK5.mjs} +6 -6
- package/dist/{chunk-BIPC6F6D.js → chunk-IDJ37MOU.js} +115 -115
- package/dist/{chunk-BIPC6F6D.js.map → chunk-IDJ37MOU.js.map} +1 -1
- package/dist/{chunk-TBJLNIOY.mjs → chunk-JBLYYTHN.mjs} +2 -2
- package/dist/{chunk-G4NK66PM.js → chunk-JTWXQ267.js} +24 -18
- package/dist/chunk-JTWXQ267.js.map +1 -0
- package/dist/{chunk-V6IC74KH.js → chunk-JXGLDRDC.js} +34 -34
- package/dist/{chunk-V6IC74KH.js.map → chunk-JXGLDRDC.js.map} +1 -1
- package/dist/{chunk-DDFIRQI5.mjs → chunk-K3E5VEBF.mjs} +56 -34
- package/dist/chunk-K3E5VEBF.mjs.map +1 -0
- package/dist/{chunk-MSBEWG26.js → chunk-K5O2IOI4.js} +8 -8
- package/dist/{chunk-MSBEWG26.js.map → chunk-K5O2IOI4.js.map} +1 -1
- package/dist/{chunk-SB5YGKXR.js → chunk-KBMLGQ5J.js} +49 -64
- package/dist/chunk-KBMLGQ5J.js.map +1 -0
- package/dist/chunk-KCZEKV7M.mjs +81 -0
- package/dist/chunk-KCZEKV7M.mjs.map +1 -0
- package/dist/{chunk-GRSN76BV.mjs → chunk-KH2R4STU.mjs} +3 -3
- package/dist/{chunk-7DQM34JT.js → chunk-KHYSXYPO.js} +23 -23
- package/dist/{chunk-7DQM34JT.js.map → chunk-KHYSXYPO.js.map} +1 -1
- package/dist/{chunk-V2YHMPRR.js → chunk-KJHBQQYJ.js} +5 -5
- package/dist/{chunk-V2YHMPRR.js.map → chunk-KJHBQQYJ.js.map} +1 -1
- package/dist/{chunk-ZF5NMQJZ.mjs → chunk-KUKLN3CK.mjs} +4 -4
- package/dist/{chunk-6AYB7CZH.js → chunk-KZQVGSR2.js} +2 -2
- package/dist/{chunk-6AYB7CZH.js.map → chunk-KZQVGSR2.js.map} +1 -1
- package/dist/{chunk-UAKRBNW2.mjs → chunk-L4T76OKM.mjs} +2 -2
- package/dist/{chunk-AUCXJ7LG.js → chunk-M3LQH7Y7.js} +3 -3
- package/dist/{chunk-AUCXJ7LG.js.map → chunk-M3LQH7Y7.js.map} +1 -1
- package/dist/{chunk-FQNJJH7F.js → chunk-MCXRKD56.js} +13 -13
- package/dist/{chunk-FQNJJH7F.js.map → chunk-MCXRKD56.js.map} +1 -1
- package/dist/{chunk-PY5WCBKN.mjs → chunk-MERKXOSI.mjs} +4 -4
- package/dist/{chunk-D3YDZF2G.js → chunk-N472HQPZ.js} +3 -3
- package/dist/{chunk-D3YDZF2G.js.map → chunk-N472HQPZ.js.map} +1 -1
- package/dist/{chunk-UPMYCGXR.js → chunk-N4K4X34Z.js} +4 -4
- package/dist/{chunk-UPMYCGXR.js.map → chunk-N4K4X34Z.js.map} +1 -1
- package/dist/{chunk-RU43UMEH.js → chunk-NFCNAFUK.js} +3 -3
- package/dist/{chunk-RU43UMEH.js.map → chunk-NFCNAFUK.js.map} +1 -1
- package/dist/{chunk-APCB5HWT.mjs → chunk-NLSDZJRR.mjs} +3 -3
- package/dist/{chunk-EWYIXCNF.mjs → chunk-NLUTNCLH.mjs} +5 -5
- package/dist/{chunk-OP4Q2KDS.mjs → chunk-NMKKMY5P.mjs} +2 -2
- package/dist/{chunk-WDPFO4II.mjs → chunk-NMPK336K.mjs} +2 -2
- package/dist/{chunk-X6BZ5IEV.mjs → chunk-NU7O6YKR.mjs} +2 -2
- package/dist/{chunk-ZABDSRX3.js → chunk-NUZ5K3CB.js} +4 -4
- package/dist/{chunk-ZABDSRX3.js.map → chunk-NUZ5K3CB.js.map} +1 -1
- package/dist/{chunk-N5ZGFYLA.js → chunk-NZX3BA62.js} +3 -3
- package/dist/{chunk-N5ZGFYLA.js.map → chunk-NZX3BA62.js.map} +1 -1
- package/dist/{chunk-2TLSEAL2.js → chunk-O4TRDWXJ.js} +3 -3
- package/dist/{chunk-2TLSEAL2.js.map → chunk-O4TRDWXJ.js.map} +1 -1
- package/dist/{chunk-CBI5F4ME.mjs → chunk-OMSSA4NO.mjs} +2 -2
- package/dist/{chunk-YGEEWLGJ.js → chunk-PKKXCX5B.js} +3 -3
- package/dist/{chunk-YGEEWLGJ.js.map → chunk-PKKXCX5B.js.map} +1 -1
- package/dist/{chunk-GYHD6QEA.mjs → chunk-PQGQ3EH5.mjs} +2 -2
- package/dist/{chunk-3LN5GQAC.js → chunk-Q6UIUYNF.js} +6 -8
- package/dist/chunk-Q6UIUYNF.js.map +1 -0
- package/dist/chunk-QLWBGM7H.js +81 -0
- package/dist/chunk-QLWBGM7H.js.map +1 -0
- package/dist/{chunk-IF5GW6ID.js → chunk-QZ5DCDZ2.js} +6 -6
- package/dist/{chunk-IF5GW6ID.js.map → chunk-QZ5DCDZ2.js.map} +1 -1
- package/dist/{chunk-LSUCENYD.mjs → chunk-RBKGHUSR.mjs} +2 -2
- package/dist/{chunk-PIZTI5SJ.js → chunk-RMCZ7C2C.js} +3 -3
- package/dist/{chunk-PIZTI5SJ.js.map → chunk-RMCZ7C2C.js.map} +1 -1
- package/dist/{chunk-LGQNMQOT.mjs → chunk-ROS5XGTQ.mjs} +2 -2
- package/dist/chunk-ROS5XGTQ.mjs.map +1 -0
- package/dist/{chunk-TEUERRDG.mjs → chunk-RV45XVXE.mjs} +2 -2
- package/dist/{chunk-FW6ZI2MC.mjs → chunk-UAFSWXN5.mjs} +2 -2
- package/dist/{chunk-QUGKQYAJ.mjs → chunk-ULVFVLFE.mjs} +4 -6
- package/dist/{chunk-QUGKQYAJ.mjs.map → chunk-ULVFVLFE.mjs.map} +1 -1
- package/dist/{chunk-ANLL2EIX.mjs → chunk-UWCGTH3U.mjs} +2 -2
- package/dist/{chunk-6R2LEEEP.mjs → chunk-UZF2D2GG.mjs} +2 -2
- package/dist/{chunk-62L3PMYE.mjs → chunk-V3OVMHZD.mjs} +2 -2
- package/dist/{chunk-UDITT3N3.mjs → chunk-V6ELDZ2B.mjs} +2 -2
- package/dist/{chunk-G7NUCBD3.js → chunk-VDPV24JJ.js} +3 -3
- package/dist/{chunk-G7NUCBD3.js.map → chunk-VDPV24JJ.js.map} +1 -1
- package/dist/{chunk-IJQOTS5O.mjs → chunk-VJUS3GC4.mjs} +2 -2
- package/dist/{chunk-ZUPP7R2K.js → chunk-W7BBVDBI.js} +17 -3
- package/dist/chunk-W7BBVDBI.js.map +1 -0
- package/dist/{chunk-EHQDQ5RV.js → chunk-XARMPXRN.js} +10 -12
- package/dist/chunk-XARMPXRN.js.map +1 -0
- package/dist/{chunk-MQEAEU6G.mjs → chunk-XGMRYNER.mjs} +2 -2
- package/dist/{chunk-MMQMVVD6.mjs → chunk-XLTD5J74.mjs} +3 -3
- package/dist/{chunk-L3ST5GUJ.js → chunk-XQUK7R7L.js} +17 -17
- package/dist/{chunk-L3ST5GUJ.js.map → chunk-XQUK7R7L.js.map} +1 -1
- package/dist/{chunk-OMBUOOMD.mjs → chunk-XYT542WD.mjs} +2 -2
- package/dist/{chunk-IZNABVXE.js → chunk-Y4IGIWP4.js} +3 -3
- package/dist/{chunk-IZNABVXE.js.map → chunk-Y4IGIWP4.js.map} +1 -1
- package/dist/{chunk-COWOGT7U.mjs → chunk-YZWFDSTC.mjs} +2 -2
- package/dist/{chunk-M2FN7CNS.mjs → chunk-Z4L2DWMX.mjs} +17 -3
- package/dist/chunk-Z4L2DWMX.mjs.map +1 -0
- package/dist/chunk-Z75J66LL.mjs +149 -0
- package/dist/chunk-Z75J66LL.mjs.map +1 -0
- package/dist/{chunk-CWIJ7RXR.js → chunk-ZHUFICW3.js} +3 -3
- package/dist/{chunk-CWIJ7RXR.js.map → chunk-ZHUFICW3.js.map} +1 -1
- package/dist/{chunk-Q5XGBTOY.js → chunk-ZNITTMV5.js} +3 -3
- package/dist/{chunk-Q5XGBTOY.js.map → chunk-ZNITTMV5.js.map} +1 -1
- package/dist/components/EnemMoment/HeaderFilters.d.ts +12 -1
- package/dist/components/EnemMoment/HeaderFilters.d.ts.map +1 -1
- package/dist/components/EnemMoment/types.d.ts +10 -1
- package/dist/components/EnemMoment/types.d.ts.map +1 -1
- package/dist/hooks/useAppContent/index.js +48 -49
- package/dist/hooks/useAppContent/index.js.map +1 -1
- package/dist/hooks/useAppContent/index.mjs +47 -48
- package/dist/hooks/useResizableColumns.d.ts +20 -9
- package/dist/hooks/useResizableColumns.d.ts.map +1 -1
- package/dist/hooks/useScreen/index.js +2 -2
- package/dist/hooks/useScreen/index.mjs +1 -1
- package/dist/index.js +48 -49
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +47 -48
- package/dist/store/layoutPreferencesStore.d.ts +12 -24
- package/dist/store/layoutPreferencesStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/RichEditorCore-62NIM7PC.js.map +0 -1
- package/dist/chunk-2EDRPEYL.mjs +0 -157
- package/dist/chunk-2EDRPEYL.mjs.map +0 -1
- package/dist/chunk-2VODGC76.js.map +0 -1
- package/dist/chunk-3LN5GQAC.js.map +0 -1
- package/dist/chunk-BVUPM6EY.js.map +0 -1
- package/dist/chunk-CH6BWMSQ.js +0 -17
- package/dist/chunk-CH6BWMSQ.js.map +0 -1
- package/dist/chunk-DDFIRQI5.mjs.map +0 -1
- package/dist/chunk-EHQDQ5RV.js.map +0 -1
- package/dist/chunk-G4NK66PM.js.map +0 -1
- package/dist/chunk-HIIOADV4.js.map +0 -1
- package/dist/chunk-JSH3BQZ7.mjs +0 -17
- package/dist/chunk-JSH3BQZ7.mjs.map +0 -1
- package/dist/chunk-LGQNMQOT.mjs.map +0 -1
- package/dist/chunk-LMDAF6LA.mjs +0 -51
- package/dist/chunk-LMDAF6LA.mjs.map +0 -1
- package/dist/chunk-M2FN7CNS.mjs.map +0 -1
- package/dist/chunk-MUCV5ZWZ.mjs.map +0 -1
- package/dist/chunk-PJOBOBNJ.js +0 -51
- package/dist/chunk-PJOBOBNJ.js.map +0 -1
- package/dist/chunk-PP7SEERV.mjs.map +0 -1
- package/dist/chunk-SB5YGKXR.js.map +0 -1
- package/dist/chunk-WMDSGVZ7.mjs.map +0 -1
- package/dist/chunk-YQKAASWM.js.map +0 -1
- package/dist/chunk-ZUPP7R2K.js.map +0 -1
- /package/dist/{chunk-EVBQNVQW.mjs.map → chunk-233FSBU7.mjs.map} +0 -0
- /package/dist/{chunk-MADPP2PW.mjs.map → chunk-3ZSI2KI5.mjs.map} +0 -0
- /package/dist/{chunk-2W7PTFXS.mjs.map → chunk-42XKJV56.mjs.map} +0 -0
- /package/dist/{chunk-M6TC6XRQ.mjs.map → chunk-55ESXRRM.mjs.map} +0 -0
- /package/dist/{chunk-4MURAKPC.mjs.map → chunk-5DJVOLVX.mjs.map} +0 -0
- /package/dist/{chunk-YVT7CT3G.mjs.map → chunk-5P6CBDZ6.mjs.map} +0 -0
- /package/dist/{chunk-SFEU7BMY.mjs.map → chunk-5SFNRXZB.mjs.map} +0 -0
- /package/dist/{chunk-KYY4U5SN.mjs.map → chunk-6Z5W5J44.mjs.map} +0 -0
- /package/dist/{chunk-GVYGPJH3.mjs.map → chunk-AU5M2766.mjs.map} +0 -0
- /package/dist/{chunk-Z6UN4ZPW.mjs.map → chunk-BVHVYC7Q.mjs.map} +0 -0
- /package/dist/{chunk-J5VEAJN5.mjs.map → chunk-CWVUGZNK.mjs.map} +0 -0
- /package/dist/{chunk-BCMDP6GK.mjs.map → chunk-DV3N2K3Y.mjs.map} +0 -0
- /package/dist/{chunk-EXHGEJ4P.mjs.map → chunk-GKARHTZ2.mjs.map} +0 -0
- /package/dist/{chunk-JCFN6KRS.mjs.map → chunk-HGWDB73S.mjs.map} +0 -0
- /package/dist/{chunk-JXXMO7PY.mjs.map → chunk-HN5RW4C3.mjs.map} +0 -0
- /package/dist/{chunk-I2A4EQPH.mjs.map → chunk-HQ2GXFK5.mjs.map} +0 -0
- /package/dist/{chunk-TBJLNIOY.mjs.map → chunk-JBLYYTHN.mjs.map} +0 -0
- /package/dist/{chunk-GRSN76BV.mjs.map → chunk-KH2R4STU.mjs.map} +0 -0
- /package/dist/{chunk-ZF5NMQJZ.mjs.map → chunk-KUKLN3CK.mjs.map} +0 -0
- /package/dist/{chunk-UAKRBNW2.mjs.map → chunk-L4T76OKM.mjs.map} +0 -0
- /package/dist/{chunk-PY5WCBKN.mjs.map → chunk-MERKXOSI.mjs.map} +0 -0
- /package/dist/{chunk-APCB5HWT.mjs.map → chunk-NLSDZJRR.mjs.map} +0 -0
- /package/dist/{chunk-EWYIXCNF.mjs.map → chunk-NLUTNCLH.mjs.map} +0 -0
- /package/dist/{chunk-OP4Q2KDS.mjs.map → chunk-NMKKMY5P.mjs.map} +0 -0
- /package/dist/{chunk-WDPFO4II.mjs.map → chunk-NMPK336K.mjs.map} +0 -0
- /package/dist/{chunk-X6BZ5IEV.mjs.map → chunk-NU7O6YKR.mjs.map} +0 -0
- /package/dist/{chunk-CBI5F4ME.mjs.map → chunk-OMSSA4NO.mjs.map} +0 -0
- /package/dist/{chunk-GYHD6QEA.mjs.map → chunk-PQGQ3EH5.mjs.map} +0 -0
- /package/dist/{chunk-LSUCENYD.mjs.map → chunk-RBKGHUSR.mjs.map} +0 -0
- /package/dist/{chunk-TEUERRDG.mjs.map → chunk-RV45XVXE.mjs.map} +0 -0
- /package/dist/{chunk-FW6ZI2MC.mjs.map → chunk-UAFSWXN5.mjs.map} +0 -0
- /package/dist/{chunk-ANLL2EIX.mjs.map → chunk-UWCGTH3U.mjs.map} +0 -0
- /package/dist/{chunk-6R2LEEEP.mjs.map → chunk-UZF2D2GG.mjs.map} +0 -0
- /package/dist/{chunk-62L3PMYE.mjs.map → chunk-V3OVMHZD.mjs.map} +0 -0
- /package/dist/{chunk-UDITT3N3.mjs.map → chunk-V6ELDZ2B.mjs.map} +0 -0
- /package/dist/{chunk-IJQOTS5O.mjs.map → chunk-VJUS3GC4.mjs.map} +0 -0
- /package/dist/{chunk-MQEAEU6G.mjs.map → chunk-XGMRYNER.mjs.map} +0 -0
- /package/dist/{chunk-MMQMVVD6.mjs.map → chunk-XLTD5J74.mjs.map} +0 -0
- /package/dist/{chunk-OMBUOOMD.mjs.map → chunk-XYT542WD.mjs.map} +0 -0
- /package/dist/{chunk-COWOGT7U.mjs.map → chunk-YZWFDSTC.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkGXXDSBN2js = require('./chunk-GXXDSBN2.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
|
|
@@ -55,7 +55,7 @@ var CardAccordation = _react.forwardRef.call(void 0,
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
58
|
-
|
|
58
|
+
_chunkGXXDSBN2js.CardBase,
|
|
59
59
|
{
|
|
60
60
|
ref,
|
|
61
61
|
layout: "vertical",
|
|
@@ -123,4 +123,4 @@ CardAccordation.displayName = "CardAccordation";
|
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
exports.CardAccordation = CardAccordation;
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-2ETPIOCD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2ETPIOCD.js","../src/components/Accordation/Accordation.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACPA;AACE;AAIA;AACA;AACA;AAAA,8BACK;AAEP,uEAA+B;AAqFvB,+CAAA;AApER,IAAM,gBAAA,EAAkB,+BAAA;AAAA,EACtB,CACE;AAAA,IACE,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA,EAAkB,KAAA;AAAA,IAClB,QAAA,EAAU,kBAAA;AAAA,IACV,gBAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA,EAAW,KAAA;AAAA,IACX,gBAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,EACL,CAAA,EACA,GAAA,EAAA,GACG;AACH,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,EAAA,EAAI,6BAAA,eAAwB,CAAA;AACxE,IAAA,MAAM,YAAA,EAAc,0BAAA,CAAM;AAG1B,IAAA,MAAM,UAAA,EAAY,MAAA,EAAQ,CAAA,kBAAA,EAAqB,KAAK,CAAA,EAAA;AAEvB,IAAA;AAIe,IAAA;AACV,IAAA;AAGlB,IAAA;AACI,MAAA;AACsB,QAAA;AACxC,MAAA;AACmC,IAAA;AAEV,IAAA;AACX,MAAA;AAEO,MAAA;AAEF,MAAA;AACc,QAAA;AACjC,MAAA;AAE8B,sBAAA;AAChC,IAAA;AAEmE,IAAA;AACnD,MAAA;AAEkC,MAAA;AACzB,QAAA;AACR,QAAA;AACf,MAAA;AACF,IAAA;AAGE,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACO,QAAA;AACC,QAAA;AACE,QAAA;AACgC,QAAA;AACtC,QAAA;AAGJ,QAAA;AAAA,0BAAA;AAAC,YAAA;AAAA,YAAA;AACK,cAAA;AACC,cAAA;AACI,cAAA;AACE,cAAA;AACX,cAAA;AACW,cAAA;AACT,gBAAA;AACY,gBAAA;AACZ,gBAAA;AACF,cAAA;AACe,cAAA;AACA,cAAA;AACA,cAAA;AACH,cAAA;AAEX,cAAA;AAAA,gBAAA;AAED,gCAAA;AAAC,kBAAA;AAAA,kBAAA;AACO,oBAAA;AACK,oBAAA;AACT,sBAAA;AAC6B,sBAAA;AACF,sBAAA;AAC7B,oBAAA;AACY,oBAAA;AAAA,kBAAA;AACd,gBAAA;AAAA,cAAA;AAAA,YAAA;AACF,UAAA;AASA,0BAAA;AAAC,YAAA;AAAA,YAAA;AACK,cAAA;AACa,cAAA;AACH,cAAA;AACH,cAAA;AACT,gBAAA;AAC6B,gBAAA;AAC/B,cAAA;AACY,cAAA;AACA,cAAA;AAEP,cAAA;AAAuD,YAAA;AAC9D,UAAA;AAAA,QAAA;AAAA,MAAA;AACF,IAAA;AAEJ,EAAA;AACF;AAE8B;AD5B2B;AACA;AACA;AACA","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2ETPIOCD.js","sourcesContent":[null,"import {\n forwardRef,\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n useId,\n useState,\n useEffect,\n} from 'react';\nimport { CardBase } from '../Card/Card';\nimport { CaretRightIcon } from '@phosphor-icons/react/dist/csr/CaretRight';\nimport { cn } from '../../utils/utils';\n\ninterface CardAccordationProps extends HTMLAttributes<HTMLDivElement> {\n trigger: ReactNode;\n children: ReactNode;\n defaultExpanded?: boolean;\n expanded?: boolean;\n onToggleExpanded?: (isExpanded: boolean) => void;\n value?: string;\n disabled?: boolean;\n /** Additional class for the trigger button */\n triggerClassName?: string;\n /** Additional class for the content wrapper */\n contentClassName?: string;\n}\n\nconst CardAccordation = forwardRef<HTMLDivElement, CardAccordationProps>(\n (\n {\n trigger,\n children,\n className,\n defaultExpanded = false,\n expanded: controlledExpanded,\n onToggleExpanded,\n value,\n disabled = false,\n triggerClassName,\n contentClassName,\n ...props\n },\n ref\n ) => {\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n const generatedId = useId();\n\n // Use value as ID base for better semantics, fallback to generated ID\n const contentId = value ? `accordion-content-${value}` : generatedId;\n const headerId = value\n ? `accordion-header-${value}`\n : `${generatedId}-header`;\n\n // Determine if component is controlled\n const isControlled = controlledExpanded !== undefined;\n const isExpanded = isControlled ? controlledExpanded : internalExpanded;\n\n // Sync internal state when controlled value changes\n useEffect(() => {\n if (isControlled) {\n setInternalExpanded(controlledExpanded);\n }\n }, [isControlled, controlledExpanded]);\n\n const handleToggle = () => {\n if (disabled) return;\n\n const newExpanded = !isExpanded;\n\n if (!isControlled) {\n setInternalExpanded(newExpanded);\n }\n\n onToggleExpanded?.(newExpanded);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleToggle();\n }\n };\n\n return (\n <CardBase\n ref={ref}\n layout=\"vertical\"\n padding=\"none\"\n minHeight=\"none\"\n className={cn('overflow-hidden', className)}\n {...props}\n >\n {/* Clickable header */}\n <button\n id={headerId}\n type=\"button\"\n onClick={handleToggle}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n className={cn(\n 'w-full cursor-pointer not-aria-expanded:rounded-xl aria-expanded:rounded-t-xl flex items-center justify-between gap-3 text-left transition-colors duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-950 focus-visible:ring-inset pl-2 pr-10',\n disabled && 'cursor-not-allowed text-text-400',\n triggerClassName\n )}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-disabled={disabled}\n data-value={value}\n >\n {trigger}\n\n <CaretRightIcon\n size={20}\n className={cn(\n 'transition-transform duration-200 flex-shrink-0',\n disabled ? 'text-gray-400' : 'text-text-700',\n isExpanded ? 'rotate-90' : 'rotate-0'\n )}\n data-testid=\"accordion-caret\"\n />\n </button>\n\n {/*\n Expandable content. `relative` makes this the containing block of\n absolutely positioned descendants (e.g. `sr-only` checkbox inputs):\n otherwise they escape the `max-h-0 overflow-hidden` clip while\n collapsed and inflate the scroll height of the nearest scrollable\n ancestor, leaving a blank, scrollable area below the content.\n */}\n <section\n id={contentId}\n aria-labelledby={headerId}\n aria-hidden={!isExpanded}\n className={cn(\n 'relative transition-all duration-300 ease-in-out overflow-hidden',\n isExpanded ? 'opacity-100' : 'max-h-0 opacity-0'\n )}\n data-testid=\"accordion-content\"\n data-value={value}\n >\n <div className={cn('p-4 pt-0', contentClassName)}>{children}</div>\n </section>\n </CardBase>\n );\n }\n);\n\nCardAccordation.displayName = 'CardAccordation';\n\nexport { CardAccordation };\nexport type { CardAccordationProps };\n"]}
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
var _chunkAN62GXF5js = require('./chunk-AN62GXF5.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCAQ2Q3ONjs = require('./chunk-CAQ2Q3ON.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkO4TRDWXJjs = require('./chunk-O4TRDWXJ.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkJTWXQ267js = require('./chunk-JTWXQ267.js');
|
|
15
15
|
|
|
16
16
|
// src/components/CalendarCard/CalendarCard.tsx
|
|
17
17
|
var _CalendarBlank = require('@phosphor-icons/react/dist/csr/CalendarBlank');
|
|
@@ -42,7 +42,7 @@ var CalendarCard = ({
|
|
|
42
42
|
if (isMobile) {
|
|
43
43
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
44
44
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
45
|
-
|
|
45
|
+
_chunkCAQ2Q3ONjs.IconButton_default,
|
|
46
46
|
{
|
|
47
47
|
active: effectiveOpen,
|
|
48
48
|
onClick: () => handleOpenChange(!effectiveOpen),
|
|
@@ -53,7 +53,7 @@ var CalendarCard = ({
|
|
|
53
53
|
}
|
|
54
54
|
),
|
|
55
55
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
56
|
-
|
|
56
|
+
_chunkJTWXQ267js.Modal_default,
|
|
57
57
|
{
|
|
58
58
|
isOpen: effectiveOpen,
|
|
59
59
|
onClose: () => handleOpenChange(false),
|
|
@@ -63,14 +63,14 @@ var CalendarCard = ({
|
|
|
63
63
|
)
|
|
64
64
|
] });
|
|
65
65
|
}
|
|
66
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
66
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkO4TRDWXJjs.DropdownMenu_default, { open: effectiveOpen, onOpenChange: handleOpenChange, children: [
|
|
67
67
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
68
|
-
|
|
68
|
+
_chunkO4TRDWXJjs.DropdownMenuTrigger,
|
|
69
69
|
{
|
|
70
70
|
className: `text-primary cursor-pointer ${_nullishCoalesce(className, () => ( ""))}`,
|
|
71
71
|
asChild: true,
|
|
72
72
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
73
|
-
|
|
73
|
+
_chunkCAQ2Q3ONjs.IconButton_default,
|
|
74
74
|
{
|
|
75
75
|
active: effectiveOpen,
|
|
76
76
|
"aria-label": "Calend\xE1rio de atividades",
|
|
@@ -80,7 +80,7 @@ var CalendarCard = ({
|
|
|
80
80
|
}
|
|
81
81
|
),
|
|
82
82
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
83
|
-
|
|
83
|
+
_chunkO4TRDWXJjs.DropdownMenuContent,
|
|
84
84
|
{
|
|
85
85
|
role: "dialog",
|
|
86
86
|
"aria-label": "Calend\xE1rio de atividades",
|
|
@@ -98,4 +98,4 @@ var CalendarCard_default = CalendarCard;
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
exports.CalendarCard = CalendarCard; exports.CalendarCard_default = CalendarCard_default;
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-2VTJ2PKF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2VTJ2PKF.js","../src/components/CalendarCard/CalendarCard.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACfA,6EAAkC;AAElC,8BAAsC;AAiEhB,+CAAA;AA5Bf,IAAM,aAAA,EAAe,CAAC;AAAA,EAC3B,OAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA,EAAQ,eAAA;AAAA,EACR;AACF,CAAA,EAAA,GAAyB;AACvB,EAAA,MAAM,EAAE,SAAS,EAAA,EAAI,wCAAA,CAAU;AAC/B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,EAAA,EAAI,6BAAA,KAAc,CAAA;AAEtD,EAAA,MAAM,aAAA,EAAe,OAAA,IAAW,KAAA,CAAA;AAChC,EAAA,MAAM,cAAA,EAAgB,aAAA,EAAe,OAAA,EAAS,YAAA;AAM9C,EAAA,MAAM,iBAAA,EAAmB,gCAAA;AAAA,IACvB,CAAC,IAAA,EAAA,GAAkB;AACjB,MAAA,GAAA,CAAI,CAAC,YAAA,EAAc;AACjB,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACtB;AACA,sBAAA,YAAA,wBAAA,CAAe,IAAI,GAAA;AAAA,IACrB,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,YAAY;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,UAAA,EAAY,cAAA,EAAgB,mBAAA,EAAqB,cAAA;AACvD,EAAA,MAAM,YAAA,kBAAc,6BAAA,gCAAC,EAAA,EAAkB,IAAA,EAAM,EAAA,EAAI,SAAA,EAAW,UAAA,CAAW,CAAA;AAEvE,EAAA,GAAA,CAAI,QAAA,EAAU;AACZ,IAAA,uBACE,8BAAA,oBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,6BAAA;AAAA,QAAC,mCAAA;AAAA,QAAA;AAAA,UACC,MAAA,EAAQ,aAAA;AAAA,UACR,OAAA,EAAS,CAAA,EAAA,GAAM,gBAAA,CAAiB,CAAC,aAAa,CAAA;AAAA,UAC9C,YAAA,EAAW,6BAAA;AAAA,UAGX,eAAA,EAAe,aAAA;AAAA,UACf,IAAA,EAAM,WAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF,CAAA;AAAA,sBACA,6BAAA;AAAA,QAAC,8BAAA;AAAA,QAAA;AAAA,UACC,MAAA,EAAQ,aAAA;AAAA,UACR,OAAA,EAAS,CAAA,EAAA,GAAM,gBAAA,CAAiB,KAAK,CAAA;AAAA,UACrC,KAAA;AAAA,UAEA,QAAA,kBAAA,6BAAA,KAAC,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAA,QAAA,CAAQ;AAAA,QAAA;AAAA,MAChD;AAAA,IAAA,EAAA,CACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,8BAAA,qCAAC,EAAA,EAAa,IAAA,EAAM,aAAA,EAAe,YAAA,EAAc,gBAAA,EAC/C,QAAA,EAAA;AAAA,oBAAA,6BAAA;AAAA,MAAC,oCAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,CAAA,4BAAA,mBAA+B,SAAA,UAAa,IAAE,CAAA,CAAA;AAClD,QAAA;AAEP,QAAA;AAAC,UAAA;AAAA,UAAA;AACS,YAAA;AACG,YAAA;AACL,YAAA;AAAA,UAAA;AACR,QAAA;AAAA,MAAA;AACF,IAAA;AAGA,oBAAA;AAAC,MAAA;AAAA,MAAA;AACM,QAAA;AACM,QAAA;AACD,QAAA;AACJ,QAAA;AACD,QAAA;AAEJ,QAAA;AAAA,MAAA;AACH,IAAA;AACF,EAAA;AAEJ;AAEe;ADzBmD;AACA;AACA;AACA;AACA","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2VTJ2PKF.js","sourcesContent":[null,"import { CalendarBlankIcon } from '@phosphor-icons/react/dist/csr/CalendarBlank';\nimport type { ReactNode } from 'react';\nimport { useCallback, useState } from 'react';\nimport DropdownMenu, {\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from '../DropdownMenu/DropdownMenu';\nimport IconButton from '../IconButton/IconButton';\nimport Modal from '../Modal/Modal';\nimport { useMobile } from '../../hooks/useMobile';\n\nexport interface CalendarCardProps {\n /** Content rendered inside the calendar (calendar grid + activities list). */\n content: ReactNode;\n /**\n * Whether the calendar surface is currently open.\n * When provided, the component is **controlled**: the consumer is the source of truth.\n * When omitted, the component manages internal state.\n */\n isOpen?: boolean;\n /**\n * Fired whenever the open state changes (user click, outside click,\n * programmatic close, ESC, etc.).\n */\n onOpenChange?: (open: boolean) => void;\n /** Title displayed in the mobile Modal. Default: \"Calendário\". */\n title?: string;\n /** Optional className applied to the trigger button. */\n className?: string;\n}\n\n/**\n * Calendar widget for the app header. Renders a calendar icon trigger that\n * opens a `DropdownMenu` on tablet/desktop and a `Modal` on mobile (<500px).\n *\n * Pairs naturally with `AppHeader`'s `calendarContent` prop. Use the\n * controlled `isOpen` + `onOpenChange` pair when the consumer needs to close\n * the surface programmatically (e.g. on route change).\n */\nexport const CalendarCard = ({\n content,\n isOpen,\n onOpenChange,\n title = 'Calendário',\n className,\n}: CalendarCardProps) => {\n const { isMobile } = useMobile();\n const [internalOpen, setInternalOpen] = useState(false);\n\n const isControlled = isOpen !== undefined;\n const effectiveOpen = isControlled ? isOpen : internalOpen;\n\n // `useCallback` keeps the reference stable across renders, so the\n // `DropdownMenu`'s `useEffect [open, onOpenChange]` doesn't re-fire on\n // every parent re-render (which is what triggers the infinite update loop\n // observed before).\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!isControlled) {\n setInternalOpen(open);\n }\n onOpenChange?.(open);\n },\n [isControlled, onOpenChange]\n );\n\n const iconColor = effectiveOpen ? 'text-primary-950' : 'text-primary';\n const triggerIcon = <CalendarBlankIcon size={24} className={iconColor} />;\n\n if (isMobile) {\n return (\n <>\n <IconButton\n active={effectiveOpen}\n onClick={() => handleOpenChange(!effectiveOpen)}\n aria-label=\"Calendário de atividades\"\n // No mobile o calendário abre um Modal, não um DropdownMenu, então\n // não há trigger para injetar o estado: ele é declarado aqui.\n aria-expanded={effectiveOpen}\n icon={triggerIcon}\n className={className}\n />\n <Modal\n isOpen={effectiveOpen}\n onClose={() => handleOpenChange(false)}\n title={title}\n >\n <div className=\"flex justify-center\">{content}</div>\n </Modal>\n </>\n );\n }\n\n return (\n <DropdownMenu open={effectiveOpen} onOpenChange={handleOpenChange}>\n <DropdownMenuTrigger\n className={`text-primary cursor-pointer ${className ?? ''}`}\n asChild\n >\n <IconButton\n active={effectiveOpen}\n aria-label=\"Calendário de atividades\"\n icon={triggerIcon}\n />\n </DropdownMenuTrigger>\n {/* A calendar is not a list of actions: as a `menu` without menu items\n it was announced as an empty menu */}\n <DropdownMenuContent\n role=\"dialog\"\n aria-label=\"Calendário de atividades\"\n className=\"w-[320px] max-w-[calc(100vw-16px)] max-h-[80vh] overflow-y-auto\"\n align=\"end\"\n side=\"bottom\"\n >\n {content}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nexport default CalendarCard;\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkO4TRDWXJjs = require('./chunk-O4TRDWXJ.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
|
|
@@ -78,7 +78,7 @@ var Search = _react.forwardRef.call(void 0,
|
|
|
78
78
|
const [dropdownOpen, setDropdownOpen] = _react.useState.call(void 0, false);
|
|
79
79
|
const [forceClose, setForceClose] = _react.useState.call(void 0, false);
|
|
80
80
|
const justSelectedRef = _react.useRef.call(void 0, false);
|
|
81
|
-
const dropdownStore = _react.useRef.call(void 0,
|
|
81
|
+
const dropdownStore = _react.useRef.call(void 0, _chunkO4TRDWXJjs.createDropdownStore.call(void 0, )).current;
|
|
82
82
|
const dropdownRef = _react.useRef.call(void 0, null);
|
|
83
83
|
const inputElRef = _react.useRef.call(void 0, null);
|
|
84
84
|
const debounceTimer = _react.useRef.call(void 0, null);
|
|
@@ -273,15 +273,15 @@ var Search = _react.forwardRef.call(void 0,
|
|
|
273
273
|
}
|
|
274
274
|
) })
|
|
275
275
|
] }),
|
|
276
|
-
showDropdown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
277
|
-
|
|
276
|
+
showDropdown && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO4TRDWXJjs.DropdownMenu_default, { open: showDropdown, onOpenChange: setDropdownOpen, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
277
|
+
_chunkO4TRDWXJjs.DropdownMenuContent,
|
|
278
278
|
{
|
|
279
279
|
id: dropdownId,
|
|
280
280
|
className: "w-full mt-1",
|
|
281
281
|
style: { maxHeight: dropdownMaxHeight },
|
|
282
282
|
align: "start",
|
|
283
283
|
children: hasSuggestions ? filteredOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
284
|
-
|
|
284
|
+
_chunkO4TRDWXJjs.DropdownMenuItem,
|
|
285
285
|
{
|
|
286
286
|
onClick: () => handleSelectOption(option),
|
|
287
287
|
className: "text-text-700 text-base leading-6 cursor-pointer",
|
|
@@ -318,4 +318,4 @@ var Search_default = Search;
|
|
|
318
318
|
|
|
319
319
|
|
|
320
320
|
exports.getResultsMessage = getResultsMessage; exports.Search_default = Search_default;
|
|
321
|
-
//# sourceMappingURL=chunk-
|
|
321
|
+
//# sourceMappingURL=chunk-2ZMGNCMI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-B35D5S4G.js","../src/components/Search/Search.tsx"],"names":["disabled","readOnly"],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-B35D5S4G.js","sourcesContent":[null,"import { XIcon } from '@phosphor-icons/react/dist/csr/X';\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react/dist/csr/MagnifyingGlass';\nimport {\n InputHTMLAttributes,\n forwardRef,\n useState,\n useId,\n useMemo,\n useEffect,\n useRef,\n ChangeEvent,\n MouseEvent,\n KeyboardEvent,\n} from 'react';\nimport DropdownMenu, {\n DropdownMenuContent,\n DropdownMenuItem,\n createDropdownStore,\n} from '../DropdownMenu/DropdownMenu';\nimport { cn } from '../../utils/utils';\n\n/**\n * Search component props interface\n */\ntype SearchProps = {\n /** List of options to show in dropdown */\n options: string[];\n /** Callback when an option is selected from dropdown */\n onSelect?: (value: string) => void;\n /** Callback when search input changes */\n onSearch?: (query: string) => void;\n /** Control dropdown visibility externally */\n showDropdown?: boolean;\n /** Callback when dropdown open state changes */\n onDropdownChange?: (open: boolean) => void;\n /** Maximum height of dropdown in pixels */\n dropdownMaxHeight?: number;\n /** Text to show when no results are found */\n noResultsText?: string;\n /** Debounce delay in ms for onSearch. Default 0 (no debounce). */\n debounceMs?: number;\n /**\n * Quantidade de resultados da busca **atual**. Quando informada, confirmar a\n * busca com Enter anuncia o total num `role=\"status\"` — sem isso o leitor de\n * tela não diz se achou algo.\n *\n * Precisa acompanhar o que está digitado. Todos os consumidores filtram a\n * cada tecla (e não só no Enter), então o valor já chega atualizado; um\n * consumidor que só filtrasse no submit anunciaria a contagem anterior.\n *\n * Omitir mantém o comportamento antigo: o componente só anuncia por conta\n * própria quando ele mesmo filtra, isto é, quando recebe `options`.\n */\n resultsCount?: number;\n /** Additional CSS classes to apply to the input */\n className?: string;\n /** Additional CSS classes to apply to the container */\n containerClassName?: string;\n /**\n * Entrega a decisão de largura para quem posiciona o campo: o container passa\n * a ser só `w-full`, sem o teto de 488px.\n *\n * Existe porque a largura padrão é fixa (`md:w-[488px]`) e largura fixa não se\n * sobrescreve de fora por CSS — um pai não tem como pedir \"ocupe a linha\n * inteira\". Quem usa: linhas de header que já controlam a própria largura por\n * breakpoint, como o `TableHeaderRow`.\n */\n fullWidth?: boolean;\n /** Callback when clear button is clicked */\n onClear?: () => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onSelect'>;\n\n/**\n * Search component for Analytica Ensino platforms\n *\n * A specialized search input component with dropdown suggestions.\n * Features filtering, keyboard navigation, and customizable options.\n *\n * @param options - Array of search options to display in dropdown\n * @param onSelect - Callback when an option is selected\n * @param onSearch - Callback when search query changes\n * @param placeholder - Placeholder text for the input\n * @param noResultsText - Text to show when no results are found\n * @param resultsCount - Total da busca atual; confirmar com Enter anuncia esse\n * total num `role=\"status\"` (\"3 resultados encontrados\")\n * @param dropdownMaxHeight - Maximum height of dropdown in pixels\n * @param className - Additional CSS classes for the input\n * @param containerClassName - Additional CSS classes for the container\n * @param fullWidth - Container só `w-full`, sem o teto de 488px; a largura passa\n * a ser responsabilidade de quem posiciona o campo\n * @param props - All other standard input HTML attributes\n * @returns A styled search input with dropdown functionality\n *\n * @example\n * ```tsx\n * // Basic search\n * <Search\n * options={['Filosofia', 'Física', 'Matemática']}\n * placeholder=\"Buscar matéria...\"\n * onSelect={(value) => console.log('Selected:', value)}\n * />\n *\n * // With custom filtering\n * <Search\n * options={materias}\n * onSearch={(query) => setFilteredMaterias(filterMaterias(query))}\n * noResultsText=\"Nenhum resultado encontrado\"\n * />\n * ```\n */\n\n/**\n * Filter options based on search query\n */\nconst filterOptions = (options: string[], query: string): string[] => {\n if (!query || query.length < 1) return [];\n\n return options.filter((option) =>\n option.toLowerCase().includes(query.toLowerCase())\n );\n};\n\n/**\n * Frase anunciada ao confirmar a busca. A cópia acompanha o resto da lib:\n * `NoSearchResult` e o `noResultsText` padrão daqui usam o mesmo\n * \"Nenhum resultado encontrado\".\n */\nexport const getResultsMessage = (count: number): string => {\n if (count === 0) return 'Nenhum resultado encontrado';\n if (count === 1) return '1 resultado encontrado';\n return `${count} resultados encontrados`;\n};\n\n/**\n * Updates input value and creates appropriate change event\n */\nconst updateInputValue = (\n value: string,\n ref:\n | { current: HTMLInputElement | null }\n | ((instance: HTMLInputElement | null) => void)\n | null,\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void\n) => {\n if (!onChange) return;\n\n if (ref && 'current' in ref && ref.current) {\n ref.current.value = value;\n const event = new Event('input', { bubbles: true });\n Object.defineProperty(event, 'target', {\n writable: false,\n value: ref.current,\n });\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n } else {\n // Fallback for cases where ref is not available\n const event = {\n target: { value },\n currentTarget: { value },\n } as ChangeEvent<HTMLInputElement>;\n onChange(event);\n }\n};\n\nconst Search = forwardRef<HTMLInputElement, SearchProps>(\n (\n {\n options = [],\n onSelect,\n onSearch,\n showDropdown: controlledShowDropdown,\n onDropdownChange,\n dropdownMaxHeight = 240,\n noResultsText = 'Nenhum resultado encontrado',\n className = '',\n containerClassName = '',\n fullWidth = false,\n disabled,\n readOnly,\n id,\n onClear,\n value,\n onChange,\n placeholder = 'Buscar...',\n onKeyDown: userOnKeyDown,\n debounceMs = 0,\n resultsCount,\n ...props\n },\n ref\n ) => {\n // Frase falada ao confirmar a busca.\n const [announcement, setAnnouncement] = useState('');\n const announceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Dropdown state and logic\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [forceClose, setForceClose] = useState(false);\n const justSelectedRef = useRef(false);\n const dropdownStore = useRef(createDropdownStore()).current;\n const dropdownRef = useRef<HTMLDivElement>(null);\n const inputElRef = useRef<HTMLInputElement>(null);\n const debounceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n if (announceTimer.current) clearTimeout(announceTimer.current);\n };\n }, []);\n\n /**\n * Fala a frase na região live.\n *\n * Limpa e repõe o texto num tick separado, em vez de escrever direto. São\n * dois motivos, e os dois aparecem só num leitor de tela de verdade:\n *\n * - O VoiceOver engole a atualização quando ela acontece no mesmo tick do\n * Enter, com o foco dentro do input — a fala da tecla ganha e a região\n * nunca é anunciada.\n * - Região live só dispara quando o conteúdo MUDA. Sem o passo de limpeza,\n * confirmar duas vezes a mesma busca escreveria o mesmo texto e o leitor\n * ficaria mudo na segunda.\n */\n const announce = (message: string) => {\n if (announceTimer.current) clearTimeout(announceTimer.current);\n setAnnouncement('');\n announceTimer.current = setTimeout(() => {\n setAnnouncement(message);\n }, 150);\n };\n\n // Filter options based on input value\n const filteredOptions = useMemo(() => {\n if (!options.length) {\n return [];\n }\n const filtered = filterOptions(options, (value as string) || '');\n return filtered;\n }, [options, value]);\n\n // Control dropdown visibility\n const showDropdown =\n !forceClose &&\n (controlledShowDropdown ??\n (dropdownOpen && value && String(value).length > 0));\n\n /** Se o popup tem sugestões de verdade, ou só a mensagem de vazio. */\n const hasSuggestions = filteredOptions.length > 0;\n\n // Helper to keep all consumers in sync\n const setOpenAndNotify = (open: boolean) => {\n setDropdownOpen(open);\n dropdownStore.setState({ open });\n onDropdownChange?.(open);\n };\n\n // Handle dropdown visibility changes\n useEffect(() => {\n // Don't reopen dropdown if we just selected an option\n if (justSelectedRef.current) {\n justSelectedRef.current = false;\n return;\n }\n // Respect forceClose even if value is non-empty\n if (forceClose) {\n setOpenAndNotify(false);\n return;\n }\n\n const shouldShow = Boolean(value && String(value).length > 0);\n setOpenAndNotify(shouldShow);\n }, [value, forceClose, onDropdownChange, dropdownStore]);\n\n // Handle option selection\n const handleSelectOption = (option: string) => {\n justSelectedRef.current = true; // Prevent immediate dropdown reopen\n setForceClose(true); // Force dropdown to close immediately\n onSelect?.(option);\n setOpenAndNotify(false);\n\n // Update input value if onChange is provided\n updateInputValue(option, ref, onChange);\n };\n\n // Handle click outside dropdown\n useEffect(() => {\n const handleClickOutside = (event: globalThis.MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setOpenAndNotify(false);\n }\n };\n\n if (showDropdown) {\n document.addEventListener('click', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [showDropdown, dropdownStore, onDropdownChange]);\n\n // Generate unique ID if not provided\n const generatedId = useId();\n const inputId = id ?? `search-${generatedId}`;\n const dropdownId = `${inputId}-dropdown`;\n\n // Handle clear button\n const handleClear = () => {\n if (debounceTimer.current) {\n clearTimeout(debounceTimer.current);\n debounceTimer.current = null;\n }\n if (onClear) {\n onClear();\n } else {\n updateInputValue('', ref, onChange);\n }\n // Limpar esconde o próprio botão (`showClearButton` passa a ser false) e\n // ele desmonta. No teclado isso largaria o foco no <body>; no mouse é\n // no-op, porque o `preventDefault` do mousedown já segurou o foco aqui.\n inputElRef.current?.focus();\n };\n\n // O mousedown existe só para o input não perder o foco no clique. A ação\n // fica no click — que é o que Enter e Espaço disparam num botão focado.\n // Prender a ação ao mousedown deixava os dois botões mortos no teclado.\n const preventFocusLoss = (e: MouseEvent) => {\n e.preventDefault();\n };\n\n // Handle clear button click - mantém foco no input\n const handleClearClick = (e: MouseEvent) => {\n e.stopPropagation(); // Para propagação do evento\n handleClear();\n };\n\n // Handle search icon click - focus on input\n const handleSearchIconClick = (e: MouseEvent) => {\n e.stopPropagation();\n inputElRef.current?.focus();\n };\n\n // Handle input change\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setForceClose(false); // Allow dropdown to open when user types\n onChange?.(e);\n if (debounceMs > 0) {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n const value = e.target.value;\n debounceTimer.current = setTimeout(() => {\n onSearch?.(value);\n }, debounceMs);\n } else {\n onSearch?.(e.target.value);\n }\n };\n\n // Handle keyboard events\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n // Let consumer run first; if they prevent default, skip our logic\n userOnKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === 'Enter') {\n e.preventDefault();\n\n // If dropdown is open and there are filtered options, select the first one\n if (showDropdown && filteredOptions.length > 0) {\n handleSelectOption(filteredOptions[0]);\n } else if (value) {\n // If no dropdown or no options, execute search\n onSearch?.(String(value));\n setForceClose(true);\n setOpenAndNotify(false);\n\n // Sem `resultsCount` e sem `options`, o componente não sabe quantos\n // resultados existem — anunciar \"Nenhum resultado\" aí seria mentira.\n const count =\n resultsCount ??\n (options.length > 0 ? filteredOptions.length : undefined);\n if (count !== undefined) {\n announce(getResultsMessage(count));\n }\n }\n }\n };\n\n // Helper function for input state classes\n const getInputStateClasses = (disabled?: boolean, readOnly?: boolean) => {\n if (disabled) return 'cursor-not-allowed opacity-40';\n if (readOnly) return 'cursor-default focus:outline-none !text-text-900';\n return 'hover:border-border-400';\n };\n\n // Determine which icon to show\n const hasValue = String(value ?? '').length > 0;\n const showClearButton = hasValue && !disabled && !readOnly;\n const showSearchIcon = !hasValue && !disabled && !readOnly;\n\n // `cn` em vez de concatenação no container: é o que permite a\n // `containerClassName` vencer um conflito com a largura padrão — numa string\n // crua quem ganha é a ordem do CSS gerado, não a ordem escrita.\n return (\n <div\n ref={dropdownRef}\n className={cn(\n fullWidth ? 'w-full' : 'w-full max-w-lg md:w-[488px]',\n containerClassName\n )}\n >\n {/* `aria-atomic` faz o leitor reler a frase inteira, e não só o\n pedaço que mudou. */}\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"sr-only\"\n >\n {announcement}\n </span>\n\n {/* Search Input Container */}\n <div className=\"relative flex items-center\">\n {/* Search Input Field */}\n <input\n ref={(node) => {\n // Forward to parent\n if (ref) {\n if (typeof ref === 'function') ref(node);\n else\n (ref as { current: HTMLInputElement | null }).current = node;\n }\n // Keep our own handle\n inputElRef.current = node;\n }}\n id={inputId}\n type=\"text\"\n className={`w-full py-0 px-4 pr-10 font-normal text-text-900 focus:outline-primary-950 border rounded-full bg-background focus:bg-primary-50 border-border-300 focus:border-2 focus:border-primary-950 h-10 placeholder:text-text-600 ${getInputStateClasses(disabled, readOnly)} ${className}`}\n value={value}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n // Este campo é uma caixa de busca, e o leitor de tela precisa\n // anunciá-lo assim — é o que `searchbox` faz.\n //\n // Nenhum atributo de combobox entra aqui. Antes havia\n // `role=\"combobox\"` + `aria-haspopup=\"listbox\"`, que rendia\n // \"combinação, pop-up caixa de lista\" e ainda mentia duas vezes: o\n // popup é um `menu` (não um listbox), e o campo não tem navegação\n // por setas nem `aria-activedescendant` — sem isso não existe\n // combobox conforme, só a promessa dele.\n role=\"searchbox\"\n {...props}\n />\n\n {/* Right Icon - Clear Button */}\n {showClearButton && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2\">\n <button\n type=\"button\"\n className=\"p-0 border-0 bg-transparent cursor-pointer\"\n onMouseDown={preventFocusLoss}\n onClick={handleClearClick}\n aria-label=\"Limpar busca\"\n >\n <span className=\"w-6 h-6 text-text-800 flex items-center justify-center hover:text-text-600 transition-colors\">\n <XIcon />\n </span>\n </button>\n </div>\n )}\n\n {/* Right Icon - Search Icon */}\n {showSearchIcon && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2\">\n <button\n type=\"button\"\n className=\"p-0 border-0 bg-transparent cursor-pointer\"\n onMouseDown={preventFocusLoss}\n onClick={handleSearchIconClick}\n aria-label=\"Buscar\"\n >\n <span className=\"w-6 h-6 text-text-800 flex items-center justify-center hover:text-text-600 transition-colors\">\n <MagnifyingGlassIcon />\n </span>\n </button>\n </div>\n )}\n </div>\n\n {/* Search Dropdown */}\n {showDropdown && (\n <DropdownMenu open={showDropdown} onOpenChange={setDropdownOpen}>\n <DropdownMenuContent\n id={dropdownId}\n className=\"w-full mt-1\"\n style={{ maxHeight: dropdownMaxHeight }}\n align=\"start\"\n >\n {hasSuggestions ? (\n filteredOptions.map((option) => (\n <DropdownMenuItem\n key={option}\n onClick={() => handleSelectOption(option)}\n className=\"text-text-700 text-base leading-6 cursor-pointer\"\n >\n {option}\n </DropdownMenuItem>\n ))\n ) : (\n // O contêiner é um `role=\"menu\"`, e um menu sem nenhum\n // `menuitem` é anunciado como menu vazio — a frase dentro dele\n // se perde. Marcar o próprio texto como item desabilitado\n // deixa o menu bem-formado e a mensagem audível, sem precisar\n // trocar o papel do contêiner.\n <div\n role=\"menuitem\"\n aria-disabled=\"true\"\n className=\"px-3 py-3 text-text-700 text-base\"\n >\n {noResultsText}\n </div>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n }\n);\n\nSearch.displayName = 'Search';\n\nexport default Search;\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2ZMGNCMI.js","../src/components/Search/Search.tsx"],"names":["disabled","readOnly"],"mappings":"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","file":"/home/runner/work/analytica-frontend-lib/analytica-frontend-lib/dist/chunk-2ZMGNCMI.js","sourcesContent":[null,"import { XIcon } from '@phosphor-icons/react/dist/csr/X';\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react/dist/csr/MagnifyingGlass';\nimport {\n InputHTMLAttributes,\n forwardRef,\n useState,\n useId,\n useMemo,\n useEffect,\n useRef,\n ChangeEvent,\n MouseEvent,\n KeyboardEvent,\n} from 'react';\nimport DropdownMenu, {\n DropdownMenuContent,\n DropdownMenuItem,\n createDropdownStore,\n} from '../DropdownMenu/DropdownMenu';\nimport { cn } from '../../utils/utils';\n\n/**\n * Search component props interface\n */\ntype SearchProps = {\n /** List of options to show in dropdown */\n options: string[];\n /** Callback when an option is selected from dropdown */\n onSelect?: (value: string) => void;\n /** Callback when search input changes */\n onSearch?: (query: string) => void;\n /** Control dropdown visibility externally */\n showDropdown?: boolean;\n /** Callback when dropdown open state changes */\n onDropdownChange?: (open: boolean) => void;\n /** Maximum height of dropdown in pixels */\n dropdownMaxHeight?: number;\n /** Text to show when no results are found */\n noResultsText?: string;\n /** Debounce delay in ms for onSearch. Default 0 (no debounce). */\n debounceMs?: number;\n /**\n * Quantidade de resultados da busca **atual**. Quando informada, confirmar a\n * busca com Enter anuncia o total num `role=\"status\"` — sem isso o leitor de\n * tela não diz se achou algo.\n *\n * Precisa acompanhar o que está digitado. Todos os consumidores filtram a\n * cada tecla (e não só no Enter), então o valor já chega atualizado; um\n * consumidor que só filtrasse no submit anunciaria a contagem anterior.\n *\n * Omitir mantém o comportamento antigo: o componente só anuncia por conta\n * própria quando ele mesmo filtra, isto é, quando recebe `options`.\n */\n resultsCount?: number;\n /** Additional CSS classes to apply to the input */\n className?: string;\n /** Additional CSS classes to apply to the container */\n containerClassName?: string;\n /**\n * Entrega a decisão de largura para quem posiciona o campo: o container passa\n * a ser só `w-full`, sem o teto de 488px.\n *\n * Existe porque a largura padrão é fixa (`md:w-[488px]`) e largura fixa não se\n * sobrescreve de fora por CSS — um pai não tem como pedir \"ocupe a linha\n * inteira\". Quem usa: linhas de header que já controlam a própria largura por\n * breakpoint, como o `TableHeaderRow`.\n */\n fullWidth?: boolean;\n /** Callback when clear button is clicked */\n onClear?: () => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onSelect'>;\n\n/**\n * Search component for Analytica Ensino platforms\n *\n * A specialized search input component with dropdown suggestions.\n * Features filtering, keyboard navigation, and customizable options.\n *\n * @param options - Array of search options to display in dropdown\n * @param onSelect - Callback when an option is selected\n * @param onSearch - Callback when search query changes\n * @param placeholder - Placeholder text for the input\n * @param noResultsText - Text to show when no results are found\n * @param resultsCount - Total da busca atual; confirmar com Enter anuncia esse\n * total num `role=\"status\"` (\"3 resultados encontrados\")\n * @param dropdownMaxHeight - Maximum height of dropdown in pixels\n * @param className - Additional CSS classes for the input\n * @param containerClassName - Additional CSS classes for the container\n * @param fullWidth - Container só `w-full`, sem o teto de 488px; a largura passa\n * a ser responsabilidade de quem posiciona o campo\n * @param props - All other standard input HTML attributes\n * @returns A styled search input with dropdown functionality\n *\n * @example\n * ```tsx\n * // Basic search\n * <Search\n * options={['Filosofia', 'Física', 'Matemática']}\n * placeholder=\"Buscar matéria...\"\n * onSelect={(value) => console.log('Selected:', value)}\n * />\n *\n * // With custom filtering\n * <Search\n * options={materias}\n * onSearch={(query) => setFilteredMaterias(filterMaterias(query))}\n * noResultsText=\"Nenhum resultado encontrado\"\n * />\n * ```\n */\n\n/**\n * Filter options based on search query\n */\nconst filterOptions = (options: string[], query: string): string[] => {\n if (!query || query.length < 1) return [];\n\n return options.filter((option) =>\n option.toLowerCase().includes(query.toLowerCase())\n );\n};\n\n/**\n * Frase anunciada ao confirmar a busca. A cópia acompanha o resto da lib:\n * `NoSearchResult` e o `noResultsText` padrão daqui usam o mesmo\n * \"Nenhum resultado encontrado\".\n */\nexport const getResultsMessage = (count: number): string => {\n if (count === 0) return 'Nenhum resultado encontrado';\n if (count === 1) return '1 resultado encontrado';\n return `${count} resultados encontrados`;\n};\n\n/**\n * Updates input value and creates appropriate change event\n */\nconst updateInputValue = (\n value: string,\n ref:\n | { current: HTMLInputElement | null }\n | ((instance: HTMLInputElement | null) => void)\n | null,\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void\n) => {\n if (!onChange) return;\n\n if (ref && 'current' in ref && ref.current) {\n ref.current.value = value;\n const event = new Event('input', { bubbles: true });\n Object.defineProperty(event, 'target', {\n writable: false,\n value: ref.current,\n });\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n } else {\n // Fallback for cases where ref is not available\n const event = {\n target: { value },\n currentTarget: { value },\n } as ChangeEvent<HTMLInputElement>;\n onChange(event);\n }\n};\n\nconst Search = forwardRef<HTMLInputElement, SearchProps>(\n (\n {\n options = [],\n onSelect,\n onSearch,\n showDropdown: controlledShowDropdown,\n onDropdownChange,\n dropdownMaxHeight = 240,\n noResultsText = 'Nenhum resultado encontrado',\n className = '',\n containerClassName = '',\n fullWidth = false,\n disabled,\n readOnly,\n id,\n onClear,\n value,\n onChange,\n placeholder = 'Buscar...',\n onKeyDown: userOnKeyDown,\n debounceMs = 0,\n resultsCount,\n ...props\n },\n ref\n ) => {\n // Frase falada ao confirmar a busca.\n const [announcement, setAnnouncement] = useState('');\n const announceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Dropdown state and logic\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [forceClose, setForceClose] = useState(false);\n const justSelectedRef = useRef(false);\n const dropdownStore = useRef(createDropdownStore()).current;\n const dropdownRef = useRef<HTMLDivElement>(null);\n const inputElRef = useRef<HTMLInputElement>(null);\n const debounceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n if (announceTimer.current) clearTimeout(announceTimer.current);\n };\n }, []);\n\n /**\n * Fala a frase na região live.\n *\n * Limpa e repõe o texto num tick separado, em vez de escrever direto. São\n * dois motivos, e os dois aparecem só num leitor de tela de verdade:\n *\n * - O VoiceOver engole a atualização quando ela acontece no mesmo tick do\n * Enter, com o foco dentro do input — a fala da tecla ganha e a região\n * nunca é anunciada.\n * - Região live só dispara quando o conteúdo MUDA. Sem o passo de limpeza,\n * confirmar duas vezes a mesma busca escreveria o mesmo texto e o leitor\n * ficaria mudo na segunda.\n */\n const announce = (message: string) => {\n if (announceTimer.current) clearTimeout(announceTimer.current);\n setAnnouncement('');\n announceTimer.current = setTimeout(() => {\n setAnnouncement(message);\n }, 150);\n };\n\n // Filter options based on input value\n const filteredOptions = useMemo(() => {\n if (!options.length) {\n return [];\n }\n const filtered = filterOptions(options, (value as string) || '');\n return filtered;\n }, [options, value]);\n\n // Control dropdown visibility\n const showDropdown =\n !forceClose &&\n (controlledShowDropdown ??\n (dropdownOpen && value && String(value).length > 0));\n\n /** Se o popup tem sugestões de verdade, ou só a mensagem de vazio. */\n const hasSuggestions = filteredOptions.length > 0;\n\n // Helper to keep all consumers in sync\n const setOpenAndNotify = (open: boolean) => {\n setDropdownOpen(open);\n dropdownStore.setState({ open });\n onDropdownChange?.(open);\n };\n\n // Handle dropdown visibility changes\n useEffect(() => {\n // Don't reopen dropdown if we just selected an option\n if (justSelectedRef.current) {\n justSelectedRef.current = false;\n return;\n }\n // Respect forceClose even if value is non-empty\n if (forceClose) {\n setOpenAndNotify(false);\n return;\n }\n\n const shouldShow = Boolean(value && String(value).length > 0);\n setOpenAndNotify(shouldShow);\n }, [value, forceClose, onDropdownChange, dropdownStore]);\n\n // Handle option selection\n const handleSelectOption = (option: string) => {\n justSelectedRef.current = true; // Prevent immediate dropdown reopen\n setForceClose(true); // Force dropdown to close immediately\n onSelect?.(option);\n setOpenAndNotify(false);\n\n // Update input value if onChange is provided\n updateInputValue(option, ref, onChange);\n };\n\n // Handle click outside dropdown\n useEffect(() => {\n const handleClickOutside = (event: globalThis.MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setOpenAndNotify(false);\n }\n };\n\n if (showDropdown) {\n document.addEventListener('click', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [showDropdown, dropdownStore, onDropdownChange]);\n\n // Generate unique ID if not provided\n const generatedId = useId();\n const inputId = id ?? `search-${generatedId}`;\n const dropdownId = `${inputId}-dropdown`;\n\n // Handle clear button\n const handleClear = () => {\n if (debounceTimer.current) {\n clearTimeout(debounceTimer.current);\n debounceTimer.current = null;\n }\n if (onClear) {\n onClear();\n } else {\n updateInputValue('', ref, onChange);\n }\n // Limpar esconde o próprio botão (`showClearButton` passa a ser false) e\n // ele desmonta. No teclado isso largaria o foco no <body>; no mouse é\n // no-op, porque o `preventDefault` do mousedown já segurou o foco aqui.\n inputElRef.current?.focus();\n };\n\n // O mousedown existe só para o input não perder o foco no clique. A ação\n // fica no click — que é o que Enter e Espaço disparam num botão focado.\n // Prender a ação ao mousedown deixava os dois botões mortos no teclado.\n const preventFocusLoss = (e: MouseEvent) => {\n e.preventDefault();\n };\n\n // Handle clear button click - mantém foco no input\n const handleClearClick = (e: MouseEvent) => {\n e.stopPropagation(); // Para propagação do evento\n handleClear();\n };\n\n // Handle search icon click - focus on input\n const handleSearchIconClick = (e: MouseEvent) => {\n e.stopPropagation();\n inputElRef.current?.focus();\n };\n\n // Handle input change\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setForceClose(false); // Allow dropdown to open when user types\n onChange?.(e);\n if (debounceMs > 0) {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n const value = e.target.value;\n debounceTimer.current = setTimeout(() => {\n onSearch?.(value);\n }, debounceMs);\n } else {\n onSearch?.(e.target.value);\n }\n };\n\n // Handle keyboard events\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n // Let consumer run first; if they prevent default, skip our logic\n userOnKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === 'Enter') {\n e.preventDefault();\n\n // If dropdown is open and there are filtered options, select the first one\n if (showDropdown && filteredOptions.length > 0) {\n handleSelectOption(filteredOptions[0]);\n } else if (value) {\n // If no dropdown or no options, execute search\n onSearch?.(String(value));\n setForceClose(true);\n setOpenAndNotify(false);\n\n // Sem `resultsCount` e sem `options`, o componente não sabe quantos\n // resultados existem — anunciar \"Nenhum resultado\" aí seria mentira.\n const count =\n resultsCount ??\n (options.length > 0 ? filteredOptions.length : undefined);\n if (count !== undefined) {\n announce(getResultsMessage(count));\n }\n }\n }\n };\n\n // Helper function for input state classes\n const getInputStateClasses = (disabled?: boolean, readOnly?: boolean) => {\n if (disabled) return 'cursor-not-allowed opacity-40';\n if (readOnly) return 'cursor-default focus:outline-none !text-text-900';\n return 'hover:border-border-400';\n };\n\n // Determine which icon to show\n const hasValue = String(value ?? '').length > 0;\n const showClearButton = hasValue && !disabled && !readOnly;\n const showSearchIcon = !hasValue && !disabled && !readOnly;\n\n // `cn` em vez de concatenação no container: é o que permite a\n // `containerClassName` vencer um conflito com a largura padrão — numa string\n // crua quem ganha é a ordem do CSS gerado, não a ordem escrita.\n return (\n <div\n ref={dropdownRef}\n className={cn(\n fullWidth ? 'w-full' : 'w-full max-w-lg md:w-[488px]',\n containerClassName\n )}\n >\n {/* `aria-atomic` faz o leitor reler a frase inteira, e não só o\n pedaço que mudou. */}\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"sr-only\"\n >\n {announcement}\n </span>\n\n {/* Search Input Container */}\n <div className=\"relative flex items-center\">\n {/* Search Input Field */}\n <input\n ref={(node) => {\n // Forward to parent\n if (ref) {\n if (typeof ref === 'function') ref(node);\n else\n (ref as { current: HTMLInputElement | null }).current = node;\n }\n // Keep our own handle\n inputElRef.current = node;\n }}\n id={inputId}\n type=\"text\"\n className={`w-full py-0 px-4 pr-10 font-normal text-text-900 focus:outline-primary-950 border rounded-full bg-background focus:bg-primary-50 border-border-300 focus:border-2 focus:border-primary-950 h-10 placeholder:text-text-600 ${getInputStateClasses(disabled, readOnly)} ${className}`}\n value={value}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n // Este campo é uma caixa de busca, e o leitor de tela precisa\n // anunciá-lo assim — é o que `searchbox` faz.\n //\n // Nenhum atributo de combobox entra aqui. Antes havia\n // `role=\"combobox\"` + `aria-haspopup=\"listbox\"`, que rendia\n // \"combinação, pop-up caixa de lista\" e ainda mentia duas vezes: o\n // popup é um `menu` (não um listbox), e o campo não tem navegação\n // por setas nem `aria-activedescendant` — sem isso não existe\n // combobox conforme, só a promessa dele.\n role=\"searchbox\"\n {...props}\n />\n\n {/* Right Icon - Clear Button */}\n {showClearButton && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2\">\n <button\n type=\"button\"\n className=\"p-0 border-0 bg-transparent cursor-pointer\"\n onMouseDown={preventFocusLoss}\n onClick={handleClearClick}\n aria-label=\"Limpar busca\"\n >\n <span className=\"w-6 h-6 text-text-800 flex items-center justify-center hover:text-text-600 transition-colors\">\n <XIcon />\n </span>\n </button>\n </div>\n )}\n\n {/* Right Icon - Search Icon */}\n {showSearchIcon && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2\">\n <button\n type=\"button\"\n className=\"p-0 border-0 bg-transparent cursor-pointer\"\n onMouseDown={preventFocusLoss}\n onClick={handleSearchIconClick}\n aria-label=\"Buscar\"\n >\n <span className=\"w-6 h-6 text-text-800 flex items-center justify-center hover:text-text-600 transition-colors\">\n <MagnifyingGlassIcon />\n </span>\n </button>\n </div>\n )}\n </div>\n\n {/* Search Dropdown */}\n {showDropdown && (\n <DropdownMenu open={showDropdown} onOpenChange={setDropdownOpen}>\n <DropdownMenuContent\n id={dropdownId}\n className=\"w-full mt-1\"\n style={{ maxHeight: dropdownMaxHeight }}\n align=\"start\"\n >\n {hasSuggestions ? (\n filteredOptions.map((option) => (\n <DropdownMenuItem\n key={option}\n onClick={() => handleSelectOption(option)}\n className=\"text-text-700 text-base leading-6 cursor-pointer\"\n >\n {option}\n </DropdownMenuItem>\n ))\n ) : (\n // O contêiner é um `role=\"menu\"`, e um menu sem nenhum\n // `menuitem` é anunciado como menu vazio — a frase dentro dele\n // se perde. Marcar o próprio texto como item desabilitado\n // deixa o menu bem-formado e a mensagem audível, sem precisar\n // trocar o papel do contêiner.\n <div\n role=\"menuitem\"\n aria-disabled=\"true\"\n className=\"px-3 py-3 text-text-700 text-base\"\n >\n {noResultsText}\n </div>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n }\n);\n\nSearch.displayName = 'Search';\n\nexport default Search;\n"]}
|
|
@@ -10,10 +10,10 @@ var _chunkOITBOOARjs = require('./chunk-OITBOOAR.js');
|
|
|
10
10
|
var _chunkYNQTCV4Wjs = require('./chunk-YNQTCV4W.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkRMCZ7C2Cjs = require('./chunk-RMCZ7C2C.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkH3F4OCXCjs = require('./chunk-H3F4OCXC.js');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
var _chunkBWCGUJ6Yjs = require('./chunk-BWCGUJ6Y.js');
|
|
@@ -31,11 +31,11 @@ var _chunkKRYBXYOBjs = require('./chunk-KRYBXYOB.js');
|
|
|
31
31
|
var _chunk7W6XZZKKjs = require('./chunk-7W6XZZKK.js');
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _chunk2ETPIOCDjs = require('./chunk-2ETPIOCD.js');
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _chunkGXXDSBN2js = require('./chunk-GXXDSBN2.js');
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
var _chunkVAF3DOVDjs = require('./chunk-VAF3DOVD.js');
|
|
@@ -77,7 +77,7 @@ var _chunkCFD6NHL7js = require('./chunk-CFD6NHL7.js');
|
|
|
77
77
|
var _chunkBJMKBBN3js = require('./chunk-BJMKBBN3.js');
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
var
|
|
80
|
+
var _chunkJTWXQ267js = require('./chunk-JTWXQ267.js');
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
var _chunkRSO6RH5Kjs = require('./chunk-RSO6RH5K.js');
|
|
@@ -506,7 +506,7 @@ var QuestionAccordionItem = ({
|
|
|
506
506
|
question,
|
|
507
507
|
index
|
|
508
508
|
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
509
|
-
|
|
509
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
510
510
|
{
|
|
511
511
|
value: question.id,
|
|
512
512
|
className: "bg-background rounded-xl border border-border-50",
|
|
@@ -537,7 +537,7 @@ var QuestionAccordionItem = ({
|
|
|
537
537
|
}
|
|
538
538
|
),
|
|
539
539
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
540
|
-
|
|
540
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
541
541
|
{
|
|
542
542
|
value: `${question.id}-alternatives`,
|
|
543
543
|
className: "bg-background rounded-lg border border-border-50",
|
|
@@ -559,7 +559,7 @@ var QuestionAccordionItem = ({
|
|
|
559
559
|
}
|
|
560
560
|
);
|
|
561
561
|
var LessonAccordionItem = ({ lesson }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
562
|
-
|
|
562
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
563
563
|
{
|
|
564
564
|
value: lesson.id,
|
|
565
565
|
className: "bg-background rounded-xl border border-border-50",
|
|
@@ -692,7 +692,7 @@ var StudentPerformanceModal = ({
|
|
|
692
692
|
return null;
|
|
693
693
|
}
|
|
694
694
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
695
|
-
|
|
695
|
+
_chunkJTWXQ267js.Modal_default,
|
|
696
696
|
{
|
|
697
697
|
isOpen,
|
|
698
698
|
onClose,
|
|
@@ -1172,7 +1172,7 @@ var StudentActivityPerformanceModal = ({
|
|
|
1172
1172
|
const hasLocalSavedCorrection = _optionalChain([localCorrection, 'optionalAccess', _18 => _18.isSaved]) && _optionalChain([localCorrection, 'optionalAccess', _19 => _19.isCorrect]) != null;
|
|
1173
1173
|
const displayIsCorrect = hasLocalSavedCorrection ? localCorrection.isCorrect : question.isCorrect;
|
|
1174
1174
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1175
|
-
|
|
1175
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
1176
1176
|
{
|
|
1177
1177
|
value: questionKey,
|
|
1178
1178
|
className: "bg-background rounded-xl border border-border-50",
|
|
@@ -1202,7 +1202,7 @@ var StudentActivityPerformanceModal = ({
|
|
|
1202
1202
|
}
|
|
1203
1203
|
),
|
|
1204
1204
|
question.alternatives.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1205
|
-
|
|
1205
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
1206
1206
|
{
|
|
1207
1207
|
value: `${questionKey}-alternatives`,
|
|
1208
1208
|
className: "bg-background rounded-lg border border-border-50",
|
|
@@ -1235,7 +1235,7 @@ var StudentActivityPerformanceModal = ({
|
|
|
1235
1235
|
);
|
|
1236
1236
|
};
|
|
1237
1237
|
const renderActivityAccordionItem = (activity) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1238
|
-
|
|
1238
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
1239
1239
|
{
|
|
1240
1240
|
value: activity.id,
|
|
1241
1241
|
className: "bg-background rounded-xl border border-border-50",
|
|
@@ -1340,7 +1340,7 @@ var StudentActivityPerformanceModal = ({
|
|
|
1340
1340
|
return null;
|
|
1341
1341
|
};
|
|
1342
1342
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1343
|
-
|
|
1343
|
+
_chunkJTWXQ267js.Modal_default,
|
|
1344
1344
|
{
|
|
1345
1345
|
isOpen,
|
|
1346
1346
|
onClose: handleClose,
|
|
@@ -1418,7 +1418,7 @@ var LessonContent = ({
|
|
|
1418
1418
|
const hasBoards = boardImages.length > 0;
|
|
1419
1419
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
|
|
1420
1420
|
hasVideo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1421
|
-
|
|
1421
|
+
_chunkH3F4OCXCjs.VideoPlayer_default,
|
|
1422
1422
|
{
|
|
1423
1423
|
src: lesson.urlVideo,
|
|
1424
1424
|
poster: lesson.urlCover,
|
|
@@ -1438,7 +1438,7 @@ var LessonContent = ({
|
|
|
1438
1438
|
hasPodcast && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full", children: [
|
|
1439
1439
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", weight: "bold", className: "pb-2", children: "Podcast" }),
|
|
1440
1440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1441
|
-
|
|
1441
|
+
_chunkGXXDSBN2js.CardAudio,
|
|
1442
1442
|
{
|
|
1443
1443
|
src: lesson.urlPodCast,
|
|
1444
1444
|
title: lesson.podCastTitle || "Podcast da aula"
|
|
@@ -1452,7 +1452,7 @@ var LessonContent = ({
|
|
|
1452
1452
|
{
|
|
1453
1453
|
className: "flex flex-row rounded-xl bg-background-50",
|
|
1454
1454
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1455
|
-
|
|
1455
|
+
_chunkRMCZ7C2Cjs.Whiteboard_default,
|
|
1456
1456
|
{
|
|
1457
1457
|
images: [image],
|
|
1458
1458
|
showDownload: true,
|
|
@@ -1505,7 +1505,7 @@ var LessonAccordionItem2 = ({
|
|
|
1505
1505
|
}
|
|
1506
1506
|
),
|
|
1507
1507
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1508
|
-
|
|
1508
|
+
_chunk2ETPIOCDjs.CardAccordation,
|
|
1509
1509
|
{
|
|
1510
1510
|
trigger,
|
|
1511
1511
|
expanded: isExpanded,
|
|
@@ -1553,7 +1553,7 @@ var RecommendedLessonViewModal = ({
|
|
|
1553
1553
|
const badgeAction = _chunk6WDBJAVCjs.getStatusBadgeAction.call(void 0, status);
|
|
1554
1554
|
const footer = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXN2HPVVHjs.Button_default, { variant: "outline", onClick: onClose, children: "Fechar" }) });
|
|
1555
1555
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1556
|
-
|
|
1556
|
+
_chunkJTWXQ267js.Modal_default,
|
|
1557
1557
|
{
|
|
1558
1558
|
isOpen,
|
|
1559
1559
|
onClose,
|
|
@@ -1562,7 +1562,7 @@ var RecommendedLessonViewModal = ({
|
|
|
1562
1562
|
footer,
|
|
1563
1563
|
contentClassName: "max-h-[70vh] overflow-y-auto",
|
|
1564
1564
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
1565
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1565
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXXDSBN2js.CardBase, { layout: "vertical", padding: "medium", className: "bg-background", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
1566
1566
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { as: "h2", size: "lg", weight: "bold", className: "text-text-950", children: recommendedClass.title }),
|
|
1567
1567
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
1568
1568
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkANT66KVKjs.Text_default, { size: "sm", className: "text-text-600", children: [
|
|
@@ -1849,4 +1849,4 @@ var RecommendedLessonDetails_default = RecommendedLessonDetails;
|
|
|
1849
1849
|
|
|
1850
1850
|
|
|
1851
1851
|
exports.StudentPerformanceModal = StudentPerformanceModal; exports.RecommendedLessonDetails_default = RecommendedLessonDetails_default;
|
|
1852
|
-
//# sourceMappingURL=chunk-
|
|
1852
|
+
//# sourceMappingURL=chunk-3KSRDIS2.js.map
|