@intellectif/lk-react 23.1.0 → 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.
Files changed (360) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +9 -5
  3. package/dist/ActivityErrorBoundary-B379hvtL.cjs +39 -0
  4. package/dist/ActivityErrorBoundary-B379hvtL.cjs.map +1 -0
  5. package/dist/ActivityErrorBoundary-Dw6SbWv3.js +34 -0
  6. package/dist/ActivityErrorBoundary-Dw6SbWv3.js.map +1 -0
  7. package/dist/ActivityMedia-CQQTRNl7.cjs +641 -0
  8. package/dist/ActivityMedia-CQQTRNl7.cjs.map +1 -0
  9. package/dist/ActivityMedia-vDiP-Psa.js +636 -0
  10. package/dist/ActivityMedia-vDiP-Psa.js.map +1 -0
  11. package/dist/ActivityPreview-1hhTkYuj.js +240 -0
  12. package/dist/ActivityPreview-1hhTkYuj.js.map +1 -0
  13. package/dist/ActivityPreview-BKr34exz.cjs +245 -0
  14. package/dist/ActivityPreview-BKr34exz.cjs.map +1 -0
  15. package/dist/ActivitySequence-CkX87pfB.js +839 -0
  16. package/dist/ActivitySequence-CkX87pfB.js.map +1 -0
  17. package/dist/ActivitySequence-CmoSyDnp.cjs +844 -0
  18. package/dist/ActivitySequence-CmoSyDnp.cjs.map +1 -0
  19. package/dist/Dictation-BlxRp-3k.js +926 -0
  20. package/dist/Dictation-BlxRp-3k.js.map +1 -0
  21. package/dist/Dictation-jECzL88E.cjs +931 -0
  22. package/dist/Dictation-jECzL88E.cjs.map +1 -0
  23. package/dist/FeedbackRegion-BNNMtTY-.cjs +108 -0
  24. package/dist/FeedbackRegion-BNNMtTY-.cjs.map +1 -0
  25. package/dist/FeedbackRegion-CyPSp8bA.js +85 -0
  26. package/dist/FeedbackRegion-CyPSp8bA.js.map +1 -0
  27. package/dist/FillInTheBlanks-B6xzqYXx.js +474 -0
  28. package/dist/FillInTheBlanks-B6xzqYXx.js.map +1 -0
  29. package/dist/FillInTheBlanks-BpKhdHg2.cjs +479 -0
  30. package/dist/FillInTheBlanks-BpKhdHg2.cjs.map +1 -0
  31. package/dist/GapSelect-DUSiaEQH.js +441 -0
  32. package/dist/GapSelect-DUSiaEQH.js.map +1 -0
  33. package/dist/GapSelect-payTq_Zn.cjs +446 -0
  34. package/dist/GapSelect-payTq_Zn.cjs.map +1 -0
  35. package/dist/InteractiveVideo-BguGv-HA.cjs +2955 -0
  36. package/dist/InteractiveVideo-BguGv-HA.cjs.map +1 -0
  37. package/dist/InteractiveVideo-Cg2jbU3j.js +2944 -0
  38. package/dist/InteractiveVideo-Cg2jbU3j.js.map +1 -0
  39. package/dist/LkAiProvider-DAPpA3PQ.d.cts +84 -0
  40. package/dist/LkAiProvider-DAPpA3PQ.d.cts.map +1 -0
  41. package/dist/LkAiProvider-QdEcIhoo.d.ts +84 -0
  42. package/dist/LkAiProvider-QdEcIhoo.d.ts.map +1 -0
  43. package/dist/LkIntlProvider-D_FdYXjQ.js +375 -0
  44. package/dist/LkIntlProvider-D_FdYXjQ.js.map +1 -0
  45. package/dist/LkIntlProvider-oi57lYB0.cjs +410 -0
  46. package/dist/LkIntlProvider-oi57lYB0.cjs.map +1 -0
  47. package/dist/MultipleChoice-COn5MtKY.cjs +433 -0
  48. package/dist/MultipleChoice-COn5MtKY.cjs.map +1 -0
  49. package/dist/MultipleChoice-Dra0_KYD.js +428 -0
  50. package/dist/MultipleChoice-Dra0_KYD.js.map +1 -0
  51. package/dist/PronunciationFeedback-DlMPGjkR.cjs +831 -0
  52. package/dist/PronunciationFeedback-DlMPGjkR.cjs.map +1 -0
  53. package/dist/PronunciationFeedback-Dxd6XPkO.js +772 -0
  54. package/dist/PronunciationFeedback-Dxd6XPkO.js.map +1 -0
  55. package/dist/ReadAloud-C8RhaUqV.js +1092 -0
  56. package/dist/{chunk-DC4CQCK5.js.map → ReadAloud-C8RhaUqV.js.map} +1 -1
  57. package/dist/ReadAloud-akDehitT.cjs +1103 -0
  58. package/dist/ReadAloud-akDehitT.cjs.map +1 -0
  59. package/dist/StimulusPanel-BgzByfkb.js +74 -0
  60. package/dist/StimulusPanel-BgzByfkb.js.map +1 -0
  61. package/dist/StimulusPanel-b66gaN3i.cjs +79 -0
  62. package/dist/StimulusPanel-b66gaN3i.cjs.map +1 -0
  63. package/dist/ThemeProvider-BRN1tj4n.cjs +187 -0
  64. package/dist/ThemeProvider-BRN1tj4n.cjs.map +1 -0
  65. package/dist/ThemeProvider-C7K9iMLX.js +158 -0
  66. package/dist/ThemeProvider-C7K9iMLX.js.map +1 -0
  67. package/dist/ThemeProvider-CocC8ODJ.d.ts +62 -0
  68. package/dist/ThemeProvider-CocC8ODJ.d.ts.map +1 -0
  69. package/dist/ThemeProvider-DS4KOL86.d.cts +62 -0
  70. package/dist/ThemeProvider-DS4KOL86.d.cts.map +1 -0
  71. package/dist/WrittenResponse-Bj3eFmGl.cjs +491 -0
  72. package/dist/WrittenResponse-Bj3eFmGl.cjs.map +1 -0
  73. package/dist/WrittenResponse-Cl8G6nO_.js +486 -0
  74. package/dist/WrittenResponse-Cl8G6nO_.js.map +1 -0
  75. package/dist/ai/LkAiProvider.cjs +34 -14
  76. package/dist/ai/LkAiProvider.cjs.map +1 -1
  77. package/dist/ai/LkAiProvider.d.cts +2 -83
  78. package/dist/ai/LkAiProvider.d.ts +2 -83
  79. package/dist/ai/LkAiProvider.js +33 -2
  80. package/dist/ai/LkAiProvider.js.map +1 -1
  81. package/dist/ai/useAiHelp.cjs +7 -25
  82. package/dist/ai/useAiHelp.d.cts +175 -177
  83. package/dist/ai/useAiHelp.d.cts.map +1 -0
  84. package/dist/ai/useAiHelp.d.ts +175 -177
  85. package/dist/ai/useAiHelp.d.ts.map +1 -0
  86. package/dist/ai/useAiHelp.js +3 -4
  87. package/dist/components/ActivityPreview.cjs +3 -29
  88. package/dist/components/ActivityPreview.d.cts +2 -81
  89. package/dist/components/ActivityPreview.d.ts +2 -81
  90. package/dist/components/ActivityPreview.js +2 -20
  91. package/dist/components/ActivitySequence.cjs +3 -30
  92. package/dist/components/ActivitySequence.d.cts +2 -432
  93. package/dist/components/ActivitySequence.d.ts +2 -432
  94. package/dist/components/ActivitySequence.js +2 -21
  95. package/dist/components/Dictation.cjs +4 -21
  96. package/dist/components/Dictation.d.cts +2 -19
  97. package/dist/components/Dictation.d.ts +2 -19
  98. package/dist/components/Dictation.js +3 -12
  99. package/dist/components/FillInTheBlanks.cjs +4 -20
  100. package/dist/components/FillInTheBlanks.d.cts +2 -30
  101. package/dist/components/FillInTheBlanks.d.ts +2 -30
  102. package/dist/components/FillInTheBlanks.js +3 -11
  103. package/dist/components/GapSelect.cjs +4 -20
  104. package/dist/components/GapSelect.d.cts +2 -27
  105. package/dist/components/GapSelect.d.ts +2 -27
  106. package/dist/components/GapSelect.js +3 -11
  107. package/dist/components/InteractiveVideo.cjs +5 -32
  108. package/dist/components/InteractiveVideo.d.cts +3 -291
  109. package/dist/components/InteractiveVideo.d.ts +3 -291
  110. package/dist/components/InteractiveVideo.js +3 -19
  111. package/dist/components/MultipleChoice.cjs +4 -20
  112. package/dist/components/MultipleChoice.d.cts +2 -26
  113. package/dist/components/MultipleChoice.d.ts +2 -26
  114. package/dist/components/MultipleChoice.js +3 -11
  115. package/dist/components/PronunciationFeedback.cjs +4 -17
  116. package/dist/components/PronunciationFeedback.d.cts +2 -90
  117. package/dist/components/PronunciationFeedback.d.ts +2 -90
  118. package/dist/components/PronunciationFeedback.js +3 -8
  119. package/dist/components/ReadAloud.cjs +4 -22
  120. package/dist/components/ReadAloud.d.cts +7 -11
  121. package/dist/components/ReadAloud.d.cts.map +1 -0
  122. package/dist/components/ReadAloud.d.ts +7 -11
  123. package/dist/components/ReadAloud.d.ts.map +1 -0
  124. package/dist/components/ReadAloud.js +3 -13
  125. package/dist/components/StimulusPanel.cjs +3 -14
  126. package/dist/components/StimulusPanel.d.cts +2 -51
  127. package/dist/components/StimulusPanel.d.ts +2 -51
  128. package/dist/components/StimulusPanel.js +2 -5
  129. package/dist/components/WrittenResponse.cjs +4 -19
  130. package/dist/components/WrittenResponse.d.cts +3 -18
  131. package/dist/components/WrittenResponse.d.ts +3 -18
  132. package/dist/components/WrittenResponse.js +3 -10
  133. package/dist/direction-Dq0_HtA5.js +183 -0
  134. package/dist/direction-Dq0_HtA5.js.map +1 -0
  135. package/dist/direction-K1pj0HCA.cjs +200 -0
  136. package/dist/direction-K1pj0HCA.cjs.map +1 -0
  137. package/dist/hooks/useActivityState.cjs +28 -10
  138. package/dist/hooks/useActivityState.cjs.map +1 -1
  139. package/dist/hooks/useActivityState.d.cts +25 -24
  140. package/dist/hooks/useActivityState.d.cts.map +1 -0
  141. package/dist/hooks/useActivityState.d.ts +25 -24
  142. package/dist/hooks/useActivityState.d.ts.map +1 -0
  143. package/dist/hooks/useActivityState.js +28 -2
  144. package/dist/hooks/useActivityState.js.map +1 -1
  145. package/dist/hooks/useSpeechRecorder.cjs +5 -16
  146. package/dist/hooks/useSpeechRecorder.d.cts +2 -127
  147. package/dist/hooks/useSpeechRecorder.d.ts +2 -127
  148. package/dist/hooks/useSpeechRecorder.js +3 -3
  149. package/dist/hooks/useXAPI.cjs +126 -10
  150. package/dist/hooks/useXAPI.cjs.map +1 -1
  151. package/dist/hooks/useXAPI.d.cts +14 -14
  152. package/dist/hooks/useXAPI.d.cts.map +1 -0
  153. package/dist/hooks/useXAPI.d.ts +14 -14
  154. package/dist/hooks/useXAPI.d.ts.map +1 -0
  155. package/dist/hooks/useXAPI.js +126 -2
  156. package/dist/hooks/useXAPI.js.map +1 -1
  157. package/dist/i18n/LkIntlProvider.cjs +9 -32
  158. package/dist/i18n/LkIntlProvider.d.cts +34 -38
  159. package/dist/i18n/LkIntlProvider.d.cts.map +1 -0
  160. package/dist/i18n/LkIntlProvider.d.ts +34 -38
  161. package/dist/i18n/LkIntlProvider.d.ts.map +1 -0
  162. package/dist/i18n/LkIntlProvider.js +3 -3
  163. package/dist/index-2iDJohip.d.cts +90 -0
  164. package/dist/index-2iDJohip.d.cts.map +1 -0
  165. package/dist/index-BAqT5tXN.d.ts +90 -0
  166. package/dist/index-BAqT5tXN.d.ts.map +1 -0
  167. package/dist/index-BRbEfXgE.d.ts +78 -0
  168. package/dist/index-BRbEfXgE.d.ts.map +1 -0
  169. package/dist/index-BW7aA5eN.d.cts +25 -0
  170. package/dist/index-BW7aA5eN.d.cts.map +1 -0
  171. package/dist/index-BeiVd-qe.d.ts +124 -0
  172. package/dist/index-BeiVd-qe.d.ts.map +1 -0
  173. package/dist/index-C1KGpD1k.d.ts +49 -0
  174. package/dist/index-C1KGpD1k.d.ts.map +1 -0
  175. package/dist/index-C7cCHEze.d.cts +24 -0
  176. package/dist/index-C7cCHEze.d.cts.map +1 -0
  177. package/dist/index-CKTpYTCC.d.cts +49 -0
  178. package/dist/index-CKTpYTCC.d.cts.map +1 -0
  179. package/dist/index-CN3_TwDL.d.ts +28 -0
  180. package/dist/index-CN3_TwDL.d.ts.map +1 -0
  181. package/dist/index-CNoAqj5I.d.ts +16 -0
  182. package/dist/index-CNoAqj5I.d.ts.map +1 -0
  183. package/dist/index-CTlht6OV.d.cts +432 -0
  184. package/dist/index-CTlht6OV.d.cts.map +1 -0
  185. package/dist/index-CmgSzapt.d.cts +124 -0
  186. package/dist/index-CmgSzapt.d.cts.map +1 -0
  187. package/dist/index-D4WYDN_p.d.cts +28 -0
  188. package/dist/index-D4WYDN_p.d.cts.map +1 -0
  189. package/dist/index-DAJ6KK49.d.ts +25 -0
  190. package/dist/index-DAJ6KK49.d.ts.map +1 -0
  191. package/dist/index-DIiacP_z.d.cts +78 -0
  192. package/dist/index-DIiacP_z.d.cts.map +1 -0
  193. package/dist/index-DR0SOJig.d.ts +291 -0
  194. package/dist/index-DR0SOJig.d.ts.map +1 -0
  195. package/dist/index-DRMauOVH.d.ts +432 -0
  196. package/dist/index-DRMauOVH.d.ts.map +1 -0
  197. package/dist/index-bmmRfGad.d.cts +16 -0
  198. package/dist/index-bmmRfGad.d.cts.map +1 -0
  199. package/dist/index-n9PKZm7W.d.cts +291 -0
  200. package/dist/index-n9PKZm7W.d.cts.map +1 -0
  201. package/dist/index-zu9H7owf.d.ts +24 -0
  202. package/dist/index-zu9H7owf.d.ts.map +1 -0
  203. package/dist/index.cjs +118 -163
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +20 -24
  206. package/dist/index.d.ts +20 -24
  207. package/dist/index.js +84 -29
  208. package/dist/index.js.map +1 -1
  209. package/dist/theme/ThemeProvider.cjs +8 -28
  210. package/dist/theme/ThemeProvider.d.cts +2 -59
  211. package/dist/theme/ThemeProvider.d.ts +2 -59
  212. package/dist/theme/ThemeProvider.js +3 -3
  213. package/dist/tries-CbbtZkdG.cjs +363 -0
  214. package/dist/tries-CbbtZkdG.cjs.map +1 -0
  215. package/dist/tries-DTHSrLCm.js +310 -0
  216. package/dist/tries-DTHSrLCm.js.map +1 -0
  217. package/dist/types-BOQd93x3.d.cts +994 -0
  218. package/dist/types-BOQd93x3.d.cts.map +1 -0
  219. package/dist/types-HIrgF_mS.d.ts +994 -0
  220. package/dist/types-HIrgF_mS.d.ts.map +1 -0
  221. package/dist/useAiHelp-B-ccDL5Q.js +906 -0
  222. package/dist/useAiHelp-B-ccDL5Q.js.map +1 -0
  223. package/dist/useAiHelp-h9yOLFqt.cjs +995 -0
  224. package/dist/useAiHelp-h9yOLFqt.cjs.map +1 -0
  225. package/dist/useSpeechRecorder--O_f-xvt.cjs +720 -0
  226. package/dist/useSpeechRecorder--O_f-xvt.cjs.map +1 -0
  227. package/dist/useSpeechRecorder-DtAYvl02.d.cts +154 -0
  228. package/dist/useSpeechRecorder-DtAYvl02.d.cts.map +1 -0
  229. package/dist/useSpeechRecorder-DtAYvl02.d.ts +154 -0
  230. package/dist/useSpeechRecorder-DtAYvl02.d.ts.map +1 -0
  231. package/dist/useSpeechRecorder-zIi9Dlw8.js +709 -0
  232. package/dist/useSpeechRecorder-zIi9Dlw8.js.map +1 -0
  233. package/package.json +10 -11
  234. package/dist/WrittenResponse-B7A5gHMj.d.ts +0 -115
  235. package/dist/WrittenResponse-BpL9p2Hn.d.cts +0 -115
  236. package/dist/ai/useAiHelp.cjs.map +0 -1
  237. package/dist/ai/useAiHelp.js.map +0 -1
  238. package/dist/chunk-2PNSVBLQ.cjs +0 -54
  239. package/dist/chunk-2PNSVBLQ.cjs.map +0 -1
  240. package/dist/chunk-2TW6WLBC.js +0 -80
  241. package/dist/chunk-2TW6WLBC.js.map +0 -1
  242. package/dist/chunk-4ZZWZSWI.js +0 -61
  243. package/dist/chunk-4ZZWZSWI.js.map +0 -1
  244. package/dist/chunk-6N43WDVG.js +0 -29
  245. package/dist/chunk-6N43WDVG.js.map +0 -1
  246. package/dist/chunk-7ALBSPYR.cjs +0 -436
  247. package/dist/chunk-7ALBSPYR.cjs.map +0 -1
  248. package/dist/chunk-7NFY3M3W.js +0 -234
  249. package/dist/chunk-7NFY3M3W.js.map +0 -1
  250. package/dist/chunk-7SB2MJA4.js +0 -29
  251. package/dist/chunk-7SB2MJA4.js.map +0 -1
  252. package/dist/chunk-ABJJ3LII.js +0 -434
  253. package/dist/chunk-ABJJ3LII.js.map +0 -1
  254. package/dist/chunk-BIGGXHAW.cjs +0 -342
  255. package/dist/chunk-BIGGXHAW.cjs.map +0 -1
  256. package/dist/chunk-C7QZE5BI.js +0 -430
  257. package/dist/chunk-C7QZE5BI.js.map +0 -1
  258. package/dist/chunk-CWTUWNV3.cjs +0 -2937
  259. package/dist/chunk-CWTUWNV3.cjs.map +0 -1
  260. package/dist/chunk-DC4CQCK5.js +0 -915
  261. package/dist/chunk-DS6HN3YR.cjs +0 -496
  262. package/dist/chunk-DS6HN3YR.cjs.map +0 -1
  263. package/dist/chunk-FDQR4GAZ.js +0 -240
  264. package/dist/chunk-FDQR4GAZ.js.map +0 -1
  265. package/dist/chunk-FKGMSOJF.js +0 -394
  266. package/dist/chunk-FKGMSOJF.js.map +0 -1
  267. package/dist/chunk-G6PXJ2SA.js +0 -823
  268. package/dist/chunk-G6PXJ2SA.js.map +0 -1
  269. package/dist/chunk-HNLRVRQR.js +0 -335
  270. package/dist/chunk-HNLRVRQR.js.map +0 -1
  271. package/dist/chunk-J3C72RPK.cjs +0 -31
  272. package/dist/chunk-J3C72RPK.cjs.map +0 -1
  273. package/dist/chunk-K63VPFOV.cjs +0 -134
  274. package/dist/chunk-K63VPFOV.cjs.map +0 -1
  275. package/dist/chunk-KFLIDTDU.cjs +0 -825
  276. package/dist/chunk-KFLIDTDU.cjs.map +0 -1
  277. package/dist/chunk-KHKH5LCT.cjs +0 -250
  278. package/dist/chunk-KHKH5LCT.cjs.map +0 -1
  279. package/dist/chunk-LBEKRN6Y.cjs +0 -664
  280. package/dist/chunk-LBEKRN6Y.cjs.map +0 -1
  281. package/dist/chunk-LPUWXIPR.cjs +0 -578
  282. package/dist/chunk-LPUWXIPR.cjs.map +0 -1
  283. package/dist/chunk-MCO52PV5.js +0 -520
  284. package/dist/chunk-MCO52PV5.js.map +0 -1
  285. package/dist/chunk-MKXEM2C5.cjs +0 -396
  286. package/dist/chunk-MKXEM2C5.cjs.map +0 -1
  287. package/dist/chunk-MXNC5UNO.js +0 -563
  288. package/dist/chunk-MXNC5UNO.js.map +0 -1
  289. package/dist/chunk-NAK55BYU.cjs +0 -859
  290. package/dist/chunk-NAK55BYU.cjs.map +0 -1
  291. package/dist/chunk-NDBMKGQ5.cjs +0 -599
  292. package/dist/chunk-NDBMKGQ5.cjs.map +0 -1
  293. package/dist/chunk-OD65OZIW.cjs +0 -159
  294. package/dist/chunk-OD65OZIW.cjs.map +0 -1
  295. package/dist/chunk-ORT3KLGI.js +0 -50
  296. package/dist/chunk-ORT3KLGI.js.map +0 -1
  297. package/dist/chunk-PNNUPUH4.cjs +0 -82
  298. package/dist/chunk-PNNUPUH4.cjs.map +0 -1
  299. package/dist/chunk-PWHECW6N.js +0 -2934
  300. package/dist/chunk-PWHECW6N.js.map +0 -1
  301. package/dist/chunk-RBS5A2DF.js +0 -857
  302. package/dist/chunk-RBS5A2DF.js.map +0 -1
  303. package/dist/chunk-RPWUDXG5.cjs +0 -63
  304. package/dist/chunk-RPWUDXG5.cjs.map +0 -1
  305. package/dist/chunk-TCDJY3H6.js +0 -494
  306. package/dist/chunk-TCDJY3H6.js.map +0 -1
  307. package/dist/chunk-TP5UMRAU.cjs +0 -918
  308. package/dist/chunk-TP5UMRAU.cjs.map +0 -1
  309. package/dist/chunk-TS7J6DTY.js +0 -597
  310. package/dist/chunk-TS7J6DTY.js.map +0 -1
  311. package/dist/chunk-TUVENMXB.cjs +0 -20
  312. package/dist/chunk-TUVENMXB.cjs.map +0 -1
  313. package/dist/chunk-UDCQTOVU.cjs +0 -523
  314. package/dist/chunk-UDCQTOVU.cjs.map +0 -1
  315. package/dist/chunk-UHKZXOXD.js +0 -128
  316. package/dist/chunk-UHKZXOXD.js.map +0 -1
  317. package/dist/chunk-V6BA44DS.cjs +0 -236
  318. package/dist/chunk-V6BA44DS.cjs.map +0 -1
  319. package/dist/chunk-XO5R73Y4.js +0 -653
  320. package/dist/chunk-XO5R73Y4.js.map +0 -1
  321. package/dist/chunk-XOR4MPEN.cjs +0 -31
  322. package/dist/chunk-XOR4MPEN.cjs.map +0 -1
  323. package/dist/chunk-YORQQXGO.js +0 -155
  324. package/dist/chunk-YORQQXGO.js.map +0 -1
  325. package/dist/chunk-YY4PFR3Z.cjs +0 -432
  326. package/dist/chunk-YY4PFR3Z.cjs.map +0 -1
  327. package/dist/chunk-ZPI6Q42R.js +0 -17
  328. package/dist/chunk-ZPI6Q42R.js.map +0 -1
  329. package/dist/components/ActivityPreview.cjs.map +0 -1
  330. package/dist/components/ActivityPreview.js.map +0 -1
  331. package/dist/components/ActivitySequence.cjs.map +0 -1
  332. package/dist/components/ActivitySequence.js.map +0 -1
  333. package/dist/components/Dictation.cjs.map +0 -1
  334. package/dist/components/Dictation.js.map +0 -1
  335. package/dist/components/FillInTheBlanks.cjs.map +0 -1
  336. package/dist/components/FillInTheBlanks.js.map +0 -1
  337. package/dist/components/GapSelect.cjs.map +0 -1
  338. package/dist/components/GapSelect.js.map +0 -1
  339. package/dist/components/InteractiveVideo.cjs.map +0 -1
  340. package/dist/components/InteractiveVideo.js.map +0 -1
  341. package/dist/components/MultipleChoice.cjs.map +0 -1
  342. package/dist/components/MultipleChoice.js.map +0 -1
  343. package/dist/components/PronunciationFeedback.cjs.map +0 -1
  344. package/dist/components/PronunciationFeedback.js.map +0 -1
  345. package/dist/components/ReadAloud.cjs.map +0 -1
  346. package/dist/components/ReadAloud.js.map +0 -1
  347. package/dist/components/StimulusPanel.cjs.map +0 -1
  348. package/dist/components/StimulusPanel.js.map +0 -1
  349. package/dist/components/WrittenResponse.cjs.map +0 -1
  350. package/dist/components/WrittenResponse.js.map +0 -1
  351. package/dist/hooks/useSpeechRecorder.cjs.map +0 -1
  352. package/dist/hooks/useSpeechRecorder.js.map +0 -1
  353. package/dist/i18n/LkIntlProvider.cjs.map +0 -1
  354. package/dist/i18n/LkIntlProvider.js.map +0 -1
  355. package/dist/machine-CuwKqWXC.d.cts +0 -26
  356. package/dist/machine-CuwKqWXC.d.ts +0 -26
  357. package/dist/theme/ThemeProvider.cjs.map +0 -1
  358. package/dist/theme/ThemeProvider.js.map +0 -1
  359. package/dist/types-C4IsUQsK.d.ts +0 -989
  360. package/dist/types-CJgZWtl4.d.cts +0 -989
