@cuemath/leap 2.8.61-as17 → 2.8.61-as3

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 (59) hide show
  1. package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
  2. package/dist/assets/line-icons/icons/recap.js +3 -3
  3. package/dist/assets/line-icons/icons/recap.js.map +1 -1
  4. package/dist/assets/lottie/lottie.js +1 -9
  5. package/dist/assets/lottie/lottie.js.map +1 -1
  6. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +19 -20
  7. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
  8. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +25 -25
  9. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  10. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +28 -32
  11. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  12. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +78 -85
  13. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  14. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +90 -98
  15. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  16. package/dist/features/chapters-v2/constants/node-constants.js +1 -0
  17. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
  18. package/dist/features/chapters-v2/utils/node-card-utils.js +39 -77
  19. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  20. package/dist/features/communication/pub-sub/constants.js +2 -5
  21. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  22. package/dist/features/homework/card-menu-options.js +44 -34
  23. package/dist/features/homework/card-menu-options.js.map +1 -1
  24. package/dist/features/homework/homework-card.js +227 -157
  25. package/dist/features/homework/homework-card.js.map +1 -1
  26. package/dist/features/homework/hw-card-list/api/get-homeworks.js +1 -1
  27. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  28. package/dist/features/homework/hw-card-list/hw-card-list.js +104 -177
  29. package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
  30. package/dist/features/homework/styles.js +31 -36
  31. package/dist/features/homework/styles.js.map +1 -1
  32. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +49 -48
  33. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  34. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +35 -36
  35. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  36. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +38 -40
  37. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  38. package/dist/features/sheet-v2/resource-list/resource-list.js +36 -25
  39. package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
  40. package/dist/index.d.ts +1 -36
  41. package/dist/index.js +379 -381
  42. package/dist/index.js.map +1 -1
  43. package/package.json +1 -1
  44. package/dist/assets/line-icons/icons/closed-eye.js +0 -23
  45. package/dist/assets/line-icons/icons/closed-eye.js.map +0 -1
  46. package/dist/features/homework/card-title.js +0 -21
  47. package/dist/features/homework/card-title.js.map +0 -1
  48. package/dist/features/homework/homework-card-view.js +0 -133
  49. package/dist/features/homework/homework-card-view.js.map +0 -1
  50. package/dist/features/homework/hw-card-list/hw-card-list-styled.js +0 -71
  51. package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +0 -1
  52. package/dist/static/competitive-arena.b9c40801.json +0 -1
  53. package/dist/static/learn.71b13323.json +0 -1
  54. package/dist/static/practice.158dd488.json +0 -1
  55. package/dist/static/project.eb665827.json +0 -1
  56. package/dist/static/puzzle.b298c7e4.json +0 -1
  57. package/dist/static/recap.0dd2c1e2.json +0 -1
  58. package/dist/static/test.803d6036.json +0 -1
  59. package/dist/static/video.b41451e2.json +0 -1
