@intellectif/lk-react 23.1.0 → 23.1.2
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/CHANGELOG.md +23 -0
- package/README.md +9 -5
- package/dist/ActivityErrorBoundary-B379hvtL.cjs +39 -0
- package/dist/ActivityErrorBoundary-B379hvtL.cjs.map +1 -0
- package/dist/ActivityErrorBoundary-Dw6SbWv3.js +34 -0
- package/dist/ActivityErrorBoundary-Dw6SbWv3.js.map +1 -0
- package/dist/ActivityMedia-CQQTRNl7.cjs +641 -0
- package/dist/ActivityMedia-CQQTRNl7.cjs.map +1 -0
- package/dist/ActivityMedia-vDiP-Psa.js +636 -0
- package/dist/ActivityMedia-vDiP-Psa.js.map +1 -0
- package/dist/ActivityPreview-1hhTkYuj.js +240 -0
- package/dist/ActivityPreview-1hhTkYuj.js.map +1 -0
- package/dist/ActivityPreview-BKr34exz.cjs +245 -0
- package/dist/ActivityPreview-BKr34exz.cjs.map +1 -0
- package/dist/ActivitySequence-CkX87pfB.js +839 -0
- package/dist/ActivitySequence-CkX87pfB.js.map +1 -0
- package/dist/ActivitySequence-CmoSyDnp.cjs +844 -0
- package/dist/ActivitySequence-CmoSyDnp.cjs.map +1 -0
- package/dist/Dictation-BlxRp-3k.js +926 -0
- package/dist/Dictation-BlxRp-3k.js.map +1 -0
- package/dist/Dictation-jECzL88E.cjs +931 -0
- package/dist/Dictation-jECzL88E.cjs.map +1 -0
- package/dist/FeedbackRegion-BNNMtTY-.cjs +108 -0
- package/dist/FeedbackRegion-BNNMtTY-.cjs.map +1 -0
- package/dist/FeedbackRegion-CyPSp8bA.js +85 -0
- package/dist/FeedbackRegion-CyPSp8bA.js.map +1 -0
- package/dist/FillInTheBlanks-B6xzqYXx.js +474 -0
- package/dist/FillInTheBlanks-B6xzqYXx.js.map +1 -0
- package/dist/FillInTheBlanks-BpKhdHg2.cjs +479 -0
- package/dist/FillInTheBlanks-BpKhdHg2.cjs.map +1 -0
- package/dist/GapSelect-DUSiaEQH.js +441 -0
- package/dist/GapSelect-DUSiaEQH.js.map +1 -0
- package/dist/GapSelect-payTq_Zn.cjs +446 -0
- package/dist/GapSelect-payTq_Zn.cjs.map +1 -0
- package/dist/InteractiveVideo-BguGv-HA.cjs +2955 -0
- package/dist/InteractiveVideo-BguGv-HA.cjs.map +1 -0
- package/dist/InteractiveVideo-Cg2jbU3j.js +2944 -0
- package/dist/InteractiveVideo-Cg2jbU3j.js.map +1 -0
- package/dist/LkAiProvider-DAPpA3PQ.d.cts +84 -0
- package/dist/LkAiProvider-DAPpA3PQ.d.cts.map +1 -0
- package/dist/LkAiProvider-QdEcIhoo.d.ts +84 -0
- package/dist/LkAiProvider-QdEcIhoo.d.ts.map +1 -0
- package/dist/LkIntlProvider-D_FdYXjQ.js +375 -0
- package/dist/LkIntlProvider-D_FdYXjQ.js.map +1 -0
- package/dist/LkIntlProvider-oi57lYB0.cjs +410 -0
- package/dist/LkIntlProvider-oi57lYB0.cjs.map +1 -0
- package/dist/MultipleChoice-COn5MtKY.cjs +433 -0
- package/dist/MultipleChoice-COn5MtKY.cjs.map +1 -0
- package/dist/MultipleChoice-Dra0_KYD.js +428 -0
- package/dist/MultipleChoice-Dra0_KYD.js.map +1 -0
- package/dist/PronunciationFeedback-DlMPGjkR.cjs +831 -0
- package/dist/PronunciationFeedback-DlMPGjkR.cjs.map +1 -0
- package/dist/PronunciationFeedback-Dxd6XPkO.js +772 -0
- package/dist/PronunciationFeedback-Dxd6XPkO.js.map +1 -0
- package/dist/ReadAloud-C8RhaUqV.js +1092 -0
- package/dist/{chunk-DC4CQCK5.js.map → ReadAloud-C8RhaUqV.js.map} +1 -1
- package/dist/ReadAloud-akDehitT.cjs +1103 -0
- package/dist/ReadAloud-akDehitT.cjs.map +1 -0
- package/dist/StimulusPanel-BgzByfkb.js +74 -0
- package/dist/StimulusPanel-BgzByfkb.js.map +1 -0
- package/dist/StimulusPanel-b66gaN3i.cjs +79 -0
- package/dist/StimulusPanel-b66gaN3i.cjs.map +1 -0
- package/dist/ThemeProvider-B6DyGqzh.d.cts +62 -0
- package/dist/ThemeProvider-B6DyGqzh.d.cts.map +1 -0
- package/dist/ThemeProvider-BCrxBaY-.d.ts +62 -0
- package/dist/ThemeProvider-BCrxBaY-.d.ts.map +1 -0
- package/dist/ThemeProvider-BRN1tj4n.cjs +187 -0
- package/dist/ThemeProvider-BRN1tj4n.cjs.map +1 -0
- package/dist/ThemeProvider-C7K9iMLX.js +158 -0
- package/dist/ThemeProvider-C7K9iMLX.js.map +1 -0
- package/dist/WrittenResponse-Bj3eFmGl.cjs +491 -0
- package/dist/WrittenResponse-Bj3eFmGl.cjs.map +1 -0
- package/dist/WrittenResponse-Cl8G6nO_.js +486 -0
- package/dist/WrittenResponse-Cl8G6nO_.js.map +1 -0
- package/dist/ai/LkAiProvider.cjs +34 -14
- package/dist/ai/LkAiProvider.cjs.map +1 -1
- package/dist/ai/LkAiProvider.d.cts +2 -83
- package/dist/ai/LkAiProvider.d.ts +2 -83
- package/dist/ai/LkAiProvider.js +33 -2
- package/dist/ai/LkAiProvider.js.map +1 -1
- package/dist/ai/useAiHelp.cjs +7 -25
- package/dist/ai/useAiHelp.d.cts +175 -177
- package/dist/ai/useAiHelp.d.cts.map +1 -0
- package/dist/ai/useAiHelp.d.ts +175 -177
- package/dist/ai/useAiHelp.d.ts.map +1 -0
- package/dist/ai/useAiHelp.js +3 -4
- package/dist/components/ActivityPreview.cjs +3 -29
- package/dist/components/ActivityPreview.d.cts +2 -81
- package/dist/components/ActivityPreview.d.ts +2 -81
- package/dist/components/ActivityPreview.js +2 -20
- package/dist/components/ActivitySequence.cjs +3 -30
- package/dist/components/ActivitySequence.d.cts +2 -432
- package/dist/components/ActivitySequence.d.ts +2 -432
- package/dist/components/ActivitySequence.js +2 -21
- package/dist/components/Dictation.cjs +4 -21
- package/dist/components/Dictation.d.cts +2 -19
- package/dist/components/Dictation.d.ts +2 -19
- package/dist/components/Dictation.js +3 -12
- package/dist/components/FillInTheBlanks.cjs +4 -20
- package/dist/components/FillInTheBlanks.d.cts +2 -30
- package/dist/components/FillInTheBlanks.d.ts +2 -30
- package/dist/components/FillInTheBlanks.js +3 -11
- package/dist/components/GapSelect.cjs +4 -20
- package/dist/components/GapSelect.d.cts +2 -27
- package/dist/components/GapSelect.d.ts +2 -27
- package/dist/components/GapSelect.js +3 -11
- package/dist/components/InteractiveVideo.cjs +5 -32
- package/dist/components/InteractiveVideo.d.cts +3 -291
- package/dist/components/InteractiveVideo.d.ts +3 -291
- package/dist/components/InteractiveVideo.js +3 -19
- package/dist/components/MultipleChoice.cjs +4 -20
- package/dist/components/MultipleChoice.d.cts +2 -26
- package/dist/components/MultipleChoice.d.ts +2 -26
- package/dist/components/MultipleChoice.js +3 -11
- package/dist/components/PronunciationFeedback.cjs +4 -17
- package/dist/components/PronunciationFeedback.d.cts +2 -90
- package/dist/components/PronunciationFeedback.d.ts +2 -90
- package/dist/components/PronunciationFeedback.js +3 -8
- package/dist/components/ReadAloud.cjs +4 -22
- package/dist/components/ReadAloud.d.cts +7 -11
- package/dist/components/ReadAloud.d.cts.map +1 -0
- package/dist/components/ReadAloud.d.ts +7 -11
- package/dist/components/ReadAloud.d.ts.map +1 -0
- package/dist/components/ReadAloud.js +3 -13
- package/dist/components/StimulusPanel.cjs +3 -14
- package/dist/components/StimulusPanel.d.cts +2 -51
- package/dist/components/StimulusPanel.d.ts +2 -51
- package/dist/components/StimulusPanel.js +2 -5
- package/dist/components/WrittenResponse.cjs +4 -19
- package/dist/components/WrittenResponse.d.cts +3 -18
- package/dist/components/WrittenResponse.d.ts +3 -18
- package/dist/components/WrittenResponse.js +3 -10
- package/dist/direction-Dq0_HtA5.js +183 -0
- package/dist/direction-Dq0_HtA5.js.map +1 -0
- package/dist/direction-K1pj0HCA.cjs +200 -0
- package/dist/direction-K1pj0HCA.cjs.map +1 -0
- package/dist/hooks/useActivityState.cjs +28 -10
- package/dist/hooks/useActivityState.cjs.map +1 -1
- package/dist/hooks/useActivityState.d.cts +25 -24
- package/dist/hooks/useActivityState.d.cts.map +1 -0
- package/dist/hooks/useActivityState.d.ts +25 -24
- package/dist/hooks/useActivityState.d.ts.map +1 -0
- package/dist/hooks/useActivityState.js +28 -2
- package/dist/hooks/useActivityState.js.map +1 -1
- package/dist/hooks/useSpeechRecorder.cjs +5 -16
- package/dist/hooks/useSpeechRecorder.d.cts +2 -127
- package/dist/hooks/useSpeechRecorder.d.ts +2 -127
- package/dist/hooks/useSpeechRecorder.js +3 -3
- package/dist/hooks/useXAPI.cjs +126 -10
- package/dist/hooks/useXAPI.cjs.map +1 -1
- package/dist/hooks/useXAPI.d.cts +14 -14
- package/dist/hooks/useXAPI.d.cts.map +1 -0
- package/dist/hooks/useXAPI.d.ts +14 -14
- package/dist/hooks/useXAPI.d.ts.map +1 -0
- package/dist/hooks/useXAPI.js +126 -2
- package/dist/hooks/useXAPI.js.map +1 -1
- package/dist/i18n/LkIntlProvider.cjs +9 -32
- package/dist/i18n/LkIntlProvider.d.cts +34 -38
- package/dist/i18n/LkIntlProvider.d.cts.map +1 -0
- package/dist/i18n/LkIntlProvider.d.ts +34 -38
- package/dist/i18n/LkIntlProvider.d.ts.map +1 -0
- package/dist/i18n/LkIntlProvider.js +3 -3
- package/dist/index-6P4rJHrJ.d.cts +432 -0
- package/dist/index-6P4rJHrJ.d.cts.map +1 -0
- package/dist/index-90CX504k.d.ts +90 -0
- package/dist/index-90CX504k.d.ts.map +1 -0
- package/dist/index-B_SgnjsC.d.cts +291 -0
- package/dist/index-B_SgnjsC.d.cts.map +1 -0
- package/dist/index-BavVW5z5.d.cts +25 -0
- package/dist/index-BavVW5z5.d.cts.map +1 -0
- package/dist/index-BhHv6Fiu.d.cts +28 -0
- package/dist/index-BhHv6Fiu.d.cts.map +1 -0
- package/dist/index-Bsu8VciA.d.ts +432 -0
- package/dist/index-Bsu8VciA.d.ts.map +1 -0
- package/dist/index-C1KGpD1k.d.ts +49 -0
- package/dist/index-C1KGpD1k.d.ts.map +1 -0
- package/dist/index-CKTpYTCC.d.cts +49 -0
- package/dist/index-CKTpYTCC.d.cts.map +1 -0
- package/dist/index-CO_SRFJj.d.ts +16 -0
- package/dist/index-CO_SRFJj.d.ts.map +1 -0
- package/dist/index-CSsuUsP7.d.cts +124 -0
- package/dist/index-CSsuUsP7.d.cts.map +1 -0
- package/dist/index-CunUyeuN.d.cts +78 -0
- package/dist/index-CunUyeuN.d.cts.map +1 -0
- package/dist/index-CzfRzks6.d.cts +90 -0
- package/dist/index-CzfRzks6.d.cts.map +1 -0
- package/dist/index-D14xtpBS.d.cts +24 -0
- package/dist/index-D14xtpBS.d.cts.map +1 -0
- package/dist/index-DHRPAPZf.d.ts +291 -0
- package/dist/index-DHRPAPZf.d.ts.map +1 -0
- package/dist/index-DLV6cK26.d.cts +16 -0
- package/dist/index-DLV6cK26.d.cts.map +1 -0
- package/dist/index-DbCCQ9cP.d.ts +124 -0
- package/dist/index-DbCCQ9cP.d.ts.map +1 -0
- package/dist/index-DeV5B2m5.d.ts +24 -0
- package/dist/index-DeV5B2m5.d.ts.map +1 -0
- package/dist/index-TZCJVSge.d.ts +28 -0
- package/dist/index-TZCJVSge.d.ts.map +1 -0
- package/dist/index-ZVvLHsd3.d.ts +25 -0
- package/dist/index-ZVvLHsd3.d.ts.map +1 -0
- package/dist/index-eQwBgpSw.d.ts +78 -0
- package/dist/index-eQwBgpSw.d.ts.map +1 -0
- package/dist/index.cjs +118 -163
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -24
- package/dist/index.d.ts +20 -24
- package/dist/index.js +84 -29
- package/dist/index.js.map +1 -1
- package/dist/theme/ThemeProvider.cjs +8 -28
- package/dist/theme/ThemeProvider.d.cts +2 -59
- package/dist/theme/ThemeProvider.d.ts +2 -59
- package/dist/theme/ThemeProvider.js +3 -3
- package/dist/tries-CbbtZkdG.cjs +363 -0
- package/dist/tries-CbbtZkdG.cjs.map +1 -0
- package/dist/tries-DTHSrLCm.js +310 -0
- package/dist/tries-DTHSrLCm.js.map +1 -0
- package/dist/types-BOQd93x3.d.cts +994 -0
- package/dist/types-BOQd93x3.d.cts.map +1 -0
- package/dist/types-HIrgF_mS.d.ts +994 -0
- package/dist/types-HIrgF_mS.d.ts.map +1 -0
- package/dist/useAiHelp-B-ccDL5Q.js +906 -0
- package/dist/useAiHelp-B-ccDL5Q.js.map +1 -0
- package/dist/useAiHelp-h9yOLFqt.cjs +995 -0
- package/dist/useAiHelp-h9yOLFqt.cjs.map +1 -0
- package/dist/useSpeechRecorder--O_f-xvt.cjs +720 -0
- package/dist/useSpeechRecorder--O_f-xvt.cjs.map +1 -0
- package/dist/useSpeechRecorder-DtAYvl02.d.cts +154 -0
- package/dist/useSpeechRecorder-DtAYvl02.d.cts.map +1 -0
- package/dist/useSpeechRecorder-DtAYvl02.d.ts +154 -0
- package/dist/useSpeechRecorder-DtAYvl02.d.ts.map +1 -0
- package/dist/useSpeechRecorder-zIi9Dlw8.js +709 -0
- package/dist/useSpeechRecorder-zIi9Dlw8.js.map +1 -0
- package/package.json +10 -11
- package/dist/WrittenResponse-B7A5gHMj.d.ts +0 -115
- package/dist/WrittenResponse-BpL9p2Hn.d.cts +0 -115
- package/dist/ai/useAiHelp.cjs.map +0 -1
- package/dist/ai/useAiHelp.js.map +0 -1
- package/dist/chunk-2PNSVBLQ.cjs +0 -54
- package/dist/chunk-2PNSVBLQ.cjs.map +0 -1
- package/dist/chunk-2TW6WLBC.js +0 -80
- package/dist/chunk-2TW6WLBC.js.map +0 -1
- package/dist/chunk-4ZZWZSWI.js +0 -61
- package/dist/chunk-4ZZWZSWI.js.map +0 -1
- package/dist/chunk-6N43WDVG.js +0 -29
- package/dist/chunk-6N43WDVG.js.map +0 -1
- package/dist/chunk-7ALBSPYR.cjs +0 -436
- package/dist/chunk-7ALBSPYR.cjs.map +0 -1
- package/dist/chunk-7NFY3M3W.js +0 -234
- package/dist/chunk-7NFY3M3W.js.map +0 -1
- package/dist/chunk-7SB2MJA4.js +0 -29
- package/dist/chunk-7SB2MJA4.js.map +0 -1
- package/dist/chunk-ABJJ3LII.js +0 -434
- package/dist/chunk-ABJJ3LII.js.map +0 -1
- package/dist/chunk-BIGGXHAW.cjs +0 -342
- package/dist/chunk-BIGGXHAW.cjs.map +0 -1
- package/dist/chunk-C7QZE5BI.js +0 -430
- package/dist/chunk-C7QZE5BI.js.map +0 -1
- package/dist/chunk-CWTUWNV3.cjs +0 -2937
- package/dist/chunk-CWTUWNV3.cjs.map +0 -1
- package/dist/chunk-DC4CQCK5.js +0 -915
- package/dist/chunk-DS6HN3YR.cjs +0 -496
- package/dist/chunk-DS6HN3YR.cjs.map +0 -1
- package/dist/chunk-FDQR4GAZ.js +0 -240
- package/dist/chunk-FDQR4GAZ.js.map +0 -1
- package/dist/chunk-FKGMSOJF.js +0 -394
- package/dist/chunk-FKGMSOJF.js.map +0 -1
- package/dist/chunk-G6PXJ2SA.js +0 -823
- package/dist/chunk-G6PXJ2SA.js.map +0 -1
- package/dist/chunk-HNLRVRQR.js +0 -335
- package/dist/chunk-HNLRVRQR.js.map +0 -1
- package/dist/chunk-J3C72RPK.cjs +0 -31
- package/dist/chunk-J3C72RPK.cjs.map +0 -1
- package/dist/chunk-K63VPFOV.cjs +0 -134
- package/dist/chunk-K63VPFOV.cjs.map +0 -1
- package/dist/chunk-KFLIDTDU.cjs +0 -825
- package/dist/chunk-KFLIDTDU.cjs.map +0 -1
- package/dist/chunk-KHKH5LCT.cjs +0 -250
- package/dist/chunk-KHKH5LCT.cjs.map +0 -1
- package/dist/chunk-LBEKRN6Y.cjs +0 -664
- package/dist/chunk-LBEKRN6Y.cjs.map +0 -1
- package/dist/chunk-LPUWXIPR.cjs +0 -578
- package/dist/chunk-LPUWXIPR.cjs.map +0 -1
- package/dist/chunk-MCO52PV5.js +0 -520
- package/dist/chunk-MCO52PV5.js.map +0 -1
- package/dist/chunk-MKXEM2C5.cjs +0 -396
- package/dist/chunk-MKXEM2C5.cjs.map +0 -1
- package/dist/chunk-MXNC5UNO.js +0 -563
- package/dist/chunk-MXNC5UNO.js.map +0 -1
- package/dist/chunk-NAK55BYU.cjs +0 -859
- package/dist/chunk-NAK55BYU.cjs.map +0 -1
- package/dist/chunk-NDBMKGQ5.cjs +0 -599
- package/dist/chunk-NDBMKGQ5.cjs.map +0 -1
- package/dist/chunk-OD65OZIW.cjs +0 -159
- package/dist/chunk-OD65OZIW.cjs.map +0 -1
- package/dist/chunk-ORT3KLGI.js +0 -50
- package/dist/chunk-ORT3KLGI.js.map +0 -1
- package/dist/chunk-PNNUPUH4.cjs +0 -82
- package/dist/chunk-PNNUPUH4.cjs.map +0 -1
- package/dist/chunk-PWHECW6N.js +0 -2934
- package/dist/chunk-PWHECW6N.js.map +0 -1
- package/dist/chunk-RBS5A2DF.js +0 -857
- package/dist/chunk-RBS5A2DF.js.map +0 -1
- package/dist/chunk-RPWUDXG5.cjs +0 -63
- package/dist/chunk-RPWUDXG5.cjs.map +0 -1
- package/dist/chunk-TCDJY3H6.js +0 -494
- package/dist/chunk-TCDJY3H6.js.map +0 -1
- package/dist/chunk-TP5UMRAU.cjs +0 -918
- package/dist/chunk-TP5UMRAU.cjs.map +0 -1
- package/dist/chunk-TS7J6DTY.js +0 -597
- package/dist/chunk-TS7J6DTY.js.map +0 -1
- package/dist/chunk-TUVENMXB.cjs +0 -20
- package/dist/chunk-TUVENMXB.cjs.map +0 -1
- package/dist/chunk-UDCQTOVU.cjs +0 -523
- package/dist/chunk-UDCQTOVU.cjs.map +0 -1
- package/dist/chunk-UHKZXOXD.js +0 -128
- package/dist/chunk-UHKZXOXD.js.map +0 -1
- package/dist/chunk-V6BA44DS.cjs +0 -236
- package/dist/chunk-V6BA44DS.cjs.map +0 -1
- package/dist/chunk-XO5R73Y4.js +0 -653
- package/dist/chunk-XO5R73Y4.js.map +0 -1
- package/dist/chunk-XOR4MPEN.cjs +0 -31
- package/dist/chunk-XOR4MPEN.cjs.map +0 -1
- package/dist/chunk-YORQQXGO.js +0 -155
- package/dist/chunk-YORQQXGO.js.map +0 -1
- package/dist/chunk-YY4PFR3Z.cjs +0 -432
- package/dist/chunk-YY4PFR3Z.cjs.map +0 -1
- package/dist/chunk-ZPI6Q42R.js +0 -17
- package/dist/chunk-ZPI6Q42R.js.map +0 -1
- package/dist/components/ActivityPreview.cjs.map +0 -1
- package/dist/components/ActivityPreview.js.map +0 -1
- package/dist/components/ActivitySequence.cjs.map +0 -1
- package/dist/components/ActivitySequence.js.map +0 -1
- package/dist/components/Dictation.cjs.map +0 -1
- package/dist/components/Dictation.js.map +0 -1
- package/dist/components/FillInTheBlanks.cjs.map +0 -1
- package/dist/components/FillInTheBlanks.js.map +0 -1
- package/dist/components/GapSelect.cjs.map +0 -1
- package/dist/components/GapSelect.js.map +0 -1
- package/dist/components/InteractiveVideo.cjs.map +0 -1
- package/dist/components/InteractiveVideo.js.map +0 -1
- package/dist/components/MultipleChoice.cjs.map +0 -1
- package/dist/components/MultipleChoice.js.map +0 -1
- package/dist/components/PronunciationFeedback.cjs.map +0 -1
- package/dist/components/PronunciationFeedback.js.map +0 -1
- package/dist/components/ReadAloud.cjs.map +0 -1
- package/dist/components/ReadAloud.js.map +0 -1
- package/dist/components/StimulusPanel.cjs.map +0 -1
- package/dist/components/StimulusPanel.js.map +0 -1
- package/dist/components/WrittenResponse.cjs.map +0 -1
- package/dist/components/WrittenResponse.js.map +0 -1
- package/dist/hooks/useSpeechRecorder.cjs.map +0 -1
- package/dist/hooks/useSpeechRecorder.js.map +0 -1
- package/dist/i18n/LkIntlProvider.cjs.map +0 -1
- package/dist/i18n/LkIntlProvider.js.map +0 -1
- package/dist/machine-CuwKqWXC.d.cts +0 -26
- package/dist/machine-CuwKqWXC.d.ts +0 -26
- package/dist/theme/ThemeProvider.cjs.map +0 -1
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/types-C4IsUQsK.d.ts +0 -989
- package/dist/types-CJgZWtl4.d.cts +0 -989
|
@@ -1,31 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require('../chunk-RPWUDXG5.cjs');
|
|
6
|
-
require('../chunk-MKXEM2C5.cjs');
|
|
7
|
-
require('../chunk-YY4PFR3Z.cjs');
|
|
8
|
-
require('../chunk-DS6HN3YR.cjs');
|
|
9
|
-
require('../chunk-7ALBSPYR.cjs');
|
|
10
|
-
require('../chunk-NAK55BYU.cjs');
|
|
11
|
-
require('../chunk-KHKH5LCT.cjs');
|
|
12
|
-
require('../chunk-TP5UMRAU.cjs');
|
|
13
|
-
require('../chunk-LBEKRN6Y.cjs');
|
|
14
|
-
require('../chunk-UDCQTOVU.cjs');
|
|
15
|
-
require('../chunk-OD65OZIW.cjs');
|
|
16
|
-
require('../chunk-2PNSVBLQ.cjs');
|
|
17
|
-
require('../chunk-J3C72RPK.cjs');
|
|
18
|
-
require('../chunk-LPUWXIPR.cjs');
|
|
19
|
-
require('../chunk-NDBMKGQ5.cjs');
|
|
20
|
-
require('../chunk-XOR4MPEN.cjs');
|
|
21
|
-
require('../chunk-BIGGXHAW.cjs');
|
|
22
|
-
require('../chunk-TUVENMXB.cjs');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Object.defineProperty(exports, "ActivitySequence", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () { return chunkKFLIDTDU_cjs.ActivitySequence; }
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=ActivitySequence.cjs.map
|
|
31
|
-
//# sourceMappingURL=ActivitySequence.cjs.map
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_ActivitySequence = require("../ActivitySequence-CmoSyDnp.cjs");
|
|
4
|
+
exports.ActivitySequence = require_ActivitySequence.ActivitySequence;
|
|
@@ -1,432 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { LearnerAi } from '../ai/LkAiProvider.cjs';
|
|
4
|
-
import { A as ActivityProps, i as SequenceRecordingSlot, g as RenderableActivity, e as RenderMode, S as SequenceMediaBudget, h as SequenceRecordingBinding, a as LkStringsOverride, H as HtmlSanitizer } from '../types-CJgZWtl4.cjs';
|
|
5
|
-
import { a as WrittenResponseSubmission } from '../WrittenResponse-BpL9p2Hn.cjs';
|
|
6
|
-
import '../machine-CuwKqWXC.cjs';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* What one finished slot in a sequence produced. Two kinds, because two kinds
|
|
10
|
-
* of activity exist: those the SDK scores at submit time, and those a grader
|
|
11
|
-
* scores later. Collapsing them would mean inventing a score for ungraded
|
|
12
|
-
* work — the exact defect the deferred outcome exists to prevent.
|
|
13
|
-
*
|
|
14
|
-
* **A read-aloud hand-in adds no arm here, deliberately.** The obvious home for
|
|
15
|
-
* a handed-in take is `submitted`, and it is the wrong one: that arm's payload
|
|
16
|
-
* is typed `WrittenResponseSubmission`, this union is published from both the
|
|
17
|
-
* barrel and the `components/ActivitySequence` subpath, and a consumer narrows
|
|
18
|
-
* on `kind === 'submitted'` and reads `.text`. Widening the payload to a union
|
|
19
|
-
* would break every one of those reads — a breaking change to a published
|
|
20
|
-
* discriminated union, bought for a type that `responded` already describes: a
|
|
21
|
-
* read-aloud hand-in IS a raw `LearnerResponse` with no grade, which is exactly
|
|
22
|
-
* what `responded` carries.
|
|
23
|
-
*
|
|
24
|
-
* What a read-aloud does add is `unsubmitted`, for the one thing no existing
|
|
25
|
-
* arm can say honestly: a take that never reached storage. Any response would
|
|
26
|
-
* be a lie about it — a `recording` of `null` is the blank a learner chooses,
|
|
27
|
-
* and grades as 0.
|
|
28
|
-
*/
|
|
29
|
-
type SequenceItemOutcome = {
|
|
30
|
-
kind: 'scored';
|
|
31
|
-
/** Presented position. */
|
|
32
|
-
index: number;
|
|
33
|
-
/** Slot identity from `flattenSequence` — stable under shuffling; the `slotId` to score with. */
|
|
34
|
-
slotId: string;
|
|
35
|
-
activityId: string;
|
|
36
|
-
result: ActivityResult;
|
|
37
|
-
/**
|
|
38
|
-
* The answer this score grades, for a slot whose grade arrives after its
|
|
39
|
-
* answer was handed in and whose learner may hand in another: a
|
|
40
|
-
* `practice` read-aloud, whose `response.recording` names the take the
|
|
41
|
-
* score belongs to. Absent for every other slot, whose score and answer
|
|
42
|
-
* arrive together.
|
|
43
|
-
*/
|
|
44
|
-
response?: LearnerResponse;
|
|
45
|
-
} | {
|
|
46
|
-
kind: 'submitted';
|
|
47
|
-
index: number;
|
|
48
|
-
slotId: string;
|
|
49
|
-
activityId: string;
|
|
50
|
-
/** Ungraded submission; the grade arrives asynchronously. */
|
|
51
|
-
submission: WrittenResponseSubmission;
|
|
52
|
-
} | {
|
|
53
|
-
kind: 'restored';
|
|
54
|
-
index: number;
|
|
55
|
-
slotId: string;
|
|
56
|
-
activityId: string;
|
|
57
|
-
/**
|
|
58
|
-
* The answer as restored, when one was. A slot can be submitted with no
|
|
59
|
-
* stored response (a blank the learner committed), so this is optional —
|
|
60
|
-
* inventing one would be worse than admitting it is absent.
|
|
61
|
-
*/
|
|
62
|
-
response?: LearnerResponse;
|
|
63
|
-
} | {
|
|
64
|
-
kind: 'responded';
|
|
65
|
-
index: number;
|
|
66
|
-
slotId: string;
|
|
67
|
-
activityId: string;
|
|
68
|
-
/**
|
|
69
|
-
* The raw answer, with no grade of any kind. This is what an `exam` slot
|
|
70
|
-
* produces: the client is forbidden to score, so a response is all there
|
|
71
|
-
* is until the server grades it.
|
|
72
|
-
*
|
|
73
|
-
* A read-aloud `recording` of `null` here is always a blank the learner
|
|
74
|
-
* chose to hand in, never a take that failed to upload — that is
|
|
75
|
-
* `unsubmitted`.
|
|
76
|
-
*/
|
|
77
|
-
response: LearnerResponse;
|
|
78
|
-
} | {
|
|
79
|
-
/**
|
|
80
|
-
* A question the learner tried to answer and could not hand in, and then
|
|
81
|
-
* left: a `practice` read-aloud whose take never reached your storage. It
|
|
82
|
-
* carries no response, because there is none.
|
|
83
|
-
*
|
|
84
|
-
* Deliberately not `responded` with a `recording` of `null`: that is the
|
|
85
|
-
* blank a learner chooses, and a grader marks it 0 with every word
|
|
86
|
-
* omitted — which would turn a storage outage into a zero. Grade nothing
|
|
87
|
-
* for this slot; the learner can still return to it, and a take stored
|
|
88
|
-
* then reaches you through `onSubmit`.
|
|
89
|
-
*/
|
|
90
|
-
kind: 'unsubmitted';
|
|
91
|
-
index: number;
|
|
92
|
-
slotId: string;
|
|
93
|
-
activityId: string;
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Where a question sits in the set, and the calls that tell the pager what the
|
|
97
|
-
* learner did with it — handed to a `renderers` override as its `question`
|
|
98
|
-
* prop, beside the shared {@link ActivityProps}.
|
|
99
|
-
*
|
|
100
|
-
* The SDK's own components make the same calls, so a question a host draws
|
|
101
|
-
* counts exactly as one the SDK draws: in `onFinished`, in whether the set is
|
|
102
|
-
* complete, and in what a resumed attempt reopens. Every call here keeps ONE
|
|
103
|
-
* identity for the life of the set, so it is safe in an effect's dependencies,
|
|
104
|
-
* and does nothing once the set has changed or the pager has gone.
|
|
105
|
-
*/
|
|
106
|
-
interface SequenceQuestion {
|
|
107
|
-
/**
|
|
108
|
-
* The identity to store this question's answer against — the same object
|
|
109
|
-
* `onSubmit` and `onActivityComplete` are handed, for the life of the set.
|
|
110
|
-
* `slotId`, never `index`: the position moves under shuffling.
|
|
111
|
-
*/
|
|
112
|
-
slot: SequenceRecordingSlot;
|
|
113
|
-
/**
|
|
114
|
-
* `true` while this is the question on screen. `false` from the moment the
|
|
115
|
-
* learner pages away, and `true` again when they come back.
|
|
116
|
-
*
|
|
117
|
-
* WHEN IT TURNS `false`, STOP THE MICROPHONE, ANY TIMER AND ANY SPEECH. The
|
|
118
|
-
* pager pauses the `<audio>` and `<video>` elements inside the question and
|
|
119
|
-
* stops the recorders the SDK started, but it cannot reach a recorder it did
|
|
120
|
-
* not create.
|
|
121
|
-
*/
|
|
122
|
-
active: boolean;
|
|
123
|
-
/**
|
|
124
|
-
* An element inside this question's own pane, for popovers, tooltips and
|
|
125
|
-
* dialogs. Portal into it rather than into `document.body`: a pane the
|
|
126
|
-
* learner has paged away from is hidden, and anything portalled out of it
|
|
127
|
-
* stays on screen over the next question — and in fullscreen, only the
|
|
128
|
-
* subtree being painted is visible at all.
|
|
129
|
-
*
|
|
130
|
-
* It is the same element for as long as the set is on screen, and is `null`
|
|
131
|
-
* only before the first commit.
|
|
132
|
-
*/
|
|
133
|
-
portalContainer: HTMLElement | null;
|
|
134
|
-
/**
|
|
135
|
-
* The learner withdrew their answer — a "Try again". The question counts as
|
|
136
|
-
* unanswered again and its outcome is forgotten, so the set is not complete
|
|
137
|
-
* until it is answered again. Calls no host callback: the host already knows.
|
|
138
|
-
*/
|
|
139
|
-
clear(): void;
|
|
140
|
-
/**
|
|
141
|
-
* Work is on its way for this question — an upload, an assessment, a save.
|
|
142
|
-
* While any question is pending, the set is not reported: `onFinished` and
|
|
143
|
-
* `onComplete` wait for it. Paging does not wait.
|
|
144
|
-
*
|
|
145
|
-
* Call `setPending(false)` however the work ends, a failure included.
|
|
146
|
-
*/
|
|
147
|
-
setPending(pending: boolean): void;
|
|
148
|
-
/** Forwards to `onInteraction`, with this question's `activityId` and the time filled in. */
|
|
149
|
-
emit(type: InteractionKind, payload?: Record<string, unknown>): void;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* A component that can render one activity inside a sequence. Register one per
|
|
153
|
-
* activity `type` to put a consumer-defined type on screen — the React half of
|
|
154
|
-
* the activity-type registry, matching `registerActivityType` in lk-core.
|
|
155
|
-
*
|
|
156
|
-
* It receives the shared {@link ActivityProps} and one prop beyond them:
|
|
157
|
-
* `question`, the pager's half of the contract ({@link SequenceQuestion}). A
|
|
158
|
-
* renderer written as `ComponentType<ActivityProps>` still fits and simply
|
|
159
|
-
* ignores it.
|
|
160
|
-
*/
|
|
161
|
-
type ActivityRenderer = ComponentType<ActivityProps & {
|
|
162
|
-
question?: SequenceQuestion;
|
|
163
|
-
}>;
|
|
164
|
-
interface ActivitySequenceProps {
|
|
165
|
-
/**
|
|
166
|
-
* The ordered set of entries to present, one question at a time: loose
|
|
167
|
-
* activities, and item groups — a shared passage, recording or image with
|
|
168
|
-
* the questions that refer to it. A group's stimulus stays on screen
|
|
169
|
-
* alongside each of its questions.
|
|
170
|
-
*
|
|
171
|
-
* Accepts `redact()` projections. For data straight off a server, pass it
|
|
172
|
-
* through `asRenderableSequence()` — see that helper for why a cast is
|
|
173
|
-
* unavoidable there — and set `renderMode="exam"`.
|
|
174
|
-
*/
|
|
175
|
-
activities: readonly SequenceEntry<RenderableActivity>[];
|
|
176
|
-
/**
|
|
177
|
-
* Renderers for activity types beyond the built-ins, keyed by `data.type`.
|
|
178
|
-
* A key matching a built-in overrides it, so a consumer can replace the
|
|
179
|
-
* bundled renderer without forking the sequencer.
|
|
180
|
-
*
|
|
181
|
-
* A registered renderer is an {@link ActivityRenderer}: it receives the
|
|
182
|
-
* shared prop contract, plus `question` — the pager's half of the contract
|
|
183
|
-
* ({@link SequenceQuestion}), which tells it when its question is on screen,
|
|
184
|
-
* holds the set while its work is in flight, and gives it somewhere to
|
|
185
|
-
* portal a popover. `shuffleSeed`, `recordingBinding`, `assessment` and
|
|
186
|
-
* `workletUrl` are outside both and reach no override: a replacement for
|
|
187
|
-
* `read-aloud` has to be given its own binding by whoever wrote it.
|
|
188
|
-
*/
|
|
189
|
-
renderers?: Readonly<Record<string, ActivityRenderer>>;
|
|
190
|
-
/**
|
|
191
|
-
* Called whenever an individual activity is scored at submit time — the
|
|
192
|
-
* incremental persist hook.
|
|
193
|
-
*
|
|
194
|
-
* `slotId` is the identity to store the result against, NOT `index`.
|
|
195
|
-
* `index` is where the question was PRESENTED, which is not stable: it moves
|
|
196
|
-
* under shuffling, and it already differs from the slot identity whenever a
|
|
197
|
-
* group is present (the second entry of a sequence is presented at index 1
|
|
198
|
-
* but is slot `"1.0"` if it is a group's first question). `composeAssessmentScore`
|
|
199
|
-
* scores by `slotId`, so persisting `index` cannot be reconciled with it.
|
|
200
|
-
*/
|
|
201
|
-
onActivityComplete?: (result: ActivityResult, index: number, slotId: string) => void;
|
|
202
|
-
/**
|
|
203
|
-
* Called on every submit with the learner's raw response and the identity of
|
|
204
|
-
* the slot that produced it — before any grading, in every render mode.
|
|
205
|
-
*
|
|
206
|
-
* **This is the only response channel an `exam` sequence has.** In `exam`
|
|
207
|
-
* mode the components never grade, so `onActivityComplete` cannot fire and
|
|
208
|
-
* `onComplete` never will; without this prop nothing a learner submitted
|
|
209
|
-
* would reach the consumer at all. Persist `response` against `slotId`.
|
|
210
|
-
*/
|
|
211
|
-
onSubmit?: (response: LearnerResponse, slot: {
|
|
212
|
-
slotId: string;
|
|
213
|
-
index: number;
|
|
214
|
-
activityId: string;
|
|
215
|
-
}) => void;
|
|
216
|
-
/**
|
|
217
|
-
* Called once every activity has been completed, with the scored results.
|
|
218
|
-
*
|
|
219
|
-
* Fires only when EVERY item produced a score. A set containing a
|
|
220
|
-
* deferred-graded activity (a written response) can never satisfy that, so
|
|
221
|
-
* use `onFinished` for mixed sets — it is the general completion signal and
|
|
222
|
-
* reports both kinds of outcome. It also carries `slotId` per item, which
|
|
223
|
-
* this callback's bare array cannot.
|
|
224
|
-
*
|
|
225
|
-
* It fires straight after `onFinished`, with the same results, or never: a
|
|
226
|
-
* set `onFinished` reported with an ungraded slot is not reported here later,
|
|
227
|
-
* when a re-recorded take is graded.
|
|
228
|
-
*/
|
|
229
|
-
onComplete?: (results: ActivityResult[]) => void;
|
|
230
|
-
/**
|
|
231
|
-
* Called once every activity has been completed, whether it was scored at
|
|
232
|
-
* submit time or submitted for later grading. Use this for any set that
|
|
233
|
-
* mixes graded and deferred-graded activities.
|
|
234
|
-
*
|
|
235
|
-
* **Once per set**, and that matters for a `practice` read-aloud, whose grade
|
|
236
|
-
* arrives after the submit that completed the slot. When the last slot is
|
|
237
|
-
* filled while a read-aloud's take is still being stored or assessed, this
|
|
238
|
-
* waits for it and reports the set then — with the grade in place, or with
|
|
239
|
-
* the slot's raw `responded` outcome when the take came back with no grade.
|
|
240
|
-
* A take that never settles is a question still being answered, so the set
|
|
241
|
-
* is not reported while it runs.
|
|
242
|
-
*
|
|
243
|
-
* **A failure the learner can still retry is in flight too.** While a take
|
|
244
|
-
* that failed to upload, or whose assessment failed, is offered "Try again"
|
|
245
|
-
* on the question the learner is looking at, the set is not reported: the
|
|
246
|
-
* retry may yet store and grade it. It completes once the learner moves to
|
|
247
|
-
* another question — as the last take the slot stored, or as `unsubmitted`
|
|
248
|
-
* when it never stored one, which is never a blank.
|
|
249
|
-
*
|
|
250
|
-
* **A score and a response always describe the same take.** A read-aloud
|
|
251
|
-
* recorded again replaces the earlier take's grade with the new take's
|
|
252
|
-
* `responded`, and a result that arrives for a take the learner has since
|
|
253
|
-
* replaced, or for a paper no longer on screen, is not recorded at all.
|
|
254
|
-
*
|
|
255
|
-
* `onComplete` fires in the same report or not at all, so the two never
|
|
256
|
-
* describe one set differently. What arrives after the set was reported is
|
|
257
|
-
* not reported here again, because a consumer who persists on this callback
|
|
258
|
-
* must not write one attempt twice: a later take reaches you through
|
|
259
|
-
* `onSubmit`, and its grade through `onActivityComplete`, the per-item persist
|
|
260
|
-
* hook keyed by `slotId` — which only ever grades the answer `onSubmit` last
|
|
261
|
-
* reported for that slot.
|
|
262
|
-
*/
|
|
263
|
-
onFinished?: (items: SequenceItemOutcome[]) => void;
|
|
264
|
-
/** Forwarded to each activity. */
|
|
265
|
-
onInteraction?: (event: InteractionEvent) => void;
|
|
266
|
-
/** Forwarded to each activity. `exam` and `review` disable local scoring. */
|
|
267
|
-
renderMode?: RenderMode;
|
|
268
|
-
/**
|
|
269
|
-
* Binds every budgeted recording in this sequence to a play ledger the
|
|
270
|
-
* consumer persists.
|
|
271
|
-
*
|
|
272
|
-
* The SDK refuses a play; it does not remember one. `plays` seeds the counts
|
|
273
|
-
* at mount (pass `restoreMediaPlayLedger(plan, stored).entries`), and
|
|
274
|
-
* `onPlayConsumed` is how a play becomes durable — see
|
|
275
|
-
* {@link SequenceMediaBudget}.
|
|
276
|
-
*/
|
|
277
|
-
mediaBudget?: SequenceMediaBudget;
|
|
278
|
-
/**
|
|
279
|
-
* Where every read-aloud take in this sequence is stored, and how a
|
|
280
|
-
* judgement comes back. Required by any `read-aloud` slot outside `review`:
|
|
281
|
-
* the component refuses to render a recorder whose take is stored nowhere.
|
|
282
|
-
*
|
|
283
|
-
* Named `recordingBinding` rather than `recording` because both
|
|
284
|
-
* `ReadAloudData.recording` (the bounds an item declares) and
|
|
285
|
-
* `ReadAloudLearnerResponse.recording` (the take a learner handed in) already
|
|
286
|
-
* exist — the plain name would read as one of those. Same name at both
|
|
287
|
-
* levels, different types, as `mediaBudget` has.
|
|
288
|
-
*/
|
|
289
|
-
recordingBinding?: SequenceRecordingBinding;
|
|
290
|
-
/**
|
|
291
|
-
* Speech assessments keyed by `slotId`, forwarded to the matching read-aloud
|
|
292
|
-
* slot so `review` can show the per-word marks behind a stored grade.
|
|
293
|
-
*
|
|
294
|
-
* Read LIVE, like `outcomes` and unlike `responses`: an assessment is fetched
|
|
295
|
-
* beside the attempt it explains and lands after the first paint, and a
|
|
296
|
-
* mount-only read would show the grade with no marks under it for ever.
|
|
297
|
-
*/
|
|
298
|
-
assessments?: Readonly<Record<string, SpeechAssessment>>;
|
|
299
|
-
/**
|
|
300
|
-
* The URL of a self-hosted copy of `CAPTURE_PROCESSOR_SOURCE`, forwarded to
|
|
301
|
-
* every read-aloud slot's recorder, for a Content-Security-Policy whose
|
|
302
|
-
* `script-src` does not allow `blob:`. See `ReadAloudProps.workletUrl`. Like
|
|
303
|
-
* `recordingBinding`, it does not reach a `renderers` override.
|
|
304
|
-
*/
|
|
305
|
-
workletUrl?: string;
|
|
306
|
-
/** Overrides the SDK's chrome text for this sequence. See {@link LkIntlProvider}. */
|
|
307
|
-
strings?: LkStringsOverride;
|
|
308
|
-
/**
|
|
309
|
-
* The host's AI ports, for every question this renders: explanations after
|
|
310
|
-
* grading, hints before submit. The same as `LkAiProvider`, for this one
|
|
311
|
-
* sequence, and a `renderers` override receives them as its own `ai` prop —
|
|
312
|
-
* except in `exam`, where nothing AI appears and no question is given them.
|
|
313
|
-
* See {@link LearnerAi}.
|
|
314
|
-
*/
|
|
315
|
-
ai?: LearnerAi;
|
|
316
|
-
/**
|
|
317
|
-
* What the school running this paper lets a learner see — feedback,
|
|
318
|
-
* solutions, hints, AI help — for every question in it. Each setting only
|
|
319
|
-
* takes away from what `renderMode` shows; an absent policy takes nothing.
|
|
320
|
-
*
|
|
321
|
-
* It holds in every question however it is drawn: the SDK's own components
|
|
322
|
-
* and a `renderers` override are handed it as `delivery`, and a question
|
|
323
|
-
* that ignores what it was handed still cannot show AI help the paper
|
|
324
|
-
* forbids. Record the same policy in the attempt with
|
|
325
|
-
* `planAttempt(entries, { delivery })`. See `DeliveryPolicy` in lk-core.
|
|
326
|
-
*/
|
|
327
|
-
delivery?: DeliveryPolicy | null;
|
|
328
|
-
/**
|
|
329
|
-
* How every question in the paper is scored when a learner can try again or
|
|
330
|
-
* ask for hints: how many tries each gives, which one counts, and what tries
|
|
331
|
-
* and hints cost. Applies in `practice`, where the questions grade; absent,
|
|
332
|
-
* each question is one try and costs nothing, as before.
|
|
333
|
-
*
|
|
334
|
-
* It holds in every question: the paper's policy wins over one a question
|
|
335
|
-
* was handed. The set is not reported while the question on screen offers
|
|
336
|
-
* another try, nor while any question is being tried again — the next try
|
|
337
|
-
* may change its grade — and once the set is reported, every question's
|
|
338
|
-
* tries close. A later try replaces a question's
|
|
339
|
-
* outcome until then, so `onActivityComplete` can fire more than once for a
|
|
340
|
-
* slot: keep the last. Record the same policy with
|
|
341
|
-
* `planAttempt(entries, { scoring })`. See `ItemScoringPolicy` in lk-core.
|
|
342
|
-
*
|
|
343
|
-
* A policy `validateItemScoringPolicy` refuses throws at render.
|
|
344
|
-
*/
|
|
345
|
-
scoring?: ItemScoringPolicy | null;
|
|
346
|
-
/**
|
|
347
|
-
* `entries` shuffles the top-level entries; a group moves as one block, and
|
|
348
|
-
* the order INSIDE a group follows the group's own `shuffle` setting.
|
|
349
|
-
* Default `none`: authored order.
|
|
350
|
-
*/
|
|
351
|
-
shuffle?: 'none' | 'entries';
|
|
352
|
-
/**
|
|
353
|
-
* Seed for every shuffle in this sequence (`shuffle: 'entries'` and any
|
|
354
|
-
* group with `shuffle: 'within-group'`). Supply the attempt id, so the
|
|
355
|
-
* server's `flattenSequence(entries, { seed })` derives the same order this
|
|
356
|
-
* pager shows.
|
|
357
|
-
*
|
|
358
|
-
* **Required whenever this sequence shuffles** — `shuffle: 'entries'`, or any
|
|
359
|
-
* group with `shuffle: 'within-group'` — in `exam` or `review` mode; omitting
|
|
360
|
-
* it then throws. An order nobody can reproduce cannot be reconciled with a
|
|
361
|
-
* recorded attempt, and failing at render is the only way that mistake
|
|
362
|
-
* surfaces before a learner sits the paper. A sequence that does not shuffle
|
|
363
|
-
* needs no seed in any mode.
|
|
364
|
-
*
|
|
365
|
-
* The guard covers an activity's own `data.shuffle` too, a group's items
|
|
366
|
-
* included: `<MultipleChoice>` would otherwise fall back to a per-mount seed,
|
|
367
|
-
* in every mode.
|
|
368
|
-
*
|
|
369
|
-
* In `practice` mode it stays optional: a random per-mount seed is used,
|
|
370
|
-
* stable within the mount and deliberately not reproducible. That fallback is
|
|
371
|
-
* also not SSR-safe (server and client would invent different orders and
|
|
372
|
-
* hydration would mismatch), so supply a seed for any server-rendered
|
|
373
|
-
* sequence regardless of mode.
|
|
374
|
-
*/
|
|
375
|
-
shuffleSeed?: string;
|
|
376
|
-
/**
|
|
377
|
-
* Where to open. Defaults to the first question; pass a stored
|
|
378
|
-
* `AttemptState.index` to reopen an interrupted attempt where it was left.
|
|
379
|
-
* Read at mount only, like any `default*` prop.
|
|
380
|
-
*/
|
|
381
|
-
defaultIndex?: number;
|
|
382
|
-
/**
|
|
383
|
-
* Fires whenever the learner moves. Persist it and the next resume reopens
|
|
384
|
-
* on the right question — without it, the pager's position is the one piece
|
|
385
|
-
* of an attempt a consumer cannot recover.
|
|
386
|
-
*/
|
|
387
|
-
onIndexChange?: (index: number) => void;
|
|
388
|
-
/**
|
|
389
|
-
* Answers to restore, keyed by `slotId`, seeded into each slot as its
|
|
390
|
-
* `defaultValue`. This is the other half of resume: `AttemptState.responses`
|
|
391
|
-
* goes straight in.
|
|
392
|
-
*
|
|
393
|
-
* Read at mount only. To restore a different attempt, remount with a `key`.
|
|
394
|
-
*/
|
|
395
|
-
responses?: Readonly<Record<string, LearnerResponse>>;
|
|
396
|
-
/**
|
|
397
|
-
* Slots the learner had already submitted, from `AttemptState.submittedSlotIds`.
|
|
398
|
-
* Each is mounted already submitted, so a resumed paper does not reopen a
|
|
399
|
-
* locked question as answerable — without this a learner can change and
|
|
400
|
-
* re-submit work they had already committed.
|
|
401
|
-
*
|
|
402
|
-
* Read at mount only, alongside `responses`.
|
|
403
|
-
*/
|
|
404
|
-
submittedSlotIds?: readonly string[];
|
|
405
|
-
/**
|
|
406
|
-
* Server-computed outcomes keyed by `slotId`, forwarded to each slot. In
|
|
407
|
-
* `review` mode this is what marks correctness — the client never scores, so
|
|
408
|
-
* without it a review render has nothing to show.
|
|
409
|
-
*/
|
|
410
|
-
outcomes?: Readonly<Record<string, ItemOutcome>>;
|
|
411
|
-
/** Renders author-supplied rich text; forwarded to the stimulus panel and every activity. */
|
|
412
|
-
sanitizeHtml?: HtmlSanitizer;
|
|
413
|
-
theme?: Partial<ThemeTokens>;
|
|
414
|
-
/**
|
|
415
|
-
* BCP 47 tag stamped as `lang` on this component's root. This is the
|
|
416
|
-
* INTERFACE language — the SDK's own chrome renders inside that element — so
|
|
417
|
-
* it should carry the same value you give `<LkIntlProvider locale>`. Passing
|
|
418
|
-
* a different one re-declares the language of every SDK string in this
|
|
419
|
-
* subtree without changing the words.
|
|
420
|
-
*
|
|
421
|
-
* It is NOT `data.locale`, which labels xAPI statements — and, on a
|
|
422
|
-
* dictation, places the dictation's own words: `<Dictation>` puts it, and
|
|
423
|
-
* the direction it names, on its title, hints, marks and solution. Other
|
|
424
|
-
* authored content in another language belongs on `stimulus.locale`, which
|
|
425
|
-
* `<StimulusPanel>` puts on the passage alone.
|
|
426
|
-
*/
|
|
427
|
-
locale?: string;
|
|
428
|
-
disabled?: boolean;
|
|
429
|
-
}
|
|
430
|
-
declare function ActivitySequence({ activities, renderers, onActivityComplete, onComplete, onFinished, onSubmit, onInteraction, renderMode, shuffle, shuffleSeed, defaultIndex, onIndexChange, responses, submittedSlotIds, outcomes, sanitizeHtml, theme, locale, disabled, mediaBudget, recordingBinding, assessments, workletUrl, strings, ai, delivery, scoring, }: ActivitySequenceProps): React.JSX.Element;
|
|
431
|
-
|
|
432
|
-
export { type ActivityRenderer, ActivitySequence, type ActivitySequenceProps, type SequenceItemOutcome, type SequenceQuestion };
|
|
1
|
+
import { a as SequenceQuestion, i as SequenceItemOutcome, n as ActivitySequence, r as ActivitySequenceProps, t as ActivityRenderer } from "../index-6P4rJHrJ.cjs";
|
|
2
|
+
export { type ActivityRenderer, ActivitySequence, type ActivitySequenceProps, type SequenceItemOutcome, type SequenceQuestion };
|