@@ -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): import("react/jsx-runtime").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-n9PKZm7W.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-n9PKZm7W.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,oDAAqB,IAAA"}
@@ -0,0 +1,24 @@
1
+ import { t as ActivityProps } from "./types-HIrgF_mS.js";
2
+ import { MultipleChoiceData } from "@intellectif/lk-core";
3
+ //#region src/components/MultipleChoice/MultipleChoice.d.ts
4
+ interface MultipleChoiceProps extends ActivityProps<MultipleChoiceData> {
5
+ /**
6
+ * Seed for the deterministic option shuffle. Supply one (e.g. the attempt
7
+ * id) to make the shuffled order reproducible server-side, stable across
8
+ * page reloads, and identical between SSR and hydration. When absent, a
9
+ * random per-mount session seed is used (order stable within the mount
10
+ * only — the behaviour before `shuffleSeed` existed).
11
+ */
12
+ shuffleSeed?: string;
13
+ }
14
+ //#endregion
15
+ //#region src/components/MultipleChoice/index.d.ts
16
+ /**
17
+ * Public Multiple Choice activity: the core component wrapped in
18
+ * `ActivityErrorBoundary` so a render failure (incl. the dev schema-validation
19
+ * throw) degrades to an accessible fallback instead of crashing the host.
20
+ */
21
+ declare function MultipleChoice(props: MultipleChoiceProps): import("react/jsx-runtime").JSX.Element;
22
+ //#endregion
23
+ export { MultipleChoiceProps as n, MultipleChoice as t };
24
+ //# sourceMappingURL=index-zu9H7owf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-zu9H7owf.d.ts","names":[],"sources":["../src/components/MultipleChoice/MultipleChoice.tsx","../src/components/MultipleChoice/index.tsx"],"mappings":";;;UAyGiB,4BAA4B,cAAc;;;;;;;;EAQzD;;;;;;;;;iBCjGc,eAAe,OAAO,kDAAmB,IAAA"}
package/dist/index.cjs CHANGED
@@ -1,171 +1,126 @@
1
1
  'use client';