@@ -1,182 +1,109 @@
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
- import { getTopicsFromItems as oe } from "../../milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js";
6
- import g 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
- studentId: f,
14
- stream: p,
15
- onTestStart: w,
16
- onNodeAttempt: R,
17
- onTestPreview: A,
18
- onNodeView: E,
19
- onTestReview: S,
20
- onNodeReview: x,
21
- onNodeUnassign: I
1
+ import { jsxs as w, jsx as t, Fragment as M } from "react/jsx-runtime";
2
+ import { h as C } from "../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { useRef as S, useState as _, useCallback as r, useEffect as R } from "react";
4
+ import g from "styled-components";
5
+ import D from "../../../assets/line-icons/icons/chevron-right.js";
6
+ import { getTopicsFromItems as E } from "../../milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js";
7
+ import d from "../../ui/layout/flex-view.js";
8
+ import F from "../../ui/separator/separator.js";
9
+ import L from "../homework-card.js";
10
+ import { useGetHomeworks as j } from "./api/get-homeworks.js";
11
+ const q = g.div`
12
+ display: flex;
13
+ overflow-x: auto;
14
+ white-space: nowrap;
15
+ -webkit-overflow-scrolling: touch;
16
+ scrollbar-width: thin;
17
+ padding: 16px 0;
18
+
19
+ &::-webkit-scrollbar {
20
+ height: 6px;
21
+ }
22
+
23
+ &::-webkit-scrollbar-thumb {
24
+ background: #888;
25
+ border-radius: 4px;
26
+ }
27
+
28
+ &::-webkit-scrollbar-thumb:hover {
29
+ background: #555;
30
+ }
31
+ `, B = g(d)`
32
+ right: 0;
33
+ top: 0;
34
+ height: 100%;
35
+ width: 32px;
36
+ cursor: pointer;
37
+ transition: opacity 0.3s ease-in-out;
38
+ opacity: ${({ $visible: e }) => e ? 1 : 0};
39
+ pointer-events: ${({ $visible: e }) => e ? "auto" : "none"};
40
+
41
+ path {
42
+ fill: ${({ theme: e }) => e.colors.WHITE};
43
+ }
44
+ `, U = ({
45
+ userType: e = "STUDENT",
46
+ studentId: c,
47
+ stream: l,
48
+ ...o
22
49
  }) => {
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
- data: e,
26
- isProcessingFailed: F,
27
- isProcessing: u,
28
- isStale: H
29
- } = ne(f), K = n(() => {
30
- r.current && r.current.scrollBy({ left: -200, behavior: "smooth" });
31
- }, []), M = n(() => {
32
- r.current && r.current.scrollBy({ left: 200, behavior: "smooth" });
33
- }, []), G = n(() => {
34
- v(!0);
35
- }, []), P = n(() => {
36
- v(!1);
37
- }, []), Q = n(() => {
38
- C(!0);
39
- }, []), X = n(() => {
40
- C(!1);
41
- }, []), i = n(() => {
42
- if (r.current) {
43
- const { scrollLeft: o, scrollWidth: l, clientWidth: m } = r.current;
44
- W(o > 10), j(o < l - m - 10);
45
- }
46
- }, []);
47
- d(() => {
48
- const o = r.current;
49
- if (o)
50
- return o.addEventListener("scroll", i), i(), () => {
51
- o.removeEventListener("scroll", i);
52
- };
53
- }, [i]), d(() => {
54
- i();
55
- }, [e, i]);
56
- const c = n(() => {
57
- L(f, void 0, { stream: p });
58
- }, [L, p, f]);
59
- d(() => {
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(g, { $flexRowGapX: 1, children: [
66
- /* @__PURE__ */ s($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
67
- "Homework (",
68
- e == null ? void 0 : e.length,
69
- ")"
70
- ] }),
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
- "Homework (",
75
- O,
76
- "/",
77
- e == null ? void 0 : e.length,
78
- ")"
79
- ] }),
80
- /* @__PURE__ */ s(g, { $position: "relative", onMouseEnter: i, children: [
81
- B && /* @__PURE__ */ t(
82
- k,
83
- {
84
- $position: "absolute",
85
- $width: "60px",
86
- left: "0",
87
- right: "auto",
88
- onMouseEnter: G,
89
- onMouseLeave: P,
90
- children: /* @__PURE__ */ t(
91
- b,
92
- {
93
- $position: "absolute",
94
- $background: "BLACK_T_60",
95
- $justifyContent: "center",
96
- $alignItems: "center",
97
- $height: "100%",
98
- onClick: K,
99
- $visible: T,
100
- left: "0px",
101
- right: "auto",
102
- children: /* @__PURE__ */ t(ee, { width: 24, height: 24 })
103
- }
104
- )
105
- },
106
- "left-hover-zone"
107
- ),
108
- /* @__PURE__ */ t(le, { ref: r, children: /* @__PURE__ */ t(g, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((o, l) => {
109
- const {
110
- items: m,
111
- node_id: V,
112
- worksheet_id: z,
113
- node_type: U,
114
- title: Y,
115
- subtext: Z
116
- } = o, q = oe(m).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
- $background: "BLACK_4",
123
- $justifyContent: "center",
124
- $gutter: 4,
125
- $gap: 8,
126
- children: /* @__PURE__ */ t(ce, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
127
- }
128
- ),
129
- /* @__PURE__ */ t(
130
- re,
131
- {
132
- isInQueue: e.length > 10 && l > 9,
133
- userType: _,
134
- header: h ? q : Y,
135
- subHeader: Z || "",
136
- nodeData: o,
137
- renderAs: "homework",
138
- onNodeAttempt: h ? w : R,
139
- shouldOpenOnRight: e.length > 3 && l === e.length - 1,
140
- onNodeView: h ? A : E,
141
- onNodeReview: h ? S : x,
142
- onNodeUnassign: I
143
- },
144
- `${z}_${V}_${l}`
145
- )
146
- ] });
147
- }) }) }),
148
- N && /* @__PURE__ */ t(
149
- k,
150
- {
151
- $position: "absolute",
152
- $width: "60px",
153
- right: "0",
154
- left: "auto",
155
- onMouseEnter: Q,
156
- onMouseLeave: X,
157
- children: /* @__PURE__ */ t(
158
- b,
159
- {
160
- $position: "absolute",
161
- $width: "60px",
162
- $height: "100%",
163
- $background: "BLACK_T_60",
164
- $justifyContent: "center",
165
- $alignItems: "center",
166
- onClick: M,
167
- $visible: y,
168
- left: "auto",
169
- right: "0px",
170
- children: /* @__PURE__ */ t(te, { width: 24, height: 24 })
171
- }
172
- )
173
- },
174
- "right-hover-zone"
175
- )
176
- ] })
50
+ const i = S(null), [$, m] = _(!1), v = r(() => {
51
+ requestAnimationFrame(() => m(!0));
52
+ }, []), b = r(() => {
53
+ requestAnimationFrame(() => m(!1));
54
+ }, []), x = r(() => {
55
+ i.current && i.current.scrollBy({ left: 200, behavior: "smooth" });
56
+ }, []), { get: p, data: n, isProcessingFailed: N } = j(), u = r(() => {
57
+ p(c, void 0, { stream: l });
58
+ }, [p, l, c]);
59
+ return R(() => {
60
+ u();
61
+ }, [u]), N ? null : /* @__PURE__ */ w(d, { $position: "relative", onMouseEnter: v, onMouseLeave: b, children: [
62
+ /* @__PURE__ */ t(q, { ref: i, children: /* @__PURE__ */ t(d, { $flexDirection: "row", $flexRowGapX: 1, children: n == null ? void 0 : n.map((h) => {
63
+ const {
64
+ items: A,
65
+ node_id: T,
66
+ sheet_time: f,
67
+ total_questions: s,
68
+ worksheet_id: k,
69
+ node_type: a
70
+ } = h, y = f && Math.ceil(f / 60) || 0, H = E(A).join(", "), I = `${typeof s == "number" ? `${s} ${C.pluralize(s, "Question")}, ` : ""}${y} Mins`;
71
+ return /* @__PURE__ */ w(M, { children: [
72
+ /* @__PURE__ */ t(
73
+ L,
74
+ {
75
+ userType: e,
76
+ header: H,
77
+ subHeader: I,
78
+ nodeData: h,
79
+ renderAs: "homework",
80
+ onNodeAttempt: a === "DYNAMIC" ? o.onTestStart : o.onNodeAttempt,
81
+ onNodeView: a === "DYNAMIC" ? o.onTestPreview : o.onNodeAttempt,
82
+ onNodeReview: a === "DYNAMIC" ? o.onTestReview : o.onNodeAttempt,
83
+ onNodeUnassign: o.onNodeUnassign
84
+ },
85
+ `${k}_${T}`
86
+ ),
87
+ /* @__PURE__ */ t(F, { width: 16 })
88
+ ] });
89
+ }) }) }),
90
+ /* @__PURE__ */ t(
91
+ B,
92
+ {
93
+ $position: "absolute",
94
+ $width: "100%",
95
+ $height: 1,
96
+ $background: "BLACK_T_60",
97
+ $justifyContent: "center",
98
+ $alignItems: "center",
99
+ onClick: x,
100
+ $visible: $,
101
+ children: /* @__PURE__ */ t(D, { width: 24, height: 24 })
102
+ }
103
+ )
177
104
  ] });
