@cuemath/leap 3.5.59 → 3.5.60-link0

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 (186) hide show
  1. package/dist/features/chapters-v2/utils/node-card-utils.js +24 -24
  2. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  3. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  4. package/dist/features/cue-canvas/sidebar/sidebar.js +4 -4
  5. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  6. package/dist/features/cue-canvas/toolbar/toolbar.js +21 -17
  7. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  8. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +23 -13
  9. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  10. package/dist/features/homework/homework-card-view.js +43 -43
  11. package/dist/features/homework/homework-card-view.js.map +1 -1
  12. package/dist/features/homework/homework-card.js +44 -46
  13. package/dist/features/homework/homework-card.js.map +1 -1
  14. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  15. package/dist/features/homework/hw-card-list/hw-card-list-view.js +39 -41
  16. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  17. package/dist/features/journey/tracking-id/tracking-id-student.js +1 -1
  18. package/dist/features/journey/tracking-id/tracking-id-student.js.map +1 -1
  19. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +43 -43
  20. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
  21. package/dist/features/milestone/create/api/milestone-config.js.map +1 -1
  22. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +1 -1
  23. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -1
  24. package/dist/features/sheets/constants/sheet.js +1 -0
  25. package/dist/features/sheets/constants/sheet.js.map +1 -1
  26. package/dist/features/sheets/utils/is-v3-worksheet.js +3 -2
  27. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  28. package/dist/features/timeline/monthly-timeline/monthly-report/monthly-report-types.js +1 -1
  29. package/dist/features/timeline/monthly-timeline/monthly-report/monthly-report-types.js.map +1 -1
  30. package/dist/features/trial-session/api/trial-home.js +10 -16
  31. package/dist/features/trial-session/api/trial-home.js.map +1 -1
  32. package/dist/features/trial-session/api/trial-session-report.js +16 -0
  33. package/dist/features/trial-session/api/trial-session-report.js.map +1 -0
  34. package/dist/features/trial-session/api/trial-topics.js +9 -0
  35. package/dist/features/trial-session/api/trial-topics.js.map +1 -0
  36. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +62 -50
  37. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
  38. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js +5 -14
  39. package/dist/features/trial-session/comps/class-preference/class-preference-styled.js.map +1 -1
  40. package/dist/features/trial-session/comps/class-preference/class-preference.js +55 -53
  41. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  42. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js +3 -2
  43. package/dist/features/trial-session/comps/communication-slide/communication-slide-constants.js.map +1 -1
  44. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js +27 -27
  45. package/dist/features/trial-session/comps/confirmation-modal/hooks/use-confirmation-modal.js.map +1 -1
  46. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js +19 -18
  47. package/dist/features/trial-session/comps/learning-session/learning-session-styled.js.map +1 -1
  48. package/dist/features/trial-session/comps/learning-session/learning-session.js +34 -43
  49. package/dist/features/trial-session/comps/learning-session/learning-session.js.map +1 -1
  50. package/dist/features/trial-session/comps/navigation-bar/index.js +56 -58
  51. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  52. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +29 -6
  53. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
  54. package/dist/features/trial-session/comps/offering-information/offering-information.js +74 -64
  55. package/dist/features/trial-session/comps/offering-information/offering-information.js.map +1 -1
  56. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js +10 -9
  57. package/dist/features/trial-session/comps/school-goals/school-goals-styled.js.map +1 -1
  58. package/dist/features/trial-session/comps/school-goals/school-goals-view.js +40 -39
  59. package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
  60. package/dist/features/trial-session/comps/school-goals/school-goals.js +39 -37
  61. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  62. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js +12 -20
  63. package/dist/features/trial-session/comps/session-insights/session-insights-styled.js.map +1 -1
  64. package/dist/features/trial-session/comps/session-insights/session-insights.js +64 -63
  65. package/dist/features/trial-session/comps/session-insights/session-insights.js.map +1 -1
  66. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js +13 -12
  67. package/dist/features/trial-session/comps/session-overview/session-overview-styled.js.map +1 -1
  68. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js +21 -5
  69. package/dist/features/trial-session/comps/session-overview/session-overview-utils.js.map +1 -1
  70. package/dist/features/trial-session/comps/session-overview/session-overview.js +20 -20
  71. package/dist/features/trial-session/comps/session-overview/session-overview.js.map +1 -1
  72. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js +61 -0
  73. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-styled.js.map +1 -0
  74. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js +5 -0
  75. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-types.js.map +1 -0
  76. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js +135 -0
  77. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary-view.js.map +1 -0
  78. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js +53 -0
  79. package/dist/features/trial-session/comps/session-progress-summary/session-progress-summary.js.map +1 -0
  80. package/dist/features/trial-session/comps/session-report/report-404/report-404.js +15 -16
  81. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -1
  82. package/dist/features/trial-session/comps/session-report/session-report.js +35 -33
  83. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  84. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js +9 -16
  85. package/dist/features/trial-session/comps/student-enrichment/student-enrichment-styled.js.map +1 -1
  86. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +39 -37
  87. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  88. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js +10 -9
  89. package/dist/features/trial-session/comps/student-feedback/student-feedback-styled.js.map +1 -1
  90. package/dist/features/trial-session/comps/student-info/student-info-constants.js +35 -0
  91. package/dist/features/trial-session/comps/student-info/student-info-constants.js.map +1 -0
  92. package/dist/features/trial-session/comps/student-info/student-info-helpers.js +12 -0
  93. package/dist/features/trial-session/comps/student-info/student-info-helpers.js.map +1 -0
  94. package/dist/features/trial-session/comps/student-info/student-info-styled.js +26 -11
  95. package/dist/features/trial-session/comps/student-info/student-info-styled.js.map +1 -1
  96. package/dist/features/trial-session/comps/student-info/student-info.js +113 -78
  97. package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
  98. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +3 -12
  99. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
  100. package/dist/features/trial-session/comps/student-personalization/student-personalization.js +34 -33
  101. package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
  102. package/dist/features/trial-session/comps/student-profile/student-profile.js +45 -44
  103. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  104. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +9 -8
  105. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  106. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js +11 -19
  107. package/dist/features/trial-session/comps/test-prep/test-prep-styled.js.map +1 -1
  108. package/dist/features/trial-session/comps/test-prep/test-prep.js +31 -29
  109. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  110. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js +42 -0
  111. package/dist/features/trial-session/comps/topic-selection/topic-selection-styled.js.map +1 -0
  112. package/dist/features/trial-session/comps/topic-selection/topic-selection.js +84 -0
  113. package/dist/features/trial-session/comps/topic-selection/topic-selection.js.map +1 -0
  114. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js +21 -0
  115. package/dist/features/trial-session/comps/whiteboard/whiteboard-styled.js.map +1 -0
  116. package/dist/features/trial-session/comps/whiteboard/whiteboard.js +99 -0
  117. package/dist/features/trial-session/comps/whiteboard/whiteboard.js.map +1 -0
  118. package/dist/features/trial-session/comps/worksheet/worksheet.js +35 -33
  119. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  120. package/dist/features/trial-session/context/trial-session-context.js +2 -0
  121. package/dist/features/trial-session/context/trial-session-context.js.map +1 -1
  122. package/dist/features/trial-session/helper.js +70 -64
  123. package/dist/features/trial-session/helper.js.map +1 -1
  124. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +201 -164
  125. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  126. package/dist/features/trial-session/right-panel/right-panel-styled.js +8 -8
  127. package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
  128. package/dist/features/trial-session/right-panel/slide-components-map.js +42 -36
  129. package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
  130. package/dist/features/trial-session/trial-session-constants.js +22 -18
  131. package/dist/features/trial-session/trial-session-constants.js.map +1 -1
  132. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  133. package/dist/features/trial-session/trial-session-view.js +82 -77
  134. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  135. package/dist/features/trial-session/trial-session.js +38 -38
  136. package/dist/features/trial-session/trial-session.js.map +1 -1
  137. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js +21 -21
  138. package/dist/features/ui/inputs/checkbox-input/checkbox-input.js.map +1 -1
  139. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +12 -12
  140. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
  141. package/dist/features/ui/theme/clrs.js +1 -0
  142. package/dist/features/ui/theme/clrs.js.map +1 -1
  143. package/dist/features/worksheet/worksheet/mocks/activity.js +6 -0
  144. package/dist/features/worksheet/worksheet/mocks/activity.js.map +1 -0
  145. package/dist/features/worksheet/worksheet/mocks/signed-requests.js +5 -0
  146. package/dist/features/worksheet/worksheet/mocks/signed-requests.js.map +1 -0
  147. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js +57 -0
  148. package/dist/features/worksheet/worksheet/stories/use-canvas-sync-broker-story.js.map +1 -0
  149. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js +263 -0
  150. package/dist/features/worksheet/worksheet/stories/worksheet-story-container.js.map +1 -0
  151. package/dist/features/worksheet/worksheet/stories/worksheet-student.js +177 -0
  152. package/dist/features/worksheet/worksheet/stories/worksheet-student.js.map +1 -0
  153. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js +267 -0
  154. package/dist/features/worksheet/worksheet/stories/worksheet-teacher.js.map +1 -0
  155. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +2 -6
  156. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
  157. package/dist/features/worksheet/worksheet/worksheet-helpers.js +38 -37
  158. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  159. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js +36 -35
  160. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-computed-properties.js.map +1 -1
  161. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js +61 -58
  162. package/dist/features/worksheet/worksheet/worksheet-store/helpers/get-questions-from-items.js.map +1 -1
  163. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  164. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +35 -28
  165. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  166. package/dist/index.d.ts +13 -5
  167. package/dist/index.js +1 -1
  168. package/dist/node_modules/query-string/base.js +1 -1
  169. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +1 -0
  170. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  171. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  172. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  173. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  174. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  175. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  176. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  177. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  178. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  179. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  180. package/dist/types/models/worksheet.js +1 -1
  181. package/dist/types/models/worksheet.js.map +1 -1
  182. package/package.json +1 -1
  183. package/dist/node_modules/decode-uri-component/index.js.map +0 -1
  184. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  185. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  186. /package/dist/node_modules/{decode-uri-component → query-string/node_modules/decode-uri-component}/index.js +0 -0
