@cuemath/leap 2.8.61-as15 → 2.8.61-as16

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.
@@ -1,47 +1,47 @@
1
- import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
- import { useRef as Q, useState as a, useCallback as n, useEffect as d } from "react";
3
- import D from "../../../assets/line-icons/icons/chevron-left.js";
4
- import ee from "../../../assets/line-icons/icons/chevron-right.js";
1
+ import { jsxs as s, jsx as t, Fragment as J } from "react/jsx-runtime";
2
+ import { useRef as D, useState as a, useCallback as n, useEffect as d } from "react";
3
+ import ee from "../../../assets/line-icons/icons/chevron-left.js";
4
+ import te from "../../../assets/line-icons/icons/chevron-right.js";
5
5
  import { getTopicsFromItems as oe } from "../../milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js";
6
- import p from "../../ui/layout/flex-view.js";
7
- import g from "../../ui/text/text.js";
8
- import te from "../homework-card.js";
9
- import { useGetHomeworks as re } from "./api/get-homeworks.js";
10
- import { ContentWrapper as ne, HoverZone as k, ScrollButton as b, ScrollContainer as ie } from "./hw-card-list-styled.js";
11
- const se = ({
12
- userType: R = "STUDENT",
6
+ import m from "../../ui/layout/flex-view.js";
7
+ import $ from "../../ui/text/text.js";
8
+ import re from "../homework-card.js";
9
+ import { useGetHomeworks as ne } from "./api/get-homeworks.js";
10
+ import { ContentWrapper as ie, HoverZone as k, ScrollButton as b, ScrollContainer as le, QueueWrapper as se, QueueText as ce } from "./hw-card-list-styled.js";
11
+ const he = ({
12
+ userType: _ = "STUDENT",
13
13
  studentId: f,
14
- stream: $,
15
- onTestStart: _,
16
- onNodeAttempt: w,
17
- onTestPreview: x,
18
- onNodeView: S,
19
- onTestReview: E,
20
- onNodeReview: A,
21
- onNodeUnassign: T
14
+ stream: p,
15
+ onTestStart: w,
16
+ onNodeAttempt: R,
17
+ onTestPreview: A,
18
+ onNodeView: E,
19
+ onTestReview: S,
20
+ onNodeReview: x,
21
+ onNodeUnassign: I
22
22
  }) => {
23
- const r = Q(null), [I, v] = a(!1), [y, L] = a(!1), [B, N] = a(!1), [W, M] = a(!0), {
24
- get: C,
23
+ const r = D(null), [T, v] = a(!1), [y, C] = a(!1), [B, W] = a(!1), [N, j] = a(!0), {
24
+ get: L,
25
25
  data: e,
26
- isProcessingFailed: j,
26
+ isProcessingFailed: F,
27
27
  isProcessing: u,
28
28
  isStale: H
29
- } = re(f), F = n(() => {
29
+ } = ne(f), K = n(() => {
30
30
  r.current && r.current.scrollBy({ left: -200, behavior: "smooth" });
31
- }, []), K = n(() => {
31
+ }, []), M = n(() => {
32
32
  r.current && r.current.scrollBy({ left: 200, behavior: "smooth" });
33
33
  }, []), G = n(() => {
34
34
  v(!0);
35
35
  }, []), P = n(() => {
36
36
  v(!1);
37
- }, []), O = n(() => {
38
- L(!0);
39
- }, []), V = n(() => {
40
- L(!1);
37
+ }, []), Q = n(() => {
38
+ C(!0);
39
+ }, []), X = n(() => {
40
+ C(!1);
41
41
  }, []), i = n(() => {
42
42
  if (r.current) {
43
- const { scrollLeft: o, scrollWidth: c, clientWidth: m } = r.current;
44
- N(o > 10), M(o < c - m - 10);
43
+ const { scrollLeft: o, scrollWidth: l, clientWidth: g } = r.current;
44
+ W(o > 10), j(o < l - g - 10);
45
45
  }
46
46
  }, []);
47
47
  d(() => {
@@ -53,31 +53,31 @@ const se = ({
53
53
  }, [i]), d(() => {
54
54
  i();
55
55
  }, [e, i]);
56
- const l = n(() => {
57
- C(f, void 0, { stream: $ });
58
- }, [C, $, f]);
56
+ const c = n(() => {
57
+ L(f, void 0, { stream: p });
58
+ }, [L, p, f]);
59
59
  d(() => {
60
- !u && H && l();
61
- }, [l, u, H]), d(() => {
62
- l();
63
- }, [l]);
64
- const X = ((e == null ? void 0 : e.filter((o) => o.state === "WAIT_FOR_REVIEW")) || []).length;
65
- return e && e.length === 0 ? /* @__PURE__ */ s(p, { $flexRowGapX: 1, children: [
66
- /* @__PURE__ */ s(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
60
+ !u && H && c();
61
+ }, [c, u, H]), d(() => {
62
+ c();
63
+ }, [c]);
64
+ const O = ((e == null ? void 0 : e.filter((o) => o.state === "WAIT_FOR_REVIEW")) || []).length;
65
+ return e && e.length === 0 ? /* @__PURE__ */ s(m, { $flexRowGapX: 1, children: [
66
+ /* @__PURE__ */ s($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
67
67
  "Homework (",
68
68
  e == null ? void 0 : e.length,
69
69
  ")"
70
70
  ] }),
71
- /* @__PURE__ */ t(g, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
72
- ] }) : j ? null : /* @__PURE__ */ s(ne, { $flexRowGapX: 1, $disablePointerEvents: u, children: [
73
- /* @__PURE__ */ s(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
71
+ /* @__PURE__ */ t($, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
72
+ ] }) : F ? null : /* @__PURE__ */ s(ie, { $flexRowGapX: 1, $disablePointerEvents: u, children: [
73
+ /* @__PURE__ */ s($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
74
74
  "Homework (",
75
- X,
75
+ O,
76
76
  "/",
77
77
  e == null ? void 0 : e.length,
78
78
  ")"
79
79
  ] }),
80
- /* @__PURE__ */ s(p, { $position: "relative", onMouseEnter: i, children: [
80
+ /* @__PURE__ */ s(m, { $position: "relative", onMouseEnter: i, children: [
81
81
  B && /* @__PURE__ */ t(
82
82
  k,
83
83
  {
@@ -95,51 +95,66 @@ const se = ({
95
95
  $justifyContent: "center",
96
96
  $alignItems: "center",
97
97
  $height: "100%",
98
- onClick: F,
99
- $visible: I,
98
+ onClick: K,
99
+ $visible: T,
100
100
  left: "0px",
101
101
  right: "auto",
102
- children: /* @__PURE__ */ t(D, { width: 24, height: 24 })
102
+ children: /* @__PURE__ */ t(ee, { width: 24, height: 24 })
103
103
  }
104
104
  )
105
105
  },
106
106
  "left-hover-zone"
107
107
  ),
108
- /* @__PURE__ */ t(ie, { ref: r, children: /* @__PURE__ */ t(p, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((o, c) => {
108
+ /* @__PURE__ */ t(le, { ref: r, children: /* @__PURE__ */ t(m, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((o, l) => {
109
109
  const {
110
- items: m,
111
- node_id: z,
112
- worksheet_id: U,
113
- node_type: Y,
114
- title: Z,
115
- subtext: q
116
- } = o, J = oe(m).join(", "), h = Y === "DYNAMIC";
117
- return /* @__PURE__ */ t(
118
- te,
119
- {
120
- userType: R,
121
- header: h ? J : Z,
122
- subHeader: q || "",
123
- nodeData: o,
124
- renderAs: "homework",
125
- onNodeAttempt: h ? _ : w,
126
- shouldOpenOnRight: e.length > 3 && c === e.length - 1,
127
- onNodeView: h ? x : S,
128
- onNodeReview: h ? E : A,
129
- onNodeUnassign: T
130
- },
131
- `${U}_${z}_${c}`
132
- );
110
+ items: g,
111
+ node_id: V,
112
+ worksheet_id: z,
113
+ node_type: U,
114
+ title: Y,
115
+ subtext: Z
116
+ } = o, q = oe(g).join(", "), h = U === "DYNAMIC";
117
+ return /* @__PURE__ */ s(J, { children: [
118
+ e.length > 10 && l === 10 && /* @__PURE__ */ t(
119
+ se,
120
+ {
121
+ $widthX: 9.5,
122
+ $height: "100%",
123
+ $background: "BLACK_4",
124
+ $justifyContent: "center",
125
+ $gutter: 4,
126
+ $gap: 8,
127
+ children: /* @__PURE__ */ t(ce, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
128
+ }
129
+ ),
130
+ /* @__PURE__ */ t(
131
+ re,
132
+ {
133
+ isInQueue: e.length > 10 && l > 9,
134
+ userType: _,
135
+ header: h ? q : Y,
136
+ subHeader: Z || "",
137
+ nodeData: o,
138
+ renderAs: "homework",
139
+ onNodeAttempt: h ? w : R,
140
+ shouldOpenOnRight: e.length > 3 && l === e.length - 1,
141
+ onNodeView: h ? A : E,
142
+ onNodeReview: h ? S : x,
143
+ onNodeUnassign: I
144
+ },
145
+ `${z}_${V}_${l}`
146
+ )
147
+ ] });
133
148
  }) }) }),
134
- W && /* @__PURE__ */ t(
149
+ N && /* @__PURE__ */ t(
135
150
  k,
136
151
  {
137
152
  $position: "absolute",
138
153
  $width: "60px",
139
154
  right: "0",
140
155
  left: "auto",
141
- onMouseEnter: O,
142
- onMouseLeave: V,
156
+ onMouseEnter: Q,
157
+ onMouseLeave: X,
143
158
  children: /* @__PURE__ */ t(
144
159
  b,
145
160
  {
@@ -149,11 +164,11 @@ const se = ({
149
164
  $background: "BLACK_T_60",
150
165
  $justifyContent: "center",
151
166
  $alignItems: "center",
152
- onClick: K,
167
+ onClick: M,
153
168
  $visible: y,
154
169
  left: "auto",
155
170
  right: "0px",
156
- children: /* @__PURE__ */ t(ee, { width: 24, height: 24 })
171
+ children: /* @__PURE__ */ t(te, { width: 24, height: 24 })
157
172
  }
158
173
  )
159
174
  },
@@ -161,8 +176,8 @@ const se = ({
161
176
  )
162
177
  ] })
163
178
  ] });
164
- }, ve = se;
179
+ }, He = he;
165
180
  export {
166
- ve as default
181
+ He as default
167
182
  };
168
183
  //# sourceMappingURL=hw-card-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hw-card-list.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { getTopicsFromItems } from '../../milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport { useGetHomeworks } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\n\ninterface HWCardListProps extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n stream: string;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n}\n\nconst HWCardList: React.FC<HWCardListProps> = ({\n userType = 'STUDENT',\n studentId,\n stream,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(true);\n const {\n get: getHomeworks,\n data: hwDetails,\n isProcessingFailed,\n isProcessing,\n isStale,\n } = useGetHomeworks(studentId);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n }, []);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n }, []);\n\n const handleLeftHoverEnter = useCallback(() => {\n setIsLeftHovered(true);\n }, []);\n\n const handleLeftHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n }, []);\n\n const handleRightHoverEnter = useCallback(() => {\n setIsRightHovered(true);\n }, []);\n\n const handleRightHoverLeave = useCallback(() => {\n setIsRightHovered(false);\n }, []);\n\n // Function to check scroll position and update button availability\n const checkScrollPosition = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n // Can scroll left if scrolled to the right\n setCanScrollLeft(scrollLeft > 10);\n\n // Can scroll right if not at the end\n setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 10);\n }\n }, []);\n\n // Add scroll event listener to check scroll position\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', checkScrollPosition);\n // Run once on mount to set initial button states\n checkScrollPosition();\n\n return () => {\n scrollElement.removeEventListener('scroll', checkScrollPosition);\n };\n }\n }, [checkScrollPosition]);\n\n // Also check when content changes\n useEffect(() => {\n checkScrollPosition();\n }, [hwDetails, checkScrollPosition]);\n\n const fetchHomeworks = useCallback(() => {\n getHomeworks(studentId, undefined, { stream });\n }, [getHomeworks, stream, studentId]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchHomeworks();\n }\n }, [fetchHomeworks, isProcessing, isStale]);\n\n useEffect(() => {\n fetchHomeworks();\n }, [fetchHomeworks]);\n\n const waitForReviewSheets = (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || [])\n .length;\n\n if (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n if (isProcessingFailed) {\n return null;\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{hwDetails?.length})\n </Text>\n <FlexView $position=\"relative\" onMouseEnter={checkScrollPosition}>\n {/* Left hover zone */}\n {canScrollLeft && (\n <Styled.HoverZone\n key=\"left-hover-zone\"\n $position=\"absolute\"\n $width=\"60px\"\n left=\"0\"\n right=\"auto\"\n onMouseEnter={handleLeftHoverEnter}\n onMouseLeave={handleLeftHoverLeave}\n >\n {/* Left scroll button - only visible when hovered */}\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n </Styled.HoverZone>\n )}\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {hwDetails?.map((sheet, idx) => {\n const {\n items,\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const topics = getTopicsFromItems(items);\n const testChapterName = topics.join(', ');\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <HomeworkCard\n key={`${worksheetId}_${nodeId}_${idx}`}\n userType={userType}\n header={isDynamicSheet ? testChapterName : title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={hwDetails.length > 3 && idx === hwDetails.length - 1}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n\n {/* Right hover zone */}\n {canScrollRight && (\n <Styled.HoverZone\n key=\"right-hover-zone\"\n $position=\"absolute\"\n $width=\"60px\"\n right=\"0\"\n left=\"auto\"\n onMouseEnter={handleRightHoverEnter}\n onMouseLeave={handleRightHoverLeave}\n >\n {/* Right scroll button - only visible when hovered */}\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </Styled.HoverZone>\n )}\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default HWCardList;\n"],"names":["HWCardList","userType","studentId","stream","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","scrollRef","useRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","getHomeworks","hwDetails","isProcessingFailed","isProcessing","isStale","useGetHomeworks","handleScrollLeft","useCallback","handleScrollRight","handleLeftHoverEnter","handleLeftHoverLeave","handleRightHoverEnter","handleRightHoverLeave","checkScrollPosition","scrollLeft","scrollWidth","clientWidth","useEffect","scrollElement","fetchHomeworks","waitForReviewSheets","sheet","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.HoverZone","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","items","nodeId","worksheetId","nodeType","title","subtext","testChapterName","getTopicsFromItems","isDynamicSheet","HomeworkCard","ChevronRightIcon","HWCardList$1"],"mappings":"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"}
1
+ {"version":3,"file":"hw-card-list.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport { getTopicsFromItems } from '../../milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport { useGetHomeworks } from './api/get-homeworks';\nimport * as Styled from './hw-card-list-styled';\n\ninterface HWCardListProps extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n stream: string;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n}\n\nconst HWCardList: React.FC<HWCardListProps> = ({\n userType = 'STUDENT',\n studentId,\n stream,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(true);\n const {\n get: getHomeworks,\n data: hwDetails,\n isProcessingFailed,\n isProcessing,\n isStale,\n } = useGetHomeworks(studentId);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n }, []);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n }, []);\n\n const handleLeftHoverEnter = useCallback(() => {\n setIsLeftHovered(true);\n }, []);\n\n const handleLeftHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n }, []);\n\n const handleRightHoverEnter = useCallback(() => {\n setIsRightHovered(true);\n }, []);\n\n const handleRightHoverLeave = useCallback(() => {\n setIsRightHovered(false);\n }, []);\n\n const checkScrollPosition = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n setCanScrollLeft(scrollLeft > 10);\n setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 10);\n }\n }, []);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', checkScrollPosition);\n checkScrollPosition();\n\n return () => {\n scrollElement.removeEventListener('scroll', checkScrollPosition);\n };\n }\n }, [checkScrollPosition]);\n\n // Also check when content changes\n useEffect(() => {\n checkScrollPosition();\n }, [hwDetails, checkScrollPosition]);\n\n const fetchHomeworks = useCallback(() => {\n getHomeworks(studentId, undefined, { stream });\n }, [getHomeworks, stream, studentId]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchHomeworks();\n }\n }, [fetchHomeworks, isProcessing, isStale]);\n\n useEffect(() => {\n fetchHomeworks();\n }, [fetchHomeworks]);\n\n const waitForReviewSheets = (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || [])\n .length;\n\n if (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n if (isProcessingFailed) {\n return null;\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{hwDetails?.length})\n </Text>\n <FlexView $position=\"relative\" onMouseEnter={checkScrollPosition}>\n {/* Left hover zone */}\n {canScrollLeft && (\n <Styled.HoverZone\n key=\"left-hover-zone\"\n $position=\"absolute\"\n $width=\"60px\"\n left=\"0\"\n right=\"auto\"\n onMouseEnter={handleLeftHoverEnter}\n onMouseLeave={handleLeftHoverLeave}\n >\n {/* Left scroll button - only visible when hovered */}\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n </Styled.HoverZone>\n )}\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {hwDetails?.map((sheet, idx) => {\n const {\n items,\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const topics = getTopicsFromItems(items);\n const testChapterName = topics.join(', ');\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <>\n {hwDetails.length > 10 && idx === 10 && (\n <Styled.QueueWrapper\n $widthX={9.5}\n $height=\"100%\"\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n <HomeworkCard\n isInQueue={hwDetails.length > 10 && idx > 9}\n key={`${worksheetId}_${nodeId}_${idx}`}\n userType={userType}\n header={isDynamicSheet ? testChapterName : title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={hwDetails.length > 3 && idx === hwDetails.length - 1}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n\n {/* Right hover zone */}\n {canScrollRight && (\n <Styled.HoverZone\n key=\"right-hover-zone\"\n $position=\"absolute\"\n $width=\"60px\"\n right=\"0\"\n left=\"auto\"\n onMouseEnter={handleRightHoverEnter}\n onMouseLeave={handleRightHoverLeave}\n >\n {/* Right scroll button - only visible when hovered */}\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </Styled.HoverZone>\n )}\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default HWCardList;\n"],"names":["HWCardList","userType","studentId","stream","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","scrollRef","useRef","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","getHomeworks","hwDetails","isProcessingFailed","isProcessing","isStale","useGetHomeworks","handleScrollLeft","useCallback","handleScrollRight","handleLeftHoverEnter","handleLeftHoverLeave","handleRightHoverEnter","handleRightHoverLeave","checkScrollPosition","scrollLeft","scrollWidth","clientWidth","useEffect","scrollElement","fetchHomeworks","waitForReviewSheets","sheet","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.HoverZone","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","items","nodeId","worksheetId","nodeType","title","subtext","testChapterName","getTopicsFromItems","isDynamicSheet","Fragment","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","ChevronRightIcon","HWCardList$1"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import r from "styled-components";
2
- import i from "../../assets/line-icons/icons/minus2.js";
2
+ import n from "../../assets/line-icons/icons/minus2.js";
3
3
  import e from "../ui/layout/flex-view.js";
4
- import n from "../ui/text/text.js";
4
+ import i from "../ui/text/text.js";
5
5
  const l = r(e)(({ theme: o }) => `
6
6
  cursor: pointer;
7
7
  width: 24px;
@@ -12,13 +12,13 @@ const l = r(e)(({ theme: o }) => `
12
12
  border-radius: 50%;
13
13
  background: ${o.colors.WHITE_5};
14
14
  }
15
- `), d = r(n)`
15
+ `), d = r(i)`
16
16
  display: -webkit-box;
17
17
  -webkit-line-clamp: 1;
18
18
  -webkit-box-orient: vertical;
19
19
  overflow: hidden;
20
20
  text-overflow: ellipsis;
21
- `, x = r(e)(({
21
+ `, u = r(e)(({
22
22
  $shouldopenonright: o,
23
23
  $visible: t
24
24
  }) => `
@@ -33,7 +33,7 @@ const l = r(e)(({ theme: o }) => `
33
33
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
34
34
  box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
35
35
  z-index: 10;
36
- `), u = r(e)`
36
+ `), x = r(e)`
37
37
  border: 1px solid ${({ theme: o }) => o.colors.BLACK_T_15};
38
38
 
39
39
  &:hover {
@@ -45,15 +45,15 @@ const l = r(e)(({ theme: o }) => `
45
45
  background-size: cover;
46
46
  background-position: center;
47
47
  overflow: hidden;
48
- ` : "overflow: hidden;"), w = r(e)`
48
+ ` : "overflow: hidden;"), h = r(e)`
49
49
  display: flex;
50
50
  align-items: center;
51
51
  justify-content: center;
52
- `, f = r(e)`
52
+ `, w = r(e)`
53
53
  position: absolute;
54
54
  right: -18px;
55
55
  top: -4px;
56
- `, h = r.img(({ theme: o }) => {
56
+ `, f = r.img(({ theme: o }) => {
57
57
  const { gutter: t } = o.layout;
58
58
  return `
59
59
  border: 1px solid ${o.colors.BLACK_T_15};
@@ -61,11 +61,11 @@ const l = r(e)(({ theme: o }) => `
61
61
  height: ${t * 4}px;
62
62
  border-radius: 50%;
63
63
  `;
64
- }), g = r(i)`
64
+ }), g = r(n)`
65
65
  path {
66
66
  stroke: ${({ theme: o }) => o.colors.WHITE};
67
67
  }
68
- `, m = r(n)`
68
+ `, m = r(i)`
69
69
  display: -webkit-box;
70
70
  -webkit-line-clamp: 2;
71
71
  -webkit-box-orient: vertical;
@@ -87,29 +87,42 @@ const k = r(e)(({
87
87
  path {
88
88
  fill: ${o.colors.WHITE_1};
89
89
  }
90
- `), v = r(n)`
90
+ `), v = r(i)`
91
91
  white-space: nowrap;
92
92
  overflow: hidden;
93
93
  text-overflow: ellipsis;
94
- `, $ = r(e)`
94
+ `, C = r(e)`
95
95
  position: absolute;
96
96
  z-index: 6;
97
97
  top: calc(100% - 36px);
98
98
  right: 12px;
99
99
  transform-origin: top;
100
100
  transform: scaleY(1);
101
+ `, $ = r(e)`
102
+ position: absolute;
103
+ top: 0;
104
+ left: 0;
105
+ width: 100%;
106
+ height: 100%;
107
+ opacity: 0.5;
108
+ `, y = r(e)`
109
+ position: absolute;
110
+ right: 42px;
111
+ top: 24px;
101
112
  `;
102
113
  export {
103
- h as BannerImage,
104
- f as BannerImageWrapper,
105
- u as CardContainer,
114
+ f as BannerImage,
115
+ w as BannerImageWrapper,
116
+ $ as BlurContainer,
117
+ y as BlurFlexView,
118
+ x as CardContainer,
106
119
  l as CardKebabMenuWrapper,
107
- x as CardMenuOptionsWrapper,
120
+ u as CardMenuOptionsWrapper,
108
121
  k as CardOptionWrapper,
109
122
  b as CardWrapper,
110
123
  m as HeaderText,
111
- w as IconWrapper,
112
- $ as MenuWrapper,
124
+ h as IconWrapper,
125
+ C as MenuWrapper,
113
126
  v as OptionText,
114
127
  g as StyledMinus2Icon,
115
128
  d as SubHeaderText
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: break-spaces;\n`;\n\ninterface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\ninterface ICardOptionsProps {\n $top: number;\n $left: number;\n}\n\nexport const CardOptions = styled(FlexView)<ICardOptionsProps>``;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n z-index: 6;\n top: calc(100% - 36px);\n right: 12px;\n transform-origin: top;\n transform: scaleY(1);\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$shouldopenonright","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptionWrapper","$disabled","OptionText","MenuWrapper"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,oBAAAK;AAAA,EACA,UAAAC;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA,aAKID,IAAqB,IAAI,MAAM;AAAA;AAAA,wBAEpBC,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,GAK9B,GAEYC,IAAgBR,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,wBAGpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAI5CO,IAAcT,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAS,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BW,IAAqBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCY,IAAcb,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAY,EAAO,IAAIZ,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCY,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBf,EAAOgB,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAd,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCe,IAAajB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBVJ,EAAOC,CAAQ;AAEnC,MAAMiB,IAAoBlB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAiB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBjB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYkB,IAAapB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA,GAMxBiB,IAAcrB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: break-spaces;\n`;\n\ninterface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\ninterface ICardOptionsProps {\n $top: number;\n $left: number;\n}\n\nexport const CardOptions = styled(FlexView)<ICardOptionsProps>``;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n z-index: 6;\n top: calc(100% - 36px);\n right: 12px;\n transform-origin: top;\n transform: scaleY(1);\n`;\n\nexport const BlurContainer = styled(FlexView)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n`;\n\nexport const BlurFlexView = styled(FlexView)`\n position: absolute;\n right: 42px;\n top: 24px;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$shouldopenonright","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptionWrapper","$disabled","OptionText","MenuWrapper","BlurContainer","BlurFlexView"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,oBAAAK;AAAA,EACA,UAAAC;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA,aAKID,IAAqB,IAAI,MAAM;AAAA;AAAA,wBAEpBC,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,GAK9B,GAEYC,IAAgBR,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,wBAGpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAI5CO,IAAcT,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAS,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BW,IAAqBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCY,IAAcb,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAY,EAAO,IAAIZ,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCY,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBf,EAAOgB,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAd,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCe,IAAajB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBVJ,EAAOC,CAAQ;AAEnC,MAAMiB,IAAoBlB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAiB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBjB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYkB,IAAapB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA,GAMxBiB,IAAcrB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS7BqB,IAAgBtB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS/BsB,IAAevB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
package/dist/index.d.ts CHANGED
@@ -2160,6 +2160,7 @@ export declare interface INodeDataProps {
2160
2160
  card_header: string;
2161
2161
  chapter_id: string;
2162
2162
  complete_status: boolean;
2163
+ course_type: TCourseType;
2163
2164
  desmos_calculator_enabled: boolean;
2164
2165
  due_date_ts: number | null;
2165
2166
  is_lesson_v3_enabled: boolean;
@@ -3752,6 +3753,13 @@ export declare const Next2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
3752
3753
 
3753
3754
  export declare const NextIcon: React.FC<React.SVGProps<SVGSVGElement>>;
3754
3755
 
3756
+ declare enum NODE_CARD_COURSE_TYPES {
3757
+ PROGRAM = "PROGRAM",
3758
+ REMEDIAL = "REMEDIAL",
3759
+ TEST_SERIES = "TEST_SERIES",
3760
+ EXAM = "EXAM"
3761
+ }
3762
+
3755
3763
  declare enum NODE_CARD_STATES {
3756
3764
  LOCKED = "LOCKED",
3757
3765
  NOT_STARTED = "NOT_STARTED",
@@ -4365,6 +4373,8 @@ declare type TCourseProgramPermissions = {
4365
4373
 
4366
4374
  declare type TCourseStream = (typeof COURSE_STREAMS)[keyof typeof COURSE_STREAMS];
4367
4375
 
4376
+ declare type TCourseType = keyof typeof NODE_CARD_COURSE_TYPES;
4377
+
4368
4378
  declare type TCreateOnPresubmit = (options: TOnPreSubmitOptions) => void;
4369
4379
 
4370
4380
  declare type TCueCanvasChangeDataObject = Record<string, TDrawingData[]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.61-as15",
3
+ "version": "2.8.61-as16",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"