@cuemath/leap 2.9.7 → 2.9.9-as2

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 (302) hide show
  1. package/dist/assets/illustrations/illustrations.js +9 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/alarm.js +41 -0
  4. package/dist/assets/line-icons/icons/alarm.js.map +1 -0
  5. package/dist/assets/line-icons/icons/bin2.js +7 -8
  6. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  7. package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
  8. package/dist/assets/line-icons/icons/dart.js +23 -0
  9. package/dist/assets/line-icons/icons/dart.js.map +1 -0
  10. package/dist/assets/line-icons/icons/exclamation.js +26 -0
  11. package/dist/assets/line-icons/icons/exclamation.js.map +1 -0
  12. package/dist/assets/line-icons/icons/home2.js +25 -0
  13. package/dist/assets/line-icons/icons/home2.js.map +1 -0
  14. package/dist/assets/line-icons/icons/important.js +23 -0
  15. package/dist/assets/line-icons/icons/important.js.map +1 -0
  16. package/dist/assets/line-icons/icons/puzzle.js +25 -0
  17. package/dist/assets/line-icons/icons/puzzle.js.map +1 -0
  18. package/dist/assets/line-icons/icons/recap.js +32 -0
  19. package/dist/assets/line-icons/icons/recap.js.map +1 -0
  20. package/dist/assets/line-icons/icons/skip-colored.js +43 -0
  21. package/dist/assets/line-icons/icons/skip-colored.js.map +1 -0
  22. package/dist/assets/line-icons/icons/status.js +41 -0
  23. package/dist/assets/line-icons/icons/status.js.map +1 -0
  24. package/dist/assets/line-icons/icons/testtube.js +33 -0
  25. package/dist/assets/line-icons/icons/testtube.js.map +1 -0
  26. package/dist/assets/lottie/lottie.js +9 -1
  27. package/dist/assets/lottie/lottie.js.map +1 -1
  28. package/dist/constants/api.js +3 -2
  29. package/dist/constants/api.js.map +1 -1
  30. package/dist/features/analytics-events/platform-events-student.js +3 -3
  31. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  32. package/dist/features/analytics-events/whitelist-events.js +13 -11
  33. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  34. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +99 -33
  35. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
  36. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +92 -49
  37. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  38. package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
  39. package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
  40. package/dist/features/chapters/chapters-list/chapters-list.js +64 -70
  41. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  42. package/dist/features/chapters-v2/api/chapter.js +10 -0
  43. package/dist/features/chapters-v2/api/chapter.js.map +1 -0
  44. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +112 -0
  45. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -0
  46. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +35 -0
  47. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +1 -0
  48. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +83 -0
  49. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -0
  50. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +90 -0
  51. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -0
  52. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +98 -0
  53. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -0
  54. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +51 -0
  55. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +1 -0
  56. package/dist/features/chapters-v2/chapter-details/chapter-details.js +130 -0
  57. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -0
  58. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +13 -0
  59. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +1 -0
  60. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +159 -0
  61. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -0
  62. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +16 -0
  63. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -0
  64. package/dist/features/chapters-v2/comps/node-card/node-card.js +12 -0
  65. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -0
  66. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js +31 -0
  67. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +1 -0
  68. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +32 -0
  69. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +1 -0
  70. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +9 -0
  71. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -0
  72. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +189 -0
  73. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -0
  74. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +194 -0
  75. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -0
  76. package/dist/features/chapters-v2/comps/tag/tag-styled.js +13 -0
  77. package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +1 -0
  78. package/dist/features/chapters-v2/comps/tag/tag.js +28 -0
  79. package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -0
  80. package/dist/features/chapters-v2/constants/block-constants.js +20 -0
  81. package/dist/features/chapters-v2/constants/block-constants.js.map +1 -0
  82. package/dist/features/chapters-v2/constants/node-constants.js +14 -0
  83. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -0
  84. package/dist/features/chapters-v2/utils/index.js +38 -0
  85. package/dist/features/chapters-v2/utils/index.js.map +1 -0
  86. package/dist/features/chapters-v2/utils/node-card-utils.js +177 -0
  87. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -0
  88. package/dist/features/circle-games/games/tutorial/constants.js +2 -2
  89. package/dist/features/circle-games/games/tutorial/constants.js.map +1 -1
  90. package/dist/features/circle-games/games/tutorial/tutorial-styled.js +6 -6
  91. package/dist/features/circle-games/games/tutorial/tutorial-styled.js.map +1 -1
  92. package/dist/features/circle-games/games/web-view/web-view.js +45 -52
  93. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  94. package/dist/features/circle-games/leaderboard/comps/banner/banner.js +6 -6
  95. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  96. package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js +1 -1
  97. package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js.map +1 -1
  98. package/dist/features/circle-games/leaderboard/leaderboard-styled.js +1 -1
  99. package/dist/features/circle-games/leaderboard/leaderboard-styled.js.map +1 -1
  100. package/dist/features/circle-games/leaderboard/leaderboard.js +9 -9
  101. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  102. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js +8 -8
  103. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js.map +1 -1
  104. package/dist/features/circle-games/sign-up/constants.js +9 -9
  105. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  106. package/dist/features/communication/pub-sub/constants.js +12 -6
  107. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  108. package/dist/features/homework/card-menu-option.js +28 -0
  109. package/dist/features/homework/card-menu-option.js.map +1 -0
  110. package/dist/features/homework/card-menu-options.js +22 -0
  111. package/dist/features/homework/card-menu-options.js.map +1 -0
  112. package/dist/features/homework/card-title.js +16 -0
  113. package/dist/features/homework/card-title.js.map +1 -0
  114. package/dist/features/homework/homework-analytics-events.js +10 -0
  115. package/dist/features/homework/homework-analytics-events.js.map +1 -0
  116. package/dist/features/homework/homework-card-view.js +143 -0
  117. package/dist/features/homework/homework-card-view.js.map +1 -0
  118. package/dist/features/homework/homework-card.js +245 -0
  119. package/dist/features/homework/homework-card.js.map +1 -0
  120. package/dist/features/homework/hw-card-list/api/get-homeworks.js +10 -0
  121. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -0
  122. package/dist/features/homework/hw-card-list/hw-card-list-styled.js +63 -0
  123. package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +1 -0
  124. package/dist/features/homework/hw-card-list/hw-card-list.js +191 -0
  125. package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -0
  126. package/dist/features/homework/node-progress.js +29 -0
  127. package/dist/features/homework/node-progress.js.map +1 -0
  128. package/dist/features/homework/styles.js +130 -0
  129. package/dist/features/homework/styles.js.map +1 -0
  130. package/dist/features/homework/utils.js +48 -0
  131. package/dist/features/homework/utils.js.map +1 -0
  132. package/dist/features/journey/comps/coachmark/coachmark-styled.js +12 -5
  133. package/dist/features/journey/comps/coachmark/coachmark-styled.js.map +1 -1
  134. package/dist/features/journey/comps/coachmark/coachmark.js +24 -24
  135. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  136. package/dist/features/journey/hooks/use-chapter-journey.js +194 -0
  137. package/dist/features/journey/hooks/use-chapter-journey.js.map +1 -0
  138. package/dist/features/journey/hooks/use-home-page-journey.js +189 -0
  139. package/dist/features/journey/hooks/use-home-page-journey.js.map +1 -0
  140. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  141. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  142. package/dist/features/journey/journey-id/journey-id-teacher.js +5 -0
  143. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -0
  144. package/dist/features/journey/use-journey/journey-context-provider.js +36 -28
  145. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  146. package/dist/features/journey/use-journey/journey-styled.js +10 -5
  147. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  148. package/dist/features/milestone/create/api/goal-submit.js +1 -1
  149. package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
  150. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js +42 -49
  151. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
  152. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +12 -4
  153. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  154. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +128 -105
  155. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  156. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +14 -20
  157. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js.map +1 -1
  158. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js +26 -50
  159. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
  160. package/dist/features/milestone/create/milestone-create.js +49 -43
  161. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  162. package/dist/features/milestone/create/utils/index.js +33 -38
  163. package/dist/features/milestone/create/utils/index.js.map +1 -1
  164. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  165. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  166. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js +1 -1
  167. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js.map +1 -1
  168. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +51 -53
  169. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  170. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +42 -40
  171. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  172. package/dist/features/milestone/edit/goal-edit-container.js +64 -62
  173. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  174. package/dist/features/milestone/edit/goal-edit-helpers.js +50 -53
  175. package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
  176. package/dist/features/milestone/edit/milestone-edit-container.js +54 -52
  177. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  178. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js +1 -1
  179. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
  180. package/dist/features/milestone/milestone-list-container/api/get-milestones.js +9 -17
  181. package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
  182. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
  183. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  184. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +138 -105
  185. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  186. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +107 -123
  187. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  188. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +157 -176
  189. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  190. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +24 -10
  191. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  192. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +80 -86
  193. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  194. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js +10 -22
  195. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
  196. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +70 -37
  197. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  198. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +114 -176
  199. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  200. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +29 -16
  201. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
  202. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js +17 -25
  203. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js.map +1 -1
  204. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js +23 -35
  205. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
  206. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +110 -113
  207. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  208. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +1 -1
  209. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -1
  210. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +8 -8
  211. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  212. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
  213. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
  214. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +116 -113
  215. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  216. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +165 -0
  217. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -0
  218. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +25 -0
  219. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +1 -0
  220. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +87 -0
  221. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -0
  222. package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js +5 -5
  223. package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
  224. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +46 -50
  225. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  226. package/dist/features/recent-chapters/api/get-recent-chapters.js +9 -0
  227. package/dist/features/recent-chapters/api/get-recent-chapters.js.map +1 -0
  228. package/dist/features/recent-chapters/recent-chapters-styled.js +16 -0
  229. package/dist/features/recent-chapters/recent-chapters-styled.js.map +1 -0
  230. package/dist/features/recent-chapters/recent-chapters.js +39 -0
  231. package/dist/features/recent-chapters/recent-chapters.js.map +1 -0
  232. package/dist/features/sheet-v2/resource-list/resource-list.js +45 -0
  233. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -0
  234. package/dist/features/sheets/resources-list/resource-item/styled.js +1 -1
  235. package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
  236. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +4 -3
  237. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
  238. package/dist/features/ui/arc-button/constants.js +4 -4
  239. package/dist/features/ui/arc-button/constants.js.map +1 -1
  240. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +30 -29
  241. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  242. package/dist/features/ui/constants/z-index.js +1 -1
  243. package/dist/features/ui/constants/z-index.js.map +1 -1
  244. package/dist/features/ui/context-menu/context-menu-styled.js +28 -14
  245. package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
  246. package/dist/features/ui/context-menu/context-menu.js +30 -15
  247. package/dist/features/ui/context-menu/context-menu.js.map +1 -1
  248. package/dist/features/ui/lottie-animation/lottie-animation.js +19 -13
  249. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  250. package/dist/features/ui/theme/button.js +22 -107
  251. package/dist/features/ui/theme/button.js.map +1 -1
  252. package/dist/index.d.ts +354 -34
  253. package/dist/index.js +503 -471
  254. package/dist/index.js.map +1 -1
  255. package/dist/node_modules/date-fns/differenceInDays.js +17 -0
  256. package/dist/node_modules/date-fns/differenceInDays.js.map +1 -0
  257. package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
  258. package/dist/static/competitive-arena.b9c40801.json +1 -0
  259. package/dist/static/learn.71b13323.json +1 -0
  260. package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
  261. package/dist/static/node-learn-bg.b61f815c.svg +1 -0
  262. package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
  263. package/dist/static/node-project-bg.e6a33e28.svg +1 -0
  264. package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
  265. package/dist/static/node-recap-bg.546154e4.svg +1 -0
  266. package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
  267. package/dist/static/node-video-bg.3df3f73a.svg +1 -0
  268. package/dist/static/practice.158dd488.json +1 -0
  269. package/dist/static/project.eb665827.json +1 -0
  270. package/dist/static/puzzle.b298c7e4.json +1 -0
  271. package/dist/static/recap.0dd2c1e2.json +1 -0
  272. package/dist/static/test.803d6036.json +1 -0
  273. package/dist/static/video.b41451e2.json +1 -0
  274. package/package.json +1 -1
  275. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +0 -92
  276. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +0 -1
  277. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +0 -25
  278. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +0 -1
  279. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +0 -13
  280. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +0 -1
  281. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +0 -38
  282. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +0 -1
  283. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js +0 -53
  284. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +0 -1
  285. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js +0 -25
  286. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +0 -1
  287. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +0 -71
  288. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +0 -1
  289. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +0 -31
  290. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +0 -1
  291. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +0 -38
  292. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +0 -1
  293. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +0 -79
  294. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +0 -1
  295. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +0 -18
  296. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +0 -1
  297. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +0 -51
  298. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +0 -1
  299. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +0 -11
  300. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +0 -1
  301. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +0 -135
  302. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +0 -1
