@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
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { t as LearnerAi } from "./LkAiProvider-QdEcIhoo.js";
|
|
2
|
+
import { a as RenderMode, v as LkStringsOverride } from "./types-HIrgF_mS.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { DeliveryPolicy, GradeRecord, InteractionEvent, ReadAloudData, SpeechAssessment, ThemeTokens } from "@intellectif/lk-core";
|
|
5
|
+
//#region src/components/PronunciationFeedback/PronunciationFeedback.d.ts
|
|
6
|
+
interface PronunciationFeedbackProps {
|
|
7
|
+
/**
|
|
8
|
+
* The item's reading and its language: the two fields every mark depends
|
|
9
|
+
* on. Pass the whole item — or its `id` and `title` with them, and its
|
|
10
|
+
* `instructions` and `ai` where it has them — for AI coaching: without an
|
|
11
|
+
* `id` and a `title` none is offered, whatever the ports.
|
|
12
|
+
*/
|
|
13
|
+
data: Pick<ReadAloudData, 'referenceText' | 'locale'> & Partial<Pick<ReadAloudData, 'id' | 'title' | 'instructions' | 'ai'>>;
|
|
14
|
+
/**
|
|
15
|
+
* The assessor's evidence. Checked with `validateSpeechAssessment` before it
|
|
16
|
+
* is aligned: see the note on this component about what a bad one costs.
|
|
17
|
+
*/
|
|
18
|
+
assessment: SpeechAssessment;
|
|
19
|
+
/**
|
|
20
|
+
* The grade the evidence produced, when one exists. Its `criteria` are what
|
|
21
|
+
* the dimensions are read from, because they are the numbers the learner was
|
|
22
|
+
* actually graded on. A grade that cannot be read — a score that is not a
|
|
23
|
+
* number between 0 and its maximum, a `passed` that is not a boolean — is
|
|
24
|
+
* shown as could-not-be-graded, never as a percentage made up from it.
|
|
25
|
+
*/
|
|
26
|
+
grade?: GradeRecord;
|
|
27
|
+
/**
|
|
28
|
+
* The learner's own take, playable. With it, each word that carries timings
|
|
29
|
+
* gets a button that plays just that word. A take the page refuses to play —
|
|
30
|
+
* a `blob:` URL under a Content-Security-Policy whose `media-src` does not
|
|
31
|
+
* allow one, most often — offers no such button, and the panel says the take
|
|
32
|
+
* cannot be played here.
|
|
33
|
+
*/
|
|
34
|
+
audioUrl?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Confidence above which a break note is shown, 0..1. **No default**: how
|
|
37
|
+
* confident an engine has to be before a pause is worth telling a learner
|
|
38
|
+
* about is a calibration, and the SDK has no calibrated answer. Without it no
|
|
39
|
+
* break note is shown at all.
|
|
40
|
+
*/
|
|
41
|
+
breakThreshold?: number;
|
|
42
|
+
/** The same, for the monotone note read off `assessment.prosody`. */
|
|
43
|
+
monotoneThreshold?: number;
|
|
44
|
+
/**
|
|
45
|
+
* BCP 47 tag stamped as `lang` on the root: the INTERFACE language, the one
|
|
46
|
+
* this component's own sentences are written in. It is not `data.locale`,
|
|
47
|
+
* which is the language of the reading and is put on the words themselves.
|
|
48
|
+
*/
|
|
49
|
+
locale?: string;
|
|
50
|
+
/** Per-instance token overrides, applied as inline CSS vars on the root. */
|
|
51
|
+
theme?: Partial<ThemeTokens>;
|
|
52
|
+
/** Overrides the SDK's chrome text for this panel. See {@link LkIntlProvider}. */
|
|
53
|
+
strings?: LkStringsOverride;
|
|
54
|
+
/**
|
|
55
|
+
* The host's AI ports, overriding `LkAiProvider`'s. With a
|
|
56
|
+
* `pronunciationCoaching` port the learner can ask for coaching on these
|
|
57
|
+
* marks — once per reading — which a model writes and the SDK checks: every
|
|
58
|
+
* word it coaches is one marked here, and every sound one the engine
|
|
59
|
+
* reported. See {@link LearnerAi}.
|
|
60
|
+
*/
|
|
61
|
+
ai?: LearnerAi;
|
|
62
|
+
/**
|
|
63
|
+
* The mode the reading was given, for AI coaching alone: `exam` offers none,
|
|
64
|
+
* and an `exam` around the panel wins. The marks themselves show in any mode.
|
|
65
|
+
*/
|
|
66
|
+
renderMode?: RenderMode;
|
|
67
|
+
/**
|
|
68
|
+
* What the paper lets a learner see. Coaching needs `feedback` and AI
|
|
69
|
+
* explanations; the paper around the panel holds as well.
|
|
70
|
+
*/
|
|
71
|
+
delivery?: DeliveryPolicy | null;
|
|
72
|
+
/** Where `ai-coaching-shown` and `ai-help-refused` go. */
|
|
73
|
+
onInteraction?: (event: InteractionEvent) => void;
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
//#region src/components/PronunciationFeedback/index.d.ts
|
|
77
|
+
/**
|
|
78
|
+
* Public pronunciation-feedback panel: the core wrapped in
|
|
79
|
+
* `ActivityErrorBoundary` so a render failure (the dev throw for evidence
|
|
80
|
+
* `validateSpeechAssessment` refuses among them) degrades to an accessible
|
|
81
|
+
* fallback instead of crashing the host.
|
|
82
|
+
*
|
|
83
|
+
* **No `activityTitle`.** Its `data` is two fields of a read-aloud item and
|
|
84
|
+
* carries no title, so the production fallback is the unnamed one. Naming it
|
|
85
|
+
* would mean inventing a title for a panel that never had one.
|
|
86
|
+
*/
|
|
87
|
+
declare function PronunciationFeedback(props: PronunciationFeedbackProps): React.JSX.Element;
|
|
88
|
+
//#endregion
|
|
89
|
+
export { PronunciationFeedbackProps as n, PronunciationFeedback as t };
|
|
90
|
+
//# sourceMappingURL=index-90CX504k.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-90CX504k.d.ts","names":[],"sources":["../src/components/PronunciationFeedback/PronunciationFeedback.tsx","../src/components/PronunciationFeedback/index.tsx"],"mappings":";;;;;UAyDiB;;;;;;;EAOf,MAAM,KAAK,6CACT,QAAQ,KAAK;;;;;EAKf,YAAY;;;;;;;;EAQZ,QAAQ;;;;;;;;EAQR;;;;;;;EAOA;;EAEA;;;;;;EAMA;;EAEA,QAAQ,QAAQ;;EAEhB,UAAU;;;;;;;;EAQV,KAAK;;;;;EAKL,aAAa;;;;;EAKb,WAAW;;EAEX,iBAAiB,OAAO;;;;;;;;;;;;;;iBCxGV,sBAAsB,OAAO,6BAA6B,MAAM,IAAI"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { t as LearnerAi } from "./LkAiProvider-DAPpA3PQ.cjs";
|
|
2
|
+
import { a as RenderMode, l as SequenceRecordingBinding, n as HtmlSanitizer, s as RenderableActivity, u as SequenceRecordingSlot, v as LkStringsOverride, x as VideoPreferences } from "./types-BOQd93x3.cjs";
|
|
3
|
+
import { ActivityResult, DeliveryPolicy, InteractionEvent, InteractionKind, ItemGroup, ItemOutcome, ItemScoringPolicy, LearnerResponse, MediaProgress, MediaTrack, ResolvedDeliveryPolicy, ResolvedItemScoringPolicy, SpeechAssessment, ThemeTokens } from "@intellectif/lk-core";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
//#region src/components/InteractiveVideo/InteractiveVideo.d.ts
|
|
6
|
+
/** An item group whose items may be `redact()` projections: the client's view of an interactive video. */
|
|
7
|
+
type RenderableItemGroup = ItemGroup<RenderableActivity>;
|
|
8
|
+
/** A question's place: its slot, as `<ActivitySequence>` reports it, plus the quiz it sits in. */
|
|
9
|
+
interface InteractiveVideoSlot extends SequenceRecordingSlot {
|
|
10
|
+
cueId: string;
|
|
11
|
+
}
|
|
12
|
+
/** What `onFinished` reports: every question, and how the learner left it. */
|
|
13
|
+
interface InteractiveVideoSummary {
|
|
14
|
+
slots: {
|
|
15
|
+
slotId: string;
|
|
16
|
+
activityId: string;
|
|
17
|
+
cueId: string;
|
|
18
|
+
status: 'answered' | 'skipped' | 'unreached';
|
|
19
|
+
}[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One question, as `renderQuestion` is handed it: what to draw, and the six
|
|
23
|
+
* calls through which the video learns what the learner did.
|
|
24
|
+
*
|
|
25
|
+
* The calls are the ones the SDK's own components make, so a question the host
|
|
26
|
+
* draws counts exactly as one the SDK draws — in the step dots, in whether a
|
|
27
|
+
* required quiz lets the learner go on, on the end card and in `onFinished`.
|
|
28
|
+
* Each keeps ONE identity per question for the life of the player, so it is
|
|
29
|
+
* safe in an effect's dependencies, and each does nothing once the player has
|
|
30
|
+
* unmounted.
|
|
31
|
+
*/
|
|
32
|
+
interface InteractiveVideoQuestion {
|
|
33
|
+
/** The question, as the SDK would have rendered it: full data, or a `redact()` projection. */
|
|
34
|
+
activity: RenderableActivity;
|
|
35
|
+
/** Where it sits: the same object `onSubmit` and `onActivityComplete` are handed, for the life of the player. */
|
|
36
|
+
slot: InteractiveVideoSlot;
|
|
37
|
+
/**
|
|
38
|
+
* Passed through untouched. The SDK cannot enforce a mode for pixels it does
|
|
39
|
+
* not draw: in `exam` the host must not reveal correctness, and in `review`
|
|
40
|
+
* nothing is submittable — `submit`, `complete` and `clear` are ignored there.
|
|
41
|
+
*/
|
|
42
|
+
renderMode: RenderMode;
|
|
43
|
+
/**
|
|
44
|
+
* `true` while this question is the one on screen: its quiz is open and it is
|
|
45
|
+
* the current step. `false` from the moment it leaves the screen — another
|
|
46
|
+
* step, the quiz closing, another quiz opening — and `true` again when the
|
|
47
|
+
* learner comes back.
|
|
48
|
+
*
|
|
49
|
+
* WHEN IT TURNS `false`, STOP THE MICROPHONE, ANY TIMER AND ANY SPEECH. The
|
|
50
|
+
* video pauses the `<audio>` and `<video>` elements inside the question and
|
|
51
|
+
* stops the recorders the SDK started, but it cannot reach a recorder it did
|
|
52
|
+
* not create.
|
|
53
|
+
*/
|
|
54
|
+
active: boolean;
|
|
55
|
+
locale?: string;
|
|
56
|
+
/** The answer restored from `responses`. A starting value: read it once, as the SDK's components do. */
|
|
57
|
+
defaultValue?: LearnerResponse;
|
|
58
|
+
/** Whether `submittedSlotIds` names this question: it was handed in before this attempt resumed. */
|
|
59
|
+
defaultSubmitted: boolean;
|
|
60
|
+
/** Its stored outcome from `outcomes`: review, or the grade of a question graded later. Read live. */
|
|
61
|
+
outcome?: ItemOutcome;
|
|
62
|
+
/**
|
|
63
|
+
* An element inside the player, for popovers and tooltips. Portal into it
|
|
64
|
+
* rather than into `document.body`: in fullscreen only the player is painted,
|
|
65
|
+
* and anything outside it silently vanishes. It is drawn above the quiz, is
|
|
66
|
+
* the same element for the life of the player — one for every question, so
|
|
67
|
+
* key what you put in it — and is `null` only before the player's first
|
|
68
|
+
* commit.
|
|
69
|
+
*/
|
|
70
|
+
portalContainer: HTMLElement | null;
|
|
71
|
+
/**
|
|
72
|
+
* The AI ports in force for this video — its `ai` prop, else an
|
|
73
|
+
* `LkAiProvider` above it — for a host that offers its own explanations or
|
|
74
|
+
* hints. Absent in `exam`: no question gives AI help there, and the SDK
|
|
75
|
+
* hands its ports to none.
|
|
76
|
+
*/
|
|
77
|
+
ai?: LearnerAi;
|
|
78
|
+
/**
|
|
79
|
+
* The video's delivery policy, every setting spelled out: what this question
|
|
80
|
+
* may show. The SDK cannot keep a policy in pixels it does not draw — where
|
|
81
|
+
* `feedback` or `solutions` is `false`, show no mark and no answer.
|
|
82
|
+
*/
|
|
83
|
+
delivery: ResolvedDeliveryPolicy;
|
|
84
|
+
/**
|
|
85
|
+
* The video's scoring policy, every setting spelled out: how many tries a
|
|
86
|
+
* question gives, which counts, and what tries and hints cost. The SDK's own
|
|
87
|
+
* questions apply it; a question you draw scores by it with lk-core's
|
|
88
|
+
* `scoreTries`, or not at all.
|
|
89
|
+
*/
|
|
90
|
+
scoring: ResolvedItemScoringPolicy;
|
|
91
|
+
/**
|
|
92
|
+
* The learner committed an answer: marks the question answered and forwards
|
|
93
|
+
* to `onSubmit(response, slot)`. Latest wins: call it again for a new take or
|
|
94
|
+
* a corrected answer.
|
|
95
|
+
*/
|
|
96
|
+
submit(response: LearnerResponse): void;
|
|
97
|
+
/**
|
|
98
|
+
* The answer has a result: marks the question answered, keeps `score / maxScore`
|
|
99
|
+
* for the end card when `maxScore > 0`, and forwards to
|
|
100
|
+
* `onActivityComplete(result, slot)`. Latest wins. Counts as answered on its
|
|
101
|
+
* own, without a `submit`, and forwards exactly what was called — no
|
|
102
|
+
* `onSubmit` is invented for it.
|
|
103
|
+
*/
|
|
104
|
+
complete(result: ActivityResult): void;
|
|
105
|
+
/**
|
|
106
|
+
* The learner withdrew the answer — a "Try again". The question is unanswered
|
|
107
|
+
* again and its score forgotten: its step dot empties, a required quiz holds
|
|
108
|
+
* the learner again, and `onFinished` would report it `skipped`. Calls no
|
|
109
|
+
* host callback: the host already knows.
|
|
110
|
+
*/
|
|
111
|
+
clear(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Work is on its way for this question — an upload, an assessment. While any
|
|
114
|
+
* question is pending, Finish on the end card waits, and a video that ends
|
|
115
|
+
* does not finish by itself; closing the quiz, paging and seeking do not wait.
|
|
116
|
+
* Call `setPending(false)` however the work ends, a failure included.
|
|
117
|
+
*/
|
|
118
|
+
setPending(pending: boolean): void;
|
|
119
|
+
/** Forwards to `onInteraction`, with this question's `activityId` and the time filled in. */
|
|
120
|
+
emit(type: InteractionKind, payload?: Record<string, unknown>): void;
|
|
121
|
+
}
|
|
122
|
+
interface InteractiveVideoProps {
|
|
123
|
+
/** An item group with a video stimulus and a timeline. Redacted projections in exam and review. */
|
|
124
|
+
group: RenderableItemGroup;
|
|
125
|
+
/**
|
|
126
|
+
* `practice` (the default) grades each question and shows its feedback;
|
|
127
|
+
* `exam` submits without showing correctness — a check-in marked later;
|
|
128
|
+
* `review` shows how each question was marked.
|
|
129
|
+
*
|
|
130
|
+
* `exam` does NOT make the video fit for an official summative exam. The
|
|
131
|
+
* learner controls the recording — rewinds it, slows it, reads its
|
|
132
|
+
* transcript — while the questions are open, and nothing here times a
|
|
133
|
+
* question or holds a single pass. Deliver a paper of record with
|
|
134
|
+
* `<ActivitySequence>`.
|
|
135
|
+
*/
|
|
136
|
+
renderMode?: RenderMode;
|
|
137
|
+
/** Where to resume. Read through `readMediaProgress` and clamped; a required quiz is never skipped by a resume. */
|
|
138
|
+
progress?: MediaProgress;
|
|
139
|
+
/** At most every 5 s while playing, and on pause, seek, a quiz opening and the end. */
|
|
140
|
+
onProgress?: (progress: MediaProgress) => void;
|
|
141
|
+
/** Answers restored from the host, by slot id: `AttemptState.responses`. Read once, at mount. */
|
|
142
|
+
responses?: Readonly<Record<string, LearnerResponse>>;
|
|
143
|
+
/**
|
|
144
|
+
* Questions the learner had already submitted, from
|
|
145
|
+
* `AttemptState.submittedSlotIds`: mounted submitted, and counted as
|
|
146
|
+
* answered, so a resumed video neither reopens a committed answer nor stops
|
|
147
|
+
* again at a quiz already done. Read once, at mount.
|
|
148
|
+
*/
|
|
149
|
+
submittedSlotIds?: readonly string[];
|
|
150
|
+
/** Stored outcomes, by slot id: review, and the grades of questions graded later. */
|
|
151
|
+
outcomes?: Readonly<Record<string, ItemOutcome>>;
|
|
152
|
+
onSubmit?: (response: LearnerResponse, slot: InteractiveVideoSlot) => void;
|
|
153
|
+
onActivityComplete?: (result: ActivityResult, slot: InteractiveVideoSlot) => void;
|
|
154
|
+
/**
|
|
155
|
+
* Once per mount: when the learner presses Finish, or the video ends with every
|
|
156
|
+
* question answered — either way, only once no answer is still on its way.
|
|
157
|
+
*/
|
|
158
|
+
onFinished?: (summary: InteractiveVideoSummary) => void;
|
|
159
|
+
onInteraction?: (event: InteractionEvent) => void;
|
|
160
|
+
/**
|
|
161
|
+
* Draws a question yourself. Called for each question once its quiz has
|
|
162
|
+
* opened, and on every render after;
|
|
163
|
+
* return `undefined` for the SDK's own component, so a host can take over one
|
|
164
|
+
* activity type and leave the rest. `null` draws nothing, and is kept.
|
|
165
|
+
*
|
|
166
|
+
* The video still owns everything around the question: when it opens,
|
|
167
|
+
* whether it counts as answered, whether a required quiz lets the learner go
|
|
168
|
+
* on, pausing, resume and the end summary — all through the calls on
|
|
169
|
+
* {@link InteractiveVideoQuestion}. A question the host draws is never
|
|
170
|
+
* treated differently from one the SDK draws.
|
|
171
|
+
*
|
|
172
|
+
* THE HOST MUST STOP ITS MICROPHONE WHEN `active` TURNS `false`: the SDK stops
|
|
173
|
+
* only the recorders it created. And the SDK cannot keep a mode for pixels it
|
|
174
|
+
* does not draw: in `exam` reveal no correctness, and in `review` accept no
|
|
175
|
+
* answer.
|
|
176
|
+
*
|
|
177
|
+
* What you return is keyed by the question's slot and stays mounted for the
|
|
178
|
+
* life of the player, like the SDK's own questions, and sits inside the same
|
|
179
|
+
* error boundary: a throw degrades that one question, never the video.
|
|
180
|
+
*/
|
|
181
|
+
renderQuestion?: (question: InteractiveVideoQuestion) => ReactNode | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Where read-aloud takes are stored and judged. Required for every read-aloud
|
|
184
|
+
* the SDK draws itself, outside review; a video whose read-alouds are all
|
|
185
|
+
* drawn by `renderQuestion` needs none.
|
|
186
|
+
*/
|
|
187
|
+
recordingBinding?: SequenceRecordingBinding;
|
|
188
|
+
/** Speech assessments by slot id, so `review` shows the marks behind a read-aloud's grade. Read live. */
|
|
189
|
+
assessments?: Readonly<Record<string, SpeechAssessment>>;
|
|
190
|
+
/** A self-hosted copy of the read-aloud capture processor, for a strict Content-Security-Policy. */
|
|
191
|
+
workletUrl?: string;
|
|
192
|
+
/**
|
|
193
|
+
* Fetches a caption file with the host's credentials and returns its WebVTT
|
|
194
|
+
* text. Without it, the player fetches `src` itself — which a `<track>`
|
|
195
|
+
* could not do for a URL that needs an Authorization header.
|
|
196
|
+
*/
|
|
197
|
+
captionsLoader?: (track: MediaTrack) => Promise<string>;
|
|
198
|
+
/**
|
|
199
|
+
* FORCES preferences: each field given here overrides what the learner chose,
|
|
200
|
+
* every time the video opens. For a starting point the learner can still
|
|
201
|
+
* change — a language pair, say — pass `defaultPreferences` instead. Read when
|
|
202
|
+
* the video opens; the learner's own changes after that hold.
|
|
203
|
+
*/
|
|
204
|
+
preferences?: Partial<VideoPreferences>;
|
|
205
|
+
/**
|
|
206
|
+
* Preferences to start from, below what the learner chose in this browser:
|
|
207
|
+
* each field applies until the learner changes it. A host that keeps the
|
|
208
|
+
* learner's choice on their account passes it back here — on a new device
|
|
209
|
+
* nothing is stored, so the account's choice applies; on the same device the
|
|
210
|
+
* stored choice is that same choice. Read live: a value that arrives after
|
|
211
|
+
* the video opens still fills every field nobody chose.
|
|
212
|
+
*/
|
|
213
|
+
defaultPreferences?: Partial<VideoPreferences>;
|
|
214
|
+
/**
|
|
215
|
+
* After each change the learner makes — a menu, a shortcut, the volume, the
|
|
216
|
+
* speed — with the preferences now in force and the fields that changed.
|
|
217
|
+
* Never when the video opens, and never for `preferences`. The player still
|
|
218
|
+
* remembers the change in this browser; this is for a host that keeps it on
|
|
219
|
+
* the learner's account as well.
|
|
220
|
+
*/
|
|
221
|
+
onPreferencesChange?: (next: VideoPreferences, change: Partial<VideoPreferences>) => void;
|
|
222
|
+
/** A short label in the corner, such as a lesson code. */
|
|
223
|
+
label?: string;
|
|
224
|
+
/** Seed for the option order of multiple-choice and gap-select questions: the attempt id. */
|
|
225
|
+
shuffleSeed?: string;
|
|
226
|
+
locale?: string;
|
|
227
|
+
strings?: LkStringsOverride;
|
|
228
|
+
/**
|
|
229
|
+
* The host's AI ports, for every question the SDK draws: explanations after
|
|
230
|
+
* grading, hints before submit. The same as `LkAiProvider`, for this one
|
|
231
|
+
* video. Nothing AI appears in `exam`. See {@link LearnerAi}.
|
|
232
|
+
*/
|
|
233
|
+
ai?: LearnerAi;
|
|
234
|
+
/**
|
|
235
|
+
* What a learner may see around the video's questions — feedback,
|
|
236
|
+
* solutions, hints, AI help — for every question in it, and on the end card:
|
|
237
|
+
* with `feedback: false` it counts answers and shows no score. Each setting
|
|
238
|
+
* only takes away. See `DeliveryPolicy` in lk-core.
|
|
239
|
+
*/
|
|
240
|
+
delivery?: DeliveryPolicy | null;
|
|
241
|
+
/**
|
|
242
|
+
* How the video's questions are scored when a learner can try again or ask
|
|
243
|
+
* for hints — for every question in it. A later try replaces a question's
|
|
244
|
+
* grade, as any answer given again does, until the learner finishes: then
|
|
245
|
+
* every question's tries close. See `ItemScoringPolicy` in lk-core.
|
|
246
|
+
*
|
|
247
|
+
* A policy `validateItemScoringPolicy` refuses throws at render.
|
|
248
|
+
*/
|
|
249
|
+
scoring?: ItemScoringPolicy | null;
|
|
250
|
+
theme?: Partial<ThemeTokens>;
|
|
251
|
+
sanitizeHtml?: HtmlSanitizer;
|
|
252
|
+
}
|
|
253
|
+
//#endregion
|
|
254
|
+
//#region src/components/InteractiveVideo/tracks.d.ts
|
|
255
|
+
/** The two lines a learner can have: which track each shows, if any. */
|
|
256
|
+
interface CaptionTracks {
|
|
257
|
+
primary?: MediaTrack;
|
|
258
|
+
secondary?: MediaTrack;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Which track each caption line shows, from the learner's two choices.
|
|
262
|
+
*
|
|
263
|
+
* The primary line always shows something while there are tracks:
|
|
264
|
+
* 1. the track in `captionLanguage` (case-insensitive);
|
|
265
|
+
* 2. else one of the same primary language — `pt` finds `pt-BR`, `es` finds
|
|
266
|
+
* `es-419`;
|
|
267
|
+
* 3. else the `default` track;
|
|
268
|
+
* 4. else the first.
|
|
269
|
+
*
|
|
270
|
+
* Where two tracks share a language, the `captions` one wins.
|
|
271
|
+
*
|
|
272
|
+
* The secondary line is stricter: it appears only when `secondaryCaptionLanguage`
|
|
273
|
+
* is set and matches a track in another language, by steps 1 and 2 alone —
|
|
274
|
+
* never the default, never the first. A second line the learner did not choose
|
|
275
|
+
* must never appear.
|
|
276
|
+
*/
|
|
277
|
+
declare function resolveCaptionTracks(tracks: readonly MediaTrack[], preferences: Pick<VideoPreferences, 'captionLanguage' | 'secondaryCaptionLanguage'>): CaptionTracks;
|
|
278
|
+
//#endregion
|
|
279
|
+
//#region src/components/InteractiveVideo/index.d.ts
|
|
280
|
+
/**
|
|
281
|
+
* Public interactive video: the player wrapped in `ActivityErrorBoundary`, so a
|
|
282
|
+
* render failure — the development-time schema check among them — degrades to
|
|
283
|
+
* an accessible fallback instead of taking the host page down.
|
|
284
|
+
*
|
|
285
|
+
* A formative tool, for lessons and practice — not for official summative
|
|
286
|
+
* exams, which `<ActivitySequence>` delivers.
|
|
287
|
+
*/
|
|
288
|
+
declare function InteractiveVideo(props: InteractiveVideoProps): React.JSX.Element;
|
|
289
|
+
//#endregion
|
|
290
|
+
export { InteractiveVideoQuestion as a, RenderableItemGroup as c, InteractiveVideoProps as i, CaptionTracks as n, InteractiveVideoSlot as o, resolveCaptionTracks as r, InteractiveVideoSummary as s, InteractiveVideo as t };
|
|
291
|
+
//# sourceMappingURL=index-B_SgnjsC.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-B_SgnjsC.d.cts","names":[],"sources":["../src/components/InteractiveVideo/InteractiveVideo.tsx","../src/components/InteractiveVideo/tracks.ts","../src/components/InteractiveVideo/index.tsx"],"mappings":";;;;;;KAsGY,sBAAsB,UAAU;;UAG3B,6BAA6B;EAC5C;;;UAIe;EACf;IACE;IACA;IACA;IACA;;;;;;;;;;;;;;UAea;;EAEf,UAAU;;EAEV,MAAM;;;;;;EAMN,YAAY;;;;;;;;;;;;EAYZ;EACA;;EAEA,eAAe;;EAEf;;EAEA,UAAU;;;;;;;;;EASV,iBAAiB;;;;;;;EAOjB,KAAK;;;;;;EAML,UAAU;;;;;;;EAOV,SAAS;;;;;;EAMT,OAAO,UAAU;;;;;;;;EAQjB,SAAS,QAAQ;;;;;;;EAOjB;;;;;;;EAOA,WAAW;;EAEX,KAAK,MAAM,iBAAiB,UAAU;;UAGvB;;EAEf,OAAO;;;;;;;;;;;;EAYP,aAAa;;EAEb,WAAW;;EAEX,cAAc,UAAU;;EAExB,YAAY,SAAS,eAAe;;;;;;;EAOpC;;EAEA,WAAW,SAAS,eAAe;EACnC,YAAY,UAAU,iBAAiB,MAAM;EAC7C,sBAAsB,QAAQ,gBAAgB,MAAM;;;;;EAKpD,cAAc,SAAS;EACvB,iBAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;EAsBxB,kBAAkB,UAAU,6BAA6B;;;;;;EAMzD,mBAAmB;;EAEnB,cAAc,SAAS,eAAe;;EAEtC;;;;;;EAMA,kBAAkB,OAAO,eAAe;;;;;;;EAOxC,cAAc,QAAQ;;;;;;;;;EAStB,qBAAqB,QAAQ;;;;;;;;EAQ7B,uBAAuB,MAAM,kBAAkB,QAAQ,QAAQ;;EAE/D;;EAEA;EACA;EACA,UAAU;;;;;;EAMV,KAAK;;;;;;;EAOL,WAAW;;;;;;;;;EASX,UAAU;EACV,QAAQ,QAAQ;EAChB,eAAe;;;;;UCzVA;EACf,UAAU;EACV,YAAY;;;;;;;;;;;;;;;;;;;iBAyDE,qBACd,iBAAiB,cACjB,aAAa,KAAK,oEACjB;;;;;;;;;;;iBCtCa,iBAAiB,OAAO,wBAAwB,MAAM,IAAI"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { t as ActivityProps } from "./types-BOQd93x3.cjs";
|
|
2
|
+
import { GapSelectData } from "@intellectif/lk-core";
|
|
3
|
+
//#region src/components/GapSelect/GapSelect.d.ts
|
|
4
|
+
interface GapSelectProps extends ActivityProps<GapSelectData> {
|
|
5
|
+
/**
|
|
6
|
+
* Seeds the per-gap choice shuffle when `data.shuffleChoices` is set. Pass
|
|
7
|
+
* the attempt id, exactly as on `<MultipleChoice>`: an order nobody can
|
|
8
|
+
* reproduce cannot be reconciled with the attempt a server recorded. Without
|
|
9
|
+
* one, a random per-mount seed is used — stable within the mount, and
|
|
10
|
+
* deliberately not reproducible.
|
|
11
|
+
*/
|
|
12
|
+
shuffleSeed?: string;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/components/GapSelect/index.d.ts
|
|
16
|
+
/**
|
|
17
|
+
* Public Gap Select activity: the core wrapped in `ActivityErrorBoundary` so a
|
|
18
|
+
* render failure (including the dev schema-validation throw and the
|
|
19
|
+
* redacted-in-`practice` guard) degrades to an accessible fallback instead of
|
|
20
|
+
* crashing the host.
|
|
21
|
+
*/
|
|
22
|
+
declare function GapSelect(props: GapSelectProps): React.JSX.Element;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { GapSelectProps as n, GapSelect as t };
|
|
25
|
+
//# sourceMappingURL=index-BavVW5z5.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BavVW5z5.d.cts","names":[],"sources":["../src/components/GapSelect/GapSelect.tsx","../src/components/GapSelect/index.tsx"],"mappings":";;;UA8CiB,uBAAuB,cAAc;;;;;;;;EAQpD;;;;;;;;;;iBCxCc,UAAU,OAAO,iBAAiB,MAAM,IAAI"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { t as ActivityProps } from "./types-BOQd93x3.cjs";
|
|
2
|
+
import { FillInTheBlanksData } from "@intellectif/lk-core";
|
|
3
|
+
//#region src/components/FillInTheBlanks/FillInTheBlanks.d.ts
|
|
4
|
+
interface FillInTheBlanksProps extends ActivityProps<FillInTheBlanksData> {
|
|
5
|
+
/**
|
|
6
|
+
* After submission, replace each incorrectly-answered blank with its first
|
|
7
|
+
* accepted answer, styled distinctly. Component-specific prop: it
|
|
8
|
+
* is presentation, not activity data, and is outside the fixed Req-3.1 set.
|
|
9
|
+
*
|
|
10
|
+
* Ignored in `exam` mode — revealing the key is precisely what an exam must
|
|
11
|
+
* not do, and on a `redact()` projection there is no key to reveal. In
|
|
12
|
+
* `review` mode it applies only to blanks the supplied `outcome` marks
|
|
13
|
+
* incorrect, and only when the caller passed data that still carries the key
|
|
14
|
+
* (e.g. `redact(data, { reveal: 'after-submit' })`).
|
|
15
|
+
*/
|
|
16
|
+
showCorrectAnswers?: boolean;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/components/FillInTheBlanks/index.d.ts
|
|
20
|
+
/**
|
|
21
|
+
* Public Fill-in-the-Blanks activity: the core wrapped in
|
|
22
|
+
* `ActivityErrorBoundary` so a render failure (incl. the dev schema-validation
|
|
23
|
+
* throw) degrades to an accessible fallback instead of crashing the host.
|
|
24
|
+
*/
|
|
25
|
+
declare function FillInTheBlanks(props: FillInTheBlanksProps): React.JSX.Element;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { FillInTheBlanksProps as n, FillInTheBlanks as t };
|
|
28
|
+
//# sourceMappingURL=index-BhHv6Fiu.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BhHv6Fiu.d.cts","names":[],"sources":["../src/components/FillInTheBlanks/FillInTheBlanks.tsx","../src/components/FillInTheBlanks/index.tsx"],"mappings":";;;UAoCiB,6BAA6B,cAAc;;;;;;;;;;;;EAY1D;;;;;;;;;iBChCc,gBAAgB,OAAO,uBAAuB,MAAM,IAAI"}
|