@intellectif/lk-react 23.0.1 → 23.1.1
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 +27 -0
- package/README.md +13 -9
- 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/ReadAloud-C8RhaUqV.js.map +1 -0
- 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-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/ThemeProvider-CocC8ODJ.d.ts +62 -0
- package/dist/ThemeProvider-CocC8ODJ.d.ts.map +1 -0
- package/dist/ThemeProvider-DS4KOL86.d.cts +62 -0
- package/dist/ThemeProvider-DS4KOL86.d.cts.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 -73
- package/dist/ai/LkAiProvider.d.ts +2 -73
- package/dist/ai/LkAiProvider.js +33 -2
- package/dist/ai/LkAiProvider.js.map +1 -1
- package/dist/ai/useAiHelp.cjs +7 -23
- package/dist/ai/useAiHelp.d.cts +198 -121
- package/dist/ai/useAiHelp.d.cts.map +1 -0
- package/dist/ai/useAiHelp.d.ts +198 -121
- package/dist/ai/useAiHelp.d.ts.map +1 -0
- package/dist/ai/useAiHelp.js +3 -6
- package/dist/components/ActivityPreview.cjs +3 -31
- package/dist/components/ActivityPreview.d.cts +2 -81
- package/dist/components/ActivityPreview.d.ts +2 -81
- package/dist/components/ActivityPreview.js +2 -22
- package/dist/components/ActivitySequence.cjs +3 -32
- package/dist/components/ActivitySequence.d.cts +2 -432
- package/dist/components/ActivitySequence.d.ts +2 -432
- package/dist/components/ActivitySequence.js +2 -23
- package/dist/components/Dictation.cjs +4 -23
- package/dist/components/Dictation.d.cts +2 -19
- package/dist/components/Dictation.d.ts +2 -19
- package/dist/components/Dictation.js +3 -14
- package/dist/components/FillInTheBlanks.cjs +4 -22
- package/dist/components/FillInTheBlanks.d.cts +2 -30
- package/dist/components/FillInTheBlanks.d.ts +2 -30
- package/dist/components/FillInTheBlanks.js +3 -13
- package/dist/components/GapSelect.cjs +4 -22
- package/dist/components/GapSelect.d.cts +2 -27
- package/dist/components/GapSelect.d.ts +2 -27
- package/dist/components/GapSelect.js +3 -13
- package/dist/components/InteractiveVideo.cjs +5 -34
- package/dist/components/InteractiveVideo.d.cts +3 -291
- package/dist/components/InteractiveVideo.d.ts +3 -291
- package/dist/components/InteractiveVideo.js +3 -21
- package/dist/components/MultipleChoice.cjs +4 -22
- package/dist/components/MultipleChoice.d.cts +2 -26
- package/dist/components/MultipleChoice.d.ts +2 -26
- package/dist/components/MultipleChoice.js +3 -13
- package/dist/components/PronunciationFeedback.cjs +4 -16
- package/dist/components/PronunciationFeedback.d.cts +2 -69
- package/dist/components/PronunciationFeedback.d.ts +2 -69
- package/dist/components/PronunciationFeedback.js +3 -7
- 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 -21
- package/dist/components/WrittenResponse.d.cts +3 -18
- package/dist/components/WrittenResponse.d.ts +3 -18
- package/dist/components/WrittenResponse.js +3 -12
- 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-2iDJohip.d.cts +90 -0
- package/dist/index-2iDJohip.d.cts.map +1 -0
- package/dist/index-BAqT5tXN.d.ts +90 -0
- package/dist/index-BAqT5tXN.d.ts.map +1 -0
- package/dist/index-BRbEfXgE.d.ts +78 -0
- package/dist/index-BRbEfXgE.d.ts.map +1 -0
- package/dist/index-BW7aA5eN.d.cts +25 -0
- package/dist/index-BW7aA5eN.d.cts.map +1 -0
- package/dist/index-BeiVd-qe.d.ts +124 -0
- package/dist/index-BeiVd-qe.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-C7cCHEze.d.cts +24 -0
- package/dist/index-C7cCHEze.d.cts.map +1 -0
- package/dist/index-CKTpYTCC.d.cts +49 -0
- package/dist/index-CKTpYTCC.d.cts.map +1 -0
- package/dist/index-CN3_TwDL.d.ts +28 -0
- package/dist/index-CN3_TwDL.d.ts.map +1 -0
- package/dist/index-CNoAqj5I.d.ts +16 -0
- package/dist/index-CNoAqj5I.d.ts.map +1 -0
- package/dist/index-CTlht6OV.d.cts +432 -0
- package/dist/index-CTlht6OV.d.cts.map +1 -0
- package/dist/index-CmgSzapt.d.cts +124 -0
- package/dist/index-CmgSzapt.d.cts.map +1 -0
- package/dist/index-D4WYDN_p.d.cts +28 -0
- package/dist/index-D4WYDN_p.d.cts.map +1 -0
- package/dist/index-DAJ6KK49.d.ts +25 -0
- package/dist/index-DAJ6KK49.d.ts.map +1 -0
- package/dist/index-DIiacP_z.d.cts +78 -0
- package/dist/index-DIiacP_z.d.cts.map +1 -0
- package/dist/index-DR0SOJig.d.ts +291 -0
- package/dist/index-DR0SOJig.d.ts.map +1 -0
- package/dist/index-DRMauOVH.d.ts +432 -0
- package/dist/index-DRMauOVH.d.ts.map +1 -0
- package/dist/index-bmmRfGad.d.cts +16 -0
- package/dist/index-bmmRfGad.d.cts.map +1 -0
- package/dist/index-n9PKZm7W.d.cts +291 -0
- package/dist/index-n9PKZm7W.d.cts.map +1 -0
- package/dist/index-zu9H7owf.d.ts +24 -0
- package/dist/index-zu9H7owf.d.ts.map +1 -0
- package/dist/index.cjs +118 -161
- 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 -31
- 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/theme/skin.css +46 -1
- package/dist/tries-CbbtZkdG.cjs +363 -0
- package/dist/{chunk-W6UMY7PF.cjs.map → tries-CbbtZkdG.cjs.map} +1 -1
- 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-CgRrjM4S.d.ts +0 -115
- package/dist/WrittenResponse-D2K1VW_V.d.cts +0 -115
- package/dist/ai/useAiHelp.cjs.map +0 -1
- package/dist/ai/useAiHelp.js.map +0 -1
- package/dist/chunk-2OP5YHRR.js +0 -543
- package/dist/chunk-2OP5YHRR.js.map +0 -1
- package/dist/chunk-2TW6WLBC.js +0 -80
- package/dist/chunk-2TW6WLBC.js.map +0 -1
- package/dist/chunk-4MXECBZT.js +0 -888
- package/dist/chunk-4MXECBZT.js.map +0 -1
- package/dist/chunk-54DX6SLS.cjs +0 -42
- package/dist/chunk-54DX6SLS.cjs.map +0 -1
- package/dist/chunk-6GQLCCGN.js +0 -858
- package/dist/chunk-6GQLCCGN.js.map +0 -1
- package/dist/chunk-6N43WDVG.js +0 -29
- package/dist/chunk-6N43WDVG.js.map +0 -1
- package/dist/chunk-6RIM5EQP.cjs +0 -393
- package/dist/chunk-6RIM5EQP.cjs.map +0 -1
- package/dist/chunk-7F2YQWMW.cjs +0 -553
- package/dist/chunk-7F2YQWMW.cjs.map +0 -1
- package/dist/chunk-B4JRBV56.cjs +0 -63
- package/dist/chunk-B4JRBV56.cjs.map +0 -1
- package/dist/chunk-B7JU52YQ.cjs +0 -437
- package/dist/chunk-B7JU52YQ.cjs.map +0 -1
- package/dist/chunk-C4PSJ3ZC.js +0 -329
- package/dist/chunk-C4PSJ3ZC.js.map +0 -1
- package/dist/chunk-CXIP7ERK.js +0 -389
- package/dist/chunk-CXIP7ERK.js.map +0 -1
- package/dist/chunk-DPNCCWOV.js +0 -395
- package/dist/chunk-DPNCCWOV.js.map +0 -1
- package/dist/chunk-DXFCYNST.js +0 -35
- package/dist/chunk-DXFCYNST.js.map +0 -1
- package/dist/chunk-DZ7VLLDQ.cjs +0 -891
- package/dist/chunk-DZ7VLLDQ.cjs.map +0 -1
- package/dist/chunk-E4UF4XZM.js +0 -29
- package/dist/chunk-E4UF4XZM.js.map +0 -1
- package/dist/chunk-ERV666AR.js +0 -435
- package/dist/chunk-ERV666AR.js.map +0 -1
- package/dist/chunk-FISEZBLF.cjs +0 -31
- package/dist/chunk-FISEZBLF.cjs.map +0 -1
- package/dist/chunk-HYOUMTPW.js +0 -597
- package/dist/chunk-HYOUMTPW.js.map +0 -1
- package/dist/chunk-HZIT24BK.js +0 -61
- package/dist/chunk-HZIT24BK.js.map +0 -1
- package/dist/chunk-IYGF7PZY.cjs +0 -2938
- package/dist/chunk-IYGF7PZY.cjs.map +0 -1
- package/dist/chunk-J2QIHZ3H.cjs +0 -27
- package/dist/chunk-J2QIHZ3H.cjs.map +0 -1
- package/dist/chunk-JMEZYYCE.js +0 -2935
- package/dist/chunk-JMEZYYCE.js.map +0 -1
- package/dist/chunk-K63VPFOV.cjs +0 -134
- package/dist/chunk-K63VPFOV.cjs.map +0 -1
- package/dist/chunk-KI6DJ5ZF.js +0 -495
- package/dist/chunk-KI6DJ5ZF.js.map +0 -1
- package/dist/chunk-MCO52PV5.js +0 -520
- package/dist/chunk-MCO52PV5.js.map +0 -1
- package/dist/chunk-MXZHL4U5.cjs +0 -860
- package/dist/chunk-MXZHL4U5.cjs.map +0 -1
- package/dist/chunk-NFGUJ52G.cjs +0 -336
- package/dist/chunk-NFGUJ52G.cjs.map +0 -1
- package/dist/chunk-O7MINPKZ.js +0 -431
- package/dist/chunk-O7MINPKZ.js.map +0 -1
- package/dist/chunk-OD65OZIW.cjs +0 -159
- package/dist/chunk-OD65OZIW.cjs.map +0 -1
- package/dist/chunk-OJGTJOWI.cjs +0 -20
- package/dist/chunk-OJGTJOWI.cjs.map +0 -1
- package/dist/chunk-PGAPZ6UE.cjs +0 -497
- package/dist/chunk-PGAPZ6UE.cjs.map +0 -1
- package/dist/chunk-PNNUPUH4.cjs +0 -82
- package/dist/chunk-PNNUPUH4.cjs.map +0 -1
- package/dist/chunk-QAZO3ANW.cjs +0 -433
- package/dist/chunk-QAZO3ANW.cjs.map +0 -1
- package/dist/chunk-RX3A6KIY.js +0 -17
- package/dist/chunk-RX3A6KIY.js.map +0 -1
- package/dist/chunk-SHDSOOBF.cjs +0 -826
- package/dist/chunk-SHDSOOBF.cjs.map +0 -1
- package/dist/chunk-SPSKDNEE.js +0 -824
- package/dist/chunk-SPSKDNEE.js.map +0 -1
- package/dist/chunk-TGTP5DKF.js +0 -234
- package/dist/chunk-TGTP5DKF.js.map +0 -1
- package/dist/chunk-U4KTOH7C.js +0 -22
- package/dist/chunk-U4KTOH7C.js.map +0 -1
- package/dist/chunk-U5VFJVQ2.js +0 -241
- package/dist/chunk-U5VFJVQ2.js.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-UKUHVCZX.cjs +0 -599
- package/dist/chunk-UKUHVCZX.cjs.map +0 -1
- package/dist/chunk-VPU6UY4O.cjs +0 -55
- package/dist/chunk-VPU6UY4O.cjs.map +0 -1
- package/dist/chunk-W6UMY7PF.cjs +0 -251
- package/dist/chunk-WZ2TBXVB.cjs +0 -236
- package/dist/chunk-WZ2TBXVB.cjs.map +0 -1
- package/dist/chunk-XOR4MPEN.cjs +0 -31
- package/dist/chunk-XOR4MPEN.cjs.map +0 -1
- package/dist/chunk-XS6OYYVR.cjs +0 -397
- package/dist/chunk-XS6OYYVR.cjs.map +0 -1
- package/dist/chunk-XYJBRKBZ.js +0 -51
- package/dist/chunk-XYJBRKBZ.js.map +0 -1
- package/dist/chunk-YORQQXGO.js +0 -155
- package/dist/chunk-YORQQXGO.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-CO0XLEN6.d.cts +0 -973
- package/dist/types-CrtIcRcK.d.ts +0 -973
package/dist/chunk-UHKZXOXD.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { createContext, useSyncExternalStore, useMemo, useContext } from 'react';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
// src/theme/ThemeProvider.tsx
|
|
6
|
-
|
|
7
|
-
// src/theme/dark-theme.ts
|
|
8
|
-
var darkTheme = {
|
|
9
|
-
"--lk-color-primary": "#fafafa",
|
|
10
|
-
"--lk-color-primary-hover": "#e4e4e7",
|
|
11
|
-
"--lk-color-surface": "#09090b",
|
|
12
|
-
"--lk-color-surface-raised": "#18181b",
|
|
13
|
-
"--lk-color-border": "#27272a",
|
|
14
|
-
"--lk-color-text": "#fafafa",
|
|
15
|
-
"--lk-color-text-muted": "#a1a1aa",
|
|
16
|
-
"--lk-color-success": "#4ade80",
|
|
17
|
-
"--lk-color-error": "#f87171",
|
|
18
|
-
"--lk-color-warning": "#fbbf24",
|
|
19
|
-
"--lk-color-focus-ring": "#fafafa"
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// src/theme/tokens.ts
|
|
23
|
-
var defaultTheme = {
|
|
24
|
-
// ── Colours (light) — neutral monochrome; semantic success/error/warning
|
|
25
|
-
// retained for status legibility ────────────────────────────────────────
|
|
26
|
-
"--lk-color-primary": "#18181b",
|
|
27
|
-
"--lk-color-primary-hover": "#27272a",
|
|
28
|
-
"--lk-color-surface": "#ffffff",
|
|
29
|
-
"--lk-color-surface-raised": "#fafafa",
|
|
30
|
-
"--lk-color-border": "#e4e4e7",
|
|
31
|
-
"--lk-color-text": "#18181b",
|
|
32
|
-
"--lk-color-text-muted": "#52525b",
|
|
33
|
-
"--lk-color-success": "#15803d",
|
|
34
|
-
"--lk-color-error": "#b91c1c",
|
|
35
|
-
"--lk-color-warning": "#b45309",
|
|
36
|
-
"--lk-color-focus-ring": "#18181b",
|
|
37
|
-
"--lk-color-media-accent": "#ffffff",
|
|
38
|
-
// An interactive video's two caption lines. The second is warm yellow, the
|
|
39
|
-
// convention for a second subtitle line, and clears 4.5:1 on the caption box
|
|
40
|
-
// whatever the video shows through it (see contrast.test.ts).
|
|
41
|
-
"--lk-iv-caption-color": "#ffffff",
|
|
42
|
-
"--lk-iv-caption-secondary-color": "#ffe066",
|
|
43
|
-
"--lk-iv-caption-secondary-scale": "0.85",
|
|
44
|
-
"--lk-iv-caption-gap": "0.25em",
|
|
45
|
-
// ── Spacing ──────────────────────────────────────────────────────────────
|
|
46
|
-
"--lk-spacing-xs": "4px",
|
|
47
|
-
"--lk-spacing-sm": "8px",
|
|
48
|
-
"--lk-spacing-md": "16px",
|
|
49
|
-
"--lk-spacing-lg": "24px",
|
|
50
|
-
"--lk-spacing-xl": "32px",
|
|
51
|
-
// ── Typography ───────────────────────────────────────────────────────────
|
|
52
|
-
"--lk-font-family-base": 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
|
|
53
|
-
"--lk-font-size-sm": "0.875rem",
|
|
54
|
-
"--lk-font-size-base": "1rem",
|
|
55
|
-
"--lk-font-size-lg": "1.125rem",
|
|
56
|
-
"--lk-font-weight-normal": "400",
|
|
57
|
-
"--lk-font-weight-bold": "700",
|
|
58
|
-
"--lk-line-height-base": "1.5",
|
|
59
|
-
// ── Shape ────────────────────────────────────────────────────────────────
|
|
60
|
-
"--lk-radius-sm": "0.25rem",
|
|
61
|
-
"--lk-radius-base": "0.5rem",
|
|
62
|
-
"--lk-radius-lg": "0.75rem",
|
|
63
|
-
// ── Motion ───────────────────────────────────────────────────────────────
|
|
64
|
-
"--lk-transition-fast": "150ms ease",
|
|
65
|
-
"--lk-transition-base": "250ms ease"
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/theme/tailwind.ts
|
|
69
|
-
var BUCKETS = [
|
|
70
|
-
["--lk-color-", "colors"],
|
|
71
|
-
["--lk-spacing-", "spacing"],
|
|
72
|
-
["--lk-radius-", "borderRadius"],
|
|
73
|
-
["--lk-font-family-", "fontFamily"],
|
|
74
|
-
["--lk-font-size-", "fontSize"]
|
|
75
|
-
];
|
|
76
|
-
function createTailwindTheme(theme) {
|
|
77
|
-
const merged = { ...defaultTheme, ...theme };
|
|
78
|
-
const extension = {
|
|
79
|
-
colors: {},
|
|
80
|
-
spacing: {},
|
|
81
|
-
borderRadius: {},
|
|
82
|
-
fontFamily: {},
|
|
83
|
-
fontSize: {}
|
|
84
|
-
};
|
|
85
|
-
for (const [tokenName, fallback] of Object.entries(merged)) {
|
|
86
|
-
for (const [prefix, bucket] of BUCKETS) {
|
|
87
|
-
if (tokenName.startsWith(prefix)) {
|
|
88
|
-
extension[bucket][`lk-${tokenName.slice(prefix.length)}`] = `var(${tokenName}, ${fallback})`;
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return extension;
|
|
94
|
-
}
|
|
95
|
-
var ThemeContext = createContext(defaultTheme);
|
|
96
|
-
var DARK_QUERY = "(prefers-color-scheme: dark)";
|
|
97
|
-
function subscribePrefersDark(onChange) {
|
|
98
|
-
if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
|
|
99
|
-
return () => {
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
const mql = window.matchMedia(DARK_QUERY);
|
|
103
|
-
mql.addEventListener("change", onChange);
|
|
104
|
-
return () => mql.removeEventListener("change", onChange);
|
|
105
|
-
}
|
|
106
|
-
function getPrefersDark() {
|
|
107
|
-
if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
return window.matchMedia(DARK_QUERY).matches;
|
|
111
|
-
}
|
|
112
|
-
function ThemeProvider({ theme, children }) {
|
|
113
|
-
const prefersDark = useSyncExternalStore(subscribePrefersDark, getPrefersDark, () => false);
|
|
114
|
-
const activeTheme = useMemo(() => {
|
|
115
|
-
if (theme !== void 0) {
|
|
116
|
-
return { ...defaultTheme, ...theme };
|
|
117
|
-
}
|
|
118
|
-
return prefersDark ? { ...defaultTheme, ...darkTheme } : defaultTheme;
|
|
119
|
-
}, [theme, prefersDark]);
|
|
120
|
-
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: activeTheme, children: /* @__PURE__ */ jsx("div", { style: activeTheme, children }) });
|
|
121
|
-
}
|
|
122
|
-
function useTheme() {
|
|
123
|
-
return useContext(ThemeContext);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export { ThemeProvider, createTailwindTheme, darkTheme, defaultTheme, useTheme };
|
|
127
|
-
//# sourceMappingURL=chunk-UHKZXOXD.js.map
|
|
128
|
-
//# sourceMappingURL=chunk-UHKZXOXD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/dark-theme.ts","../src/theme/tokens.ts","../src/theme/tailwind.ts","../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"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","file":"chunk-UHKZXOXD.js","sourcesContent":["import type { ThemeTokens } from '@intellectif/lk-core';\n\n/**\n * Dark-mode colour overrides, merged over {@link defaultTheme} by\n * `ThemeProvider`. Colours only — spacing/typography/shape/motion are\n * theme-invariant. All pairs verified WCAG 2.2 AA against the dark surface.\n */\nexport const darkTheme: Partial<ThemeTokens> = {\n '--lk-color-primary': '#fafafa',\n '--lk-color-primary-hover': '#e4e4e7',\n '--lk-color-surface': '#09090b',\n '--lk-color-surface-raised': '#18181b',\n '--lk-color-border': '#27272a',\n '--lk-color-text': '#fafafa',\n '--lk-color-text-muted': '#a1a1aa',\n '--lk-color-success': '#4ade80',\n '--lk-color-error': '#f87171',\n '--lk-color-warning': '#fbbf24',\n '--lk-color-focus-ring': '#fafafa',\n};\n","import type { ThemeTokens } from '@intellectif/lk-core';\n\n/**\n * Canonical default theme token values. `defaults.css` mirrors these exactly.\n * Palette is a neutral monochrome, deliberately unbranded, so the SDK carries\n * nobody's look out of the box; consumers rebrand via `ThemeProvider`. All\n * colour pairs are verified to meet WCAG 2.2 AA: 4.5:1 for normal text, 3:1 for\n * UI / focus ring (see theme/__tests__/contrast.test.ts).\n */\nexport const defaultTheme: ThemeTokens = {\n // ── Colours (light) — neutral monochrome; semantic success/error/warning\n // retained for status legibility ────────────────────────────────────────\n '--lk-color-primary': '#18181b',\n '--lk-color-primary-hover': '#27272a',\n '--lk-color-surface': '#ffffff',\n '--lk-color-surface-raised': '#fafafa',\n '--lk-color-border': '#e4e4e7',\n '--lk-color-text': '#18181b',\n '--lk-color-text-muted': '#52525b',\n '--lk-color-success': '#15803d',\n '--lk-color-error': '#b91c1c',\n '--lk-color-warning': '#b45309',\n '--lk-color-focus-ring': '#18181b',\n '--lk-color-media-accent': '#ffffff',\n // An interactive video's two caption lines. The second is warm yellow, the\n // convention for a second subtitle line, and clears 4.5:1 on the caption box\n // whatever the video shows through it (see contrast.test.ts).\n '--lk-iv-caption-color': '#ffffff',\n '--lk-iv-caption-secondary-color': '#ffe066',\n '--lk-iv-caption-secondary-scale': '0.85',\n '--lk-iv-caption-gap': '0.25em',\n\n // ── Spacing ──────────────────────────────────────────────────────────────\n '--lk-spacing-xs': '4px',\n '--lk-spacing-sm': '8px',\n '--lk-spacing-md': '16px',\n '--lk-spacing-lg': '24px',\n '--lk-spacing-xl': '32px',\n\n // ── Typography ───────────────────────────────────────────────────────────\n '--lk-font-family-base':\n 'system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif',\n '--lk-font-size-sm': '0.875rem',\n '--lk-font-size-base': '1rem',\n '--lk-font-size-lg': '1.125rem',\n '--lk-font-weight-normal': '400',\n '--lk-font-weight-bold': '700',\n '--lk-line-height-base': '1.5',\n\n // ── Shape ────────────────────────────────────────────────────────────────\n '--lk-radius-sm': '0.25rem',\n '--lk-radius-base': '0.5rem',\n '--lk-radius-lg': '0.75rem',\n\n // ── Motion ───────────────────────────────────────────────────────────────\n '--lk-transition-fast': '150ms ease',\n '--lk-transition-base': '250ms ease',\n};\n","import type { ThemeTokens } from '@intellectif/lk-core';\nimport { defaultTheme } from './tokens.js';\n\n/**\n * Shape consumed by a Tailwind config's `theme.extend`. Every entry is a\n * `var(--lk-token, <fallback>)` reference: the var keeps utilities live\n * (ThemeProvider / dark-mode override at runtime); the fallback makes them\n * work with zero setup (no provider, no `defaults.css` import).\n */\nexport interface TailwindThemeExtension {\n colors: Record<string, string>;\n spacing: Record<string, string>;\n borderRadius: Record<string, string>;\n fontFamily: Record<string, string>;\n fontSize: Record<string, string>;\n}\n\n/**\n * Token-prefix → Tailwind bucket. `--lk-font-weight-*`, `--lk-line-height-*`\n * and `--lk-transition-*` are intentionally absent: the first two have no\n * matching `theme.extend` group here, and the transition tokens hold a\n * `<duration> <easing>` shorthand that would emit invalid\n * `transition-duration: 150ms ease` if mapped to Tailwind's `transitionDuration`.\n */\nconst BUCKETS = [\n ['--lk-color-', 'colors'],\n ['--lk-spacing-', 'spacing'],\n ['--lk-radius-', 'borderRadius'],\n ['--lk-font-family-', 'fontFamily'],\n ['--lk-font-size-', 'fontSize'],\n] as const;\n\n/**\n * Converts SDK theme tokens into a Tailwind `theme.extend` object so Tailwind\n * projects consume the same `--lk-*` tokens as the components — one shared\n * source of truth rather than a parallel, conflicting palette.\n */\nexport function createTailwindTheme(theme: Partial<ThemeTokens>): TailwindThemeExtension {\n const merged: Record<string, string> = { ...defaultTheme, ...theme };\n const extension: TailwindThemeExtension = {\n colors: {},\n spacing: {},\n borderRadius: {},\n fontFamily: {},\n fontSize: {},\n };\n\n for (const [tokenName, fallback] of Object.entries(merged)) {\n for (const [prefix, bucket] of BUCKETS) {\n if (tokenName.startsWith(prefix)) {\n extension[bucket][`lk-${tokenName.slice(prefix.length)}`] =\n `var(${tokenName}, ${fallback})`;\n break;\n }\n }\n }\n\n return extension;\n}\n","'use client';\n\nimport type { ThemeTokens } from '@intellectif/lk-core';\nimport {\n type CSSProperties,\n createContext,\n type ReactNode,\n useContext,\n useMemo,\n useSyncExternalStore,\n} from 'react';\nimport { darkTheme } from './dark-theme.js';\nimport { defaultTheme } from './tokens.js';\n\nexport { darkTheme } from './dark-theme.js';\nexport { createTailwindTheme, type TailwindThemeExtension } from './tailwind.js';\nexport { defaultTheme } from './tokens.js';\n\nconst ThemeContext = createContext<ThemeTokens>(defaultTheme);\n\nconst DARK_QUERY = '(prefers-color-scheme: dark)';\n\n/** Subscribe to OS dark-mode changes; no-op when there is no `window`. */\nfunction subscribePrefersDark(onChange: () => void): () => void {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return () => {};\n }\n const mql = window.matchMedia(DARK_QUERY);\n mql.addEventListener('change', onChange);\n return () => mql.removeEventListener('change', onChange);\n}\n\n/** Current OS dark-mode preference; `false` when there is no `window`. */\nfunction getPrefersDark(): boolean {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return false;\n }\n return window.matchMedia(DARK_QUERY).matches;\n}\n\nexport interface ThemeProviderProps {\n /** Partial token overrides. When provided, dark auto-detection is disabled. */\n theme?: Partial<ThemeTokens>;\n children: ReactNode;\n}\n\n/**\n * Provides theme tokens to descendant activity components as scoped inline CSS\n * custom properties on a wrapper `<div>`, and via {@link useTheme}.\n *\n * Resolution: an explicit `theme` prop merges over {@link defaultTheme} (and\n * suppresses dark auto-detect, per Req 13.5). With no `theme` prop, the OS\n * `prefers-color-scheme: dark` preference auto-applies {@link darkTheme}.\n * SSR-safe: the server snapshot is always light, so hydration never mismatches.\n */\nexport function ThemeProvider({ theme, children }: ThemeProviderProps) {\n const prefersDark = useSyncExternalStore(subscribePrefersDark, getPrefersDark, () => false);\n\n const activeTheme = useMemo<ThemeTokens>(() => {\n if (theme !== undefined) {\n return { ...defaultTheme, ...theme };\n }\n return prefersDark ? { ...defaultTheme, ...darkTheme } : defaultTheme;\n }, [theme, prefersDark]);\n\n return (\n <ThemeContext.Provider value={activeTheme}>\n <div style={activeTheme as CSSProperties}>{children}</div>\n </ThemeContext.Provider>\n );\n}\n\n/** Returns the currently active theme tokens (defaults when no provider). */\nexport function useTheme(): ThemeTokens {\n return useContext(ThemeContext);\n}\n"]}
|