@@ -0,0 +1,245 @@
1
+ import { jsxs as O, jsx as r } from "react/jsx-runtime";
2
+ import { memo as Z, useRef as T, useCallback as w, useMemo as Q } from "react";
3
+ import x from "../../assets/line-icons/icons/eye2.js";
4
+ import U from "../../assets/line-icons/icons/more-vertical.js";
5
+ import D from "../../assets/line-icons/icons/redo.js";
6
+ import W from "../ui/arrow-tooltip/arrow-tooltip.js";
7
+ import N from "../ui/buttons/clickable/clickable.js";
8
+ import H from "../ui/hooks/use-context-menu-click-handler.js";
9
+ import ee from "../ui/layout/flex-view.js";
10
+ import A from "./card-menu-options.js";
11
+ import re from "./homework-card-view.js";
12
+ import { CardContainer as te, MenuWrapper as ie, CardKebabMenuWrapper as ne, BlurContainer as oe, BlurFlexView as ce, StyledMinus2Icon as se } from "./styles.js";
13
+ import { getCardAnalyticProps as le } from "./utils.js";
14
+ const ae = ({
15
+ // callbacks
16
+ nodeData: e,
17
+ onNodeAttempt: b,
18
+ onNodeReattempt: u,
19
+ onNodeReview: n,
20
+ onNodeUnassign: m,
21
+ onNodeView: C,
22
+ header: X,
23
+ isInQueue: E,
24
+ renderAs: I,
25
+ shouldOpenOnRight: j,
26
+ studentId: v,
27
+ subHeader: F,
28
+ userMilestoneId: t,
29
+ userType: g
30
+ }) => {
31
+ const i = I === "homework", {
32
+ node_type: k,
33
+ state: L,
34
+ permissions: P,
35
+ user_node_id: o,
36
+ user_milestone_id: l,
37
+ homework_id: c
38
+ } = e, y = T(null), $ = T(null), { menuVisible: R, onMenuClick: B } = H(y), { menuVisible: z, onMenuClick: V } = H($), {
39
+ can_start: h,
40
+ can_resume: f,
41
+ can_review: s,
42
+ can_unassign: K,
43
+ can_reset: Y
44
+ } = P, a = g === "STUDENT", d = w(() => {
45
+ if (s) {
46
+ if (typeof n != "function")
47
+ throw new Error("onReview must be a function");
48
+ if (!o)
49
+ throw new Error("user node id must be present to review the sheet");
50
+ n(e, t);
51
+ return;
52
+ }
53
+ }, [s, n, o, e, t]), q = w(() => {
54
+ if (h || f) {
55
+ if (typeof b != "function")
56
+ throw new Error("onNodeAttempt must be a function");
57
+ b(e, c);
58
+ return;
59
+ }
60
+ if (!i) {
61
+ V();
62
+ return;
63
+ }
64
+ d();
65
+ }, [
66
+ h,
67
+ f,
68
+ i,
69
+ d,
70
+ b,
71
+ e,
72
+ c,
73
+ V
74
+ ]), _ = w(() => {
75
+ if (s) {
76
+ if (typeof n != "function")
77
+ throw new Error("onNodeReview must be a function");
78
+ if (!o)
79
+ throw new Error("user node id must be present to review the sheet");
80
+ n(e, t || l, c);
81
+ return;
82
+ }
83
+ if (typeof C != "function")
84
+ throw new Error("onNodeView must be a function");
85
+ C(e, t || l);
86
+ }, [
87
+ s,
88
+ C,
89
+ e,
90
+ t,
91
+ l,
92
+ n,
93
+ o,
94
+ c
95
+ ]), p = w(
96
+ (M) => {
97
+ switch (M) {
98
+ case "teacher-card-view":
99
+ _();
100
+ return;
101
+ case "student-card-view":
102
+ d();
103
+ return;
104
+ case "teacher-card-unassign":
105
+ m == null || m(e, t);
106
+ return;
107
+ case "student-card-reattempt":
108
+ u == null || u(e, t);
109
+ return;
110
+ default:
111
+ throw new Error(`No callback function for ${M}`);
112
+ }
113
+ },
114
+ [
115
+ e,
116
+ u,
117
+ m,
118
+ d,
119
+ _,
120
+ t
121
+ ]
122
+ ), G = [
123
+ {
124
+ id: "teacher-card-view",
125
+ label: s ? "Review" : "View",
126
+ icon: x,
127
+ disabled: !1,
128
+ onClick: p
129
+ },
130
+ {
131
+ id: "teacher-card-unassign",
132
+ label: "Unassign",
133
+ icon: se,
134
+ disabled: i ? k === "MASTERY" : !K,
135
+ onClick: p
136
+ }
137
+ ], J = [
138
+ {
139
+ id: "student-card-view",
140
+ label: "Review",
141
+ icon: x,
142
+ disabled: !s,
143
+ onClick: p
144
+ },
145
+ {
146
+ id: "student-card-reattempt",
147
+ label: "Reattempt",
148
+ icon: D,
149
+ disabled: !Y,
150
+ onClick: p
151
+ }
152
+ ], S = Q(
153
+ () => le({
154
+ canResume: f,
155
+ canStart: h,
156
+ homeworkId: c,
157
+ isHomeWork: i,
158
+ isStudent: a,
159
+ milestoneId: l,
160
+ nodeType: k,
161
+ studentId: v,
162
+ userNodeId: o
163
+ }),
164
+ [
165
+ a,
166
+ i,
167
+ v,
168
+ k,
169
+ h,
170
+ f,
171
+ c,
172
+ o,
173
+ l
174
+ ]
175
+ );
176
+ return /* @__PURE__ */ O(te, { $position: "relative", $width: "fit-content", children: [
177
+ /* @__PURE__ */ r(
178
+ N,
179
+ {
180
+ onClick: a ? q : _,
181
+ label: "homework-card",
182
+ analyticsLabel: S.analyticsLabel,
183
+ analyticsProps: S.analyticsProps,
184
+ children: /* @__PURE__ */ r(
185
+ re,
186
+ {
187
+ header: X,
188
+ isInQueue: E,
189
+ nodeData: e,
190
+ studentContainerRef: $,
191
+ subHeader: F,
192
+ userType: g
193
+ }
194
+ )
195
+ }
196
+ ),
197
+ a && !i && /* @__PURE__ */ r(
198
+ A,
199
+ {
200
+ $width: 200,
201
+ options: J,
202
+ triggerRef: $,
203
+ visible: z,
204
+ shouldOpenOnRight: !1
205
+ }
206
+ ),
207
+ !a && /* @__PURE__ */ O(ie, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
208
+ /* @__PURE__ */ r(
209
+ W,
210
+ {
211
+ renderAs: "primary",
212
+ tooltipItem: "Review",
213
+ position: "bottom",
214
+ zIndex: 6,
215
+ parentWidth: "100%",
216
+ hidden: R || L !== "WAIT_FOR_REVIEW" && i,
217
+ children: /* @__PURE__ */ r(
218
+ ne,
219
+ {
220
+ $alignItems: "center",
221
+ $justifyContent: "center",
222
+ ref: y,
223
+ onClick: B,
224
+ children: /* @__PURE__ */ r(U, { width: 16, height: 16 })
225
+ }
226
+ )
227
+ }
228
+ ),
229
+ /* @__PURE__ */ r(
230
+ A,
231
+ {
232
+ options: G,
233
+ triggerRef: y,
234
+ visible: R,
235
+ shouldOpenOnRight: j
236
+ }
237
+ )
238
+ ] }),
239
+ E && /* @__PURE__ */ r(oe, { $background: "WHITE_5", children: /* @__PURE__ */ r(ce, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ r(W, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ r(ee, { $heightX: 1, $widthX: 6 }) }) }) })
240
+ ] });
241
+ }, Ee = Z(ae);
242
+ export {
243
+ Ee as default
244
+ };
245
+ //# sourceMappingURL=homework-card.js.map
@@ -0,0 +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';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\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 = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\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 } = 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, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\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, 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 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, userMilestoneId || 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, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\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, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\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\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 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 >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\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 && (\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 />\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","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","analyticsLabel","useMemo","getCardAnalyticProps","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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"}
@@ -0,0 +1,10 @@
1
+ import { createGetAPI as r } from "@cuemath/rest-api";
2
+ import { BASE_URL_V3 as t } from "../../../../constants/api.js";
3
+ const { useGet: i, invalidate: u } = r({
4
+ getURL: (e, s, { stream: o }) => `${t}/users/${e}/course-streams/${o}/homework`
5
+ });
6
+ export {
7
+ u as invalidateHomeworks,
8
+ i as useGetHomeworks
9
+ };
10
+ //# sourceMappingURL=get-homeworks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-homeworks.js","sources":["../../../../../src/features/homework/hw-card-list/api/get-homeworks.ts"],"sourcesContent":["import type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\n\nconst { useGet: useGetHomeworks, invalidate: invalidateHomeworks } = createGetAPI<\n INodeDataProps[],\n void,\n { stream: string }\n>({\n getURL: (studentId: string, _, { stream }) =>\n `${BASE_URL_V3}/users/${studentId}/course-streams/${stream}/homework`,\n});\n\nexport { useGetHomeworks, invalidateHomeworks };\n"],"names":["useGetHomeworks","invalidateHomeworks","createGetAPI","studentId","_","stream","BASE_URL_V3"],"mappings":";;AAMA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAAwBC,EAInE;AAAA,EACA,QAAQ,CAACC,GAAmBC,GAAG,EAAE,QAAAC,EAAA,MAC/B,GAAGC,CAAW,UAAUH,CAAS,mBAAmBE,CAAM;AAC9D,CAAC;"}
@@ -0,0 +1,63 @@
1
+ import t, { css as n } from "styled-components";
2
+ import e from "../../ui/layout/flex-view.js";
3
+ import i from "../../ui/text/text.js";
4
+ const l = t(e)`
5
+ overflow-x: hidden;
6
+ overflow-y: visible;
7
+ padding: 16px 0px 92px 0px;
8
+ margin-bottom: -92px;
9
+ margin-top: -16px;
10
+ `, c = t(e)`
11
+ right: ${({ right: o }) => o};
12
+ left: ${({ left: o }) => o};
13
+ width: 32px;
14
+ cursor: pointer;
15
+ transition: opacity 0.3s ease-in-out;
16
+ opacity: ${({ $visible: o }) => o ? 1 : 0};
17
+ pointer-events: ${({ $visible: o }) => o ? "auto" : "none"};
18
+ z-index: 10;
19
+ path {
20
+ fill: ${({ theme: o }) => o.colors.WHITE};
21
+ }
22
+ `, x = t(e)(
23
+ ({ $disablePointerEvents: o, theme: r }) => `
24
+ position: relative;
25
+ pointer-events: auto;
26
+ ${o && n`
27
+ pointer-events: none;
28
+ :after {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background: ${r.colors.GREY_3};
36
+ }
37
+ `}
38
+ `
39
+ ), d = t(i)`
40
+ writing-mode: sideways-lr;
41
+ `, u = t(e)`
42
+ position: relative;
43
+
44
+ &::after {
45
+ content: '';
46
+ position: absolute;
47
+ height: 8px;
48
+ width: 8px;
49
+ clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
50
+ background-color: ${({ theme: o }) => o.colors.BLACK_4};
51
+ top: 50%;
52
+ right: 0;
53
+ transform: translate(50%, calc(-50% + 0px)) rotate(225deg);
54
+ }
55
+ `;
56
+ export {
57
+ x as ContentWrapper,
58
+ d as QueueText,
59
+ u as QueueWrapper,
60
+ c as ScrollButton,
61
+ l as ScrollContainer
62
+ };
63
+ //# sourceMappingURL=hw-card-list-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hw-card-list-styled.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\n\nexport const ScrollContainer = styled(FlexView)`\n overflow-x: hidden;\n overflow-y: visible;\n padding: 16px 0px 92px 0px;\n margin-bottom: -92px;\n margin-top: -16px;\n`;\n\nexport const ScrollButton = styled(FlexView)<{ $visible: boolean; right: string; left: string }>`\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n width: 32px;\n cursor: pointer;\n transition: opacity 0.3s ease-in-out;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n pointer-events: ${({ $visible }) => ($visible ? 'auto' : 'none')};\n z-index: 10;\n path {\n fill: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const ContentWrapper = styled(FlexView)<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents, theme }) => `\n position: relative;\n pointer-events: auto;\n ${\n $disablePointerEvents &&\n css`\n pointer-events: none;\n :after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${theme.colors.GREY_3};\n }\n `\n }\n `,\n);\n\nexport const QueueText = styled(Text)`\n writing-mode: sideways-lr;\n`;\n\nexport const QueueWrapper = styled(FlexView)`\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n height: 8px;\n width: 8px;\n clip-path: polygon(0% 0%, 100% 100%, 0% 100%);\n background-color: ${({ theme }) => theme.colors.BLACK_4};\n top: 50%;\n right: 0;\n transform: translate(50%, calc(-50% + 0px)) rotate(225deg);\n }\n`;\n"],"names":["ScrollContainer","styled","FlexView","ScrollButton","right","left","$visible","theme","ContentWrapper","$disablePointerEvents","css","QueueText","Text","QueueWrapper"],"mappings":";;;AAKa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAeF,EAAOC,CAAQ;AAAA,WAChC,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA,aAIf,CAAC,EAAE,UAAAC,EAAA,MAAgBA,IAAW,IAAI,CAAE;AAAA,oBAC7B,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA,YAGtD,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIhCC,IAAiBP,EAAOC,CAAQ;AAAA,EAC3C,CAAC,EAAE,uBAAAO,GAAuB,OAAAF,EAAA,MAAY;AAAA;AAAA;AAAA,MAIlCE,KACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASkBH,EAAM,OAAO,MAAM;AAAA;AAAA,OAGvC;AAAA;AAEJ,GAEaI,IAAYV,EAAOW,CAAI;AAAA;AAAA,GAIvBC,IAAeZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASnB,CAAC,EAAE,OAAAK,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,191 @@
1
+ import { jsxs as c, jsx as t } from "react/jsx-runtime";
2
+ import { memo as q, useRef as z, useState as H, useEffect as f, useCallback as s, useMemo as U } from "react";
3
+ import Z from "../../../assets/line-icons/icons/chevron-left.js";
4
+ import J from "../../../assets/line-icons/icons/chevron-right.js";
5
+ import { useJourney as D } from "../../journey/use-journey/use-journey.js";
6
+ import h from "../../ui/layout/flex-view.js";
7
+ import C from "../../ui/text/text.js";
8
+ import ee from "../homework-card.js";
9
+ import { useGetHomeworks as re } from "./api/get-homeworks.js";
10
+ import { ContentWrapper as oe, ScrollButton as x, ScrollContainer as te, QueueWrapper as ne, QueueText as ie } from "./hw-card-list-styled.js";
11
+ const le = ({
12
+ userType: a,
13
+ studentId: i,
14
+ stream: d,
15
+ onTestStart: R,
16
+ onNodeAttempt: w,
17
+ onTestPreview: E,
18
+ onNodeView: B,
19
+ onTestReview: W,
20
+ onNodeReview: I,
21
+ onNodeUnassign: S,
22
+ homeworkRef: T,
23
+ individualHomeworkRef: y,
24
+ startHomePageJourney: $,
25
+ canStartJourney: k
26
+ }) => {
27
+ const o = z(null), [K, m] = H(!1), [j, L] = H(!1), {
28
+ get: _,
29
+ data: e,
30
+ isProcessingFailed: G,
31
+ isProcessing: p,
32
+ isStale: b
33
+ } = re(i), { isJourneyActive: A } = D();
34
+ f(() => {
35
+ e != null && e.length && $ && !A && k && $({ hwDetails: e, studentId: i, stream: d, userType: a });
36
+ }, [
37
+ k,
38
+ e,
39
+ A,
40
+ $,
41
+ d,
42
+ i,
43
+ a
44
+ ]);
45
+ const n = s(() => {
46
+ if (o.current) {
47
+ const { scrollLeft: r, scrollWidth: l, clientWidth: g } = o.current;
48
+ r > 1 && m(!0), r < l - g - 1 && L(!0);
49
+ }
50
+ }, []), N = s(() => {
51
+ o.current && (o.current.scrollBy({ left: -200, behavior: "smooth" }), n());
52
+ }, [n]), F = s(() => {
53
+ o.current && (o.current.scrollBy({ left: 200, behavior: "smooth" }), n());
54
+ }, [n]), M = s(() => {
55
+ o.current && n();
56
+ }, [n]), Q = s(() => {
57
+ m(!1), L(!1);
58
+ }, []);
59
+ f(() => {
60
+ const r = o.current;
61
+ if (r)
62
+ return r.addEventListener("scroll", n), () => {
63
+ r.removeEventListener("scroll", n);
64
+ };
65
+ }, [n]), f(() => {
66
+ if (e && (e == null ? void 0 : e.length) > 3 && o.current) {
67
+ const { scrollLeft: r } = o.current;
68
+ r > 1 && m(!0);
69
+ }
70
+ }, [e]);
71
+ const u = s(() => {
72
+ _(i, void 0, { stream: d });
73
+ }, [_, d, i]);
74
+ f(() => {
75
+ !p && b && u();
76
+ }, [u, p, b]), f(() => {
77
+ u();
78
+ }, [u]);
79
+ const X = U(
80
+ () => ((e == null ? void 0 : e.filter((r) => r.state === "WAIT_FOR_REVIEW")) || []).length,
81
+ [e]
82
+ );
83
+ return e && e.length === 0 ? /* @__PURE__ */ c(h, { $flexRowGapX: 1, children: [
84
+ /* @__PURE__ */ c(C, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
85
+ "Homework (",
86
+ e == null ? void 0 : e.length,
87
+ ")"
88
+ ] }),
89
+ /* @__PURE__ */ t(C, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
90
+ ] }) : G ? null : /* @__PURE__ */ c(oe, { ref: T, $flexRowGapX: 1, $disablePointerEvents: p, children: [
91
+ /* @__PURE__ */ c(C, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
92
+ "Homework (",
93
+ X,
94
+ "/",
95
+ e == null ? void 0 : e.length,
96
+ ")"
97
+ ] }),
98
+ /* @__PURE__ */ c(
99
+ h,
100
+ {
101
+ $position: "relative",
102
+ onMouseEnter: M,
103
+ onMouseLeave: Q,
104
+ children: [
105
+ /* @__PURE__ */ t(
106
+ x,
107
+ {
108
+ $position: "absolute",
109
+ $background: "BLACK_T_60",
110
+ $justifyContent: "center",
111
+ $alignItems: "center",
112
+ $height: "100%",
113
+ onClick: N,
114
+ $visible: K,
115
+ left: "0px",
116
+ right: "auto",
117
+ children: /* @__PURE__ */ t(Z, { width: 24, height: 24 })
118
+ }
119
+ ),
120
+ /* @__PURE__ */ t(te, { ref: o, children: /* @__PURE__ */ t(h, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((r, l) => {
121
+ const {
122
+ node_id: g,
123
+ worksheet_id: O,
124
+ node_type: V,
125
+ title: P,
126
+ subtext: Y
127
+ } = r, v = V === "DYNAMIC";
128
+ return /* @__PURE__ */ c(
129
+ h,
130
+ {
131
+ ref: l === 0 ? y : void 0,
132
+ $flexDirection: "row",
133
+ $flexGapX: 1,
134
+ children: [
135
+ e.length > 10 && l === 10 && /* @__PURE__ */ t(
136
+ ne,
137
+ {
138
+ $background: "BLACK_4",
139
+ $justifyContent: "center",
140
+ $gutter: 4,
141
+ $gap: 8,
142
+ children: /* @__PURE__ */ t(ie, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
143
+ }
144
+ ),
145
+ /* @__PURE__ */ t(
146
+ ee,
147
+ {
148
+ isInQueue: e.length > 10 && l > 9,
149
+ userType: a,
150
+ header: P,
151
+ subHeader: Y || "",
152
+ nodeData: r,
153
+ renderAs: "homework",
154
+ studentId: i,
155
+ onNodeAttempt: v ? R : w,
156
+ shouldOpenOnRight: !0,
157
+ onNodeView: v ? E : B,
158
+ onNodeReview: v ? W : I,
159
+ onNodeUnassign: S
160
+ }
161
+ )
162
+ ]
163
+ },
164
+ `${O}_${g}_${l}`
165
+ );
166
+ }) }) }),
167
+ /* @__PURE__ */ t(
168
+ x,
169
+ {
170
+ $position: "absolute",
171
+ $width: "60px",
172
+ $height: "100%",
173
+ $background: "BLACK_T_60",
174
+ $justifyContent: "center",
175
+ $alignItems: "center",
176
+ onClick: F,
177
+ $visible: j,
178
+ left: "auto",
179
+ right: "0px",
180
+ children: /* @__PURE__ */ t(J, { width: 24, height: 24 })
181
+ }
182
+ )
183
+ ]
184
+ }
185
+ )
186
+ ] });
187
+ }, ge = q(le);
188
+ export {
189
+ ge as default
190
+ };
191
+ //# sourceMappingURL=hw-card-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hw-card-list.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { IHomepageStartJourneyProps } from '../../journey/types/homepage-journey-types';\nimport type { TUserTypes } from '../../ui/types';\n\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport { useGetHomeworks } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\n\ninterface HWCardListProps extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n stream: string;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n homeworkRef?: React.RefObject<HTMLDivElement>;\n individualHomeworkRef?: React.RefObject<HTMLDivElement>;\n startHomePageJourney?: ({\n hwDetails,\n studentId,\n stream,\n userType,\n }: IHomepageStartJourneyProps) => void;\n canStartJourney?: boolean;\n}\n\nconst HWCardList: React.FC<HWCardListProps> = ({\n userType,\n studentId,\n stream,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n homeworkRef,\n individualHomeworkRef,\n startHomePageJourney,\n canStartJourney,\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const {\n get: getHomeworks,\n data: hwDetails,\n isProcessingFailed,\n isProcessing,\n isStale,\n } = useGetHomeworks(studentId);\n const { isJourneyActive } = useJourney();\n\n useEffect(() => {\n if (hwDetails?.length && startHomePageJourney && !isJourneyActive && canStartJourney) {\n startHomePageJourney({ hwDetails, studentId, stream, userType });\n }\n }, [\n canStartJourney,\n hwDetails,\n isJourneyActive,\n startHomePageJourney,\n stream,\n studentId,\n userType,\n ]);\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n if (hwDetails && hwDetails?.length > 3 && scrollRef.current) {\n const { scrollLeft } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n }\n }, [hwDetails]);\n\n const fetchHomeworks = useCallback(() => {\n getHomeworks(studentId, undefined, { stream });\n }, [getHomeworks, stream, studentId]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchHomeworks();\n }\n }, [fetchHomeworks, isProcessing, isStale]);\n\n useEffect(() => {\n fetchHomeworks();\n }, [fetchHomeworks]);\n\n const waitForReviewSheets = useMemo(\n () => (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || []).length,\n [hwDetails],\n );\n\n if (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n if (isProcessingFailed) {\n return null;\n }\n\n return (\n <Styled.ContentWrapper ref={homeworkRef} $flexRowGapX={1} $disablePointerEvents={isProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{hwDetails?.length})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {hwDetails?.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n ref={idx === 0 ? individualHomeworkRef : undefined}\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {hwDetails.length > 10 && idx === 10 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n <HomeworkCard\n isInQueue={hwDetails.length > 10 && idx > 9}\n userType={userType}\n header={title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HWCardList);\n"],"names":["HWCardList","userType","studentId","stream","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","homeworkRef","individualHomeworkRef","startHomePageJourney","canStartJourney","scrollRef","useRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","getHomeworks","hwDetails","isProcessingFailed","isProcessing","isStale","useGetHomeworks","isJourneyActive","useJourney","useEffect","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleScrollLeft","handleScrollRight","handleHoverEnter","handleHoverLeave","scrollElement","fetchHomeworks","waitForReviewSheets","useMemo","sheet","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","ChevronRightIcon","HWCardList$1","memo"],"mappings":";;;;;;;;;;AAoCA,MAAMA,KAAwC,CAAC;AAAA,EAC7C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACE,QAAAC,IAAYC,EAAuB,IAAI,GACvC,CAACC,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClD,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpD;AAAA,IACJ,KAAKG;AAAA,IACL,MAAMC;AAAA,IACN,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEC,GAAgBzB,CAAS,GACvB,EAAE,iBAAA0B,MAAoBC;AAE5B,EAAAC,EAAU,MAAM;AACd,IAAIP,KAAA,QAAAA,EAAW,UAAUV,KAAwB,CAACe,KAAmBd,KACnED,EAAqB,EAAE,WAAAU,GAAW,WAAArB,GAAW,QAAAC,GAAQ,UAAAF,EAAU,CAAA;AAAA,EACjE,GACC;AAAA,IACDa;AAAA,IACAS;AAAA,IACAK;AAAA,IACAf;AAAA,IACAV;AAAA,IACAD;AAAA,IACAD;AAAA,EAAA,CACD;AAEK,QAAA8B,IAAmBC,EAAY,MAAM;AACzC,QAAIjB,EAAU,SAAS;AACrB,YAAM,EAAE,YAAAkB,GAAY,aAAAC,GAAa,aAAAC,EAAA,IAAgBpB,EAAU;AAE3D,MAAIkB,IAAa,KACff,EAAiB,EAAI,GAGnBe,IAAaC,IAAcC,IAAc,KAC3Cd,EAAkB,EAAI;AAAA,IAE1B;AAAA,EACF,GAAG,CAAE,CAAA,GAECe,IAAmBJ,EAAY,MAAM;AACzC,IAAIjB,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,UAAU,UAAU,GAC5CgB;EACnB,GACC,CAACA,CAAgB,CAAC,GAEfM,IAAoBL,EAAY,MAAM;AAC1C,IAAIjB,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,KAAK,UAAU,UAAU,GAC3CgB;EACnB,GACC,CAACA,CAAgB,CAAC,GAEfO,IAAmBN,EAAY,MAAM;AACrC,IAACjB,EAAU,WAEEgB;EAAA,GAChB,CAACA,CAAgB,CAAC,GAEfQ,IAAmBP,EAAY,MAAM;AACzC,IAAAd,EAAiB,EAAK,GACtBG,EAAkB,EAAK;AAAA,EACzB,GAAG,CAAE,CAAA;AAEL,EAAAS,EAAU,MAAM;AACd,UAAMU,IAAgBzB,EAAU;AAEhC,QAAIyB;AACY,aAAAA,EAAA,iBAAiB,UAAUT,CAAgB,GAElD,MAAM;AACG,QAAAS,EAAA,oBAAoB,UAAUT,CAAgB;AAAA,MAAA;AAAA,EAEhE,GACC,CAACA,CAAgB,CAAC,GAErBD,EAAU,MAAM;AACd,QAAIP,MAAaA,KAAA,gBAAAA,EAAW,UAAS,KAAKR,EAAU,SAAS;AACrD,YAAA,EAAE,YAAAkB,EAAW,IAAIlB,EAAU;AAEjC,MAAIkB,IAAa,KACff,EAAiB,EAAI;AAAA,IAEzB;AAAA,EAAA,GACC,CAACK,CAAS,CAAC;AAER,QAAAkB,IAAiBT,EAAY,MAAM;AACvC,IAAAV,EAAapB,GAAW,QAAW,EAAE,QAAAC,EAAQ,CAAA;AAAA,EAC5C,GAAA,CAACmB,GAAcnB,GAAQD,CAAS,CAAC;AAEpC,EAAA4B,EAAU,MAAM;AACV,IAAA,CAACL,KAAgBC,KACJe;EAEhB,GAAA,CAACA,GAAgBhB,GAAcC,CAAO,CAAC,GAE1CI,EAAU,MAAM;AACC,IAAAW;EAAA,GACd,CAACA,CAAc,CAAC;AAEnB,QAAMC,IAAsBC;AAAA,IAC1B,QAAOpB,KAAA,gBAAAA,EAAW,OAAO,CAAAqB,MAASA,EAAM,UAAU,uBAAsB,CAAA,GAAI;AAAA,IAC5E,CAACrB,CAAS;AAAA,EAAA;AAGR,SAAAA,KAAaA,EAAU,WAAW,IAElC,gBAAAsB,EAACC,GAAS,EAAA,cAAc,GACtB,UAAA;AAAA,IAAA,gBAAAD,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnCxB,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GAC/B;AAAA,sBACCwB,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,4BAAA;AAAA,EACF,EAAA,CAAA,IAIAvB,IACK,OAIP,gBAAAqB,EAACG,IAAA,EAAsB,KAAKrC,GAAa,cAAc,GAAG,uBAAuBc,GAC/E,UAAA;AAAA,IAAA,gBAAAoB,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnCL;AAAA,MAAoB;AAAA,MAAEnB,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GACrD;AAAA,IACA,gBAAAsB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAcR;AAAA,QACd,cAAcC;AAAA,QAEd,UAAA;AAAA,UAAA,gBAAAU;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,SAASd;AAAA,cACT,UAAUnB;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAAgC,EAAAE,GAAA,EAAgB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC1C;AAAA,4BAECC,IAAA,EAAuB,KAAKrC,GAC3B,UAAC,gBAAAkC,EAAAH,GAAA,EAAS,gBAAe,OAAM,WAAW,GACvC,UAAAvB,KAAA,gBAAAA,EAAW,IAAI,CAACqB,GAAOS,MAAQ;AACxB,kBAAA;AAAA,cACJ,SAASC;AAAA,cACT,cAAcC;AAAA,cACd,WAAWC;AAAA,cACX,OAAAC;AAAA,cACA,SAAAC;AAAA,YACE,IAAAd,GACEe,IAAiBH,MAAa;AAGlC,mBAAA,gBAAAX;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,KAAKO,MAAQ,IAAIzC,IAAwB;AAAA,gBAEzC,gBAAe;AAAA,gBACf,WAAW;AAAA,gBAEV,UAAA;AAAA,kBAAUW,EAAA,SAAS,MAAM8B,MAAQ,MAChC,gBAAAJ;AAAA,oBAACW;AAAAA,oBAAA;AAAA,sBACC,aAAY;AAAA,sBACZ,iBAAgB;AAAA,sBAChB,SAAS;AAAA,sBACT,MAAM;AAAA,sBAEN,UAAA,gBAAAX,EAACY,IAAA,EAAiB,WAAU,OAAM,QAAO,SAAQ,UAEjD,YAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,kBAEF,gBAAAZ;AAAA,oBAACa;AAAA,oBAAA;AAAA,sBACC,WAAWvC,EAAU,SAAS,MAAM8B,IAAM;AAAA,sBAC1C,UAAApD;AAAA,sBACA,QAAQwD;AAAA,sBACR,WAAWC,KAAW;AAAA,sBACtB,UAAUd;AAAA,sBACV,UAAS;AAAA,sBACT,WAAA1C;AAAA,sBACA,eAAeyD,IAAiBvD,IAAcC;AAAA,sBAC9C,mBAAmB;AAAA,sBACnB,YAAYsD,IAAiBrD,IAAgBC;AAAA,sBAC7C,cAAcoD,IAAiBnD,IAAeC;AAAA,sBAC9C,gBAAAC;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cA7BK,GAAG6C,CAAW,IAAID,CAAM,IAAID,CAAG;AAAA,YAAA;AAAA,UA8BtC,IAGN,EACF,CAAA;AAAA,UACA,gBAAAJ;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAASb;AAAA,cACT,UAAUjB;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAA6B,EAAAc,GAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ,GAEeC,KAAAC,EAAKjE,EAAU;"}
@@ -0,0 +1,29 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { memo as m } from "react";
3
+ import a from "styled-components";
4
+ import n from "../ui/layout/flex-view.js";
5
+ import { differenceInDays as e } from "../../node_modules/date-fns/differenceInDays.js";
6
+ const g = a(n)`
7
+ height: 100%;
8
+ border-radius: 4px;
9
+ transition: all 300ms;
10
+ width: ${(r) => r.progress}%;
11
+ `, d = a(n)`
12
+ position: absolute;
13
+ top: -1px;
14
+ right: 0px;
15
+ width: 100%;
16
+ height: 2px;
17
+ background-color: ${(r) => r.theme.colors.BLACK};
18
+ z-index: 2;
19
+ `, l = ({ unlockedOn: r, dueDate: i, progressBg: c }) => {
20
+ const p = (() => {
21
+ const o = e(i, r), s = e(/* @__PURE__ */ new Date(), r);
22
+ return s > o ? 100 : Math.min(Math.max(s / o * 100, 0), 100);
23
+ })();
24
+ return /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(g, { progress: p, $background: c }) });
25
+ }, y = m(l);
26
+ export {
27
+ y as default
28
+ };
29
+ //# sourceMappingURL=node-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-progress.js","sources":["../../../src/features/homework/node-progress.tsx"],"sourcesContent":["import type { TColorNames } from '../ui/types';\n\nimport { differenceInDays } from 'date-fns';\nimport React, { memo } from 'react';\nimport styled from 'styled-components';\n\nimport FlexView from '../ui/layout/flex-view';\n\ninterface NodeProgressProps {\n unlockedOn: number | string | Date;\n dueDate: number | string | Date;\n progressBg: TColorNames;\n}\n\nconst ProgressBar = styled(FlexView)<{ progress: number }>`\n height: 100%;\n border-radius: 4px;\n transition: all 300ms;\n width: ${props => props.progress}%;\n`;\n\nconst ProgressContainer = styled(FlexView)`\n position: absolute;\n top: -1px;\n right: 0px;\n width: 100%;\n height: 2px;\n background-color: ${props => props.theme.colors.BLACK};\n z-index: 2;\n`;\n\nconst NodeProgress: React.FC<NodeProgressProps> = ({ unlockedOn, dueDate, progressBg }) => {\n const calculateProgress = () => {\n const totalDays = differenceInDays(dueDate, unlockedOn);\n const daysElapsed = differenceInDays(new Date(), unlockedOn);\n\n if (daysElapsed > totalDays) return 100;\n\n const progress = Math.min(Math.max((daysElapsed / totalDays) * 100, 0), 100);\n\n return progress;\n };\n\n const progress = calculateProgress();\n\n return (\n <ProgressContainer>\n <ProgressBar progress={progress} $background={progressBg} />\n </ProgressContainer>\n );\n};\n\nexport default memo(NodeProgress);\n"],"names":["ProgressBar","styled","FlexView","props","ProgressContainer","NodeProgress","unlockedOn","dueDate","progressBg","progress","totalDays","differenceInDays","daysElapsed","jsx","NodeProgress$1","memo"],"mappings":";;;;;AAcA,MAAMA,IAAcC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,WAIxB,CAAAC,MAASA,EAAM,QAAQ;AAAA,GAG5BC,IAAoBH,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMnB,CAASC,MAAAA,EAAM,MAAM,OAAO,KAAK;AAAA;AAAA,GAIjDE,IAA4C,CAAC,EAAE,YAAAC,GAAY,SAAAC,GAAS,YAAAC,QAAiB;AAYzF,QAAMC,KAXoB,MAAM;AACxB,UAAAC,IAAYC,EAAiBJ,GAASD,CAAU,GAChDM,IAAcD,EAAqB,oBAAA,QAAQL,CAAU;AAEvD,WAAAM,IAAcF,IAAkB,MAEnB,KAAK,IAAI,KAAK,IAAKE,IAAcF,IAAa,KAAK,CAAC,GAAG,GAAG;AAAA,EAEpE;AAKT,2BACGN,GACC,EAAA,UAAA,gBAAAS,EAACb,KAAY,UAAAS,GAAoB,aAAaD,EAAY,CAAA,EAC5D,CAAA;AAEJ,GAEeM,IAAAC,EAAKV,CAAY;"}