178
- }, He = he;
105
+ }, Z = U;
179
106
  export {
180
- He as default
107
+ Z as default
181
108
  };
182
109
  //# 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 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 $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
+ {"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 { pluralize } from 'humanize-plus';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\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 Separator from '../../ui/separator/separator';\nimport HomeworkCard from '../homework-card';\nimport { useGetHomeworks } from './api/get-homeworks';\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 ScrollContainer = styled.div`\n display: flex;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n padding: 16px 0;\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #888;\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: #555;\n }\n`;\n\nconst ScrollButton = styled(FlexView)<{ $visible: boolean }>`\n right: 0;\n top: 0;\n height: 100%;\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\n path {\n fill: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nconst HWCardList: React.FC<HWCardListProps> = ({\n userType = 'STUDENT',\n studentId,\n stream,\n ...sheetCallbacks\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n requestAnimationFrame(() => setIsHovered(true));\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n requestAnimationFrame(() => setIsHovered(false));\n }, []);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n }, []);\n\n const { get: getHomeworks, data: hwDetails, isProcessingFailed } = useGetHomeworks();\n\n const fetchChapterDetails = useCallback(() => {\n getHomeworks(studentId, undefined, { stream });\n }, [getHomeworks, stream, studentId]);\n\n useEffect(() => {\n fetchChapterDetails();\n }, [fetchChapterDetails]);\n\n if (isProcessingFailed) {\n return null;\n }\n\n return (\n <FlexView $position=\"relative\" onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n <ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexRowGapX={1}>\n {hwDetails?.map(sheet => {\n const {\n items,\n node_id: nodeId,\n sheet_time: sheetTime,\n total_questions: totalQuestions,\n worksheet_id: worksheetId,\n node_type: nodeType,\n } = sheet;\n const totalSheetTime = (sheetTime && Math.ceil(sheetTime / 60)) || 0;\n const topics = getTopicsFromItems(items);\n const testChapterName = topics.join(', ');\n const subHeader = `${\n typeof totalQuestions === 'number'\n ? `${totalQuestions} ${pluralize(totalQuestions, 'Question')}, `\n : ''\n }${totalSheetTime} Mins`;\n\n return (\n <>\n <HomeworkCard\n key={`${worksheetId}_${nodeId}`}\n userType={userType}\n header={testChapterName}\n subHeader={subHeader}\n nodeData={sheet}\n renderAs=\"homework\"\n onNodeAttempt={\n nodeType === 'DYNAMIC'\n ? sheetCallbacks.onTestStart\n : sheetCallbacks.onNodeAttempt\n }\n onNodeView={\n nodeType === 'DYNAMIC'\n ? sheetCallbacks.onTestPreview\n : sheetCallbacks.onNodeAttempt\n }\n onNodeReview={\n nodeType === 'DYNAMIC'\n ? sheetCallbacks.onTestReview\n : sheetCallbacks.onNodeAttempt\n }\n onNodeUnassign={sheetCallbacks.onNodeUnassign}\n />\n <Separator width={16} />\n </>\n );\n })}\n </FlexView>\n </ScrollContainer>\n\n <ScrollButton\n $position=\"absolute\"\n $width=\"100%\"\n $height={1}\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isHovered}\n >\n <ChevronRightIcon width={24} height={24} />\n </ScrollButton>\n </FlexView>\n );\n};\n\nexport default HWCardList;\n"],"names":["ScrollContainer","styled","ScrollButton","FlexView","$visible","theme","HWCardList","userType","studentId","stream","sheetCallbacks","scrollRef","useRef","isHovered","setIsHovered","useState","handleMouseEnter","useCallback","handleMouseLeave","handleScrollRight","getHomeworks","hwDetails","isProcessingFailed","useGetHomeworks","fetchChapterDetails","useEffect","jsx","sheet","items","nodeId","sheetTime","totalQuestions","worksheetId","nodeType","totalSheetTime","testChapterName","getTopicsFromItems","subHeader","pluralize","jsxs","Fragment","HomeworkCard","Separator","ChevronRightIcon","HWCardList$1"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import r from "styled-components";
2
- import n from "../../assets/line-icons/icons/minus2.js";
2
+ import i from "../../assets/line-icons/icons/minus2.js";
3
3
  import e from "../ui/layout/flex-view.js";
4
- import i from "../ui/text/text.js";
4
+ import n from "../ui/text/text.js";
5
5
  const l = r(e)(({ theme: o }) => `
6
6
  cursor: pointer;
7
7
  width: 24px;
@@ -12,28 +12,31 @@ const l = r(e)(({ theme: o }) => `
12
12
  border-radius: 50%;
13
13
  background: ${o.colors.WHITE_5};
14
14
  }
15
- `), d = r(i)`
15
+ `), d = r(n)`
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
- `, u = r(e)(({
22
- $shouldopenonright: o,
21
+ `, x = r(e)(({
22
+ theme: o,
23
23
  $visible: t
24
24
  }) => `
25
25
  cursor: pointer;
26
26
  position: absolute;
27
27
  z-index: 6;
28
28
  top: calc(100% + 4px);
29
- right: ${o ? 0 : "auto"};
29
+ left: 0;
30
30
  transform-origin: top;
31
31
  transform: scaleY(${t ? 1 : 0});
32
32
  opacity: ${t ? 1 : 0};
33
33
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
34
- box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
35
- z-index: 10;
36
- `), x = r(e)`
34
+
35
+ &:hover {
36
+ border-radius: 50%;
37
+ background: ${o.colors.WHITE_5};
38
+ }
39
+ `), u = r(e)`
37
40
  border: 1px solid ${({ theme: o }) => o.colors.BLACK_T_15};
38
41
 
39
42
  &:hover {
@@ -45,7 +48,7 @@ const l = r(e)(({ theme: o }) => `
45
48
  background-size: cover;
