@cuemath/leap 3.2.18-mb → 3.2.19-beta-0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/assets/illustrations/illustrations.js +11 -5
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/after-noon.js +34 -0
  4. package/dist/assets/line-icons/icons/after-noon.js.map +1 -0
  5. package/dist/assets/line-icons/icons/apple-icon-white.js +42 -0
  6. package/dist/assets/line-icons/icons/apple-icon-white.js.map +1 -0
  7. package/dist/assets/line-icons/icons/cue-board-filled.js +33 -0
  8. package/dist/assets/line-icons/icons/cue-board-filled.js.map +1 -0
  9. package/dist/assets/line-icons/icons/cue-board.js +23 -0
  10. package/dist/assets/line-icons/icons/cue-board.js.map +1 -0
  11. package/dist/assets/line-icons/icons/evening.js +35 -0
  12. package/dist/assets/line-icons/icons/evening.js.map +1 -0
  13. package/dist/assets/line-icons/icons/hint-fill.js +35 -0
  14. package/dist/assets/line-icons/icons/hint-fill.js.map +1 -0
  15. package/dist/assets/line-icons/icons/morning.js +35 -0
  16. package/dist/assets/line-icons/icons/morning.js.map +1 -0
  17. package/dist/assets/line-icons/icons/screen-grab-filled.js +35 -0
  18. package/dist/assets/line-icons/icons/screen-grab-filled.js.map +1 -0
  19. package/dist/assets/line-icons/icons/screen-grab.js +23 -0
  20. package/dist/assets/line-icons/icons/screen-grab.js.map +1 -0
  21. package/dist/assets/line-icons/icons/sticker-filled.js +64 -0
  22. package/dist/assets/line-icons/icons/sticker-filled.js.map +1 -0
  23. package/dist/assets/line-icons/icons/sticker.js +46 -0
  24. package/dist/assets/line-icons/icons/sticker.js.map +1 -0
  25. package/dist/assets/lottie/lottie.js +16 -1
  26. package/dist/assets/lottie/lottie.js.map +1 -1
  27. package/dist/features/analytics-events/platform-events-student.js +2 -1
  28. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  29. package/dist/features/analytics-events/platform-events-teacher.js +6 -4
  30. package/dist/features/analytics-events/platform-events-teacher.js.map +1 -1
  31. package/dist/features/analytics-events/whitelist-events.js +10 -8
  32. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  33. package/dist/features/auth/account-selector/account-selector.js +26 -25
  34. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  35. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +9 -0
  36. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +1 -0
  37. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +52 -0
  38. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -0
  39. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +93 -0
  40. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -0
  41. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text-styled.js +10 -0
  42. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text-styled.js.map +1 -0
  43. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js +17 -0
  44. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js.map +1 -0
  45. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +20 -14
  46. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  47. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js +12 -0
  48. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js.map +1 -0
  49. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js +34 -0
  50. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +1 -0
  51. package/dist/features/auth/comps/otp-input/otp-input-styled.js +26 -0
  52. package/dist/features/auth/comps/otp-input/otp-input-styled.js.map +1 -0
  53. package/dist/features/auth/comps/otp-input/otp-input.js +50 -0
  54. package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -0
  55. package/dist/features/auth/comps/pill-button/pill-button-styled.js +44 -0
  56. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -0
  57. package/dist/features/auth/comps/pill-button/pill-button.js +74 -0
  58. package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -0
  59. package/dist/features/auth/comps/resend-otp/resend-otp.js +54 -47
  60. package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
  61. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js +17 -0
  62. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js.map +1 -0
  63. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js +67 -0
  64. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +1 -0
  65. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js +29 -17
  66. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js.map +1 -1
  67. package/dist/features/auth/comps/tabs/tabs-styled.js +22 -10
  68. package/dist/features/auth/comps/tabs/tabs-styled.js.map +1 -1
  69. package/dist/features/auth/comps/tabs/tabs.js +5 -5
  70. package/dist/features/auth/comps/tabs/tabs.js.map +1 -1
  71. package/dist/features/auth/comps/user-list/user-item/user-item.js +30 -31
  72. package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
  73. package/dist/features/auth/comps/user-list/user-list.js +35 -34
  74. package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
  75. package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -15
  76. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  77. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +6 -7
  78. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  79. package/dist/features/auth/login/login-styled.js +8 -9
  80. package/dist/features/auth/login/login-styled.js.map +1 -1
  81. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js +19 -0
  82. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js.map +1 -0
  83. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +32 -0
  84. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -0
  85. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +44 -0
  86. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -0
  87. package/dist/features/auth/pla-signup/signup-header/signup-header.js +54 -0
  88. package/dist/features/auth/pla-signup/signup-header/signup-header.js.map +1 -0
  89. package/dist/features/auth/pla-signup/signup-options/signup-options.js +83 -0
  90. package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -0
  91. package/dist/features/chapters-v2/utils/node-card-utils.js +9 -9
  92. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  93. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +4 -4
  94. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -1
  95. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +85 -85
  96. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  97. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +121 -98
  98. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
  99. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +29 -28
  100. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
  101. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +43 -42
  102. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
  103. package/dist/features/circle-games/games/tutorial/tutorial.js +43 -35
  104. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  105. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js +2 -2
  106. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
  107. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js +1 -1
  108. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
  109. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js +26 -24
  110. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
  111. package/dist/features/circle-games/sign-up/constants.js +3 -1
  112. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  113. package/dist/features/communication/pub-sub/constants.js +7 -4
  114. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  115. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +42 -42
  116. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  117. package/dist/features/homework/homework-card-view.js +85 -97
  118. package/dist/features/homework/homework-card-view.js.map +1 -1
  119. package/dist/features/homework/homework-card.js +44 -42
  120. package/dist/features/homework/homework-card.js.map +1 -1
  121. package/dist/features/homework/hw-card-list/hw-card-list-view.js +31 -29
  122. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  123. package/dist/features/homework/hw-card-list/hw-card-list.js +54 -48
  124. package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
  125. package/dist/features/homework/utils.js +33 -27
  126. package/dist/features/homework/utils.js.map +1 -1
  127. package/dist/features/journey/comps/coachmark/coachmark.js +29 -27
  128. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  129. package/dist/features/journey/hooks/use-home-page-journey/tooltip-item.js +17 -11
  130. package/dist/features/journey/hooks/use-home-page-journey/tooltip-item.js.map +1 -1
  131. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-assigned.js +72 -0
  132. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-assigned.js.map +1 -0
  133. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-attempt-journey.js +59 -0
  134. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-attempt-journey.js.map +1 -0
  135. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js +63 -0
  136. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js.map +1 -0
  137. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-intro-journey.js +67 -0
  138. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-intro-journey.js.map +1 -0
  139. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-progress-journey.js +70 -0
  140. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-progress-journey.js.map +1 -0
  141. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-review-journey.js +59 -0
  142. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-review-journey.js.map +1 -0
  143. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-unassign-journey.js +59 -0
  144. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-unassign-journey.js.map +1 -0
  145. package/dist/features/journey/hooks/use-puzzles-journey/use-teacher-puzzle-assigned-journey.js +70 -0
  146. package/dist/features/journey/hooks/use-puzzles-journey/use-teacher-puzzle-assigned-journey.js.map +1 -0
  147. package/dist/features/journey/journey-id/journey-id-student.js +2 -2
  148. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  149. package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
  150. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
  151. package/dist/features/journey/use-journey/journey-context-provider.js +73 -72
  152. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  153. package/dist/features/journey/use-journey/journey-styled.js +6 -4
  154. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  155. package/dist/features/puzzles/api/puzzle-dashboard.js +10 -0
  156. package/dist/features/puzzles/api/puzzle-dashboard.js.map +1 -0
  157. package/dist/features/puzzles/app/puzzle-app-styled.js +85 -0
  158. package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -0
  159. package/dist/features/puzzles/app/puzzle-app-view.js +120 -0
  160. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -0
  161. package/dist/features/puzzles/app/puzzle-app.js +62 -0
  162. package/dist/features/puzzles/app/puzzle-app.js.map +1 -0
  163. package/dist/features/puzzles/comps/puzzle-card-styled.js +24 -69
  164. package/dist/features/puzzles/comps/puzzle-card-styled.js.map +1 -1
  165. package/dist/features/puzzles/comps/puzzle-card.js +79 -30
  166. package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
  167. package/dist/features/puzzles/constants/puzzle-container.js +8 -0
  168. package/dist/features/puzzles/constants/puzzle-container.js.map +1 -0
  169. package/dist/features/puzzles/puzzle-analytics-events.js +11 -0
  170. package/dist/features/puzzles/puzzle-analytics-events.js.map +1 -0
  171. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js +55 -25
  172. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js.map +1 -1
  173. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js +55 -0
  174. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js.map +1 -0
  175. package/dist/features/puzzles/puzzle-container/puzzle-container.js +100 -107
  176. package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -1
  177. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard-styled.js +37 -0
  178. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard-styled.js.map +1 -0
  179. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard.js +110 -0
  180. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard.js.map +1 -0
  181. package/dist/features/puzzles/puzzle-feedback-celebration/puzzle-feedback-celebration.js +1 -1
  182. package/dist/features/puzzles/puzzle-feedback-celebration/puzzle-feedback-celebration.js.map +1 -1
  183. package/dist/features/puzzles/utils/puzzle-pattern.js +28 -13
  184. package/dist/features/puzzles/utils/puzzle-pattern.js.map +1 -1
  185. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js +6 -0
  186. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js.map +1 -0
  187. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +12 -60
  188. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
  189. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +72 -77
  190. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  191. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js +63 -0
  192. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -0
  193. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js +21 -0
  194. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -0
  195. package/dist/features/ui/buttons/button/button.js +41 -38
  196. package/dist/features/ui/buttons/button/button.js.map +1 -1
  197. package/dist/features/ui/buttons/icon-button/icon-button.js +31 -27
  198. package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
  199. package/dist/features/ui/buttons/text-button/text-button.js +26 -22
  200. package/dist/features/ui/buttons/text-button/text-button.js.map +1 -1
  201. package/dist/features/ui/drawer/drawer-styled.js +34 -0
  202. package/dist/features/ui/drawer/drawer-styled.js.map +1 -0
  203. package/dist/features/ui/drawer/drawer.js +42 -0
  204. package/dist/features/ui/drawer/drawer.js.map +1 -0
  205. package/dist/features/ui/error/error.js +65 -27
  206. package/dist/features/ui/error/error.js.map +1 -1
  207. package/dist/features/ui/grade-selector/grade-selector.js +33 -27
  208. package/dist/features/ui/grade-selector/grade-selector.js.map +1 -1
  209. package/dist/features/ui/image/image.js +1 -1
  210. package/dist/features/ui/image/image.js.map +1 -1
  211. package/dist/features/ui/lottie-animation/lottie-animation.js +25 -29
  212. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  213. package/dist/features/ui/modals/modal-styled.js +34 -58
  214. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  215. package/dist/features/ui/modals/modal.js +40 -14
  216. package/dist/features/ui/modals/modal.js.map +1 -1
  217. package/dist/features/ui/nudge/nudge-styled.js +14 -7
  218. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  219. package/dist/features/ui/nudge/nudge.js +13 -12
  220. package/dist/features/ui/nudge/nudge.js.map +1 -1
  221. package/dist/features/{stickers/sticker-selector/sticker-selector-styles.js → ui/sticker-grid/sticker-grid-styles.js} +3 -4
  222. package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
  223. package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
  224. package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
  225. package/dist/features/ui/sticker-grid/sticker.js +57 -0
  226. package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
  227. package/dist/features/ui/stickers/constants.js +6 -0
  228. package/dist/features/ui/stickers/constants.js.map +1 -0
  229. package/dist/features/{stickers/stickers-effects/effects.js → ui/stickers/stickers-effects.js} +6 -6
  230. package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
  231. package/dist/features/{stickers/stickers-effects/stickers-effects-styled.js → ui/stickers/stickers-styled.js} +2 -2
  232. package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
  233. package/dist/features/ui/stickers/stickers-utils.js +91 -0
  234. package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
  235. package/dist/features/ui/stickers/stickers.js +40 -0
  236. package/dist/features/ui/stickers/stickers.js.map +1 -0
  237. package/dist/features/ui/streak-icon/streak-icon-styled.js +13 -13
  238. package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
  239. package/dist/features/ui/streak-icon/streak-icon.js +17 -15
  240. package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
  241. package/dist/features/ui/tab/tab.js +30 -26
  242. package/dist/features/ui/tab/tab.js.map +1 -1
  243. package/dist/features/ui/text/text.js +40 -36
  244. package/dist/features/ui/text/text.js.map +1 -1
  245. package/dist/features/ui/theme/button.js +78 -78
  246. package/dist/features/ui/theme/button.js.map +1 -1
  247. package/dist/features/ui/theme/constants.js +4 -2
  248. package/dist/features/ui/theme/constants.js.map +1 -1
  249. package/dist/features/ui/theme/get-device.js +3 -3
  250. package/dist/features/ui/theme/get-device.js.map +1 -1
  251. package/dist/features/worksheet/worksheet/constants.js +12 -13
  252. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  253. package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js +28 -0
  254. package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js.map +1 -0
  255. package/dist/features/worksheet/worksheet/worksheet-helpers.js +20 -19
  256. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  257. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +29 -25
  258. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  259. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +101 -47
  260. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  261. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +244 -255
  262. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  263. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +242 -207
  264. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  265. package/dist/features/worksheet/worksheet/worksheet-styled.js +45 -36
  266. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  267. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  268. package/dist/features/worksheet/worksheet/worksheet.js +321 -325
  269. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  270. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +1 -1
  271. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  272. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +44 -35
  273. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  274. package/dist/index.d.ts +281 -61
  275. package/dist/index.js +585 -537
  276. package/dist/index.js.map +1 -1
  277. package/dist/static/animated-avatar.1ad58b1d.json +1 -0
  278. package/dist/static/animated-avatar.69b07505.json +1 -0
  279. package/dist/static/animated-avatar.9c560b46.json +1 -0
  280. package/dist/static/calendar-purple.1a840b41.svg +1 -0
  281. package/dist/static/flying-disk.c7f6ed39.json +1 -0
  282. package/dist/static/graduation-cap.3be3340a.json +1 -0
  283. package/dist/static/handshake.287e7dfb.svg +1 -0
  284. package/dist/static/light-bulb.c6db0b23.json +1 -0
  285. package/dist/static/money.332aacf1.svg +1 -0
  286. package/dist/static/muscle.9bcfb8a7.json +1 -0
  287. package/dist/static/nudge-tap.0591aef4.json +1 -0
  288. package/dist/static/parent-avatar.822c7b9b.svg +1 -0
  289. package/dist/static/pencil.23df9da0.json +1 -0
  290. package/dist/static/plus-sign.de6af957.json +1 -0
  291. package/dist/static/puzzle-blue-lottie.7017e2e8.json +1 -0
  292. package/dist/static/puzzle-blue-lottie.bf64ebc5.json +12760 -0
  293. package/dist/static/puzzle-dashboard-banner.b7956519.svg +1 -0
  294. package/dist/static/puzzle-green-lottie.1da90698.json +1 -0
  295. package/dist/static/puzzle-orange-lottie.cfcf3724.json +1 -0
  296. package/dist/static/puzzle-pattern-blue.abff0164.svg +1 -0
  297. package/dist/static/puzzle-pattern-green.b8ba1840.svg +1 -0
  298. package/dist/static/puzzle-pattern-orange.3f5a17ff.svg +1 -0
  299. package/dist/static/puzzle-pattern-purple.14b09759.svg +1 -0
  300. package/dist/static/puzzle-pattern-yellow.50917fab.svg +1 -0
  301. package/dist/static/puzzle-purple-lottie.e70de110.json +9860 -0
  302. package/dist/static/puzzle-yellow-lottie.275b5cf4.json +1 -0
  303. package/dist/static/racing-car.2cbf864e.json +1 -0
  304. package/dist/static/rocket.0a3ccab0.json +1 -0
  305. package/dist/static/shovel.abeec04c.json +1 -0
  306. package/dist/static/trustpilot.bd3d79e1.svg +1 -0
  307. package/package.json +1 -1
  308. package/dist/features/hooks/use-viewport/use-viewport.js +0 -22
  309. package/dist/features/hooks/use-viewport/use-viewport.js.map +0 -1
  310. package/dist/features/stickers/sticker-data.js +0 -234
  311. package/dist/features/stickers/sticker-data.js.map +0 -1
  312. package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +0 -1
  313. package/dist/features/stickers/sticker-selector/sticker-selector.js +0 -25
  314. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +0 -1
  315. package/dist/features/stickers/sticker-selector/sticker.js +0 -57
  316. package/dist/features/stickers/sticker-selector/sticker.js.map +0 -1
  317. package/dist/features/stickers/stickers-effects/effects.js.map +0 -1
  318. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +0 -1
  319. package/dist/features/stickers/stickers-effects/stickers-effects-utils.js +0 -93
  320. package/dist/features/stickers/stickers-effects/stickers-effects-utils.js.map +0 -1
  321. package/dist/features/stickers/stickers-effects/stickers-effects.js +0 -39
  322. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +0 -1
  323. package/dist/static/nudge-tap.5cb30093.json +0 -1057
  324. package/dist/static/puzzle-pattern-blue.f4bea1ee.svg +0 -1
  325. package/dist/static/puzzle-pattern-green.c9f84bbc.svg +0 -1
  326. package/dist/static/puzzle-pattern-orange.3da09665.svg +0 -1
  327. package/dist/static/puzzle-pattern-purple.5fb5a319.svg +0 -1
  328. package/dist/static/puzzle-pattern-yellow.aadbf457.svg +0 -1
