@cuemath/leap 3.3.38-m → 3.4.0

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 (1041) hide show
  1. package/dist/assets/gif/gif.js +4 -1
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +1 -1
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/line-icons/icons/after-noon.js.map +1 -1
  6. package/dist/assets/line-icons/icons/alert.js.map +1 -1
  7. package/dist/assets/line-icons/icons/apple-icon-white.js.map +1 -1
  8. package/dist/assets/line-icons/icons/apple-icon.js.map +1 -1
  9. package/dist/assets/line-icons/icons/back.js.map +1 -1
  10. package/dist/assets/line-icons/icons/back2.js.map +1 -1
  11. package/dist/assets/line-icons/icons/bin.js.map +1 -1
  12. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  13. package/dist/assets/line-icons/icons/book-closed.js.map +1 -1
  14. package/dist/assets/line-icons/icons/book.js.map +1 -1
  15. package/dist/assets/line-icons/icons/book2.js.map +1 -1
  16. package/dist/assets/line-icons/icons/bookmark-stroke-icon.js.map +1 -1
  17. package/dist/assets/line-icons/icons/bookmark.js.map +1 -1
  18. package/dist/assets/line-icons/icons/bulb.js.map +1 -1
  19. package/dist/assets/line-icons/icons/bulb2.js.map +1 -1
  20. package/dist/assets/line-icons/icons/calculator.js.map +1 -1
  21. package/dist/assets/line-icons/icons/calendar.js.map +1 -1
  22. package/dist/assets/line-icons/icons/carat-left.js.map +1 -1
  23. package/dist/assets/line-icons/icons/carat-right.js.map +1 -1
  24. package/dist/assets/line-icons/icons/chat.js.map +1 -1
  25. package/dist/assets/line-icons/icons/check.js.map +1 -1
  26. package/dist/assets/line-icons/icons/check2.js.map +1 -1
  27. package/dist/assets/line-icons/icons/chevron-down.js.map +1 -1
  28. package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
  29. package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
  30. package/dist/assets/line-icons/icons/circle-back.js.map +1 -1
  31. package/dist/assets/line-icons/icons/clear-all.js.map +1 -1
  32. package/dist/assets/line-icons/icons/clipboard.js.map +1 -1
  33. package/dist/assets/line-icons/icons/clock.js.map +1 -1
  34. package/dist/assets/line-icons/icons/clock2.js.map +1 -1
  35. package/dist/assets/line-icons/icons/closed-eye.js.map +1 -1
  36. package/dist/assets/line-icons/icons/code.js.map +1 -1
  37. package/dist/assets/line-icons/icons/copy.js.map +1 -1
  38. package/dist/assets/line-icons/icons/cross.js.map +1 -1
  39. package/dist/assets/line-icons/icons/cue-board-filled.js.map +1 -1
  40. package/dist/assets/line-icons/icons/cue-board.js.map +1 -1
  41. package/dist/assets/line-icons/icons/cue-coin.js.map +1 -1
  42. package/dist/assets/line-icons/icons/cue-rocket.js.map +1 -1
  43. package/dist/assets/line-icons/icons/cuemath-logo.js.map +1 -1
  44. package/dist/assets/line-icons/icons/cursor.js.map +1 -1
  45. package/dist/assets/line-icons/icons/dash-arrow.js.map +1 -1
  46. package/dist/assets/line-icons/icons/down.js.map +1 -1
  47. package/dist/assets/line-icons/icons/download.js.map +1 -1
  48. package/dist/assets/line-icons/icons/draft.js.map +1 -1
  49. package/dist/assets/line-icons/icons/drag.js.map +1 -1
  50. package/dist/assets/line-icons/icons/edit-star.js.map +1 -1
  51. package/dist/assets/line-icons/icons/edit.js.map +1 -1
  52. package/dist/assets/line-icons/icons/edit2.js.map +1 -1
  53. package/dist/assets/line-icons/icons/equation.js.map +1 -1
  54. package/dist/assets/line-icons/icons/eraser.js.map +1 -1
  55. package/dist/assets/line-icons/icons/evening.js.map +1 -1
  56. package/dist/assets/line-icons/icons/exclamation.js.map +1 -1
  57. package/dist/assets/line-icons/icons/eye.js.map +1 -1
  58. package/dist/assets/line-icons/icons/eye2.js.map +1 -1
  59. package/dist/assets/line-icons/icons/game.js.map +1 -1
  60. package/dist/assets/line-icons/icons/google-icon.js.map +1 -1
  61. package/dist/assets/line-icons/icons/grid-icon.js.map +1 -1
  62. package/dist/assets/line-icons/icons/hand.js.map +1 -1
  63. package/dist/assets/line-icons/icons/help.js.map +1 -1
  64. package/dist/assets/line-icons/icons/highlighter.js.map +1 -1
  65. package/dist/assets/line-icons/icons/hint-fill.js.map +1 -1
  66. package/dist/assets/line-icons/icons/home.js.map +1 -1
  67. package/dist/assets/line-icons/icons/home2.js.map +1 -1
  68. package/dist/assets/line-icons/icons/image.js.map +1 -1
  69. package/dist/assets/line-icons/icons/important.js.map +1 -1
  70. package/dist/assets/line-icons/icons/info.js.map +1 -1
  71. package/dist/assets/line-icons/icons/info2.js.map +1 -1
  72. package/dist/assets/line-icons/icons/left.js.map +1 -1
  73. package/dist/assets/line-icons/icons/link.js.map +1 -1
  74. package/dist/assets/line-icons/icons/lock.js.map +1 -1
  75. package/dist/assets/line-icons/icons/lock2.js.map +1 -1
  76. package/dist/assets/line-icons/icons/lock3.js.map +1 -1
  77. package/dist/assets/line-icons/icons/minus.js.map +1 -1
  78. package/dist/assets/line-icons/icons/minus2.js.map +1 -1
  79. package/dist/assets/line-icons/icons/mistake.js.map +1 -1
  80. package/dist/assets/line-icons/icons/mobile.js.map +1 -1
  81. package/dist/assets/line-icons/icons/more-vertical.js.map +1 -1
  82. package/dist/assets/line-icons/icons/morning.js.map +1 -1
  83. package/dist/assets/line-icons/icons/next.js.map +1 -1
  84. package/dist/assets/line-icons/icons/next2.js.map +1 -1
  85. package/dist/assets/line-icons/icons/pan.js.map +1 -1
  86. package/dist/assets/line-icons/icons/pencil.js.map +1 -1
  87. package/dist/assets/line-icons/icons/play.js.map +1 -1
  88. package/dist/assets/line-icons/icons/play2.js.map +1 -1
  89. package/dist/assets/line-icons/icons/plus.js.map +1 -1
  90. package/dist/assets/line-icons/icons/plus2.js.map +1 -1
  91. package/dist/assets/line-icons/icons/pointer.js.map +1 -1
  92. package/dist/assets/line-icons/icons/practice.js.map +1 -1
  93. package/dist/assets/line-icons/icons/progress.js.map +1 -1
  94. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -1
  95. package/dist/assets/line-icons/icons/puzzle2.js.map +1 -1
  96. package/dist/assets/line-icons/icons/question-letter.js.map +1 -1
  97. package/dist/assets/line-icons/icons/question.js.map +1 -1
  98. package/dist/assets/line-icons/icons/redo.js.map +1 -1
  99. package/dist/assets/line-icons/icons/right.js.map +1 -1
  100. package/dist/assets/line-icons/icons/ruler.js.map +1 -1
  101. package/dist/assets/line-icons/icons/screen-grab-filled.js.map +1 -1
  102. package/dist/assets/line-icons/icons/screen-grab.js.map +1 -1
  103. package/dist/assets/line-icons/icons/scribble.js.map +1 -1
  104. package/dist/assets/line-icons/icons/search.js.map +1 -1
  105. package/dist/assets/line-icons/icons/share.js.map +1 -1
  106. package/dist/assets/line-icons/icons/sheet.js.map +1 -1
  107. package/dist/assets/line-icons/icons/sketch.js.map +1 -1
  108. package/dist/assets/line-icons/icons/skip-colored.js.map +1 -1
  109. package/dist/assets/line-icons/icons/skip.js.map +1 -1
  110. package/dist/assets/line-icons/icons/skip2.js.map +1 -1
  111. package/dist/assets/line-icons/icons/square-checked-grid.js.map +1 -1
  112. package/dist/assets/line-icons/icons/square-dots.js.map +1 -1
  113. package/dist/assets/line-icons/icons/square-grid.js.map +1 -1
  114. package/dist/assets/line-icons/icons/square2-grid.js.map +1 -1
  115. package/dist/assets/line-icons/icons/star.js.map +1 -1
  116. package/dist/assets/line-icons/icons/star2.js.map +1 -1
  117. package/dist/assets/line-icons/icons/star3.js.map +1 -1
  118. package/dist/assets/line-icons/icons/status.js.map +1 -1
  119. package/dist/assets/line-icons/icons/sticker-filled.js.map +1 -1
  120. package/dist/assets/line-icons/icons/sticker.js.map +1 -1
  121. package/dist/assets/line-icons/icons/striked-eye.js.map +1 -1
  122. package/dist/assets/line-icons/icons/switch-icon.js.map +1 -1
  123. package/dist/assets/line-icons/icons/text-icon.js.map +1 -1
  124. package/dist/assets/line-icons/icons/tick.js.map +1 -1
  125. package/dist/assets/line-icons/icons/tile.js.map +1 -1
  126. package/dist/assets/line-icons/icons/tri-dots.js.map +1 -1
  127. package/dist/assets/line-icons/icons/tri-grid.js.map +1 -1
  128. package/dist/assets/line-icons/icons/tri2-dots.js.map +1 -1
  129. package/dist/assets/line-icons/icons/tri2-grid.js.map +1 -1
  130. package/dist/assets/line-icons/icons/trophy.js.map +1 -1
  131. package/dist/assets/line-icons/icons/tutoring.js.map +1 -1
  132. package/dist/assets/line-icons/icons/undo.js.map +1 -1
  133. package/dist/assets/line-icons/icons/unlock.js.map +1 -1
  134. package/dist/assets/line-icons/icons/unlock2.js.map +1 -1
  135. package/dist/assets/line-icons/icons/up.js.map +1 -1
  136. package/dist/assets/line-icons/icons/upload.js.map +1 -1
  137. package/dist/assets/line-icons/icons/user.js.map +1 -1
  138. package/dist/assets/line-icons/icons/user2.js.map +1 -1
  139. package/dist/assets/line-icons/icons/wins-common-icon.js.map +1 -1
  140. package/dist/assets/line-icons/icons/wins-epic-icon.js.map +1 -1
  141. package/dist/assets/line-icons/icons/wins-legendary-icon.js.map +1 -1
  142. package/dist/assets/line-icons/icons/wins-mystery-icon.js.map +1 -1
  143. package/dist/assets/line-icons/icons/wins-mythic-icon.js.map +1 -1
  144. package/dist/assets/line-icons/icons/wins-rare-icon.js.map +1 -1
  145. package/dist/assets/line-icons/icons/zoom-in.js.map +1 -1
  146. package/dist/assets/line-icons/icons/zoom-out.js.map +1 -1
  147. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  148. package/dist/features/auth/account-selector/comps/compact-header/account-selector-header.js.map +1 -1
  149. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +1 -1
  150. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
  151. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js.map +1 -1
  152. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  153. package/dist/features/auth/comps/auth-static-panel/auth-static-panel.js.map +1 -1
  154. package/dist/features/auth/comps/input-status-icon/input-status-icon.js.map +1 -1
  155. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +1 -1
  156. package/dist/features/auth/comps/otp-input/otp-input.js +31 -31
  157. package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
  158. package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
  159. package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
  160. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +1 -1
  161. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js.map +1 -1
  162. package/dist/features/auth/comps/tabs/tabs-styled.js.map +1 -1
  163. package/dist/features/auth/comps/tabs/tabs.js.map +1 -1
  164. package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
  165. package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
  166. package/dist/features/auth/forgot-password/otp-form/otp-form.js.map +1 -1
  167. package/dist/features/auth/forgot-password/reset-password-form/reset-password-form.js.map +1 -1
  168. package/dist/features/auth/forgot-password/user-identifier-form/user-identifier-form.js.map +1 -1
  169. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form.js.map +1 -1
  170. package/dist/features/auth/login/social-account-not-found/social-account-not-found.js.map +1 -1
  171. package/dist/features/auth/login/social-login-methods/social-login-methods.js.map +1 -1
  172. package/dist/features/auth/login/username-password-form/username-password-form.js.map +1 -1
  173. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
  174. package/dist/features/auth/pla-signup/pla-analytics-events.js +13 -3
  175. package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
  176. package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
  177. package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js.map +1 -1
  178. package/dist/features/auth/signup/claim-user-account/claim-user-account.js.map +1 -1
  179. package/dist/features/auth/signup/custom-input-field/country-selector/country-code-button.js.map +1 -1
  180. package/dist/features/auth/signup/custom-input-field/country-selector/country-list-menu.js.map +1 -1
  181. package/dist/features/auth/signup/custom-input-field/country-selector/country-selector.js.map +1 -1
  182. package/dist/features/auth/signup/custom-input-field/custom-input-field.js.map +1 -1
  183. package/dist/features/auth/signup/custom-input-field/date-picker-input/date-picker-input.js.map +1 -1
  184. package/dist/features/auth/signup/custom-input-field/grade-input/grade-input.js.map +1 -1
  185. package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js.map +1 -1
  186. package/dist/features/auth/signup/custom-input-field/password-toggle/password-toggle.js.map +1 -1
  187. package/dist/features/auth/signup/signup-methods/signup-methods.js.map +1 -1
  188. package/dist/features/auth/signup/user-type-selector/user-type-card/user-type-card.js.map +1 -1
  189. package/dist/features/auth/signup/user-type-selector/user-type-selector.js.map +1 -1
  190. package/dist/features/auth/signup-unavailable/signup-unavailable-view.js.map +1 -1
  191. package/dist/features/auth/signup-unavailable/signup-unavailable.js.map +1 -1
  192. package/dist/features/av/av-preview/av-preview.js.map +1 -1
  193. package/dist/features/av/av-preview/hooks/use-media-devices.js.map +1 -1
  194. package/dist/features/blockers/multi-tab-blocker/multi-tab-blocker-context.js.map +1 -1
  195. package/dist/features/blockers/multi-tab-blocker/multi-tab-blocker.js.map +1 -1
  196. package/dist/features/blockers/multi-tab-blocker/use-is-tab-blocked.js.map +1 -1
  197. package/dist/features/chapters/chapter/chapter.js.map +1 -1
  198. package/dist/features/chapters/chapter/comps/chapter-banner/chapter-banner.js.map +1 -1
  199. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
  200. package/dist/features/chapters/chapter/comps/supplementary-resources/supplementary-resources.js.map +1 -1
  201. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
  202. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  203. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  204. package/dist/features/chapters/lpar-chapter/block-section/block-section.js.map +1 -1
  205. package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-action.js.map +1 -1
  206. package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-header.js.map +1 -1
  207. package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block-utils.js.map +1 -1
  208. package/dist/features/chapters/lpar-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
  209. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-item-utils.js.map +1 -1
  210. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-item.js.map +1 -1
  211. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js.map +1 -1
  212. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js.map +1 -1
  213. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js.map +1 -1
  214. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/student-actions/student-actions.js.map +1 -1
  215. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/teacher-actions/teacher-actions.js.map +1 -1
  216. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/reward-n-actions.js.map +1 -1
  217. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions-utils.js.map +1 -1
  218. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions.js.map +1 -1
  219. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions/teacher-actions.js.map +1 -1
  220. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item-icon.js.map +1 -1
  221. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item-utils.js.map +1 -1
  222. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/sheet-item.js.map +1 -1
  223. package/dist/features/chapters/lpar-chapter/comps/chapter-progress.js.map +1 -1
  224. package/dist/features/chapters/lpar-chapter/comps/tab-section.js.map +1 -1
  225. package/dist/features/chapters/lpar-chapter/constants/puzzle-card.js.map +1 -1
  226. package/dist/features/chapters/lpar-chapter/lpar-chapter-banner/chapter-banner.js.map +1 -1
  227. package/dist/features/chapters/lpar-chapter/lpar-chapter-banner/lpar-chapter-banner-styled.js.map +1 -1
  228. package/dist/features/chapters/lpar-chapter/lpar-chapter.js.map +1 -1
  229. package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/cue-coins.js.map +1 -1
  230. package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/puzzle-card-styled.js.map +1 -1
  231. package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-card/puzzle-card.js.map +1 -1
  232. package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-section-utils.js.map +1 -1
  233. package/dist/features/chapters/lpar-chapter/puzzle-section/puzzle-section.js.map +1 -1
  234. package/dist/features/chapters/lpar-chapter/utils/index.js.map +1 -1
  235. package/dist/features/chapters/lpar-milestone-chapter/block-section/block-section.js.map +1 -1
  236. package/dist/features/chapters/lpar-milestone-chapter/block-section/chapter-block/chapter-block.js.map +1 -1
  237. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/rewards-n-actions.js.map +1 -1
  238. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/student-actions.js.map +1 -1
  239. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions.js.map +1 -1
  240. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/sheet-info.js.map +1 -1
  241. package/dist/features/chapters/lpar-milestone-chapter/block-section/sheet-item/sheet-item.js.map +1 -1
  242. package/dist/features/chapters/lpar-milestone-chapter/extra-practice-section/extra-practice-section.js.map +1 -1
  243. package/dist/features/chapters/lpar-milestone-chapter/lpar-milestone-chapter.js.map +1 -1
  244. package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card-util.js.map +1 -1
  245. package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-card.js.map +1 -1
  246. package/dist/features/chapters/lpar-milestone-chapter/puzzle-section/puzzle-section.js.map +1 -1
  247. package/dist/features/chapters-v2/api/chapter.js.map +1 -1
  248. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  249. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +43 -34
  250. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  251. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -1
  252. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -1
  253. package/dist/features/chapters-v2/chapter-details/chapter-details.js +140 -101
  254. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  255. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  256. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -1
  257. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +1 -1
  258. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -1
  259. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  260. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  261. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js.map +1 -1
  262. package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -1
  263. package/dist/features/chapters-v2/utils/index.js +20 -16
  264. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  265. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  266. package/dist/features/chapters-v2/utils/sat-sheet-utils.js.map +1 -1
  267. package/dist/features/circle-games/comps/info-bar/info-bar.js.map +1 -1
  268. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js +6 -6
  269. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js.map +1 -1
  270. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js.map +1 -1
  271. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -1
  272. package/dist/features/circle-games/game-launcher/comps/carousel/carousel.js.map +1 -1
  273. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js.map +1 -1
  274. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  275. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +1 -1
  276. package/dist/features/circle-games/game-launcher/comps/tables-card/infinite-button/infinite-mode-launcher-button.js.map +1 -1
  277. package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -1
  278. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -1
  279. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star-styled.js.map +1 -1
  280. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -1
  281. package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -1
  282. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  283. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/helper.js.map +1 -1
  284. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +20 -21
  285. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  286. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  287. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
  288. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
  289. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
  290. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  291. package/dist/features/circle-games/games/tutorial/video-progress-bar/video-progress-bar-styled.js.map +1 -1
  292. package/dist/features/circle-games/games/tutorial/video-progress-bar/video-progress-bar.js.map +1 -1
  293. package/dist/features/circle-games/games/web-view/hooks/use-webview-games.js.map +1 -1
  294. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  295. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  296. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  297. package/dist/features/circle-games/leaderboard/api/get-leaderboard/get-leaderboard.js.map +1 -1
  298. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  299. package/dist/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.js.map +1 -1
  300. package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button.js.map +1 -1
  301. package/dist/features/circle-games/leaderboard/comps/progress-item/progress-item.js.map +1 -1
  302. package/dist/features/circle-games/leaderboard/comps/progress-list-item/progress-list-item.js.map +1 -1
  303. package/dist/features/circle-games/leaderboard/comps/streak-reduction-infobar/streak-reduction-infobar.js.map +1 -1
  304. package/dist/features/circle-games/leaderboard/comps/timer/timer.js.map +1 -1
  305. package/dist/features/circle-games/leaderboard/comps/with-grade/with-grade.js.map +1 -1
  306. package/dist/features/circle-games/leaderboard/dal/use-get-leaderboard-dal/use-get-leaderboard-dal.js.map +1 -1
  307. package/dist/features/circle-games/leaderboard/hooks/use-timer/use-timer.js.map +1 -1
  308. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  309. package/dist/features/circle-games/sign-up/api/use-create-user-api/use-create-user-api.js.map +1 -1
  310. package/dist/features/circle-games/sign-up/api/use-update-user-api/use-update-user-api.js.map +1 -1
  311. package/dist/features/circle-games/sign-up/api/use-update-username-api/use-update-username-api.js.map +1 -1
  312. package/dist/features/circle-games/sign-up/api/use-validate-username-api/use-username-availability-get.js.map +1 -1
  313. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps.js.map +1 -1
  314. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
  315. package/dist/features/circle-games/sign-up/comp/input-wrapper/input-wrapper.js.map +1 -1
  316. package/dist/features/circle-games/sign-up/comp/select-user-grade/select-user-grade.js.map +1 -1
  317. package/dist/features/circle-games/sign-up/comp/spinner/spinner.js.map +1 -1
  318. package/dist/features/circle-games/sign-up/comp/splash-screen/splash-screen.js.map +1 -1
  319. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
  320. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  321. package/dist/features/circle-games/sign-up/dal/create-user-dal/create-user-dal.js.map +1 -1
  322. package/dist/features/circle-games/sign-up/dal/update-user-dal/update-user-dal.js.map +1 -1
  323. package/dist/features/circle-games/sign-up/dal/update-username-dal/update-username-dal.js.map +1 -1
  324. package/dist/features/circle-games/sign-up/dal/validate-username-dal/validate-username-dal.js.map +1 -1
  325. package/dist/features/circle-games/sign-up/helper.js.map +1 -1
  326. package/dist/features/circle-games/sign-up/sign-up.js +6 -6
  327. package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
  328. package/dist/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js.map +1 -1
  329. package/dist/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js.map +1 -1
  330. package/dist/features/communication/pub-sub/core.js.map +1 -1
  331. package/dist/features/communication/pub-sub/hooks.js.map +1 -1
  332. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  333. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  334. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  335. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  336. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  337. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  338. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  339. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  340. package/dist/features/cue-canvas/hooks/use-config-updater.js.map +1 -1
  341. package/dist/features/cue-canvas/hooks/use-height-extender.js.map +1 -1
  342. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -1
  343. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -1
  344. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -1
  345. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -1
  346. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -1
  347. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -1
  348. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -1
  349. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -1
  350. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -1
  351. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -1
  352. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -1
  353. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -1
  354. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  355. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -1
  356. package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -1
  357. package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
  358. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
  359. package/dist/features/cue-canvas/toolbar/icon-map.js.map +1 -1
  360. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -1
  361. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  362. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  363. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  364. package/dist/features/extra-practice/extra-practice.js.map +1 -1
  365. package/dist/features/extra-practice/list/list-constants.js.map +1 -1
  366. package/dist/features/extra-practice/list/list.js.map +1 -1
  367. package/dist/features/homework/card-menu-options.js.map +1 -1
  368. package/dist/features/homework/card-title.js.map +1 -1
  369. package/dist/features/homework/homework-card-view.js.map +1 -1
  370. package/dist/features/homework/homework-card.js.map +1 -1
  371. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  372. package/dist/features/homework/hw-card-list/hw-card-list-view.js +17 -17
  373. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  374. package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
  375. package/dist/features/homework/node-progress.js.map +1 -1
  376. package/dist/features/homework/utils.js.map +1 -1
  377. package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
  378. package/dist/features/journey/comps/coachmark/coachmark-utils.js.map +1 -1
  379. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  380. package/dist/features/journey/hooks/use-chapter-page-journey/use-challenge-arena-journey.js.map +1 -1
  381. package/dist/features/journey/hooks/use-chapter-page-journey/use-chapter-journey.js.map +1 -1
  382. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +86 -0
  383. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +1 -0
  384. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +140 -0
  385. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +1 -0
  386. package/dist/features/journey/hooks/use-get-eligible-journeys-via-route.js.map +1 -1
  387. package/dist/features/journey/hooks/use-home-page-journey/tooltip-item.js.map +1 -1
  388. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js.map +1 -1
  389. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-assigned.js.map +1 -1
  390. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-attempt-journey.js.map +1 -1
  391. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js.map +1 -1
  392. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-intro-journey.js.map +1 -1
  393. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-progress-journey.js.map +1 -1
  394. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-review-journey.js.map +1 -1
  395. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-unassign-journey.js.map +1 -1
  396. package/dist/features/journey/hooks/use-puzzles-journey/use-teacher-puzzle-assigned-journey.js.map +1 -1
  397. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  398. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  399. package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
  400. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
  401. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +400 -0
  402. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
  403. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  404. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  405. package/dist/features/journey/use-journey/use-journey.js.map +1 -1
  406. package/dist/features/journey/user-journey-api/user-journey-api.js.map +1 -1
  407. package/dist/features/maintenance/maintenance.js.map +1 -1
  408. package/dist/features/milestone/constants.js +28 -15
  409. package/dist/features/milestone/constants.js.map +1 -1
  410. package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
  411. package/dist/features/milestone/create/api/milestone-bulk.js.map +1 -1
  412. package/dist/features/milestone/create/api/milestone-config.js.map +1 -1
  413. package/dist/features/milestone/create/api/milestone-submit.js.map +1 -1
  414. package/dist/features/milestone/create/api/recommended-chapters.js.map +1 -1
  415. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
  416. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  417. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  418. package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
  419. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
  420. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
  421. package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
  422. package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
  423. package/dist/features/milestone/create/comps/chapter-item/chapter-item-styled.js.map +1 -1
  424. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
  425. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/category-card.js.map +1 -1
  426. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  427. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-selection.js.map +1 -1
  428. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js.map +1 -1
  429. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  430. package/dist/features/milestone/create/comps/chapters-selection-step/use-chapter-list-update.js.map +1 -1
  431. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  432. package/dist/features/milestone/create/comps/class-details-step/class-details-selectors.js.map +1 -1
  433. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  434. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  435. package/dist/features/milestone/create/comps/confirmation-modals/chapter-clearance-confirmation.js.map +1 -1
  436. package/dist/features/milestone/create/comps/confirmation-modals/goal-creation-confirmation-utils.js.map +1 -1
  437. package/dist/features/milestone/create/comps/confirmation-modals/goal-creation-confirmation.js.map +1 -1
  438. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector-view.js.map +1 -1
  439. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
  440. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
  441. package/dist/features/milestone/create/comps/info-points/info-points.js.map +1 -1
  442. package/dist/features/milestone/create/comps/milestone-progress/milestone-progress.js.map +1 -1
  443. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +2 -2
  444. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
  445. package/dist/features/milestone/create/comps/test-type-step/category-component-styled.js.map +1 -1
  446. package/dist/features/milestone/create/comps/test-type-step/category-component.js.map +1 -1
  447. package/dist/features/milestone/create/comps/test-type-step/test-type-step-constants.js.map +1 -1
  448. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  449. package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js +23 -16
  450. package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
  451. package/dist/features/milestone/create/milestone-create-components-map.js.map +1 -1
  452. package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
  453. package/dist/features/milestone/create/milestone-create-context.js.map +1 -1
  454. package/dist/features/milestone/create/milestone-create-helpers.js +13 -7
  455. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  456. package/dist/features/milestone/create/milestone-create-hooks.js.map +1 -1
  457. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  458. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  459. package/dist/features/milestone/create/submit-modal/submit-modal.js.map +1 -1
  460. package/dist/features/milestone/create/submit-modal/submit-with-plan-modal/submit-with-plan-modal-util.js.map +1 -1
  461. package/dist/features/milestone/create/submit-modal/submit-with-plan-modal/submit-with-plan-modal.js.map +1 -1
  462. package/dist/features/milestone/create/submit-modal/use-submit-milestone.js.map +1 -1
  463. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  464. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
  465. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  466. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  467. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js.map +1 -1
  468. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  469. package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
  470. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  471. package/dist/features/milestone/edit/milestone-edit-helpers.js.map +1 -1
  472. package/dist/features/milestone/hooks/use-submit-goal-creation.js.map +1 -1
  473. package/dist/features/milestone/milestone-action-widget/milestone-action-widget.js.map +1 -1
  474. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
  475. package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
  476. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js.map +1 -1
  477. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  478. package/dist/features/milestone/milestone-list-container/filter-milestones.js.map +1 -1
  479. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +32 -32
  480. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  481. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-loader/milestone-loader.js.map +1 -1
  482. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  483. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-utils.js.map +1 -1
  484. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/use-goal-draft-publish.js.map +1 -1
  485. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  486. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  487. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  488. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
  489. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  490. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  491. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
  492. package/dist/features/milestone/milestone-list-container/milestone-list/no-active-milestone/no-active-milestone.js.map +1 -1
  493. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  494. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
  495. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -1
  496. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
  497. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
  498. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
  499. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  500. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  501. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  502. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  503. package/dist/features/milestone/milestone-tests/tests-creation/api/preview-test-sheet.js.map +1 -1
  504. package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
  505. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-item/chapter-item.js.map +1 -1
  506. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
  507. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
  508. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-card-lottie-animation.js.map +1 -1
  509. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/test-radio-card/test-radio-card.js.map +1 -1
  510. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  511. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  512. package/dist/features/milestone/milestone-tests/tests-creation/utils/index.js.map +1 -1
  513. package/dist/features/milestone/outcome/api/milestone-outcome-config.js.map +1 -1
  514. package/dist/features/milestone/outcome/comps/achievement/achievement-constants.js.map +1 -1
  515. package/dist/features/milestone/outcome/comps/achievement/achievement-container.js.map +1 -1
  516. package/dist/features/milestone/outcome/comps/achievement/reason-submit-modal.js.map +1 -1
  517. package/dist/features/milestone/outcome/comps/achievement/share-instructions-modal.js.map +1 -1
  518. package/dist/features/milestone/outcome/comps/outcome-collection/dynamic-input-handler.js.map +1 -1
  519. package/dist/features/milestone/outcome/comps/outcome-collection/input-handler.js.map +1 -1
  520. package/dist/features/milestone/outcome/comps/outcome-collection/milestone-outcome-collection-container.js.map +1 -1
  521. package/dist/features/milestone/outcome/comps/outcome-collection/outcome-form/outcome-form.js.map +1 -1
  522. package/dist/features/milestone/outcome/comps/outcome-collection/rank-inputs/index.js.map +1 -1
  523. package/dist/features/milestone/outcome/comps/outcome-collection/score-marks-input/index.js.map +1 -1
  524. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js.map +1 -1
  525. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-form.js.map +1 -1
  526. package/dist/features/milestone/outcome/comps/past-milestone/question.js +1 -5
  527. package/dist/features/milestone/outcome/comps/past-milestone/question.js.map +1 -1
  528. package/dist/features/milestone/outcome/milestone-outcome-container.js.map +1 -1
  529. package/dist/features/milestone/start/milestone-start.js.map +1 -1
  530. package/dist/features/parent-dashboard/api/cancel-subscription.js +9 -0
  531. package/dist/features/parent-dashboard/api/cancel-subscription.js.map +1 -0
  532. package/dist/features/parent-dashboard/api/get-student-profile-summary.js.map +1 -1
  533. package/dist/features/parent-dashboard/api/parent-home.js.map +1 -1
  534. package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js +20 -0
  535. package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js.map +1 -0
  536. package/dist/features/parent-dashboard/comps/billing-information/billing-information.js +74 -0
  537. package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -0
  538. package/dist/features/parent-dashboard/comps/compact-header/compact-header.js.map +1 -1
  539. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-constants.js.map +1 -1
  540. package/dist/features/parent-dashboard/comps/math-practice/math-practice.js.map +1 -1
  541. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-constants.js +1 -1
  542. package/dist/features/parent-dashboard/comps/next-steps/next-steps-constants.js.map +1 -0
  543. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-styled.js +1 -1
  544. package/dist/features/parent-dashboard/comps/next-steps/next-steps-styled.js.map +1 -0
  545. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps.js +5 -5
  546. package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +1 -0
  547. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +28 -22
  548. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -1
  549. package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js +34 -0
  550. package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js.map +1 -0
  551. package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js +137 -0
  552. package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map +1 -0
  553. package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js +20 -0
  554. package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js.map +1 -0
  555. package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js +19 -0
  556. package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js.map +1 -0
  557. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-status/session-status-styled.js +2 -2
  558. package/dist/features/parent-dashboard/comps/session-status/session-status-styled.js.map +1 -0
  559. package/dist/features/parent-dashboard/comps/session-status/session-status.js +124 -0
  560. package/dist/features/parent-dashboard/comps/session-status/session-status.js.map +1 -0
  561. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/session-summary-constants.js +18 -12
  562. package/dist/features/parent-dashboard/comps/session-summary/session-summary-constants.js.map +1 -0
  563. package/dist/features/parent-dashboard/comps/session-summary/session-summary.js +54 -0
  564. package/dist/features/parent-dashboard/comps/session-summary/session-summary.js.map +1 -0
  565. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/summary-card/summary-card-styled.js +1 -1
  566. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card-styled.js.map +1 -0
  567. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js +72 -0
  568. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js.map +1 -0
  569. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
  570. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-styled.js +1 -1
  571. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
  572. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
  573. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions.js +14 -14
  574. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions.js.map +1 -0
  575. package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js +1 -1
  576. package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js.map +1 -1
  577. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +48 -46
  578. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
  579. package/dist/features/parent-dashboard/hooks/use-switch-user-journey.js.map +1 -1
  580. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js +21 -0
  581. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js.map +1 -0
  582. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js +85 -0
  583. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js.map +1 -0
  584. package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js +23 -0
  585. package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js.map +1 -0
  586. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js +55 -0
  587. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js.map +1 -0
  588. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js +71 -0
  589. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js.map +1 -0
  590. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js +119 -0
  591. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -0
  592. package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js +58 -0
  593. package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js.map +1 -0
  594. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-helpers.js.map +1 -1
  595. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +16 -17
  596. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js.map +1 -1
  597. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js +4 -8
  598. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js.map +1 -1
  599. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +3 -3
  600. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -1
  601. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change.js.map +1 -1
  602. package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js +76 -0
  603. package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js.map +1 -0
  604. package/dist/features/parent-dashboard/parent-dashboard-constants.js +45 -4
  605. package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -1
  606. package/dist/features/parent-dashboard/parent-dashboard-types.js +3 -3
  607. package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -1
  608. package/dist/features/parent-dashboard/parent-dashboard-view.js +197 -174
  609. package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -1
  610. package/dist/features/parent-dashboard/parent-dashboard.js.map +1 -1
  611. package/dist/features/pointer-sync/hooks/use-pointer-sync.js.map +1 -1
  612. package/dist/features/pointer-sync/pointer.js.map +1 -1
  613. package/dist/features/post-game-stats/accuracy/accuracy-comps.js.map +1 -1
  614. package/dist/features/post-game-stats/accuracy/accuracy.js.map +1 -1
  615. package/dist/features/post-game-stats/clock/clock.js.map +1 -1
  616. package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -1
  617. package/dist/features/post-game-stats/number-count-animation/number-count-animation.js.map +1 -1
  618. package/dist/features/post-game-stats/points/points.js.map +1 -1
  619. package/dist/features/post-game-stats/post-game-stats.js.map +1 -1
  620. package/dist/features/post-game-stats/score/score.js.map +1 -1
  621. package/dist/features/post-game-stats/streak/streak.js.map +1 -1
  622. package/dist/features/puzzles/api/puzzle-assign.js.map +1 -1
  623. package/dist/features/puzzles/api/puzzle-dashboard.js.map +1 -1
  624. package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -1
  625. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -1
  626. package/dist/features/puzzles/app/puzzle-app.js.map +1 -1
  627. package/dist/features/puzzles/comps/puzzle-card-styled.js.map +1 -1
  628. package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
  629. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js.map +1 -1
  630. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js.map +1 -1
  631. package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -1
  632. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard.js.map +1 -1
  633. package/dist/features/puzzles/puzzle-feedback-celebration/puzzle-feedback-celebration.js.map +1 -1
  634. package/dist/features/puzzles/utils/puzzle-pattern.js.map +1 -1
  635. package/dist/features/recent-chapters/api/get-recent-chapters.js.map +1 -1
  636. package/dist/features/recent-chapters/recent-chapters.js.map +1 -1
  637. package/dist/features/sheet-tools/desmos-calculator/desmos-calculator.js.map +1 -1
  638. package/dist/features/sheet-tools/tool-header/tool-header.js +14 -14
  639. package/dist/features/sheet-tools/tool-header/tool-header.js.map +1 -1
  640. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  641. package/dist/features/sheets/comps/sheet-button/index.js.map +1 -1
  642. package/dist/features/sheets/comps/sheet-button/styled.js.map +1 -1
  643. package/dist/features/sheets/constants/sheet.js.map +1 -1
  644. package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/menu-element.js.map +1 -1
  645. package/dist/features/sheets/lessons-list/lesson-item/context-menu-helper/target-element.js.map +1 -1
  646. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-cta-info.js.map +1 -1
  647. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-styled.js.map +1 -1
  648. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-utils.js.map +1 -1
  649. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-view.js.map +1 -1
  650. package/dist/features/sheets/lessons-list/lesson-item/lesson-item.js.map +1 -1
  651. package/dist/features/sheets/lessons-list/lessons-list.js.map +1 -1
  652. package/dist/features/sheets/reference-sheet/reference-sheet.js.map +1 -1
  653. package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element.js.map +1 -1
  654. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  655. package/dist/features/sheets/resources-list/resource-item/utils.js.map +1 -1
  656. package/dist/features/sheets/resources-list/resources-list.js.map +1 -1
  657. package/dist/features/sheets/resources-list/styled.js.map +1 -1
  658. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/context-menu-helper/menu-element/menu-element.js.map +1 -1
  659. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/context-menu-helper/target-element/target-element.js.map +1 -1
  660. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/reward-n-actions-utils.js.map +1 -1
  661. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/reward-n-actions.js.map +1 -1
  662. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.js.map +1 -1
  663. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions.js.map +1 -1
  664. package/dist/features/sheets/sheets-list/sheet-item/sheet-item-icon.js.map +1 -1
  665. package/dist/features/sheets/sheets-list/sheet-item/sheet-item-tag.js.map +1 -1
  666. package/dist/features/sheets/sheets-list/sheet-item/sheet-item-utils.js.map +1 -1
  667. package/dist/features/sheets/sheets-list/sheet-item/sheet-item.js.map +1 -1
  668. package/dist/features/sheets/sheets-list/sheets-list.js.map +1 -1
  669. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  670. package/dist/features/stickers/sticker-selector/comps/sticker/sticker.js.map +1 -1
  671. package/dist/features/stickers/sticker-selector/comps/stiker-selector-grid/sticker-selector-grid.js.map +1 -1
  672. package/dist/features/stickers/sticker-selector/sticker-selector.js +57 -58
  673. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -1
  674. package/dist/features/stickers/stickers-effects/stickers-effects-animations.js.map +1 -1
  675. package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +1 -1
  676. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js +17 -32
  677. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -1
  678. package/dist/features/stickers/stickers-effects/stickers-effects.js +56 -40
  679. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -1
  680. package/dist/features/student-details/class-details/class-details-utils.js +6 -6
  681. package/dist/features/student-details/class-details/class-details.js.map +1 -1
  682. package/dist/features/student-details/student-details-utils.js.map +1 -1
  683. package/dist/features/student-details/student-details.js.map +1 -1
  684. package/dist/features/student-details/wins-preview/wins-preview.js.map +1 -1
  685. package/dist/features/talk-meter/hooks/use-talk-meter.js.map +1 -1
  686. package/dist/features/talk-meter/ripple/index.js.map +1 -1
  687. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -1
  688. package/dist/features/talk-meter/talk-meter.js.map +1 -1
  689. package/dist/features/trial-session/api/course-stream.js.map +1 -1
  690. package/dist/features/trial-session/api/teacher-availability.js +9 -0
  691. package/dist/features/trial-session/api/teacher-availability.js.map +1 -0
  692. package/dist/features/trial-session/api/trial-home.js.map +1 -1
  693. package/dist/features/trial-session/api/trial-nodes.js.map +1 -1
  694. package/dist/features/trial-session/api/trial-pricing.js.map +1 -1
  695. package/dist/features/trial-session/comps/about-cuemath/index.js.map +1 -1
  696. package/dist/features/trial-session/comps/av-panels/student-av-panel/student-av-panel.js.map +1 -1
  697. package/dist/features/trial-session/comps/av-panels/teacher-av-panel/teacher-av-panel.js.map +1 -1
  698. package/dist/features/trial-session/comps/background-grid/background-grid-styled.js.map +1 -1
  699. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
  700. package/dist/features/trial-session/comps/background-grid/background-grid.js.map +1 -1
  701. package/dist/features/trial-session/comps/class-preference/class-preference.js +74 -58
  702. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  703. package/dist/features/trial-session/comps/class-preference/helpers.js +28 -0
  704. package/dist/features/trial-session/comps/class-preference/helpers.js.map +1 -0
  705. package/dist/features/trial-session/comps/clock/clock.js.map +1 -1
  706. package/dist/features/trial-session/comps/countdown-progress-bar/countdown-progress-bar.js.map +1 -1
  707. package/dist/features/trial-session/comps/cue-tips/cues/index.js.map +1 -1
  708. package/dist/features/trial-session/comps/cue-tips/tips/index.js.map +1 -1
  709. package/dist/features/trial-session/comps/learning-plan/index.js +47 -45
  710. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  711. package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +1 -1
  712. package/dist/features/trial-session/comps/learning-session/learning-session-constants.js.map +1 -1
  713. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
  714. package/dist/features/trial-session/comps/navigation-bar/index.js +41 -40
  715. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  716. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
  717. package/dist/features/trial-session/comps/pricing/board-comp.js.map +1 -1
  718. package/dist/features/trial-session/comps/pricing/india-pricing/index.js.map +1 -1
  719. package/dist/features/trial-session/comps/pricing/pricing-cards.js.map +1 -1
  720. package/dist/features/trial-session/comps/pricing/pricing-styled.js.map +1 -1
  721. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  722. package/dist/features/trial-session/comps/school-goals/school-goals.js +59 -57
  723. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  724. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  725. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
  726. package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -1
  727. package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js.map +1 -1
  728. package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -1
  729. package/dist/features/trial-session/comps/session-report/session-report.js +15 -15
  730. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  731. package/dist/features/trial-session/comps/slide-header/index.js.map +1 -1
  732. package/dist/features/trial-session/comps/solutions/index.js.map +1 -1
  733. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +41 -40
  734. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  735. package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js +5 -0
  736. package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
  737. package/dist/features/trial-session/comps/student-feedback/student-feedback.js +96 -51
  738. package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
  739. package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
  740. package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -1
  741. package/dist/features/trial-session/comps/student-profile/student-profile-utils.js.map +1 -1
  742. package/dist/features/trial-session/comps/student-profile/student-profile.js +70 -63
  743. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  744. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +43 -44
  745. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
  746. package/dist/features/trial-session/comps/test-prep/test-prep.js +41 -40
  747. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  748. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-launch-screen/trial-circle-game-launch-screen-styled.js.map +1 -1
  749. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-launch-screen/trial-circle-game-launch-screen.js.map +1 -1
  750. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +60 -61
  751. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  752. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  753. package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
  754. package/dist/features/trial-session/helper.js +76 -61
  755. package/dist/features/trial-session/helper.js.map +1 -1
  756. package/dist/features/trial-session/hooks/use-left-panel-button-state.js.map +1 -1
  757. package/dist/features/trial-session/hooks/use-slide-config-update.js +49 -0
  758. package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -0
  759. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +174 -144
  760. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  761. package/dist/features/trial-session/left-panel/index.js.map +1 -1
  762. package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
  763. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  764. package/dist/features/trial-session/trial-session-view.js +99 -110
  765. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  766. package/dist/features/trial-session/trial-session.js.map +1 -1
  767. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js.map +1 -1
  768. package/dist/features/ui/accordion/accordion-items/accordion-items.js +13 -13
  769. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
  770. package/dist/features/ui/accordion/accordion.js.map +1 -1
  771. package/dist/features/ui/accordion-section/accordion-section-styled.js.map +1 -1
  772. package/dist/features/ui/accordion-section/accordion-section.js +8 -8
  773. package/dist/features/ui/accordion-section/accordion-section.js.map +1 -1
  774. package/dist/features/ui/animated-arc/animated-arc-styled.js.map +1 -1
  775. package/dist/features/ui/animated-arc/animated-arc.js.map +1 -1
  776. package/dist/features/ui/arc-button/arc-button-styled.js.map +1 -1
  777. package/dist/features/ui/arc-button/arc-button.js.map +1 -1
  778. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  779. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -1
  780. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -1
  781. package/dist/features/ui/avatar/avatar-mapping.js.map +1 -1
  782. package/dist/features/ui/avatar/avatar-types.js.map +1 -1
  783. package/dist/features/ui/avatar/avatar.js.map +1 -1
  784. package/dist/features/ui/avatar/layers/base/variant-1.js.map +1 -1
  785. package/dist/features/ui/avatar/layers/eyes/variant-1.js.map +1 -1
  786. package/dist/features/ui/avatar/layers/eyes/variant-10.js.map +1 -1
  787. package/dist/features/ui/avatar/layers/eyes/variant-11.js.map +1 -1
  788. package/dist/features/ui/avatar/layers/eyes/variant-12.js.map +1 -1
  789. package/dist/features/ui/avatar/layers/eyes/variant-13.js.map +1 -1
  790. package/dist/features/ui/avatar/layers/eyes/variant-14.js.map +1 -1
  791. package/dist/features/ui/avatar/layers/eyes/variant-15.js.map +1 -1
  792. package/dist/features/ui/avatar/layers/eyes/variant-16.js.map +1 -1
  793. package/dist/features/ui/avatar/layers/eyes/variant-17.js.map +1 -1
  794. package/dist/features/ui/avatar/layers/eyes/variant-18.js.map +1 -1
  795. package/dist/features/ui/avatar/layers/eyes/variant-2.js.map +1 -1
  796. package/dist/features/ui/avatar/layers/eyes/variant-3.js.map +1 -1
  797. package/dist/features/ui/avatar/layers/eyes/variant-4.js.map +1 -1
  798. package/dist/features/ui/avatar/layers/eyes/variant-5.js.map +1 -1
  799. package/dist/features/ui/avatar/layers/eyes/variant-6.js.map +1 -1
  800. package/dist/features/ui/avatar/layers/eyes/variant-7.js.map +1 -1
  801. package/dist/features/ui/avatar/layers/eyes/variant-8.js.map +1 -1
  802. package/dist/features/ui/avatar/layers/eyes/variant-9.js.map +1 -1
  803. package/dist/features/ui/avatar/layers/hair/variant-1.js.map +1 -1
  804. package/dist/features/ui/avatar/layers/hair/variant-10.js.map +1 -1
  805. package/dist/features/ui/avatar/layers/hair/variant-2.js.map +1 -1
  806. package/dist/features/ui/avatar/layers/hair/variant-3.js.map +1 -1
  807. package/dist/features/ui/avatar/layers/hair/variant-4.js.map +1 -1
  808. package/dist/features/ui/avatar/layers/hair/variant-5.js.map +1 -1
  809. package/dist/features/ui/avatar/layers/hair/variant-6.js.map +1 -1
  810. package/dist/features/ui/avatar/layers/hair/variant-7.js.map +1 -1
  811. package/dist/features/ui/avatar/layers/hair/variant-8.js.map +1 -1
  812. package/dist/features/ui/avatar/layers/hair/variant-9.js.map +1 -1
  813. package/dist/features/ui/avatar/layers/mouth/variant-1.js.map +1 -1
  814. package/dist/features/ui/avatar/layers/mouth/variant-10.js.map +1 -1
  815. package/dist/features/ui/avatar/layers/mouth/variant-11.js.map +1 -1
  816. package/dist/features/ui/avatar/layers/mouth/variant-12.js.map +1 -1
  817. package/dist/features/ui/avatar/layers/mouth/variant-13.js.map +1 -1
  818. package/dist/features/ui/avatar/layers/mouth/variant-14.js.map +1 -1
  819. package/dist/features/ui/avatar/layers/mouth/variant-15.js.map +1 -1
  820. package/dist/features/ui/avatar/layers/mouth/variant-16.js.map +1 -1
  821. package/dist/features/ui/avatar/layers/mouth/variant-17.js.map +1 -1
  822. package/dist/features/ui/avatar/layers/mouth/variant-18.js.map +1 -1
  823. package/dist/features/ui/avatar/layers/mouth/variant-2.js.map +1 -1
  824. package/dist/features/ui/avatar/layers/mouth/variant-3.js.map +1 -1
  825. package/dist/features/ui/avatar/layers/mouth/variant-4.js.map +1 -1
  826. package/dist/features/ui/avatar/layers/mouth/variant-5.js.map +1 -1
  827. package/dist/features/ui/avatar/layers/mouth/variant-6.js.map +1 -1
  828. package/dist/features/ui/avatar/layers/mouth/variant-7.js.map +1 -1
  829. package/dist/features/ui/avatar/layers/mouth/variant-8.js.map +1 -1
  830. package/dist/features/ui/avatar/layers/mouth/variant-9.js.map +1 -1
  831. package/dist/features/ui/buttons/button/button-styled.js.map +1 -1
  832. package/dist/features/ui/buttons/button/button.js.map +1 -1
  833. package/dist/features/ui/buttons/clickable/clickable.js.map +1 -1
  834. package/dist/features/ui/buttons/icon-button/icon-button-styled.js.map +1 -1
  835. package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
  836. package/dist/features/ui/buttons/text-button/text-button-styled.js.map +1 -1
  837. package/dist/features/ui/buttons/text-button/text-button.js.map +1 -1
  838. package/dist/features/ui/callout/callout.js.map +1 -1
  839. package/dist/features/ui/carousal/carousal.js.map +1 -1
  840. package/dist/features/ui/context/use-tracking-context.js.map +1 -1
  841. package/dist/features/ui/context-menu/context-menu.js.map +1 -1
  842. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -1
  843. package/dist/features/ui/drawer/drawer.js.map +1 -1
  844. package/dist/features/ui/error/error.js.map +1 -1
  845. package/dist/features/ui/grade-selector/grade-selector-styled.js.map +1 -1
  846. package/dist/features/ui/grade-selector/grade-selector.js.map +1 -1
  847. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  848. package/dist/features/ui/hooks/use-click-handler.js.map +1 -1
  849. package/dist/features/ui/hooks/use-context-menu-click-handler.js.map +1 -1
  850. package/dist/features/ui/hooks/use-response-handler.js.map +1 -1
  851. package/dist/features/ui/image/image.js.map +1 -1
  852. package/dist/features/ui/inputs/base-input/base-input-styled.js.map +1 -1
  853. package/dist/features/ui/inputs/base-input/base-input.js.map +1 -1
  854. package/dist/features/ui/inputs/base-select-input/base-select-input-styled.js.map +1 -1
  855. package/dist/features/ui/inputs/base-select-input/base-select-input.js.map +1 -1
  856. package/dist/features/ui/inputs/base-select-input/select-option/select-option.js.map +1 -1
  857. package/dist/features/ui/inputs/base-select-input/select-section/select-section.js.map +1 -1
  858. package/dist/features/ui/inputs/cascading-select-input/cascading-select-input.js.map +1 -1
  859. package/dist/features/ui/inputs/checkbox-input/checkbox-input-styled.js.map +1 -1
  860. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
  861. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
  862. package/dist/features/ui/inputs/google-places-search-input/google-places-search-input.js.map +1 -1
  863. package/dist/features/ui/inputs/num-range-input/num-range-input.js.map +1 -1
  864. package/dist/features/ui/inputs/percentile-input/percentile-input.js.map +1 -1
  865. package/dist/features/ui/inputs/percentile-input/percentile-styled.js.map +1 -1
  866. package/dist/features/ui/inputs/radio-input/radio-input.js.map +1 -1
  867. package/dist/features/ui/inputs/radio-input/radio-option/radio-option.js.map +1 -1
  868. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +1 -1
  869. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -1
  870. package/dist/features/ui/inputs/searchable-select-input/searchable-select-input.js.map +1 -1
  871. package/dist/features/ui/inputs/searchable-select-input/use-filtered-options.js.map +1 -1
  872. package/dist/features/ui/inputs/select-input/select-input.js.map +1 -1
  873. package/dist/features/ui/inputs/text-input/text-input-styled.js.map +1 -1
  874. package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
  875. package/dist/features/ui/layout/flex-view.js.map +1 -1
  876. package/dist/features/ui/loader/reverse-circular-bar/reverse-circular-bar.js.map +1 -1
  877. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  878. package/dist/features/ui/modals/modal-context.js.map +1 -1
  879. package/dist/features/ui/modals/modal-provider.js.map +1 -1
  880. package/dist/features/ui/modals/modal-styled.js +45 -13
  881. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  882. package/dist/features/ui/modals/modal.js +31 -31
  883. package/dist/features/ui/modals/modal.js.map +1 -1
  884. package/dist/features/ui/modals/use-modal-actions.js.map +1 -1
  885. package/dist/features/ui/modals/use-modal-params.js.map +1 -1
  886. package/dist/features/ui/nudge/nudge.js.map +1 -1
  887. package/dist/features/ui/perfect-hits/perfect-hits-styled.js.map +1 -1
  888. package/dist/features/ui/perfect-hits/perfect-hits.js.map +1 -1
  889. package/dist/features/ui/portal/portal.js.map +1 -1
  890. package/dist/features/ui/radio-cards/radio-card-option/radio-card-option.js.map +1 -1
  891. package/dist/features/ui/radio-cards/radio-cards.js.map +1 -1
  892. package/dist/features/ui/section-list/section-list.js.map +1 -1
  893. package/dist/features/ui/selection-cards/selection-card-option/selection-card-option-styled.js.map +1 -1
  894. package/dist/features/ui/selection-cards/selection-card-option/selection-card-option.js.map +1 -1
  895. package/dist/features/ui/selection-cards/selection-cards.js.map +1 -1
  896. package/dist/features/ui/separator/separator.js.map +1 -1
  897. package/dist/features/ui/stepper/stepper-styled.js.map +1 -1
  898. package/dist/features/ui/stepper/stepper.js.map +1 -1
  899. package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
  900. package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
  901. package/dist/features/ui/superscript/superscript-styled.js.map +1 -1
  902. package/dist/features/ui/superscript/superscript.js.map +1 -1
  903. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  904. package/dist/features/ui/tab/tab.js.map +1 -1
  905. package/dist/features/ui/tag/tag-styled.js.map +1 -1
  906. package/dist/features/ui/tag/tag.js.map +1 -1
  907. package/dist/features/ui/text/text.js.map +1 -1
  908. package/dist/features/ui/theme/z-index.js.map +1 -1
  909. package/dist/features/ui/time-left-timeline/time-left-timeline-styled.js.map +1 -1
  910. package/dist/features/ui/time-left-timeline/time-left-timeline.js +11 -11
  911. package/dist/features/ui/time-left-timeline/time-left-timeline.js.map +1 -1
  912. package/dist/features/ui/video/index.js.map +1 -1
  913. package/dist/features/utils/utils.js +1 -1
  914. package/dist/features/utils/utils.js.map +1 -1
  915. package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js.map +1 -1
  916. package/dist/features/wins-dashboard/belts-elements-stickers/belts.js.map +1 -1
  917. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js +17 -17
  918. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js.map +1 -1
  919. package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js.map +1 -1
  920. package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js.map +1 -1
  921. package/dist/features/wins-dashboard/constants.js.map +1 -1
  922. package/dist/features/wins-dashboard/header/wins-header.js.map +1 -1
  923. package/dist/features/wins-dashboard/student-badges/animated-tabbar.js.map +1 -1
  924. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -1
  925. package/dist/features/wins-dashboard/student-badges/student-badge.js.map +1 -1
  926. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +1 -1
  927. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader-context.js.map +1 -1
  928. package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
  929. package/dist/features/worksheet/learnosity-preloader/use-download-script.js.map +1 -1
  930. package/dist/features/worksheet/learnosity-preloader/use-is-learnosity-loaded.js.map +1 -1
  931. package/dist/features/worksheet/user-pointer-pin/hooks/use-user-location.js.map +1 -1
  932. package/dist/features/worksheet/user-pointer-pin/user-pin.js.map +1 -1
  933. package/dist/features/worksheet/worksheet/api/attempt-responses.js.map +1 -1
  934. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  935. package/dist/features/worksheet/worksheet/hooks/use-learnosity-append.js.map +1 -1
  936. package/dist/features/worksheet/worksheet/hooks/use-learnosity.js.map +1 -1
  937. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  938. package/dist/features/worksheet/worksheet/hooks/use-time-on-questions.js.map +1 -1
  939. package/dist/features/worksheet/worksheet/hooks/use-worksheet-data-helper.js.map +1 -1
  940. package/dist/features/worksheet/worksheet/question-tips.js.map +1 -1
  941. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  942. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  943. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-intervention.js.map +1 -1
  944. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review-available.js.map +1 -1
  945. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-review.js.map +1 -1
  946. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/exit-ticket-student-submission.js.map +1 -1
  947. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-assignment.js.map +1 -1
  948. package/dist/features/worksheet/worksheet/worksheet-blocker/blockers/optional-items-skip.js.map +1 -1
  949. package/dist/features/worksheet/worksheet/worksheet-blocker/worksheet-blocker.js.map +1 -1
  950. package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
  951. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  952. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-navigation/worksheet-item-navigation.js.map +1 -1
  953. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number-styled.js.map +1 -1
  954. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-item-number/worksheet-item-number.js.map +1 -1
  955. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-navigation.js.map +1 -1
  956. package/dist/features/worksheet/worksheet/worksheet-navigation/worksheet-section-navigation/worksheet-section-navigation.js.map +1 -1
  957. package/dist/features/worksheet/worksheet/worksheet-permissions/error.js.map +1 -1
  958. package/dist/features/worksheet/worksheet/worksheet-question/header/header-tags.js.map +1 -1
  959. package/dist/features/worksheet/worksheet/worksheet-question/header/header.js.map +1 -1
  960. package/dist/features/worksheet/worksheet/worksheet-question/header/validated-animation.js.map +1 -1
  961. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  962. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop-styled.js.map +1 -1
  963. package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
  964. package/dist/features/worksheet/worksheet/worksheet-question/subjective-feedback.js.map +1 -1
  965. package/dist/features/worksheet/worksheet/worksheet-question/subjective-review.js.map +1 -1
  966. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  967. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  968. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -1
  969. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  970. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  971. package/dist/features/worksheet/worksheet/worksheet-questions-summary/worksheet-questions-summary.js.map +1 -1
  972. package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
  973. package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -1
  974. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -1
  975. package/dist/features/worksheet/worksheet/worksheet-summary/worksheet-summary.js.map +1 -1
  976. package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
  977. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  978. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  979. package/dist/features/worksheet/worksheet-preview/api/get-dynamic-sheet.js.map +1 -1
  980. package/dist/features/worksheet/worksheet-preview/api/get-preview-worksheet.js.map +1 -1
  981. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  982. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  983. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js.map +1 -1
  984. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  985. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  986. package/dist/index.d.ts +255 -300
  987. package/dist/index.js +292 -301
  988. package/dist/index.js.map +1 -1
  989. package/dist/static/learning-session-grid-bg-mobile.8d2b7258.gif +0 -0
  990. package/dist/static/way-forward-grid-bg-mobile.374043d7.gif +0 -0
  991. package/dist/static/your-goals-grid-bg-mobile.62557024.gif +0 -0
  992. package/package.json +1 -1
  993. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +0 -12
  994. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +0 -1
  995. package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js +0 -32
  996. package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js.map +0 -1
  997. package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js +0 -72
  998. package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js.map +0 -1
  999. package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js +0 -34
  1000. package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js.map +0 -1
  1001. package/dist/features/stickers/stickers-effects/constants.js +0 -26
  1002. package/dist/features/stickers/stickers-effects/constants.js.map +0 -1
  1003. package/dist/features/stickers/stickers-effects/context/sticker-provider.js +0 -28
  1004. package/dist/features/stickers/stickers-effects/context/sticker-provider.js.map +0 -1
  1005. package/dist/features/stickers/stickers-effects/hooks/use-stickers.js +0 -12
  1006. package/dist/features/stickers/stickers-effects/hooks/use-stickers.js.map +0 -1
  1007. package/dist/features/stickers/stickers-effects/stickers-effects-types.js +0 -6
  1008. package/dist/features/stickers/stickers-effects/stickers-effects-types.js.map +0 -1
  1009. package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +0 -1
  1010. package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +0 -1
  1011. package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +0 -1
  1012. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +0 -29
  1013. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +0 -1
  1014. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +0 -132
  1015. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +0 -1
  1016. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +0 -11
  1017. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +0 -1
  1018. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +0 -19
  1019. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +0 -1
  1020. package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +0 -1
  1021. package/dist/features/trial-session/comps/pla/session-status/session-status.js +0 -127
  1022. package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +0 -1
  1023. package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +0 -1
  1024. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +0 -53
  1025. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +0 -1
  1026. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +0 -1
  1027. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +0 -56
  1028. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +0 -1
  1029. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +0 -1
  1030. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +0 -1
  1031. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +0 -1
  1032. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +0 -1
  1033. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +0 -10
  1034. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +0 -1
  1035. package/dist/node_modules/date-fns/differenceInMilliseconds.js +0 -9
  1036. package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +0 -1
  1037. package/dist/node_modules/date-fns/differenceInSeconds.js +0 -11
  1038. package/dist/node_modules/date-fns/differenceInSeconds.js.map +0 -1
  1039. package/dist/static/trophy.a8ea85ef.json +0 -6813
  1040. /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-constants.js +0 -0
  1041. /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"use-inclass-message-broker.js","sources":["../../../../../src/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.ts"],"sourcesContent":["import type {\n IUseInclassMessageBroker,\n TInclassChannelMetadata,\n TInclassMessage,\n} from './use-inclass-message-broker-types';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useCallback, useMemo } from 'react';\n\nconst CHANNEL_MESSAGES_TTL = 3; // 3 hours\n\nconst useInClassMessageBroker: IUseInclassMessageBroker = options => {\n const { studentClassroomId, onMessageReceive, logger } = options;\n const channelId = `inclass_${studentClassroomId}`;\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: CHANNEL_MESSAGES_TTL,\n noHistory: true,\n logger,\n }),\n [channelId, logger],\n );\n\n const handleMessageReceive = useCallback(\n (newMessages: Array<IChannelMessage<TInclassMessage>>, initialData?: boolean) => {\n onMessageReceive?.(\n newMessages.map(channelMessage => channelMessage.message.payload),\n initialData,\n );\n },\n [onMessageReceive],\n );\n\n const {\n channel,\n publish,\n channelStatus,\n channelMetadata,\n setChannelMetadata,\n removeChannelMetadata,\n } = useMessageBrokerChannel<TInclassMessage, TInclassChannelMetadata>({\n channelOptions,\n consumerFn: onMessageReceive ? handleMessageReceive : undefined,\n metadataRequired: true,\n enabled: studentClassroomId !== undefined,\n });\n\n const closeChannel = useCallback(() => {\n channel?.destroyChannel();\n }, [channel]);\n\n return {\n channelStatus,\n channelMetadata,\n setChannelMetadata,\n removeChannelMetadata,\n publish,\n closeChannel,\n };\n};\n\nexport default useInClassMessageBroker;\n"],"names":["CHANNEL_MESSAGES_TTL","useInClassMessageBroker","options","studentClassroomId","onMessageReceive","logger","channelId","channelOptions","useMemo","handleMessageReceive","useCallback","newMessages","initialData","channelMessage","channel","publish","channelStatus","channelMetadata","setChannelMetadata","removeChannelMetadata","useMessageBrokerChannel","closeChannel","useInClassMessageBroker$1"],"mappings":";;AASA,MAAMA,IAAuB,GAEvBC,IAAoD,CAAWC,MAAA;AACnE,QAAM,EAAE,oBAAAC,GAAoB,kBAAAC,GAAkB,QAAAC,EAAA,IAAWH,GACnDI,IAAY,WAAWH,CAAkB,IACzCI,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAF;AAAA,MACA,KAAKN;AAAA,MACL,WAAW;AAAA,MACX,QAAAK;AAAA,IAAA;AAAA,IAEF,CAACC,GAAWD,CAAM;AAAA,EAAA,GAGdI,IAAuBC;AAAA,IAC3B,CAACC,GAAsDC,MAA0B;AAC/E,MAAAR,KAAA,QAAAA;AAAA,QACEO,EAAY,IAAI,CAAkBE,MAAAA,EAAe,QAAQ,OAAO;AAAA,QAChED;AAAA;AAAA,IAEJ;AAAA,IACA,CAACR,CAAgB;AAAA,EAAA,GAGb;AAAA,IACJ,SAAAU;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,uBAAAC;AAAA,MACEC,EAAkE;AAAA,IACpE,gBAAAb;AAAA,IACA,YAAYH,IAAmBK,IAAuB;AAAA,IACtD,kBAAkB;AAAA,IAClB,SAASN,MAAuB;AAAA,EAAA,CACjC,GAEKkB,IAAeX,EAAY,MAAM;AACrC,IAAAI,KAAA,QAAAA,EAAS;AAAA,EAAe,GACvB,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,eAAAE;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,SAAAJ;AAAA,IACA,cAAAM;AAAA,EAAA;AAEJ,GAEAC,IAAerB;"}