46
49
  background-position: center;
47
50
  overflow: hidden;
48
- ` : "overflow: hidden;"), h = r(e)`
51
+ ` : "overflow: hidden;"), f = r(e)`
49
52
  display: flex;
50
53
  align-items: center;
51
54
  justify-content: center;
@@ -53,7 +56,7 @@ const l = r(e)(({ theme: o }) => `
53
56
  position: absolute;
54
57
  right: -18px;
55
58
  top: -4px;
56
- `, f = r.img(({ theme: o }) => {
59
+ `, h = r.img(({ theme: o }) => {
57
60
  const { gutter: t } = o.layout;
58
61
  return `
59
62
  border: 1px solid ${o.colors.BLACK_T_15};
@@ -61,20 +64,24 @@ const l = r(e)(({ theme: o }) => `
61
64
  height: ${t * 4}px;
62
65
  border-radius: 50%;
63
66
  `;
64
- }), g = r(n)`
67
+ }), g = r(i)`
65
68
  path {
66
69
  stroke: ${({ theme: o }) => o.colors.WHITE};
67
70
  }
68
- `, m = r(i)`
71
+ `, m = r(n)`
69
72
  display: -webkit-box;
70
73
  -webkit-line-clamp: 2;
71
74
  -webkit-box-orient: vertical;
72
75
  overflow: hidden;
73
76
  text-overflow: ellipsis;
74
77
  white-space: break-spaces;
75
- `;
76
- r(e)``;
77
- const k = r(e)(({
78
+ `, k = r(e)`
79
+ box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
80
+ position: absolute;
81
+ top: ${({ $top: o }) => o}px;
82
+ left: ${({ $left: o }) => o}px;
83
+ z-index: 10;
84
+ `, v = r(e)(({
78
85
  theme: o,
79
86
  $disabled: t
80
87
  }) => `
@@ -87,7 +94,7 @@ const k = r(e)(({
87
94
  path {
88
95
  fill: ${o.colors.WHITE_1};
89
96
  }
90
- `), v = r(i)`
97
+ `), $ = r(n)`
91
98
  white-space: nowrap;
92
99
  overflow: hidden;
93
100
  text-overflow: ellipsis;
@@ -98,32 +105,20 @@ const k = r(e)(({
98
105
  right: 12px;
99
106
  transform-origin: top;
100
107
  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;
112
108
  `;
113
109
  export {
114
- f as BannerImage,
110
+ h as BannerImage,
115
111
  w as BannerImageWrapper,
116
- $ as BlurContainer,
117
- y as BlurFlexView,
118
- x as CardContainer,
112
+ u as CardContainer,
119
113
  l as CardKebabMenuWrapper,
120
- u as CardMenuOptionsWrapper,
121
- k as CardOptionWrapper,
114
+ x as CardMenuOptionsWrapper,
115
+ v as CardOptionWrapper,
116
+ k as CardOptions,
122
117
  b as CardWrapper,
123
118
  m as HeaderText,
124
- h as IconWrapper,
119
+ f as IconWrapper,
125
120
  C as MenuWrapper,
126
- v as OptionText,
121
+ $ as OptionText,
127
122
  g as StyledMinus2Icon,
128
123
  d as SubHeaderText
129
124
  };
@@ -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\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;"}
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}\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 theme,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\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 \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\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 box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n position: absolute;\n top: ${({ $top }) => $top}px;\n left: ${({ $left }) => $left}px;\n z-index: 10;\n`;\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","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptions","$top","$left","CardOptionWrapper","$disabled","OptionText","MenuWrapper"],"mappings":";;;;AAaO,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,OAAAC;AAAA,EACA,UAAAI;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXJ,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYK,IAAgBP,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,GAI5CM,IAAcR,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAQ,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcV,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BU,IAAqBX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCW,IAAcZ,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAW,EAAO,IAAIX,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCW,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBd,EAAOe,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAb,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCc,IAAahB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiBxBa,IAAcjB,EAAOC,CAAQ;AAAA;AAAA;AAAA,SAGjC,CAAC,EAAE,MAAAiB,EAAK,MAAMA,CAAI;AAAA,UACjB,CAAC,EAAE,OAAAC,EAAM,MAAMA,CAAK;AAAA;AAAA,GAIjBC,IAAoBpB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAmB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBnB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYoB,IAAatB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA,GAMxBmB,IAAcvB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}