@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.
Files changed (360) hide show
  1. package/CHANGELOG.md +23 -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-B6DyGqzh.d.cts +62 -0
  64. package/dist/ThemeProvider-B6DyGqzh.d.cts.map +1 -0
  65. package/dist/ThemeProvider-BCrxBaY-.d.ts +62 -0
  66. package/dist/ThemeProvider-BCrxBaY-.d.ts.map +1 -0
  67. package/dist/ThemeProvider-BRN1tj4n.cjs +187 -0
  68. package/dist/ThemeProvider-BRN1tj4n.cjs.map +1 -0
  69. package/dist/ThemeProvider-C7K9iMLX.js +158 -0
  70. package/dist/ThemeProvider-C7K9iMLX.js.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-6P4rJHrJ.d.cts +432 -0
  164. package/dist/index-6P4rJHrJ.d.cts.map +1 -0
  165. package/dist/index-90CX504k.d.ts +90 -0
  166. package/dist/index-90CX504k.d.ts.map +1 -0
  167. package/dist/index-B_SgnjsC.d.cts +291 -0
  168. package/dist/index-B_SgnjsC.d.cts.map +1 -0
  169. package/dist/index-BavVW5z5.d.cts +25 -0
  170. package/dist/index-BavVW5z5.d.cts.map +1 -0
  171. package/dist/index-BhHv6Fiu.d.cts +28 -0
  172. package/dist/index-BhHv6Fiu.d.cts.map +1 -0
  173. package/dist/index-Bsu8VciA.d.ts +432 -0
  174. package/dist/index-Bsu8VciA.d.ts.map +1 -0
  175. package/dist/index-C1KGpD1k.d.ts +49 -0
  176. package/dist/index-C1KGpD1k.d.ts.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-CO_SRFJj.d.ts +16 -0
  180. package/dist/index-CO_SRFJj.d.ts.map +1 -0
  181. package/dist/index-CSsuUsP7.d.cts +124 -0
  182. package/dist/index-CSsuUsP7.d.cts.map +1 -0
  183. package/dist/index-CunUyeuN.d.cts +78 -0
  184. package/dist/index-CunUyeuN.d.cts.map +1 -0
  185. package/dist/index-CzfRzks6.d.cts +90 -0
  186. package/dist/index-CzfRzks6.d.cts.map +1 -0
  187. package/dist/index-D14xtpBS.d.cts +24 -0
  188. package/dist/index-D14xtpBS.d.cts.map +1 -0
  189. package/dist/index-DHRPAPZf.d.ts +291 -0
  190. package/dist/index-DHRPAPZf.d.ts.map +1 -0
  191. package/dist/index-DLV6cK26.d.cts +16 -0
  192. package/dist/index-DLV6cK26.d.cts.map +1 -0
  193. package/dist/index-DbCCQ9cP.d.ts +124 -0
  194. package/dist/index-DbCCQ9cP.d.ts.map +1 -0
  195. package/dist/index-DeV5B2m5.d.ts +24 -0
  196. package/dist/index-DeV5B2m5.d.ts.map +1 -0
  197. package/dist/index-TZCJVSge.d.ts +28 -0
  198. package/dist/index-TZCJVSge.d.ts.map +1 -0
  199. package/dist/index-ZVvLHsd3.d.ts +25 -0
  200. package/dist/index-ZVvLHsd3.d.ts.map +1 -0
  201. package/dist/index-eQwBgpSw.d.ts +78 -0
  202. package/dist/index-eQwBgpSw.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
@@ -1,38 +1,33 @@
1
- import { a as LkStringsOverride, L as LkStrings } from '../types-CJgZWtl4.cjs';
2
- export { D as DEFAULT_STRINGS, m as mergeStrings } from '../types-CJgZWtl4.cjs';
3
- import '@intellectif/lk-core';
4
- import '../ai/LkAiProvider.cjs';
5
- import 'react';
6
- import '../machine-CuwKqWXC.cjs';
7
-
1
+ import { _ as LkStrings, g as DEFAULT_STRINGS, v as LkStringsOverride, y as mergeStrings } from "../types-BOQd93x3.cjs";
2
+ //#region src/i18n/LkIntlProvider.d.ts
8
3
  /** Writing direction of the surrounding UI. `auto` defers to the locale. */
9
- type LkDirection = 'ltr' | 'rtl' | 'auto';
4
+ export type LkDirection = 'ltr' | 'rtl' | 'auto';
10
5
  /** Resolves a BCP 47 tag to a writing direction. */