1
+ {"version":3,"file":"use-inclass-message-broker.js","sources":["../../../../../src/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.ts"],"sourcesContent":["import { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useCallback, useMemo } from 'react';\n\nimport type {\n IUseInclassMessageBroker,\n TInclassChannelMetadata,\n TInclassMessage,\n} from './use-inclass-message-broker-types';\n\nconst CHANNEL_MESSAGES_TTL = 3; // 3 hours\n\nconst useInClassMessageBroker: IUseInclassMessageBroker = options => {\n const { studentClassroomId, onMessageReceive, logger } = options;\n const channelId = `inclass_${studentClassroomId}`;\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: CHANNEL_MESSAGES_TTL,\n noHistory: true,\n logger,\n }),\n [channelId, logger],\n );\n\n const handleMessageReceive = useCallback(\n (newMessages: Array<IChannelMessage<TInclassMessage>>, initialData?: boolean) => {\n onMessageReceive?.(\n newMessages.map(channelMessage => channelMessage.message.payload),\n initialData,\n );\n },\n [onMessageReceive],\n );\n\n const {\n channel,\n publish,\n channelStatus,\n channelMetadata,\n setChannelMetadata,\n removeChannelMetadata,\n } = useMessageBrokerChannel<TInclassMessage, TInclassChannelMetadata>({\n channelOptions,\n consumerFn: onMessageReceive ? handleMessageReceive : undefined,\n metadataRequired: true,\n enabled: studentClassroomId !== undefined,\n });\n\n const closeChannel = useCallback(() => {\n channel?.destroyChannel();\n }, [channel]);\n\n return {\n channelStatus,\n channelMetadata,\n setChannelMetadata,\n removeChannelMetadata,\n publish,\n closeChannel,\n };\n};\n\nexport default useInClassMessageBroker;\n"],"names":["CHANNEL_MESSAGES_TTL","useInClassMessageBroker","options","studentClassroomId","onMessageReceive","logger","channelId","channelOptions","useMemo","handleMessageReceive","useCallback","newMessages","initialData","channelMessage","channel","publish","channelStatus","channelMetadata","setChannelMetadata","removeChannelMetadata","useMessageBrokerChannel","closeChannel","useInClassMessageBroker$1"],"mappings":";;AASA,MAAMA,IAAuB,GAEvBC,IAAoD,CAAWC,MAAA;AACnE,QAAM,EAAE,oBAAAC,GAAoB,kBAAAC,GAAkB,QAAAC,EAAA,IAAWH,GACnDI,IAAY,WAAWH,CAAkB,IACzCI,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAF;AAAA,MACA,KAAKN;AAAA,MACL,WAAW;AAAA,MACX,QAAAK;AAAA,IAAA;AAAA,IAEF,CAACC,GAAWD,CAAM;AAAA,EAAA,GAGdI,IAAuBC;AAAA,IAC3B,CAACC,GAAsDC,MAA0B;AAC/E,MAAAR,KAAA,QAAAA;AAAA,QACEO,EAAY,IAAI,CAAkBE,MAAAA,EAAe,QAAQ,OAAO;AAAA,QAChED;AAAA;AAAA,IAEJ;AAAA,IACA,CAACR,CAAgB;AAAA,EAAA,GAGb;AAAA,IACJ,SAAAU;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,uBAAAC;AAAA,MACEC,EAAkE;AAAA,IACpE,gBAAAb;AAAA,IACA,YAAYH,IAAmBK,IAAuB;AAAA,IACtD,kBAAkB;AAAA,IAClB,SAASN,MAAuB;AAAA,EAAA,CACjC,GAEKkB,IAAeX,EAAY,MAAM;AACrC,IAAAI,KAAA,QAAAA,EAAS;AAAA,EAAe,GACvB,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,eAAAE;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,SAAAJ;AAAA,IACA,cAAAM;AAAA,EAAA;AAEJ,GAEAC,IAAerB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-trial-session-message-broker.js","sources":["../../../../../src/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.ts"],"sourcesContent":["import type {\n ITrialSessionMetadata,\n IUseTrialSessionMessageBroker,\n TTrialSessionMessage,\n} from './use-trial-session-message-broker-types';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useCallback, useMemo } from 'react';\n\nconst CHANNEL_MESSAGES_TTL = 3; // 3 hours\n\nconst useTrialSessionMessageBroker: IUseTrialSessionMessageBroker = options => {\n const { teacherClassroomId, onMessageReceive, logger } = options;\n const channelId = `trial_v3_${teacherClassroomId}`;\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: CHANNEL_MESSAGES_TTL,\n noHistory: true,\n logger,\n }),\n [channelId, logger],\n );\n\n const handleMessageReceive = useCallback(\n (newMessages: Array<IChannelMessage<TTrialSessionMessage>>, initialData?: boolean) => {\n onMessageReceive?.(\n newMessages.map(channelMessage => channelMessage.message.payload),\n initialData,\n );\n },\n [onMessageReceive],\n );\n\n const { channel, publish, channelStatus, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<TTrialSessionMessage, ITrialSessionMetadata>({\n channelOptions,\n consumerFn: onMessageReceive ? handleMessageReceive : undefined,\n metadataRequired: true,\n enabled: teacherClassroomId !== undefined,\n });\n\n const closeChannel = useCallback(() => {\n channel?.destroyChannel();\n }, [channel]);\n\n return {\n publish,\n closeChannel,\n setChannelMetadata,\n channelStatus,\n channelMetadata,\n };\n};\n\nexport default useTrialSessionMessageBroker;\n"],"names":["CHANNEL_MESSAGES_TTL","useTrialSessionMessageBroker","options","teacherClassroomId","onMessageReceive","logger","channelId","channelOptions","useMemo","handleMessageReceive","useCallback","newMessages","initialData","channelMessage","channel","publish","channelStatus","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useTrialSessionMessageBroker$1"],"mappings":";;AASA,MAAMA,IAAuB,GAEvBC,IAA8D,CAAWC,MAAA;AAC7E,QAAM,EAAE,oBAAAC,GAAoB,kBAAAC,GAAkB,QAAAC,EAAA,IAAWH,GACnDI,IAAY,YAAYH,CAAkB,IAC1CI,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAF;AAAA,MACA,KAAKN;AAAA,MACL,WAAW;AAAA,MACX,QAAAK;AAAA,IAAA;AAAA,IAEF,CAACC,GAAWD,CAAM;AAAA,EAAA,GAGdI,IAAuBC;AAAA,IAC3B,CAACC,GAA2DC,MAA0B;AACpF,MAAAR,KAAA,QAAAA;AAAA,QACEO,EAAY,IAAI,CAAkBE,MAAAA,EAAe,QAAQ,OAAO;AAAA,QAChED;AAAA;AAAA,IAEJ;AAAA,IACA,CAACR,CAAgB;AAAA,EAAA,GAGb,EAAE,SAAAU,GAAS,SAAAC,GAAS,eAAAC,GAAe,iBAAAC,GAAiB,oBAAAC,MACxDC,EAAqE;AAAA,IACnE,gBAAAZ;AAAA,IACA,YAAYH,IAAmBK,IAAuB;AAAA,IACtD,kBAAkB;AAAA,IAClB,SAASN,MAAuB;AAAA,EAAA,CACjC,GAEGiB,IAAeV,EAAY,MAAM;AACrC,IAAAI,KAAA,QAAAA,EAAS;AAAA,EAAe,GACvB,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,SAAAC;AAAA,IACA,cAAAK;AAAA,IACA,oBAAAF;AAAA,IACA,eAAAF;AAAA,IACA,iBAAAC;AAAA,EAAA;AAEJ,GAEAI,IAAepB;"}
1
+ {"version":3,"file":"use-trial-session-message-broker.js","sources":["../../../../../src/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.ts"],"sourcesContent":["import { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useCallback, useMemo } from 'react';\n\nimport type {\n ITrialSessionMetadata,\n IUseTrialSessionMessageBroker,\n TTrialSessionMessage,\n} from './use-trial-session-message-broker-types';\n\nconst CHANNEL_MESSAGES_TTL = 3; // 3 hours\n\nconst useTrialSessionMessageBroker: IUseTrialSessionMessageBroker = options => {\n const { teacherClassroomId, onMessageReceive, logger } = options;\n const channelId = `trial_v3_${teacherClassroomId}`;\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: CHANNEL_MESSAGES_TTL,\n noHistory: true,\n logger,\n }),\n [channelId, logger],\n );\n\n const handleMessageReceive = useCallback(\n (newMessages: Array<IChannelMessage<TTrialSessionMessage>>, initialData?: boolean) => {\n onMessageReceive?.(\n newMessages.map(channelMessage => channelMessage.message.payload),\n initialData,\n );\n },\n [onMessageReceive],\n );\n\n const { channel, publish, channelStatus, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<TTrialSessionMessage, ITrialSessionMetadata>({\n channelOptions,\n consumerFn: onMessageReceive ? handleMessageReceive : undefined,\n metadataRequired: true,\n enabled: teacherClassroomId !== undefined,\n });\n\n const closeChannel = useCallback(() => {\n channel?.destroyChannel();\n }, [channel]);\n\n return {\n publish,\n closeChannel,\n setChannelMetadata,\n channelStatus,\n channelMetadata,\n };\n};\n\nexport default useTrialSessionMessageBroker;\n"],"names":["CHANNEL_MESSAGES_TTL","useTrialSessionMessageBroker","options","teacherClassroomId","onMessageReceive","logger","channelId","channelOptions","useMemo","handleMessageReceive","useCallback","newMessages","initialData","channelMessage","channel","publish","channelStatus","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useTrialSessionMessageBroker$1"],"mappings":";;AASA,MAAMA,IAAuB,GAEvBC,IAA8D,CAAWC,MAAA;AAC7E,QAAM,EAAE,oBAAAC,GAAoB,kBAAAC,GAAkB,QAAAC,EAAA,IAAWH,GACnDI,IAAY,YAAYH,CAAkB,IAC1CI,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAF;AAAA,MACA,KAAKN;AAAA,MACL,WAAW;AAAA,MACX,QAAAK;AAAA,IAAA;AAAA,IAEF,CAACC,GAAWD,CAAM;AAAA,EAAA,GAGdI,IAAuBC;AAAA,IAC3B,CAACC,GAA2DC,MAA0B;AACpF,MAAAR,KAAA,QAAAA;AAAA,QACEO,EAAY,IAAI,CAAkBE,MAAAA,EAAe,QAAQ,OAAO;AAAA,QAChED;AAAA;AAAA,IAEJ;AAAA,IACA,CAACR,CAAgB;AAAA,EAAA,GAGb,EAAE,SAAAU,GAAS,SAAAC,GAAS,eAAAC,GAAe,iBAAAC,GAAiB,oBAAAC,MACxDC,EAAqE;AAAA,IACnE,gBAAAZ;AAAA,IACA,YAAYH,IAAmBK,IAAuB;AAAA,IACtD,kBAAkB;AAAA,IAClB,SAASN,MAAuB;AAAA,EAAA,CACjC,GAEGiB,IAAeV,EAAY,MAAM;AACrC,IAAAI,KAAA,QAAAA,EAAS;AAAA,EAAe,GACvB,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,SAAAC;AAAA,IACA,cAAAK;AAAA,IACA,oBAAAF;AAAA,IACA,eAAAF;AAAA,IACA,iBAAAC;AAAA,EAAA;AAEJ,GAEAI,IAAepB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../../../src/features/communication/pub-sub/core.ts"],"sourcesContent":["import type { TInclassMessage } from '../hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport type { TAction, TCallback } from './types';\n\nimport isEqual from 'lodash.isequal';\n\ninterface ISubscription {\n eventsMap: {\n [eventName: string]: Record<string, unknown> | null;\n };\n callback: TCallback;\n}\n\nclass EventListener {\n private _eventListener: {\n [subscriptionId: string]: ISubscription;\n } = {};\n\n unsubscribe(subscriptionId: string) {\n delete this._eventListener[subscriptionId];\n }\n\n subscribe(events: TAction[] | TAction, callback: TCallback, subscriptionId: string) {\n if (events.length === 0) return;\n\n const eventsList = (Array.isArray(events[0]) ? events : [events]) as TAction[];\n\n const subscriptionListener: ISubscription = { callback, eventsMap: {} };\n\n eventsList.forEach(event => {\n const [eventName, eventPayload] = event;\n\n subscriptionListener.eventsMap = {\n ...subscriptionListener.eventsMap,\n [eventName]: eventPayload ?? null,\n };\n });\n\n this._eventListener[subscriptionId] = subscriptionListener;\n }\n\n isPayloadMatched(matchPayload: Record<string, unknown>, eventPayload: Record<string, unknown>) {\n return Object.entries(matchPayload).some(([key, matchPayloadValue]) => {\n const eventPayloadValue = eventPayload[key];\n\n if (Array.isArray(eventPayloadValue)) {\n if (Array.isArray(matchPayloadValue)) {\n const isArraySubset = eventPayloadValue.every(i => matchPayloadValue.includes(i));\n\n if (isArraySubset) return true;\n }\n\n return false;\n }\n\n const areValuesEqual = isEqual(matchPayloadValue, eventPayloadValue);\n\n return areValuesEqual;\n });\n }\n\n notifySubscribers(subscriptionId: string, newMessages: TInclassMessage[]) {\n if (newMessages.length === 0) return;\n\n const { eventsMap, callback } = this._eventListener[subscriptionId] || {};\n const matchedMessages: TInclassMessage[] = [];\n\n if (eventsMap) {\n newMessages.forEach(message => {\n const { eventName, eventPayload } = message;\n const payload = eventsMap[eventName];\n\n if (payload === null) {\n matchedMessages.push(message);\n } else if (payload && this.isPayloadMatched(payload, eventPayload)) {\n matchedMessages.push(message);\n }\n });\n }\n\n if (matchedMessages.length > 0 && callback) {\n callback(matchedMessages);\n }\n }\n}\n\nconst eventListener = new EventListener();\n\nexport default eventListener;\n"],"names":["EventListener","__publicField","subscriptionId","events","callback","eventsList","subscriptionListener","event","eventName","eventPayload","matchPayload","key","matchPayloadValue","eventPayloadValue","i","isEqual","newMessages","eventsMap","matchedMessages","message","payload","eventListener"],"mappings":";;;;AAYA,MAAMA,EAAc;AAAA,EAApB;AACU,IAAAC,EAAA,wBAEJ,CAAA;AAAA;AAAA,EAEJ,YAAYC,GAAwB;AAC3B,WAAA,KAAK,eAAeA,CAAc;AAAA,EAC3C;AAAA,EAEA,UAAUC,GAA6BC,GAAqBF,GAAwB;AAC9E,QAAAC,EAAO,WAAW,EAAG;AAEnB,UAAAE,IAAc,MAAM,QAAQF,EAAO,CAAC,CAAC,IAAIA,IAAS,CAACA,CAAM,GAEzDG,IAAsC,EAAE,UAAAF,GAAU,WAAW,CAAG,EAAA;AAEtE,IAAAC,EAAW,QAAQ,CAASE,MAAA;AACpB,YAAA,CAACC,GAAWC,CAAY,IAAIF;AAElC,MAAAD,EAAqB,YAAY;AAAA,QAC/B,GAAGA,EAAqB;AAAA,QACxB,CAACE,CAAS,GAAGC,KAAgB;AAAA,MAAA;AAAA,IAC/B,CACD,GAEI,KAAA,eAAeP,CAAc,IAAII;AAAA,EACxC;AAAA,EAEA,iBAAiBI,GAAuCD,GAAuC;AACtF,WAAA,OAAO,QAAQC,CAAY,EAAE,KAAK,CAAC,CAACC,GAAKC,CAAiB,MAAM;AAC/D,YAAAC,IAAoBJ,EAAaE,CAAG;AAEtC,aAAA,MAAM,QAAQE,CAAiB,IAC7B,SAAM,QAAQD,CAAiB,KACXC,EAAkB,MAAM,OAAKD,EAAkB,SAASE,CAAC,CAAC,KAQ7DC,EAAQH,GAAmBC,CAAiB;AAAA,IAE5D,CACR;AAAA,EACH;AAAA,EAEA,kBAAkBX,GAAwBc,GAAgC;AACpE,QAAAA,EAAY,WAAW,EAAG;AAExB,UAAA,EAAE,WAAAC,GAAW,UAAAb,EAAS,IAAI,KAAK,eAAeF,CAAc,KAAK,IACjEgB,IAAqC,CAAA;AAE3C,IAAID,KACFD,EAAY,QAAQ,CAAWG,MAAA;AACvB,YAAA,EAAE,WAAAX,GAAW,cAAAC,EAAiB,IAAAU,GAC9BC,IAAUH,EAAUT,CAAS;AAEnC,OAAIY,MAAY,QAELA,KAAW,KAAK,iBAAiBA,GAASX,CAAY,MAC/DS,EAAgB,KAAKC,CAAO;AAAA,IAC9B,CACD,GAGCD,EAAgB,SAAS,KAAKd,KAChCA,EAASc,CAAe;AAAA,EAE5B;AACF;AAEM,MAAAG,IAAgB,IAAIrB,EAAc;"}
1
+ {"version":3,"file":"core.js","sources":["../../../../src/features/communication/pub-sub/core.ts"],"sourcesContent":["import isEqual from 'lodash.isequal';\n\nimport type { TInclassMessage } from '../hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport type { TAction, TCallback } from './types';\n\ninterface ISubscription {\n eventsMap: {\n [eventName: string]: Record<string, unknown> | null;\n };\n callback: TCallback;\n}\n\nclass EventListener {\n private _eventListener: {\n [subscriptionId: string]: ISubscription;\n } = {};\n\n unsubscribe(subscriptionId: string) {\n delete this._eventListener[subscriptionId];\n }\n\n subscribe(events: TAction[] | TAction, callback: TCallback, subscriptionId: string) {\n if (events.length === 0) return;\n\n const eventsList = (Array.isArray(events[0]) ? events : [events]) as TAction[];\n\n const subscriptionListener: ISubscription = { callback, eventsMap: {} };\n\n eventsList.forEach(event => {\n const [eventName, eventPayload] = event;\n\n subscriptionListener.eventsMap = {\n ...subscriptionListener.eventsMap,\n [eventName]: eventPayload ?? null,\n };\n });\n\n this._eventListener[subscriptionId] = subscriptionListener;\n }\n\n isPayloadMatched(matchPayload: Record<string, unknown>, eventPayload: Record<string, unknown>) {\n return Object.entries(matchPayload).some(([key, matchPayloadValue]) => {\n const eventPayloadValue = eventPayload[key];\n\n if (Array.isArray(eventPayloadValue)) {\n if (Array.isArray(matchPayloadValue)) {\n const isArraySubset = eventPayloadValue.every(i => matchPayloadValue.includes(i));\n\n if (isArraySubset) return true;\n }\n\n return false;\n }\n\n const areValuesEqual = isEqual(matchPayloadValue, eventPayloadValue);\n\n return areValuesEqual;\n });\n }\n\n notifySubscribers(subscriptionId: string, newMessages: TInclassMessage[]) {\n if (newMessages.length === 0) return;\n\n const { eventsMap, callback } = this._eventListener[subscriptionId] || {};\n const matchedMessages: TInclassMessage[] = [];\n\n if (eventsMap) {\n newMessages.forEach(message => {\n const { eventName, eventPayload } = message;\n const payload = eventsMap[eventName];\n\n if (payload === null) {\n matchedMessages.push(message);\n } else if (payload && this.isPayloadMatched(payload, eventPayload)) {\n matchedMessages.push(message);\n }\n });\n }\n\n if (matchedMessages.length > 0 && callback) {\n callback(matchedMessages);\n }\n }\n}\n\nconst eventListener = new EventListener();\n\nexport default eventListener;\n"],"names":["EventListener","__publicField","subscriptionId","events","callback","eventsList","subscriptionListener","event","eventName","eventPayload","matchPayload","key","matchPayloadValue","eventPayloadValue","i","isEqual","newMessages","eventsMap","matchedMessages","message","payload","eventListener"],"mappings":";;;;AAYA,MAAMA,EAAc;AAAA,EAApB;AACU,IAAAC,EAAA,wBAEJ,CAAA;AAAA;AAAA,EAEJ,YAAYC,GAAwB;AAC3B,WAAA,KAAK,eAAeA,CAAc;AAAA,EAC3C;AAAA,EAEA,UAAUC,GAA6BC,GAAqBF,GAAwB;AAC9E,QAAAC,EAAO,WAAW,EAAG;AAEnB,UAAAE,IAAc,MAAM,QAAQF,EAAO,CAAC,CAAC,IAAIA,IAAS,CAACA,CAAM,GAEzDG,IAAsC,EAAE,UAAAF,GAAU,WAAW,CAAG,EAAA;AAEtE,IAAAC,EAAW,QAAQ,CAASE,MAAA;AACpB,YAAA,CAACC,GAAWC,CAAY,IAAIF;AAElC,MAAAD,EAAqB,YAAY;AAAA,QAC/B,GAAGA,EAAqB;AAAA,QACxB,CAACE,CAAS,GAAGC,KAAgB;AAAA,MAAA;AAAA,IAC/B,CACD,GAEI,KAAA,eAAeP,CAAc,IAAII;AAAA,EACxC;AAAA,EAEA,iBAAiBI,GAAuCD,GAAuC;AACtF,WAAA,OAAO,QAAQC,CAAY,EAAE,KAAK,CAAC,CAACC,GAAKC,CAAiB,MAAM;AAC/D,YAAAC,IAAoBJ,EAAaE,CAAG;AAEtC,aAAA,MAAM,QAAQE,CAAiB,IAC7B,SAAM,QAAQD,CAAiB,KACXC,EAAkB,MAAM,OAAKD,EAAkB,SAASE,CAAC,CAAC,KAQ7DC,EAAQH,GAAmBC,CAAiB;AAAA,IAE5D,CACR;AAAA,EACH;AAAA,EAEA,kBAAkBX,GAAwBc,GAAgC;AACpE,QAAAA,EAAY,WAAW,EAAG;AAExB,UAAA,EAAE,WAAAC,GAAW,UAAAb,EAAS,IAAI,KAAK,eAAeF,CAAc,KAAK,IACjEgB,IAAqC,CAAA;AAE3C,IAAID,KACFD,EAAY,QAAQ,CAAWG,MAAA;AACvB,YAAA,EAAE,WAAAX,GAAW,cAAAC,EAAiB,IAAAU,GAC9BC,IAAUH,EAAUT,CAAS;AAEnC,OAAIY,MAAY,QAELA,KAAW,KAAK,iBAAiBA,GAASX,CAAY,MAC/DS,EAAgB,KAAKC,CAAO;AAAA,IAC9B,CACD,GAGCD,EAAgB,SAAS,KAAKd,KAChCA,EAASc,CAAe;AAAA,EAE5B;AACF;AAEM,MAAAG,IAAgB,IAAIrB,EAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../src/features/communication/pub-sub/hooks.ts"],"sourcesContent":["import type { TInclassMessage } from '../hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport type { TActionListenerOptions } from './types';\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport useInClassMessageBroker from '../hooks/use-inclass-message-broker/use-inclass-message-broker';\nimport eventListener from './core';\n\nconst useInClassActionListener = (\n { studentClassroomId, actions, callback }: TActionListenerOptions,\n enabled: boolean = true,\n) => {\n const [subscriptionId] = useState(uuidv4);\n\n const onMessagesReceived = useCallback(\n (newMessages: TInclassMessage[]) => {\n eventListener.notifySubscribers(subscriptionId, newMessages);\n },\n [subscriptionId],\n );\n\n useEffect(() => {\n if (enabled === false) {\n eventListener.unsubscribe(subscriptionId);\n } else {\n eventListener.subscribe(actions, callback, subscriptionId);\n }\n\n return () => {\n eventListener.unsubscribe(subscriptionId);\n };\n }, [actions, callback, enabled, subscriptionId]);\n\n useInClassMessageBroker({ studentClassroomId, onMessageReceive: onMessagesReceived });\n};\n\nconst useInClassActionDispatcher = ({\n studentClassroomId,\n}: {\n studentClassroomId: string | undefined;\n}) => {\n const { publish } = useInClassMessageBroker({ studentClassroomId });\n\n const dispatchInClassAction = useCallback(\n (message: TInclassMessage) => {\n publish?.(message);\n },\n [publish],\n );\n\n return { dispatchInClassAction };\n};\n\nexport { useInClassActionDispatcher, useInClassActionListener };\n"],"names":["useInClassActionListener","studentClassroomId","actions","callback","enabled","subscriptionId","useState","uuidv4","onMessagesReceived","useCallback","newMessages","eventListener","useEffect","useInClassMessageBroker","useInClassActionDispatcher","publish","message"],"mappings":";;;;AASM,MAAAA,IAA2B,CAC/B,EAAE,oBAAAC,GAAoB,SAAAC,GAAS,UAAAC,EAAS,GACxCC,IAAmB,OAChB;AACH,QAAM,CAACC,CAAc,IAAIC,EAASC,CAAM,GAElCC,IAAqBC;AAAA,IACzB,CAACC,MAAmC;AACpB,MAAAC,EAAA,kBAAkBN,GAAgBK,CAAW;AAAA,IAC7D;AAAA,IACA,CAACL,CAAc;AAAA,EAAA;AAGjB,EAAAO,EAAU,OACJR,MAAY,KACdO,EAAc,YAAYN,CAAc,IAE1BM,EAAA,UAAUT,GAASC,GAAUE,CAAc,GAGpD,MAAM;AACX,IAAAM,EAAc,YAAYN,CAAc;AAAA,EAAA,IAEzC,CAACH,GAASC,GAAUC,GAASC,CAAc,CAAC,GAE/CQ,EAAwB,EAAE,oBAAAZ,GAAoB,kBAAkBO,EAAoB,CAAA;AACtF,GAEMM,IAA6B,CAAC;AAAA,EAClC,oBAAAb;AACF,MAEM;AACJ,QAAM,EAAE,SAAAc,EAAQ,IAAIF,EAAwB,EAAE,oBAAAZ,EAAoB,CAAA;AASlE,SAAO,EAAE,uBAPqBQ;AAAA,IAC5B,CAACO,MAA6B;AAC5B,MAAAD,KAAA,QAAAA,EAAUC;AAAA,IACZ;AAAA,IACA,CAACD,CAAO;AAAA,EAAA,EAGqB;AACjC;"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../src/features/communication/pub-sub/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport useInClassMessageBroker from '../hooks/use-inclass-message-broker/use-inclass-message-broker';\nimport type { TInclassMessage } from '../hooks/use-inclass-message-broker/use-inclass-message-broker-types';\nimport eventListener from './core';\nimport type { TActionListenerOptions } from './types';\n\nconst useInClassActionListener = (\n { studentClassroomId, actions, callback }: TActionListenerOptions,\n enabled: boolean = true,\n) => {\n const [subscriptionId] = useState(uuidv4);\n\n const onMessagesReceived = useCallback(\n (newMessages: TInclassMessage[]) => {\n eventListener.notifySubscribers(subscriptionId, newMessages);\n },\n [subscriptionId],\n );\n\n useEffect(() => {\n if (enabled === false) {\n eventListener.unsubscribe(subscriptionId);\n } else {\n eventListener.subscribe(actions, callback, subscriptionId);\n }\n\n return () => {\n eventListener.unsubscribe(subscriptionId);\n };\n }, [actions, callback, enabled, subscriptionId]);\n\n useInClassMessageBroker({ studentClassroomId, onMessageReceive: onMessagesReceived });\n};\n\nconst useInClassActionDispatcher = ({\n studentClassroomId,\n}: {\n studentClassroomId: string | undefined;\n}) => {\n const { publish } = useInClassMessageBroker({ studentClassroomId });\n\n const dispatchInClassAction = useCallback(\n (message: TInclassMessage) => {\n publish?.(message);\n },\n [publish],\n );\n\n return { dispatchInClassAction };\n};\n\nexport { useInClassActionDispatcher, useInClassActionListener };\n"],"names":["useInClassActionListener","studentClassroomId","actions","callback","enabled","subscriptionId","useState","uuidv4","onMessagesReceived","useCallback","newMessages","eventListener","useEffect","useInClassMessageBroker","useInClassActionDispatcher","publish","message"],"mappings":";;;;AAQM,MAAAA,IAA2B,CAC/B,EAAE,oBAAAC,GAAoB,SAAAC,GAAS,UAAAC,EAAS,GACxCC,IAAmB,OAChB;AACH,QAAM,CAACC,CAAc,IAAIC,EAASC,CAAM,GAElCC,IAAqBC;AAAA,IACzB,CAACC,MAAmC;AACpB,MAAAC,EAAA,kBAAkBN,GAAgBK,CAAW;AAAA,IAC7D;AAAA,IACA,CAACL,CAAc;AAAA,EAAA;AAGjB,EAAAO,EAAU,OACJR,MAAY,KACdO,EAAc,YAAYN,CAAc,IAE1BM,EAAA,UAAUT,GAASC,GAAUE,CAAc,GAGpD,MAAM;AACX,IAAAM,EAAc,YAAYN,CAAc;AAAA,EAAA,IAEzC,CAACH,GAASC,GAAUC,GAASC,CAAc,CAAC,GAE/CQ,EAAwB,EAAE,oBAAAZ,GAAoB,kBAAkBO,EAAoB,CAAA;AACtF,GAEMM,IAA6B,CAAC;AAAA,EAClC,oBAAAb;AACF,MAEM;AACJ,QAAM,EAAE,SAAAc,EAAQ,IAAIF,EAAwB,EAAE,oBAAAZ,EAAoB,CAAA;AASlE,SAAO,EAAE,uBAPqBQ;AAAA,IAC5B,CAACO,MAA6B;AAC5B,MAAAD,KAAA,QAAAA,EAAUC;AAAA,IACZ;AAAA,IACA,CAACD,CAAO;AAAA,EAAA,EAGqB;AACjC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import type { IHomeWorkControllerProps } from './bottombar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","homeworkControls","memo"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAAmD,CAASC,MAAA;AAChE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,kBAAAC,EAAA,IAAqBH,GACjD,EAAE,YAAAI,GAAY,gBAAAC,GAAgB,eAAAC,MAAkBC,EAAoB,GACpE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAYC,EAAY,MAAM;AAClC,IAAAP,KAAA,QAAAA,EAAgB,eAChBC,EAAc,MAAS,GACvBG,EAAU,EAAK;AAAA,EAAA,GACd,CAACJ,GAAgBC,CAAa,CAAC,GAE5BO,IAAmBD,EAAY,YAAY;AAC/C,QAAI,CAACP,EAAgB;AAEf,UAAAS,IAAW,OAAMT,KAAA,gBAAAA,EAAgB;AAEvC,WAAKS,IAME,CAFUC,EAAcD,CAAQ,CAEvB,IALd;AAAA,EAKc,GACf,CAACT,CAAc,CAAC,GAEbW,IAAwBJ,EAAY,YAAY;AAC9C,UAAAE,IAAW,MAAMD;AAEvB,IAAI,CAACT,KAAc,CAACF,KAAqB,CAACY,KAEtBZ,KAAA,QAAAA,EAAAE,GAAYU,GAAUH;AAAA,KACzC,CAACE,GAAkBT,GAAYF,GAAmBS,CAAS,CAAC,GAEzDM,IAAuBL,EAAY,MAAM;AAC7C,IAAKR,MACLK,EAAU,EAAI,GACdN,KAAA,QAAAA,EAAmBC,GAAYO;AAAA,EAC9B,GAAA,CAACP,GAAYD,GAAkBQ,CAAS,CAAC;AAExC,SAACP,IAEDI,IAEA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,4BAACmB,GAAK,EAAA,WAAU,SAAQ,QAAO,SAAQ,UAEvC,iBAAA;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASL;AAAA,YACT,UAAU;AAAA,YACV,MAAMM;AAAA,YACN,MAAMf;AAAA,UAAA;AAAA,QACR;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,OAAO,GAAI,CAAA;AAAA,QACtB,gBAAAN;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASN;AAAA,YACT,UAAU;AAAA,YACV,MAAMS;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1CoB;AA6C1B,GAEeC,IAAAC,EAAK5B,CAAkB;"}
1
+ {"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useState } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IHomeWorkControllerProps } from './bottombar-types';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","homeworkControls","memo"],"mappings":";;;;;;;;;;AAaA,MAAMA,IAAmD,CAASC,MAAA;AAChE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,kBAAAC,EAAA,IAAqBH,GACjD,EAAE,YAAAI,GAAY,gBAAAC,GAAgB,eAAAC,MAAkBC,EAAoB,GACpE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAYC,EAAY,MAAM;AAClC,IAAAP,KAAA,QAAAA,EAAgB,eAChBC,EAAc,MAAS,GACvBG,EAAU,EAAK;AAAA,EAAA,GACd,CAACJ,GAAgBC,CAAa,CAAC,GAE5BO,IAAmBD,EAAY,YAAY;AAC/C,QAAI,CAACP,EAAgB;AAEf,UAAAS,IAAW,OAAMT,KAAA,gBAAAA,EAAgB;AAEvC,WAAKS,IAME,CAFUC,EAAcD,CAAQ,CAEvB,IALd;AAAA,EAKc,GACf,CAACT,CAAc,CAAC,GAEbW,IAAwBJ,EAAY,YAAY;AAC9C,UAAAE,IAAW,MAAMD;AAEvB,IAAI,CAACT,KAAc,CAACF,KAAqB,CAACY,KAEtBZ,KAAA,QAAAA,EAAAE,GAAYU,GAAUH;AAAA,KACzC,CAACE,GAAkBT,GAAYF,GAAmBS,CAAS,CAAC,GAEzDM,IAAuBL,EAAY,MAAM;AAC7C,IAAKR,MACLK,EAAU,EAAI,GACdN,KAAA,QAAAA,EAAmBC,GAAYO;AAAA,EAC9B,GAAA,CAACP,GAAYD,GAAkBQ,CAAS,CAAC;AAExC,SAACP,IAEDI,IAEA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,4BAACmB,GAAK,EAAA,WAAU,SAAQ,QAAO,SAAQ,UAEvC,iBAAA;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASL;AAAA,YACT,UAAU;AAAA,YACV,MAAMM;AAAA,YACN,MAAMf;AAAA,UAAA;AAAA,QACR;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,OAAO,GAAI,CAAA;AAAA,QACtB,gBAAAN;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASN;AAAA,YACT,UAAU;AAAA,YACV,MAAMS;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1CoB;AA6C1B,GAEeC,IAAAC,EAAK5B,CAAkB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nimport { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n homeworkId: undefined,\n setHomeworkId: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAOA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AAAA,EACtB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AACvB,CAAC;"}
1
+ {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\nimport type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n homeworkId: undefined,\n setHomeworkId: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAMA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AAAA,EACtB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AACvB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport type {\n IActionData,\n IViewport,\n TCueCanvasChangeData,\n TCueCanvasGridName,\n TCueCanvasTool,\n TPublish,\n TRenderAs,\n TCueCanvasChangeDataObject,\n IReplaceCanvas,\n ICueCanvasCoreProps,\n TUpdateCanvasConfig,\n TCueCanvasColors,\n} from './types/cue-canvas';\nimport type { ICreateOptions } from './types/cue-canvas';\nimport type { IPolypad, IPolyPadInstance } from './types/polypad';\n\nimport { captureMessage } from '@sentry/browser';\nimport debounce from 'lodash.debounce';\n\nimport { CANVAS_COLORS } from './constants/constants';\nimport {\n checkTextOrEquationTool,\n getColorsForUser,\n getReverseMap,\n getToolAndSubtool,\n removeCanvasCredit,\n removeMask,\n removeMusicTiles,\n removeTileButton,\n STATELESS_TOOLS,\n} from './cue-canvas-helpers';\n\ndeclare global {\n interface Window {\n Polypad: IPolypad;\n }\n}\n\n/**\n * The CueCanvasCore class manages the canvas state and tool synchronization.\n * When text or equations are added, Polypad automatically switches to 'move' tool.\n * onUpdateActiveTool ensures the UI reflects this automatic tool change.\n */\n\nexport class CueCanvasCore {\n private polycanvas: IPolyPadInstance | undefined;\n private publish?: TPublish;\n private height: number;\n private onUpdateActiveTool: (tool: TCueCanvasTool) => void;\n private onUpdateHeight?: (height: number) => void;\n private userId: string;\n private canvasId: string;\n private userType: TUserTypes;\n private renderAs: TRenderAs;\n private fileInput: HTMLInputElement | null = null;\n private debouncedViewportChange: ReturnType<typeof debounce>;\n private uploadImageToS3?: (file: File) => Promise<string>;\n private updateCanvasConfigChange?: TUpdateCanvasConfig;\n private gridName?: TCueCanvasGridName;\n private activeColor: TCueCanvasColors;\n private activeTool: TCueCanvasTool | undefined;\n\n constructor({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n updateCanvasConfig,\n }: ICueCanvasCoreProps) {\n this.onUpdateHeight = onUpdateHeight;\n this.onUpdateActiveTool = onUpdateActiveTool;\n this.height = height;\n this.uploadImageToS3 = uploadImageToS3;\n this.userId = userId;\n this.canvasId = canvasId;\n this.publish = onPublish;\n this.userType = userType;\n this.renderAs = renderAs;\n this.debouncedViewportChange = debounce(this.onViewPortChange, 300);\n this.updateCanvasConfigChange = updateCanvasConfig;\n this.activeColor = getColorsForUser(userType, renderAs)[0] as TCueCanvasColors;\n this.activeTool = undefined; // Default to first color in the palette\n onSubscribe?.(this.canvasId, this.update);\n }\n\n async create({ canvasElementRef, canvasConfig, canvasSetting, initialData }: ICreateOptions) {\n if (!canvasElementRef.current) {\n throw new Error('PolyCanvas: Div Element Not found for canvas');\n }\n this.polycanvas = await window.Polypad.create(canvasElementRef.current, {\n initial: {\n options: canvasConfig,\n },\n ...canvasSetting,\n imageUpload:\n this.renderAs === 'whiteboard' && this.userType === 'TEACHER' && this.uploadImageToS3\n ? this.uploadImageToS3\n : undefined,\n });\n\n if (this.renderAs === 'whiteboard' && this.userType === 'TEACHER') {\n this.polycanvas.toggleSidebar(false);\n this.polycanvas.bindKeyboardEvents({});\n\n removeTileButton(canvasElementRef);\n removeMusicTiles(canvasElementRef);\n removeCanvasCredit(canvasElementRef);\n this.polycanvas.on('viewport', this.debouncedViewportChange);\n }\n\n removeMask(canvasElementRef);\n this.polycanvas.on('change', this.onChange);\n if (initialData) {\n this.update(initialData);\n }\n }\n\n private publishToChannel = (payload: TCueCanvasChangeDataObject) => {\n if (!this.publish) return;\n\n this.publish({\n eventName: 'cue_canvas_changed',\n eventPayload: {\n data: payload,\n height: this.height,\n userId: this.userId,\n responseId: this.canvasId,\n },\n });\n };\n\n private onChange = (e: unknown) => {\n const data = e as TCueCanvasChangeData;\n const payload = Object.fromEntries(data.entries());\n\n if (checkTextOrEquationTool(payload)) {\n this.onUpdateActiveTool('move');\n this.setTool('move');\n }\n\n this.publishToChannel(payload);\n };\n\n private undo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.undo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n const undoData = getReverseMap(data);\n\n this.onChange(undoData);\n };\n\n private redo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.redo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n this.onChange(data);\n };\n\n clearCanvas = () => {\n if (this.polycanvas) {\n this.polycanvas.clear();\n }\n };\n\n private zoomIn = () => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n\n this.polycanvas.setViewport(viewPort.x, viewPort.y, viewPort.zoom * 1.1);\n };\n\n private zoomOut = () => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n\n this.polycanvas.setViewport(viewPort.x, viewPort.y, viewPort.zoom * 0.9);\n };\n\n getCanvasAsImage = async () => {\n if (!this.polycanvas) return;\n\n const image = await this.polycanvas.image(3000, 3000, 'png');\n\n return image;\n };\n\n private downloadCanvasAsImage = async () => {\n if (!this.polycanvas) return;\n\n const image = await this.polycanvas.image(3000, 3000, 'png');\n\n if (!image) return;\n\n const downloadLink = document.createElement('a');\n\n downloadLink.href = image;\n downloadLink.download = `canvas-drawing-${Date.now()}.png`;\n downloadLink.click();\n };\n\n private onViewPortChange = (e: IViewport): void => {\n if (!this.updateCanvasConfigChange) return;\n\n this.updateCanvasConfigChange({ dimesion: e });\n };\n\n private openFileUpload = (): void => {\n if (!this.fileInput) {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.accept = 'image/*';\n this.fileInput.style.display = 'none';\n this.fileInput.onchange = this.onSelectImage;\n document.body.appendChild(this.fileInput);\n }\n\n this.fileInput.click();\n };\n\n addImageToCanvas = (imageUrl: string): void => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n const imgJson = {\n name: 'image',\n href: imageUrl,\n x: viewPort.x + 24,\n y: viewPort.y + 24,\n width: 500,\n };\n\n const key = this.polycanvas.add({\n ...imgJson,\n });\n\n this.publishToChannel({\n [key]: [undefined, { ...imgJson, status: 'locked' }],\n });\n this.onUpdateActiveTool('move');\n this.setTool('move');\n };\n\n private onSelectImage = async (event: Event): Promise<void> => {\n const target = event.target as HTMLInputElement;\n const file = target.files?.[0];\n\n if (!file || !this.polycanvas || !this.uploadImageToS3) return;\n\n const imageUrl = await this.uploadImageToS3(file);\n\n if (imageUrl === 'error') {\n return;\n }\n\n this.addImageToCanvas(imageUrl);\n\n target.value = '';\n };\n\n private updateCanvas = ({ data, userId }: IActionData) => {\n const canEditStroke = this.userType === 'TEACHER' || userId === this.userId;\n const allTiles = this.polycanvas?.serialize(Infinity, 0, 0)?.tiles || {};\n\n try {\n Object.entries(data).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n if ('name' in value[1] && value[1].name === 'image') {\n value[1].status = this.userType === 'STUDENT' ? 'locked' : undefined; // Lock only images for students\n }\n this.polycanvas?.add({ ...value[1], cannotEdit: !canEditStroke }, key);\n } else if (value[0] && !value[1]) {\n this.polycanvas?.delete(key);\n } else if (value[0] && value[1]) {\n if (allTiles[key]) this.polycanvas?.update(key, { ...value[1] });\n }\n });\n } catch (error) {\n captureMessage('Error Updating Canvas', { extra: { error } });\n }\n };\n\n toggleTiles = (val: boolean) => {\n this.polycanvas?.toggleSidebar(val);\n };\n\n setViewPort = ({ x, y, zoom }: IViewport) => {\n if (this.polycanvas) {\n const cv = this.polycanvas?.getViewport();\n\n if (cv.x === x && cv.y === y && cv.zoom === zoom) {\n return; // No change needed\n }\n\n this.polycanvas.setViewport(x, y, zoom);\n }\n };\n\n resetViewPort = () => {\n if (this.polycanvas) {\n this.polycanvas.resetViewport();\n }\n };\n\n changeGrid = (gridName: TCueCanvasGridName) => {\n if (!this.polycanvas || this.gridName === gridName) return;\n\n this.polycanvas.setOptions({\n grid: gridName,\n });\n this.gridName = gridName;\n if (this.updateCanvasConfigChange) {\n this.updateCanvasConfigChange({ gridName: gridName });\n }\n };\n\n lockSelectedTiles = () => {\n const { tiles: allTiles } = this.polycanvas?.serialize() || {};\n const selectedItems = this.polycanvas?.getSelection() || [];\n\n if (selectedItems.length > 0 && allTiles) {\n const lockedTiles: TCueCanvasChangeDataObject = {};\n\n selectedItems.forEach(key => {\n if (!allTiles[key]?.name) return;\n\n const updatedJson = { ...allTiles[key], status: 'locked' as const };\n\n this.polycanvas?.update(key, updatedJson);\n if (allTiles[key]?.name) lockedTiles[key] = [allTiles[key], updatedJson];\n });\n\n this.publishToChannel(lockedTiles);\n }\n };\n\n unlockAllTiles = () => {\n if (!this.polycanvas) return;\n\n const { tiles: allTiles } = this.polycanvas.serialize();\n const unlockedTiles: TCueCanvasChangeDataObject = {};\n\n if (allTiles && Object.entries(allTiles).length > 0) {\n Object.entries(allTiles).forEach(([key, item]) => {\n if (item.status !== 'locked') return;\n\n const updatedJson = { ...item, status: undefined };\n\n this.polycanvas?.update(key, updatedJson);\n unlockedTiles[key] = [item, updatedJson];\n });\n\n this.publishToChannel(unlockedTiles);\n }\n };\n\n replaceCanvas = (data: IReplaceCanvas) => {\n if (!this.polycanvas) return;\n\n const { data: canvasData, gridName } = data;\n\n this.polycanvas.clear();\n if (gridName) {\n this.changeGrid(gridName);\n }\n\n Object.entries(canvasData).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n this.polycanvas?.add({ ...value[1] }, key);\n\n return;\n }\n });\n\n this.publishToChannel(canvasData);\n };\n\n setTool = (tool: TCueCanvasTool) => {\n if (!this.polycanvas || tool === this.activeTool) return;\n\n const [currTool, currSubTool] = getToolAndSubtool(tool);\n\n switch (currTool) {\n case 'clearAll':\n this.clearCanvas();\n break;\n case 'home':\n this.resetViewPort();\n break;\n case 'undo':\n this.undo();\n break;\n case 'redo':\n this.redo();\n break;\n case 'lock':\n this.lockSelectedTiles();\n break;\n case 'unlock':\n this.unlockAllTiles();\n break;\n case 'zoomIn':\n this.zoomIn();\n break;\n case 'zoomOut':\n this.zoomOut();\n break;\n case 'upload':\n this.openFileUpload();\n break;\n case 'download':\n this.downloadCanvasAsImage();\n break;\n case 'grid':\n break;\n default:\n this.polycanvas.setTool(currTool, currSubTool);\n }\n if (!STATELESS_TOOLS.has(tool)) {\n this.activeTool = tool;\n }\n };\n\n /**\n * The `update` method is called in two cases:\n * 1. When receiving initial data to update the canvas content.\n * 2. When receiving strokes from other peers to update the canvas content.\n * Each item can contain multiple actions, which are applied to the canvas.\n *\n * The method checks if the payload is an array or a single object.\n * If it's an array, it iterates over each item and updates the canvas accordingly.\n * If it's a single object, it directly updates the canvas.\n *\n * Additionally, if the payload contains a height greater than the current height of the canvas, the `updateHeight` method is called to update the canvas height.\n */\n update = (payload: IActionData | IActionData[]) => {\n if (Array.isArray(payload)) {\n const heights = payload.map(data => data.height).filter(Boolean);\n const maxHeight = Math.max(...heights);\n\n if (maxHeight > this.height) {\n this.updateHeight(maxHeight);\n }\n payload.forEach(item => this.updateCanvas(item));\n } else {\n if (payload.height > this.height) {\n this.updateHeight(payload.height);\n }\n this.updateCanvas(payload);\n }\n };\n\n getSelections = () => {\n return this.polycanvas ? this.polycanvas.getSelection() : [];\n };\n\n setColor = (color: TCueCanvasColors) => {\n if (!this.polycanvas || !this.activeColor) return;\n\n const selectedColor = CANVAS_COLORS[color];\n\n const selections = this.getSelections();\n\n if (selections && selections.length > 0) {\n selections.forEach((key: string) => {\n this.polycanvas?.update(key, { color: selectedColor });\n this.onChange(\n new Map([[key, [{ color: CANVAS_COLORS[this.activeColor] }, { color: selectedColor }]]]),\n );\n });\n }\n this.polycanvas.setColor(selectedColor);\n this.activeColor = color;\n };\n\n updateHeight = (height: number) => {\n this.height = height;\n this.onUpdateHeight?.(height);\n };\n\n destroy = () => {\n if (this.polycanvas) {\n this.polycanvas.off('change', this.onChange);\n this.polycanvas.destroy();\n this.debouncedViewportChange.cancel();\n\n if (this.renderAs === 'whiteboard' && this.userType === 'TEACHER') {\n this.polycanvas.off('viewport', this.debouncedViewportChange);\n }\n this.polycanvas = undefined;\n\n if (this.fileInput && this.fileInput.parentNode) {\n this.fileInput.parentNode.removeChild(this.fileInput);\n this.fileInput = null;\n }\n }\n };\n}\n"],"names":["CueCanvasCore","onPublish","onSubscribe","onUpdateActiveTool","onUpdateHeight","uploadImageToS3","height","userId","canvasId","userType","renderAs","updateCanvasConfig","__publicField","payload","e","checkTextOrEquationTool","data","undoData","getReverseMap","viewPort","image","downloadLink","imageUrl","imgJson","key","event","target","file","_a","canEditStroke","allTiles","_b","value","_c","error","captureMessage","val","x","y","zoom","cv","gridName","selectedItems","lockedTiles","updatedJson","unlockedTiles","item","canvasData","tool","currTool","currSubTool","getToolAndSubtool","STATELESS_TOOLS","heights","maxHeight","color","selectedColor","CANVAS_COLORS","selections","debounce","getColorsForUser","canvasElementRef","canvasConfig","canvasSetting","initialData","removeTileButton","removeMusicTiles","removeCanvasCredit","removeMask"],"mappings":"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"}
1
+ {"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import { captureMessage } from '@sentry/browser';\nimport debounce from 'lodash.debounce';\n\nimport type { TUserTypes } from '../ui/types';\nimport { CANVAS_COLORS } from './constants/constants';\nimport {\n checkTextOrEquationTool,\n getColorsForUser,\n getReverseMap,\n getToolAndSubtool,\n removeCanvasCredit,\n removeMask,\n removeMusicTiles,\n removeTileButton,\n STATELESS_TOOLS,\n} from './cue-canvas-helpers';\nimport type {\n IActionData,\n IViewport,\n TCueCanvasChangeData,\n TCueCanvasGridName,\n TCueCanvasTool,\n TPublish,\n TRenderAs,\n TCueCanvasChangeDataObject,\n IReplaceCanvas,\n ICueCanvasCoreProps,\n TUpdateCanvasConfig,\n TCueCanvasColors,\n ICreateOptions,\n} from './types/cue-canvas';\nimport type { IPolypad, IPolyPadInstance } from './types/polypad';\n\ndeclare global {\n interface Window {\n Polypad: IPolypad;\n }\n}\n\n/**\n * The CueCanvasCore class manages the canvas state and tool synchronization.\n * When text or equations are added, Polypad automatically switches to 'move' tool.\n * onUpdateActiveTool ensures the UI reflects this automatic tool change.\n */\n\nexport class CueCanvasCore {\n private polycanvas: IPolyPadInstance | undefined;\n private publish?: TPublish;\n private height: number;\n private onUpdateActiveTool: (tool: TCueCanvasTool) => void;\n private onUpdateHeight?: (height: number) => void;\n private userId: string;\n private canvasId: string;\n private userType: TUserTypes;\n private renderAs: TRenderAs;\n private fileInput: HTMLInputElement | null = null;\n private debouncedViewportChange: ReturnType<typeof debounce>;\n private uploadImageToS3?: (file: File) => Promise<string>;\n private updateCanvasConfigChange?: TUpdateCanvasConfig;\n private gridName?: TCueCanvasGridName;\n private activeColor: TCueCanvasColors;\n private activeTool: TCueCanvasTool | undefined;\n\n constructor({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n updateCanvasConfig,\n }: ICueCanvasCoreProps) {\n this.onUpdateHeight = onUpdateHeight;\n this.onUpdateActiveTool = onUpdateActiveTool;\n this.height = height;\n this.uploadImageToS3 = uploadImageToS3;\n this.userId = userId;\n this.canvasId = canvasId;\n this.publish = onPublish;\n this.userType = userType;\n this.renderAs = renderAs;\n this.debouncedViewportChange = debounce(this.onViewPortChange, 300);\n this.updateCanvasConfigChange = updateCanvasConfig;\n this.activeColor = getColorsForUser(userType, renderAs)[0] as TCueCanvasColors;\n this.activeTool = undefined; // Default to first color in the palette\n onSubscribe?.(this.canvasId, this.update);\n }\n\n async create({ canvasElementRef, canvasConfig, canvasSetting, initialData }: ICreateOptions) {\n if (!canvasElementRef.current) {\n throw new Error('PolyCanvas: Div Element Not found for canvas');\n }\n this.polycanvas = await window.Polypad.create(canvasElementRef.current, {\n initial: {\n options: canvasConfig,\n },\n ...canvasSetting,\n imageUpload:\n this.renderAs === 'whiteboard' && this.userType === 'TEACHER' && this.uploadImageToS3\n ? this.uploadImageToS3\n : undefined,\n });\n\n if (this.renderAs === 'whiteboard' && this.userType === 'TEACHER') {\n this.polycanvas.toggleSidebar(false);\n this.polycanvas.bindKeyboardEvents({});\n\n removeTileButton(canvasElementRef);\n removeMusicTiles(canvasElementRef);\n removeCanvasCredit(canvasElementRef);\n this.polycanvas.on('viewport', this.debouncedViewportChange);\n }\n\n removeMask(canvasElementRef);\n this.polycanvas.on('change', this.onChange);\n if (initialData) {\n this.update(initialData);\n }\n }\n\n private publishToChannel = (payload: TCueCanvasChangeDataObject) => {\n if (!this.publish) return;\n\n this.publish({\n eventName: 'cue_canvas_changed',\n eventPayload: {\n data: payload,\n height: this.height,\n userId: this.userId,\n responseId: this.canvasId,\n },\n });\n };\n\n private onChange = (e: unknown) => {\n const data = e as TCueCanvasChangeData;\n const payload = Object.fromEntries(data.entries());\n\n if (checkTextOrEquationTool(payload)) {\n this.onUpdateActiveTool('move');\n this.setTool('move');\n }\n\n this.publishToChannel(payload);\n };\n\n private undo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.undo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n const undoData = getReverseMap(data);\n\n this.onChange(undoData);\n };\n\n private redo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.redo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n this.onChange(data);\n };\n\n clearCanvas = () => {\n if (this.polycanvas) {\n this.polycanvas.clear();\n }\n };\n\n private zoomIn = () => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n\n this.polycanvas.setViewport(viewPort.x, viewPort.y, viewPort.zoom * 1.1);\n };\n\n private zoomOut = () => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n\n this.polycanvas.setViewport(viewPort.x, viewPort.y, viewPort.zoom * 0.9);\n };\n\n getCanvasAsImage = async () => {\n if (!this.polycanvas) return;\n\n const image = await this.polycanvas.image(3000, 3000, 'png');\n\n return image;\n };\n\n private downloadCanvasAsImage = async () => {\n if (!this.polycanvas) return;\n\n const image = await this.polycanvas.image(3000, 3000, 'png');\n\n if (!image) return;\n\n const downloadLink = document.createElement('a');\n\n downloadLink.href = image;\n downloadLink.download = `canvas-drawing-${Date.now()}.png`;\n downloadLink.click();\n };\n\n private onViewPortChange = (e: IViewport): void => {\n if (!this.updateCanvasConfigChange) return;\n\n this.updateCanvasConfigChange({ dimesion: e });\n };\n\n private openFileUpload = (): void => {\n if (!this.fileInput) {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.accept = 'image/*';\n this.fileInput.style.display = 'none';\n this.fileInput.onchange = this.onSelectImage;\n document.body.appendChild(this.fileInput);\n }\n\n this.fileInput.click();\n };\n\n addImageToCanvas = (imageUrl: string): void => {\n if (!this.polycanvas) return;\n\n const viewPort = this.polycanvas.getViewport();\n const imgJson = {\n name: 'image',\n href: imageUrl,\n x: viewPort.x + 24,\n y: viewPort.y + 24,\n width: 500,\n };\n\n const key = this.polycanvas.add({\n ...imgJson,\n });\n\n this.publishToChannel({\n [key]: [undefined, { ...imgJson, status: 'locked' }],\n });\n this.onUpdateActiveTool('move');\n this.setTool('move');\n };\n\n private onSelectImage = async (event: Event): Promise<void> => {\n const target = event.target as HTMLInputElement;\n const file = target.files?.[0];\n\n if (!file || !this.polycanvas || !this.uploadImageToS3) return;\n\n const imageUrl = await this.uploadImageToS3(file);\n\n if (imageUrl === 'error') {\n return;\n }\n\n this.addImageToCanvas(imageUrl);\n\n target.value = '';\n };\n\n private updateCanvas = ({ data, userId }: IActionData) => {\n const canEditStroke = this.userType === 'TEACHER' || userId === this.userId;\n const allTiles = this.polycanvas?.serialize(Infinity, 0, 0)?.tiles || {};\n\n try {\n Object.entries(data).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n if ('name' in value[1] && value[1].name === 'image') {\n value[1].status = this.userType === 'STUDENT' ? 'locked' : undefined; // Lock only images for students\n }\n this.polycanvas?.add({ ...value[1], cannotEdit: !canEditStroke }, key);\n } else if (value[0] && !value[1]) {\n this.polycanvas?.delete(key);\n } else if (value[0] && value[1]) {\n if (allTiles[key]) this.polycanvas?.update(key, { ...value[1] });\n }\n });\n } catch (error) {\n captureMessage('Error Updating Canvas', { extra: { error } });\n }\n };\n\n toggleTiles = (val: boolean) => {\n this.polycanvas?.toggleSidebar(val);\n };\n\n setViewPort = ({ x, y, zoom }: IViewport) => {\n if (this.polycanvas) {\n const cv = this.polycanvas?.getViewport();\n\n if (cv.x === x && cv.y === y && cv.zoom === zoom) {\n return; // No change needed\n }\n\n this.polycanvas.setViewport(x, y, zoom);\n }\n };\n\n resetViewPort = () => {\n if (this.polycanvas) {\n this.polycanvas.resetViewport();\n }\n };\n\n changeGrid = (gridName: TCueCanvasGridName) => {\n if (!this.polycanvas || this.gridName === gridName) return;\n\n this.polycanvas.setOptions({\n grid: gridName,\n });\n this.gridName = gridName;\n if (this.updateCanvasConfigChange) {\n this.updateCanvasConfigChange({ gridName: gridName });\n }\n };\n\n lockSelectedTiles = () => {\n const { tiles: allTiles } = this.polycanvas?.serialize() || {};\n const selectedItems = this.polycanvas?.getSelection() || [];\n\n if (selectedItems.length > 0 && allTiles) {\n const lockedTiles: TCueCanvasChangeDataObject = {};\n\n selectedItems.forEach(key => {\n if (!allTiles[key]?.name) return;\n\n const updatedJson = { ...allTiles[key], status: 'locked' as const };\n\n this.polycanvas?.update(key, updatedJson);\n if (allTiles[key]?.name) lockedTiles[key] = [allTiles[key], updatedJson];\n });\n\n this.publishToChannel(lockedTiles);\n }\n };\n\n unlockAllTiles = () => {\n if (!this.polycanvas) return;\n\n const { tiles: allTiles } = this.polycanvas.serialize();\n const unlockedTiles: TCueCanvasChangeDataObject = {};\n\n if (allTiles && Object.entries(allTiles).length > 0) {\n Object.entries(allTiles).forEach(([key, item]) => {\n if (item.status !== 'locked') return;\n\n const updatedJson = { ...item, status: undefined };\n\n this.polycanvas?.update(key, updatedJson);\n unlockedTiles[key] = [item, updatedJson];\n });\n\n this.publishToChannel(unlockedTiles);\n }\n };\n\n replaceCanvas = (data: IReplaceCanvas) => {\n if (!this.polycanvas) return;\n\n const { data: canvasData, gridName } = data;\n\n this.polycanvas.clear();\n if (gridName) {\n this.changeGrid(gridName);\n }\n\n Object.entries(canvasData).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n this.polycanvas?.add({ ...value[1] }, key);\n\n return;\n }\n });\n\n this.publishToChannel(canvasData);\n };\n\n setTool = (tool: TCueCanvasTool) => {\n if (!this.polycanvas || tool === this.activeTool) return;\n\n const [currTool, currSubTool] = getToolAndSubtool(tool);\n\n switch (currTool) {\n case 'clearAll':\n this.clearCanvas();\n break;\n case 'home':\n this.resetViewPort();\n break;\n case 'undo':\n this.undo();\n break;\n case 'redo':\n this.redo();\n break;\n case 'lock':\n this.lockSelectedTiles();\n break;\n case 'unlock':\n this.unlockAllTiles();\n break;\n case 'zoomIn':\n this.zoomIn();\n break;\n case 'zoomOut':\n this.zoomOut();\n break;\n case 'upload':\n this.openFileUpload();\n break;\n case 'download':\n this.downloadCanvasAsImage();\n break;\n case 'grid':\n break;\n default:\n this.polycanvas.setTool(currTool, currSubTool);\n }\n if (!STATELESS_TOOLS.has(tool)) {\n this.activeTool = tool;\n }\n };\n\n /**\n * The `update` method is called in two cases:\n * 1. When receiving initial data to update the canvas content.\n * 2. When receiving strokes from other peers to update the canvas content.\n * Each item can contain multiple actions, which are applied to the canvas.\n *\n * The method checks if the payload is an array or a single object.\n * If it's an array, it iterates over each item and updates the canvas accordingly.\n * If it's a single object, it directly updates the canvas.\n *\n * Additionally, if the payload contains a height greater than the current height of the canvas, the `updateHeight` method is called to update the canvas height.\n */\n update = (payload: IActionData | IActionData[]) => {\n if (Array.isArray(payload)) {\n const heights = payload.map(data => data.height).filter(Boolean);\n const maxHeight = Math.max(...heights);\n\n if (maxHeight > this.height) {\n this.updateHeight(maxHeight);\n }\n payload.forEach(item => this.updateCanvas(item));\n } else {\n if (payload.height > this.height) {\n this.updateHeight(payload.height);\n }\n this.updateCanvas(payload);\n }\n };\n\n getSelections = () => {\n return this.polycanvas ? this.polycanvas.getSelection() : [];\n };\n\n setColor = (color: TCueCanvasColors) => {\n if (!this.polycanvas || !this.activeColor) return;\n\n const selectedColor = CANVAS_COLORS[color];\n\n const selections = this.getSelections();\n\n if (selections && selections.length > 0) {\n selections.forEach((key: string) => {\n this.polycanvas?.update(key, { color: selectedColor });\n this.onChange(\n new Map([[key, [{ color: CANVAS_COLORS[this.activeColor] }, { color: selectedColor }]]]),\n );\n });\n }\n this.polycanvas.setColor(selectedColor);\n this.activeColor = color;\n };\n\n updateHeight = (height: number) => {\n this.height = height;\n this.onUpdateHeight?.(height);\n };\n\n destroy = () => {\n if (this.polycanvas) {\n this.polycanvas.off('change', this.onChange);\n this.polycanvas.destroy();\n this.debouncedViewportChange.cancel();\n\n if (this.renderAs === 'whiteboard' && this.userType === 'TEACHER') {\n this.polycanvas.off('viewport', this.debouncedViewportChange);\n }\n this.polycanvas = undefined;\n\n if (this.fileInput && this.fileInput.parentNode) {\n this.fileInput.parentNode.removeChild(this.fileInput);\n this.fileInput = null;\n }\n }\n };\n}\n"],"names":["CueCanvasCore","onPublish","onSubscribe","onUpdateActiveTool","onUpdateHeight","uploadImageToS3","height","userId","canvasId","userType","renderAs","updateCanvasConfig","__publicField","payload","e","checkTextOrEquationTool","data","undoData","getReverseMap","viewPort","image","downloadLink","imageUrl","imgJson","key","event","target","file","_a","canEditStroke","allTiles","_b","value","_c","error","captureMessage","val","x","y","zoom","cv","gridName","selectedItems","lockedTiles","updatedJson","unlockedTiles","item","canvasData","tool","currTool","currSubTool","getToolAndSubtool","STATELESS_TOOLS","heights","maxHeight","color","selectedColor","CANVAS_COLORS","selections","debounce","getColorsForUser","canvasElementRef","canvasConfig","canvasSetting","initialData","removeTileButton","removeMusicTiles","removeCanvasCredit","removeMask"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-helpers.js","sources":["../../../src/features/cue-canvas/cue-canvas-helpers.ts"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport type {\n TCueCanvasColors,\n TCueCanvasChangeData,\n TCueCanvasTool,\n TCueCanvasToolOption,\n TDrawingData,\n TRenderAs,\n TCueCanvasGridName,\n TCueCanvasChangeDataObject,\n} from './types/cue-canvas';\nimport type { IPolypadCreateOptions, IPolypadOptions } from './types/polypad';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nexport const GRID_NAMES: TCueCanvasGridName[] = [\n 'none',\n 'square2-grid',\n 'square-checked',\n 'square-dots',\n 'tri-dots',\n 'tri2-dots',\n 'square-grid',\n 'tri-grid',\n 'tri2-grid',\n];\n\nexport const STATELESS_TOOLS = new Set<TCueCanvasTool>([\n 'undo',\n 'redo',\n 'clearAll',\n 'home',\n 'lock',\n 'unlock',\n 'zoomIn',\n 'zoomOut',\n 'upload',\n 'download',\n]);\n\nexport const removeMask = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (shadowRoot) {\n const xPolypad = shadowRoot.querySelectorAll('x-polypad');\n\n if (xPolypad[0]) {\n const svgCanvas = xPolypad[0].querySelector('svg.canvas');\n const maskPath = svgCanvas?.querySelector('path.mask');\n\n maskPath?.setAttribute('stroke', 'transparent');\n maskPath?.setAttribute('fill', 'transparent');\n maskPath?.removeAttribute('style');\n }\n }\n\n return undefined;\n};\n\nexport const removeTileButton = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n const sidebar = shadowRoot?.querySelector('x-pp-sidebar') as HTMLElement;\n const tabsHeader = sidebar?.getElementsByClassName('tabs-header');\n const tabsBody = sidebar?.getElementsByClassName('tabs-body');\n\n sidebar?.setAttribute('style', 'display: none;');\n sidebar?.setAttribute('style', 'height: 30px;');\n\n if (tabsHeader && tabsHeader.length > 0) {\n const firstTabHeader = tabsHeader[0] as HTMLElement;\n\n firstTabHeader.style.display = 'none';\n }\n\n if (tabsBody && tabsBody.length > 0) {\n const firstTabBody = tabsBody[0] as HTMLElement;\n\n firstTabBody.style.top = '48px';\n }\n sidebar?.setAttribute('style', 'display: block;');\n};\n\nexport const removeMusicTiles = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (!shadowRoot) return;\n\n const musicTiles = shadowRoot.querySelectorAll(`[data-key=\"music\"]`)[0];\n const logicSpeakerTiles = shadowRoot.querySelectorAll(`[tile=\"logic-speaker\"]`)[0];\n\n if (musicTiles) {\n (musicTiles as HTMLElement).style.display = 'none';\n }\n\n if (logicSpeakerTiles) {\n (logicSpeakerTiles as HTMLElement).style.display = 'none';\n }\n};\n\nexport const removeCanvasCredit = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (!shadowRoot) return;\n\n const creditSection = shadowRoot.querySelectorAll(`[class=\"credit\"]`)[0];\n\n if (creditSection) {\n (creditSection as HTMLElement).style.display = 'none';\n }\n};\n\nexport const getCanvasConfig = (\n width: number,\n height: number,\n renderAs: TRenderAs,\n userType: TUserTypes,\n): IPolypadOptions => {\n return renderAs === 'canvas'\n ? {\n canvas: 'notebook',\n canvasX: width,\n canvasY: height,\n noPinchPan: true,\n grid: 'none',\n background: 'transparent',\n noSnapping: true,\n }\n : {\n canvas: 'infinite',\n canvasX: width,\n canvasY: height,\n grid: 'none',\n noPinchPan: userType === 'STUDENT',\n noDeleting: userType === 'STUDENT',\n noCopyPaste: userType === 'STUDENT',\n noMusic: true,\n noAudio: true,\n };\n};\n\nexport const getCanvasSettings = (\n renderAs: TRenderAs,\n userType: TUserTypes,\n): IPolypadCreateOptions => {\n return renderAs === 'canvas'\n ? {\n sidebarTiles: false,\n sidebarSettings: false,\n settings: false,\n toolbar: false,\n canvasMargin: 0,\n }\n : {\n sidebarTiles: userType === 'TEACHER',\n sidebarSettings: false,\n settings: false,\n toolbar: false,\n };\n};\n\nexport const getReverseAction = (action: TDrawingData[]) => [action[1], action[0]];\n\nexport const getReverseMap = (data: TCueCanvasChangeData) => {\n const newData = new Map<string, TDrawingData[]>();\n\n data.forEach((value, key) => {\n newData.set(key, getReverseAction(value));\n });\n\n return newData;\n};\n\nexport const getToolAndSubtool = (\n tool: TCueCanvasTool,\n): [\n Exclude<TCueCanvasTool, 'marker' | 'highlighter' | 'ruler' | 'equation'>,\n TCueCanvasToolOption | undefined,\n] => {\n switch (tool) {\n case 'pen':\n return ['pen', 'pen'];\n case 'marker':\n return ['pen', 'marker'];\n case 'highlighter':\n return ['pen', 'highlighter'];\n case 'ruler':\n return ['pen', 'ruler'];\n case 'equation':\n return ['text', 'equation'];\n default:\n return [tool, undefined];\n }\n};\n\nconst TEACHER_WHITEBOARD_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'lock',\n 'unlock',\n 'zoomIn',\n 'zoomOut',\n 'pan',\n 'clearAll',\n 'text',\n 'equation',\n 'grid',\n 'home',\n 'undo',\n 'redo',\n\n 'upload',\n 'download',\n];\n\nconst STUDENT_WHITEBOARD_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'text',\n 'undo',\n 'redo',\n 'download',\n];\n\nconst TEACHER_DEFAULT_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'undo',\n 'redo',\n];\n\nconst STUDENT_DEFAULT_TOOLS: TCueCanvasTool[] = ['pen', 'ruler', 'eraser', 'move', 'undo', 'redo'];\n\nexport const getUserTools = (userType: TUserTypes, renderAs: TRenderAs): TCueCanvasTool[] => {\n if (renderAs === 'whiteboard') {\n return userType === 'TEACHER' ? TEACHER_WHITEBOARD_TOOLS : STUDENT_WHITEBOARD_TOOLS;\n }\n\n return userType === 'TEACHER' ? TEACHER_DEFAULT_TOOLS : STUDENT_DEFAULT_TOOLS;\n};\n\nexport const getColorsForUser = (userType: TUserTypes, renderAs: TRenderAs = 'canvas') => {\n if (renderAs === 'whiteboard') {\n return Object.keys(CANVAS_COLORS).filter(\n color => !color.startsWith('CANVAS'),\n ) as TCueCanvasColors[];\n }\n\n return userType === 'TEACHER'\n ? (['CANVAS_RED', 'CANVAS_YELLOW', 'CANVAS_GREEN'] as TCueCanvasColors[])\n : (['CANVAS_BLUE', 'CANVAS_PURPLE', 'CANVAS_PINK'] as TCueCanvasColors[]);\n};\n\nexport const getIsWritingTool = (penTool: string) => {\n return ['pen', 'ruler', 'marker', 'highlighter'].includes(penTool);\n};\n\nexport const checkTextOrEquationTool = (payload: TCueCanvasChangeDataObject) => {\n return Object.values(payload).some(value => {\n if (\n !value[0] &&\n value[1] &&\n 'name' in value[1] &&\n (value[1].name === 'text' || value[1].name === 'equation')\n ) {\n return true;\n }\n\n return false;\n });\n};\n\nexport const dataURIToBlob = (dataURI: string): Blob => {\n const parts = dataURI.split(',');\n const metadata = parts[0] ?? '';\n const base64Data = parts[1] ?? '';\n\n const isBase64 = metadata.includes('base64');\n const byteString = isBase64 ? atob(base64Data) : decodeURIComponent(base64Data);\n\n const mimeTypeMatch = metadata.match(/:(.*?);/);\n const mimeType = mimeTypeMatch ? mimeTypeMatch[1] : 'application/octet-stream';\n\n const byteArray = new Uint8Array(byteString.length);\n\n for (let i = 0; i < byteString.length; i++) {\n byteArray[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([byteArray], { type: mimeType });\n};\n\nexport const jsonToBlob = (json: unknown) => {\n const data = JSON.stringify(json);\n\n return new Blob([data], {\n type: 'application/json',\n });\n};\n"],"names":["GRID_NAMES","STATELESS_TOOLS","removeMask","canvasElementRef","shadowRoot","_a","xPolypad","svgCanvas","maskPath","removeTileButton","sidebar","tabsHeader","tabsBody","firstTabHeader","firstTabBody","removeMusicTiles","musicTiles","logicSpeakerTiles","removeCanvasCredit","creditSection","getCanvasConfig","width","height","renderAs","userType","getCanvasSettings","getReverseAction","action","getReverseMap","data","newData","value","key","getToolAndSubtool","tool","TEACHER_WHITEBOARD_TOOLS","STUDENT_WHITEBOARD_TOOLS","TEACHER_DEFAULT_TOOLS","STUDENT_DEFAULT_TOOLS","getUserTools","getColorsForUser","CANVAS_COLORS","color","getIsWritingTool","penTool","checkTextOrEquationTool","payload","dataURIToBlob","dataURI","parts","metadata","base64Data","byteString","mimeTypeMatch","mimeType","byteArray","i"],"mappings":"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"}
1
+ {"version":3,"file":"cue-canvas-helpers.js","sources":["../../../src/features/cue-canvas/cue-canvas-helpers.ts"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport { CANVAS_COLORS } from './constants/constants';\nimport type {\n TCueCanvasColors,\n TCueCanvasChangeData,\n TCueCanvasTool,\n TCueCanvasToolOption,\n TDrawingData,\n TRenderAs,\n TCueCanvasGridName,\n TCueCanvasChangeDataObject,\n} from './types/cue-canvas';\nimport type { IPolypadCreateOptions, IPolypadOptions } from './types/polypad';\n\nexport const GRID_NAMES: TCueCanvasGridName[] = [\n 'none',\n 'square2-grid',\n 'square-checked',\n 'square-dots',\n 'tri-dots',\n 'tri2-dots',\n 'square-grid',\n 'tri-grid',\n 'tri2-grid',\n];\n\nexport const STATELESS_TOOLS = new Set<TCueCanvasTool>([\n 'undo',\n 'redo',\n 'clearAll',\n 'home',\n 'lock',\n 'unlock',\n 'zoomIn',\n 'zoomOut',\n 'upload',\n 'download',\n]);\n\nexport const removeMask = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (shadowRoot) {\n const xPolypad = shadowRoot.querySelectorAll('x-polypad');\n\n if (xPolypad[0]) {\n const svgCanvas = xPolypad[0].querySelector('svg.canvas');\n const maskPath = svgCanvas?.querySelector('path.mask');\n\n maskPath?.setAttribute('stroke', 'transparent');\n maskPath?.setAttribute('fill', 'transparent');\n maskPath?.removeAttribute('style');\n }\n }\n\n return undefined;\n};\n\nexport const removeTileButton = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n const sidebar = shadowRoot?.querySelector('x-pp-sidebar') as HTMLElement;\n const tabsHeader = sidebar?.getElementsByClassName('tabs-header');\n const tabsBody = sidebar?.getElementsByClassName('tabs-body');\n\n sidebar?.setAttribute('style', 'display: none;');\n sidebar?.setAttribute('style', 'height: 30px;');\n\n if (tabsHeader && tabsHeader.length > 0) {\n const firstTabHeader = tabsHeader[0] as HTMLElement;\n\n firstTabHeader.style.display = 'none';\n }\n\n if (tabsBody && tabsBody.length > 0) {\n const firstTabBody = tabsBody[0] as HTMLElement;\n\n firstTabBody.style.top = '48px';\n }\n sidebar?.setAttribute('style', 'display: block;');\n};\n\nexport const removeMusicTiles = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (!shadowRoot) return;\n\n const musicTiles = shadowRoot.querySelectorAll(`[data-key=\"music\"]`)[0];\n const logicSpeakerTiles = shadowRoot.querySelectorAll(`[tile=\"logic-speaker\"]`)[0];\n\n if (musicTiles) {\n (musicTiles as HTMLElement).style.display = 'none';\n }\n\n if (logicSpeakerTiles) {\n (logicSpeakerTiles as HTMLElement).style.display = 'none';\n }\n};\n\nexport const removeCanvasCredit = (canvasElementRef: React.RefObject<HTMLDivElement>) => {\n const shadowRoot = canvasElementRef.current?.shadowRoot;\n\n if (!shadowRoot) return;\n\n const creditSection = shadowRoot.querySelectorAll(`[class=\"credit\"]`)[0];\n\n if (creditSection) {\n (creditSection as HTMLElement).style.display = 'none';\n }\n};\n\nexport const getCanvasConfig = (\n width: number,\n height: number,\n renderAs: TRenderAs,\n userType: TUserTypes,\n): IPolypadOptions => {\n return renderAs === 'canvas'\n ? {\n canvas: 'notebook',\n canvasX: width,\n canvasY: height,\n noPinchPan: true,\n grid: 'none',\n background: 'transparent',\n noSnapping: true,\n }\n : {\n canvas: 'infinite',\n canvasX: width,\n canvasY: height,\n grid: 'none',\n noPinchPan: userType === 'STUDENT',\n noDeleting: userType === 'STUDENT',\n noCopyPaste: userType === 'STUDENT',\n noMusic: true,\n noAudio: true,\n };\n};\n\nexport const getCanvasSettings = (\n renderAs: TRenderAs,\n userType: TUserTypes,\n): IPolypadCreateOptions => {\n return renderAs === 'canvas'\n ? {\n sidebarTiles: false,\n sidebarSettings: false,\n settings: false,\n toolbar: false,\n canvasMargin: 0,\n }\n : {\n sidebarTiles: userType === 'TEACHER',\n sidebarSettings: false,\n settings: false,\n toolbar: false,\n };\n};\n\nexport const getReverseAction = (action: TDrawingData[]) => [action[1], action[0]];\n\nexport const getReverseMap = (data: TCueCanvasChangeData) => {\n const newData = new Map<string, TDrawingData[]>();\n\n data.forEach((value, key) => {\n newData.set(key, getReverseAction(value));\n });\n\n return newData;\n};\n\nexport const getToolAndSubtool = (\n tool: TCueCanvasTool,\n): [\n Exclude<TCueCanvasTool, 'marker' | 'highlighter' | 'ruler' | 'equation'>,\n TCueCanvasToolOption | undefined,\n] => {\n switch (tool) {\n case 'pen':\n return ['pen', 'pen'];\n case 'marker':\n return ['pen', 'marker'];\n case 'highlighter':\n return ['pen', 'highlighter'];\n case 'ruler':\n return ['pen', 'ruler'];\n case 'equation':\n return ['text', 'equation'];\n default:\n return [tool, undefined];\n }\n};\n\nconst TEACHER_WHITEBOARD_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'lock',\n 'unlock',\n 'zoomIn',\n 'zoomOut',\n 'pan',\n 'clearAll',\n 'text',\n 'equation',\n 'grid',\n 'home',\n 'undo',\n 'redo',\n\n 'upload',\n 'download',\n];\n\nconst STUDENT_WHITEBOARD_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'text',\n 'undo',\n 'redo',\n 'download',\n];\n\nconst TEACHER_DEFAULT_TOOLS: TCueCanvasTool[] = [\n 'pen',\n 'ruler',\n 'marker',\n 'highlighter',\n 'eraser',\n 'move',\n 'undo',\n 'redo',\n];\n\nconst STUDENT_DEFAULT_TOOLS: TCueCanvasTool[] = ['pen', 'ruler', 'eraser', 'move', 'undo', 'redo'];\n\nexport const getUserTools = (userType: TUserTypes, renderAs: TRenderAs): TCueCanvasTool[] => {\n if (renderAs === 'whiteboard') {\n return userType === 'TEACHER' ? TEACHER_WHITEBOARD_TOOLS : STUDENT_WHITEBOARD_TOOLS;\n }\n\n return userType === 'TEACHER' ? TEACHER_DEFAULT_TOOLS : STUDENT_DEFAULT_TOOLS;\n};\n\nexport const getColorsForUser = (userType: TUserTypes, renderAs: TRenderAs = 'canvas') => {\n if (renderAs === 'whiteboard') {\n return Object.keys(CANVAS_COLORS).filter(\n color => !color.startsWith('CANVAS'),\n ) as TCueCanvasColors[];\n }\n\n return userType === 'TEACHER'\n ? (['CANVAS_RED', 'CANVAS_YELLOW', 'CANVAS_GREEN'] as TCueCanvasColors[])\n : (['CANVAS_BLUE', 'CANVAS_PURPLE', 'CANVAS_PINK'] as TCueCanvasColors[]);\n};\n\nexport const getIsWritingTool = (penTool: string) => {\n return ['pen', 'ruler', 'marker', 'highlighter'].includes(penTool);\n};\n\nexport const checkTextOrEquationTool = (payload: TCueCanvasChangeDataObject) => {\n return Object.values(payload).some(value => {\n if (\n !value[0] &&\n value[1] &&\n 'name' in value[1] &&\n (value[1].name === 'text' || value[1].name === 'equation')\n ) {\n return true;\n }\n\n return false;\n });\n};\n\nexport const dataURIToBlob = (dataURI: string): Blob => {\n const parts = dataURI.split(',');\n const metadata = parts[0] ?? '';\n const base64Data = parts[1] ?? '';\n\n const isBase64 = metadata.includes('base64');\n const byteString = isBase64 ? atob(base64Data) : decodeURIComponent(base64Data);\n\n const mimeTypeMatch = metadata.match(/:(.*?);/);\n const mimeType = mimeTypeMatch ? mimeTypeMatch[1] : 'application/octet-stream';\n\n const byteArray = new Uint8Array(byteString.length);\n\n for (let i = 0; i < byteString.length; i++) {\n byteArray[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([byteArray], { type: mimeType });\n};\n\nexport const jsonToBlob = (json: unknown) => {\n const data = JSON.stringify(json);\n\n return new Blob([data], {\n type: 'application/json',\n });\n};\n"],"names":["GRID_NAMES","STATELESS_TOOLS","removeMask","canvasElementRef","shadowRoot","_a","xPolypad","svgCanvas","maskPath","removeTileButton","sidebar","tabsHeader","tabsBody","firstTabHeader","firstTabBody","removeMusicTiles","musicTiles","logicSpeakerTiles","removeCanvasCredit","creditSection","getCanvasConfig","width","height","renderAs","userType","getCanvasSettings","getReverseAction","action","getReverseMap","data","newData","value","key","getToolAndSubtool","tool","TEACHER_WHITEBOARD_TOOLS","STUDENT_WHITEBOARD_TOOLS","TEACHER_DEFAULT_TOOLS","STUDENT_DEFAULT_TOOLS","getUserTools","getColorsForUser","CANVAS_COLORS","color","getIsWritingTool","penTool","checkTextOrEquationTool","payload","dataURIToBlob","dataURI","parts","metadata","base64Data","byteString","mimeTypeMatch","mimeType","byteArray","i"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-provider.js","sources":["../../../src/features/cue-canvas/cue-canvas-provider.tsx"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport type { CueCanvasCore } from './cue-canvas-core';\nimport type { TCueCanvasColors, TCueCanvasTool, TRenderAs } from './types/cue-canvas';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { useState, memo, useMemo } from 'react';\n\nimport CueCanvasContext from './cue-canvas-context';\nimport { getColorsForUser } from './cue-canvas-helpers';\n\nconst CueCanvasProvider: FC<PropsWithChildren<{ userType: TUserTypes; renderAs: TRenderAs }>> =\n memo(({ children, userType, renderAs }) => {\n const colors = useMemo(() => getColorsForUser(userType, renderAs), [userType, renderAs]);\n\n const [activeInstance, setActiveInstance] = useState<CueCanvasCore>();\n const [activeTool, setActiveTool] = useState<TCueCanvasTool>('pen');\n const [activeColor, setActiveColor] = useState<TCueCanvasColors>(colors[0] as TCueCanvasColors);\n const [homeworkId, setHomeworkId] = useState<string>();\n\n const contextValue = useMemo(\n () => ({\n activeInstance: activeInstance,\n setActiveInstance: setActiveInstance,\n activeTool: activeTool,\n setActiveTool: setActiveTool,\n activeColor,\n setActiveColor,\n homeworkId,\n setHomeworkId,\n }),\n [activeColor, activeInstance, activeTool, homeworkId],\n );\n\n return <CueCanvasContext.Provider value={contextValue}>{children}</CueCanvasContext.Provider>;\n });\n\nexport default CueCanvasProvider;\n"],"names":["CueCanvasProvider","memo","children","userType","renderAs","colors","useMemo","getColorsForUser","activeInstance","setActiveInstance","useState","activeTool","setActiveTool","activeColor","setActiveColor","homeworkId","setHomeworkId","contextValue","CueCanvasContext","CueCanvasProvider$1"],"mappings":";;;;AAUA,MAAMA,IACJC,EAAK,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,UAAAC,QAAe;AACnC,QAAAC,IAASC,EAAQ,MAAMC,EAAiBJ,GAAUC,CAAQ,GAAG,CAACD,GAAUC,CAAQ,CAAC,GAEjF,CAACI,GAAgBC,CAAiB,IAAIC,EAAwB,GAC9D,CAACC,GAAYC,CAAa,IAAIF,EAAyB,KAAK,GAC5D,CAACG,GAAaC,CAAc,IAAIJ,EAA2BL,EAAO,CAAC,CAAqB,GACxF,CAACU,GAAYC,CAAa,IAAIN,EAAiB,GAE/CO,IAAeX;AAAA,IACnB,OAAO;AAAA,MACL,gBAAAE;AAAA,MACA,mBAAAC;AAAA,MACA,YAAAE;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,IAAA;AAAA,IAEF,CAACH,GAAaL,GAAgBG,GAAYI,CAAU;AAAA,EAAA;AAGtD,2BAAQG,EAAiB,UAAjB,EAA0B,OAAOD,GAAe,UAAAf,EAAS,CAAA;AACnE,CAAC,GAEHiB,IAAenB;"}
1
+ {"version":3,"file":"cue-canvas-provider.js","sources":["../../../src/features/cue-canvas/cue-canvas-provider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport { useState, memo, useMemo } from 'react';\n\nimport type { TUserTypes } from '../ui/types';\nimport CueCanvasContext from './cue-canvas-context';\nimport type { CueCanvasCore } from './cue-canvas-core';\nimport { getColorsForUser } from './cue-canvas-helpers';\nimport type { TCueCanvasColors, TCueCanvasTool, TRenderAs } from './types/cue-canvas';\n\nconst CueCanvasProvider: FC<PropsWithChildren<{ userType: TUserTypes; renderAs: TRenderAs }>> =\n memo(({ children, userType, renderAs }) => {\n const colors = useMemo(() => getColorsForUser(userType, renderAs), [userType, renderAs]);\n\n const [activeInstance, setActiveInstance] = useState<CueCanvasCore>();\n const [activeTool, setActiveTool] = useState<TCueCanvasTool>('pen');\n const [activeColor, setActiveColor] = useState<TCueCanvasColors>(colors[0] as TCueCanvasColors);\n const [homeworkId, setHomeworkId] = useState<string>();\n\n const contextValue = useMemo(\n () => ({\n activeInstance: activeInstance,\n setActiveInstance: setActiveInstance,\n activeTool: activeTool,\n setActiveTool: setActiveTool,\n activeColor,\n setActiveColor,\n homeworkId,\n setHomeworkId,\n }),\n [activeColor, activeInstance, activeTool, homeworkId],\n );\n\n return <CueCanvasContext.Provider value={contextValue}>{children}</CueCanvasContext.Provider>;\n });\n\nexport default CueCanvasProvider;\n"],"names":["CueCanvasProvider","memo","children","userType","renderAs","colors","useMemo","getColorsForUser","activeInstance","setActiveInstance","useState","activeTool","setActiveTool","activeColor","setActiveColor","homeworkId","setHomeworkId","contextValue","CueCanvasContext","CueCanvasProvider$1"],"mappings":";;;;AASA,MAAMA,IACJC,EAAK,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,UAAAC,QAAe;AACnC,QAAAC,IAASC,EAAQ,MAAMC,EAAiBJ,GAAUC,CAAQ,GAAG,CAACD,GAAUC,CAAQ,CAAC,GAEjF,CAACI,GAAgBC,CAAiB,IAAIC,EAAwB,GAC9D,CAACC,GAAYC,CAAa,IAAIF,EAAyB,KAAK,GAC5D,CAACG,GAAaC,CAAc,IAAIJ,EAA2BL,EAAO,CAAC,CAAqB,GACxF,CAACU,GAAYC,CAAa,IAAIN,EAAiB,GAE/CO,IAAeX;AAAA,IACnB,OAAO;AAAA,MACL,gBAAAE;AAAA,MACA,mBAAAC;AAAA,MACA,YAAAE;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,IAAA;AAAA,IAEF,CAACH,GAAaL,GAAgBG,GAAYI,CAAU;AAAA,EAAA;AAGtD,2BAAQG,EAAiB,UAAjB,EAA0B,OAAOD,GAAe,UAAAf,EAAS,CAAA;AACnE,CAAC,GAEHiB,IAAenB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nimport React, { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useIsLearnosityLoaded from '../worksheet/learnosity-preloader/use-is-learnosity-loaded';\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport useConfigUpdater from './hooks/use-config-updater';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\nimport useUploadHelper from './hooks/use-upload-helper';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n canvasConfig,\n updateCanvasConfig,\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n const uploadImageToS3 = useUploadHelper({ userId, renderAs, userType });\n const { scriptStatus } = useIsLearnosityLoaded(); // This hook checks if the Polypad script is loaded + (additional scripts)\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n useConfigUpdater(canvasConfig, renderAs);\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current && scriptStatus === 'loaded') {\n const canvasCreateConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n updateCanvasConfig,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig: canvasCreateConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended, scriptStatus]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n id={renderAs === 'whiteboard' ? 'canvasContainer' : canvasId}\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasConfig","updateCanvasConfig","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","uploadImageToS3","useUploadHelper","scriptStatus","useIsLearnosityLoaded","cueCanvasRef","onUpdateActiveTool","useCallback","tool","useHeightExtender","useConfigUpdater","useEffect","canvasCreateConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;;;;AAaA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,MACI;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAC/EC,IAAkBC,EAAgB,EAAE,QAAAb,GAAQ,UAAAI,GAAU,UAAAD,GAAU,GAChE,EAAE,cAAAW,MAAiBC,KAEnBC,IAAeR,EAA6B,IAAI,GAEhDS,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAT,EAAcS,CAAI;AAAA,MACpB;AAAA,MACA,CAACT,CAAa;AAAA,IAAA;AAGE,WAAAU,EAAA;AAAA,MAChB,kBAAAb;AAAA,MACA,cAAAS;AAAA,MACA,aAAAd;AAAA,IAAA,CACD,GACDmB,EAAiBhB,GAAcD,CAAQ,GAEvCkB,EAAU,MAAM;AACV,MAAApB,KAAec,EAAa,YAC9BA,EAAa,QAAQ,iBAErBP,EAAmBO,EAAa,OAAO;AAAA,IACzC,GACC,CAACd,GAAaO,CAAkB,CAAC,GAEpCa,EAAU,MAAM;AACV,MAAAzB,KAAemB,EAAa,WACjBA,EAAA,QAAQ,OAAOnB,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhByB,EAAU,MAAM;AACV,MAAA5B,KAAUsB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAACtB,GAAQD,CAAK,CAAC,GAElB6B,EAAU,MAAM;AACd,UAAI3B,KAAaM,KAAY,CAACe,EAAa,WAAWF,MAAiB,UAAU;AAC/E,cAAMS,IAAqBC,EAAgB/B,GAAOC,GAAQU,GAAUD,CAAQ,GACtEsB,IAAgBC,EAAkBtB,GAAUD,CAAQ,GACpDwB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAA9B;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAkB;AAAA,UACA,gBAAArB;AAAA,UACA,iBAAAgB;AAAA,UACA,QAAAlB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,UACA,oBAAAE;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMqB,EAAc,OAAO;AAAA,YACzB,kBAAApB;AAAA,YACA,cAAcgB;AAAA,YACd,eAAAE;AAAA,YACA,aAAA5B;AAAA,UAAA,CACD,GACDmB,EAAa,UAAUW,GAEnBzB,KACFO,EAAmBkB,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAAC7B,GAAWC,GAAaU,GAAoBd,GAAWM,GAAUa,CAAY,CAAC,GAElFQ,EAAU,MACD,MAAM;AACX,MAAIN,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI1B,MAAa,eAAe,oBAAoBZ;AAAA,QACpD,KAAKe;AAAA,QACL,QAAQd;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEA2B,IAAezC;"}
1
+ {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import React, { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useIsLearnosityLoaded from '../worksheet/learnosity-preloader/use-is-learnosity-loaded';\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport useConfigUpdater from './hooks/use-config-updater';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\nimport useUploadHelper from './hooks/use-upload-helper';\nimport type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n canvasConfig,\n updateCanvasConfig,\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n const uploadImageToS3 = useUploadHelper({ userId, renderAs, userType });\n const { scriptStatus } = useIsLearnosityLoaded(); // This hook checks if the Polypad script is loaded + (additional scripts)\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n useConfigUpdater(canvasConfig, renderAs);\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current && scriptStatus === 'loaded') {\n const canvasCreateConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n updateCanvasConfig,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig: canvasCreateConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended, scriptStatus]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n id={renderAs === 'whiteboard' ? 'canvasContainer' : canvasId}\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasConfig","updateCanvasConfig","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","uploadImageToS3","useUploadHelper","scriptStatus","useIsLearnosityLoaded","cueCanvasRef","onUpdateActiveTool","useCallback","tool","useHeightExtender","useConfigUpdater","useEffect","canvasCreateConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;;;;AAYA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,MACI;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAC/EC,IAAkBC,EAAgB,EAAE,QAAAb,GAAQ,UAAAI,GAAU,UAAAD,GAAU,GAChE,EAAE,cAAAW,MAAiBC,KAEnBC,IAAeR,EAA6B,IAAI,GAEhDS,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAT,EAAcS,CAAI;AAAA,MACpB;AAAA,MACA,CAACT,CAAa;AAAA,IAAA;AAGE,WAAAU,EAAA;AAAA,MAChB,kBAAAb;AAAA,MACA,cAAAS;AAAA,MACA,aAAAd;AAAA,IAAA,CACD,GACDmB,EAAiBhB,GAAcD,CAAQ,GAEvCkB,EAAU,MAAM;AACV,MAAApB,KAAec,EAAa,YAC9BA,EAAa,QAAQ,iBAErBP,EAAmBO,EAAa,OAAO;AAAA,IACzC,GACC,CAACd,GAAaO,CAAkB,CAAC,GAEpCa,EAAU,MAAM;AACV,MAAAzB,KAAemB,EAAa,WACjBA,EAAA,QAAQ,OAAOnB,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhByB,EAAU,MAAM;AACV,MAAA5B,KAAUsB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAACtB,GAAQD,CAAK,CAAC,GAElB6B,EAAU,MAAM;AACd,UAAI3B,KAAaM,KAAY,CAACe,EAAa,WAAWF,MAAiB,UAAU;AAC/E,cAAMS,IAAqBC,EAAgB/B,GAAOC,GAAQU,GAAUD,CAAQ,GACtEsB,IAAgBC,EAAkBtB,GAAUD,CAAQ,GACpDwB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAA9B;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAkB;AAAA,UACA,gBAAArB;AAAA,UACA,iBAAAgB;AAAA,UACA,QAAAlB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,UACA,oBAAAE;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMqB,EAAc,OAAO;AAAA,YACzB,kBAAApB;AAAA,YACA,cAAcgB;AAAA,YACd,eAAAE;AAAA,YACA,aAAA5B;AAAA,UAAA,CACD,GACDmB,EAAa,UAAUW,GAEnBzB,KACFO,EAAmBkB,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAAC7B,GAAWC,GAAaU,GAAoBd,GAAWM,GAAUa,CAAY,CAAC,GAElFQ,EAAU,MACD,MAAM;AACX,MAAIN,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI1B,MAAa,eAAe,oBAAoBZ;AAAA,QACpD,KAAKe;AAAA,QACL,QAAQd;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEA2B,IAAezC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-cavas-styled.js","sources":["../../../src/features/cue-canvas/cue-cavas-styled.tsx"],"sourcesContent":["import type { ICueCanvasWrapper, TCueCanvasColors } from './types/cue-canvas';\n\nimport styled, { css } from 'styled-components';\n\nimport TickIcon from '../../assets/line-icons/icons/check';\nimport DownIcon from '../../assets/line-icons/icons/down';\nimport HighlighterIcon from '../../assets/line-icons/icons/highlighter';\nimport LockIcon from '../../assets/line-icons/icons/lock';\nimport PencilIcon from '../../assets/line-icons/icons/pencil';\nimport RulerIcon from '../../assets/line-icons/icons/ruler';\nimport SketchIcon from '../../assets/line-icons/icons/sketch';\nimport UndoIcon from '../../assets/line-icons/icons/undo';\nimport UnlockIcon from '../../assets/line-icons/icons/unlock';\nimport FlexView from '../ui/layout/flex-view';\nimport { CANVAS_COLORS } from './constants/constants';\n\ninterface IToolProps {\n $active: boolean;\n $activeColor: TCueCanvasColors;\n $shouldAnimate: boolean;\n}\nexport const HWWrapper = styled(FlexView)`\n border: 2px solid;\n`;\n\nexport const StyledPencilIcon = styled(PencilIcon)<IToolProps>(({\n theme,\n $active,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n cursor: ${$active ? 'auto' : 'pointer'};\n .pencil-dark-shade {\n fill: ${$active ? color : colors.GREY_3};\n }\n\n .pencil-light-shade {\n fill: ${$active ? color : colors.GREY_2};\n opacity: ${$active ? 0.3 : 1};\n }\n\n ${!$active &&\n css`\n &:hover {\n .pencil-dark-shade {\n fill: ${colors.GREY_4};\n }\n .pencil-light-shade {\n fill: ${colors.GREY_2};\n }\n }\n `}\n `;\n});\n\nexport const StyledRulerIcon = styled(RulerIcon)<IToolProps>(({\n theme,\n $active,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n\n .ruler-rect-color {\n fill: ${$active ? color : colors.GREY_3};\n }\n\n .ruler-stripe-base {\n fill: ${$active ? color : colors.GREY_2};\n opacity: ${$active ? 0.2 : 1};\n }\n\n .ruler-small-stripe {\n fill: ${colors.REAL_BLACK};\n }\n\n ${!$active &&\n css`\n &:hover {\n .ruler-rect-color {\n fill: ${colors.GREY_4};\n }\n .ruler-stripe-base {\n fill: ${colors.GREY_3};\n }\n }\n `}\n `;\n});\n\nexport const StyledHighlighterWrapper = styled(HighlighterIcon)<IToolProps>(({\n $active,\n theme,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n ${!$active &&\n css`\n &:hover {\n .highlighter-tip {\n fill: ${theme.colors.BLACK};\n }\n\n .highlighter-stripe {\n fill: ${theme.colors.BLACK_50};\n }\n\n .highlighter-light-body {\n fill: ${theme.colors.BLACK_10};\n }\n }\n `}\n\n ${$active &&\n css`\n .highlighter-tip {\n fill: ${color};\n }\n\n .highlighter-stripe {\n fill: ${color};\n opacity: 0.6;\n }\n\n .highlighter-light-body {\n fill: ${color};\n opacity: 0.2;\n }\n `}\n `;\n});\n\nexport const StyledSketchWrapper = styled(SketchIcon)<IToolProps>(({\n $active,\n theme,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n\n ${!$active &&\n css`\n &:hover {\n .pen-tip {\n fill: ${theme.colors.BLACK};\n }\n\n .pen-dark-shade {\n fill: ${theme.colors.BLACK_50};\n }\n\n .pen-light-shade {\n fill: ${theme.colors.BLACK_10};\n }\n }\n `}\n\n ${$active &&\n css`\n cursor: ${$active ? 'auto' : 'pointer'};\n .pen-tip {\n fill: ${color};\n }\n\n .pen-dark-shade {\n fill: ${color};\n opacity: 0.6;\n }\n\n .pen-light-shade {\n fill: ${color};\n opacity: 0.4;\n }\n `}\n `;\n});\n\nexport const StyledLockIcon = styled(LockIcon)`\n width: 20px;\n height: 20px;\n`;\n\nexport const StyledUnlockIcon = styled(UnlockIcon)`\n width: 20px;\n height: 20px;\n`;\n\nexport const StyledWrapper = styled(FlexView)<Omit<IToolProps, '$activeColor' | '$shouldAnimate'>>(\n ({ theme, $active }) => {\n const { colors } = theme;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n width: 32px;\n height: 32px;\n justify-content: center;\n align-items: center;\n border: 1px solid ${colors.WHITE};\n border-radius: 50%;\n transition: all 100ms ease-in-out;\n border: 1px solid ${colors.GREY_1};\n\n ${!$active &&\n css`\n &:hover {\n border: 1px solid ${colors.REAL_BLACK};\n }\n `}\n\n ${$active &&\n css`\n cursor: auto;\n background: ${colors.BLACK};\n .tile-icon {\n fill: ${colors.BLACK};\n }\n svg {\n path,\n rect,\n circle {\n stroke: ${colors.WHITE};\n }\n .hover-eraser {\n stroke: none;\n fill: ${colors.WHITE};\n }\n }\n `}\n `;\n },\n);\n\nexport const StyledCheckIcon = styled(TickIcon)`\n path {\n stroke: ${'white'};\n }\n`;\n\nexport const RedoIcon = styled(UndoIcon)`\n transform: scaleX(-1);\n`;\n\nexport const PaletteWrapper = styled(FlexView)<{ $top: number }>`\n position: absolute;\n top: ${({ $top }) => $top}px;\n transition:\n opacity 0.5s ease,\n transform 0.5s ease;\n`;\n\nexport const CueCanvasWrapper = styled(FlexView)<ICueCanvasWrapper>(\n ({ $canScribble, $canRender, $renderAs }) => `\n display: ${$canRender ? 'block' : 'none'};\n opacity: ${$canScribble ? 1 : 0.5};\n pointer-events: ${$canScribble ? 'auto' : 'none'};\n\n ${\n $renderAs === 'canvas' &&\n $canScribble &&\n `\n background-image: radial-gradient(rgb(43 43 43 / 8%) 2px, transparent 10%);\n background-position:0 0,32px 32px;\n background-size: 30px 32px;\n `\n }\n \n`,\n);\n\nexport const ColorPicker = styled(FlexView)<{ $color: TCueCanvasColors }>(\n ({ $color }) => `\nbackground: ${CANVAS_COLORS[$color]};\n`,\n);\n\nexport const StyledDownIcon = styled(DownIcon)<{ $isAnimating: boolean }>`\n pointer-events: none;\n transition: transform 0.5s ease;\n transform: ${({ $isAnimating }) => ($isAnimating ? 'rotate(180deg)' : 'rotate(0deg)')};\n`;\n\nexport const PenIconWrapper = styled(FlexView)`\n overflow: hidden;\n border-right: 1px solid ${({ theme }) => theme.colors.GREY_1};\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n padding: 8px 8px 0 8px;\n overflow: hidden;\n bottom: 58px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n transition:\n opacity 0.5s ease,\n transform 0.5s ease;\n\n :hover {\n cursor: pointer;\n }\n`;\n"],"names":["HWWrapper","styled","FlexView","StyledPencilIcon","PencilIcon","theme","$active","$activeColor","$shouldAnimate","colors","color","CANVAS_COLORS","css","StyledRulerIcon","RulerIcon","StyledHighlighterWrapper","HighlighterIcon","StyledSketchWrapper","SketchIcon","StyledLockIcon","LockIcon","StyledUnlockIcon","UnlockIcon","StyledWrapper","StyledCheckIcon","TickIcon","RedoIcon","UndoIcon","PaletteWrapper","$top","CueCanvasWrapper","$canScribble","$canRender","$renderAs","ColorPicker","$color","StyledDownIcon","DownIcon","$isAnimating","PenIconWrapper","MenuWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"cue-cavas-styled.js","sources":["../../../src/features/cue-canvas/cue-cavas-styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport TickIcon from '../../assets/line-icons/icons/check';\nimport DownIcon from '../../assets/line-icons/icons/down';\nimport HighlighterIcon from '../../assets/line-icons/icons/highlighter';\nimport LockIcon from '../../assets/line-icons/icons/lock';\nimport PencilIcon from '../../assets/line-icons/icons/pencil';\nimport RulerIcon from '../../assets/line-icons/icons/ruler';\nimport SketchIcon from '../../assets/line-icons/icons/sketch';\nimport UndoIcon from '../../assets/line-icons/icons/undo';\nimport UnlockIcon from '../../assets/line-icons/icons/unlock';\nimport FlexView from '../ui/layout/flex-view';\nimport { CANVAS_COLORS } from './constants/constants';\nimport type { ICueCanvasWrapper, TCueCanvasColors } from './types/cue-canvas';\n\ninterface IToolProps {\n $active: boolean;\n $activeColor: TCueCanvasColors;\n $shouldAnimate: boolean;\n}\nexport const HWWrapper = styled(FlexView)`\n border: 2px solid;\n`;\n\nexport const StyledPencilIcon = styled(PencilIcon)<IToolProps>(({\n theme,\n $active,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n cursor: ${$active ? 'auto' : 'pointer'};\n .pencil-dark-shade {\n fill: ${$active ? color : colors.GREY_3};\n }\n\n .pencil-light-shade {\n fill: ${$active ? color : colors.GREY_2};\n opacity: ${$active ? 0.3 : 1};\n }\n\n ${!$active &&\n css`\n &:hover {\n .pencil-dark-shade {\n fill: ${colors.GREY_4};\n }\n .pencil-light-shade {\n fill: ${colors.GREY_2};\n }\n }\n `}\n `;\n});\n\nexport const StyledRulerIcon = styled(RulerIcon)<IToolProps>(({\n theme,\n $active,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n\n .ruler-rect-color {\n fill: ${$active ? color : colors.GREY_3};\n }\n\n .ruler-stripe-base {\n fill: ${$active ? color : colors.GREY_2};\n opacity: ${$active ? 0.2 : 1};\n }\n\n .ruler-small-stripe {\n fill: ${colors.REAL_BLACK};\n }\n\n ${!$active &&\n css`\n &:hover {\n .ruler-rect-color {\n fill: ${colors.GREY_4};\n }\n .ruler-stripe-base {\n fill: ${colors.GREY_3};\n }\n }\n `}\n `;\n});\n\nexport const StyledHighlighterWrapper = styled(HighlighterIcon)<IToolProps>(({\n $active,\n theme,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n ${!$active &&\n css`\n &:hover {\n .highlighter-tip {\n fill: ${theme.colors.BLACK};\n }\n\n .highlighter-stripe {\n fill: ${theme.colors.BLACK_50};\n }\n\n .highlighter-light-body {\n fill: ${theme.colors.BLACK_10};\n }\n }\n `}\n\n ${$active &&\n css`\n .highlighter-tip {\n fill: ${color};\n }\n\n .highlighter-stripe {\n fill: ${color};\n opacity: 0.6;\n }\n\n .highlighter-light-body {\n fill: ${color};\n opacity: 0.2;\n }\n `}\n `;\n});\n\nexport const StyledSketchWrapper = styled(SketchIcon)<IToolProps>(({\n $active,\n theme,\n $activeColor,\n $shouldAnimate,\n}) => {\n const { colors } = theme;\n const color = $active ? CANVAS_COLORS[$activeColor] : colors.REAL_BLACK_50;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n position: relative;\n transition: top 0.3s ease-in-out;\n top: ${$active && $shouldAnimate ? '0px' : '8px'};\n\n ${!$active &&\n css`\n &:hover {\n .pen-tip {\n fill: ${theme.colors.BLACK};\n }\n\n .pen-dark-shade {\n fill: ${theme.colors.BLACK_50};\n }\n\n .pen-light-shade {\n fill: ${theme.colors.BLACK_10};\n }\n }\n `}\n\n ${$active &&\n css`\n cursor: ${$active ? 'auto' : 'pointer'};\n .pen-tip {\n fill: ${color};\n }\n\n .pen-dark-shade {\n fill: ${color};\n opacity: 0.6;\n }\n\n .pen-light-shade {\n fill: ${color};\n opacity: 0.4;\n }\n `}\n `;\n});\n\nexport const StyledLockIcon = styled(LockIcon)`\n width: 20px;\n height: 20px;\n`;\n\nexport const StyledUnlockIcon = styled(UnlockIcon)`\n width: 20px;\n height: 20px;\n`;\n\nexport const StyledWrapper = styled(FlexView)<Omit<IToolProps, '$activeColor' | '$shouldAnimate'>>(\n ({ theme, $active }) => {\n const { colors } = theme;\n\n return css`\n cursor: ${$active ? 'auto' : 'pointer'};\n width: 32px;\n height: 32px;\n justify-content: center;\n align-items: center;\n border: 1px solid ${colors.WHITE};\n border-radius: 50%;\n transition: all 100ms ease-in-out;\n border: 1px solid ${colors.GREY_1};\n\n ${!$active &&\n css`\n &:hover {\n border: 1px solid ${colors.REAL_BLACK};\n }\n `}\n\n ${$active &&\n css`\n cursor: auto;\n background: ${colors.BLACK};\n .tile-icon {\n fill: ${colors.BLACK};\n }\n svg {\n path,\n rect,\n circle {\n stroke: ${colors.WHITE};\n }\n .hover-eraser {\n stroke: none;\n fill: ${colors.WHITE};\n }\n }\n `}\n `;\n },\n);\n\nexport const StyledCheckIcon = styled(TickIcon)`\n path {\n stroke: ${'white'};\n }\n`;\n\nexport const RedoIcon = styled(UndoIcon)`\n transform: scaleX(-1);\n`;\n\nexport const PaletteWrapper = styled(FlexView)<{ $top: number }>`\n position: absolute;\n top: ${({ $top }) => $top}px;\n transition:\n opacity 0.5s ease,\n transform 0.5s ease;\n`;\n\nexport const CueCanvasWrapper = styled(FlexView)<ICueCanvasWrapper>(\n ({ $canScribble, $canRender, $renderAs }) => `\n display: ${$canRender ? 'block' : 'none'};\n opacity: ${$canScribble ? 1 : 0.5};\n pointer-events: ${$canScribble ? 'auto' : 'none'};\n\n ${\n $renderAs === 'canvas' &&\n $canScribble &&\n `\n background-image: radial-gradient(rgb(43 43 43 / 8%) 2px, transparent 10%);\n background-position:0 0,32px 32px;\n background-size: 30px 32px;\n `\n }\n \n`,\n);\n\nexport const ColorPicker = styled(FlexView)<{ $color: TCueCanvasColors }>(\n ({ $color }) => `\nbackground: ${CANVAS_COLORS[$color]};\n`,\n);\n\nexport const StyledDownIcon = styled(DownIcon)<{ $isAnimating: boolean }>`\n pointer-events: none;\n transition: transform 0.5s ease;\n transform: ${({ $isAnimating }) => ($isAnimating ? 'rotate(180deg)' : 'rotate(0deg)')};\n`;\n\nexport const PenIconWrapper = styled(FlexView)`\n overflow: hidden;\n border-right: 1px solid ${({ theme }) => theme.colors.GREY_1};\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n padding: 8px 8px 0 8px;\n overflow: hidden;\n bottom: 58px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n transition:\n opacity 0.5s ease,\n transform 0.5s ease;\n\n :hover {\n cursor: pointer;\n }\n`;\n"],"names":["HWWrapper","styled","FlexView","StyledPencilIcon","PencilIcon","theme","$active","$activeColor","$shouldAnimate","colors","color","CANVAS_COLORS","css","StyledRulerIcon","RulerIcon","StyledHighlighterWrapper","HighlighterIcon","StyledSketchWrapper","SketchIcon","StyledLockIcon","LockIcon","StyledUnlockIcon","UnlockIcon","StyledWrapper","StyledCheckIcon","TickIcon","RedoIcon","UndoIcon","PaletteWrapper","$top","CueCanvasWrapper","$canScribble","$canRender","$renderAs","ColorPicker","$color","StyledDownIcon","DownIcon","$isAnimating","PenIconWrapper","MenuWrapper"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst getCanvasDataFromInitialData = (\n initialCanvasData: Array<IChannelMessage> | undefined,\n): Record<string, IActionData[]> => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n};\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const initialCanvasDataMap = useMemo(\n () => getCanvasDataFromInitialData(initialCanvasData),\n [initialCanvasData],\n );\n const [initialStrokesData, setInitialStrokesData] = useState<\n Record<string, IActionData[]> | undefined\n >(undefined);\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n const ttl = type === 'canvas' ? 0 : channelId.includes('practice') ? 0 : 24;\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: ttl,\n logger: logEvent,\n }),\n [channelId, logEvent, ttl],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = initialCanvasDataMap;\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n setInitialStrokesData(strokesPerWidgetMap);\n },\n [initialCanvasDataMap],\n );\n\n const { publish, channelStatus, channel, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<IPublishData, ICanvasUpdateConfig>({\n channelOptions,\n consumerFn: onMessageReceive,\n metadataRequired: type === 'whiteboard',\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n setChannelMetadata,\n channelMetadata,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","getCanvasDataFromInitialData","initialCanvasData","map","message","_a","qrId","strokeData","_b","useCanvasSyncBroker","channelId","logEvent","type","initialCanvasDataMap","useMemo","initialStrokesData","setInitialStrokesData","useState","callbacksMapRef","useRef","ttl","channelOptions","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","publish","channelStatus","channel","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
1
+ {"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\nimport type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst getCanvasDataFromInitialData = (\n initialCanvasData: Array<IChannelMessage> | undefined,\n): Record<string, IActionData[]> => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n};\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const initialCanvasDataMap = useMemo(\n () => getCanvasDataFromInitialData(initialCanvasData),\n [initialCanvasData],\n );\n const [initialStrokesData, setInitialStrokesData] = useState<\n Record<string, IActionData[]> | undefined\n >(undefined);\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n const ttl = type === 'canvas' ? 0 : channelId.includes('practice') ? 0 : 24;\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: ttl,\n logger: logEvent,\n }),\n [channelId, logEvent, ttl],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = initialCanvasDataMap;\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n setInitialStrokesData(strokesPerWidgetMap);\n },\n [initialCanvasDataMap],\n );\n\n const { publish, channelStatus, channel, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<IPublishData, ICanvasUpdateConfig>({\n channelOptions,\n consumerFn: onMessageReceive,\n metadataRequired: type === 'whiteboard',\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n setChannelMetadata,\n channelMetadata,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","getCanvasDataFromInitialData","initialCanvasData","map","message","_a","qrId","strokeData","_b","useCanvasSyncBroker","channelId","logEvent","type","initialCanvasDataMap","useMemo","initialStrokesData","setInitialStrokesData","useState","callbacksMapRef","useRef","ttl","channelOptions","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","publish","channelStatus","channel","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-config-updater.js","sources":["../../../../src/features/cue-canvas/hooks/use-config-updater.ts"],"sourcesContent":["import type { ICanvasUpdateConfig, TRenderAs } from '../types/cue-canvas';\n\nimport { useEffect } from 'react';\n\nimport { useCueCanvasActions } from './use-cue-canvas-actions';\n\nconst useConfigUpdater = (\n canvasConfig: ICanvasUpdateConfig | null | undefined,\n renderAs: TRenderAs,\n) => {\n const { activeInstance: cueCanvas } = useCueCanvasActions();\n\n useEffect(() => {\n if (!cueCanvas || renderAs === 'canvas') {\n return;\n }\n\n if (canvasConfig?.gridName) {\n cueCanvas.changeGrid(canvasConfig?.gridName);\n }\n\n if (canvasConfig?.dimesion) {\n cueCanvas.setViewPort(canvasConfig?.dimesion);\n }\n }, [canvasConfig, cueCanvas, renderAs]);\n};\n\nexport default useConfigUpdater;\n"],"names":["useConfigUpdater","canvasConfig","renderAs","cueCanvas","useCueCanvasActions","useEffect"],"mappings":";;AAMM,MAAAA,IAAmB,CACvBC,GACAC,MACG;AACH,QAAM,EAAE,gBAAgBC,EAAU,IAAIC,EAAoB;AAE1D,EAAAC,EAAU,MAAM;AACV,IAAA,CAACF,KAAaD,MAAa,aAI3BD,KAAA,QAAAA,EAAc,YACNE,EAAA,WAAWF,KAAA,gBAAAA,EAAc,QAAQ,GAGzCA,KAAA,QAAAA,EAAc,YACNE,EAAA,YAAYF,KAAA,gBAAAA,EAAc,QAAQ;AAAA,EAE7C,GAAA,CAACA,GAAcE,GAAWD,CAAQ,CAAC;AACxC;"}
1
+ {"version":3,"file":"use-config-updater.js","sources":["../../../../src/features/cue-canvas/hooks/use-config-updater.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { ICanvasUpdateConfig, TRenderAs } from '../types/cue-canvas';\nimport { useCueCanvasActions } from './use-cue-canvas-actions';\n\nconst useConfigUpdater = (\n canvasConfig: ICanvasUpdateConfig | null | undefined,\n renderAs: TRenderAs,\n) => {\n const { activeInstance: cueCanvas } = useCueCanvasActions();\n\n useEffect(() => {\n if (!cueCanvas || renderAs === 'canvas') {\n return;\n }\n\n if (canvasConfig?.gridName) {\n cueCanvas.changeGrid(canvasConfig?.gridName);\n }\n\n if (canvasConfig?.dimesion) {\n cueCanvas.setViewPort(canvasConfig?.dimesion);\n }\n }, [canvasConfig, cueCanvas, renderAs]);\n};\n\nexport default useConfigUpdater;\n"],"names":["useConfigUpdater","canvasConfig","renderAs","cueCanvas","useCueCanvasActions","useEffect"],"mappings":";;AAKM,MAAAA,IAAmB,CACvBC,GACAC,MACG;AACH,QAAM,EAAE,gBAAgBC,EAAU,IAAIC,EAAoB;AAE1D,EAAAC,EAAU,MAAM;AACV,IAAA,CAACF,KAAaD,MAAa,aAI3BD,KAAA,QAAAA,EAAc,YACNE,EAAA,WAAWF,KAAA,gBAAAA,EAAc,QAAQ,GAGzCA,KAAA,QAAAA,EAAc,YACNE,EAAA,YAAYF,KAAA,gBAAAA,EAAc,QAAQ;AAAA,EAE7C,GAAA,CAACA,GAAcE,GAAWD,CAAQ,CAAC;AACxC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-height-extender.js","sources":["../../../../src/features/cue-canvas/hooks/use-height-extender.ts"],"sourcesContent":["import type { CueCanvasCore } from '../cue-canvas-core';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { useCueCanvasActions } from './use-cue-canvas-actions';\n\ninterface IUseHeightIncreaseProps {\n canvasElementRef: React.RefObject<HTMLElement | null>;\n cueCanvasRef: React.RefObject<CueCanvasCore | null> | undefined;\n canScribble: boolean;\n}\n\nconst useHeightExtender = ({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n}: IUseHeightIncreaseProps) => {\n const isScribblingRef = useRef<boolean>(false);\n const shouldIncreaseHeightRef = useRef<boolean>(false);\n const { isWritingToolActive } = useCueCanvasActions();\n\n const handlePointerDown = useCallback(() => {\n isScribblingRef.current = true;\n }, []);\n\n const handlePointerUp = useCallback(() => {\n if (canvasElementRef.current && shouldIncreaseHeightRef.current) {\n shouldIncreaseHeightRef.current = false;\n\n const rect = canvasElementRef.current.getBoundingClientRect();\n const updatedHeight = rect.height + 200;\n\n cueCanvasRef?.current?.updateHeight(updatedHeight);\n }\n\n isScribblingRef.current = false;\n }, [canvasElementRef, cueCanvasRef]);\n\n const handlePointerMove = useCallback(\n (event: MouseEvent) => {\n if (isScribblingRef.current && canvasElementRef.current) {\n const rect = canvasElementRef.current.getBoundingClientRect();\n const y = event.clientY - rect.top;\n\n if (y >= rect.height - 200) {\n shouldIncreaseHeightRef.current = true;\n }\n }\n },\n [canvasElementRef],\n );\n\n useEffect(() => {\n const canvasEle = canvasElementRef.current;\n\n if (canScribble && canvasEle && isWritingToolActive) {\n canvasEle.addEventListener('pointerdown', handlePointerDown);\n canvasEle.addEventListener('pointerup', handlePointerUp);\n canvasEle.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n canvasEle.removeEventListener('pointerdown', handlePointerDown);\n canvasEle.removeEventListener('pointerup', handlePointerUp);\n canvasEle.removeEventListener('pointermove', handlePointerMove);\n };\n }\n }, [\n canvasElementRef,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n canScribble,\n isWritingToolActive,\n ]);\n};\n\nexport default useHeightExtender;\n"],"names":["useHeightExtender","canvasElementRef","cueCanvasRef","canScribble","isScribblingRef","useRef","shouldIncreaseHeightRef","isWritingToolActive","useCueCanvasActions","handlePointerDown","useCallback","handlePointerUp","updatedHeight","_a","handlePointerMove","event","rect","useEffect","canvasEle"],"mappings":";;AAYA,MAAMA,IAAoB,CAAC;AAAA,EACzB,kBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AACF,MAA+B;AACvB,QAAAC,IAAkBC,EAAgB,EAAK,GACvCC,IAA0BD,EAAgB,EAAK,GAC/C,EAAE,qBAAAE,MAAwBC,KAE1BC,IAAoBC,EAAY,MAAM;AAC1C,IAAAN,EAAgB,UAAU;AAAA,EAC5B,GAAG,CAAE,CAAA,GAECO,IAAkBD,EAAY,MAAM;;AACpC,QAAAT,EAAiB,WAAWK,EAAwB,SAAS;AAC/D,MAAAA,EAAwB,UAAU;AAG5B,YAAAM,IADOX,EAAiB,QAAQ,sBAAsB,EACjC,SAAS;AAEtB,OAAAY,IAAAX,KAAA,gBAAAA,EAAA,YAAA,QAAAW,EAAS,aAAaD;AAAA,IACtC;AAEA,IAAAR,EAAgB,UAAU;AAAA,EAAA,GACzB,CAACH,GAAkBC,CAAY,CAAC,GAE7BY,IAAoBJ;AAAA,IACxB,CAACK,MAAsB;AACjB,UAAAX,EAAgB,WAAWH,EAAiB,SAAS;AACjD,cAAAe,IAAOf,EAAiB,QAAQ,sBAAsB;AAGxD,QAFMc,EAAM,UAAUC,EAAK,OAEtBA,EAAK,SAAS,QACrBV,EAAwB,UAAU;AAAA,MAEtC;AAAA,IACF;AAAA,IACA,CAACL,CAAgB;AAAA,EAAA;AAGnB,EAAAgB,EAAU,MAAM;AACd,UAAMC,IAAYjB,EAAiB;AAE/B,QAAAE,KAAee,KAAaX;AACpB,aAAAW,EAAA,iBAAiB,eAAeT,CAAiB,GACjDS,EAAA,iBAAiB,aAAaP,CAAe,GAC7CO,EAAA,iBAAiB,eAAeJ,CAAiB,GAEpD,MAAM;AACD,QAAAI,EAAA,oBAAoB,eAAeT,CAAiB,GACpDS,EAAA,oBAAoB,aAAaP,CAAe,GAChDO,EAAA,oBAAoB,eAAeJ,CAAiB;AAAA,MAAA;AAAA,EAElE,GACC;AAAA,IACDb;AAAA,IACAQ;AAAA,IACAK;AAAA,IACAH;AAAA,IACAR;AAAA,IACAI;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"use-height-extender.js","sources":["../../../../src/features/cue-canvas/hooks/use-height-extender.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport type { CueCanvasCore } from '../cue-canvas-core';\nimport { useCueCanvasActions } from './use-cue-canvas-actions';\n\ninterface IUseHeightIncreaseProps {\n canvasElementRef: React.RefObject<HTMLElement | null>;\n cueCanvasRef: React.RefObject<CueCanvasCore | null> | undefined;\n canScribble: boolean;\n}\n\nconst useHeightExtender = ({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n}: IUseHeightIncreaseProps) => {\n const isScribblingRef = useRef<boolean>(false);\n const shouldIncreaseHeightRef = useRef<boolean>(false);\n const { isWritingToolActive } = useCueCanvasActions();\n\n const handlePointerDown = useCallback(() => {\n isScribblingRef.current = true;\n }, []);\n\n const handlePointerUp = useCallback(() => {\n if (canvasElementRef.current && shouldIncreaseHeightRef.current) {\n shouldIncreaseHeightRef.current = false;\n\n const rect = canvasElementRef.current.getBoundingClientRect();\n const updatedHeight = rect.height + 200;\n\n cueCanvasRef?.current?.updateHeight(updatedHeight);\n }\n\n isScribblingRef.current = false;\n }, [canvasElementRef, cueCanvasRef]);\n\n const handlePointerMove = useCallback(\n (event: MouseEvent) => {\n if (isScribblingRef.current && canvasElementRef.current) {\n const rect = canvasElementRef.current.getBoundingClientRect();\n const y = event.clientY - rect.top;\n\n if (y >= rect.height - 200) {\n shouldIncreaseHeightRef.current = true;\n }\n }\n },\n [canvasElementRef],\n );\n\n useEffect(() => {\n const canvasEle = canvasElementRef.current;\n\n if (canScribble && canvasEle && isWritingToolActive) {\n canvasEle.addEventListener('pointerdown', handlePointerDown);\n canvasEle.addEventListener('pointerup', handlePointerUp);\n canvasEle.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n canvasEle.removeEventListener('pointerdown', handlePointerDown);\n canvasEle.removeEventListener('pointerup', handlePointerUp);\n canvasEle.removeEventListener('pointermove', handlePointerMove);\n };\n }\n }, [\n canvasElementRef,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n canScribble,\n isWritingToolActive,\n ]);\n};\n\nexport default useHeightExtender;\n"],"names":["useHeightExtender","canvasElementRef","cueCanvasRef","canScribble","isScribblingRef","useRef","shouldIncreaseHeightRef","isWritingToolActive","useCueCanvasActions","handlePointerDown","useCallback","handlePointerUp","updatedHeight","_a","handlePointerMove","event","rect","useEffect","canvasEle"],"mappings":";;AAWA,MAAMA,IAAoB,CAAC;AAAA,EACzB,kBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AACF,MAA+B;AACvB,QAAAC,IAAkBC,EAAgB,EAAK,GACvCC,IAA0BD,EAAgB,EAAK,GAC/C,EAAE,qBAAAE,MAAwBC,KAE1BC,IAAoBC,EAAY,MAAM;AAC1C,IAAAN,EAAgB,UAAU;AAAA,EAC5B,GAAG,CAAE,CAAA,GAECO,IAAkBD,EAAY,MAAM;;AACpC,QAAAT,EAAiB,WAAWK,EAAwB,SAAS;AAC/D,MAAAA,EAAwB,UAAU;AAG5B,YAAAM,IADOX,EAAiB,QAAQ,sBAAsB,EACjC,SAAS;AAEtB,OAAAY,IAAAX,KAAA,gBAAAA,EAAA,YAAA,QAAAW,EAAS,aAAaD;AAAA,IACtC;AAEA,IAAAR,EAAgB,UAAU;AAAA,EAAA,GACzB,CAACH,GAAkBC,CAAY,CAAC,GAE7BY,IAAoBJ;AAAA,IACxB,CAACK,MAAsB;AACjB,UAAAX,EAAgB,WAAWH,EAAiB,SAAS;AACjD,cAAAe,IAAOf,EAAiB,QAAQ,sBAAsB;AAGxD,QAFMc,EAAM,UAAUC,EAAK,OAEtBA,EAAK,SAAS,QACrBV,EAAwB,UAAU;AAAA,MAEtC;AAAA,IACF;AAAA,IACA,CAACL,CAAgB;AAAA,EAAA;AAGnB,EAAAgB,EAAU,MAAM;AACd,UAAMC,IAAYjB,EAAiB;AAE/B,QAAAE,KAAee,KAAaX;AACpB,aAAAW,EAAA,iBAAiB,eAAeT,CAAiB,GACjDS,EAAA,iBAAiB,aAAaP,CAAe,GAC7CO,EAAA,iBAAiB,eAAeJ,CAAiB,GAEpD,MAAM;AACD,QAAAI,EAAA,oBAAoB,eAAeT,CAAiB,GACpDS,EAAA,oBAAoB,aAAaP,CAAe,GAChDO,EAAA,oBAAoB,eAAeJ,CAAiB;AAAA,MAAA;AAAA,EAElE,GACC;AAAA,IACDb;AAAA,IACAQ;AAAA,IACAK;AAAA,IACAH;AAAA,IACAR;AAAA,IACAI;AAAA,EAAA,CACD;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-upload-helper.js","sources":["../../../../src/features/cue-canvas/hooks/use-upload-helper.ts"],"sourcesContent":["import type { TUserTypes } from '../../ui/types';\nimport type { TRenderAs } from '../types/cue-canvas';\n\nimport { useCallback } from 'react';\nimport { useRef } from 'react';\n\nimport useS3ImageUploadHelper from '../../worksheet/worksheet/hooks/use-s3-helper';\n\ninterface IUseUploadHelper {\n userId: string;\n renderAs: TRenderAs;\n userType: TUserTypes;\n}\nconst QUERY = { type: 'cuemath_whiteboard' };\n\nconst useUploadHelper = (props: IUseUploadHelper) => {\n const { userId, renderAs, userType } = props;\n const uploadImageRef = useRef<(file: File) => Promise<string>>(null);\n const uploadImages = useS3ImageUploadHelper({\n studentId: userId,\n query: QUERY,\n enabled: renderAs === 'whiteboard' && userType === 'TEACHER',\n });\n\n const uploadImageToS3 = useCallback(\n async (file: File) => {\n const urls = await uploadImages({\n fileKey: `media/cuemath-whiteboard/`,\n images: [{ file: file, url: '' }],\n });\n\n if (urls && urls.length > 0) {\n const url = urls[0] ?? 'error';\n\n return url;\n }\n\n return 'error';\n },\n [uploadImages],\n );\n\n uploadImageRef.current = uploadImageToS3;\n\n return uploadImageToS3;\n};\n\nexport default useUploadHelper;\n"],"names":["QUERY","useUploadHelper","props","userId","renderAs","userType","uploadImageRef","useRef","uploadImages","useS3ImageUploadHelper","uploadImageToS3","useCallback","file","urls"],"mappings":";;AAaA,MAAMA,IAAQ,EAAE,MAAM,wBAEhBC,IAAkB,CAACC,MAA4B;AACnD,QAAM,EAAE,QAAAC,GAAQ,UAAAC,GAAU,UAAAC,EAAA,IAAaH,GACjCI,IAAiBC,EAAwC,IAAI,GAC7DC,IAAeC,EAAuB;AAAA,IAC1C,WAAWN;AAAA,IACX,OAAOH;AAAA,IACP,SAASI,MAAa,gBAAgBC,MAAa;AAAA,EAAA,CACpD,GAEKK,IAAkBC;AAAA,IACtB,OAAOC,MAAe;AACd,YAAAC,IAAO,MAAML,EAAa;AAAA,QAC9B,SAAS;AAAA,QACT,QAAQ,CAAC,EAAE,MAAAI,GAAY,KAAK,IAAI;AAAA,MAAA,CACjC;AAEG,aAAAC,KAAQA,EAAK,SAAS,IACZA,EAAK,CAAC,KAAK,UAKlB;AAAA,IACT;AAAA,IACA,CAACL,CAAY;AAAA,EAAA;AAGf,SAAAF,EAAe,UAAUI,GAElBA;AACT;"}
1
+ {"version":3,"file":"use-upload-helper.js","sources":["../../../../src/features/cue-canvas/hooks/use-upload-helper.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport type { TUserTypes } from '../../ui/types';\nimport useS3ImageUploadHelper from '../../worksheet/worksheet/hooks/use-s3-helper';\nimport type { TRenderAs } from '../types/cue-canvas';\n\ninterface IUseUploadHelper {\n userId: string;\n renderAs: TRenderAs;\n userType: TUserTypes;\n}\nconst QUERY = { type: 'cuemath_whiteboard' };\n\nconst useUploadHelper = (props: IUseUploadHelper) => {\n const { userId, renderAs, userType } = props;\n const uploadImageRef = useRef<(file: File) => Promise<string>>(null);\n const uploadImages = useS3ImageUploadHelper({\n studentId: userId,\n query: QUERY,\n enabled: renderAs === 'whiteboard' && userType === 'TEACHER',\n });\n\n const uploadImageToS3 = useCallback(\n async (file: File) => {\n const urls = await uploadImages({\n fileKey: `media/cuemath-whiteboard/`,\n images: [{ file: file, url: '' }],\n });\n\n if (urls && urls.length > 0) {\n const url = urls[0] ?? 'error';\n\n return url;\n }\n\n return 'error';\n },\n [uploadImages],\n );\n\n uploadImageRef.current = uploadImageToS3;\n\n return uploadImageToS3;\n};\n\nexport default useUploadHelper;\n"],"names":["QUERY","useUploadHelper","props","userId","renderAs","userType","uploadImageRef","useRef","uploadImages","useS3ImageUploadHelper","uploadImageToS3","useCallback","file","urls"],"mappings":";;AAWA,MAAMA,IAAQ,EAAE,MAAM,wBAEhBC,IAAkB,CAACC,MAA4B;AACnD,QAAM,EAAE,QAAAC,GAAQ,UAAAC,GAAU,UAAAC,EAAA,IAAaH,GACjCI,IAAiBC,EAAwC,IAAI,GAC7DC,IAAeC,EAAuB;AAAA,IAC1C,WAAWN;AAAA,IACX,OAAOH;AAAA,IACP,SAASI,MAAa,gBAAgBC,MAAa;AAAA,EAAA,CACpD,GAEKK,IAAkBC;AAAA,IACtB,OAAOC,MAAe;AACd,YAAAC,IAAO,MAAML,EAAa;AAAA,QAC9B,SAAS;AAAA,QACT,QAAQ,CAAC,EAAE,MAAAI,GAAY,KAAK,IAAI;AAAA,MAAA,CACjC;AAEG,aAAAC,KAAQA,EAAK,SAAS,IACZA,EAAK,CAAC,KAAK,UAKlB;AAAA,IACT;AAAA,IACA,CAACL,CAAY;AAAA,EAAA;AAGf,SAAAF,EAAe,UAAUI,GAElBA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"homework-menu.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-menu.tsx"],"sourcesContent":["import type { IHomeWorkMenuProps } from './homework-types';\n\nimport { memo } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport HWRequest from './homework-request';\nimport * as Styled from './homework-styled';\n\nconst HomeWorkMenu: React.FC<IHomeWorkMenuProps> = ({ onSelect, hwRequests }) => {\n return (\n <Styled.MenuContainer>\n <FlexView>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexWrap\n $gutterX={0.5}\n $gapX={0.5}\n >\n <FlexView $flexDirection=\"row\" $gapX={0.5}>\n <FlexView $width={'184px'} $gutterX={1}>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HOMEWORK\n </Text>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HELP REQUESTS\n </Text>\n </FlexView>\n <Clickable onClick={onSelect} label=\"close activities menu\">\n <CrossIcon color=\"WHITE\" />\n </Clickable>\n </FlexView>\n\n {hwRequests.map(item => (\n <FlexView $gutterX={0.25} $gapX={0.5} key={item.created_on_ts}>\n <HWRequest hwRequest={item} onSelect={onSelect} studentName={item.student_name} />\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n </Styled.MenuContainer>\n );\n};\n\nexport default memo(HomeWorkMenu);\n"],"names":["HomeWorkMenu","onSelect","hwRequests","jsx","Styled.MenuContainer","FlexView","jsxs","Text","Clickable","CrossIcon","item","HWRequest","HomeWorkMenu$1","memo"],"mappings":";;;;;;;;AAWA,MAAMA,IAA6C,CAAC,EAAE,UAAAC,GAAU,YAAAC,QAE3D,gBAAAC,EAAAC,GAAA,EACC,4BAACC,GACC,EAAA,UAAA,gBAAAC;AAAA,EAACD;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,WAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IAEP,UAAA;AAAA,MAAA,gBAAAC,EAACD,GAAS,EAAA,gBAAe,OAAM,OAAO,KACpC,UAAA;AAAA,QAAA,gBAAAC,EAACD,GAAS,EAAA,QAAQ,SAAS,UAAU,GACnC,UAAA;AAAA,UAAA,gBAAAF,EAACI,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,YAAA;AAAA,4BACCA,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,iBAAA;AAAA,QAAA,GACF;AAAA,QACA,gBAAAJ,EAACK,GAAU,EAAA,SAASP,GAAU,OAAM,yBAClC,UAAC,gBAAAE,EAAAM,GAAA,EAAU,OAAM,QAAA,CAAQ,EAC3B,CAAA;AAAA,MAAA,GACF;AAAA,MAECP,EAAW,IAAI,CACdQ,MAAA,gBAAAP,EAACE,KAAS,UAAU,MAAM,OAAO,KAC/B,UAAA,gBAAAF,EAACQ,KAAU,WAAWD,GAAM,UAAAT,GAAoB,aAAaS,EAAK,cAAc,EADvC,GAAAA,EAAK,aAEhD,CACD;AAAA,IAAA;AAAA,EAAA;AAAA,EAEL,CAAA,EACF,CAAA,GAIWE,IAAAC,EAAKb,CAAY;"}
1
+ {"version":3,"file":"homework-menu.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-menu.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport HWRequest from './homework-request';\nimport * as Styled from './homework-styled';\nimport type { IHomeWorkMenuProps } from './homework-types';\n\nconst HomeWorkMenu: React.FC<IHomeWorkMenuProps> = ({ onSelect, hwRequests }) => {\n return (\n <Styled.MenuContainer>\n <FlexView>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexWrap\n $gutterX={0.5}\n $gapX={0.5}\n >\n <FlexView $flexDirection=\"row\" $gapX={0.5}>\n <FlexView $width={'184px'} $gutterX={1}>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HOMEWORK\n </Text>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HELP REQUESTS\n </Text>\n </FlexView>\n <Clickable onClick={onSelect} label=\"close activities menu\">\n <CrossIcon color=\"WHITE\" />\n </Clickable>\n </FlexView>\n\n {hwRequests.map(item => (\n <FlexView $gutterX={0.25} $gapX={0.5} key={item.created_on_ts}>\n <HWRequest hwRequest={item} onSelect={onSelect} studentName={item.student_name} />\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n </Styled.MenuContainer>\n );\n};\n\nexport default memo(HomeWorkMenu);\n"],"names":["HomeWorkMenu","onSelect","hwRequests","jsx","Styled.MenuContainer","FlexView","jsxs","Text","Clickable","CrossIcon","item","HWRequest","HomeWorkMenu$1","memo"],"mappings":";;;;;;;;AAUA,MAAMA,IAA6C,CAAC,EAAE,UAAAC,GAAU,YAAAC,QAE3D,gBAAAC,EAAAC,GAAA,EACC,4BAACC,GACC,EAAA,UAAA,gBAAAC;AAAA,EAACD;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,WAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IAEP,UAAA;AAAA,MAAA,gBAAAC,EAACD,GAAS,EAAA,gBAAe,OAAM,OAAO,KACpC,UAAA;AAAA,QAAA,gBAAAC,EAACD,GAAS,EAAA,QAAQ,SAAS,UAAU,GACnC,UAAA;AAAA,UAAA,gBAAAF,EAACI,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,YAAA;AAAA,4BACCA,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,iBAAA;AAAA,QAAA,GACF;AAAA,QACA,gBAAAJ,EAACK,GAAU,EAAA,SAASP,GAAU,OAAM,yBAClC,UAAC,gBAAAE,EAAAM,GAAA,EAAU,OAAM,QAAA,CAAQ,EAC3B,CAAA;AAAA,MAAA,GACF;AAAA,MAECP,EAAW,IAAI,CACdQ,MAAA,gBAAAP,EAACE,KAAS,UAAU,MAAM,OAAO,KAC/B,UAAA,gBAAAF,EAACQ,KAAU,WAAWD,GAAM,UAAAT,GAAoB,aAAaS,EAAK,cAAc,EADvC,GAAAA,EAAK,aAEhD,CACD;AAAA,IAAA;AAAA,EAAA;AAAA,EAEL,CAAA,EACF,CAAA,GAIWE,IAAAC,EAAKb,CAAY;"}