@cuemath/leap 3.5.48-gg1 → 3.5.48-j2

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 (249) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -3
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/bulb.js +10 -10
  4. package/dist/assets/line-icons/icons/bulb.js.map +1 -1
  5. package/dist/assets/line-icons/icons/hand.js.map +1 -1
  6. package/dist/assets/line-icons/icons/scribble.js +36 -13
  7. package/dist/assets/line-icons/icons/scribble.js.map +1 -1
  8. package/dist/assets/line-icons/icons/sticker.js +9 -9
  9. package/dist/assets/line-icons/icons/sticker.js.map +1 -1
  10. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -1
  11. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +6 -6
  12. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  13. package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js +2 -2
  14. package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js.map +1 -1
  15. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +29 -64
  16. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
  17. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +2 -2
  18. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  19. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +107 -103
  20. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  21. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +2 -2
  22. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  23. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +104 -96
  24. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  25. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +134 -115
  26. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  27. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +95 -91
  28. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  29. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +92 -74
  30. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  31. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +28 -25
  32. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  33. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +214 -170
  34. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  35. package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js +20 -0
  36. package/dist/features/milestone/milestone-resources/resources-assign/store/action-types.js.map +1 -0
  37. package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js +55 -0
  38. package/dist/features/milestone/milestone-resources/resources-assign/store/actions.js.map +1 -0
  39. package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js +38 -0
  40. package/dist/features/milestone/milestone-resources/resources-assign/store/initial-state.js.map +1 -0
  41. package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js +58 -0
  42. package/dist/features/milestone/milestone-resources/resources-assign/store/reducer.js.map +1 -0
  43. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +40 -39
  44. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  45. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +44 -43
  46. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  47. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +51 -42
  48. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  49. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +85 -72
  50. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  51. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +34 -25
  52. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  53. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +5 -0
  54. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
  55. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +146 -89
  56. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  57. package/dist/features/puzzles/app/puzzle-app-view.js +40 -40
  58. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
  59. package/dist/features/trial-session/comps/learning-plan/index.js +268 -83
  60. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  61. package/dist/features/trial-session/hooks/use-learning-plan-sync.js +29 -0
  62. package/dist/features/trial-session/hooks/use-learning-plan-sync.js.map +1 -0
  63. package/dist/features/trial-session/trial-session-types.js +3 -2
  64. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  65. package/dist/features/ui/tabs/tabs.js +15 -15
  66. package/dist/features/ui/tabs/tabs.js.map +1 -1
  67. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +1 -0
  68. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
  69. package/dist/features/worksheet/worksheet/constants.js +13 -12
  70. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  71. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +100 -123
  72. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  73. package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js +1 -1
  74. package/dist/features/worksheet/worksheet/hooks/use-worksheet-store.js.map +1 -1
  75. package/dist/features/worksheet/worksheet/question-tips.js +100 -0
  76. package/dist/features/worksheet/worksheet/question-tips.js.map +1 -0
  77. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +109 -40
  78. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  79. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +46 -49
  80. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  81. package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js +4 -4
  82. package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js.map +1 -1
  83. package/dist/features/worksheet/worksheet/worksheet-helpers.js +276 -129
  84. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  85. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js +25 -25
  86. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
  87. package/dist/features/worksheet/worksheet/worksheet-provider.js +1 -1
  88. package/dist/features/worksheet/worksheet/worksheet-provider.js.map +1 -1
  89. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +25 -22
  90. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  91. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop-styled.js +20 -26
  92. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop-styled.js.map +1 -1
  93. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js +17 -32
  94. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
  95. package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js +22 -17
  96. package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
  97. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js +1 -1
  98. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/basic-practice-intro.js.map +1 -1
  99. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/regular-practice-intro.js +2 -2
  100. package/dist/features/worksheet/worksheet/worksheet-question/system-intros/regular-practice-intro.js.map +1 -1
  101. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +50 -32
  102. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  103. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +287 -377
  104. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  105. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js +53 -0
  106. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -0
  107. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +191 -0
  108. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -0
  109. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +345 -20
  110. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  111. package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js +20 -33
  112. package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
  113. package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js +112 -0
  114. package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -0
  115. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +61 -0
  116. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -0
  117. package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +91 -0
  118. package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -0
  119. package/dist/features/worksheet/worksheet/worksheet-store.js +289 -0
  120. package/dist/features/worksheet/worksheet/worksheet-store.js.map +1 -0
  121. package/dist/features/worksheet/worksheet/worksheet-styled.js +83 -29
  122. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  123. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js +24 -45
  124. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
  125. package/dist/features/worksheet/worksheet/worksheet-types.js +3 -4
  126. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  127. package/dist/features/worksheet/worksheet/worksheet-view.js +99 -88
  128. package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
  129. package/dist/features/worksheet/worksheet/worksheet.js +117 -126
  130. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  131. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +29 -29
  132. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  133. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +16 -16
  134. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  135. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +24 -24
  136. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  137. package/dist/index.d.ts +129 -68
  138. package/dist/index.js +745 -760
  139. package/dist/index.js.map +1 -1
  140. package/dist/node_modules/decode-uri-component/index.js.map +1 -0
  141. package/dist/node_modules/query-string/base.js +1 -1
  142. package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
  143. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  144. package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
  145. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  146. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
  147. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  148. package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
  149. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  150. package/dist/types/models/worksheet.js +1 -2
  151. package/dist/types/models/worksheet.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/assets/line-icons/icons/chevron-up.js +0 -28
  154. package/dist/assets/line-icons/icons/chevron-up.js.map +0 -1
  155. package/dist/assets/line-icons/icons/close.js +0 -28
  156. package/dist/assets/line-icons/icons/close.js.map +0 -1
  157. package/dist/assets/line-icons/icons/cursor2.js +0 -24
  158. package/dist/assets/line-icons/icons/cursor2.js.map +0 -1
  159. package/dist/assets/line-icons/icons/hints.js +0 -25
  160. package/dist/assets/line-icons/icons/hints.js.map +0 -1
  161. package/dist/assets/line-icons/icons/question-feedback.js +0 -30
  162. package/dist/assets/line-icons/icons/question-feedback.js.map +0 -1
  163. package/dist/assets/line-icons/icons/teaching-tools.js +0 -40
  164. package/dist/assets/line-icons/icons/teaching-tools.js.map +0 -1
  165. package/dist/assets/line-icons/icons/tval-question.js +0 -32
  166. package/dist/assets/line-icons/icons/tval-question.js.map +0 -1
  167. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
  168. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
  169. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js +0 -15
  170. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-allow-retry-button-click.js.map +0 -1
  171. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js +0 -18
  172. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-back-button-click.js.map +0 -1
  173. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js +0 -21
  174. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-check-button-click.js.map +0 -1
  175. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js +0 -19
  176. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-next-button-click.js.map +0 -1
  177. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js +0 -34
  178. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-ready-button-click.js.map +0 -1
  179. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js +0 -38
  180. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-response-change.js.map +0 -1
  181. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js +0 -16
  182. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-retry-button-click.js.map +0 -1
  183. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js +0 -35
  184. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-button-click.js.map +0 -1
  185. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js +0 -12
  186. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-skip-section-button-click.js.map +0 -1
  187. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js +0 -44
  188. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-start-button-click.js.map +0 -1
  189. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js +0 -51
  190. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-submit-quiz.js.map +0 -1
  191. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js +0 -19
  192. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-handle-validate-button-click.js.map +0 -1
  193. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js +0 -23
  194. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-play-validation-audio.js.map +0 -1
  195. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js +0 -36
  196. package/dist/features/worksheet/worksheet/worksheet-questions-controller/hooks/use-validate-question.js.map +0 -1
  197. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js +0 -184
  198. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3.js.map +0 -1
  199. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js +0 -261
  200. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js.map +0 -1
  201. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js +0 -180
  202. package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller.js.map +0 -1
  203. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js +0 -77
  204. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3.js.map +0 -1
  205. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js +0 -103
  206. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller-lesson-v3_1.js.map +0 -1
  207. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js +0 -21
  208. package/dist/features/worksheet/worksheet/worksheet-questions-controller/teacher/controller.js.map +0 -1
  209. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js +0 -22
  210. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller-view.js.map +0 -1
  211. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +0 -49
  212. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +0 -1
  213. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +0 -191
  214. package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +0 -1
  215. package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js +0 -65
  216. package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js.map +0 -1
  217. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js +0 -9
  218. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js.map +0 -1
  219. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js +0 -38
  220. package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map +0 -1
  221. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js +0 -73
  222. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map +0 -1
  223. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js +0 -20
  224. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-derived-blocker.js.map +0 -1
  225. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js +0 -69
  226. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-attemptable-question-index.js.map +0 -1
  227. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js +0 -18
  228. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-last-unlocked-question-index.js.map +0 -1
  229. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js +0 -19
  230. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-merged-response-state.js.map +0 -1
  231. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js +0 -138
  232. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js.map +0 -1
  233. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js +0 -9
  234. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-renderable-questions.js.map +0 -1
  235. package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js +0 -230
  236. package/dist/features/worksheet/worksheet/worksheet-store/worksheet-store.js.map +0 -1
  237. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js +0 -19
  238. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js.map +0 -1
  239. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js +0 -72
  240. package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js.map +0 -1
  241. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +0 -1
  242. package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
  243. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
  244. package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
  245. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
  246. package/dist/static/pattern-cubes.113d8dda.svg +0 -1
  247. package/dist/static/pattern-diamond.a51b202c.svg +0 -1
  248. package/dist/static/pattern-honeycomb.ed7ad26a.svg +0 -1
  249. /package/dist/node_modules/{query-string/node_modules/decode-uri-component → decode-uri-component}/index.js +0 -0