2
- 'use strict';
3
-
4
- var chunkPNNUPUH4_cjs = require('./chunk-PNNUPUH4.cjs');
5
- var chunkK63VPFOV_cjs = require('./chunk-K63VPFOV.cjs');
6
- var chunkCWTUWNV3_cjs = require('./chunk-CWTUWNV3.cjs');
7
- var chunkV6BA44DS_cjs = require('./chunk-V6BA44DS.cjs');
8
- var chunkKFLIDTDU_cjs = require('./chunk-KFLIDTDU.cjs');
9
- var chunkRPWUDXG5_cjs = require('./chunk-RPWUDXG5.cjs');
10
- var chunkMKXEM2C5_cjs = require('./chunk-MKXEM2C5.cjs');
11
- var chunkYY4PFR3Z_cjs = require('./chunk-YY4PFR3Z.cjs');
12
- var chunkDS6HN3YR_cjs = require('./chunk-DS6HN3YR.cjs');
13
- var chunk7ALBSPYR_cjs = require('./chunk-7ALBSPYR.cjs');
14
- var chunkNAK55BYU_cjs = require('./chunk-NAK55BYU.cjs');
15
- require('./chunk-KHKH5LCT.cjs');
16
- var chunkTP5UMRAU_cjs = require('./chunk-TP5UMRAU.cjs');
17
- var chunkLBEKRN6Y_cjs = require('./chunk-LBEKRN6Y.cjs');
18
- var chunkUDCQTOVU_cjs = require('./chunk-UDCQTOVU.cjs');
19
- require('./chunk-OD65OZIW.cjs');
20
- require('./chunk-2PNSVBLQ.cjs');
21
- require('./chunk-J3C72RPK.cjs');
22
- var chunkLPUWXIPR_cjs = require('./chunk-LPUWXIPR.cjs');
23
- require('./chunk-NDBMKGQ5.cjs');
24
- var chunkXOR4MPEN_cjs = require('./chunk-XOR4MPEN.cjs');
25
- var chunkBIGGXHAW_cjs = require('./chunk-BIGGXHAW.cjs');
26
- var chunkTUVENMXB_cjs = require('./chunk-TUVENMXB.cjs');
27
-
28
- // src/components/types.ts
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_ai_LkAiProvider = require("./ai/LkAiProvider.cjs");
4
+ const require_useAiHelp = require("./useAiHelp-h9yOLFqt.cjs");
5
+ const require_LkIntlProvider = require("./LkIntlProvider-oi57lYB0.cjs");
6
+ const require_hooks_useActivityState = require("./hooks/useActivityState.cjs");
7
+ const require_Dictation = require("./Dictation-jECzL88E.cjs");
8
+ const require_FillInTheBlanks = require("./FillInTheBlanks-BpKhdHg2.cjs");
9
+ const require_GapSelect = require("./GapSelect-payTq_Zn.cjs");
10
+ const require_MultipleChoice = require("./MultipleChoice-COn5MtKY.cjs");
11
+ const require_useSpeechRecorder = require("./useSpeechRecorder--O_f-xvt.cjs");
12
+ const require_PronunciationFeedback = require("./PronunciationFeedback-DlMPGjkR.cjs");
13
+ const require_ReadAloud = require("./ReadAloud-akDehitT.cjs");
14
+ const require_WrittenResponse = require("./WrittenResponse-Bj3eFmGl.cjs");
15
+ const require_ActivityPreview = require("./ActivityPreview-BKr34exz.cjs");
16
+ const require_StimulusPanel = require("./StimulusPanel-b66gaN3i.cjs");
17
+ const require_ActivitySequence = require("./ActivitySequence-CmoSyDnp.cjs");
18
+ const require_InteractiveVideo = require("./InteractiveVideo-BguGv-HA.cjs");
19
+ const require_hooks_useXAPI = require("./hooks/useXAPI.cjs");
20
+ const require_ThemeProvider = require("./ThemeProvider-BRN1tj4n.cjs");
21
+ //#region src/components/types.ts
22
+ /**
23
+ * Bridges a server-produced `redact()` projection into the `data` prop.
24
+ *
25
+ * `RedactedActivityData` is deliberately index-signature typed in lk-core — it
26
+ * proves a payload is learner-safe, not what shape it has — so TypeScript
27
+ * cannot know it still carries the public fields a renderer needs. This is the
28
+ * SDK's single, documented crossing of that gap, so an exam runner does not
29
+ * have to write `as unknown as` at every call site:
30
+ *
31
+ * ```tsx
32
+ * <MultipleChoice
33
+ * data={asRenderable<MultipleChoiceData>(redactedFromServer)}
34
+ * renderMode="exam"
35
+ * onSubmit={persist}
36
+ * />
37
+ * ```
38
+ *
39
+ * Safe because `exam` mode reads only public fields; the answer-key fields the
40
+ * type claims are exactly the ones the component is forbidden to touch there.
41
+ *
42
+ * Per-type redacted interfaces (`RedactedMultipleChoiceData`, …) ship from
43
+ * lk-core since 0.6.0, but they are not yet *assignable* to `data`:
44
+ * {@link Renderable} widens `scoringStrategy` and leaves nested answer-key
45
+ * fields (`options[].isCorrect`, `blanks[].acceptedAnswers`) required, so a
46
+ * real redacted payload still needs this bridge. Closing that gap is tracked
47
+ * in the roadmap.
48
+ */
29
49
  function asRenderable(redacted) {
30
- return redacted;
50
+ return redacted;
31
51
  }