@@ -1,4 +1,4 @@
1
- import { jsx as t, jsxs as p } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as p } from "react/jsx-runtime";
2
2
  import N from "../../../assets/line-icons/icons/check2.js";
3
3
  import C from "../../../assets/line-icons/icons/exclamation.js";
4
4
  import h from "../../../assets/line-icons/icons/lock2.js";
@@ -9,12 +9,12 @@ import u from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
9
  import S from "../../ui/text/text.js";
10
10
  import { InProgressIconWrapper as L } from "../comps/node-card/node-card-styled.js";
11
11
  import R from "../comps/tag/tag.js";
12
- const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n) => {
13
- if (!e || r && !n)
12
+ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n) => {
13
+ if (!e || t && !n)
14
14
  return { isOverdue: !1, daysText: "", differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };
15
15
  const a = Math.floor(Date.now() / 1e3), c = e - a, s = Math.floor(c / g), T = Math.floor(c / $), i = Math.round(c / P), A = i < 0, E = i > 0 ? `${Math.abs(i)}D` : "", d = s > 0 ? Math.abs(s) : 0, I = T > 0 ? Math.abs(T) : 0;
16
16
  return { isOverdue: A, daysText: E, differenceInDays: i, hoursLeft: d, minutesLeft: I };
17
- }, b = (e, r, n, a) => a ? e < 1 ? `${r}m` : `${e}h` : n, m = (e, r, n = !1) => /* @__PURE__ */ p(
17
+ }, b = (e, t, n, a) => a ? e < 1 && t > 0 ? `${t}m` : `${e}h` : n, _ = (e, t, n = !1) => /* @__PURE__ */ p(
18
18
  L,
19
19
  {
20
20
  $flexDirection: "row",
@@ -23,18 +23,18 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
23
23
  $borderRadius: 16,
24
24
  $paddingRight: n ? 0 : 6,
25
25
  $paddingLeft: e ? 6 : 0,
26
- $background: r ? "RED" : "BLACK_1",
26
+ $background: t ? "RED" : "BLACK_1",
27
27
  children: [
28
- e && /* @__PURE__ */ t(S, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
- n && /* @__PURE__ */ t(D, {})
28
+ e && /* @__PURE__ */ r(S, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
+ n && /* @__PURE__ */ r(D, {})
30
30
  ]
31
31
  }
32
- ), U = (e, r) => {
32
+ ), U = (e, t) => {
33
33
  if (typeof e == "number")
34
- return r ? `${e}` : `${e}%`;
34
+ return t ? `${e}` : `${e}%`;
35
35
  }, Y = ({
36
36
  state: e,
37
- isStudent: r,
37
+ isStudent: t,
38
38
  accuracy: n,
39
39
  dueDateTs: a,
40
40
  isMilestone: c,
@@ -44,19 +44,19 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
44
44
  a,
45
45
  c,
46
46
  s
47
- ), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), _ = U(n, s);
47
+ ), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), m = U(n, s);
48
48
  if (!c && T && O.includes(e))