11
- declare function directionForLocale(locale: string | undefined): 'ltr' | 'rtl';
12
- interface LkIntlProviderProps {
13
- /**
14
- * Replaces the SDK's own chrome text. Anything omitted keeps its English
15
- * default, so a partial translation degrades to mixed rather than to blank.
16
- *
17
- * A nested provider REPLACES the one above it rather than layering onto it —
18
- * as a nested `ThemeProvider` restarts from `defaultTheme`. To layer, use a
19
- * component's own `strings` prop, or compose with `mergeStrings`.
20
- */
21
- strings?: LkStringsOverride;
22
- /**
23
- * BCP 47 tag for the SDK's chrome — NOT for the authored content, which
24
- * carries its own `locale`. Sets `lang` on the wrapper so a screen reader
25
- * reads "Question 3 of 10" in the interface language rather than in the
26
- * language of the passage beside it (WCAG 3.1.2).
27
- */
28
- locale?: string;
29
- /**
30
- * Writing direction. Defaults to `auto`, which derives it from `locale`.
31
- * Set it explicitly when the surrounding application already manages `dir`
32
- * and you do not want a second element declaring one.
33
- */
34
- direction?: LkDirection;
35
- children: React.ReactNode;
6
+ export declare function directionForLocale(locale: string | undefined): 'ltr' | 'rtl';
7
+ export interface LkIntlProviderProps {
8
+ /**
9
+ * Replaces the SDK's own chrome text. Anything omitted keeps its English
10
+ * default, so a partial translation degrades to mixed rather than to blank.
11
+ *
12
+ * A nested provider REPLACES the one above it rather than layering onto it —
13
+ * as a nested `ThemeProvider` restarts from `defaultTheme`. To layer, use a
14
+ * component's own `strings` prop, or compose with `mergeStrings`.
15
+ */
16
+ strings?: LkStringsOverride;
17
+ /**
18
+ * BCP 47 tag for the SDK's chrome — NOT for the authored content, which
19
+ * carries its own `locale`. Sets `lang` on the wrapper so a screen reader
20
+ * reads "Question 3 of 10" in the interface language rather than in the
21
+ * language of the passage beside it (WCAG 3.1.2).
22
+ */
23
+ locale?: string;
24
+ /**
25
+ * Writing direction. Defaults to `auto`, which derives it from `locale`.
26
+ * Set it explicitly when the surrounding application already manages `dir`
27
+ * and you do not want a second element declaring one.
28
+ */
29
+ direction?: LkDirection;
30
+ children: React.ReactNode;
36
31
  }
37
32
  /**
38
33
  * Supplies the SDK's chrome text and writing direction to everything beneath.
@@ -59,7 +54,7 @@ interface LkIntlProviderProps {
59
54
  * teacher can see is untranslated. The mechanism is the deliverable; the words
60
55
  * belong to whoever speaks the language.
61
56
  */
62
- declare function LkIntlProvider({ strings, locale, direction, children, }: LkIntlProviderProps): React.JSX.Element;
57
+ export declare function LkIntlProvider({ strings, locale, direction, children }: LkIntlProviderProps): React.JSX.Element;
63
58
  /**
64
59
  * The strings in force, with an optional per-component override layered on top.
65
60
  *
@@ -67,8 +62,9 @@ declare function LkIntlProvider({ strings, locale, direction, children, }: LkInt
67
62
  * standalone still needs its labels. Falling back to the English defaults is
68
63
  * what keeps `<MultipleChoice>` working with no setup at all.
69
64
  */
70
- declare function useLkStrings(override?: LkStringsOverride): LkStrings;
65
+ export declare function useLkStrings(override?: LkStringsOverride): LkStrings;
71
66
  /** The direction in force. `ltr` with no provider. */
72
- declare function useLkDirection(): 'ltr' | 'rtl';
73
-
74
- export { type LkDirection, LkIntlProvider, type LkIntlProviderProps, LkStrings, LkStringsOverride, directionForLocale, useLkDirection, useLkStrings };
67
+ export declare function useLkDirection(): 'ltr' | 'rtl';
68
+ //#endregion
69
+ export { DEFAULT_STRINGS, type LkStrings, type LkStringsOverride, mergeStrings };
70
+ //# sourceMappingURL=LkIntlProvider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LkIntlProvider.d.cts","names":[],"sources":["../../src/i18n/LkIntlProvider.tsx"],"mappings":";;;YAUY;;wBAqBI,mBAAmB;iBAQlB;;;;;;;;;EASf,UAAU;;;;;;;EAOV;;;;;;EAMA,YAAY;EACZ,UAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BF,iBACd,SACA,QACA,WACA,YACC,sBAAsB,MAAM,IAAI;;;;;;;;wBAgCnB,aAAa,WAAW,oBAAoB;;wBAO5C"}
@@ -1,38 +1,33 @@
1
- import { a as LkStringsOverride, L as LkStrings } from '../types-C4IsUQsK.js';
2
- export { D as DEFAULT_STRINGS, m as mergeStrings } from '../types-C4IsUQsK.js';
3
- import '@intellectif/lk-core';
4
- import '../ai/LkAiProvider.js';
5
- import 'react';
6
- import '../machine-CuwKqWXC.js';
7
-
1
+ import { _ as LkStrings, g as DEFAULT_STRINGS, v as LkStringsOverride, y as mergeStrings } from "../types-HIrgF_mS.js";
2
+ //#region src/i18n/LkIntlProvider.d.ts
8
3
  /** Writing direction of the surrounding UI. `auto` defers to the locale. */
9
- type LkDirection = 'ltr' | 'rtl' | 'auto';
4
+ export type LkDirection = 'ltr' | 'rtl' | 'auto';
10
5
  /** Resolves a BCP 47 tag to a writing direction. */
11
- declare function directionForLocale(locale: string | undefined): 'ltr' | 'rtl';
12
- interface LkIntlProviderProps {
13
- /**
14
- * Replaces the SDK's own chrome text. Anything omitted keeps its English
15
- * default, so a partial translation degrades to mixed rather than to blank.
16
- *
17
- * A nested provider REPLACES the one above it rather than layering onto it —
18
- * as a nested `ThemeProvider` restarts from `defaultTheme`. To layer, use a
19
- * component's own `strings` prop, or compose with `mergeStrings`.
20
- */
21
- strings?: LkStringsOverride;
22
- /**
23
- * BCP 47 tag for the SDK's chrome — NOT for the authored content, which
24
- * carries its own `locale`. Sets `lang` on the wrapper so a screen reader
25
- * reads "Question 3 of 10" in the interface language rather than in the
26
- * language of the passage beside it (WCAG 3.1.2).
27
- */
28
- locale?: string;
29
- /**
30
- * Writing direction. Defaults to `auto`, which derives it from `locale`.
31
- * Set it explicitly when the surrounding application already manages `dir`
32
- * and you do not want a second element declaring one.
33
- */
34
- direction?: LkDirection;
35
- children: React.ReactNode;
6
+ export declare function directionForLocale(locale: string | undefined): 'ltr' | 'rtl';
7
+ export interface LkIntlProviderProps {
8
+ /**
9
+ * Replaces the SDK's own chrome text. Anything omitted keeps its English
10
+ * default, so a partial translation degrades to mixed rather than to blank.
11
+ *
12
+ * A nested provider REPLACES the one above it rather than layering onto it —
13
+ * as a nested `ThemeProvider` restarts from `defaultTheme`. To layer, use a
14
+ * component's own `strings` prop, or compose with `mergeStrings`.
15
+ */
16
+ strings?: LkStringsOverride;
17
+ /**
18
+ * BCP 47 tag for the SDK's chrome — NOT for the authored content, which
19
+ * carries its own `locale`. Sets `lang` on the wrapper so a screen reader
20
+ * reads "Question 3 of 10" in the interface language rather than in the
21
+ * language of the passage beside it (WCAG 3.1.2).
22
+ */
23
+ locale?: string;
24
+ /**
25
+ * Writing direction. Defaults to `auto`, which derives it from `locale`.
26
+ * Set it explicitly when the surrounding application already manages `dir`
27
+ * and you do not want a second element declaring one.
28
+ */
29
+ direction?: LkDirection;
30
+ children: React.ReactNode;
36
31
  }
37
32
  /**
38
33
  * Supplies the SDK's chrome text and writing direction to everything beneath.
@@ -59,7 +54,7 @@ interface LkIntlProviderProps {
59
54
  * teacher can see is untranslated. The mechanism is the deliverable; the words
60
55
  * belong to whoever speaks the language.
61
56
  */
62
- declare function LkIntlProvider({ strings, locale, direction, children, }: LkIntlProviderProps): React.JSX.Element;
57
+ export declare function LkIntlProvider({ strings, locale, direction, children }: LkIntlProviderProps): React.JSX.Element;
63
58
  /**
64
59
  * The strings in force, with an optional per-component override layered on top.
65
60
  *
@@ -67,8 +62,9 @@ declare function LkIntlProvider({ strings, locale, direction, children, }: LkInt
67
62
  * standalone still needs its labels. Falling back to the English defaults is
68
63
  * what keeps `<MultipleChoice>` working with no setup at all.
69
64
  */
70
- declare function useLkStrings(override?: LkStringsOverride): LkStrings;
65
+ export declare function useLkStrings(override?: LkStringsOverride): LkStrings;
71
66
  /** The direction in force. `ltr` with no provider. */
72
- declare function useLkDirection(): 'ltr' | 'rtl';
73
-
74
- export { type LkDirection, LkIntlProvider, type LkIntlProviderProps, LkStrings, LkStringsOverride, directionForLocale, useLkDirection, useLkStrings };
67
+ export declare function useLkDirection(): 'ltr' | 'rtl';
68
+ //#endregion
69
+ export { DEFAULT_STRINGS, type LkStrings, type LkStringsOverride, mergeStrings };
70
+ //# sourceMappingURL=LkIntlProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LkIntlProvider.d.ts","names":[],"sources":["../../src/i18n/LkIntlProvider.tsx"],"mappings":";;;YAUY;;wBAqBI,mBAAmB;iBAQlB;;;;;;;;;EASf,UAAU;;;;;;;EAOV;;;;;;EAMA,YAAY;EACZ,UAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BF,iBACd,SACA,QACA,WACA,YACC,sBAAsB,MAAM,IAAI;;;;;;;;wBAgCnB,aAAa,WAAW,oBAAoB;;wBAO5C"}
@@ -1,4 +1,4 @@
1
1
  'use client';
2
- export { DEFAULT_STRINGS, LkIntlProvider, directionForLocale, mergeStrings, useLkDirection, useLkStrings } from '../chunk-HNLRVRQR.js';
3
- //# sourceMappingURL=LkIntlProvider.js.map
4
- //# sourceMappingURL=LkIntlProvider.js.map
2
+ "use client";
3
+ import { a as DEFAULT_STRINGS, i as useLkStrings, n as directionForLocale, o as mergeStrings, r as useLkDirection, t as LkIntlProvider } from "../LkIntlProvider-D_FdYXjQ.js";
4
+ export { DEFAULT_STRINGS, LkIntlProvider, directionForLocale, mergeStrings, useLkDirection, useLkStrings };
@@ -0,0 +1,432 @@
1
+ import { t as LearnerAi } from "./LkAiProvider-DAPpA3PQ.cjs";
2
+ import { a as RenderMode, c as SequenceMediaBudget, l as SequenceRecordingBinding, n as HtmlSanitizer, s as RenderableActivity, t as ActivityProps, u as SequenceRecordingSlot, v as LkStringsOverride } from "./types-BOQd93x3.cjs";
3
+ import { r as WrittenResponseSubmission } from "./index-CSsuUsP7.cjs";
4
+ import { ActivityResult, DeliveryPolicy, InteractionEvent, InteractionKind, ItemOutcome, ItemScoringPolicy, LearnerResponse, SequenceEntry, SpeechAssessment, ThemeTokens } from "@intellectif/lk-core";
5
+ import { ComponentType } from "react";
6
+ //#region src/components/ActivitySequence/ActivitySequence.d.ts
7
+ /**
8
+ * What one finished slot in a sequence produced. Two kinds, because two kinds
9
+ * of activity exist: those the SDK scores at submit time, and those a grader
10
+ * scores later. Collapsing them would mean inventing a score for ungraded
11
+ * work — the exact defect the deferred outcome exists to prevent.
12
+ *
13
+ * **A read-aloud hand-in adds no arm here, deliberately.** The obvious home for
14
+ * a handed-in take is `submitted`, and it is the wrong one: that arm's payload
15
+ * is typed `WrittenResponseSubmission`, this union is published from both the
16
+ * barrel and the `components/ActivitySequence` subpath, and a consumer narrows
17
+ * on `kind === 'submitted'` and reads `.text`. Widening the payload to a union
18
+ * would break every one of those reads — a breaking change to a published
19
+ * discriminated union, bought for a type that `responded` already describes: a
20
+ * read-aloud hand-in IS a raw `LearnerResponse` with no grade, which is exactly
21
+ * what `responded` carries.
22
+ *
23
+ * What a read-aloud does add is `unsubmitted`, for the one thing no existing
24
+ * arm can say honestly: a take that never reached storage. Any response would
25
+ * be a lie about it — a `recording` of `null` is the blank a learner chooses,
26
+ * and grades as 0.
27
+ */
28
+ type SequenceItemOutcome = {
29
+ kind: 'scored';
30
+ /** Presented position. */
31
+ index: number;
32
+ /** Slot identity from `flattenSequence` — stable under shuffling; the `slotId` to score with. */
33
+ slotId: string;
34
+ activityId: string;
35
+ result: ActivityResult;
36
+ /**
37
+ * The answer this score grades, for a slot whose grade arrives after its
38
+ * answer was handed in and whose learner may hand in another: a
39
+ * `practice` read-aloud, whose `response.recording` names the take the
40
+ * score belongs to. Absent for every other slot, whose score and answer
41
+ * arrive together.
42
+ */
43
+ response?: LearnerResponse;
44
+ } | {
45
+ kind: 'submitted';
46
+ index: number;
47
+ slotId: string;
48
+ activityId: string;
49
+ /** Ungraded submission; the grade arrives asynchronously. */
50
+ submission: WrittenResponseSubmission;
51
+ } | {
52
+ kind: 'restored';
53
+ index: number;
54
+ slotId: string;
55
+ activityId: string;
56
+ /**
57
+ * The answer as restored, when one was. A slot can be submitted with no
58
+ * stored response (a blank the learner committed), so this is optional —
59
+ * inventing one would be worse than admitting it is absent.
60
+ */
61
+ response?: LearnerResponse;
62
+ } | {
63
+ kind: 'responded';
64
+ index: number;
65
+ slotId: string;
66
+ activityId: string;
67
+ /**
68
+ * The raw answer, with no grade of any kind. This is what an `exam` slot
69
+ * produces: the client is forbidden to score, so a response is all there
70
+ * is until the server grades it.
71
+ *
72
+ * A read-aloud `recording` of `null` here is always a blank the learner
73
+ * chose to hand in, never a take that failed to upload — that is
74
+ * `unsubmitted`.
75
+ */
76
+ response: LearnerResponse;
77
+ } | {
78
+ /**
79
+ * A question the learner tried to answer and could not hand in, and then
80
+ * left: a `practice` read-aloud whose take never reached your storage. It
81
+ * carries no response, because there is none.
82
+ *
83
+ * Deliberately not `responded` with a `recording` of `null`: that is the
84
+ * blank a learner chooses, and a grader marks it 0 with every word
85
+ * omitted — which would turn a storage outage into a zero. Grade nothing
86
+ * for this slot; the learner can still return to it, and a take stored
87
+ * then reaches you through `onSubmit`.
88
+ */
89
+ kind: 'unsubmitted';
90
+ index: number;
91
+ slotId: string;
92
+ activityId: string;
93
+ };
94
+ /**
95
+ * Where a question sits in the set, and the calls that tell the pager what the
96
+ * learner did with it — handed to a `renderers` override as its `question`
97
+ * prop, beside the shared {@link ActivityProps}.
98
+ *
99
+ * The SDK's own components make the same calls, so a question a host draws
100
+ * counts exactly as one the SDK draws: in `onFinished`, in whether the set is
101
+ * complete, and in what a resumed attempt reopens. Every call here keeps ONE
102
+ * identity for the life of the set, so it is safe in an effect's dependencies,
103
+ * and does nothing once the set has changed or the pager has gone.
104
+ */
105
+ interface SequenceQuestion {
106
+ /**
107
+ * The identity to store this question's answer against — the same object
108
+ * `onSubmit` and `onActivityComplete` are handed, for the life of the set.
109
+ * `slotId`, never `index`: the position moves under shuffling.
110
+ */
111
+ slot: SequenceRecordingSlot;
112
+ /**
113
+ * `true` while this is the question on screen. `false` from the moment the
114
+ * learner pages away, and `true` again when they come back.
115
+ *
116
+ * WHEN IT TURNS `false`, STOP THE MICROPHONE, ANY TIMER AND ANY SPEECH. The
117
+ * pager pauses the `<audio>` and `<video>` elements inside the question and
118
+ * stops the recorders the SDK started, but it cannot reach a recorder it did
119
+ * not create.
120
+ */
121
+ active: boolean;
122
+ /**
123
+ * An element inside this question's own pane, for popovers, tooltips and
124
+ * dialogs. Portal into it rather than into `document.body`: a pane the
125
+ * learner has paged away from is hidden, and anything portalled out of it
126
+ * stays on screen over the next question — and in fullscreen, only the
127
+ * subtree being painted is visible at all.
128
+ *
129
+ * It is the same element for as long as the set is on screen, and is `null`
130
+ * only before the first commit.
131
+ */
132
+ portalContainer: HTMLElement | null;
133
+ /**
134
+ * The learner withdrew their answer — a "Try again". The question counts as
135
+ * unanswered again and its outcome is forgotten, so the set is not complete
136
+ * until it is answered again. Calls no host callback: the host already knows.
137
+ */
138
+ clear(): void;
139
+ /**
140
+ * Work is on its way for this question — an upload, an assessment, a save.
141
+ * While any question is pending, the set is not reported: `onFinished` and
142
+ * `onComplete` wait for it. Paging does not wait.
143
+ *
144
+ * Call `setPending(false)` however the work ends, a failure included.
145
+ */
146
+ setPending(pending: boolean): void;
147
+ /** Forwards to `onInteraction`, with this question's `activityId` and the time filled in. */
148
+ emit(type: InteractionKind, payload?: Record<string, unknown>): void;
149
+ }
150
+ /**
151
+ * A component that can render one activity inside a sequence. Register one per
152
+ * activity `type` to put a consumer-defined type on screen — the React half of
153
+ * the activity-type registry, matching `registerActivityType` in lk-core.
154
+ *
155
+ * It receives the shared {@link ActivityProps} and one prop beyond them:
156
+ * `question`, the pager's half of the contract ({@link SequenceQuestion}). A
157
+ * renderer written as `ComponentType<ActivityProps>` still fits and simply
158
+ * ignores it.
159
+ */
160
+ type ActivityRenderer = ComponentType<ActivityProps & {
161
+ question?: SequenceQuestion;
162
+ }>;
163
+ interface ActivitySequenceProps {
164
+ /**
165
+ * The ordered set of entries to present, one question at a time: loose
166
+ * activities, and item groups — a shared passage, recording or image with
167
+ * the questions that refer to it. A group's stimulus stays on screen
168
+ * alongside each of its questions.
169
+ *
170
+ * Accepts `redact()` projections. For data straight off a server, pass it
171
+ * through `asRenderableSequence()` — see that helper for why a cast is
172
+ * unavoidable there — and set `renderMode="exam"`.
173
+ */
174
+ activities: readonly SequenceEntry<RenderableActivity>[];
175
+ /**
176
+ * Renderers for activity types beyond the built-ins, keyed by `data.type`.
177
+ * A key matching a built-in overrides it, so a consumer can replace the
178
+ * bundled renderer without forking the sequencer.
179
+ *
180
+ * A registered renderer is an {@link ActivityRenderer}: it receives the
181
+ * shared prop contract, plus `question` — the pager's half of the contract
182
+ * ({@link SequenceQuestion}), which tells it when its question is on screen,
183
+ * holds the set while its work is in flight, and gives it somewhere to
184
+ * portal a popover. `shuffleSeed`, `recordingBinding`, `assessment` and
185
+ * `workletUrl` are outside both and reach no override: a replacement for
186
+ * `read-aloud` has to be given its own binding by whoever wrote it.
187
+ */
188
+ renderers?: Readonly<Record<string, ActivityRenderer>>;
189
+ /**
190
+ * Called whenever an individual activity is scored at submit time — the
191
+ * incremental persist hook.
192
+ *
193
+ * `slotId` is the identity to store the result against, NOT `index`.
194
+ * `index` is where the question was PRESENTED, which is not stable: it moves
195
+ * under shuffling, and it already differs from the slot identity whenever a
196
+ * group is present (the second entry of a sequence is presented at index 1
197
+ * but is slot `"1.0"` if it is a group's first question). `composeAssessmentScore`
198
+ * scores by `slotId`, so persisting `index` cannot be reconciled with it.
199
+ */
200
+ onActivityComplete?: (result: ActivityResult, index: number, slotId: string) => void;
201
+ /**
202
+ * Called on every submit with the learner's raw response and the identity of
203
+ * the slot that produced it — before any grading, in every render mode.
204
+ *
205
+ * **This is the only response channel an `exam` sequence has.** In `exam`
206
+ * mode the components never grade, so `onActivityComplete` cannot fire and
207
+ * `onComplete` never will; without this prop nothing a learner submitted
208
+ * would reach the consumer at all. Persist `response` against `slotId`.
209
+ */
210
+ onSubmit?: (response: LearnerResponse, slot: {
211
+ slotId: string;
212
+ index: number;
213
+ activityId: string;
214
+ }) => void;
215
+ /**
216
+ * Called once every activity has been completed, with the scored results.
217
+ *
218
+ * Fires only when EVERY item produced a score. A set containing a
219
+ * deferred-graded activity (a written response) can never satisfy that, so
220
+ * use `onFinished` for mixed sets — it is the general completion signal and
221
+ * reports both kinds of outcome. It also carries `slotId` per item, which
222
+ * this callback's bare array cannot.
223
+ *
224
+ * It fires straight after `onFinished`, with the same results, or never: a
225
+ * set `onFinished` reported with an ungraded slot is not reported here later,
226
+ * when a re-recorded take is graded.
227
+ */
228
+ onComplete?: (results: ActivityResult[]) => void;
229
+ /**
230
+ * Called once every activity has been completed, whether it was scored at
231
+ * submit time or submitted for later grading. Use this for any set that
232
+ * mixes graded and deferred-graded activities.
233
+ *
234
+ * **Once per set**, and that matters for a `practice` read-aloud, whose grade
235
+ * arrives after the submit that completed the slot. When the last slot is
236
+ * filled while a read-aloud's take is still being stored or assessed, this
237
+ * waits for it and reports the set then — with the grade in place, or with
238
+ * the slot's raw `responded` outcome when the take came back with no grade.
239
+ * A take that never settles is a question still being answered, so the set
240
+ * is not reported while it runs.
241
+ *
242
+ * **A failure the learner can still retry is in flight too.** While a take
243
+ * that failed to upload, or whose assessment failed, is offered "Try again"
244
+ * on the question the learner is looking at, the set is not reported: the
245
+ * retry may yet store and grade it. It completes once the learner moves to
246
+ * another question — as the last take the slot stored, or as `unsubmitted`
247
+ * when it never stored one, which is never a blank.
248
+ *
249
+ * **A score and a response always describe the same take.** A read-aloud
250
+ * recorded again replaces the earlier take's grade with the new take's
251
+ * `responded`, and a result that arrives for a take the learner has since
252
+ * replaced, or for a paper no longer on screen, is not recorded at all.
253
+ *
254
+ * `onComplete` fires in the same report or not at all, so the two never
255
+ * describe one set differently. What arrives after the set was reported is
256
+ * not reported here again, because a consumer who persists on this callback
257
+ * must not write one attempt twice: a later take reaches you through
258
+ * `onSubmit`, and its grade through `onActivityComplete`, the per-item persist
259
+ * hook keyed by `slotId` — which only ever grades the answer `onSubmit` last
260
+ * reported for that slot.
261
+ */
262
+ onFinished?: (items: SequenceItemOutcome[]) => void;
263
+ /** Forwarded to each activity. */
264
+ onInteraction?: (event: InteractionEvent) => void;
265
+ /** Forwarded to each activity. `exam` and `review` disable local scoring. */
266
+ renderMode?: RenderMode;
267
+ /**
268
+ * Binds every budgeted recording in this sequence to a play ledger the
269
+ * consumer persists.
270
+ *
271
+ * The SDK refuses a play; it does not remember one. `plays` seeds the counts
272
+ * at mount (pass `restoreMediaPlayLedger(plan, stored).entries`), and
273
+ * `onPlayConsumed` is how a play becomes durable — see
274
+ * {@link SequenceMediaBudget}.
275
+ */
276
+ mediaBudget?: SequenceMediaBudget;
277
+ /**
278
+ * Where every read-aloud take in this sequence is stored, and how a
279
+ * judgement comes back. Required by any `read-aloud` slot outside `review`:
280
+ * the component refuses to render a recorder whose take is stored nowhere.
281
+ *
282
+ * Named `recordingBinding` rather than `recording` because both
283
+ * `ReadAloudData.recording` (the bounds an item declares) and
284
+ * `ReadAloudLearnerResponse.recording` (the take a learner handed in) already
285
+ * exist — the plain name would read as one of those. Same name at both
286
+ * levels, different types, as `mediaBudget` has.
287
+ */
288
+ recordingBinding?: SequenceRecordingBinding;
289
+ /**
290
+ * Speech assessments keyed by `slotId`, forwarded to the matching read-aloud
291
+ * slot so `review` can show the per-word marks behind a stored grade.
292
+ *
293
+ * Read LIVE, like `outcomes` and unlike `responses`: an assessment is fetched
294
+ * beside the attempt it explains and lands after the first paint, and a
295
+ * mount-only read would show the grade with no marks under it for ever.
296
+ */
297
+ assessments?: Readonly<Record<string, SpeechAssessment>>;
298
+ /**
299
+ * The URL of a self-hosted copy of `CAPTURE_PROCESSOR_SOURCE`, forwarded to
300
+ * every read-aloud slot's recorder, for a Content-Security-Policy whose
301
+ * `script-src` does not allow `blob:`. See `ReadAloudProps.workletUrl`. Like
302
+ * `recordingBinding`, it does not reach a `renderers` override.
303
+ */
304
+ workletUrl?: string;
305
+ /** Overrides the SDK's chrome text for this sequence. See {@link LkIntlProvider}. */
306
+ strings?: LkStringsOverride;
307
+ /**
308
+ * The host's AI ports, for every question this renders: explanations after
309
+ * grading, hints before submit. The same as `LkAiProvider`, for this one
310
+ * sequence, and a `renderers` override receives them as its own `ai` prop —
311
+ * except in `exam`, where nothing AI appears and no question is given them.
312
+ * See {@link LearnerAi}.
313
+ */
314
+ ai?: LearnerAi;
315
+ /**
316
+ * What the school running this paper lets a learner see — feedback,
317
+ * solutions, hints, AI help — for every question in it. Each setting only
318
+ * takes away from what `renderMode` shows; an absent policy takes nothing.
319
+ *
320
+ * It holds in every question however it is drawn: the SDK's own components
321
+ * and a `renderers` override are handed it as `delivery`, and a question
322
+ * that ignores what it was handed still cannot show AI help the paper
323
+ * forbids. Record the same policy in the attempt with
324
+ * `planAttempt(entries, { delivery })`. See `DeliveryPolicy` in lk-core.
325
+ */
326
+ delivery?: DeliveryPolicy | null;
327
+ /**
328
+ * How every question in the paper is scored when a learner can try again or
329
+ * ask for hints: how many tries each gives, which one counts, and what tries
330
+ * and hints cost. Applies in `practice`, where the questions grade; absent,
331
+ * each question is one try and costs nothing, as before.
332
+ *
333
+ * It holds in every question: the paper's policy wins over one a question
334
+ * was handed. The set is not reported while the question on screen offers
335
+ * another try, nor while any question is being tried again — the next try
336
+ * may change its grade — and once the set is reported, every question's
337
+ * tries close. A later try replaces a question's
338
+ * outcome until then, so `onActivityComplete` can fire more than once for a
339
+ * slot: keep the last. Record the same policy with
340
+ * `planAttempt(entries, { scoring })`. See `ItemScoringPolicy` in lk-core.
341
+ *
342
+ * A policy `validateItemScoringPolicy` refuses throws at render.
343
+ */
344
+ scoring?: ItemScoringPolicy | null;
345
+ /**
346
+ * `entries` shuffles the top-level entries; a group moves as one block, and
347
+ * the order INSIDE a group follows the group's own `shuffle` setting.
348
+ * Default `none`: authored order.
349
+ */
350
+ shuffle?: 'none' | 'entries';
351
+ /**
352
+ * Seed for every shuffle in this sequence (`shuffle: 'entries'` and any
353
+ * group with `shuffle: 'within-group'`). Supply the attempt id, so the
354
+ * server's `flattenSequence(entries, { seed })` derives the same order this
355
+ * pager shows.
356
+ *
357
+ * **Required whenever this sequence shuffles** — `shuffle: 'entries'`, or any
358
+ * group with `shuffle: 'within-group'` — in `exam` or `review` mode; omitting
359
+ * it then throws. An order nobody can reproduce cannot be reconciled with a
360
+ * recorded attempt, and failing at render is the only way that mistake
361
+ * surfaces before a learner sits the paper. A sequence that does not shuffle
362
+ * needs no seed in any mode.
363
+ *
364
+ * The guard covers an activity's own `data.shuffle` too, a group's items
365
+ * included: `<MultipleChoice>` would otherwise fall back to a per-mount seed,
366
+ * in every mode.
367
+ *
368
+ * In `practice` mode it stays optional: a random per-mount seed is used,
369
+ * stable within the mount and deliberately not reproducible. That fallback is
370
+ * also not SSR-safe (server and client would invent different orders and
371
+ * hydration would mismatch), so supply a seed for any server-rendered
372
+ * sequence regardless of mode.
373
+ */
374
+ shuffleSeed?: string;
375
+ /**
376
+ * Where to open. Defaults to the first question; pass a stored
377
+ * `AttemptState.index` to reopen an interrupted attempt where it was left.
378
+ * Read at mount only, like any `default*` prop.
379
+ */
380
+ defaultIndex?: number;
381
+ /**
382
+ * Fires whenever the learner moves. Persist it and the next resume reopens
383
+ * on the right question — without it, the pager's position is the one piece
384
+ * of an attempt a consumer cannot recover.
385
+ */
386
+ onIndexChange?: (index: number) => void;
387
+ /**
388
+ * Answers to restore, keyed by `slotId`, seeded into each slot as its
389
+ * `defaultValue`. This is the other half of resume: `AttemptState.responses`
390
+ * goes straight in.
391
+ *
392
+ * Read at mount only. To restore a different attempt, remount with a `key`.
393
+ */
394
+ responses?: Readonly<Record<string, LearnerResponse>>;
395
+ /**
396
+ * Slots the learner had already submitted, from `AttemptState.submittedSlotIds`.
397
+ * Each is mounted already submitted, so a resumed paper does not reopen a
398
+ * locked question as answerable — without this a learner can change and
399
+ * re-submit work they had already committed.
400
+ *
401
+ * Read at mount only, alongside `responses`.
402
+ */
403
+ submittedSlotIds?: readonly string[];
404
+ /**
405
+ * Server-computed outcomes keyed by `slotId`, forwarded to each slot. In
406
+ * `review` mode this is what marks correctness — the client never scores, so
407
+ * without it a review render has nothing to show.
408
+ */
409
+ outcomes?: Readonly<Record<string, ItemOutcome>>;
410
+ /** Renders author-supplied rich text; forwarded to the stimulus panel and every activity. */
411
+ sanitizeHtml?: HtmlSanitizer;
412
+ theme?: Partial<ThemeTokens>;
413
+ /**
414
+ * BCP 47 tag stamped as `lang` on this component's root. This is the
415
+ * INTERFACE language — the SDK's own chrome renders inside that element — so
416
+ * it should carry the same value you give `<LkIntlProvider locale>`. Passing
417
+ * a different one re-declares the language of every SDK string in this
418
+ * subtree without changing the words.
419
+ *
420
+ * It is NOT `data.locale`, which labels xAPI statements — and, on a
421
+ * dictation, places the dictation's own words: `<Dictation>` puts it, and
422
+ * the direction it names, on its title, hints, marks and solution. Other
423
+ * authored content in another language belongs on `stimulus.locale`, which
424
+ * `<StimulusPanel>` puts on the passage alone.
425
+ */
426
+ locale?: string;
427
+ disabled?: boolean;
428
+ }
429
+ declare function ActivitySequence({ activities, renderers, onActivityComplete, onComplete, onFinished, onSubmit, onInteraction, renderMode, shuffle, shuffleSeed, defaultIndex, onIndexChange, responses, submittedSlotIds, outcomes, sanitizeHtml, theme, locale, disabled, mediaBudget, recordingBinding, assessments, workletUrl, strings, ai, delivery, scoring }: ActivitySequenceProps): React.JSX.Element;
430
+ //#endregion
431
+ export { SequenceQuestion as a, SequenceItemOutcome as i, ActivitySequence as n, ActivitySequenceProps as r, ActivityRenderer as t };
432
+ //# sourceMappingURL=index-6P4rJHrJ.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-6P4rJHrJ.d.cts","names":[],"sources":["../src/components/ActivitySequence/ActivitySequence.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;KAiFY;EAEN;;EAEA;;EAEA;EACA;EACA,QAAQ;;;;;;;;EAQR,WAAW;;EAGX;EACA;EACA;EACA;;EAEA,YAAY;;EAGZ;EACA;EACA;EACA;;;;;;EAMA,WAAW;;EAGX;EACA;EACA;EACA;;;;;;;;;;EAUA,UAAU;;;;;;;;;;;;;EAcV;EACA;EACA;EACA;;;;;;;;;;;;;UAcW;;;;;;EAMf,MAAM;;;;;;;;;;EAUN;;;;;;;;;;;EAWA,iBAAiB;;;;;;EAMjB;;;;;;;;EAQA,WAAW;;EAEX,KAAK,MAAM,iBAAiB,UAAU;;;;;;;;;;;;KAa5B,mBAAmB,cAAc;EAAkB,WAAW;;UAiBzD;;;;;;;;;;;EAWf,qBAAqB,cAAc;;;;;;;;;;;;;;EAcnC,YAAY,SAAS,eAAe;;;;;;;;;;;;EAYpC,sBAAsB,QAAQ,gBAAgB,eAAe;;;;;;;;;;EAU7D,YACE,UAAU,iBACV;IAAQ;IAAgB;IAAe;;;;;;;;;;;;;;;EAezC,cAAc,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCvB,cAAc,OAAO;;EAErB,iBAAiB,OAAO;;EAExB,aAAa;;;;;;;;;;EAUb,cAAc;;;;;;;;;;;;EAYd,mBAAmB;;;;;;;;;EASnB,cAAc,SAAS,eAAe;;;;;;;EAOtC;;EAEA,UAAU;;;;;;;;EAQV,KAAK;;;;;;;;;;;;EAYL,WAAW;;;;;;;;;;;;;;;;;;EAkBX,UAAU;;;;;;EAMV;;;;;;;;;;;;;;;;;;;;;;;;EAwBA;;;;;;EAMA;;;;;;EAMA,iBAAiB;;;;;;;;EAQjB,YAAY,SAAS,eAAe;;;;;;;;;EASpC;;;;;;EAMA,WAAW,SAAS,eAAe;;EAEnC,eAAe;EACf,QAAQ,QAAQ;;;;;;;;;;;;;;EAchB;EACA;;iBAgJc,mBACd,YACA,WACA,oBACA,YACA,YACA,UACA,eACA,YACA,SACA,aACA,cACA,eACA,WACA,kBACA,UACA,cACA,OACA,QACA,UACA,aACA,kBACA,aACA,YACA,SACA,IACA,UACA,WACC,wBAAwB,MAAM,IAAI"}