52
+ /**
53
+ * The same bridge as {@link asRenderable}, for a whole sequence: activities
54
+ * and item groups as a server hands them over, ready for `<ActivitySequence>`.
55
+ *
56
+ * Needed for the same reason and no other. `redactItemGroup` returns
57
+ * `ItemGroup<RedactedActivityData>`, and `RedactedActivityData` is an
58
+ * index-signature type whose fields are all `unknown` — so its `question` is
59
+ * not a `string` and it satisfies no per-type renderable, however the prop is
60
+ * widened. Widening alone cannot fix this; a crossing point is required, and
61
+ * having exactly one keeps `as unknown as` out of consumer code.
62
+ *
63
+ * ```tsx
64
+ * const entries = await fetchExam(); // redacted, server-side
65
+ * <ActivitySequence
66
+ * activities={asRenderableSequence(entries)}
67
+ * renderMode="exam" // REQUIRED: see below
68
+ * shuffleSeed={attemptId}
69
+ * onSubmit={persist}
70
+ * />
71
+ * ```
72
+ *
73
+ * Pass `renderMode="exam"` (or `"review"`). Redacted data has no answer key, and
74
+ * almost every built-in activity throws at render in the default `practice`
75
+ * mode rather than fail later: `<MultipleChoice>`, `<FillInTheBlanks>`,
76
+ * `<GapSelect>` and `<Dictation>` because they grade locally, and
77
+ * `<WrittenResponse>` because `practice` still runs its local submit path and
78
+ * emits a practice-mode xAPI statement.
79
+ *
80
+ * `<ReadAloud>` is the exception and renders a projection in every mode: a
81
+ * read-aloud item has no answer key to withhold, so `redact()` removes only the
82
+ * authored feedback and leaves the reading, its language and its bounds — which
83
+ * is everything the component puts on screen. It grades nothing locally either;
84
+ * the grade comes back from whatever the application asked to judge the take.
85
+ */
32
86
  function asRenderableSequence(entries) {
33
- return entries;
87
+ return entries;
34
88
  }