@@ -1,133 +1,190 @@
1
- import { jsx as l, jsxs as W } from "react/jsx-runtime";
2
- import { memo as G, useState as P, useCallback as i, useEffect as E } from "react";
3
- import U from "../../../ui/buttons/button/button.js";
4
- import X from "../../../ui/layout/flex-view.js";
5
- import q from "../../../ui/loader/app-loader/app-loader.js";
6
- import z from "../../../ui/text/text.js";
7
- import { useMilestoneGet as B } from "../../edit/comps/edit-milestone-modal/api/get-milestone.js";
8
- import { usePostTestHelpPreview as Y } from "./api/preview-test-sheet.js";
9
- import { usePostTestSheetAssign as J } from "./api/test-sheet-assign.js";
10
- import K from "./test-stages/chapter-selection/chapter-selection.js";
11
- import Q from "./test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js";
12
- import Z from "./test-stages/test-preview/test-preview.js";
13
- const ee = {
1
+ import { jsx as f, jsxs as B } from "react/jsx-runtime";
2
+ import { memo as Y, useState as E, useCallback as o, useEffect as T } from "react";
3
+ import J from "../../../ui/buttons/button/button.js";
4
+ import K from "../../../ui/layout/flex-view.js";
5
+ import Q from "../../../ui/loader/app-loader/app-loader.js";
6
+ import Z from "../../../ui/text/text.js";
7
+ import { useMilestoneGet as ee } from "../../edit/comps/edit-milestone-modal/api/get-milestone.js";
8
+ import { usePostTestHelpPreview as te } from "./api/preview-test-sheet.js";
9
+ import { usePostTestSheetAssign as se } from "./api/test-sheet-assign.js";
10
+ import ie from "./test-stages/chapter-selection/chapter-selection.js";
11
+ import ne from "./test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js";
12
+ import re from "./test-stages/test-preview/test-preview.js";
13
+ import { ETestsStage as p } from "./tests-creation-types.js";
14
+ const oe = {
14
15
  selectedChapters: null,
15
16
  difficultyLevel: null,
16
17
  title: null,
17
18
  duration: null,
18
19
  chapters: null
19
- }, te = G(function(y) {
20
- const { milestoneId: s, studentId: O, testNumber: D, onTestAssign: C, onExit: L, onError: c } = y, [_, x] = P("CHAPTER_SELECTION"), [o, f] = P(ee), [h, v] = P([]), m = i((e) => {
21
- x(e);
22
- }, []), F = i(
23
- (e, t) => {
24
- (e || !(t != null && t.length)) && (m("CHAPTER_SELECTION"), f((n) => {
25
- const { chapters: r, selectedChapters: u } = n, V = r == null ? void 0 : r.map((T) => u != null && u.includes(T.id) ? {
26
- ...T,
20
+ }, le = Y(function(R) {
21
+ const {
22
+ milestoneId: l,
23
+ studentId: $,
24
+ testNumber: b,
25
+ userType: v = "TEACHER",
26
+ state: e,
27
+ onStateChange: s,
28
+ onTestAssign: _,
29
+ onExit: M,
30
+ onError: h
31
+ } = R, [u, g] = E(
32
+ (e == null ? void 0 : e.testStage) ?? p.CHAPTER_SELECTION
33
+ ), [n, d] = E(
34
+ (e == null ? void 0 : e.testFormData) ?? oe
35
+ ), [r, A] = E(
36
+ (e == null ? void 0 : e.testPreviewItems) ?? []
37
+ ), F = o(
38
+ (t) => {
39
+ g(t), s == null || s({ testStage: t, testFormData: n, testPreviewItems: r });
40
+ },
41
+ [n, r, s]
42
+ ), x = o(
43
+ (t, i) => {
44
+ (t || !(i != null && i.length)) && (d((m) => {
45
+ const { chapters: a, selectedChapters: c } = m, z = a == null ? void 0 : a.map((D) => c != null && c.includes(D.id) ? {
46
+ ...D,
27
47
  item_bank_enabled: !1
28
- } : T);
29
- return {
30
- ...n,
31
- chapters: V ?? null,
48
+ } : D), N = {
49
+ ...m,
50
+ chapters: z ?? null,
32
51
  selectedChapters: null,
33
52
  difficultyLevel: null,
34
53
  duration: null
35
54
  };
36
- }), c(
55
+ return s == null || s({
56
+ testStage: p.CHAPTER_SELECTION,
57
+ testFormData: N,
58
+ testPreviewItems: []
59
+ }), N;
60
+ }), g(p.CHAPTER_SELECTION), h(
37
61
  "We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed."
38
- )), e ? c(e) : t && v(t);
62
+ )), t ? h(t) : i && (A(i), s == null || s({ testStage: u, testFormData: n, testPreviewItems: i }));
39
63
  },
40
- [c, v, m]
41
- ), H = i(
42
- (e) => {
43
- e ? c(e) : C();
64
+ [h, u, n, s]
65
+ ), j = o(
66
+ (t) => {
67
+ t ? h(t) : _();
44
68
  },
45
- [c, C]
69
+ [h, _]
46
70
  ), {
47
- get: I,
48
- data: N,
49
- isProcessing: $,
50
- isProcessingFailed: b,
51
- error: p
52
- } = B(s, {
71
+ get: O,
72
+ data: k,
73
+ isProcessing: V,
74
+ isProcessingFailed: W,
75
+ error: I
76
+ } = ee(l, {
53
77
  with_sheets: !0
54
- }), { post: A, isProcessing: M } = Y({
55
- onComplete: F
56
- }), { post: S, isProcessing: R } = J({
57
- onComplete: H
58
- }), { user_milestone_plan: j } = N || {}, { user_chapters: a } = j || {}, w = i(
59
- (e) => {
60
- A(e);
78
+ }), { post: y, isProcessing: G } = te({
79
+ onComplete: x
80
+ }), { post: S, isProcessing: U } = se({
81
+ onComplete: j
82
+ }), { user_milestone_plan: X } = k || {}, { user_chapters: P } = X || {}, L = o(
83
+ (t) => {
84
+ y(t);
61
85
  },
62
- [A]
63
- ), d = i(() => {
64
- I(s, {
86
+ [y]
87
+ ), w = o(() => {
88
+ O(l, {
65
89
  with_sheets: !0
66
90
  });
67
- }, [I, s]), k = i(() => {
68
- const { duration: e, difficultyLevel: t, selectedChapters: n } = o;
69
- e && t && n && S(
91
+ }, [O, l]), q = o(() => {
92
+ const { duration: t, difficultyLevel: i, selectedChapters: m } = n;
93
+ t && i && m && S(
70
94
  {
71
- items: h,
95
+ items: r,
72
96
  node_params: {
73
97
  is_timed: !0,
74
- sheet_time: e * 60,
75
- difficulty_level: t
98
+ sheet_time: t * 60,
99
+ difficulty_level: i
76
100
  }
77
101
  },
78
102
  {
79
- userMilestoneId: s
103
+ userMilestoneId: l
80
104
  }
81
105
  );
82
- }, [S, o, s, h]), g = i(
83
- (e, t) => {
84
- if (m(e), t) {
85
- const { difficultyLevel: n, duration: r } = t;
86
- f((u) => ({ ...u, ...t })), e === "PREVIEW" && n && r && w({
87
- difficulty_level: n,
88
- duration: r,
89
- user_chapter_ids: o.selectedChapters || []
106
+ }, [S, n, l, r]), H = o(
107
+ (t) => {
108
+ d(t), s == null || s({ testStage: u, testFormData: t, testPreviewItems: r });
109
+ },
110
+ [u, r, s]
111
+ ), C = o(
112
+ (t, i) => {
113
+ if (i) {
114
+ const { difficultyLevel: m, duration: a } = i, c = { ...n, ...i };
115
+ d(c), g(t), s == null || s({ testStage: t, testFormData: c, testPreviewItems: r }), t === p.PREVIEW && m && a && L({
116
+ difficulty_level: m,
117
+ duration: a,
118
+ user_chapter_ids: c.selectedChapters || []
90
119
  });
91
- }
120
+ } else
121
+ F(t);
92
122
  },
93
- [m, w, o]
123
+ [
124
+ F,
125
+ L,
126
+ n,
127
+ r,
128
+ s
129
+ ]
94
130
  );
95
- return E(() => {
96
- s && d();
97
- }, [s, d]), E(() => {
98
- a && a.length > 0 && f((e) => ({ ...e, chapters: a }));
99
- }, [a]), $ || M ? /* @__PURE__ */ l(q, { height: "100vh" }) : b ? /* @__PURE__ */ W(X, { $height: "100vh", $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
100
- /* @__PURE__ */ l(z, { $renderAs: "h6", children: (p == null ? void 0 : p.message) || "Oops! Something went wrong." }),
101
- /* @__PURE__ */ l(
102
- U,
131
+ return T(() => {
132
+ l && w();
133
+ }, [l, w]), T(() => {
134
+ P && P.length > 0 && d((t) => ({ ...t, chapters: P }));
135
+ }, [P]), T(() => {
136
+ (e == null ? void 0 : e.testStage) !== void 0 && g(e.testStage);
137
+ }, [e == null ? void 0 : e.testStage]), T(() => {
138
+ (e == null ? void 0 : e.testFormData) !== void 0 && d((t) => ({
139
+ ...t,
140
+ ...e.testFormData
141
+ }));
142
+ }, [e == null ? void 0 : e.testFormData]), T(() => {
143
+ (e == null ? void 0 : e.testPreviewItems) !== void 0 && A(e.testPreviewItems);
144
+ }, [e == null ? void 0 : e.testPreviewItems]), V || G ? /* @__PURE__ */ f(Q, { height: "100vh" }) : W ? /* @__PURE__ */ B(K, { $height: "100vh", $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
145
+ /* @__PURE__ */ f(Z, { $renderAs: "h6", children: (I == null ? void 0 : I.message) || "Oops! Something went wrong." }),
146
+ /* @__PURE__ */ f(
147
+ J,
103
148
  {
104
149
  widthX: 14,
105
150
  size: "small",
106
151
  shape: "square",
107
152
  renderAs: "primary",
108
153
  label: "Try again",
109
- onClick: d
154
+ onClick: w
110
155
  }
111
156
  )
112
- ] }) : a ? _ === "PREVIEW" ? /* @__PURE__ */ l(
113
- Z,
157
+ ] }) : P ? u === p.PREVIEW ? /* @__PURE__ */ f(
158
+ re,
159
+ {
160
+ studentId: $,
161
+ items: r,
162
+ testNumber: b,
163
+ isAssignInProgress: U,
164
+ onTestStageChange: C,
165
+ onTestSheetAssign: q,
166
+ userType: v
167
+ }
168
+ ) : u === p.DIFFICULTY_AND_DURATION_SELECTION ? /* @__PURE__ */ f(
169
+ ne,
114
170
  {
115
- studentId: O,
116
- items: h,
117
- testNumber: D,
118
- isAssignInProgress: R,
119
- onTestStageChange: g,
120
- onTestSheetAssign: k
171
+ testFormData: n,
172
+ userType: v,
173
+ onTestStageChange: C,
174
+ onFormDataChange: H
121
175
  }
122
- ) : _ === "DIFFICULTY_AND_DURATION_SELECTION" ? /* @__PURE__ */ l(
123
- Q,
176
+ ) : /* @__PURE__ */ f(
177
+ ie,
124
178
  {
125
- testFormData: o,
126
- onTestStageChange: g
179
+ testFormData: n,
180
+ userType: v,
181
+ onProceed: C,
182
+ onExit: M,
183
+ onFormDataChange: H
127
184
  }
128
- ) : /* @__PURE__ */ l(K, { testFormData: o, onProceed: g, onExit: L }) : null;
129
- }), de = te;
185
+ ) : null;
186
+ }), Ce = le;
130
187
  export {
131
- de as default
188
+ Ce as default
132
189
  };
133
190
  //# sourceMappingURL=tests-creation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tests-creation.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-creation/tests-creation.tsx"],"sourcesContent":["import { type FC, memo, useCallback, useEffect, useState } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useMilestoneGet } from '../../edit/comps/edit-milestone-modal/api/get-milestone';\nimport {\n usePostTestHelpPreview,\n type ITestHelpPreviewPayload,\n type ITestHelpPreviewResponse,\n} from './api/preview-test-sheet';\nimport { usePostTestSheetAssign } from './api/test-sheet-assign';\nimport ChapterSelection from './test-stages/chapter-selection/chapter-selection';\nimport DifficultyAndDurationSelection from './test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection';\nimport TestPreview from './test-stages/test-preview/test-preview';\nimport type { ITestFromData, ITestsCreationProps, TTestsStage } from './tests-creation-types';\n\nconst initFormData: ITestFromData = {\n selectedChapters: null,\n difficultyLevel: null,\n title: null,\n duration: null,\n chapters: null,\n};\n\nconst TestsCreation: FC<ITestsCreationProps> = memo(function TestsCreation(props) {\n const { milestoneId, studentId, testNumber, onTestAssign, onExit, onError } = props;\n\n const [testStage, setTestStage] = useState<TTestsStage>('CHAPTER_SELECTION');\n const [testFormData, setTestFromData] = useState<ITestFromData>(initFormData);\n const [testPreviewItems, setTestPreviewItems] = useState<ITestHelpPreviewResponse[]>([]);\n\n const handleOnTestStageChange = useCallback((nextStage: TTestsStage) => {\n setTestStage(nextStage);\n }, []);\n\n const handleOnTestHelpPreviewComplete = useCallback(\n (errorMessage: string | null, data?: ITestHelpPreviewResponse[]) => {\n if (errorMessage || !data?.length) {\n handleOnTestStageChange('CHAPTER_SELECTION');\n\n setTestFromData(prev => {\n const { chapters, selectedChapters } = prev;\n\n const updatedChapters = chapters?.map(chapter => {\n if (selectedChapters?.includes(chapter.id)) {\n return {\n ...chapter,\n item_bank_enabled: false,\n };\n }\n\n return chapter;\n });\n\n return {\n ...prev,\n chapters: updatedChapters ?? null,\n selectedChapters: null,\n difficultyLevel: null,\n duration: null,\n };\n });\n\n onError(\n `We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed.`,\n );\n }\n\n if (errorMessage) {\n onError(errorMessage);\n } else if (data) {\n setTestPreviewItems(data);\n }\n },\n [onError, setTestPreviewItems, handleOnTestStageChange],\n );\n\n const handleOnTestSheetAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onTestAssign();\n }\n },\n [onError, onTestAssign],\n );\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n error: milestoneGetError,\n } = useMilestoneGet(milestoneId, {\n with_sheets: true,\n });\n\n const { post: postTestHelpPreview, isProcessing: testPreviewIsProcessing } =\n usePostTestHelpPreview({\n onComplete: handleOnTestHelpPreviewComplete,\n });\n\n const { post: postTestSheetAssign, isProcessing: testAssignIsProcessing } =\n usePostTestSheetAssign({\n onComplete: handleOnTestSheetAssignComplete,\n });\n\n const { user_milestone_plan: userMilestonePlan } = currentMilestoneData || {};\n const { user_chapters: userChapters } = userMilestonePlan || {};\n\n const handleOnPostTestHelpPreview = useCallback(\n (data: ITestHelpPreviewPayload) => {\n postTestHelpPreview(data);\n },\n [postTestHelpPreview],\n );\n\n const handleOnGetMilestone = useCallback(() => {\n getMilestone(milestoneId, {\n with_sheets: true,\n });\n }, [getMilestone, milestoneId]);\n\n const handleOnTestSheetAssign = useCallback(() => {\n const { duration, difficultyLevel, selectedChapters } = testFormData;\n\n if (duration && difficultyLevel && selectedChapters) {\n postTestSheetAssign(\n {\n items: testPreviewItems,\n node_params: {\n is_timed: true,\n sheet_time: duration * 60,\n difficulty_level: difficultyLevel,\n },\n },\n {\n userMilestoneId: milestoneId,\n },\n );\n }\n }, [postTestSheetAssign, testFormData, milestoneId, testPreviewItems]);\n\n const handleOnProceed = useCallback(\n (nextStage: TTestsStage, updatedForm?: ITestFromData) => {\n handleOnTestStageChange(nextStage);\n\n if (updatedForm) {\n const { difficultyLevel, duration } = updatedForm;\n\n setTestFromData(prev => ({ ...prev, ...updatedForm }));\n\n if (nextStage === 'PREVIEW' && difficultyLevel && duration) {\n handleOnPostTestHelpPreview({\n difficulty_level: difficultyLevel,\n duration: duration,\n user_chapter_ids: testFormData.selectedChapters || [],\n });\n }\n }\n },\n [handleOnTestStageChange, handleOnPostTestHelpPreview, testFormData],\n );\n\n useEffect(() => {\n if (milestoneId) {\n handleOnGetMilestone();\n }\n }, [milestoneId, handleOnGetMilestone]);\n\n useEffect(() => {\n if (userChapters && userChapters.length > 0) {\n setTestFromData(prev => ({ ...prev, chapters: userChapters }));\n }\n }, [userChapters]);\n\n if (isMilestoneProcessing || testPreviewIsProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isMilestoneProcessingFailed) {\n return (\n <FlexView $height=\"100vh\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{milestoneGetError?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnGetMilestone}\n />\n </FlexView>\n );\n }\n\n if (!userChapters) return null;\n\n if (testStage === 'PREVIEW') {\n return (\n <TestPreview\n studentId={studentId}\n items={testPreviewItems}\n testNumber={testNumber}\n isAssignInProgress={testAssignIsProcessing}\n onTestStageChange={handleOnProceed}\n onTestSheetAssign={handleOnTestSheetAssign}\n />\n );\n }\n\n if (testStage === 'DIFFICULTY_AND_DURATION_SELECTION') {\n return (\n <DifficultyAndDurationSelection\n testFormData={testFormData}\n onTestStageChange={handleOnProceed}\n />\n );\n }\n\n return (\n <ChapterSelection testFormData={testFormData} onProceed={handleOnProceed} onExit={onExit} />\n );\n});\n\nexport default TestsCreation;\n"],"names":["initFormData","TestsCreation","memo","props","milestoneId","studentId","testNumber","onTestAssign","onExit","onError","testStage","setTestStage","useState","testFormData","setTestFromData","testPreviewItems","setTestPreviewItems","handleOnTestStageChange","useCallback","nextStage","handleOnTestHelpPreviewComplete","errorMessage","data","prev","chapters","selectedChapters","updatedChapters","chapter","handleOnTestSheetAssignComplete","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","milestoneGetError","useMilestoneGet","postTestHelpPreview","testPreviewIsProcessing","usePostTestHelpPreview","postTestSheetAssign","testAssignIsProcessing","usePostTestSheetAssign","userMilestonePlan","userChapters","handleOnPostTestHelpPreview","handleOnGetMilestone","handleOnTestSheetAssign","duration","difficultyLevel","handleOnProceed","updatedForm","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","TestPreview","DifficultyAndDurationSelection","ChapterSelection","TestsCreation$1"],"mappings":"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"}
1
+ {"version":3,"file":"tests-creation.js","sources":["../../../../../src/features/milestone/milestone-tests/tests-creation/tests-creation.tsx"],"sourcesContent":["import { type FC, memo, useCallback, useEffect, useState } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useMilestoneGet } from '../../edit/comps/edit-milestone-modal/api/get-milestone';\nimport {\n usePostTestHelpPreview,\n type ITestHelpPreviewPayload,\n type ITestHelpPreviewResponse,\n} from './api/preview-test-sheet';\nimport { usePostTestSheetAssign } from './api/test-sheet-assign';\nimport ChapterSelection from './test-stages/chapter-selection/chapter-selection';\nimport DifficultyAndDurationSelection from './test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection';\nimport TestPreview from './test-stages/test-preview/test-preview';\nimport { ETestsStage, type ITestFormData, type ITestsCreationProps } from './tests-creation-types';\n\nconst initFormData: ITestFormData = {\n selectedChapters: null,\n difficultyLevel: null,\n title: null,\n duration: null,\n chapters: null,\n};\n\nconst TestsCreation: FC<ITestsCreationProps> = memo(function TestsCreation(props) {\n const {\n milestoneId,\n studentId,\n testNumber,\n userType = 'TEACHER',\n state,\n onStateChange,\n onTestAssign,\n onExit,\n onError,\n } = props;\n\n const [testStage, setTestStage] = useState<ETestsStage>(\n state?.testStage ?? ETestsStage.CHAPTER_SELECTION,\n );\n const [testFormData, setTestFormData] = useState<ITestFormData>(\n state?.testFormData ?? initFormData,\n );\n const [testPreviewItems, setTestPreviewItems] = useState<ITestHelpPreviewResponse[]>(\n state?.testPreviewItems ?? [],\n );\n\n const handleOnTestStageChange = useCallback(\n (nextStage: ETestsStage) => {\n setTestStage(nextStage);\n onStateChange?.({ testStage: nextStage, testFormData, testPreviewItems });\n },\n [testFormData, testPreviewItems, onStateChange],\n );\n\n const handleOnTestHelpPreviewComplete = useCallback(\n (errorMessage: string | null, data?: ITestHelpPreviewResponse[]) => {\n if (errorMessage || !data?.length) {\n setTestFormData(prev => {\n const { chapters, selectedChapters } = prev;\n\n const updatedChapters = chapters?.map(chapter => {\n if (selectedChapters?.includes(chapter.id)) {\n return {\n ...chapter,\n item_bank_enabled: false,\n };\n }\n\n return chapter;\n });\n\n const newFormData = {\n ...prev,\n chapters: updatedChapters ?? null,\n selectedChapters: null,\n difficultyLevel: null,\n duration: null,\n };\n\n onStateChange?.({\n testStage: ETestsStage.CHAPTER_SELECTION,\n testFormData: newFormData,\n testPreviewItems: [],\n });\n\n return newFormData;\n });\n\n setTestStage(ETestsStage.CHAPTER_SELECTION);\n\n onError(\n `We're experiencing a temporary limitation with the chapters you've selected. Please select alternative chapters and proceed.`,\n );\n }\n\n if (errorMessage) {\n onError(errorMessage);\n } else if (data) {\n setTestPreviewItems(data);\n onStateChange?.({ testStage, testFormData, testPreviewItems: data });\n }\n },\n [onError, testStage, testFormData, onStateChange],\n );\n\n const handleOnTestSheetAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onTestAssign();\n }\n },\n [onError, onTestAssign],\n );\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n error: milestoneGetError,\n } = useMilestoneGet(milestoneId, {\n with_sheets: true,\n });\n\n const { post: postTestHelpPreview, isProcessing: testPreviewIsProcessing } =\n usePostTestHelpPreview({\n onComplete: handleOnTestHelpPreviewComplete,\n });\n\n const { post: postTestSheetAssign, isProcessing: testAssignIsProcessing } =\n usePostTestSheetAssign({\n onComplete: handleOnTestSheetAssignComplete,\n });\n\n const { user_milestone_plan: userMilestonePlan } = currentMilestoneData || {};\n const { user_chapters: userChapters } = userMilestonePlan || {};\n\n const handleOnPostTestHelpPreview = useCallback(\n (data: ITestHelpPreviewPayload) => {\n postTestHelpPreview(data);\n },\n [postTestHelpPreview],\n );\n\n const handleOnGetMilestone = useCallback(() => {\n getMilestone(milestoneId, {\n with_sheets: true,\n });\n }, [getMilestone, milestoneId]);\n\n const handleOnTestSheetAssign = useCallback(() => {\n const { duration, difficultyLevel, selectedChapters } = testFormData;\n\n if (duration && difficultyLevel && selectedChapters) {\n postTestSheetAssign(\n {\n items: testPreviewItems,\n node_params: {\n is_timed: true,\n sheet_time: duration * 60,\n difficulty_level: difficultyLevel,\n },\n },\n {\n userMilestoneId: milestoneId,\n },\n );\n }\n }, [postTestSheetAssign, testFormData, milestoneId, testPreviewItems]);\n\n const handleOnFormDataChange = useCallback(\n (updatedFormData: ITestFormData) => {\n setTestFormData(updatedFormData);\n onStateChange?.({ testStage, testFormData: updatedFormData, testPreviewItems });\n },\n [testStage, testPreviewItems, onStateChange],\n );\n\n const handleOnProceed = useCallback(\n (nextStage: ETestsStage, updatedForm?: ITestFormData) => {\n if (updatedForm) {\n const { difficultyLevel, duration } = updatedForm;\n const newFormData = { ...testFormData, ...updatedForm };\n\n setTestFormData(newFormData);\n setTestStage(nextStage);\n\n onStateChange?.({ testStage: nextStage, testFormData: newFormData, testPreviewItems });\n\n if (nextStage === ETestsStage.PREVIEW && difficultyLevel && duration) {\n handleOnPostTestHelpPreview({\n difficulty_level: difficultyLevel,\n duration: duration,\n user_chapter_ids: newFormData.selectedChapters || [],\n });\n }\n } else {\n handleOnTestStageChange(nextStage);\n }\n },\n [\n handleOnTestStageChange,\n handleOnPostTestHelpPreview,\n testFormData,\n testPreviewItems,\n onStateChange,\n ],\n );\n\n useEffect(() => {\n if (milestoneId) {\n handleOnGetMilestone();\n }\n }, [milestoneId, handleOnGetMilestone]);\n\n useEffect(() => {\n if (userChapters && userChapters.length > 0) {\n setTestFormData(prev => ({ ...prev, chapters: userChapters }));\n }\n }, [userChapters]);\n\n useEffect(() => {\n if (state?.testStage !== undefined) {\n setTestStage(state.testStage);\n }\n }, [state?.testStage]);\n\n useEffect(() => {\n if (state?.testFormData !== undefined) {\n setTestFormData(prev => ({\n ...prev,\n ...state.testFormData,\n }));\n }\n }, [state?.testFormData]);\n\n useEffect(() => {\n if (state?.testPreviewItems !== undefined) {\n setTestPreviewItems(state.testPreviewItems);\n }\n }, [state?.testPreviewItems]);\n\n if (isMilestoneProcessing || testPreviewIsProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isMilestoneProcessingFailed) {\n return (\n <FlexView $height=\"100vh\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{milestoneGetError?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={handleOnGetMilestone}\n />\n </FlexView>\n );\n }\n\n if (!userChapters) return null;\n\n if (testStage === ETestsStage.PREVIEW) {\n return (\n <TestPreview\n studentId={studentId}\n items={testPreviewItems}\n testNumber={testNumber}\n isAssignInProgress={testAssignIsProcessing}\n onTestStageChange={handleOnProceed}\n onTestSheetAssign={handleOnTestSheetAssign}\n userType={userType}\n />\n );\n }\n\n if (testStage === ETestsStage.DIFFICULTY_AND_DURATION_SELECTION) {\n return (\n <DifficultyAndDurationSelection\n testFormData={testFormData}\n userType={userType}\n onTestStageChange={handleOnProceed}\n onFormDataChange={handleOnFormDataChange}\n />\n );\n }\n\n return (\n <ChapterSelection\n testFormData={testFormData}\n userType={userType}\n onProceed={handleOnProceed}\n onExit={onExit}\n onFormDataChange={handleOnFormDataChange}\n />\n );\n});\n\nexport default TestsCreation;\n"],"names":["initFormData","TestsCreation","memo","props","milestoneId","studentId","testNumber","userType","state","onStateChange","onTestAssign","onExit","onError","testStage","setTestStage","useState","ETestsStage","testFormData","setTestFormData","testPreviewItems","setTestPreviewItems","handleOnTestStageChange","useCallback","nextStage","handleOnTestHelpPreviewComplete","errorMessage","data","prev","chapters","selectedChapters","updatedChapters","chapter","newFormData","handleOnTestSheetAssignComplete","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","milestoneGetError","useMilestoneGet","postTestHelpPreview","testPreviewIsProcessing","usePostTestHelpPreview","postTestSheetAssign","testAssignIsProcessing","usePostTestSheetAssign","userMilestonePlan","userChapters","handleOnPostTestHelpPreview","handleOnGetMilestone","handleOnTestSheetAssign","duration","difficultyLevel","handleOnFormDataChange","updatedFormData","handleOnProceed","updatedForm","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","TestPreview","DifficultyAndDurationSelection","ChapterSelection","TestsCreation$1"],"mappings":"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"}
@@ -1,53 +1,53 @@
1
- import { jsxs as A, jsx as a } from "react/jsx-runtime";
2
- import { memo as v, useRef as S, useCallback as f, useEffect as l, useMemo as $ } from "react";
1
+ import { jsxs as y, jsx as a } from "react/jsx-runtime";
2
+ import { memo as A, useRef as S, useCallback as _, useEffect as l, useMemo as $ } from "react";
3
3
  import H from "../../ui/image/image.js";
4
4
  import M from "../../ui/layout/flex-view.js";
5
5
  import x from "../../ui/separator/separator.js";
6
6
  import d from "../../worksheet/constants/events.js";
7
7
  import N from "../../worksheet/worksheet/hooks/use-learnosity.js";
8
- import P from "../../worksheet/worksheet/hooks/use-worksheet-data-helper.js";
9
- import { PuzzleQuestionWrapper as Q, PuzzleContainer as R } from "./puzzle-app-styled.js";
10
- import { getQuestionsFromItems as V } from "../../worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js";
11
- const L = (u) => {
8
+ import Q from "../../worksheet/worksheet/hooks/use-worksheet-data-helper.js";
9
+ import { getQuestionsFromItems as V } from "../../worksheet/worksheet/worksheet-helpers.js";
10
+ import { PuzzleQuestionWrapper as P, PuzzleContainer as R } from "./puzzle-app-styled.js";
11
+ const F = (u) => {
12
12
  if (!u) return null;
13
13
  const t = u.match(/<img[^>]+src="([^">]+)"/);
14
14
  return t ? t[1] : null;
15
- }, F = ({
15
+ }, L = ({
16
16
  worksheetData: u,
17
17
  loggerRef: t,
18
- onWorksheetErrored: r,
18
+ onWorksheetErrored: n,
19
19
  imageHue: I,
20
20
  onLoaded: p
21
21
  }) => {
22
- const { signed_request: E, questions_signed_request: g } = u, w = S(null), {
22
+ const { signed_request: g, questions_signed_request: w } = u, z = S(null), {
23
23
  loadingState: i,
24
24
  data: o,
25
- error: h
26
- } = P({
25
+ error: f
26
+ } = Q({
27
27
  attemptId: void 0,
28
- signedRequest: E,
28
+ signedRequest: g,
29
29
  loggerRef: t
30
- }), z = f(
30
+ }), E = _(
31
31
  (s) => {
32
- r({
32
+ n({
33
33
  code: s.code,
34
34
  message: s.detail
35
35
  });
36
36
  },
37
- [r]
38
- ), { learnosity: n } = N(g, z, t);
37
+ [n]
38
+ ), { learnosity: r } = N(w, E, t);
39
39
  l(() => {
40
- i === "error" && r({
41
- message: h ?? "Error loading worksheet"
40
+ i === "error" && n({
41
+ message: f ?? "Error loading worksheet"
42
42
  });
43
- }, [i, r, h]), l(() => {
44
- n && t.current(d.WORKSHEET_V3_LEARNOSITY_INITIALIZED);
45
- }, [n, t]), l(() => {
46
- n && i === "success" && p && (t.current(d.WORKSHEET_V3_READY), p());
47
- }, [n, i, t, p]);
43
+ }, [i, n, f]), l(() => {
44
+ r && t.current(d.WORKSHEET_V3_LEARNOSITY_INITIALIZED);
45
+ }, [r, t]), l(() => {
46
+ r && i === "success" && p && (t.current(d.WORKSHEET_V3_READY), p());
47
+ }, [r, i, t, p]);
48
48
  const m = $(() => i === "success" && (o != null && o.learnosityItems) ? (t.current(d.WORKSHEET_V3_READY), V(o.learnosityItems, {
49
- nodeType: "PUZZLE_CARD",
50
- activityType: null
49
+ sectioned: !1,
50
+ adaptive: !1
51
51
  }).map((e) => ({
52
52
  response_id: e.response_id,
53
53
  type: e.type,
@@ -60,12 +60,12 @@ const L = (u) => {
60
60
  // Add other properties as needed
61
61
  }))) : [], [i, o, t]);
62
62
  l(() => {
63
- if (n && m.length > 0) {
63
+ if (r && m.length > 0) {
64
64
  const c = requestAnimationFrame(() => {
65
65
  try {
66
- n.renderMath("mathjax");
66
+ r.renderMath("mathjax");
67
67
  } catch (e) {
68
- r({
68
+ n({
69
69
  message: `MathJax rendering failed: ${e instanceof Error ? e.message : "Unknown error"}`
70
70
  });
71
71
  }
@@ -74,20 +74,20 @@ const L = (u) => {
74
74
  cancelAnimationFrame(c);
75
75
  };
76
76
  }
77
- }, [n, r, m]);
78
- const y = f((s) => {
79
- const { stimulus: c = "", template: e = "", response_id: T } = s, _ = L(c);
80
- return /* @__PURE__ */ A(
77
+ }, [r, n, m]);
78
+ const T = _((s) => {
79
+ const { stimulus: c = "", template: e = "", response_id: v } = s, h = F(c);
80
+ return /* @__PURE__ */ y(
81
81
  M,
82
82
  {
83
83
  $background: "TRANSPARENT",
84
84
  $alignItems: "center",
85
85
  className: "puzzle-app-view-question-card",
86
86
  children: [
87
- _ && /* @__PURE__ */ a(
87
+ h && /* @__PURE__ */ a(
88
88
  H,
89
89
  {
90
- src: _,
90
+ src: h,
91
91
  alt: "Puzzle illustration",
92
92
  width: 183,
93
93
  height: 183,
@@ -95,26 +95,26 @@ const L = (u) => {
95
95
  }
96
96
  ),
97
97
  /* @__PURE__ */ a(x, { heightX: 1 }),
98
- e && /* @__PURE__ */ a(Q, { children: /* @__PURE__ */ a("div", { dangerouslySetInnerHTML: { __html: e } }) })
98
+ e && /* @__PURE__ */ a(P, { children: /* @__PURE__ */ a("div", { dangerouslySetInnerHTML: { __html: e } }) })
99
99
  ]
100
100
  },
101
- T
101
+ v
102
102
  );
103
103
  }, []);
104
104
  return m.length ? /* @__PURE__ */ a(
105
105
  R,
106
106
  {
107
- ref: w,
107
+ ref: z,
108
108
  $gapX: 1,
109
109
  $gutterX: 1,
110
110
  $imageHue: I,
111
111
  $background: "WHITE_1",
112
112
  className: "puzzle-app-view-container",
113
- children: m.map((s) => /* @__PURE__ */ a("div", { children: y(s) }, `question-${s.response_id}`))
113
+ children: m.map((s) => /* @__PURE__ */ a("div", { children: T(s) }, `question-${s.response_id}`))
114
114
  }
115
115
  ) : null;
116
- }, Y = v(F);
116
+ }, U = A(L);
117
117
  export {
118
- Y as default
118
+ U as default
119
119
  };
120
120
  //# sourceMappingURL=puzzle-app-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puzzle-app-view.js","sources":["../../../../src/features/puzzles/app/puzzle-app-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport EVENTS from '../../worksheet/constants/events';\nimport useLearnosity from '../../worksheet/worksheet/hooks/use-learnosity';\nimport useWorksheetDataHelper from '../../worksheet/worksheet/hooks/use-worksheet-data-helper';\nimport type {\n ILearnosityError,\n ILearnosityQuestion,\n} from '../../worksheet/worksheet/worksheet-types';\nimport * as Styled from './puzzle-app-styled';\nimport type { IPuzzleAppViewProps } from './puzzle-app-types';\nimport { getQuestionsFromItems } from '../../worksheet/worksheet/worksheet-store/helpers/get-questions-from-items';\n\nconst extractImageFromHTML = (htmlString: string) => {\n if (!htmlString) return null;\n\n const imgMatch = htmlString.match(/<img[^>]+src=\"([^\">]+)\"/);\n\n return imgMatch ? imgMatch[1] : null;\n};\n\nconst PuzzleAppView: FC<IPuzzleAppViewProps> = ({\n worksheetData,\n loggerRef,\n onWorksheetErrored,\n imageHue,\n onLoaded,\n}) => {\n const { signed_request: itemsSignedRequest, questions_signed_request: questionSignedRequest } =\n worksheetData;\n\n // Ref for the container to trigger MathJax rendering\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Get Learnosity items using the signed_request (not questions_signed_request)\n const {\n loadingState,\n data: learnosityData,\n error: worksheetError,\n } = useWorksheetDataHelper({\n attemptId: undefined,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onWorksheetErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onWorksheetErrored],\n );\n\n // Initialize Learnosity using questions_signed_request (needed for interactive questions)\n const { learnosity } = useLearnosity(questionSignedRequest, onLearnosityErrored, loggerRef);\n\n useEffect(() => {\n if (loadingState === 'error') {\n onWorksheetErrored({\n message: worksheetError ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, onWorksheetErrored, worksheetError]);\n\n // Log when learnosity is ready for future interactive features\n useEffect(() => {\n if (learnosity) {\n loggerRef.current(EVENTS.WORKSHEET_V3_LEARNOSITY_INITIALIZED);\n }\n }, [learnosity, loggerRef]);\n\n useEffect(() => {\n if (learnosity && loadingState === 'success' && onLoaded) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n onLoaded();\n }\n }, [learnosity, loadingState, loggerRef, onLoaded]);\n\n // Memoize questions processing to prevent re-render loops\n const questions = useMemo(() => {\n // Extract questions from Learnosity items when data is loaded successfully\n if (loadingState === 'success' && learnosityData?.learnosityItems) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n\n // Convert learnosityItems to questions using the worksheet helper\n const worksheetQuestions = getQuestionsFromItems(learnosityData.learnosityItems, {\n nodeType: 'PUZZLE_CARD',\n activityType: null,\n });\n\n // Extract just the Learnosity questions from worksheet questions\n const learnosityQuestions: ILearnosityQuestion[] = worksheetQuestions.map(q => ({\n response_id: q.response_id,\n type: q.type,\n stimulus: q.stimulus,\n template: q.template,\n stimulus_review: q.stimulus_review,\n options: q.options,\n metadata: q.metadata,\n validation: q.validation,\n // Add other properties as needed\n }));\n\n return learnosityQuestions;\n }\n\n return [];\n }, [loadingState, learnosityData, loggerRef]);\n\n // Force MathJax rendering after questions are loaded and rendered\n // Similar to how useLearnosityAppend does it\n useEffect(() => {\n if (learnosity && questions.length > 0) {\n // Use requestAnimationFrame to ensure DOM is updated before rendering math\n const renderMath = () => {\n try {\n learnosity.renderMath('mathjax');\n } catch (error) {\n onWorksheetErrored({\n message: `MathJax rendering failed: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n });\n }\n };\n\n const animationId = requestAnimationFrame(renderMath);\n\n return () => {\n cancelAnimationFrame(animationId);\n };\n }\n }, [learnosity, onWorksheetErrored, questions]);\n\n const renderQuestionContent = useCallback((question: ILearnosityQuestion) => {\n const { stimulus = '', template = '', response_id: responseId } = question;\n const imageUrl = extractImageFromHTML(stimulus);\n\n return (\n <FlexView\n $background=\"TRANSPARENT\"\n key={responseId}\n $alignItems=\"center\"\n className=\"puzzle-app-view-question-card\"\n >\n {/* Main Image or Interactive Content */}\n {imageUrl && (\n <Image\n src={imageUrl}\n alt=\"Puzzle illustration\"\n width={183}\n height={183}\n withLoader={true}\n />\n )}\n\n <Separator heightX={1} />\n\n {/* Question HTML Content */}\n {template && (\n <Styled.PuzzleQuestionWrapper>\n <div dangerouslySetInnerHTML={{ __html: template }} />\n </Styled.PuzzleQuestionWrapper>\n )}\n </FlexView>\n );\n }, []);\n\n if (!questions.length) return null;\n\n return (\n <Styled.PuzzleContainer\n ref={containerRef}\n $gapX={1}\n $gutterX={1}\n $imageHue={imageHue}\n $background=\"WHITE_1\"\n className=\"puzzle-app-view-container\"\n >\n {questions.map(question => (\n <div key={`question-${question.response_id}`}>{renderQuestionContent(question)}</div>\n ))}\n </Styled.PuzzleContainer>\n );\n};\n\nexport default memo(PuzzleAppView);\n"],"names":["extractImageFromHTML","htmlString","imgMatch","PuzzleAppView","worksheetData","loggerRef","onWorksheetErrored","imageHue","onLoaded","itemsSignedRequest","questionSignedRequest","containerRef","useRef","loadingState","learnosityData","worksheetError","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","useLearnosity","useEffect","EVENTS","questions","useMemo","getQuestionsFromItems","q","animationId","error","renderQuestionContent","question","stimulus","template","responseId","imageUrl","jsxs","FlexView","jsx","Image","Separator","Styled.PuzzleQuestionWrapper","Styled.PuzzleContainer","PuzzleAppView$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"puzzle-app-view.js","sources":["../../../../src/features/puzzles/app/puzzle-app-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport EVENTS from '../../worksheet/constants/events';\nimport useLearnosity from '../../worksheet/worksheet/hooks/use-learnosity';\nimport useWorksheetDataHelper from '../../worksheet/worksheet/hooks/use-worksheet-data-helper';\nimport { getQuestionsFromItems } from '../../worksheet/worksheet/worksheet-helpers';\nimport type {\n ILearnosityError,\n ILearnosityQuestion,\n} from '../../worksheet/worksheet/worksheet-types';\nimport * as Styled from './puzzle-app-styled';\nimport type { IPuzzleAppViewProps } from './puzzle-app-types';\n\nconst extractImageFromHTML = (htmlString: string) => {\n if (!htmlString) return null;\n\n const imgMatch = htmlString.match(/<img[^>]+src=\"([^\">]+)\"/);\n\n return imgMatch ? imgMatch[1] : null;\n};\n\nconst PuzzleAppView: FC<IPuzzleAppViewProps> = ({\n worksheetData,\n loggerRef,\n onWorksheetErrored,\n imageHue,\n onLoaded,\n}) => {\n const { signed_request: itemsSignedRequest, questions_signed_request: questionSignedRequest } =\n worksheetData;\n\n // Ref for the container to trigger MathJax rendering\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Get Learnosity items using the signed_request (not questions_signed_request)\n const {\n loadingState,\n data: learnosityData,\n error: worksheetError,\n } = useWorksheetDataHelper({\n attemptId: undefined,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onWorksheetErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onWorksheetErrored],\n );\n\n // Initialize Learnosity using questions_signed_request (needed for interactive questions)\n const { learnosity } = useLearnosity(questionSignedRequest, onLearnosityErrored, loggerRef);\n\n useEffect(() => {\n if (loadingState === 'error') {\n onWorksheetErrored({\n message: worksheetError ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, onWorksheetErrored, worksheetError]);\n\n // Log when learnosity is ready for future interactive features\n useEffect(() => {\n if (learnosity) {\n loggerRef.current(EVENTS.WORKSHEET_V3_LEARNOSITY_INITIALIZED);\n }\n }, [learnosity, loggerRef]);\n\n useEffect(() => {\n if (learnosity && loadingState === 'success' && onLoaded) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n onLoaded();\n }\n }, [learnosity, loadingState, loggerRef, onLoaded]);\n\n // Memoize questions processing to prevent re-render loops\n const questions = useMemo(() => {\n // Extract questions from Learnosity items when data is loaded successfully\n if (loadingState === 'success' && learnosityData?.learnosityItems) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n\n // Convert learnosityItems to questions using the worksheet helper\n const worksheetQuestions = getQuestionsFromItems(learnosityData.learnosityItems, {\n sectioned: false,\n adaptive: false,\n });\n\n // Extract just the Learnosity questions from worksheet questions\n const learnosityQuestions: ILearnosityQuestion[] = worksheetQuestions.map(q => ({\n response_id: q.response_id,\n type: q.type,\n stimulus: q.stimulus,\n template: q.template,\n stimulus_review: q.stimulus_review,\n options: q.options,\n metadata: q.metadata,\n validation: q.validation,\n // Add other properties as needed\n }));\n\n return learnosityQuestions;\n }\n\n return [];\n }, [loadingState, learnosityData, loggerRef]);\n\n // Force MathJax rendering after questions are loaded and rendered\n // Similar to how useLearnosityAppend does it\n useEffect(() => {\n if (learnosity && questions.length > 0) {\n // Use requestAnimationFrame to ensure DOM is updated before rendering math\n const renderMath = () => {\n try {\n learnosity.renderMath('mathjax');\n } catch (error) {\n onWorksheetErrored({\n message: `MathJax rendering failed: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n });\n }\n };\n\n const animationId = requestAnimationFrame(renderMath);\n\n return () => {\n cancelAnimationFrame(animationId);\n };\n }\n }, [learnosity, onWorksheetErrored, questions]);\n\n const renderQuestionContent = useCallback((question: ILearnosityQuestion) => {\n const { stimulus = '', template = '', response_id: responseId } = question;\n const imageUrl = extractImageFromHTML(stimulus);\n\n return (\n <FlexView\n $background=\"TRANSPARENT\"\n key={responseId}\n $alignItems=\"center\"\n className=\"puzzle-app-view-question-card\"\n >\n {/* Main Image or Interactive Content */}\n {imageUrl && (\n <Image\n src={imageUrl}\n alt=\"Puzzle illustration\"\n width={183}\n height={183}\n withLoader={true}\n />\n )}\n\n <Separator heightX={1} />\n\n {/* Question HTML Content */}\n {template && (\n <Styled.PuzzleQuestionWrapper>\n <div dangerouslySetInnerHTML={{ __html: template }} />\n </Styled.PuzzleQuestionWrapper>\n )}\n </FlexView>\n );\n }, []);\n\n if (!questions.length) return null;\n\n return (\n <Styled.PuzzleContainer\n ref={containerRef}\n $gapX={1}\n $gutterX={1}\n $imageHue={imageHue}\n $background=\"WHITE_1\"\n className=\"puzzle-app-view-container\"\n >\n {questions.map(question => (\n <div key={`question-${question.response_id}`}>{renderQuestionContent(question)}</div>\n ))}\n </Styled.PuzzleContainer>\n );\n};\n\nexport default memo(PuzzleAppView);\n"],"names":["extractImageFromHTML","htmlString","imgMatch","PuzzleAppView","worksheetData","loggerRef","onWorksheetErrored","imageHue","onLoaded","itemsSignedRequest","questionSignedRequest","containerRef","useRef","loadingState","learnosityData","worksheetError","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","useLearnosity","useEffect","EVENTS","questions","useMemo","getQuestionsFromItems","q","animationId","error","renderQuestionContent","question","stimulus","template","responseId","imageUrl","jsxs","FlexView","jsx","Image","Separator","Styled.PuzzleQuestionWrapper","Styled.PuzzleContainer","PuzzleAppView$1","memo"],"mappings":"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"}