@@ -1,130 +1,118 @@
1
1
  import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
- import { memo as X, useState as B, useRef as T, useCallback as I, useLayoutEffect as R } from "react";
3
- import P from "../../assets/line-icons/icons/closed-eye.js";
4
- import b from "../chapters-v2/comps/node-card/node-card-tags.js";
5
- import { getNodeTypeBasedBgImage as W } from "../chapters-v2/utils/index.js";
6
- import { getNodeCardBasedIcon as j } from "../chapters-v2/utils/node-card-utils.js";
2
+ import { memo as B, useState as L, useRef as b, useCallback as w, useLayoutEffect as R } from "react";
3
+ import W from "../../assets/line-icons/icons/closed-eye.js";
4
+ import I from "../chapters-v2/comps/node-card/node-card-tags.js";
5
+ import { getNodeTypeBasedBgImage as P } from "../chapters-v2/utils/index.js";
6
+ import { getNodeCardBasedIcon as U } from "../chapters-v2/utils/node-card-utils.js";
7
7
  import G from "../puzzles/comps/puzzle-card.js";
8
- import h from "../ui/arrow-tooltip/arrow-tooltip.js";
9
- import U from "../ui/image/image.js";
10
- import t from "../ui/layout/flex-view.js";
11
- import V from "../ui/lottie-animation/lottie-animation.js";
12
- import K from "./card-title.js";
13
- import C from "./node-progress.js";
14
- import { PuzzleCardWrapper as Z, HeaderText as _, CardWrapper as F, IconWrapper as M, BannerImageWrapper as q, BannerImage as J, SubHeaderText as Q } from "./styles.js";
8
+ import g from "../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import a from "../ui/layout/flex-view.js";
10
+ import j from "../ui/lottie-animation/lottie-animation.js";
11
+ import V from "./card-title.js";
12
+ import _ from "./node-progress.js";
13
+ import { PuzzleCardWrapper as K, CardWrapper as Z, IconWrapper as F, BannerImageWrapper as M, BannerImage as q, HeaderText as J, SubHeaderText as Q } from "./styles.js";
15
14
  const Y = { renderer: "canvas", autoplay: !1 }, ee = ({
16
- header: $,
17
- isInQueue: y,
18
- nodeData: x,
19
- studentContainerRef: g,
20
- subHeader: z,
15
+ header: h,
16
+ isInQueue: C,
17
+ nodeData: E,
18
+ studentContainerRef: $,
19
+ subHeader: x,
21
20
  userType: c,
22
- isMilestone: d = !1
21
+ isMilestone: d = !1,
22
+ puzzleHWCardRef: y
23
23
  }) => {
24
24
  const {
25
- node_type: r,
25
+ node_type: t,
26
26
  state: m,
27
27
  accuracy: f,
28
- due_date_ts: o,
29
- image_url: u,
30
- image_hue: i,
31
- card_header: E = "",
32
- unlocked_on_ts: l,
28
+ due_date_ts: r,
29
+ image_url: p,
30
+ image_hue: o,
31
+ card_header: z = "",
32
+ unlocked_on_ts: s,
33
33
  course_type: A,
34
34
  title: k
35
- } = x, D = r === "PUZZLE_CARD", w = c === "STUDENT" && m === "LOCKED", [N, H] = B(!1), s = T(null), S = W(r), p = T(null), { lottie: v } = j(r), L = I(() => {
36
- var a;
37
- (a = p.current) == null || a.play();
38
- }, []), O = I(() => {
39
- var a;
40
- (a = p.current) == null || a.stop();
35
+ } = E, D = t === "PUZZLE_CARD", T = c === "STUDENT" && m === "LOCKED", [N, v] = L(!1), l = b(null), H = P(t), u = b(null), { lottie: S } = U(t), O = w(() => {
36
+ var i;
37
+ (i = u.current) == null || i.play();
38
+ }, []), X = w(() => {
39
+ var i;
40
+ (i = u.current) == null || i.stop();
41
41
  }, []);
42
42
  return R(() => {
43
- s.current && s.current.scrollHeight > s.current.clientHeight && H(!0);
43
+ l.current && l.current.scrollHeight > l.current.clientHeight && v(!0);
44
44
  }, []), D ? /* @__PURE__ */ e(
45
- h,
45
+ g,
46
46
  {
47
47
  renderAs: "primary",
48
48
  tooltipItem: "Solve puzzle after class",
49
49
  position: "bottom",
50
- hidden: !w,
51
- children: /* @__PURE__ */ n(
52
- Z,
50
+ hidden: !T,
51
+ children: /* @__PURE__ */ e("div", { ref: y, children: /* @__PURE__ */ n(
52
+ K,
53
53
  {
54
- ref: g,
54
+ ref: $,
55
55
  $position: "relative",
56
- $background: `${i}_2`,
57
- $disabled: w,
56
+ $background: `${o}_2`,
57
+ $disabled: T,
58
58
  children: [
59
- /* @__PURE__ */ e(t, { $width: 126, $height: 160, $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ e(
59
+ /* @__PURE__ */ e(
60
60
  G,
61
61
  {
62
- imageHue: i,
63
- backgroundColor: `${i}_2`,
64
- width: "100%",
65
- height: "100%",
66
- children: /* @__PURE__ */ n(t, { $justifyContent: "center", $alignItems: "center", $flexGap: 12, children: [
67
- /* @__PURE__ */ e(
68
- U,
69
- {
70
- src: u ?? "",
71
- width: 68,
72
- height: 68,
73
- withLoader: !1,
74
- alt: "Puzzle"
75
- }
76
- ),
77
- /* @__PURE__ */ e(_, { $renderAs: "ab3", $align: "center", $width: "80%", children: k })
78
- ] })
62
+ imageHue: o,
63
+ imageUrl: p ?? "",
64
+ title: k,
65
+ width: 126,
66
+ height: 159
79
67
  }
80
- ) }),
68
+ ),
81
69
  /* @__PURE__ */ e(
82
- b,
70
+ I,
83
71
  {
84
- nodeType: r,
72
+ nodeType: t,
85
73
  state: m,
86
74
  accuracy: f,
87
- dueDateTs: o,
75
+ dueDateTs: r,
88
76
  isStudent: c === "STUDENT",
89
77
  isMilestone: d
90
78
  }
91
79
  ),
92
- !d && o && l && /* @__PURE__ */ e(
93
- C,
80
+ !d && r && s && /* @__PURE__ */ e(
81
+ _,
94
82
  {
95
- dueDate: o * 1e3,
96
- unlockedOn: l * 1e3,
97
- progressBg: `${i || "ORANGE"}_5`
83
+ dueDate: r * 1e3,
84
+ unlockedOn: s * 1e3,
85
+ progressBg: `${o || "ORANGE"}_5`
98
86
  }
99
87
  )
100
88
  ]
101
89
  }
102
- )
90
+ ) })
103
91
  }
104
92
  ) : /* @__PURE__ */ n(
105
- t,
93
+ a,
106
94
  {
107
- ref: g,
95
+ ref: $,
108
96
  $widthX: 12.38,
109
97
  $position: "relative",
110
- $background: `${i || "ORANGE"}_2`,
111
- onMouseEnter: L,
112
- onMouseLeave: O,
98
+ $background: `${o || "ORANGE"}_2`,
99
+ onMouseEnter: O,
100
+ onMouseLeave: X,
113
101
  children: [
114
102
  /* @__PURE__ */ n(
115
- F,
103
+ Z,
116
104
  {
117
105
  $flexDirection: "row",
118
106
  $alignItems: "center",
119
107
  $width: "100%",
120
108
  $heightX: 3.5,
121
- $bgImage: S,
109
+ $bgImage: H,
122
110
  $gutterX: 0.78125,
123
111
  $flexGap: 8.5,
124
112
  $position: "relative",
125
113
  children: [
126
114
  /* @__PURE__ */ e(
127
- M,
115
+ F,
128
116
  {
129
117
  $width: 31,
130
118
  $height: 31,
@@ -133,67 +121,67 @@ const Y = { renderer: "canvas", autoplay: !1 }, ee = ({
133
121
  $position: "relative",
134
122
  $alignItems: "center",
135
123
  $justifyContent: "center",
136
- children: /* @__PURE__ */ e(V, { src: v, ref: p, settings: Y })
124
+ children: /* @__PURE__ */ e(j, { src: S, ref: u, settings: Y })
137
125
  }
138
126
  ),
139
- /* @__PURE__ */ e(K, { cardHeader: E, nodeType: r, courseType: A }),
140
- y && /* @__PURE__ */ e(
141
- h,
127
+ /* @__PURE__ */ e(V, { cardHeader: z, nodeType: t, courseType: A }),
128
+ C && /* @__PURE__ */ e(
129
+ g,
142
130
  {
143
131
  renderAs: "primary",
144
132
  tooltipItem: "Not visible to student",
145
133
  position: "bottom",
146
134
  zIndex: 6,
147
- children: /* @__PURE__ */ e(P, {})
135
+ children: /* @__PURE__ */ e(W, {})
148
136
  }
149
137
  ),
150
- !!u && /* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(J, { src: u, alt: "Chapter image" }) })
138
+ !!p && /* @__PURE__ */ e(M, { children: /* @__PURE__ */ e(q, { src: p, alt: "Chapter image" }) })
151
139
  ]
152
140
  }
153
141
  ),
154
142
  /* @__PURE__ */ e(
155
- b,
143
+ I,
156
144
  {
157
- nodeType: r,
145
+ nodeType: t,
158
146
  state: m,
159
147
  accuracy: f,
160
- dueDateTs: o,
148
+ dueDateTs: r,
161
149
  isStudent: c === "STUDENT",
162
150
  isMilestone: d
163
151
  }
164
152
  ),
165
- !d && o && l && /* @__PURE__ */ e(
166
- C,
153
+ !d && r && s && /* @__PURE__ */ e(
154
+ _,
167
155
  {
168
- dueDate: o * 1e3,
169
- unlockedOn: l * 1e3,
170
- progressBg: `${i || "ORANGE"}_4`
156
+ dueDate: r * 1e3,
157
+ unlockedOn: s * 1e3,
158
+ progressBg: `${o || "ORANGE"}_4`
171
159
  }
172
160
  ),
173
- /* @__PURE__ */ n(t, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
161
+ /* @__PURE__ */ n(a, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
174
162
  /* @__PURE__ */ e(
175
- h,
163
+ g,
176
164
  {
177
165
  renderAs: "primary",
178
166
  position: "bottom",
179
- tooltipItem: $,
167
+ tooltipItem: h,
180
168
  width: 300,
181
169
  hidden: !N,
182
170
  parentWidth: "auto",
183
171
  zIndex: 6,
184
- children: /* @__PURE__ */ e(t, { $heightX: 2.5, children: /* @__PURE__ */ e(_, { ref: s, $renderAs: "ab3", children: $ }) })
172
+ children: /* @__PURE__ */ e(a, { $heightX: 2.5, children: /* @__PURE__ */ e(J, { ref: l, $renderAs: "ab3", children: h }) })
185
173
  }
186
174
  ),
187
175
  /* @__PURE__ */ n(
188
- t,
176
+ a,
189
177
  {
190
178
  $flexDirection: "row",
191
179
  $heightX: 1.25,
192
180
  $alignItems: "center",
193
181
  $justifyContent: "space-between",
194
182
  children: [
195
- /* @__PURE__ */ e(Q, { $renderAs: "ub3", $color: "BLACK_T_60", children: z }),
196
- /* @__PURE__ */ e(t, { $width: 32 })
183
+ /* @__PURE__ */ e(Q, { $renderAs: "ub3", $color: "BLACK_T_60", children: x }),
184
+ /* @__PURE__ */ e(a, { $width: 32 })
197
185
  ]
198
186
  }
199
187
  )
@@ -201,8 +189,8 @@ const Y = { renderer: "canvas", autoplay: !1 }, ee = ({
201
189
  ]
202
190
  }
203
191
  );
204
- }, $e = X(ee);
192
+ }, ge = B(ee);
205
193
  export {
206
- $e as default
194
+ ge as default
207
195
  };
208
196
  //# sourceMappingURL=homework-card-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card-view.js","sources":["../../../src/features/homework/homework-card-view.tsx"],"sourcesContent":["import type { INodeDataProps } from '../chapters-v2/comps/node-card/node-card-types';\nimport type { ILottieAnimationRef } from '../ui/lottie-animation/types';\nimport type { TUserTypes } from '../ui/types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport ClosedEyeIcon from '../../assets/line-icons/icons/closed-eye';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\nimport PuzzleCard from '../puzzles/comps/puzzle-card';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Image from '../ui/image/image';\nimport FlexView from '../ui/layout/flex-view';\nimport LottieAnimation from '../ui/lottie-animation/lottie-animation';\nimport CardTitle from './card-title';\nimport NodeProgress from './node-progress';\nimport * as Styled from './styles';\n\nconst renderSettings = { renderer: 'canvas', autoplay: false };\n\ninterface IHomeworkCardViewProps {\n header: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n studentContainerRef: React.RefObject<HTMLDivElement>;\n subHeader: string;\n userType: TUserTypes;\n isMilestone?: boolean;\n}\n\nconst HomeworkView: FC<IHomeworkCardViewProps> = ({\n header,\n isInQueue,\n nodeData,\n studentContainerRef,\n subHeader,\n userType,\n isMilestone = false,\n}) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n unlocked_on_ts: unlockedOnTs,\n course_type: courseType,\n title,\n } = nodeData;\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isPuzzleDisabled = userType === 'STUDENT' && state === 'LOCKED';\n\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n const { lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n\n const handleOnMouseEnter = useCallback(() => {\n animationRef.current?.play();\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n animationRef.current?.stop();\n }, []);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, []);\n\n if (isPuzzleCard) {\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Solve puzzle after class\"\n position=\"bottom\"\n hidden={!isPuzzleDisabled}\n >\n <Styled.PuzzleCardWrapper\n ref={studentContainerRef}\n $position=\"relative\"\n $background={`${imageHue}_2`}\n $disabled={isPuzzleDisabled}\n >\n <FlexView $width={126} $height={160} $justifyContent=\"center\" $alignItems=\"center\">\n <PuzzleCard\n imageHue={imageHue}\n backgroundColor={`${imageHue}_2`}\n width=\"100%\"\n height=\"100%\"\n >\n <FlexView $justifyContent=\"center\" $alignItems=\"center\" $flexGap={12}>\n <Image\n src={imageUrl ?? ''}\n width={68}\n height={68}\n withLoader={false}\n alt=\"Puzzle\"\n />\n\n <Styled.HeaderText $renderAs=\"ab3\" $align=\"center\" $width=\"80%\">\n {title}\n </Styled.HeaderText>\n </FlexView>\n </PuzzleCard>\n </FlexView>\n\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n isStudent={userType === 'STUDENT'}\n isMilestone={isMilestone}\n />\n {!isMilestone && dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_5`}\n />\n )}\n </Styled.PuzzleCardWrapper>\n </ArrowTooltip>\n );\n }\n\n return (\n <FlexView\n ref={studentContainerRef}\n $widthX={12.38}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <LottieAnimation src={nodeCardLottie} ref={animationRef} settings={renderSettings} />\n </Styled.IconWrapper>\n <CardTitle cardHeader={cardHeader} nodeType={nodeType} courseType={courseType} />\n {isInQueue && (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Not visible to student\"\n position=\"bottom\"\n zIndex={6}\n >\n <ClosedEyeIcon />\n </ArrowTooltip>\n )}\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n isStudent={userType === 'STUDENT'}\n isMilestone={isMilestone}\n />\n {!isMilestone && dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_4`}\n />\n )}\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n width={300}\n hidden={!showTitleTooltip}\n parentWidth=\"auto\"\n zIndex={6}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n <FlexView $width={32} />\n </FlexView>\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(HomeworkView);\n"],"names":["renderSettings","HomeworkView","header","isInQueue","nodeData","studentContainerRef","subHeader","userType","isMilestone","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","unlockedOnTs","courseType","title","isPuzzleCard","isPuzzleDisabled","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","bgImage","getNodeTypeBasedBgImage","animationRef","nodeCardLottie","getNodeCardBasedIcon","handleOnMouseEnter","useCallback","_a","handleOnMouseLeave","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.PuzzleCardWrapper","FlexView","PuzzleCard","Image","Styled.HeaderText","NodeCardTags","NodeProgress","Styled.CardWrapper","Styled.IconWrapper","LottieAnimation","CardTitle","ClosedEyeIcon","Styled.BannerImageWrapper","Styled.BannerImage","Styled.SubHeaderText","HomeworkView$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"homework-card-view.js","sources":["../../../src/features/homework/homework-card-view.tsx"],"sourcesContent":["import type { INodeDataProps } from '../chapters-v2/comps/node-card/node-card-types';\nimport type { ILottieAnimationRef } from '../ui/lottie-animation/types';\nimport type { TUserTypes } from '../ui/types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport ClosedEyeIcon from '../../assets/line-icons/icons/closed-eye';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\nimport PuzzleCard from '../puzzles/comps/puzzle-card';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../ui/layout/flex-view';\nimport LottieAnimation from '../ui/lottie-animation/lottie-animation';\nimport CardTitle from './card-title';\nimport NodeProgress from './node-progress';\nimport * as Styled from './styles';\n\nconst renderSettings = { renderer: 'canvas', autoplay: false };\n\ninterface IHomeworkCardViewProps {\n header: string;\n isInQueue?: boolean;\n nodeData: INodeDataProps;\n studentContainerRef: React.RefObject<HTMLDivElement>;\n subHeader: string;\n userType: TUserTypes;\n isMilestone?: boolean;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\n\nconst HomeworkView: FC<IHomeworkCardViewProps> = ({\n header,\n isInQueue,\n nodeData,\n studentContainerRef,\n subHeader,\n userType,\n isMilestone = false,\n puzzleHWCardRef,\n}) => {\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n unlocked_on_ts: unlockedOnTs,\n course_type: courseType,\n title,\n } = nodeData;\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isPuzzleDisabled = userType === 'STUDENT' && state === 'LOCKED';\n\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n const { lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n\n const handleOnMouseEnter = useCallback(() => {\n animationRef.current?.play();\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n animationRef.current?.stop();\n }, []);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, []);\n\n if (isPuzzleCard) {\n return (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Solve puzzle after class\"\n position=\"bottom\"\n hidden={!isPuzzleDisabled}\n >\n <div ref={puzzleHWCardRef}>\n <Styled.PuzzleCardWrapper\n ref={studentContainerRef}\n $position=\"relative\"\n $background={`${imageHue}_2`}\n $disabled={isPuzzleDisabled}\n >\n <PuzzleCard\n imageHue={imageHue}\n imageUrl={imageUrl ?? ''}\n title={title}\n width={126}\n height={159}\n />\n\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n isStudent={userType === 'STUDENT'}\n isMilestone={isMilestone}\n />\n {!isMilestone && dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_5`}\n />\n )}\n </Styled.PuzzleCardWrapper>\n </div>\n </ArrowTooltip>\n );\n }\n\n return (\n <FlexView\n ref={studentContainerRef}\n $widthX={12.38}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <LottieAnimation src={nodeCardLottie} ref={animationRef} settings={renderSettings} />\n </Styled.IconWrapper>\n <CardTitle cardHeader={cardHeader} nodeType={nodeType} courseType={courseType} />\n {isInQueue && (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Not visible to student\"\n position=\"bottom\"\n zIndex={6}\n >\n <ClosedEyeIcon />\n </ArrowTooltip>\n )}\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n isStudent={userType === 'STUDENT'}\n isMilestone={isMilestone}\n />\n {!isMilestone && dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_4`}\n />\n )}\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n width={300}\n hidden={!showTitleTooltip}\n parentWidth=\"auto\"\n zIndex={6}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n <FlexView $width={32} />\n </FlexView>\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(HomeworkView);\n"],"names":["renderSettings","HomeworkView","header","isInQueue","nodeData","studentContainerRef","subHeader","userType","isMilestone","puzzleHWCardRef","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","unlockedOnTs","courseType","title","isPuzzleCard","isPuzzleDisabled","showTitleTooltip","setShowTitleTooltip","useState","titleTextRef","useRef","bgImage","getNodeTypeBasedBgImage","animationRef","nodeCardLottie","getNodeCardBasedIcon","handleOnMouseEnter","useCallback","_a","handleOnMouseLeave","useLayoutEffect","jsx","ArrowTooltip","jsxs","Styled.PuzzleCardWrapper","PuzzleCard","NodeCardTags","NodeProgress","FlexView","Styled.CardWrapper","Styled.IconWrapper","LottieAnimation","CardTitle","ClosedEyeIcon","Styled.BannerImageWrapper","Styled.BannerImage","Styled.HeaderText","Styled.SubHeaderText","HomeworkCardView","memo"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { jsxs as x, jsx as t } from "react/jsx-runtime";
2
- import { memo as te, useRef as L, useCallback as w, useMemo as ie } from "react";
2
+ import { memo as ie, useRef as L, useCallback as w, useMemo as ne } from "react";
3
3
  import P from "../../assets/line-icons/icons/eye2.js";
4
- import ne from "../../assets/line-icons/icons/home2.js";
5
- import ce from "../../assets/line-icons/icons/more-vertical.js";
4
+ import ce from "../../assets/line-icons/icons/home2.js";
5
+ import oe from "../../assets/line-icons/icons/more-vertical.js";
6
6
  import X from "../../assets/line-icons/icons/redo.js";
7
7
  import H from "../ui/arrow-tooltip/arrow-tooltip.js";
8
- import oe from "../ui/buttons/clickable/clickable.js";
8
+ import se from "../ui/buttons/clickable/clickable.js";
9
9
  import j from "../ui/hooks/use-context-menu-click-handler.js";
10
- import se from "../ui/layout/flex-view.js";
10
+ import ae from "../ui/layout/flex-view.js";
11
11
  import z from "./card-menu-options.js";
12
- import ae from "./homework-card-view.js";
13
- import { CardContainer as le, MenuWrapper as ue, CardKebabMenuWrapper as de, BlurContainer as he, BlurFlexView as me, StyledMinus2Icon as fe } from "./styles.js";
14
- import { getCardAnalyticProps as pe } from "./utils.js";
15
- const be = ({
12
+ import le from "./homework-card-view.js";
13
+ import { CardContainer as ue, MenuWrapper as de, CardKebabMenuWrapper as he, BlurContainer as me, BlurFlexView as fe, StyledMinus2Icon as pe } from "./styles.js";
14
+ import { getCardAnalyticProps as be } from "./utils.js";
15
+ const we = ({
16
16
  // callbacks
17
17
  nodeData: e,
18
18
  onNodeAttempt: C,
@@ -28,23 +28,24 @@ const be = ({
28
28
  studentId: I,
29
29
  subHeader: K,
30
30
  userMilestoneId: Z,
31
- userType: v
31
+ userType: v,
32
+ puzzleHWCardRef: Y
32
33
  }) => {
33
34
  const i = E === "homework", {
34
35
  node_type: m,
35
36
  state: R,
36
- permissions: Y,
37
+ permissions: q,
37
38
  user_node_id: c,
38
- user_milestone_id: q,
39
+ user_milestone_id: G,
39
40
  homework_id: o
40
- } = e, r = Z || q || "", g = m === "PUZZLE_CARD", G = R === "LOCKED", _ = L(null), M = L(null), { menuVisible: S, onMenuClick: J } = j(_), { menuVisible: Q, onMenuClick: V } = j(M), {
41
+ } = e, r = Z || G || "", g = m === "PUZZLE_CARD", J = R === "LOCKED", _ = L(null), M = L(null), { menuVisible: S, onMenuClick: Q } = j(_), { menuVisible: U, onMenuClick: V } = j(M), {
41
42
  can_start: f,
42
43
  can_resume: p,
43
44
  can_review: s,
44
- can_unassign: U,
45
+ can_unassign: A,
45
46
  can_reset: O,
46
- can_assign_as_homework: A
47
- } = Y, a = v === "STUDENT", b = w(() => {
47
+ can_assign_as_homework: D
48
+ } = q, a = v === "STUDENT", b = w(() => {
48
49
  if (s) {
49
50
  if (typeof n != "function")
50
51
  throw new Error("onReview must be a function");
@@ -53,7 +54,7 @@ const be = ({
53
54
  n(e, r);
54
55
  return;
55
56
  }
56
- }, [s, n, c, e, r]), D = w(() => {
57
+ }, [s, n, c, e, r]), N = w(() => {
57
58
  if (f || p) {
58
59
  if (typeof C != "function")
59
60
  throw new Error("onNodeAttempt must be a function");
@@ -119,7 +120,7 @@ const be = ({
119
120
  y,
120
121
  r
121
122
  ]
122
- ), N = [
123
+ ), ee = [
123
124
  {
124
125
  id: "teacher-card-view",
125
126
  label: s ? "Review" : "View",
@@ -130,8 +131,8 @@ const be = ({
130
131
  {
131
132
  id: "teacher-card-unassign",
132
133
  label: "Unassign",
133
- icon: fe,
134
- disabled: i ? m === "MASTERY" : !U,
134
+ icon: pe,
135
+ disabled: i ? m === "MASTERY" : !A,
135
136
  onClick: l
136
137
  },
137
138
  {
@@ -144,11 +145,11 @@ const be = ({
144
145
  {
145
146
  id: "teacher-card-assign-as-hw",
146
147
  label: "Assign as HW",
147
- icon: ne,
148
- disabled: !A,
148
+ icon: ce,
149
+ disabled: !D,
149
150
  onClick: l
150
151
  }
151
- ], ee = [
152
+ ], re = [
152
153
  {
153
154
  id: "student-card-view",
154
155
  label: "Review",
@@ -163,8 +164,8 @@ const be = ({
163
164
  disabled: !O,
164
165
  onClick: l
165
166
  }
166
- ], T = ie(
167
- () => pe({
167
+ ], T = ne(
168
+ () => be({
168
169
  canResume: p,
169
170
  canStart: f,
170
171
  homeworkId: o,
@@ -186,18 +187,18 @@ const be = ({
186
187
  c,
187
188
  r
188
189
  ]
189
- ), re = a && g && G;
190
- return /* @__PURE__ */ x(le, { $position: "relative", $width: "fit-content", children: [
190
+ ), te = a && g && J;
191
+ return /* @__PURE__ */ x(ue, { $position: "relative", $width: "fit-content", children: [
191
192
  /* @__PURE__ */ t(
192
- oe,
193
+ se,
193
194
  {
194
- onClick: a ? D : y,
195
+ onClick: a ? N : y,
195
196
  label: "homework-card",
196
197
  analyticsLabel: T.analyticsLabel,
197
198
  analyticsProps: T.analyticsProps,
198
- disabled: re,
199
+ disabled: te,
199
200
  children: /* @__PURE__ */ t(
200
- ae,
201
+ le,
201
202
  {
202
203
  header: F,
203
204
  isInQueue: $,
@@ -205,7 +206,8 @@ const be = ({
205
206
  studentContainerRef: M,
206
207
  subHeader: K,
207
208
  userType: v,
208
- isMilestone: E === "milestone"
209
+ isMilestone: E === "milestone",
210
+ puzzleHWCardRef: Y
209
211
  }
210
212
  )
211
213
  }
@@ -214,13 +216,13 @@ const be = ({
214
216
  z,
215
217
  {
216
218
  $width: 200,
217
- options: ee,
219
+ options: re,
218
220
  triggerRef: M,
219
- visible: Q,
221
+ visible: U,
220
222
  shouldOpenOnRight: !1
221
223
  }
222
224
  ),
223
- !a && !g && /* @__PURE__ */ x(ue, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
225
+ !a && !g && /* @__PURE__ */ x(de, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
224
226
  /* @__PURE__ */ t(
225
227
  H,
226
228
  {
@@ -231,13 +233,13 @@ const be = ({
231
233
  parentWidth: "100%",
232
234
  hidden: S || R !== "WAIT_FOR_REVIEW" && i,
233
235
  children: /* @__PURE__ */ t(
234
- de,
236
+ he,
235
237
  {
236
238
  $alignItems: "center",
237
239
  $justifyContent: "center",
238
240
  ref: _,
239
- onClick: J,
240
- children: /* @__PURE__ */ t(ce, { width: 16, height: 16 })
241
+ onClick: Q,
242
+ children: /* @__PURE__ */ t(oe, { width: 16, height: 16 })
241
243
  }
242
244
  )
243
245
  }
@@ -245,7 +247,7 @@ const be = ({
245
247
  /* @__PURE__ */ t(
246
248
  z,
247
249
  {
248
- options: N,
250
+ options: ee,
249
251
  triggerRef: _,
250
252
  visible: S,
251
253
  shouldOpenOnRight: B,
@@ -253,10 +255,10 @@ const be = ({
253
255
  }
254
256
  )
255
257
  ] }),
256
- $ && /* @__PURE__ */ t(he, { $background: "WHITE_5", children: /* @__PURE__ */ t(me, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(H, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(se, { $heightX: 1, $widthX: 6 }) }) }) })
258
+ $ && /* @__PURE__ */ t(me, { $background: "WHITE_5", children: /* @__PURE__ */ t(fe, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ t(H, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ t(ae, { $heightX: 1, $widthX: 6 }) }) }) })
257
259
  ] });
258
- }, Oe = te(be);
260
+ }, Te = ie(we);
259
261
  export {
260
- Oe as default
262
+ Te as default
261
263
  };
262
264
  //# sourceMappingURL=homework-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { FC } from 'react';\n\nimport React, { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n milestoneId,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [canReview, onNodeView, nodeData, milestoneId, onNodeReview, userNodeId, homeworkId]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n milestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n const isClickableDisabled = isStudent && isPuzzleCard && isSheetLocked;\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n isMilestone={renderAs === 'milestone'}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","nodeDataMilestoneId","homeworkId","milestoneId","isPuzzleCard","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":";;;;;;;;;;;;;;AAkCA,MAAMA,KAAuC,CAAC;AAAA;AAAA,EAE5C,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,wBAAAC;AAAA,EAEA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAaN,MAAa,YAC1B;AAAA,IACJ,WAAWO;AAAA,IACX,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAcC;AAAA,IACd,mBAAmBC;AAAA,IACnB,aAAaC;AAAA,EACX,IAAArB,GAEEsB,IAAcT,KAAmBO,KAAuB,IACxDG,IAAeP,MAAa,eAC5BQ,IAAgBP,MAAU,UAE1BQ,IAAsBC,EAAuB,IAAI,GACjDC,IAAsBD,EAAuB,IAAI,GACjD,EAAE,aAAaE,GAAoB,aAAaC,MACpDC,EAA2BL,CAAmB,GAC1C,EAAE,aAAaM,GAAoB,aAAaC,MACpDF,EAA2BH,CAAmB,GAE1C;AAAA,IACJ,WAAWM;AAAA,IACX,YAAYC;AAAA,IACZ,YAAYC;AAAA,IACZ,cAAcC;AAAA,IACd,WAAWC;AAAA,IACX,wBAAwBC;AAAA,EACtB,IAAApB,GACEqB,IAAYzB,MAAa,WAEzB0B,IAAqBC,EAAY,MAAM;AAC3C,QAAIN,GAAW;AACT,UAAA,OAAOhC,KAAiB;AACpB,cAAA,IAAI,MAAM,6BAA6B;AAG/C,UAAI,CAACgB;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEpE,MAAAhB,EAAaH,GAAUsB,CAAW;AAElC;AAAA,IACF;AAAA,EAAA,GACC,CAACa,GAAWhC,GAAcgB,GAAYnB,GAAUsB,CAAW,CAAC,GAEzDoB,IAAqBD,EAAY,MAAM;AAC3C,QAAIR,KAAYC,GAAW;AACrB,UAAA,OAAOjC,KAAkB;AACrB,cAAA,IAAI,MAAM,kCAAkC;AAGtC,MAAAA,EAAAD,GAAUsB,GAAaD,CAAU;AAE/C;AAAA,IACF;AAEA,QAAI,CAACN,GAAY;AACI,MAAAiB;AAEnB;AAAA,IACF;AACmB,IAAAQ;EAAA,GAClB;AAAA,IACDP;AAAA,IACAC;AAAA,IACAnB;AAAA,IACAyB;AAAA,IACAvC;AAAA,IACAD;AAAA,IACAsB;AAAA,IACAD;AAAA,IACAW;AAAA,EAAA,CACD,GAEKW,IAAqBF,EAAY,MAAM;AAC3C,QAAIN,GAAW;AACT,UAAA,OAAOhC,KAAiB;AACpB,cAAA,IAAI,MAAM,iCAAiC;AAGnD,UAAI,CAACgB;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEvD,MAAAhB,EAAAH,GAAUsB,GAAaD,CAAU;AAE9C;AAAA,IACF;AAEI,QAAA,OAAOhB,KAAe;AAClB,YAAA,IAAI,MAAM,+BAA+B;AAGjD,IAAAA,EAAWL,GAAUsB,CAAW;AAAA,EAAA,GAC/B,CAACa,GAAW9B,GAAYL,GAAUsB,GAAanB,GAAcgB,GAAYE,CAAU,CAAC,GAEjFuB,IAA0BH;AAAA,IAC9B,CAACI,MAAqB;AACpB,cAAQA,GAAU;AAAA,QAChB,KAAK;AACgB,UAAAF;AAEnB;AAAA,QACF,KAAK;AACgB,UAAAH;AAEnB;AAAA,QACF,KAAK;AACH,UAAApC,KAAA,QAAAA,EAAiBJ,GAAUsB;AAE3B;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,UAAApB,KAAA,QAAAA,EAAkBF,GAAUsB;AAE5B;AAAA,QAEF,KAAK;AACH,UAAAhB,KAAA,QAAAA,EAAyBN,GAAUsB;AAEnC;AAAA,QAEF;AACE,gBAAM,IAAI,MAAM,4BAA4BuB,CAAQ,EAAE;AAAA,MAC1D;AAAA,IACF;AAAA,IACA;AAAA,MACE7C;AAAA,MACAM;AAAA,MACAJ;AAAA,MACAE;AAAA,MACAoC;AAAA,MACAG;AAAA,MACArB;AAAA,IACF;AAAA,EAAA,GAGIwB,IAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAOX,IAAY,WAAW;AAAA,MAC9B,MAAMY;AAAA,MACN,UAAU;AAAA,MACV,SAASH;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMI;AAAAA,MACN,UAAUjC,IAAaC,MAAa,YAAY,CAACoB;AAAA,MACjD,SAASQ;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMK;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASO;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMM;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASM;AAAA,IACX;AAAA,EAAA,GAGIO,KAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMJ;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASS;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMK;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASO;AAAA,IACX;AAAA,EAAA,GAGIQ,IAAiBC;AAAA,IACrB,MACEC,GAAqB;AAAA,MACnB,WAAApB;AAAA,MACA,UAAAD;AAAA,MACA,YAAAZ;AAAA,MACA,YAAAN;AAAA,MACA,WAAAwB;AAAA,MACA,aAAAjB;AAAA,MACA,UAAAN;AAAA,MACA,WAAAL;AAAA,MACA,YAAAQ;AAAA,IAAA,CACD;AAAA,IACH;AAAA,MACEoB;AAAA,MACAxB;AAAA,MACAJ;AAAA,MACAK;AAAA,MACAiB;AAAA,MACAC;AAAA,MACAb;AAAA,MACAF;AAAA,MACAG;AAAA,IACF;AAAA,EAAA,GAGIiC,KAAsBhB,KAAahB,KAAgBC;AAEzD,2BACGgC,IAAA,EAAqB,WAAU,YAAW,QAAO,eAChD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAASnB,IAAYG,IAAqBC;AAAA,QAC1C,OAAM;AAAA,QACN,gBAAgBS,EAAe;AAAA,QAC/B,gBAAgBA,EAAe;AAAA,QAC/B,UAAUG;AAAA,QAEV,UAAA,gBAAAE;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,QAAApD;AAAA,YACA,WAAAC;AAAA,YACA,UAAAR;AAAA,YACA,qBAAA2B;AAAA,YACA,WAAAf;AAAA,YACA,UAAAE;AAAA,YACA,aAAaL,MAAa;AAAA,UAAA;AAAA,QAC5B;AAAA,MAAA;AAAA,IACF;AAAA,IACC8B,KAAa,CAACxB,KACb,gBAAA0C;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,SAAST;AAAA,QACT,YAAYxB;AAAA,QACZ,SAASI;AAAA,QACT,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,IAED,CAACQ,KAAa,CAAChB,KACb,gBAAAsC,EAAAC,IAAA,EAAmB,WAAU,YAAW,QAAO,eAAc,gBAAgB,GAC5E,UAAA;AAAA,MAAA,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,UAAS;AAAA,UACT,QAAQ;AAAA,UACR,aAAY;AAAA,UACZ,QAAQnC,KAAuBX,MAAU,qBAAqBF;AAAA,UAE9D,UAAA,gBAAA0C;AAAA,YAACO;AAAAA,YAAA;AAAA,cACC,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,KAAKvC;AAAA,cACL,SAASI;AAAA,cAET,UAAC,gBAAA4B,EAAAQ,IAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,MACA,gBAAAR;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,SAASd;AAAA,UACT,YAAYrB;AAAA,UACZ,SAASG;AAAA,UACT,mBAAAlB;AAAA,UACA,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IAAA,GACF;AAAA,IAEDF,KACC,gBAAAiD,EAACS,IAAA,EAAqB,aAAY,WAChC,UAAA,gBAAAT,EAACU,IAAA,EAAoB,UAAU,GAAG,SAAS,GACzC,UAAC,gBAAAV,EAAAM,GAAA,EAAa,UAAS,WAAU,aAAY,0BAAyB,UAAS,UAC7E,UAAA,gBAAAN,EAACW,IAAS,EAAA,UAAU,GAAG,SAAS,EAAG,CAAA,EACrC,CAAA,EACF,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEeC,KAAAC,GAAKvE,EAAY;"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { FC } from 'react';\n\nimport React, { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n puzzleHWCardRef?: React.RefObject<HTMLDivElement>;\n}\n\nconst HomeworkCard: FC<IHomeworkCardProps> = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n onNodeAssignAsHomework,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n puzzleHWCardRef,\n}) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: nodeDataMilestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const milestoneId = userMilestoneId || nodeDataMilestoneId || '';\n const isPuzzleCard = nodeType === 'PUZZLE_CARD';\n const isSheetLocked = state === 'LOCKED';\n\n const teacherContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const studentContainerRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n can_assign_as_homework: canAssignAsHw,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, milestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n milestoneId,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, milestoneId);\n }, [canReview, onNodeView, nodeData, milestoneId, onNodeReview, userNodeId, homeworkId]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, milestoneId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, milestoneId);\n\n return;\n\n case 'teacher-card-assign-as-hw':\n onNodeAssignAsHomework?.(nodeData, milestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeAssignAsHomework,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n milestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-assign-as-hw',\n label: 'Assign as HW',\n icon: Home2Icon,\n disabled: !canAssignAsHw,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n const isClickableDisabled = isStudent && isPuzzleCard && isSheetLocked;\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n disabled={isClickableDisabled}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n isMilestone={renderAs === 'milestone'}\n puzzleHWCardRef={puzzleHWCardRef}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && !isPuzzleCard && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n $width={144}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","onNodeAssignAsHomework","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","puzzleHWCardRef","isHomeWork","nodeType","state","permissions","userNodeId","nodeDataMilestoneId","homeworkId","milestoneId","isPuzzleCard","isSheetLocked","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","canAssignAsHw","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","Home2Icon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","isClickableDisabled","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}