35
-
36
- Object.defineProperty(exports, "useXAPI", {
37
- enumerable: true,
38
- get: function () { return chunkPNNUPUH4_cjs.useXAPI; }
39
- });
40
- Object.defineProperty(exports, "ThemeProvider", {
41
- enumerable: true,
42
- get: function () { return chunkK63VPFOV_cjs.ThemeProvider; }
43
- });
44
- Object.defineProperty(exports, "createTailwindTheme", {
45
- enumerable: true,
46
- get: function () { return chunkK63VPFOV_cjs.createTailwindTheme; }
47
- });
48
- Object.defineProperty(exports, "darkTheme", {
49
- enumerable: true,
50
- get: function () { return chunkK63VPFOV_cjs.darkTheme; }
51
- });
52
- Object.defineProperty(exports, "defaultTheme", {
53
- enumerable: true,
54
- get: function () { return chunkK63VPFOV_cjs.defaultTheme; }
55
- });
56
- Object.defineProperty(exports, "useTheme", {
57
- enumerable: true,
58
- get: function () { return chunkK63VPFOV_cjs.useTheme; }
59
- });
60
- Object.defineProperty(exports, "InteractiveVideo", {
61
- enumerable: true,
62
- get: function () { return chunkCWTUWNV3_cjs.InteractiveVideo; }
63
- });
64
- Object.defineProperty(exports, "resolveCaptionTracks", {
65
- enumerable: true,
66
- get: function () { return chunkCWTUWNV3_cjs.resolveCaptionTracks; }
67
- });
68
- Object.defineProperty(exports, "ActivityPreview", {
69
- enumerable: true,
70
- get: function () { return chunkV6BA44DS_cjs.ActivityPreview; }
71
- });
72
- Object.defineProperty(exports, "ActivitySequence", {
73
- enumerable: true,
74
- get: function () { return chunkKFLIDTDU_cjs.ActivitySequence; }
75
- });
76
- Object.defineProperty(exports, "StimulusPanel", {
77
- enumerable: true,
78
- get: function () { return chunkRPWUDXG5_cjs.StimulusPanel; }
79
- });
80
- Object.defineProperty(exports, "WrittenResponse", {
81
- enumerable: true,
82
- get: function () { return chunkMKXEM2C5_cjs.WrittenResponse; }
83
- });
84
- Object.defineProperty(exports, "MultipleChoice", {
85
- enumerable: true,
86
- get: function () { return chunkYY4PFR3Z_cjs.MultipleChoice; }
87
- });
88
- Object.defineProperty(exports, "FillInTheBlanks", {
89
- enumerable: true,
90
- get: function () { return chunkDS6HN3YR_cjs.FillInTheBlanks; }
91
- });
92
- Object.defineProperty(exports, "GapSelect", {
93
- enumerable: true,
94
- get: function () { return chunk7ALBSPYR_cjs.GapSelect; }
95
- });
96
- Object.defineProperty(exports, "Dictation", {
97
- enumerable: true,
98
- get: function () { return chunkNAK55BYU_cjs.Dictation; }
99
- });
100
- Object.defineProperty(exports, "ReadAloud", {
101
- enumerable: true,
102
- get: function () { return chunkTP5UMRAU_cjs.ReadAloud; }
103
- });
104
- Object.defineProperty(exports, "PronunciationFeedback", {
105
- enumerable: true,
106
- get: function () { return chunkLBEKRN6Y_cjs.PronunciationFeedback; }
107
- });
108
- Object.defineProperty(exports, "CAPTURE_PROCESSOR_SOURCE", {
109
- enumerable: true,
110
- get: function () { return chunkUDCQTOVU_cjs.CAPTURE_PROCESSOR_SOURCE; }
111
- });
112
- Object.defineProperty(exports, "useSpeechRecorder", {
113
- enumerable: true,
114
- get: function () { return chunkUDCQTOVU_cjs.useSpeechRecorder; }
115
- });
116
- Object.defineProperty(exports, "useAiCoaching", {
117
- enumerable: true,
118
- get: function () { return chunkLPUWXIPR_cjs.useAiCoaching; }
119
- });
120
- Object.defineProperty(exports, "useAiExplanation", {
121
- enumerable: true,
122
- get: function () { return chunkLPUWXIPR_cjs.useAiExplanation; }
123
- });
124
- Object.defineProperty(exports, "useAiHints", {
125
- enumerable: true,
126
- get: function () { return chunkLPUWXIPR_cjs.useAiHints; }
127
- });
128
- Object.defineProperty(exports, "useAiWritingFeedback", {
129
- enumerable: true,
130
- get: function () { return chunkLPUWXIPR_cjs.useAiWritingFeedback; }
131
- });
132
- Object.defineProperty(exports, "useActivityState", {
133
- enumerable: true,
134
- get: function () { return chunkXOR4MPEN_cjs.useActivityState; }
135
- });
136
- Object.defineProperty(exports, "DEFAULT_STRINGS", {
137
- enumerable: true,
138
- get: function () { return chunkBIGGXHAW_cjs.DEFAULT_STRINGS; }
139
- });
140
- Object.defineProperty(exports, "LkIntlProvider", {
141
- enumerable: true,
142
- get: function () { return chunkBIGGXHAW_cjs.LkIntlProvider; }
143
- });
144
- Object.defineProperty(exports, "directionForLocale", {
145
- enumerable: true,
146
- get: function () { return chunkBIGGXHAW_cjs.directionForLocale; }
147
- });
148
- Object.defineProperty(exports, "mergeStrings", {
149
- enumerable: true,
150
- get: function () { return chunkBIGGXHAW_cjs.mergeStrings; }
151
- });
152
- Object.defineProperty(exports, "useLkDirection", {
153
- enumerable: true,
154
- get: function () { return chunkBIGGXHAW_cjs.useLkDirection; }
155
- });
156
- Object.defineProperty(exports, "useLkStrings", {
157
- enumerable: true,
158
- get: function () { return chunkBIGGXHAW_cjs.useLkStrings; }
159
- });
160
- Object.defineProperty(exports, "LkAiProvider", {
161
- enumerable: true,
162
- get: function () { return chunkTUVENMXB_cjs.LkAiProvider; }
163
- });
164
- Object.defineProperty(exports, "useLearnerAi", {
165
- enumerable: true,
166
- get: function () { return chunkTUVENMXB_cjs.useLearnerAi; }
167
- });
89
+ //#endregion
90
+ exports.ActivityPreview = require_ActivityPreview.ActivityPreview;
91
+ exports.ActivitySequence = require_ActivitySequence.ActivitySequence;
92
+ exports.CAPTURE_PROCESSOR_SOURCE = require_useSpeechRecorder.CAPTURE_PROCESSOR_SOURCE;
93
+ exports.DEFAULT_STRINGS = require_LkIntlProvider.DEFAULT_STRINGS;
94
+ exports.Dictation = require_Dictation.Dictation;
95
+ exports.FillInTheBlanks = require_FillInTheBlanks.FillInTheBlanks;
96
+ exports.GapSelect = require_GapSelect.GapSelect;
97
+ exports.InteractiveVideo = require_InteractiveVideo.InteractiveVideo;
98
+ exports.LkAiProvider = require_ai_LkAiProvider.LkAiProvider;
99
+ exports.LkIntlProvider = require_LkIntlProvider.LkIntlProvider;
100
+ exports.MultipleChoice = require_MultipleChoice.MultipleChoice;
101
+ exports.PronunciationFeedback = require_PronunciationFeedback.PronunciationFeedback;
102
+ exports.ReadAloud = require_ReadAloud.ReadAloud;
103
+ exports.StimulusPanel = require_StimulusPanel.StimulusPanel;
104
+ exports.ThemeProvider = require_ThemeProvider.ThemeProvider;
105
+ exports.WrittenResponse = require_WrittenResponse.WrittenResponse;
168
106
  exports.asRenderable = asRenderable;
