@cuemath/leap 2.8.61-as10 → 2.8.61-as12

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 (26) hide show
  1. package/dist/assets/line-icons/icons/recap.js +3 -3
  2. package/dist/assets/line-icons/icons/recap.js.map +1 -1
  3. package/dist/assets/lottie/lottie.js +9 -1
  4. package/dist/assets/lottie/lottie.js.map +1 -1
  5. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +78 -71
  6. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  7. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +82 -75
  8. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  9. package/dist/features/chapters-v2/utils/node-card-utils.js +68 -46
  10. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  11. package/dist/features/homework/homework-card.js +146 -138
  12. package/dist/features/homework/homework-card.js.map +1 -1
  13. package/dist/features/homework/hw-card-list/hw-card-list-styled.js +24 -11
  14. package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +1 -1
  15. package/dist/index.d.ts +10 -0
  16. package/dist/index.js +381 -379
  17. package/dist/index.js.map +1 -1
  18. package/dist/static/competitive-arena.b9c40801.json +1 -0
  19. package/dist/static/learn.71b13323.json +1 -0
  20. package/dist/static/practice.158dd488.json +1 -0
  21. package/dist/static/project.eb665827.json +1 -0
  22. package/dist/static/puzzle.b298c7e4.json +1 -0
  23. package/dist/static/recap.0dd2c1e2.json +1 -0
  24. package/dist/static/test.803d6036.json +1 -0
  25. package/dist/static/video.b41451e2.json +1 -0
  26. package/package.json +1 -1
@@ -1,181 +1,188 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
- import { memo as ne, useRef as y, useState as oe, useLayoutEffect as ce, useCallback as E } from "react";
3
- import M from "../../assets/line-icons/icons/eye2.js";
4
- import ae from "../../assets/line-icons/icons/more-vertical.js";
5
- import se from "../../assets/line-icons/icons/redo.js";
6
- import le from "../chapters-v2/comps/node-card/node-card-tags.js";
7
- import { getNodeTypeBasedBgImage as de } from "../chapters-v2/utils/index.js";
8
- import { getNodeCardBasedIcon as ue } from "../chapters-v2/utils/node-card-utils.js";
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
+ import { memo as de, useState as B, useRef as I, useLayoutEffect as ue, useCallback as s } from "react";
3
+ import V from "../../assets/line-icons/icons/eye2.js";
4
+ import he from "../../assets/line-icons/icons/more-vertical.js";
5
+ import me from "../../assets/line-icons/icons/redo.js";
6
+ import fe from "../chapters-v2/comps/node-card/node-card-tags.js";
7
+ import { getNodeTypeBasedBgImage as pe } from "../chapters-v2/utils/index.js";
8
+ import { getNodeCardBasedIcon as $e } from "../chapters-v2/utils/node-card-utils.js";
9
9
  import j from "../ui/arrow-tooltip/arrow-tooltip.js";
10
- import he from "../ui/buttons/clickable/clickable.js";
10
+ import we from "../ui/buttons/clickable/clickable.js";
11
11
  import G from "../ui/hooks/use-context-menu-click-handler.js";
12
12
  import o from "../ui/layout/flex-view.js";
13
- import I from "../ui/text/text.js";
13
+ import be from "../ui/lottie-animation/lottie-animation.js";
14
+ import y from "../ui/text/text.js";
14
15
  import K from "./card-menu-options.js";