49
49
  return {
50
- icon: /* @__PURE__ */ t(
50
+ icon: /* @__PURE__ */ r(
51
51
  u,
52
52
  {
53
53
  renderAs: "primary",
54
54
  position: "bottom",
55
55
  tooltipItem: "Complete now",
56
56
  zIndex: 10,
57
- hidden: !r,
57
+ hidden: !t,
58
58
  parentWidth: "fit-content",
59
- children: /* @__PURE__ */ t(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(S, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
59
+ children: /* @__PURE__ */ r(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
60
60
  }
61
61
  ),
62
62
  top: -10,
@@ -65,15 +65,15 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
65
65
  switch (e) {
66
66
  case "NOT_STARTED":
67
67
  return {
68
- icon: /* @__PURE__ */ t(
68
+ icon: /* @__PURE__ */ r(
69
69
  u,
70
70
  {
71
71
  renderAs: "primary",
72
72
  position: "bottom",
73
73
  tooltipItem: A > 1 ? `${A} days left` : "Complete it today",
74
74
  zIndex: 10,
75
- hidden: !r,
76
- children: m(f, I)
75
+ hidden: !t,
76
+ children: _(f, I)
77
77
  }
78
78
  ),
79
79
  top: 0,
@@ -81,30 +81,30 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
81
81
  };
82
82
  case "LOCKED":
83
83
  return {
84
- icon: /* @__PURE__ */ t(h, { width: 32, height: 32 }),
84
+ icon: /* @__PURE__ */ r(h, { width: 32, height: 32 }),
85
85
  top: -16,
86
86
  right: -16
87
87
  };
88
88
  case "IN_PROGRESS":
89
89
  return {
90
- icon: m(f, I, !0)
90
+ icon: _(f, I, !0)
91
91
  };
92
92
  case "COMPLETED":
93
93
  return {
94
- icon: /* @__PURE__ */ t(R, { Icon: N, label: _ }),
94
+ icon: /* @__PURE__ */ r(R, { Icon: N, label: m }),
95
95
  top: -10,
96
96
  right: -10
97
97
  };
98
98
  case "WAIT_FOR_REVIEW":
99
99
  return {
100
- icon: /* @__PURE__ */ t(
100
+ icon: /* @__PURE__ */ r(
101
101
  u,
102
102
  {
103
103
  renderAs: "primary",
104
104
  position: "bottom",
105
- tooltipItem: r ? "Waiting for teacher to review" : "Needs your review",
105
+ tooltipItem: t ? "Waiting for teacher to review" : "Needs your review",
106
106
  zIndex: 10,
107
- children: /* @__PURE__ */ t(R, { Icon: C })
107
+ children: /* @__PURE__ */ r(R, { Icon: C })
108
108
  }
109
109
  ),
110
110
  top: -10,
@@ -112,7 +112,7 @@ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, r, n)
112
112
  };
113
113
  case "EXPIRED":
114
114
  return {
115
- icon: /* @__PURE__ */ t(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(S, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
115
+ icon: /* @__PURE__ */ r(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
116
116
  top: -10,
117
117
  right: -10
118
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeCardTagsProps, INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface IDueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n hoursLeft: number;\n minutesLeft: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst SECONDS_PER_HOUR = 60 * 60;\nconst SECONDS_PER_MINUTE = 60;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (\n dueDateTs?: number | null,\n isMilestone?: boolean,\n isMathFitCard?: boolean,\n): IDueDateInfo => {\n if (!dueDateTs || (isMilestone && !isMathFitCard)) {\n return { isOverdue: false, daysText: '', differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInHours = Math.floor(differenceInSeconds / SECONDS_PER_HOUR);\n const differenceInMinutes = Math.floor(differenceInSeconds / SECONDS_PER_MINUTE);\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n const hoursLeft = differenceInHours > 0 ? Math.abs(differenceInHours) : 0;\n const minutesLeft = differenceInMinutes > 0 ? Math.abs(differenceInMinutes) : 0;\n\n return { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft };\n};\n\nconst getTimeDisplayText = (\n hoursLeft: number,\n minutesLeft: number,\n daysText: string,\n showWarning: boolean,\n): string => {\n if (showWarning) {\n return hoursLeft < 1 ? `${minutesLeft}m` : `${hoursLeft}h`;\n }\n\n return daysText;\n};\n\nconst renderTimeDisplayIcon = (\n timeDisplayText: string,\n showWarning: boolean,\n includeStatusIcon = false,\n) => {\n return (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={includeStatusIcon ? 0 : 6}\n $paddingLeft={timeDisplayText ? 6 : 0}\n $background={showWarning ? 'RED' : 'BLACK_1'}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getAccuracyText = (accuracy?: number | null, isMathFitCard?: boolean): string | undefined => {\n if (typeof accuracy !== 'number') return undefined;\n\n return isMathFitCard ? `${accuracy}` : `${accuracy}%`;\n};\n\nconst getNodeStateBasedTagInfo = ({\n state: nodeState,\n isStudent,\n accuracy,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n}: INodeCardTagsProps) => {\n const { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft } = calculateDueDateInfo(\n dueDateTs,\n isMilestone,\n isMathFitCard,\n );\n const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n const accuracyText = getAccuracyText(accuracy, isMathFitCard);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n {renderTimeDisplayIcon(timeDisplayText, showWarning)}\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: renderTimeDisplayIcon(timeDisplayText, showWarning, true),\n };\n case 'COMPLETED':\n return {\n icon: <Tag Icon={Check2Icon} label={accuracyText} />,\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n case 'EXPIRED':\n return {\n icon: (\n <FlexView $background=\"WHITE_5\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ub3\" $color=\"BLACK_1\">\n EXPIRED\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","isMathFitCard","currentTimestamp","differenceInSeconds","differenceInHours","differenceInMinutes","differenceInDays","isOverdue","daysText","hoursLeft","minutesLeft","getTimeDisplayText","showWarning","renderTimeDisplayIcon","timeDisplayText","includeStatusIcon","jsxs","InProgressIconWrapper","Text","StatusIcon","getAccuracyText","accuracy","getNodeStateBasedTagInfo","nodeState","isStudent","accuracyText","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,IAAkB,KAAK,KAAK,IAC5BC,IAAmB,KAAK,IACxBC,IAAqB,IACrBC,IAAgD,CAAC,aAAa,GAE9DC,IAAuB,CAC3BC,GACAC,GACAC,MACiB;AACjB,MAAI,CAACF,KAAcC,KAAe,CAACC;AAC1B,WAAA,EAAE,WAAW,IAAO,UAAU,IAAI,kBAAkB,GAAG,WAAW,GAAG,aAAa,EAAE;AAG7F,QAAMC,IAAmB,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAC/CC,IAAsBJ,IAAYG,GAClCE,IAAoB,KAAK,MAAMD,IAAsBR,CAAgB,GACrEU,IAAsB,KAAK,MAAMF,IAAsBP,CAAkB,GACzEU,IAAmB,KAAK,MAAMH,IAAsBT,CAAe,GAEnEa,IAAYD,IAAmB,GAE/BE,IAAWF,IAAmB,IAAI,GAAG,KAAK,IAAIA,CAAgB,CAAC,MAAM,IACrEG,IAAYL,IAAoB,IAAI,KAAK,IAAIA,CAAiB,IAAI,GAClEM,IAAcL,IAAsB,IAAI,KAAK,IAAIA,CAAmB,IAAI;AAE9E,SAAO,EAAE,WAAAE,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,EAAY;AACzE,GAEMC,IAAqB,CACzBF,GACAC,GACAF,GACAI,MAEIA,IACKH,IAAY,IAAI,GAAGC,CAAW,MAAM,GAAGD,CAAS,MAGlDD,GAGHK,IAAwB,CAC5BC,GACAF,GACAG,IAAoB,OAGlB,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAeF,IAAoB,IAAI;AAAA,IACvC,cAAcD,IAAkB,IAAI;AAAA,IACpC,aAAaF,IAAc,QAAQ;AAAA,IAElC,UAAA;AAAA,MAAAE,uBACEI,GAAK,EAAA,WAAU,YAAW,QAAO,SAC/B,UACHJ,GAAA;AAAA,MAEDC,uBAAsBI,GAAW,EAAA;AAAA,IAAA;AAAA,EAAA;AAAA,GAKlCC,IAAkB,CAACC,GAA0BpB,MAAgD;AAC7F,MAAA,OAAOoB,KAAa;AAExB,WAAOpB,IAAgB,GAAGoB,CAAQ,KAAK,GAAGA,CAAQ;AACpD,GAEMC,IAA2B,CAAC;AAAA,EAChC,OAAOC;AAAA,EACP,WAAAC;AAAA,EACA,UAAAH;AAAA,EACA,WAAAtB;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AACF,MAA0B;AACxB,QAAM,EAAE,WAAAM,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,MAAgBZ;AAAA,IACxEC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAEIW,IAAc,CAAC,EAAEX,KAAiBQ,KAAa,MAAMA,KAAa,IAClEK,IAAkBH,EAAmBF,GAAWC,GAAaF,GAAUI,CAAW,GAClFa,IAAeL,EAAgBC,GAAUpB,CAAa;AAE5D,MAAI,CAACD,KAAeO,KAAaV,EAAmB,SAAS0B,CAAS;AAC7D,WAAA;AAAA,MACL,MACE,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,QAAQ;AAAA,UACR,QAAQ,CAACH;AAAA,UACT,aAAY;AAAA,UAEZ,4BAACI,GAAS,EAAA,aAAY,OAAM,eAAe,IAAI,OAAO,MAAM,UAAU,KACpE,4BAACV,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQK,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAG;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aACErB,IAAmB,IAAI,GAAGA,CAAgB,eAAe;AAAA,YAE3D,QAAQ;AAAA,YACR,QAAQ,CAACkB;AAAA,YAER,UAAAX,EAAsBC,GAAiBF,CAAW;AAAA,UAAA;AAAA,QACrD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAG,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAMhB,EAAsBC,GAAiBF,GAAa,EAAI;AAAA,MAAA;AAAA,IAElE,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAI,GAAA,EAAI,MAAMC,GAAY,OAAON,GAAc;AAAA,QAClD,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aAAaH,IAAY,kCAAkC;AAAA,YAC3D,QAAQ;AAAA,YAER,UAAA,gBAAAE,EAACI,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA,UAAA;AAAA,QAC9B;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX,KAAK;AACI,aAAA;AAAA,QACL,MACG,gBAAAN,EAAAE,GAAA,EAAS,aAAY,WAAU,eAAe,IAAI,OAAO,MAAM,UAAU,KACxE,4BAACV,GAAK,EAAA,WAAU,OAAM,QAAO,WAAU,oBAEvC,CAAA,GACF;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMe,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQC,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB;AACS,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,EAErB;AACF;"}
1
+ {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeCardTagsProps, INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface IDueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n hoursLeft: number;\n minutesLeft: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst SECONDS_PER_HOUR = 60 * 60;\nconst SECONDS_PER_MINUTE = 60;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (\n dueDateTs?: number | null,\n isMilestone?: boolean,\n isMathFitCard?: boolean,\n): IDueDateInfo => {\n if (!dueDateTs || (isMilestone && !isMathFitCard)) {\n return { isOverdue: false, daysText: '', differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInHours = Math.floor(differenceInSeconds / SECONDS_PER_HOUR);\n const differenceInMinutes = Math.floor(differenceInSeconds / SECONDS_PER_MINUTE);\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n const hoursLeft = differenceInHours > 0 ? Math.abs(differenceInHours) : 0;\n const minutesLeft = differenceInMinutes > 0 ? Math.abs(differenceInMinutes) : 0;\n\n return { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft };\n};\n\nconst getTimeDisplayText = (\n hoursLeft: number,\n minutesLeft: number,\n daysText: string,\n showWarning: boolean,\n): string => {\n if (showWarning) {\n return hoursLeft < 1 && minutesLeft > 0 ? `${minutesLeft}m` : `${hoursLeft}h`;\n }\n\n return daysText;\n};\n\nconst renderTimeDisplayIcon = (\n timeDisplayText: string,\n showWarning: boolean,\n includeStatusIcon = false,\n) => {\n return (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={includeStatusIcon ? 0 : 6}\n $paddingLeft={timeDisplayText ? 6 : 0}\n $background={showWarning ? 'RED' : 'BLACK_1'}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getAccuracyText = (accuracy?: number | null, isMathFitCard?: boolean): string | undefined => {\n if (typeof accuracy !== 'number') return undefined;\n\n return isMathFitCard ? `${accuracy}` : `${accuracy}%`;\n};\n\nconst getNodeStateBasedTagInfo = ({\n state: nodeState,\n isStudent,\n accuracy,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n}: INodeCardTagsProps) => {\n const { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft } = calculateDueDateInfo(\n dueDateTs,\n isMilestone,\n isMathFitCard,\n );\n const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n const accuracyText = getAccuracyText(accuracy, isMathFitCard);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n {renderTimeDisplayIcon(timeDisplayText, showWarning)}\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: renderTimeDisplayIcon(timeDisplayText, showWarning, true),\n };\n case 'COMPLETED':\n return {\n icon: <Tag Icon={Check2Icon} label={accuracyText} />,\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n case 'EXPIRED':\n return {\n icon: (\n <FlexView $background=\"WHITE_5\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ub3\" $color=\"BLACK_1\">\n EXPIRED\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","isMathFitCard","currentTimestamp","differenceInSeconds","differenceInHours","differenceInMinutes","differenceInDays","isOverdue","daysText","hoursLeft","minutesLeft","getTimeDisplayText","showWarning","renderTimeDisplayIcon","timeDisplayText","includeStatusIcon","jsxs","InProgressIconWrapper","Text","StatusIcon","getAccuracyText","accuracy","getNodeStateBasedTagInfo","nodeState","isStudent","accuracyText","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import { memo, useCallback, useState, type FC } 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":";;;;;;;;;;AAYA,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 { memo, useCallback, useState, type FC } 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":";;;;;;;;;;AAYA,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;"}
@@ -3,15 +3,15 @@ import { memo as p, useState as d, useMemo as f } from "react";
3
3
  import c from "../../ui/layout/flex-view.js";
4
4
  import o from "../../ui/separator/separator.js";
5
5
  import l from "./homework/homework.js";
6
- import s from "./puzzles/puzzles.js";
7
- import { SideBarContainer as u } from "./sidebar-styled.js";
6
+ import u from "./puzzles/puzzles.js";
7
+ import { SideBarContainer as s } from "./sidebar-styled.js";
8
8
  import x from "./tiles/tile.js";
9
9
  const S = ({ grade: m, hwRequests: t }) => {
10
10
  const [r, i] = d(), a = f(() => r === "tile" ? "300px" : r === "homework" ? "248px" : r === "puzzle" ? "650px" : "auto", [r]);
11
- return /* @__PURE__ */ e(u, { $activeSidebar: r, $width: a, children: /* @__PURE__ */ n(c, { $flexDirection: "row", children: [
11
+ return /* @__PURE__ */ e(s, { $activeSidebar: r, $width: a, children: /* @__PURE__ */ n(c, { $flexDirection: "row", children: [
12
12
  /* @__PURE__ */ e(x, { activeSidebar: r, setActiveSidebar: i }),
13
13
  /* @__PURE__ */ e(o, { width: 8 }),
14
- /* @__PURE__ */ e(s, { grade: m, activeSidebar: r, setActiveSidebar: i }),
14
+ /* @__PURE__ */ e(u, { grade: m, activeSidebar: r, setActiveSidebar: i }),
15
15
  /* @__PURE__ */ e(o, { width: 8 }),
16
16
  t && t.length > 0 && /* @__PURE__ */ e(
17
17
  l,
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import { memo, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Homework from './homework/homework';\nimport type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport Puzzles from './puzzles/puzzles';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n const width = useMemo(() => {\n if (activeSidebar === 'tile') {\n return '300px';\n }\n\n if (activeSidebar === 'homework') {\n return '248px';\n }\n\n if (activeSidebar === 'puzzle') {\n return '650px';\n }\n\n return 'auto';\n }, [activeSidebar]);\n\n return (\n <SideBarContainer $activeSidebar={activeSidebar} $width={width}>\n <FlexView $flexDirection=\"row\">\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n\n {hwRequests && hwRequests.length > 0 && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </FlexView>\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","width","useMemo","jsx","SideBarContainer","jsxs","FlexView","TileBar","Separator","Puzzles","Homework","sidebar","memo"],"mappings":";;;;;;;;AAgBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACvD,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC,GAEzEC,IAAQC,EAAQ,MAChBJ,MAAkB,SACb,UAGLA,MAAkB,aACb,UAGLA,MAAkB,WACb,UAGF,QACN,CAACA,CAAa,CAAC;AAGhB,SAAA,gBAAAK,EAACC,KAAiB,gBAAgBN,GAAe,QAAQG,GACvD,UAAA,gBAAAI,EAACC,GAAS,EAAA,gBAAe,OACvB,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAQ,eAAAT,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IAC3E,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IACpB,gBAAAL,EAAAM,GAAA,EAAQ,OAAAb,GAAc,eAAAE,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IACzF,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IAEpBX,KAAcA,EAAW,SAAS,KACjC,gBAAAM;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,eAAAZ;AAAA,QACA,kBAAAC;AAAA,QACA,YAAAF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EAEJ,CAAA,EACF,CAAA;AAEJ,GAEec,IAAAC,EAAKjB,CAAO;"}
1
+ {"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import { memo, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Homework from './homework/homework';\nimport type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport Puzzles from './puzzles/puzzles';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n const width = useMemo(() => {\n if (activeSidebar === 'tile') {\n return '300px';\n }\n\n if (activeSidebar === 'homework') {\n return '248px';\n }\n\n if (activeSidebar === 'puzzle') {\n return '650px';\n }\n\n return 'auto';\n }, [activeSidebar]);\n\n return (\n <SideBarContainer $activeSidebar={activeSidebar} $width={width}>\n <FlexView $flexDirection=\"row\">\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Separator width={8} />\n\n {hwRequests && hwRequests.length > 0 && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </FlexView>\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","width","useMemo","jsx","SideBarContainer","jsxs","FlexView","TileBar","Separator","Puzzles","Homework","Sidebar$1","memo"],"mappings":";;;;;;;;AAgBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACvD,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC,GAEzEC,IAAQC,EAAQ,MAChBJ,MAAkB,SACb,UAGLA,MAAkB,aACb,UAGLA,MAAkB,WACb,UAGF,QACN,CAACA,CAAa,CAAC;AAGhB,SAAA,gBAAAK,EAACC,KAAiB,gBAAgBN,GAAe,QAAQG,GACvD,UAAA,gBAAAI,EAACC,GAAS,EAAA,gBAAe,OACvB,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAQ,eAAAT,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IAC3E,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IACpB,gBAAAL,EAAAM,GAAA,EAAQ,OAAAb,GAAc,eAAAE,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,IACzF,gBAAAI,EAACK,GAAU,EAAA,OAAO,EAAG,CAAA;AAAA,IAEpBX,KAAcA,EAAW,SAAS,KACjC,gBAAAM;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,eAAAZ;AAAA,QACA,kBAAAC;AAAA,QACA,YAAAF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EAEJ,CAAA,EACF,CAAA;AAEJ,GAEec,IAAAC,EAAKjB,CAAO;"}
@@ -1,21 +1,25 @@
1
- import { jsx as r, jsxs as s } from "react/jsx-runtime";
2
- import { memo as c, useEffect as l } from "react";
3
- import f from "../../ui/layout/flex-view.js";
4
- import { getUserTools as u } from "../cue-canvas-helpers.js";
5
- import { useCueCanvasActions as p } from "../hooks/use-cue-canvas-actions.js";
6
- import C from "./color-picker-menu.js";
7
- import b from "./tool.js";
8
- import v from "./whiteboard-toolbar.js";
9
- const x = c(function({ userType: t, renderAs: e }) {
10
- const i = u(t, e), { activeInstance: o, activeTool: a, activeColor: m } = p();
11
- return l(() => {
12
- o && (o.setColor(m), o.setTool(a));
13
- }, [o]), e === "whiteboard" ? /* @__PURE__ */ r(v, { tools: i, userType: t }) : /* @__PURE__ */ s(f, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGapX: 0.25, children: [
14
- i.map((n) => /* @__PURE__ */ r(b, { tool: n, shouldAnimate: !0 }, n)),
15
- /* @__PURE__ */ r(C, { userType: t, renderAs: "canvas" })
1
+ import { jsx as r, jsxs as c } from "react/jsx-runtime";
2
+ import { memo as l, useEffect as f } from "react";
3
+ import u from "../../ui/layout/flex-view.js";
4
+ import { getUserTools as p } from "../cue-canvas-helpers.js";
5
+ import { useCueCanvasActions as C } from "../hooks/use-cue-canvas-actions.js";
6
+ import b from "./color-picker-menu.js";
7
+ import v from "./tool.js";
8
+ import x from "./whiteboard-toolbar.js";
9
+ const T = l(function({
10
+ userType: t,
11
+ renderAs: e,
12
+ withGutter: a = !0
13
+ }) {
14
+ const i = p(t, e), { activeInstance: o, activeTool: m, activeColor: s } = C();
15
+ return f(() => {
16
+ o && (o.setColor(s), o.setTool(m));
17
+ }, [o]), e === "whiteboard" ? /* @__PURE__ */ r(x, { tools: i, userType: t, withGutter: a }) : /* @__PURE__ */ c(u, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGapX: 0.25, children: [
18
+ i.map((n) => /* @__PURE__ */ r(v, { tool: n, shouldAnimate: !0 }, n)),
19
+ /* @__PURE__ */ r(b, { userType: t, renderAs: "canvas" })
16
20
  ] });
17
- }), k = x;
21
+ }), D = T;
18
22
  export {
19
- k as default
23
+ D as default
20
24
  };
21
25
  //# sourceMappingURL=toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IToolbarProps } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\nimport WhiteboardToolbar from './whiteboard-toolbar';\n\nconst Toolbar: FC<IToolbarProps> = memo(function Toolbar({ userType, renderAs }) {\n const tools = getUserTools(userType, renderAs);\n const { activeInstance: cueCanvas, activeTool, activeColor } = useCueCanvasActions();\n\n // This effect ensures that the selected tool and color are applied to the cueCanvas instance\n // whenever it changes. For example, if a user selects a tool and color, then navigates to a\n // different question (causing a new cueCanvas instance), the same tool and color will be set\n // on the new instance.\n // Disabling the exhaustive-deps rule here because we want to run this effect only\n // when the cueCanvas instance is set, not on every tool & color change.\n useEffect(() => {\n if (cueCanvas) {\n cueCanvas.setColor(activeColor);\n\n cueCanvas.setTool(activeTool);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cueCanvas]);\n\n if (renderAs === 'whiteboard') {\n return <WhiteboardToolbar tools={tools} userType={userType} />;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGapX={0.25}>\n {tools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"canvas\" />\n </FlexView>\n );\n});\n\nexport default Toolbar;\n"],"names":["Toolbar","memo","userType","renderAs","tools","getUserTools","cueCanvas","activeTool","activeColor","useCueCanvasActions","useEffect","jsx","WhiteboardToolbar","jsxs","FlexView","Tool","tool","ColorPickerMenu","Toolbar$1"],"mappings":";;;;;;;;AAUA,MAAMA,IAA6BC,EAAK,SAAiB,EAAE,UAAAC,GAAU,UAAAC,KAAY;AACzE,QAAAC,IAAQC,EAAaH,GAAUC,CAAQ,GACvC,EAAE,gBAAgBG,GAAW,YAAAC,GAAY,aAAAC,EAAA,IAAgBC;AAiB/D,SATAC,EAAU,MAAM;AACd,IAAIJ,MACFA,EAAU,SAASE,CAAW,GAE9BF,EAAU,QAAQC,CAAU;AAAA,EAC9B,GAEC,CAACD,CAAS,CAAC,GAEVH,MAAa,eACR,gBAAAQ,EAACC,GAAkB,EAAA,OAAAR,GAAc,UAAAF,EAAoB,CAAA,IAI5D,gBAAAW,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,WAAW,MACrF,UAAA;AAAA,IAAMV,EAAA,IAAI,OACR,gBAAAO,EAAAI,GAAA,EAAK,MAAAC,GAAuB,eAAa,GAAA,GAAnBA,CAAoB,CAC5C;AAAA,IACA,gBAAAL,EAAAM,GAAA,EAAgB,UAAAf,GAAoB,UAAS,SAAS,CAAA;AAAA,EACzD,EAAA,CAAA;AAEJ,CAAC,GAEDgB,IAAelB;"}
1
+ {"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport type { IToolbarProps } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\nimport WhiteboardToolbar from './whiteboard-toolbar';\n\nconst Toolbar: FC<IToolbarProps> = memo(function Toolbar({\n userType,\n renderAs,\n withGutter = true,\n}) {\n const tools = getUserTools(userType, renderAs);\n const { activeInstance: cueCanvas, activeTool, activeColor } = useCueCanvasActions();\n\n // This effect ensures that the selected tool and color are applied to the cueCanvas instance\n // whenever it changes. For example, if a user selects a tool and color, then navigates to a\n // different question (causing a new cueCanvas instance), the same tool and color will be set\n // on the new instance.\n // Disabling the exhaustive-deps rule here because we want to run this effect only\n // when the cueCanvas instance is set, not on every tool & color change.\n useEffect(() => {\n if (cueCanvas) {\n cueCanvas.setColor(activeColor);\n\n cueCanvas.setTool(activeTool);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cueCanvas]);\n\n if (renderAs === 'whiteboard') {\n return <WhiteboardToolbar tools={tools} userType={userType} withGutter={withGutter} />;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGapX={0.25}>\n {tools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"canvas\" />\n </FlexView>\n );\n});\n\nexport default Toolbar;\n"],"names":["Toolbar","memo","userType","renderAs","withGutter","tools","getUserTools","cueCanvas","activeTool","activeColor","useCueCanvasActions","useEffect","jsx","WhiteboardToolbar","jsxs","FlexView","Tool","tool","ColorPickerMenu","Toolbar$1"],"mappings":";;;;;;;;AAUA,MAAMA,IAA6BC,EAAK,SAAiB;AAAA,EACvD,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AACf,GAAG;AACK,QAAAC,IAAQC,EAAaJ,GAAUC,CAAQ,GACvC,EAAE,gBAAgBI,GAAW,YAAAC,GAAY,aAAAC,EAAA,IAAgBC;AAiB/D,SATAC,EAAU,MAAM;AACd,IAAIJ,MACFA,EAAU,SAASE,CAAW,GAE9BF,EAAU,QAAQC,CAAU;AAAA,EAC9B,GAEC,CAACD,CAAS,CAAC,GAEVJ,MAAa,eACP,gBAAAS,EAAAC,GAAA,EAAkB,OAAAR,GAAc,UAAAH,GAAoB,YAAAE,EAAwB,CAAA,IAIpF,gBAAAU,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,WAAW,MACrF,UAAA;AAAA,IAAMV,EAAA,IAAI,OACR,gBAAAO,EAAAI,GAAA,EAAK,MAAAC,GAAuB,eAAa,GAAA,GAAnBA,CAAoB,CAC5C;AAAA,IACA,gBAAAL,EAAAM,GAAA,EAAgB,UAAAhB,GAAoB,UAAS,SAAS,CAAA;AAAA,EACzD,EAAA,CAAA;AAEJ,CAAC,GAEDiB,IAAenB;"}
@@ -1,20 +1,30 @@
1
- import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
- import { memo as a } from "react";
3
- import l from "../../ui/layout/flex-view.js";
4
- import c from "./color-picker-menu.js";
1
+ import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
+ import { memo as l } from "react";
3
+ import c from "../../ui/layout/flex-view.js";
4
+ import p from "./color-picker-menu.js";
5
5
  import i from "./tool.js";
6
- const b = a(function({
6
+ const T = l(function({
7
7
  tools: e,
8
- userType: t
8
+ userType: t,
9
+ withGutter: m
9
10
  }) {
10
- const m = e.slice(0, 4), n = e.slice(4);
11
- return /* @__PURE__ */ s(l, { $flexDirection: "row", $alignItems: "center", $position: "relative", $flexGapX: 0.25, children: [
12
- m.map((o) => /* @__PURE__ */ r(i, { tool: o, shouldAnimate: !0 }, o)),
13
- /* @__PURE__ */ r(c, { userType: t, renderAs: "whiteboard" }),
14
- n.map((o) => /* @__PURE__ */ r(i, { tool: o }, o))
15
- ] });
11
+ const n = e.slice(0, 4), s = e.slice(4);
12
+ return /* @__PURE__ */ a(
13
+ c,
14
+ {
15
+ $flexDirection: "row",
16
+ $alignItems: "center",
17
+ $position: "relative",
18
+ $flexGapX: m ? 0.25 : 0,
19
+ children: [
20
+ n.map((o) => /* @__PURE__ */ r(i, { tool: o, shouldAnimate: !0 }, o)),
21
+ /* @__PURE__ */ r(p, { userType: t, renderAs: "whiteboard" }),
22
+ s.map((o) => /* @__PURE__ */ r(i, { tool: o }, o))
23
+ ]
24
+ }
25
+ );
16
26
  });
17
27
  export {
18
- b as default
28
+ T as default
19
29
  };
20
30
  //# sourceMappingURL=whiteboard-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whiteboard-toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/whiteboard-toolbar.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { IWhiteboardToolbar } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\n\nconst WhiteboardToolbar: FC<IWhiteboardToolbar> = memo(function WhiteboardToolbar({\n tools,\n userType,\n}) {\n const writingTools = tools.slice(0, 4);\n const otherTools = tools.slice(4);\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $position=\"relative\" $flexGapX={0.25}>\n {writingTools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate={true} />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"whiteboard\" />\n {otherTools.map(tool => (\n <Tool tool={tool} key={tool} />\n ))}\n </FlexView>\n );\n});\n\nexport default WhiteboardToolbar;\n"],"names":["WhiteboardToolbar","memo","tools","userType","writingTools","otherTools","jsxs","FlexView","jsx","Tool","tool","ColorPickerMenu"],"mappings":";;;;;AAOM,MAAAA,IAA4CC,EAAK,SAA2B;AAAA,EAChF,OAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACD,QAAMC,IAAeF,EAAM,MAAM,GAAG,CAAC,GAC/BG,IAAaH,EAAM,MAAM,CAAC;AAG9B,SAAA,gBAAAI,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,WAAU,YAAW,WAAW,MACjF,UAAA;AAAA,IAAaH,EAAA,IAAI,OACf,gBAAAI,EAAAC,GAAA,EAAK,MAAAC,GAAuB,eAAe,GAAA,GAArBA,CAA2B,CACnD;AAAA,IACA,gBAAAF,EAAAG,GAAA,EAAgB,UAAAR,GAAoB,UAAS,aAAa,CAAA;AAAA,IAC1DE,EAAW,IAAI,CAAAK,wBACbD,GAAK,EAAA,MAAAC,KAAiBA,CAAM,CAC9B;AAAA,EACH,EAAA,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"whiteboard-toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/whiteboard-toolbar.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { IWhiteboardToolbar } from '../types/toolbar';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\n\nconst WhiteboardToolbar: FC<IWhiteboardToolbar> = memo(function WhiteboardToolbar({\n tools,\n userType,\n withGutter,\n}) {\n const writingTools = tools.slice(0, 4);\n const otherTools = tools.slice(4);\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $position=\"relative\"\n $flexGapX={withGutter ? 0.25 : 0}\n >\n {writingTools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate={true} />\n ))}\n <ColorPickerMenu userType={userType} renderAs=\"whiteboard\" />\n {otherTools.map(tool => (\n <Tool tool={tool} key={tool} />\n ))}\n </FlexView>\n );\n});\n\nexport default WhiteboardToolbar;\n"],"names":["WhiteboardToolbar","memo","tools","userType","withGutter","writingTools","otherTools","jsxs","FlexView","jsx","Tool","tool","ColorPickerMenu"],"mappings":";;;;;AAOM,MAAAA,IAA4CC,EAAK,SAA2B;AAAA,EAChF,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,GAAG;AACD,QAAMC,IAAeH,EAAM,MAAM,GAAG,CAAC,GAC/BI,IAAaJ,EAAM,MAAM,CAAC;AAG9B,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,WAAU;AAAA,MACV,WAAWJ,IAAa,OAAO;AAAA,MAE9B,UAAA;AAAA,QAAaC,EAAA,IAAI,OACf,gBAAAI,EAAAC,GAAA,EAAK,MAAAC,GAAuB,eAAe,GAAA,GAArBA,CAA2B,CACnD;AAAA,QACA,gBAAAF,EAAAG,GAAA,EAAgB,UAAAT,GAAoB,UAAS,aAAa,CAAA;AAAA,QAC1DG,EAAW,IAAI,CAAAK,wBACbD,GAAK,EAAA,MAAAC,KAAiBA,CAAM,CAC9B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -1,6 +1,6 @@
1
- import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
- import { memo as F, useMemo as G, useState as j, useRef as _, useCallback as w, useLayoutEffect as K } from "react";
3
- import U from "../../assets/line-icons/icons/closed-eye.js";
1
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
+ import { memo as U, useMemo as F, useState as G, useRef as b, useCallback as w, useLayoutEffect as j } from "react";
3
+ import K from "../../assets/line-icons/icons/closed-eye.js";
4
4
  import y from "../chapters-v2/comps/node-card/node-card-tags.js";
5
5
  import { getNodeTypeBasedBgImage as V } from "../chapters-v2/utils/index.js";
6
6
  import { getNodeCardBasedIcon as Z } from "../chapters-v2/utils/node-card-utils.js";
@@ -12,8 +12,8 @@ import J from "../ui/lottie-animation/lottie-animation.js";
12
12
  import Q from "./card-title.js";
13
13
  import { EHWCardListEntityType as ee } from "./hw-card-list/hw-card-list-types.js";
14
14
  import A from "./node-progress.js";
15
- import { PuzzleCardWrapper as te, CardWrapper as re, IconWrapper as oe, BannerImageWrapper as ie, BannerImage as ne, HeaderText as de, SubHeaderText as se } from "./styles.js";
16
- const ae = { renderer: "canvas", autoplay: !1 }, le = ({
15
+ import { PuzzleCardWrapper as re, CardWrapper as te, IconWrapper as oe, BannerImageWrapper as ie, BannerImage as ne, HeaderText as de, SubHeaderText as ae } from "./styles.js";
16
+ const le = { renderer: "canvas", autoplay: !1 }, se = ({
17
17
  header: E,
18
18
  isInQueue: k,
19
19
  nodeData: i,
@@ -23,28 +23,28 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
23
23
  isMilestone: d = !1,
24
24
  puzzleHWCardRef: x,
25
25
  entityType: N,
26
- state: t,
26
+ state: r,
27
27
  score: O,
28
- imageUrl: f,
29
28
  mathFitCardRef: v
30
29
  }) => {
31
30
  const {
32
- node_type: r,
31
+ node_type: t,
33
32
  accuracy: I,
34
33
  due_date_ts: o,
35
- image_hue: s,
34
+ image_url: f,
35
+ image_hue: a,
36
36
  card_header: z = "",
37
37
  unlocked_on_ts: m,
38
38
  course_type: D,
39
39
  title: H
40
- } = i, L = r === "PUZZLE_CARD", $ = N === ee.MATHFIT_TEST, g = n === "STUDENT" && t === "LOCKED", b = t === "LOCKED" || n === "TEACHER" && t !== "COMPLETED" && t !== "EXPIRED", S = G(() => t === "LOCKED" ? $ ? "Take test after class" : "Not available to student" : "Sheet is not completed yet", [t, $]), [X, R] = j(!1), p = _(null), B = V(r), T = _(null), { lottie: P } = Z(r), W = w(() => {
41
- var a;
42
- (a = T.current) == null || a.play();
40
+ } = i, L = t === "PUZZLE_CARD", g = N === ee.MATHFIT_TEST, $ = n === "STUDENT" && r === "LOCKED", _ = r === "LOCKED" || n === "TEACHER" && r !== "COMPLETED" && r !== "EXPIRED", S = F(() => r === "LOCKED" ? g ? "Take test after class" : "Not available to student" : "Sheet is not completed yet", [r, g]), [X, R] = G(!1), p = b(null), B = V(t), T = b(null), { lottie: P } = Z(t), W = w(() => {
41
+ var l;
42
+ (l = T.current) == null || l.play();
43
43
  }, []), M = w(() => {
44
- var a;
45
- (a = T.current) == null || a.stop();
44
+ var l;
45
+ (l = T.current) == null || l.stop();
46
46
  }, []);
47
- return K(() => {
47
+ return j(() => {
48
48
  p.current && p.current.scrollHeight > p.current.clientHeight && R(!0);
49
49
  }, []), L ? /* @__PURE__ */ e(
50
50
  u,
@@ -52,31 +52,31 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
52
52
  renderAs: "primary",
53
53
  tooltipItem: "Solve puzzle after class",
54
54
  position: "bottom",
55
- hidden: !g,
56
- children: /* @__PURE__ */ e("div", { ref: x, children: /* @__PURE__ */ l(
57
- te,
55
+ hidden: !$,
56
+ children: /* @__PURE__ */ e("div", { ref: x, children: /* @__PURE__ */ s(
57
+ re,
58
58
  {
59
59
  ref: h,
60
60
  $position: "relative",
61
- $background: `${s}_2`,
62
- $disabled: g,
61
+ $background: `${a}_2`,
62
+ $disabled: $,
63
63
  children: [
64
64
  /* @__PURE__ */ e(
65
65
  q,
66
66
  {
67
- imageHue: s,
67
+ imageHue: a,
68
68
  imageUrl: f ?? "",
69
69
  title: H,
70
70
  width: 126,
71
71
  height: 159,
72
- disabled: g
72
+ disabled: $
73
73
  }
74
74
  ),
75
75
  /* @__PURE__ */ e(
76
76
  y,
77
77
  {
78
- nodeType: r,
79
- state: t,
78
+ nodeType: t,
79
+ state: r,
80
80
  accuracy: I,
81
81
  dueDateTs: o,
82
82
  isStudent: n === "STUDENT",
@@ -88,48 +88,48 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
88
88
  {
89
89
  dueDate: o * 1e3,
90
90
  unlockedOn: m * 1e3,
91
- progressBg: `${s || "ORANGE"}_5`
91
+ progressBg: `${a || "ORANGE"}_5`
92
92
  }
93
93
  )
94
94
  ]
95
95
  }
96
96
  ) })
97
97
  }
98
- ) : $ ? /* @__PURE__ */ e(
98
+ ) : g ? /* @__PURE__ */ e(
99
99
  u,
100
100
  {
101
101
  renderAs: "primary",
102
102
  tooltipItem: S,
103
103
  position: "bottom",
104
- hidden: !b,
104
+ hidden: !_,
105
105
  children: /* @__PURE__ */ e("div", { ref: v, children: /* @__PURE__ */ e(
106
106
  Y,
107
107
  {
108
108
  score: O,
109
109
  dueDateTs: i.due_date_ts,
110
110
  nodeType: "DYNAMIC",
111
- state: t,
111
+ state: r,
112
112
  subHeader: C,
113
113
  unlockedOnTs: i == null ? void 0 : i.unlocked_on_ts,
114
114
  userType: n,
115
- isMathFitDisabled: b,
115
+ isMathFitDisabled: _,
116
116
  isMilestone: d,
117
117
  studentContainerRef: h
118
118
  }
119
119
  ) })
120
120
  }
121
- ) : /* @__PURE__ */ l(
121
+ ) : /* @__PURE__ */ s(
122
122
  c,
123
123
  {
124
124
  ref: h,
125
125
  $widthX: 12.38,
126
126
  $position: "relative",
127
- $background: `${s || "ORANGE"}_2`,
127
+ $background: `${a || "ORANGE"}_2`,
128
128
  onMouseEnter: W,
129
129
  onMouseLeave: M,
130
130
  children: [
131
- /* @__PURE__ */ l(
132
- re,
131
+ /* @__PURE__ */ s(
132
+ te,
133
133
  {
134
134
  $flexDirection: "row",
135
135
  $alignItems: "center",
@@ -150,10 +150,10 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
150
150
  $position: "relative",
151
151
  $alignItems: "center",
152
152
  $justifyContent: "center",
153
- children: /* @__PURE__ */ e(J, { src: P, ref: T, settings: ae })
153
+ children: /* @__PURE__ */ e(J, { src: P, ref: T, settings: le })
154
154
  }
155
155
  ),
156
- /* @__PURE__ */ e(Q, { cardHeader: z, nodeType: r, courseType: D }),
156
+ /* @__PURE__ */ e(Q, { cardHeader: z, nodeType: t, courseType: D }),
157
157
  k && /* @__PURE__ */ e(
158
158
  u,
159
159
  {
@@ -161,7 +161,7 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
161
161
  tooltipItem: "Not visible to student",
162
162
  position: "bottom",
163
163
  zIndex: 6,
164
- children: /* @__PURE__ */ e(U, {})
164
+ children: /* @__PURE__ */ e(K, {})
165
165
  }
166
166
  ),
167
167
  !!f && /* @__PURE__ */ e(ie, { children: /* @__PURE__ */ e(ne, { src: f, alt: "Chapter image" }) })
@@ -171,8 +171,8 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
171
171
  /* @__PURE__ */ e(
172
172
  y,
173
173
  {
174
- nodeType: r,
175
- state: t,
174
+ nodeType: t,
175
+ state: r,
176
176
  accuracy: I,
177
177
  dueDateTs: o,
178
178
  isStudent: n === "STUDENT",
@@ -184,10 +184,10 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
184
184
  {
185
185
  dueDate: o * 1e3,
186
186
  unlockedOn: m * 1e3,
187
- progressBg: `${s || "ORANGE"}_4`
187
+ progressBg: `${a || "ORANGE"}_4`
188
188
  }
189
189
  ),
190
- /* @__PURE__ */ l(c, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
190
+ /* @__PURE__ */ s(c, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
191
191
  /* @__PURE__ */ e(
192
192
  u,
193
193
  {
@@ -201,7 +201,7 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
201
201
  children: /* @__PURE__ */ e(c, { $heightX: 2.5, children: /* @__PURE__ */ e(de, { ref: p, $renderAs: "ab3", children: E }) })
202
202
  }
203
203
  ),
204
- /* @__PURE__ */ l(
204
+ /* @__PURE__ */ s(
205
205
  c,
206
206
  {
207
207
  $flexDirection: "row",
@@ -209,7 +209,7 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
209
209
  $alignItems: "center",
210
210
  $justifyContent: "space-between",
211
211
  children: [
212
- /* @__PURE__ */ e(se, { $renderAs: "ub3", $color: "BLACK_T_60", children: C }),
212
+ /* @__PURE__ */ e(ae, { $renderAs: "ub3", $color: "BLACK_T_60", children: C }),
213
213
  /* @__PURE__ */ e(c, { $width: 32 })
214
214
  ]
215
215
  }
@@ -218,7 +218,7 @@ const ae = { renderer: "canvas", autoplay: !1 }, le = ({
218
218
  ]
219
219
  }
220
220
  );
221
- }, ye = F(le);
221
+ }, ye = U(se);
222
222
  export {
223
223
  ye as default
224
224
  };