169
107
  exports.asRenderableSequence = asRenderableSequence;
170
- //# sourceMappingURL=index.cjs.map
108
+ exports.createTailwindTheme = require_ThemeProvider.createTailwindTheme;
109
+ exports.darkTheme = require_ThemeProvider.darkTheme;
110
+ exports.defaultTheme = require_ThemeProvider.defaultTheme;
111
+ exports.directionForLocale = require_LkIntlProvider.directionForLocale;
112
+ exports.mergeStrings = require_LkIntlProvider.mergeStrings;
113
+ exports.resolveCaptionTracks = require_InteractiveVideo.resolveCaptionTracks;
114
+ exports.useActivityState = require_hooks_useActivityState.useActivityState;
115
+ exports.useAiCoaching = require_useAiHelp.useAiCoaching;
116
+ exports.useAiExplanation = require_useAiHelp.useAiExplanation;
117
+ exports.useAiHints = require_useAiHelp.useAiHints;
118
+ exports.useAiWritingFeedback = require_useAiHelp.useAiWritingFeedback;
119
+ exports.useLearnerAi = require_ai_LkAiProvider.useLearnerAi;
120
+ exports.useLkDirection = require_LkIntlProvider.useLkDirection;
121
+ exports.useLkStrings = require_LkIntlProvider.useLkStrings;
122
+ exports.useSpeechRecorder = require_useSpeechRecorder.useSpeechRecorder;
123
+ exports.useTheme = require_ThemeProvider.useTheme;
124
+ exports.useXAPI = require_hooks_useXAPI.useXAPI;
125
+
171
126
  //# sourceMappingURL=index.cjs.map