15
- import me from "./node-progress.js";
16
- import { CardContainer as fe, CardWrapper as pe, IconWrapper as $e, BannerImageWrapper as we, BannerImage as be, HeaderText as ge, SubHeaderText as Ce, MenuWrapper as ke, CardKebabMenuWrapper as _e, StyledMinus2Icon as Te } from "./styles.js";
17
- const ye = ({
18
- header: x,
16
+ import ge from "./node-progress.js";
17
+ import { CardContainer as Ce, CardWrapper as ke, IconWrapper as _e, BannerImageWrapper as Te, BannerImage as Ee, HeaderText as Ie, SubHeaderText as ye, MenuWrapper as ve, CardKebabMenuWrapper as xe, StyledMinus2Icon as Re } from "./styles.js";
18
+ const Ae = ({
19
+ header: v,
19
20
  nodeData: r,
20
- subHeader: L,
21
+ subHeader: z,
21
22
  userType: P,
22
23
  userMilestoneId: t,
23
- onNodeUnassign: s,
24
- onNodeReattempt: l,
25
- onNodeView: m,
26
- onNodeReview: i,
27
- onNodeAttempt: f,
28
- renderAs: z,
29
- shouldOpenOnRight: F
24
+ onNodeUnassign: l,
25
+ onNodeReattempt: d,
26
+ onNodeView: f,
27
+ onNodeReview: n,
28
+ onNodeAttempt: p,
29
+ renderAs: F,
30
+ shouldOpenOnRight: Y
30
31
  }) => {
31
- const c = z === "homework", {
32
- node_type: d,
33
- state: Y,
34
- accuracy: q,
35
- due_date_ts: p,
36
- image_url: v,
37
- image_hue: H,
38
- card_header: J = "",
39
- permissions: Q,
40
- user_node_id: u,
41
- unlocked_on_ts: R,
42
- user_milestone_id: $
43
- } = r, Z = de(d), A = ue(d), w = y(null), b = y(null), a = y(null), { menuVisible: O, onMenuClick: U } = G(w), { menuVisible: D, onMenuClick: S } = G(b), [N, ee] = oe(!1), {
44
- can_start: W,
45
- can_resume: X,
46
- can_review: g,
47
- can_teacher_review: B,
48
- can_unassign: re,
49
- can_reset: C
50
- } = Q, k = P === "STUDENT";
51
- ce(() => {
52
- a.current && a.current.scrollHeight > a.current.clientHeight && ee(!0);
32
+ const c = F === "homework", {
33
+ node_type: u,
34
+ state: q,
35
+ accuracy: J,
36
+ due_date_ts: $,
37
+ image_url: x,
38
+ image_hue: R,
39
+ card_header: Q = "",
40
+ permissions: Z,
41
+ user_node_id: h,
42
+ unlocked_on_ts: A,
43
+ user_milestone_id: w
44
+ } = r, [U, H] = B(!1), D = pe(u), { icon: N, lottie: ee } = $e(u), b = I(null), g = I(null), a = I(null), { menuVisible: O, onMenuClick: re } = G(b), { menuVisible: te, onMenuClick: M } = G(g), [ne, ie] = B(!1), {
45
+ can_start: S,
46
+ can_resume: W,
47
+ can_review: C,
48
+ can_teacher_review: X,
49
+ can_unassign: oe,
50
+ can_reset: k
51
+ } = Z, _ = P === "STUDENT";
52
+ ue(() => {
53
+ a.current && a.current.scrollHeight > a.current.clientHeight && ie(!0);
53
54
  }, [a]);
54
- const _ = E(() => {
55
- if (W || X) {
56
- if (typeof f != "function")
55
+ const T = s(() => {
56
+ if (S || W) {
57
+ if (typeof p != "function")
57
58
  throw new Error("onNodeAttempt must be a function");
58
- f(r);
59
+ p(r);
59
60
  return;
60
61
  }
61
- if (C && !c) {
62
- S();
62
+ if (k && !c) {
63
+ M();
63
64
  return;
64
65
  }
65
- if (g) {
66
- if (typeof i != "function")
66
+ if (C) {
67
+ if (typeof n != "function")
67
68
  throw new Error("onReview must be a function");
68
- if (!u)
69
+ if (!h)
69
70
  throw new Error("user node id must be present to review the sheet");
70
- i(r, t);
71
+ n(r, t);
71
72
  return;
72
73
  }
73
74
  }, [
75
+ S,
74
76
  W,
75
- X,
76
- C,
77
+ k,
77
78
  c,
78
- g,
79
- f,
79
+ C,
80
+ p,
80
81
  r,
81
- S,
82
- i,
83
- u,
82
+ M,
83
+ n,
84
+ h,
84
85
  t
85
- ]), T = E(() => {
86
- if (B) {
87
- if (typeof i != "function")
86
+ ]), E = s(() => {
87
+ if (X) {
88
+ if (typeof n != "function")
88
89
  throw new Error("onNodeReview must be a function");
89
- if (!u)
90
+ if (!h)
90
91
  throw new Error("user node id must be present to review the sheet");
91
- i(r, t || $);
92
+ n(r, t || w);
92
93
  return;
93
94
  }
94
- if (typeof m != "function")
95
+ if (typeof f != "function")
95
96
  throw new Error("onNodeView must be a function");
96
- m(r, t || $);
97
+ f(r, t || w);
97
98
  }, [
98
- B,
99
+ X,
99
100
  t,
100
101
  r,
101
- i,
102
- $,
103
- m,
104
- u
105
- ]), h = E(
106
- (V) => {
107
- switch (V) {
102
+ n,
103
+ w,
104
+ f,
105
+ h
106
+ ]), m = s(
107
+ (L) => {
108
+ switch (L) {
108
109
  case "teacher-card-view":
109
- T();
110
+ E();
110
111
  return;
111
112
  case "student-card-click":
112
- _();
113
+ T();
113
114
  return;
114
115
  case "teacher-card-unassign":
115
- s == null || s(r, t);
116
+ l == null || l(r, t);
116
117
  return;
117
118
  case "student-card-reattempt":
118
- l == null || l(r, t);
119
+ d == null || d(r, t);
119
120
  return;
120
121
  default:
121
- throw new Error(`No callback function for ${V}`);
122
+ throw new Error(`No callback function for ${L}`);
122
123
  }
123
124
  },
124
- [r, l, s, _, T, t]
125
- ), te = [
125
+ [r, d, l, T, E, t]
126
+ ), ce = s(() => {
127
+ H(!0);
128
+ }, []), ae = s(() => {
129
+ H(!1);
130
+ }, []), se = [
126
131
  {
127
132
  id: "teacher-card-view",
128
133
  label: "View",
129
- icon: M,
134
+ icon: V,
130
135
  disabled: !1,
131
- onClick: h
136
+ onClick: m
132
137
  },
133
138
  {
134
139
  id: "teacher-card-unassign",
135
140
  label: "Unassign",
136
- icon: Te,
137
- disabled: c ? !1 : !re,
138
- onClick: h
141
+ icon: Re,
142
+ disabled: c ? !1 : !oe,
143
+ onClick: m
139
144
  }
140
- ], ie = [
145
+ ], le = [
141
146
  {
142
147
  id: "student-card-click",
143
148
  label: "Review",
144
- icon: M,
145
- disabled: !g,
146
- onClick: h
149
+ icon: V,
150
+ disabled: !C,
151
+ onClick: m
147
152
  },
148
153
  {
149
154
  id: "student-card-reattempt",
150
155
  label: "Reattempt",
151
- icon: se,
152
- disabled: !C,
153
- onClick: h
156
+ icon: me,
157
+ disabled: !k,
158
+ onClick: m
154
159
  }
155
160
  ];
156
- return /* @__PURE__ */ n(fe, { $position: "relative", $width: "fit-content", children: [
157
- /* @__PURE__ */ e(he, { onClick: k ? _ : T, label: "homework-card", children: /* @__PURE__ */ n(
161
+ return /* @__PURE__ */ i(Ce, { $position: "relative", $width: "fit-content", children: [
162
+ /* @__PURE__ */ e(we, { onClick: _ ? T : E, label: "homework-card", children: /* @__PURE__ */ i(
158
163
  o,
159
164
  {
160
- ref: b,
165
+ ref: g,
161
166
  $widthX: 12.38,
162
167
  $position: "relative",
163
- $background: `${H || "ORANGE"}_2`,
168
+ $background: `${R || "ORANGE"}_2`,
169
+ onMouseEnter: ce,
170
+ onMouseLeave: ae,
164
171
  children: [
165
- /* @__PURE__ */ n(
166
- pe,
172
+ /* @__PURE__ */ i(
173
+ ke,
167
174
  {
168
175
  $flexDirection: "row",
169
176
  $alignItems: "center",
170
177
  $width: "100%",
171
178
  $heightX: 3.5,
172
- $bgImage: Z,
179
+ $bgImage: D,
173
180
  $gutterX: 0.78125,
174
181
  $flexGap: 8.5,
175
182
  $position: "relative",
176
183
  children: [
177
184
  /* @__PURE__ */ e(
178
- $e,
185
+ _e,
179
186
  {
180
187
  $width: 31,
181
188
  $height: 31,
@@ -184,44 +191,45 @@ const ye = ({
184
191
  $position: "relative",
185
192
  $alignItems: "center",
186
193
  $justifyContent: "center",
187
- children: A && /* @__PURE__ */ e(A, { width: 20, height: 20 })
194
+ children: U ? /* @__PURE__ */ e(be, { src: ee }) : /* @__PURE__ */ e(N, { width: 20, height: 20 })
188
195
  }
189
196
  ),
190
- d === "MASTERY" ? /* @__PURE__ */ n(o, { children: [
191
- /* @__PURE__ */ e(o, { $background: "BLACK_T_60", $width: "fit-content", $gutterX: 0.25, children: /* @__PURE__ */ e(I, { $color: "WHITE", $renderAs: "ac4-black", children: "Smart" }) }),
192
- /* @__PURE__ */ e(I, { $renderAs: "ac4-black", children: "Practice" })
193
- ] }) : /* @__PURE__ */ e(I, { $renderAs: "ac4-black", children: J }),
194
- !!v && /* @__PURE__ */ e(we, { children: /* @__PURE__ */ e(be, { src: v, alt: "Chapter image" }) })
197
+ u === "MASTERY" ? /* @__PURE__ */ i(o, { children: [
198
+ /* @__PURE__ */ e(o, { $background: "BLACK_T_60", $width: "fit-content", $gutterX: 0.25, children: /* @__PURE__ */ e(y, { $color: "WHITE", $renderAs: "ac4-black", children: "Smart" }) }),
199
+ /* @__PURE__ */ e(y, { $renderAs: "ac4-black", children: "Practice" })
200
+ ] }) : /* @__PURE__ */ e(y, { $renderAs: "ac4-black", children: Q }),
201
+ !!x && /* @__PURE__ */ e(Te, { children: /* @__PURE__ */ e(Ee, { src: x, alt: "Chapter image" }) })
195
202
  ]
196
203
  }
197
204
  ),
198
205
  /* @__PURE__ */ e(
199
- le,
206
+ fe,
200
207
  {
201
- nodeType: d,
202
- state: Y,
203
- accuracy: q,
204
- dueDateTs: p
208
+ nodeType: u,
209
+ state: q,
210
+ accuracy: J,
211
+ dueDateTs: $
205
212
  }
206
213
  ),
207
- p && R && /* @__PURE__ */ e(
208
- me,
214
+ $ && A && /* @__PURE__ */ e(
215
+ ge,
209
216
  {
210
- dueDate: p * 1e3,
211
- unlockedOn: R * 1e3,
212
- progressBg: `${H || "ORANGE"}_4`
217
+ dueDate: $ * 1e3,
218
+ unlockedOn: A * 1e3,
219
+ progressBg: `${R || "ORANGE"}_4`
213
220
  }
214
221
  ),
215
- /* @__PURE__ */ n(o, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
222
+ /* @__PURE__ */ i(o, { $gutterX: 0.75, $gapX: 1, $flexRowGapX: 0.5, $background: "WHITE", children: [
216
223
  /* @__PURE__ */ e(
217
224
  j,
218
225
  {
219
226
  renderAs: "primary",
220
227
  position: "bottom",
221
- tooltipItem: x,
222
- hidden: !N,
228
+ tooltipItem: v,
229
+ hidden: !ne,
223
230
  parentWidth: "auto",
224
- children: /* @__PURE__ */ e(o, { $heightX: 2.5, children: /* @__PURE__ */ e(ge, { ref: a, $renderAs: "ab3", children: x }) })
231
+ zIndex: 2,
232
+ children: /* @__PURE__ */ e(o, { $heightX: 2.5, children: /* @__PURE__ */ e(Ie, { ref: a, $renderAs: "ab3", children: v }) })
225
233
  }
226
234
  ),
227
235
  /* @__PURE__ */ e(
@@ -231,24 +239,24 @@ const ye = ({
231
239
  $heightX: 1.25,
232
240
  $alignItems: "center",
233
241
  $justifyContent: "space-between",
234
- children: /* @__PURE__ */ e(Ce, { $renderAs: "ub3", $color: "BLACK_T_60", children: L })
242
+ children: /* @__PURE__ */ e(ye, { $renderAs: "ub3", $color: "BLACK_T_60", children: z })
235
243
  }
236
244
  )
237
245
  ] })
238
246
  ]
239
247
  }
240
248
  ) }),
241
- k && !c && /* @__PURE__ */ e(
249
+ _ && !c && /* @__PURE__ */ e(
242
250
  K,
243
251
  {
244
252
  $width: 200,
245
- options: ie,
246
- triggerRef: b,
247
- visible: D,
253
+ options: le,
254
+ triggerRef: g,
255
+ visible: te,
248
256
  shouldOpenOnRight: !1
249
257
  }
250
258
  ),
251
- !k && /* @__PURE__ */ n(ke, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
259
+ !_ && /* @__PURE__ */ i(ve, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
252
260
  /* @__PURE__ */ e(
253
261
  j,
254
262
  {
@@ -259,13 +267,13 @@ const ye = ({
259
267
  parentWidth: "100%",
260
268
  hidden: !c || O,
261
269
  children: /* @__PURE__ */ e(
262
- _e,
270
+ xe,
263
271
  {
264
272
  $alignItems: "center",
265
273
  $justifyContent: "center",
266
- ref: w,
267
- onClick: U,
268
- children: /* @__PURE__ */ e(ae, { width: 16, height: 16 })
274
+ ref: b,
275
+ onClick: re,
276
+ children: /* @__PURE__ */ e(he, { width: 16, height: 16 })
269
277
  }
270
278
  )
271
279
  }
@@ -273,16 +281,16 @@ const ye = ({
273
281
  /* @__PURE__ */ e(
274
282
  K,
275
283
  {
276
- options: te,
277
- triggerRef: w,
284
+ options: se,
285
+ triggerRef: b,
278
286
  visible: O,
279
- shouldOpenOnRight: F
287
+ shouldOpenOnRight: Y
280
288
  }
281
289
  )
282
290
  ] })
283
291
  ] });
284
- }, Ke = ne(ye);
292
+ }, Je = de(Ae);
285
293
  export {
286
- Ke as default
294
+ Je as default
287
295
  };
288
296
  //# sourceMappingURL=homework-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { IHomeworkData } from './hw-card-list/api/get-homeworks';\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport NodeProgress from './node-progress';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps | IHomeworkData;\n subHeader: string;\n userType: TUserTypes;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReattempt,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n renderAs,\n shouldOpenOnRight,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n unlocked_on_ts: unlockedOnTs,\n user_milestone_id: milestoneId,\n } = nodeData;\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\n if (canReset && !isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [\n canStart,\n canResume,\n canReset,\n isHomeWork,\n canReview,\n onNodeAttempt,\n nodeData,\n onStudentMenuClick,\n onNodeReview,\n userNodeId,\n userMilestoneId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n\n onNodeReview(nodeData, userMilestoneId || milestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canTeacherReview,\n userMilestoneId,\n nodeData,\n onNodeReview,\n milestoneId,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherView();\n\n return;\n case 'student-card-click':\n onStudentView();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeUnassign, onStudentView, onTeacherView, userMilestoneId],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? false : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-click',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable onClick={isStudent ? onStudentView : onTeacherView} label=\"homework-card\">\n <FlexView\n ref={studentContainerRef}\n $widthX={12.38}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n </Styled.IconWrapper>\n {nodeType === 'MASTERY' ? (\n <FlexView>\n <FlexView $background=\"BLACK_T_60\" $width=\"fit-content\" $gutterX={0.25}>\n <Text $color=\"WHITE\" $renderAs=\"ac4-black\">\n Smart\n </Text>\n </FlexView>\n <Text $renderAs=\"ac4-black\">Practice</Text>\n </FlexView>\n ) : (\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n )}\n\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n />\n {dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_4`}\n />\n )}\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n hidden={!showTitleTooltip}\n parentWidth=\"auto\"\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n </FlexView>\n </FlexView>\n </FlexView>\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n hidden={!isHomeWork || teacherMenuVisible}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReattempt","onNodeView","onNodeReview","onNodeAttempt","renderAs","shouldOpenOnRight","isHomeWork","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","unlockedOnTs","milestoneId","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","teacherContainerRef","useRef","studentContainerRef","titleTextRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","showTitleTooltip","setShowTitleTooltip","useState","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","Styled.CardContainer","jsx","Clickable","jsxs","FlexView","Styled.CardWrapper","Styled.IconWrapper","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","NodeProgress","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","CardMenuOptions","Styled.MenuWrapper","Styled.CardKebabMenuWrapper","MoreVerticalIcon","HomeworkCard$1","memo"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAMA,KAAe,CAAC;AAAA,EACpB,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AACF,MAA0B;AACxB,QAAMC,IAAaF,MAAa,YAC1B;AAAA,IACJ,WAAWG;AAAA,IACX,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAaC;AAAA,IACb,WAAWC;AAAA,IACX,WAAWC;AAAA,IACX,aAAaC,IAAa;AAAA,IAC1B,aAAAC;AAAA,IACA,cAAcC;AAAA,IACd,gBAAgBC;AAAA,IAChB,mBAAmBC;AAAA,EACjB,IAAAtB,GACEuB,IAAUC,GAAwBZ,CAAQ,GAC1Ca,IAAeC,GAAqBd,CAAQ,GAC5Ce,IAAsBC,EAAuB,IAAI,GACjDC,IAAsBD,EAAuB,IAAI,GACjDE,IAAeF,EAAuB,IAAI,GAC1C,EAAE,aAAaG,GAAoB,aAAaC,MACpDC,EAA2BN,CAAmB,GAC1C,EAAE,aAAaO,GAAoB,aAAaC,MACpDF,EAA2BJ,CAAmB,GAC1C,CAACO,GAAkBC,EAAmB,IAAIC,GAAS,EAAK,GAExD;AAAA,IACJ,WAAWC;AAAA,IACX,YAAYC;AAAA,IACZ,YAAYC;AAAA,IACZ,oBAAoBC;AAAA,IACpB,cAAcC;AAAA,IACd,WAAWC;AAAA,EACT,IAAAzB,GACE0B,IAAY3C,MAAa;AAE/B,EAAA4C,GAAgB,MAAM;AACpB,IACEhB,EAAa,WACbA,EAAa,QAAQ,eAAeA,EAAa,QAAQ,gBAEzDO,GAAoB,EAAI;AAAA,EAC1B,GACC,CAACP,CAAY,CAAC;AAEX,QAAAiB,IAAgBC,EAAY,MAAM;AACtC,QAAIT,KAAYC,GAAW;AACrB,UAAA,OAAOhC,KAAkB;AACrB,cAAA,IAAI,MAAM,kCAAkC;AAGpD,MAAAA,EAAcR,CAAQ;AAEtB;AAAA,IACF;AAEI,QAAA4C,KAAY,CAACjC,GAAY;AACR,MAAAwB;AAEnB;AAAA,IACF;AAEA,QAAIM,GAAW;AACT,UAAA,OAAOlC,KAAiB;AACpB,cAAA,IAAI,MAAM,6BAA6B;AAG/C,UAAI,CAACa;AACG,cAAA,IAAI,MAAM,kDAAkD;AAEpE,MAAAb,EAAaP,GAAUG,CAAe;AAEtC;AAAA,IACF;AAAA,EAAA,GACC;AAAA,IACDoC;AAAA,IACAC;AAAA,IACAI;AAAA,IACAjC;AAAA,IACA8B;AAAA,IACAjC;AAAA,IACAR;AAAA,IACAmC;AAAA,IACA5B;AAAA,IACAa;AAAA,IACAjB;AAAA,EAAA,CACD,GAEK8C,IAAgBD,EAAY,MAAM;AACtC,QAAIN,GAAkB;AAChB,UAAA,OAAOnC,KAAiB;AACpB,cAAA,IAAI,MAAM,iCAAiC;AAGnD,UAAI,CAACa;AACG,cAAA,IAAI,MAAM,kDAAkD;AAGvD,MAAAb,EAAAP,GAAUG,KAAmBmB,CAAW;AAErD;AAAA,IACF;AAEI,QAAA,OAAOhB,KAAe;AAClB,YAAA,IAAI,MAAM,+BAA+B;AAGtC,IAAAA,EAAAN,GAAUG,KAAmBmB,CAAW;AAAA,EAAA,GAClD;AAAA,IACDoB;AAAA,IACAvC;AAAA,IACAH;AAAA,IACAO;AAAA,IACAe;AAAA,IACAhB;AAAA,IACAc;AAAA,EAAA,CACD,GAEK8B,IAA0BF;AAAA,IAC9B,CAACG,MAAqB;AACpB,cAAQA,GAAU;AAAA,QAChB,KAAK;AACW,UAAAF;AAEd;AAAA,QACF,KAAK;AACW,UAAAF;AAEd;AAAA,QACF,KAAK;AACH,UAAA3C,KAAA,QAAAA,EAAiBJ,GAAUG;AAE3B;AAAA,QACF,KAAK;AACH,UAAAE,KAAA,QAAAA,EAAkBL,GAAUG;AAE5B;AAAA,QACF;AACE,gBAAM,IAAI,MAAM,4BAA4BgD,CAAQ,EAAE;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,CAACnD,GAAUK,GAAiBD,GAAgB2C,GAAeE,GAAe9C,CAAe;AAAA,EAAA,GAGrFiD,KAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMC;AAAA,MACN,UAAU;AAAA,MACV,SAASH;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMI;AAAAA,MACN,UAAU3C,IAAa,KAAQ,CAACgC;AAAA,MAChC,SAASO;AAAA,IACX;AAAA,EAAA,GAGIK,KAAiB;AAAA,IACrB;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMF;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASS;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMM;AAAA,MACN,UAAU,CAACZ;AAAA,MACX,SAASM;AAAA,IACX;AAAA,EAAA;AAGF,2BACGO,IAAA,EAAqB,WAAU,YAAW,QAAO,eAChD,UAAA;AAAA,IAAA,gBAAAC,EAACC,MAAU,SAASd,IAAYE,IAAgBE,GAAe,OAAM,iBACnE,UAAA,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKhC;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACV,aAAa,GAAGZ,KAAY,QAAQ;AAAA,QAEpC,UAAA;AAAA,UAAA,gBAAA2C;AAAA,YAACE;AAAAA,YAAA;AAAA,cACC,gBAAe;AAAA,cACf,aAAY;AAAA,cACZ,QAAO;AAAA,cACP,UAAU;AAAA,cACV,UAAUvC;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,WAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAAmC;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,QAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,gBAAgB;AAAA,oBAChB,aAAY;AAAA,oBACZ,WAAU;AAAA,oBACV,aAAY;AAAA,oBACZ,iBAAgB;AAAA,oBAEf,eAAiB,gBAAAL,EAAAjC,GAAA,EAAa,OAAO,IAAI,QAAQ,IAAI;AAAA,kBAAA;AAAA,gBACxD;AAAA,gBACCb,MAAa,YACZ,gBAAAgD,EAACC,GACC,EAAA,UAAA;AAAA,kBAAA,gBAAAH,EAACG,GAAS,EAAA,aAAY,cAAa,QAAO,eAAc,UAAU,MAChE,UAAC,gBAAAH,EAAAM,GAAA,EAAK,QAAO,SAAQ,WAAU,aAAY,kBAE3C,CAAA,GACF;AAAA,kBACC,gBAAAN,EAAAM,GAAA,EAAK,WAAU,aAAY,UAAQ,YAAA;AAAA,gBAAA,GACtC,IAEA,gBAAAN,EAACM,GAAK,EAAA,WAAU,aAAa,UAAW9C,GAAA;AAAA,gBAGzC,CAAC,CAACF,KACD,gBAAA0C,EAACO,IAAA,EACC,UAAC,gBAAAP,EAAAQ,IAAA,EAAmB,KAAKlD,GAAU,KAAI,iBAAgB,EACzD,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,UACA,gBAAA0C;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,UAAAvD;AAAA,cACA,OAAAC;AAAA,cACA,UAAAC;AAAA,cACA,WAAAC;AAAA,YAAA;AAAA,UACF;AAAA,UACCA,KAAaM,KACZ,gBAAAqC;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,SAASrD,IAAY;AAAA,cACrB,YAAYM,IAAe;AAAA,cAC3B,YAAY,GAAGJ,KAAY,QAAQ;AAAA,YAAA;AAAA,UACrC;AAAA,UAEF,gBAAA2C,EAACC,KAAS,UAAU,MAAM,OAAO,GAAG,cAAc,KAAK,aAAY,SACjE,UAAA;AAAA,YAAA,gBAAAH;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,aAAatE;AAAA,gBACb,QAAQ,CAACqC;AAAA,gBACT,aAAY;AAAA,gBAEZ,UAAC,gBAAAsB,EAAAG,GAAA,EAAS,UAAU,KAClB,UAAC,gBAAAH,EAAAY,IAAA,EAAkB,KAAKxC,GAAc,WAAU,OAC7C,YACH,CAAA,GACF;AAAA,cAAA;AAAA,YACF;AAAA,YACA,gBAAA4B;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,UAAU;AAAA,gBACV,aAAY;AAAA,gBACZ,iBAAgB;AAAA,gBAEhB,UAAA,gBAAAH,EAACa,IAAA,EAAqB,WAAU,OAAM,QAAO,cAC1C,UACHtE,GAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACC4C,KAAa,CAAClC,KACb,gBAAA+C;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,SAASjB;AAAA,QACT,YAAY1B;AAAA,QACZ,SAASK;AAAA,QACT,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,IAED,CAACW,KACA,gBAAAe,EAACa,IAAA,EAAmB,WAAU,YAAW,QAAO,eAAc,gBAAgB,GAC5E,UAAA;AAAA,MAAA,gBAAAf;AAAA,QAACW;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,UAAS;AAAA,UACT,QAAQ;AAAA,UACR,aAAY;AAAA,UACZ,QAAQ,CAAC1D,KAAcoB;AAAA,UAEvB,UAAA,gBAAA2B;AAAA,YAACgB;AAAAA,YAAA;AAAA,cACC,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,KAAK/C;AAAA,cACL,SAASK;AAAA,cAET,UAAC,gBAAA0B,EAAAiB,IAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,MACA,gBAAAjB;AAAA,QAACc;AAAA,QAAA;AAAA,UACC,SAASpB;AAAA,UACT,YAAYzB;AAAA,UACZ,SAASI;AAAA,UACT,mBAAArB;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEekE,KAAAC,GAAK/E,EAAY;"}
1
+ {"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { IHomeworkData } from './hw-card-list/api/get-homeworks';\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport NodeCardTags from '../chapters-v2/comps/node-card/node-card-tags';\nimport { getNodeTypeBasedBgImage } from '../chapters-v2/utils';\nimport { getNodeCardBasedIcon } from '../chapters-v2/utils/node-card-utils';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport LottieAnimation from '../ui/lottie-animation/lottie-animation';\nimport Text from '../ui/text/text';\nimport CardMenuOptions from './card-menu-options';\nimport NodeProgress from './node-progress';\nimport * as Styled from './styles';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps | IHomeworkData;\n subHeader: string;\n userType: TUserTypes;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n}\n\nconst HomeworkCard = ({\n header,\n nodeData,\n subHeader,\n userType,\n userMilestoneId,\n onNodeUnassign,\n onNodeReattempt,\n onNodeView,\n onNodeReview,\n onNodeAttempt,\n renderAs,\n shouldOpenOnRight,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n accuracy,\n due_date_ts: dueDateTs,\n image_url: imageUrl,\n image_hue: imageHue,\n card_header: cardHeader = '',\n permissions,\n user_node_id: userNodeId,\n unlocked_on_ts: unlockedOnTs,\n user_milestone_id: milestoneId,\n } = nodeData;\n\n const [renderLottie, setRenderLottie] = useState(false);\n const bgImage = getNodeTypeBasedBgImage(nodeType);\n const { icon: NodeCardIcon, lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const titleTextRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const onStudentView = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData);\n\n return;\n }\n\n if (canReset && !isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [\n canStart,\n canResume,\n canReset,\n isHomeWork,\n canReview,\n onNodeAttempt,\n nodeData,\n onStudentMenuClick,\n onNodeReview,\n userNodeId,\n userMilestoneId,\n ]);\n\n const onTeacherView = useCallback(() => {\n if (canTeacherReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n\n onNodeReview(nodeData, userMilestoneId || milestoneId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canTeacherReview,\n userMilestoneId,\n nodeData,\n onNodeReview,\n milestoneId,\n onNodeView,\n userNodeId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherView();\n\n return;\n case 'student-card-click':\n onStudentView();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeUnassign, onStudentView, onTeacherView, userMilestoneId],\n );\n\n const handleOnMouseEnter = useCallback(() => {\n setRenderLottie(true);\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n setRenderLottie(false);\n }, []);\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? false : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-click',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable onClick={isStudent ? onStudentView : onTeacherView} label=\"homework-card\">\n <FlexView\n ref={studentContainerRef}\n $widthX={12.38}\n $position=\"relative\"\n $background={`${imageHue || 'ORANGE'}_2`}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Styled.CardWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={bgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $position=\"relative\"\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $borderRadiusX={2}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {renderLottie ? (\n <LottieAnimation src={nodeCardLottie} />\n ) : (\n <NodeCardIcon width={20} height={20} />\n )}\n </Styled.IconWrapper>\n {nodeType === 'MASTERY' ? (\n <FlexView>\n <FlexView $background=\"BLACK_T_60\" $width=\"fit-content\" $gutterX={0.25}>\n <Text $color=\"WHITE\" $renderAs=\"ac4-black\">\n Smart\n </Text>\n </FlexView>\n <Text $renderAs=\"ac4-black\">Practice</Text>\n </FlexView>\n ) : (\n <Text $renderAs=\"ac4-black\">{cardHeader}</Text>\n )}\n\n {!!imageUrl && (\n <Styled.BannerImageWrapper>\n <Styled.BannerImage src={imageUrl} alt=\"Chapter image\" />\n </Styled.BannerImageWrapper>\n )}\n </Styled.CardWrapper>\n <NodeCardTags\n nodeType={nodeType}\n state={state}\n accuracy={accuracy}\n dueDateTs={dueDateTs}\n />\n {dueDateTs && unlockedOnTs && (\n <NodeProgress\n dueDate={dueDateTs * 1000}\n unlockedOn={unlockedOnTs * 1000}\n progressBg={`${imageHue || 'ORANGE'}_4`}\n />\n )}\n <FlexView $gutterX={0.75} $gapX={1} $flexRowGapX={0.5} $background=\"WHITE\">\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={header}\n hidden={!showTitleTooltip}\n parentWidth=\"auto\"\n zIndex={2}\n >\n <FlexView $heightX={2.5}>\n <Styled.HeaderText ref={titleTextRef} $renderAs=\"ab3\">\n {header}\n </Styled.HeaderText>\n </FlexView>\n </ArrowTooltip>\n <FlexView\n $flexDirection=\"row\"\n $heightX={1.25}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n >\n <Styled.SubHeaderText $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {subHeader}\n </Styled.SubHeaderText>\n </FlexView>\n </FlexView>\n </FlexView>\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={5}\n parentWidth=\"100%\"\n hidden={!isHomeWork || teacherMenuVisible}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","header","nodeData","subHeader","userType","userMilestoneId","onNodeUnassign","onNodeReattempt","onNodeView","onNodeReview","onNodeAttempt","renderAs","shouldOpenOnRight","isHomeWork","nodeType","state","accuracy","dueDateTs","imageUrl","imageHue","cardHeader","permissions","userNodeId","unlockedOnTs","milestoneId","renderLottie","setRenderLottie","useState","bgImage","getNodeTypeBasedBgImage","NodeCardIcon","nodeCardLottie","getNodeCardBasedIcon","teacherContainerRef","useRef","studentContainerRef","titleTextRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","showTitleTooltip","setShowTitleTooltip","canStart","canResume","canReview","canTeacherReview","canUnassign","canReset","isStudent","useLayoutEffect","onStudentView","useCallback","onTeacherView","handleOnMenuOptionClick","optionId","handleOnMouseEnter","handleOnMouseLeave","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","Styled.CardContainer","jsx","Clickable","jsxs","FlexView","Styled.CardWrapper","Styled.IconWrapper","LottieAnimation","Text","Styled.BannerImageWrapper","Styled.BannerImage","NodeCardTags","NodeProgress","ArrowTooltip","Styled.HeaderText","Styled.SubHeaderText","CardMenuOptions","Styled.MenuWrapper","Styled.CardKebabMenuWrapper","MoreVerticalIcon","HomeworkCard$1","memo"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import t from "styled-components";
1
+ import t, { css as i } from "styled-components";
2
2
  import e from "../../ui/layout/flex-view.js";
3
- const r = t(e)`
3
+ const s = t(e)`
4
4
  overflow-x: hidden;
5
5
  overflow-y: visible;
6
6
  padding: 16px 0px 92px 0px;
7
7
  margin-bottom: -92px;
8
8
  margin-top: -16px;
9
- `, p = t(e)`
9
+ `, l = t(e)`
10
10
  right: ${({ right: o }) => o};
11
11
  left: ${({ left: o }) => o};
12
12
  width: 32px;
@@ -18,12 +18,25 @@ const r = t(e)`
18
18
  path {
19
19
  fill: ${({ theme: o }) => o.colors.WHITE};
20
20
  }
21
- `, l = t(e)(
22
- ({ $disablePointerEvents: o }) => `
21
+ `, a = t(e)(
22
+ ({ $disablePointerEvents: o, theme: n }) => `
23
23
  position: relative;
24
- pointer-events: ${o ? "none" : "auto"};
24
+ pointer-events: auto;
25
+ z-index: 1;
26
+ ${o && i`
27
+ pointer-events: none;
28
+ :after {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background: ${n.colors.GREY_3};
36
+ }
37
+ `}
25
38
  `
26
- ), s = t(e)`
39
+ ), c = t(e)`
27
40
  cursor: pointer;
28
41
  height: 100%;
29
42
  right: ${({ right: o }) => o};
@@ -32,9 +45,9 @@ const r = t(e)`
32
45
  z-index: 5;
33
46
  `;
34
47
  export {
35
- l as ContentWrapper,
36
- s as HoverZone,
37
- p as ScrollButton,
38
- r as ScrollContainer
48
+ a as ContentWrapper,
49
+ c as HoverZone,
50
+ l as ScrollButton,
51
+ s as ScrollContainer
39
52
  };
40
53
  //# sourceMappingURL=hw-card-list-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hw-card-list-styled.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nexport const ScrollContainer = styled(FlexView)`\n overflow-x: hidden;\n overflow-y: visible;\n padding: 16px 0px 92px 0px;\n margin-bottom: -92px;\n margin-top: -16px;\n`;\n\nexport const ScrollButton = styled(FlexView)<{ $visible: boolean; right: string; left: string }>`\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n width: 32px;\n cursor: pointer;\n transition: opacity 0.3s ease-in-out;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n pointer-events: ${({ $visible }) => ($visible ? 'auto' : 'none')};\n z-index: 10;\n path {\n fill: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const ContentWrapper = styled(FlexView)<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents }) => `\n position: relative;\n pointer-events: ${$disablePointerEvents ? 'none' : 'auto'};\n `,\n);\n\nexport const HoverZone = styled(FlexView)<{ right: string; left: string }>`\n cursor: pointer;\n height: 100%;\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n pointer-events: all;\n z-index: 5;\n`;\n"],"names":["ScrollContainer","styled","FlexView","ScrollButton","right","left","$visible","theme","ContentWrapper","$disablePointerEvents","HoverZone"],"mappings":";;AAIa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAeF,EAAOC,CAAQ;AAAA,WAChC,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA,aAIf,CAAC,EAAE,UAAAC,EAAA,MAAgBA,IAAW,IAAI,CAAE;AAAA,oBAC7B,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA,YAGtD,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIhCC,IAAiBP,EAAOC,CAAQ;AAAA,EAC3C,CAAC,EAAE,uBAAAO,EAAA,MAA4B;AAAA;AAAA,sBAEXA,IAAwB,SAAS,MAAM;AAAA;AAE7D,GAEaC,IAAYT,EAAOC,CAAQ;AAAA;AAAA;AAAA,WAG7B,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"hw-card-list-styled.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-styled.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nexport const ScrollContainer = styled(FlexView)`\n overflow-x: hidden;\n overflow-y: visible;\n padding: 16px 0px 92px 0px;\n margin-bottom: -92px;\n margin-top: -16px;\n`;\n\nexport const ScrollButton = styled(FlexView)<{ $visible: boolean; right: string; left: string }>`\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n width: 32px;\n cursor: pointer;\n transition: opacity 0.3s ease-in-out;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n pointer-events: ${({ $visible }) => ($visible ? 'auto' : 'none')};\n z-index: 10;\n path {\n fill: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const ContentWrapper = styled(FlexView)<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents, theme }) => `\n position: relative;\n pointer-events: auto;\n z-index: 1;\n ${\n $disablePointerEvents &&\n css`\n pointer-events: none;\n :after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${theme.colors.GREY_3};\n }\n `\n }\n `,\n);\n\nexport const HoverZone = styled(FlexView)<{ right: string; left: string }>`\n cursor: pointer;\n height: 100%;\n right: ${({ right }) => right};\n left: ${({ left }) => left};\n pointer-events: all;\n z-index: 5;\n`;\n"],"names":["ScrollContainer","styled","FlexView","ScrollButton","right","left","$visible","theme","ContentWrapper","$disablePointerEvents","css","HoverZone"],"mappings":";;AAIa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjCC,IAAeF,EAAOC,CAAQ;AAAA,WAChC,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA,aAIf,CAAC,EAAE,UAAAC,EAAA,MAAgBA,IAAW,IAAI,CAAE;AAAA,oBAC7B,CAAC,EAAE,UAAAA,EAAA,MAAgBA,IAAW,SAAS,MAAO;AAAA;AAAA;AAAA,YAGtD,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIhCC,IAAiBP,EAAOC,CAAQ;AAAA,EAC3C,CAAC,EAAE,uBAAAO,GAAuB,OAAAF,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA,MAKlCE,KACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASkBH,EAAM,OAAO,MAAM;AAAA;AAAA,OAGvC;AAAA;AAEJ,GAEaI,IAAYV,EAAOC,CAAQ;AAAA;AAAA;AAAA,WAG7B,CAAC,EAAE,OAAAE,EAAM,MAAMA,CAAK;AAAA,UACrB,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;"}
package/dist/index.d.ts CHANGED
@@ -3654,6 +3654,7 @@ export declare const LOTTIE: {
3654
3654
  COLOR_1: string;
3655
3655
  COLOR_2: string;
3656
3656
  COLOR_3: string;
3657
+ COMPETITIVE_ARENA: string;
3657
3658
  DIFFICULT: string;
3658
3659
  EASY: string;
3659
3660
  ELITE_CIRCLE: string;
@@ -3666,6 +3667,7 @@ export declare const LOTTIE: {
3666
3667
  GOLD_3: string;
3667
3668
  INFINITE_BUTTON_BG: string;
3668
3669
  INFINITE_BUTTON_SYMBOL: string;
3670
+ LEARN: string;
3669
3671
  LEVELUP_RINGS: string;
3670
3672
  MEDIUM: string;
3671
3673
  NUDGE_TAP: string;
@@ -3685,8 +3687,12 @@ export declare const LOTTIE: {
3685
3687
  POINT50: string;
3686
3688
  POINT5: string;
3687
3689
  POINT60: string;
3690
+ PRACTICE: string;
3688
3691
  PROFICIENT1X: string;
3692
+ PROJECT: string;
3693
+ PUZZLE: string;
3689
3694
  RANDOM_MODE_SEGMENT_LOTTIE: string;
3695
+ RECAP: string;
3690
3696
  SEQUENCE_MODE_SEGMENT_LOTTIE: string;
3691
3697
  SILVER_1: string;
3692
3698
  SILVER_2: string;
@@ -3699,10 +3705,12 @@ export declare const LOTTIE: {
3699
3705
  TABLE_SEGMENT_STAR: string;
3700
3706
  TARGET_ACHIEVED_TEXT: string;
3701
3707
  TEACHER_VALIDATION: string;
3708
+ TEST: string;
3702
3709
  TOTAL_STREAK: string;
3703
3710
  TOTAL_TIME: string;
3704
3711
  TOTAL_TIME_SPENT: string;
3705
3712
  TOURNAMENT_RIPPLE: string;
3713
+ VIDEO: string;
3706
3714
  };
3707
3715
 
3708
3716
  export declare const LPARChapter: FC<ILPARChapterProps>;
@@ -4003,6 +4011,8 @@ export declare const RadioCard: <IDType extends string | number>({ options, valu
4003
4011
 
4004
4012
  export declare const RadioInput: <IDType extends string | number>({ options, value, onChange, numColumns, }: IRadioInputProps<IDType>) => JSX.Element;
4005
4013
 
4014
+ export declare const RecapIcon: React.FC<React.SVGProps<SVGSVGElement>>;
4015
+
4006
4016
  export declare const RecentChapters: FC<RecentChaptersProps>;
4007
4017
 
4008
4018
  declare interface RecentChaptersProps {