@cuemath/leap 3.1.37 → 3.1.38-as2

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 (37) hide show
  1. package/dist/assets/illustrations/illustrations.js +5 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/puzzle-icon.js +3 -3
  4. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -1
  5. package/dist/assets/line-icons/icons/puzzle2.js +24 -0
  6. package/dist/assets/line-icons/icons/puzzle2.js.map +1 -0
  7. package/dist/features/communication/pub-sub/constants.js +7 -2
  8. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  9. package/dist/features/homework/homework-card-view.js +135 -72
  10. package/dist/features/homework/homework-card-view.js.map +1 -1
  11. package/dist/features/homework/homework-card.js +98 -97
  12. package/dist/features/homework/homework-card.js.map +1 -1
  13. package/dist/features/homework/styles.js +17 -13
  14. package/dist/features/homework/styles.js.map +1 -1
  15. package/dist/features/puzzles/api/puzzle-assign.js +13 -0
  16. package/dist/features/puzzles/api/puzzle-assign.js.map +1 -0
  17. package/dist/features/puzzles/comps/puzzle-card-styled.js +79 -0
  18. package/dist/features/puzzles/comps/puzzle-card-styled.js.map +1 -0
  19. package/dist/features/puzzles/comps/puzzle-card.js +35 -0
  20. package/dist/features/puzzles/comps/puzzle-card.js.map +1 -0
  21. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js +47 -0
  22. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js.map +1 -0
  23. package/dist/features/puzzles/puzzle-container/puzzle-container.js +127 -0
  24. package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -0
  25. package/dist/features/puzzles/utils/puzzle-pattern.js +25 -0
  26. package/dist/features/puzzles/utils/puzzle-pattern.js.map +1 -0
  27. package/dist/features/sheets/constants/sheet.js +1 -0
  28. package/dist/features/sheets/constants/sheet.js.map +1 -1
  29. package/dist/index.d.ts +84 -2
  30. package/dist/index.js +489 -480
  31. package/dist/index.js.map +1 -1
  32. package/dist/static/puzzle-pattern-blue.f4bea1ee.svg +1 -0
  33. package/dist/static/puzzle-pattern-green.c9f84bbc.svg +1 -0
  34. package/dist/static/puzzle-pattern-orange.3da09665.svg +1 -0
  35. package/dist/static/puzzle-pattern-purple.5fb5a319.svg +1 -0
  36. package/dist/static/puzzle-pattern-yellow.aadbf457.svg +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ import { jsx as h } from "react/jsx-runtime";
2
+ import { memo as p } from "react";
3
+ import { PuzzleWrapper as s } from "./puzzle-card-styled.js";
4
+ const c = p(
5
+ ({
6
+ children: e,
7
+ imageHue: t,
8
+ onAnimationEnd: r,
9
+ animationPhase: o,
10
+ width: i,
11
+ widthX: m,
12
+ height: n,
13
+ heightX: $,
14
+ backgroundColor: a
15
+ }) => /* @__PURE__ */ h(
16
+ s,
17
+ {
18
+ $animationPhase: o,
19
+ onAnimationEnd: r,
20
+ $width: i,
21
+ $height: n,
22
+ $widthX: m,
23
+ $heightX: $,
24
+ $alignItems: "center",
25
+ $justifyContent: "center",
26
+ $imageHue: t,
27
+ $background: a ?? `${t}_6`,
28
+ children: e
29
+ }
30
+ )
31
+ );
32
+ export {
33
+ c as default
34
+ };
35
+ //# sourceMappingURL=puzzle-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzle-card.js","sources":["../../../../src/features/puzzles/comps/puzzle-card.tsx"],"sourcesContent":["import type { IPuzzleCardProps } from './puzzle-card-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport * as Styled from './puzzle-card-styled';\n\nconst PuzzleCard: FC<IPuzzleCardProps> = memo(\n ({\n children,\n imageHue,\n onAnimationEnd,\n animationPhase,\n width,\n widthX,\n height,\n heightX,\n backgroundColor,\n }) => {\n return (\n <Styled.PuzzleWrapper\n $animationPhase={animationPhase}\n onAnimationEnd={onAnimationEnd}\n $width={width}\n $height={height}\n $widthX={widthX}\n $heightX={heightX}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $imageHue={imageHue}\n $background={backgroundColor ?? `${imageHue}_6`}\n >\n {children}\n </Styled.PuzzleWrapper>\n );\n },\n);\n\nexport default PuzzleCard;\n"],"names":["PuzzleCard","memo","children","imageHue","onAnimationEnd","animationPhase","width","widthX","height","heightX","backgroundColor","jsx","Styled.PuzzleWrapper"],"mappings":";;;AAOA,MAAMA,IAAmCC;AAAA,EACvC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,MAGE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,iBAAiBP;AAAA,MACjB,gBAAAD;AAAA,MACA,QAAQE;AAAA,MACR,SAASE;AAAA,MACT,SAASD;AAAA,MACT,UAAUE;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,WAAWN;AAAA,MACX,aAAaO,KAAmB,GAAGP,CAAQ;AAAA,MAE1C,UAAAD;AAAA,IAAA;AAAA,EAAA;AAIT;"}
@@ -0,0 +1,47 @@
1
+ import o from "styled-components";
2
+ import t from "../../ui/layout/flex-view.js";
3
+ const p = o(t)`
4
+ cursor: pointer;
5
+
6
+ &:hover {
7
+ outline: 2px solid ${({ theme: e }) => e.colors.BLACK_1};
8
+ }
9
+ `, l = o(t)(({ theme: e, $disabled: n }) => {
10
+ const { colors: r } = e;
11
+ return `
12
+ position: absolute;
13
+ bottom: -48px;
14
+ cursor: pointer;
15
+ z-index: -1;
16
+
17
+ ${n && `
18
+ background: ${r.WHITE_4};
19
+ border: 2px solid ${r.WHITE_5};
20
+ border-top: 0;
21
+ pointer-events: none;
22
+ `}
23
+ `;
24
+ }), c = o(t)`
25
+ position: relative;
26
+ top: -8px;
27
+ height: 100%;
28
+ width: 100%;
29
+ `, u = o(t)`
30
+ border-radius: 50%;
31
+ `, a = o(t)`
32
+ position: relative;
33
+ transition: height 0.3s ease-out;
34
+ `, d = o(t)`
35
+ position: absolute;
36
+ top: 0;
37
+ right: 0;
38
+ `;
39
+ export {
40
+ d as AssignedTag,
41
+ u as CheckMarkIcon,
42
+ l as PuzzleButton,
43
+ a as PuzzleContainer,
44
+ p as PuzzleContent,
45
+ c as PuzzleText
46
+ };
47
+ //# sourceMappingURL=puzzle-container-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzle-container-styled.js","sources":["../../../../src/features/puzzles/puzzle-container/puzzle-container-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nconst PuzzleContent = styled(FlexView)`\n cursor: pointer;\n\n &:hover {\n outline: 2px solid ${({ theme }) => theme.colors.BLACK_1};\n }\n`;\n\ninterface IPuzzleButton {\n $disabled?: boolean;\n}\n\nconst PuzzleButton = styled(FlexView)<IPuzzleButton>(({ theme, $disabled }) => {\n const { colors } = theme;\n\n return `\n position: absolute;\n bottom: -48px;\n cursor: pointer;\n z-index: -1;\n \n ${\n $disabled &&\n `\n background: ${colors.WHITE_4};\n border: 2px solid ${colors.WHITE_5};\n border-top: 0;\n pointer-events: none;\n `\n }\n `;\n});\n\nconst PuzzleText = styled(FlexView)`\n position: relative;\n top: -8px;\n height: 100%;\n width: 100%;\n`;\n\nconst CheckMarkIcon = styled(FlexView)`\n border-radius: 50%;\n`;\n\nconst PuzzleContainer = styled(FlexView)`\n position: relative;\n transition: height 0.3s ease-out;\n`;\n\nconst AssignedTag = styled(FlexView)`\n position: absolute;\n top: 0;\n right: 0;\n`;\n\nexport { PuzzleContainer, PuzzleContent, PuzzleButton, PuzzleText, CheckMarkIcon, AssignedTag };\n"],"names":["PuzzleContent","styled","FlexView","theme","PuzzleButton","$disabled","colors","PuzzleText","CheckMarkIcon","PuzzleContainer","AssignedTag"],"mappings":";;AAIM,MAAAA,IAAgBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,yBAIZ,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA,GAQtDC,IAAeH,EAAOC,CAAQ,EAAiB,CAAC,EAAE,OAAAC,GAAO,WAAAE,QAAgB;AACvE,QAAA,EAAE,QAAAC,EAAW,IAAAH;AAEZ,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOHE,KACA;AAAA,oBACcC,EAAO,OAAO;AAAA,0BACRA,EAAO,OAAO;AAAA;AAAA;AAAA,KAIpC;AAAA;AAEJ,CAAC,GAEKC,IAAaN,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,GAO5BM,IAAgBP,EAAOC,CAAQ;AAAA;AAAA,GAI/BO,IAAkBR,EAAOC,CAAQ;AAAA;AAAA;AAAA,GAKjCQ,IAAcT,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,127 @@
1
+ import { jsx as i, jsxs as l, Fragment as w } from "react/jsx-runtime";
2
+ import { memo as X, useState as z, useRef as j, useEffect as C, useCallback as c } from "react";
3
+ import L from "../../../assets/line-icons/icons/check2.js";
4
+ import O from "../../ui/image/image.js";
5
+ import r from "../../ui/text/text.js";
6
+ import { usePostPuzzleToAssign as B } from "../api/puzzle-assign.js";
7
+ import D from "../comps/puzzle-card.js";
8
+ import { PuzzleContainer as W, PuzzleContent as G, AssignedTag as K, PuzzleButton as S, PuzzleText as U, CheckMarkIcon as H } from "./puzzle-container-styled.js";
9
+ const N = 1500, M = X(
10
+ ({
11
+ userType: A,
12
+ triggerReveal: o = !1,
13
+ onFullyHidden: s,
14
+ onPuzzleClick: d,
15
+ puzzleData: p,
16
+ courseStream: g,
17
+ studentId: u
18
+ }) => {
19
+ const {
20
+ image_hue: m,
21
+ image_url: b,
22
+ assigned: e,
23
+ title: I,
24
+ id: h
25
+ } = p, [n, t] = z("hidden"), [f, P] = z(!1), a = j(null), { post: $, isProcessing: k } = B({
26
+ onComplete: (x) => {
27
+ x ? t("visible") : n === "visible" && t("assigning");
28
+ }
29
+ });
30
+ C(() => {
31
+ e || (o ? f ? t("assigned") : n === "hidden" && t("movingIn") : n !== "hidden" && n !== "movingOut" && t("movingOut"));
32
+ }, [o, f, e]), C(() => (n === "assigned" && !e && (a.current = setTimeout(() => {
33
+ t("movingOut");
34
+ }, N)), () => {
35
+ a.current && clearTimeout(a.current);
36
+ }), [n, e]);
37
+ const T = c(() => {
38
+ switch (n) {
39
+ case "movingIn":
40
+ t("revealing");
41
+ break;
42
+ case "revealing":
43
+ t("visible");
44
+ break;
45
+ case "assigning":
46
+ t("assigned"), P(!0);
47
+ break;
48
+ case "movingOut":
49
+ t("hidden"), s == null || s();
50
+ break;
51
+ }
52
+ }, [n, s]), v = c(() => {
53
+ e || $(
54
+ {
55
+ puzzle_id: h
56
+ },
57
+ {
58
+ studentId: u,
59
+ courseStream: g
60
+ }
61
+ );
62
+ }, [g, e, $, h, u]), _ = c(() => {
63
+ d();
64
+ }, [d]), E = () => n === "visible" || e ? /* @__PURE__ */ l(w, { children: [
65
+ /* @__PURE__ */ l(
66
+ G,
67
+ {
68
+ $justifyContent: "center",
69
+ $alignItems: "center",
70
+ $width: "100%",
71
+ $height: "100%",
72
+ onClick: _,
73
+ title: "Click to preview",
74
+ $flexGapX: 1.5,
75
+ children: [
76
+ /* @__PURE__ */ i(O, { width: 136, height: 136, src: b, withLoader: !1, alt: "Puzzle" }),
77
+ /* @__PURE__ */ i(r, { $renderAs: "h4", children: I }),
78
+ e && /* @__PURE__ */ i(K, { $gap: 4, $gutter: 8, $background: "BLACK_1", children: /* @__PURE__ */ i(r, { $renderAs: "ac4", $color: "WHITE_1", children: "Assigned" }) })
79
+ ]
80
+ }
81
+ ),
82
+ A === "TEACHER" && /* @__PURE__ */ i(
83
+ S,
84
+ {
85
+ $background: "BLACK_1",
86
+ $widthX: 15.75,
87
+ $alignItems: "center",
88
+ $justifyContent: "center",
89
+ $gapX: 0.75,
90
+ $gutterX: 1,
91
+ onClick: v,
92
+ $disabled: e || k,
93
+ children: /* @__PURE__ */ i(r, { $renderAs: "ub1-bold", $color: e ? "BLACK_T_38" : "WHITE_1", children: e ? "Discuss in next class" : "Assign" })
94
+ }
95
+ )
96
+ ] }) : n === "assigned" ? /* @__PURE__ */ l(U, { $alignItems: "center", $justifyContent: "center", $flexGap: 8, children: [
97
+ /* @__PURE__ */ i(
98
+ H,
99
+ {
100
+ $widthX: 2.5,
101
+ $heightX: 2.5,
102
+ $background: "WHITE",
103
+ $alignItems: "center",
104
+ $justifyContent: "center",
105
+ children: /* @__PURE__ */ i(L, {})
106
+ }
107
+ ),
108
+ /* @__PURE__ */ i(r, { $renderAs: "ab1-bold", $align: "center", $color: "WHITE", children: "Puzzle assigned" })
109
+ ] }) : null;
110
+ return n === "hidden" && !o ? null : /* @__PURE__ */ i(W, { children: /* @__PURE__ */ i(
111
+ D,
112
+ {
113
+ animationPhase: e ? void 0 : n,
114
+ onAnimationEnd: T,
115
+ imageHue: m ?? "BLUE",
116
+ heightX: 19,
117
+ widthX: 15.75,
118
+ backgroundColor: e ? `${m}_2` : void 0,
119
+ children: E()
120
+ }
121
+ ) });
122
+ }
123
+ ), F = M;
124
+ export {
125
+ F as default
126
+ };
127
+ //# sourceMappingURL=puzzle-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzle-container.js","sources":["../../../../src/features/puzzles/puzzle-container/puzzle-container.tsx"],"sourcesContent":["import type { TPuzzleCardAnimationPhases } from '../comps/puzzle-card-types';\nimport type { IPuzzleCardContainerProps } from './puzzle-container-types';\nimport type { FC } from 'react';\n\nimport { useState, useCallback, useEffect, useRef, memo } from 'react';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport Image from '../../ui/image/image';\nimport Text from '../../ui/text/text';\nimport { usePostPuzzleToAssign } from '../api/puzzle-assign';\nimport PuzzleCard from '../comps/puzzle-card';\nimport * as Styled from './puzzle-container-styled';\n\nconst ASSIGNED_DISPLAY_DURATION = 1500; // ms\n\nconst PuzzleCardContainer: FC<IPuzzleCardContainerProps> = memo(\n ({\n userType,\n triggerReveal = false,\n onFullyHidden,\n onPuzzleClick,\n puzzleData,\n courseStream,\n studentId,\n }) => {\n const {\n image_hue: imageHue,\n image_url: imageUrl,\n assigned: externalAssigned,\n title,\n id: puzzleId,\n } = puzzleData;\n\n const [animationPhase, setAnimationPhase] = useState<TPuzzleCardAnimationPhases>('hidden');\n const [isAssigned, setIsAssigned] = useState(false);\n\n const assignedTimer = useRef<NodeJS.Timeout | null>(null);\n\n const { post: postPuzzleToAssign, isProcessing } = usePostPuzzleToAssign({\n onComplete: (error: string | null) => {\n if (error) {\n // Handle error (e.g., show a notification)\n setAnimationPhase('visible'); // Reset to visible if assignment fails\n } else {\n if (animationPhase === 'visible') {\n setAnimationPhase('assigning');\n }\n }\n },\n });\n\n // Main trigger to start or hide the card\n useEffect(() => {\n if (!externalAssigned) {\n if (triggerReveal) {\n if (isAssigned) {\n setAnimationPhase('assigned'); // Already assigned, show statically\n } else if (animationPhase === 'hidden') {\n setAnimationPhase('movingIn'); // Start the animation sequence\n }\n } else {\n // If trigger is removed, start hiding (unless already hidden/hiding)\n if (animationPhase !== 'hidden' && animationPhase !== 'movingOut') {\n setAnimationPhase('movingOut');\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [triggerReveal, isAssigned, externalAssigned]);\n\n // Timer to auto-hide after the 'assigned' phase\n useEffect(() => {\n if (animationPhase === 'assigned' && !externalAssigned) {\n assignedTimer.current = setTimeout(() => {\n setAnimationPhase('movingOut');\n }, ASSIGNED_DISPLAY_DURATION);\n }\n\n return () => {\n if (assignedTimer.current) clearTimeout(assignedTimer.current);\n };\n }, [animationPhase, externalAssigned]);\n\n // State machine for animations\n const handleAnimationEnd = useCallback(() => {\n switch (animationPhase) {\n case 'movingIn':\n setAnimationPhase('revealing');\n break;\n case 'revealing':\n setAnimationPhase('visible');\n break;\n case 'assigning':\n setAnimationPhase('assigned');\n setIsAssigned(true);\n break;\n case 'movingOut':\n setAnimationPhase('hidden');\n onFullyHidden?.();\n break;\n default:\n break;\n }\n }, [animationPhase, onFullyHidden]);\n\n const handleAssign = useCallback(() => {\n if (externalAssigned) return; // Do nothing if already assigned\n\n postPuzzleToAssign(\n {\n puzzle_id: puzzleId,\n },\n {\n studentId,\n courseStream,\n },\n );\n }, [courseStream, externalAssigned, postPuzzleToAssign, puzzleId, studentId]);\n\n const handleOnPuzzleClick = useCallback(() => {\n onPuzzleClick();\n }, [onPuzzleClick]);\n\n // Render content only during specific phases\n const renderContent = () => {\n if (animationPhase === 'visible' || externalAssigned) {\n return (\n <>\n <Styled.PuzzleContent\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $width=\"100%\"\n $height=\"100%\"\n onClick={handleOnPuzzleClick}\n title=\"Click to preview\"\n $flexGapX={1.5}\n >\n <Image width={136} height={136} src={imageUrl} withLoader={false} alt=\"Puzzle\" />\n <Text $renderAs=\"h4\">{title}</Text>\n\n {externalAssigned && (\n <Styled.AssignedTag $gap={4} $gutter={8} $background=\"BLACK_1\">\n <Text $renderAs=\"ac4\" $color=\"WHITE_1\">\n Assigned\n </Text>\n </Styled.AssignedTag>\n )}\n </Styled.PuzzleContent>\n\n {userType === 'TEACHER' && (\n <Styled.PuzzleButton\n $background=\"BLACK_1\"\n $widthX={15.75}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $gapX={0.75}\n $gutterX={1}\n onClick={handleAssign}\n $disabled={externalAssigned || isProcessing}\n >\n <Text $renderAs=\"ub1-bold\" $color={externalAssigned ? 'BLACK_T_38' : 'WHITE_1'}>\n {externalAssigned ? 'Discuss in next class' : 'Assign'}\n </Text>\n </Styled.PuzzleButton>\n )}\n </>\n );\n }\n\n if (animationPhase === 'assigned') {\n return (\n <Styled.PuzzleText $alignItems=\"center\" $justifyContent=\"center\" $flexGap={8}>\n <Styled.CheckMarkIcon\n $widthX={2.5}\n $heightX={2.5}\n $background=\"WHITE\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <Check2Icon />\n </Styled.CheckMarkIcon>\n\n <Text $renderAs=\"ab1-bold\" $align=\"center\" $color=\"WHITE\">\n Puzzle assigned\n </Text>\n </Styled.PuzzleText>\n );\n }\n\n // No content during animations\n return null;\n };\n\n if (animationPhase === 'hidden' && !triggerReveal) {\n return null;\n }\n\n return (\n <Styled.PuzzleContainer>\n <PuzzleCard\n animationPhase={!externalAssigned ? animationPhase : undefined}\n onAnimationEnd={handleAnimationEnd}\n imageHue={imageHue ?? 'BLUE'}\n heightX={19}\n widthX={15.75}\n backgroundColor={externalAssigned ? `${imageHue}_2` : undefined}\n >\n {renderContent()}\n </PuzzleCard>\n </Styled.PuzzleContainer>\n );\n },\n);\n\nexport default PuzzleCardContainer;\n"],"names":["ASSIGNED_DISPLAY_DURATION","PuzzleCardContainer","memo","userType","triggerReveal","onFullyHidden","onPuzzleClick","puzzleData","courseStream","studentId","imageHue","imageUrl","externalAssigned","title","puzzleId","animationPhase","setAnimationPhase","useState","isAssigned","setIsAssigned","assignedTimer","useRef","postPuzzleToAssign","isProcessing","usePostPuzzleToAssign","error","useEffect","handleAnimationEnd","useCallback","handleAssign","handleOnPuzzleClick","renderContent","jsxs","Fragment","Styled.PuzzleContent","jsx","Image","Text","Styled.AssignedTag","Styled.PuzzleButton","Styled.PuzzleText","Styled.CheckMarkIcon","Check2Icon","Styled.PuzzleContainer","PuzzleCard","PuzzleCardContainer$1"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ILLUSTRATIONS as P } from "../../../assets/illustrations/illustrations.js";
2
+ const {
3
+ PUZZLE_PATTERN_BLUE: r,
4
+ PUZZLE_PATTERN_GREEN: e,
5
+ PUZZLE_PATTERN_ORANGE: t,
6
+ PUZZLE_PATTERN_PURPLE: L,
7
+ PUZZLE_PATTERN_YELLOW: R
8
+ } = P, N = (E) => {
9
+ switch (E) {
10
+ case "YELLOW":
11
+ return R;
12
+ case "GREEN":
13
+ return e;
14
+ case "ORANGE":
15
+ return t;
16
+ case "PURPLE":
17
+ return L;
18
+ default:
19
+ return r;
20
+ }
21
+ };
22
+ export {
23
+ N as getPuzzleCardPattern
24
+ };
25
+ //# sourceMappingURL=puzzle-pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzle-pattern.js","sources":["../../../../src/features/puzzles/utils/puzzle-pattern.ts"],"sourcesContent":["import type { THueNames } from '../../ui/types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\nconst {\n PUZZLE_PATTERN_BLUE,\n PUZZLE_PATTERN_GREEN,\n PUZZLE_PATTERN_ORANGE,\n PUZZLE_PATTERN_PURPLE,\n PUZZLE_PATTERN_YELLOW,\n} = ILLUSTRATIONS;\n\nconst getPuzzleCardPattern = (imageHue: THueNames) => {\n switch (imageHue) {\n case 'YELLOW':\n return PUZZLE_PATTERN_YELLOW;\n case 'GREEN':\n return PUZZLE_PATTERN_GREEN;\n case 'ORANGE':\n return PUZZLE_PATTERN_ORANGE;\n case 'PURPLE':\n return PUZZLE_PATTERN_PURPLE;\n\n default:\n return PUZZLE_PATTERN_BLUE;\n }\n};\n\nexport { getPuzzleCardPattern };\n"],"names":["PUZZLE_PATTERN_BLUE","PUZZLE_PATTERN_GREEN","PUZZLE_PATTERN_ORANGE","PUZZLE_PATTERN_PURPLE","PUZZLE_PATTERN_YELLOW","ILLUSTRATIONS","getPuzzleCardPattern","imageHue"],"mappings":";AAIA,MAAM;AAAA,EACJ,qBAAAA;AAAA,EACA,sBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,uBAAAC;AACF,IAAIC,GAEEC,IAAuB,CAACC,MAAwB;AACpD,UAAQA,GAAU;AAAA,IAChB,KAAK;AACI,aAAAH;AAAA,IACT,KAAK;AACI,aAAAH;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IAET;AACS,aAAAH;AAAA,EACX;AACF;"}
@@ -64,6 +64,7 @@ const { TETRA: A, HEXO: S, OCTO: R, DODA: C, CHATVA: N, COSA: _, ASHTA: P, ZODAS
64
64
  PUZZLE_HARD: "PUZZLE_HARD",
65
65
  PUZZLE_MEDIUM: "PUZZLE_MEDIUM",
66
66
  PUZZLE: "PUZZLE",
67
+ PUZZLE_CARD: "PUZZLE_CARD",
67
68
  PYTHON_BASIC: "PYTHON_BASIC",
68
69
  PYTHON_VISUAL: "PYTHON_VISUAL",
69
70
  RECAP: "RECAP",
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../src/features/sheets/constants/sheet.ts"],"sourcesContent":["import type {\n TSheetAttemptLocation,\n TSheetStateProps,\n} from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { REWARD_BADGE } from '../../../constants/reward-badge';\n\nconst { TETRA, HEXO, OCTO, DODA, CHATVA, COSA, ASHTA, ZODASA, DVI, EKA } = REWARD_BADGE;\n\nconst MATH_REWARDS = [TETRA, HEXO, OCTO, DODA, COSA];\n\nconst INSTRUCTION_REWARDS = [EKA, DVI, CHATVA, ASHTA, ZODASA];\n\nconst REWARDS_LIST = [...MATH_REWARDS, ...INSTRUCTION_REWARDS];\n\nconst SHEET_STATE: Record<TSheetStateProps, TSheetStateProps> = {\n NOT_STARTED: 'NOT_STARTED',\n LOCKED: 'LOCKED',\n FAMILIAR: 'FAMILIAR',\n IN_PROGRESS: 'IN_PROGRESS',\n PROFICIENT: 'PROFICIENT',\n MASTERED: 'MASTERED',\n RE_ATTEMPT: 'RE_ATTEMPT',\n COMPLETED: 'COMPLETED',\n};\n\nconst COMPLETED_SHEET_STATE = [\n SHEET_STATE.FAMILIAR,\n SHEET_STATE.MASTERED,\n SHEET_STATE.PROFICIENT,\n SHEET_STATE.COMPLETED,\n];\n\nconst NODE_LABELS = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'ASSESSMENT',\n DIAGNOSTIC: 'READINESS',\n EXTRA_PRACTICE: 'EXTRA PRACTICE',\n LEARNING: 'LEARNING',\n LEVEL2: 'ADVANCED',\n LEVEL3: 'ADVANCED',\n PPT_BASIC: 'PRESENTATION',\n PPT_CONTENT: 'PRESENTATION',\n PPT_VIVA: 'PRESENTATION',\n PRACTICE: 'PRACTICE',\n PUZZLE: 'PUZZLE',\n PYTHON_BASIC: 'CODING ACTIVITY',\n PYTHON_VISUAL: 'CODING ACTIVITY',\n RECAP: 'RECAP',\n REMEDIAL: 'BRUSH UP',\n REVISION: 'REVISION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST SERIES',\n TURING_ASSESSMENT: 'CODING ASSESSMENT',\n TURING_BASIC: 'CODING ACTIVITY',\n TURING_LINK: 'CODING ACTIVITY',\n TURING_PRACTICE: 'CODING PRACTICE',\n TURING_SHARE: 'CODING ACTIVITY',\n TURING_SUBJECTIVE: 'CODING SUBJECTIVE',\n TEST: 'TEST',\n TARGET_PRACTICE: 'TARGET PRACTICE',\n} as const;\n\nconst PYTHON_NODE_TYPES = {\n PPT_BASIC: 'PPT_BASIC',\n PPT_CONTENT: 'PPT_CONTENT',\n PPT_VIVA: 'PPT_VIVA',\n} as const;\n\nconst NODE_TYPE = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'CHAPTER_ASSESSMENT',\n DECK: 'DECK',\n DIAGNOSTIC: 'DIAGNOSTIC',\n DYNAMIC: 'DYNAMIC',\n EXTRA_PRACTICE: 'EXTRA_PRACTICE',\n GENERAL: 'GENERAL',\n HIDDEN_BASIC: 'HIDDEN_BASIC',\n LEARNING: 'LEARNING',\n LEGACY: 'LEGACY',\n LEVEL2: 'LEVEL2',\n LEVEL3: 'LEVEL3',\n NOTE: 'NOTE',\n PRACTICE: 'PRACTICE',\n PUZZLE_EASY: 'PUZZLE_EASY',\n PUZZLE_HARD: 'PUZZLE_HARD',\n PUZZLE_MEDIUM: 'PUZZLE_MEDIUM',\n PUZZLE: 'PUZZLE',\n PYTHON_BASIC: 'PYTHON_BASIC',\n PYTHON_VISUAL: 'PYTHON_VISUAL',\n RECAP: 'RECAP',\n REMEDIAL: 'REMEDIAL',\n REVISION: 'REVISION',\n SIMULATION: 'SIMULATION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST_SERIES',\n TEST: 'TEST',\n TURING_ASSESSMENT: 'TURING_ASSESSMENT',\n TURING_BASIC: 'TURING_BASIC',\n TURING_LINK: 'TURING_LINK',\n TURING_PRACTICE: 'TURING_PRACTICE',\n TURING_SHARE: 'TURING_SHARE',\n TURING_SUBJECTIVE: 'TURING_SUBJECTIVE',\n VIDEO: 'VIDEO',\n TARGET_PRACTICE: 'TARGET_PRACTICE',\n MASTERY: 'MASTERY',\n TRIAL_DIAGNOSTIC: 'TRIAL_DIAGNOSTIC',\n} as const;\n\nexport const NODE_SUB_GROUP = {\n CORE: 'CORE',\n TESTS: 'TESTS',\n CATCH_UP: 'CATCH_UP',\n STEP_UP: 'STEP_UP',\n PUZZLE: 'PUZZLE',\n PRACTICE: 'PRACTICE',\n} as const;\n\nconst SHEET_ATTEMPT_STATE = {\n COMPLETED: 'COMPLETED',\n IN_PROGRESS: 'IN_PROGRESS',\n IN_REVIEW: 'IN_REVIEW',\n NO_JUSTIFY: 'NO_JUSTIFY',\n REJECTED: 'REJECTED',\n REVIEWED: 'REVIEWED',\n SKIPPED: 'SKIPPED',\n WAIT_FOR_END_REVIEW: 'WAIT_FOR_END_REVIEW',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION = {\n INCLASS: 'INCLASS',\n ATHOME: 'ATHOME',\n ANY: 'ANY',\n} as const;\n\nconst SHEET_ACTIONS = {\n START: 'START',\n RESUME: 'RESUME',\n RE_ATTEMPT: 'RE_ATTEMPT',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION_MAP: Record<TSheetAttemptLocation, string> = {\n [SHEET_ATTEMPT_LOCATION.INCLASS]: 'CW',\n [SHEET_ATTEMPT_LOCATION.ATHOME]: 'HW',\n [SHEET_ATTEMPT_LOCATION.ANY]: 'CW/HW',\n};\n\nconst SHEET_DATA_TYPE = {\n LESSON: 'lesson',\n SUPPLEMENTARY: 'supplementary-sheets-grouped',\n} as const;\n\nexport {\n COMPLETED_SHEET_STATE,\n NODE_TYPE,\n REWARDS_LIST,\n SHEET_ACTIONS,\n SHEET_ATTEMPT_LOCATION,\n SHEET_ATTEMPT_STATE,\n SHEET_STATE,\n SHEET_ATTEMPT_LOCATION_MAP,\n SHEET_DATA_TYPE,\n NODE_LABELS,\n PYTHON_NODE_TYPES,\n};\n"],"names":["TETRA","HEXO","OCTO","DODA","CHATVA","COSA","ASHTA","ZODASA","DVI","EKA","REWARD_BADGE","MATH_REWARDS","INSTRUCTION_REWARDS","REWARDS_LIST","SHEET_STATE","COMPLETED_SHEET_STATE","NODE_LABELS","PYTHON_NODE_TYPES","NODE_TYPE","NODE_SUB_GROUP","SHEET_ATTEMPT_STATE","SHEET_ATTEMPT_LOCATION","SHEET_ACTIONS","SHEET_ATTEMPT_LOCATION_MAP","SHEET_DATA_TYPE"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/features/sheets/constants/sheet.ts"],"sourcesContent":["import type {\n TSheetAttemptLocation,\n TSheetStateProps,\n} from '../sheets-list/sheet-item/sheet-item-types';\n\nimport { REWARD_BADGE } from '../../../constants/reward-badge';\n\nconst { TETRA, HEXO, OCTO, DODA, CHATVA, COSA, ASHTA, ZODASA, DVI, EKA } = REWARD_BADGE;\n\nconst MATH_REWARDS = [TETRA, HEXO, OCTO, DODA, COSA];\n\nconst INSTRUCTION_REWARDS = [EKA, DVI, CHATVA, ASHTA, ZODASA];\n\nconst REWARDS_LIST = [...MATH_REWARDS, ...INSTRUCTION_REWARDS];\n\nconst SHEET_STATE: Record<TSheetStateProps, TSheetStateProps> = {\n NOT_STARTED: 'NOT_STARTED',\n LOCKED: 'LOCKED',\n FAMILIAR: 'FAMILIAR',\n IN_PROGRESS: 'IN_PROGRESS',\n PROFICIENT: 'PROFICIENT',\n MASTERED: 'MASTERED',\n RE_ATTEMPT: 'RE_ATTEMPT',\n COMPLETED: 'COMPLETED',\n};\n\nconst COMPLETED_SHEET_STATE = [\n SHEET_STATE.FAMILIAR,\n SHEET_STATE.MASTERED,\n SHEET_STATE.PROFICIENT,\n SHEET_STATE.COMPLETED,\n];\n\nconst NODE_LABELS = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'ASSESSMENT',\n DIAGNOSTIC: 'READINESS',\n EXTRA_PRACTICE: 'EXTRA PRACTICE',\n LEARNING: 'LEARNING',\n LEVEL2: 'ADVANCED',\n LEVEL3: 'ADVANCED',\n PPT_BASIC: 'PRESENTATION',\n PPT_CONTENT: 'PRESENTATION',\n PPT_VIVA: 'PRESENTATION',\n PRACTICE: 'PRACTICE',\n PUZZLE: 'PUZZLE',\n PYTHON_BASIC: 'CODING ACTIVITY',\n PYTHON_VISUAL: 'CODING ACTIVITY',\n RECAP: 'RECAP',\n REMEDIAL: 'BRUSH UP',\n REVISION: 'REVISION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST SERIES',\n TURING_ASSESSMENT: 'CODING ASSESSMENT',\n TURING_BASIC: 'CODING ACTIVITY',\n TURING_LINK: 'CODING ACTIVITY',\n TURING_PRACTICE: 'CODING PRACTICE',\n TURING_SHARE: 'CODING ACTIVITY',\n TURING_SUBJECTIVE: 'CODING SUBJECTIVE',\n TEST: 'TEST',\n TARGET_PRACTICE: 'TARGET PRACTICE',\n} as const;\n\nconst PYTHON_NODE_TYPES = {\n PPT_BASIC: 'PPT_BASIC',\n PPT_CONTENT: 'PPT_CONTENT',\n PPT_VIVA: 'PPT_VIVA',\n} as const;\n\nconst NODE_TYPE = {\n ASSESSMENT: 'ASSESSMENT',\n CHAPTER_ASSESSMENT: 'CHAPTER_ASSESSMENT',\n DECK: 'DECK',\n DIAGNOSTIC: 'DIAGNOSTIC',\n DYNAMIC: 'DYNAMIC',\n EXTRA_PRACTICE: 'EXTRA_PRACTICE',\n GENERAL: 'GENERAL',\n HIDDEN_BASIC: 'HIDDEN_BASIC',\n LEARNING: 'LEARNING',\n LEGACY: 'LEGACY',\n LEVEL2: 'LEVEL2',\n LEVEL3: 'LEVEL3',\n NOTE: 'NOTE',\n PRACTICE: 'PRACTICE',\n PUZZLE_EASY: 'PUZZLE_EASY',\n PUZZLE_HARD: 'PUZZLE_HARD',\n PUZZLE_MEDIUM: 'PUZZLE_MEDIUM',\n PUZZLE: 'PUZZLE',\n PUZZLE_CARD: 'PUZZLE_CARD',\n PYTHON_BASIC: 'PYTHON_BASIC',\n PYTHON_VISUAL: 'PYTHON_VISUAL',\n RECAP: 'RECAP',\n REMEDIAL: 'REMEDIAL',\n REVISION: 'REVISION',\n SIMULATION: 'SIMULATION',\n SUBJECTIVE: 'SUBJECTIVE',\n TEST_SERIES: 'TEST_SERIES',\n TEST: 'TEST',\n TURING_ASSESSMENT: 'TURING_ASSESSMENT',\n TURING_BASIC: 'TURING_BASIC',\n TURING_LINK: 'TURING_LINK',\n TURING_PRACTICE: 'TURING_PRACTICE',\n TURING_SHARE: 'TURING_SHARE',\n TURING_SUBJECTIVE: 'TURING_SUBJECTIVE',\n VIDEO: 'VIDEO',\n TARGET_PRACTICE: 'TARGET_PRACTICE',\n MASTERY: 'MASTERY',\n TRIAL_DIAGNOSTIC: 'TRIAL_DIAGNOSTIC',\n} as const;\n\nexport const NODE_SUB_GROUP = {\n CORE: 'CORE',\n TESTS: 'TESTS',\n CATCH_UP: 'CATCH_UP',\n STEP_UP: 'STEP_UP',\n PUZZLE: 'PUZZLE',\n PRACTICE: 'PRACTICE',\n} as const;\n\nconst SHEET_ATTEMPT_STATE = {\n COMPLETED: 'COMPLETED',\n IN_PROGRESS: 'IN_PROGRESS',\n IN_REVIEW: 'IN_REVIEW',\n NO_JUSTIFY: 'NO_JUSTIFY',\n REJECTED: 'REJECTED',\n REVIEWED: 'REVIEWED',\n SKIPPED: 'SKIPPED',\n WAIT_FOR_END_REVIEW: 'WAIT_FOR_END_REVIEW',\n WAIT_FOR_REVIEW: 'WAIT_FOR_REVIEW',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION = {\n INCLASS: 'INCLASS',\n ATHOME: 'ATHOME',\n ANY: 'ANY',\n} as const;\n\nconst SHEET_ACTIONS = {\n START: 'START',\n RESUME: 'RESUME',\n RE_ATTEMPT: 'RE_ATTEMPT',\n} as const;\n\nconst SHEET_ATTEMPT_LOCATION_MAP: Record<TSheetAttemptLocation, string> = {\n [SHEET_ATTEMPT_LOCATION.INCLASS]: 'CW',\n [SHEET_ATTEMPT_LOCATION.ATHOME]: 'HW',\n [SHEET_ATTEMPT_LOCATION.ANY]: 'CW/HW',\n};\n\nconst SHEET_DATA_TYPE = {\n LESSON: 'lesson',\n SUPPLEMENTARY: 'supplementary-sheets-grouped',\n} as const;\n\nexport {\n COMPLETED_SHEET_STATE,\n NODE_TYPE,\n REWARDS_LIST,\n SHEET_ACTIONS,\n SHEET_ATTEMPT_LOCATION,\n SHEET_ATTEMPT_STATE,\n SHEET_STATE,\n SHEET_ATTEMPT_LOCATION_MAP,\n SHEET_DATA_TYPE,\n NODE_LABELS,\n PYTHON_NODE_TYPES,\n};\n"],"names":["TETRA","HEXO","OCTO","DODA","CHATVA","COSA","ASHTA","ZODASA","DVI","EKA","REWARD_BADGE","MATH_REWARDS","INSTRUCTION_REWARDS","REWARDS_LIST","SHEET_STATE","COMPLETED_SHEET_STATE","NODE_LABELS","PYTHON_NODE_TYPES","NODE_TYPE","NODE_SUB_GROUP","SHEET_ATTEMPT_STATE","SHEET_ATTEMPT_LOCATION","SHEET_ACTIONS","SHEET_ATTEMPT_LOCATION_MAP","SHEET_DATA_TYPE"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -402,6 +402,9 @@ declare interface ErrorProps {
402
402
  }
403
403
 
404
404
  export declare const EVENTS: {
405
+ TEACHER_BADGE: string;
406
+ STUDENT_BADGE: string;
407
+ OPEN_ADDITIONAL_CLASS_CONFIRMED_MODAL: string;
405
408
  HOMEWORK_UNASSIGN: "HOMEWORK_UNASSIGN";
406
409
  INVALIDATE_HOMEWORK: "INVALIDATE_HOMEWORK";
407
410
  GOAL_CREATED: "GOAL_CREATED";
@@ -2023,6 +2026,11 @@ export declare const ILLUSTRATIONS: {
2023
2026
  PROFICIENT_BADGE: string;
2024
2027
  PROFILE_BOARD: string;
2025
2028
  PUZZLE: string;
2029
+ PUZZLE_PATTERN_BLUE: string;
2030
+ PUZZLE_PATTERN_GREEN: string;
2031
+ PUZZLE_PATTERN_ORANGE: string;
2032
+ PUZZLE_PATTERN_PURPLE: string;
2033
+ PUZZLE_PATTERN_YELLOW: string;
2026
2034
  PUZZLE_STUDENT: string;
2027
2035
  REFUND_POLICY: string;
2028
2036
  REFUND_POLICY_WITH_HEADPHONE: string;
@@ -2551,6 +2559,8 @@ export declare const invalidateMilestonesData: (query?: TQuery | undefined) => v
2551
2559
 
2552
2560
  export declare const invalidatePastMilestoneCount: (id: string, query?: void | undefined, allIdsInvalid?: boolean) => void;
2553
2561
 
2562
+ export declare const invalidatePuzzleToAssign: (id: string, query?: void | undefined, allIdsInvalid?: boolean) => void;
2563
+
2554
2564
  export declare const invalidateTestHelpData: (id: string, query?: void | undefined, allIdsInvalid?: boolean) => void;
2555
2565
 
2556
2566
  declare interface IOnChapterExitWarningProps {
@@ -2801,6 +2811,32 @@ declare interface IPuzzleCard_2 {
2801
2811
  programId: string;
2802
2812
  }
2803
2813
 
2814
+ export declare interface IPuzzleCardAssignData {
2815
+ id: string;
2816
+ item_ref: string;
2817
+ image_url: string;
2818
+ image_hue: THueNames;
2819
+ title: string;
2820
+ assigned: boolean;
2821
+ created_on_ts: number;
2822
+ state: TSheetStates;
2823
+ user_id: string;
2824
+ node_type: TNodeTypes;
2825
+ node_id: string;
2826
+ user_node_id: string | null;
2827
+ }
2828
+
2829
+ declare interface IPuzzleCardContainerProps {
2830
+ userType: TUserTypes;
2831
+ triggerReveal?: boolean;
2832
+ puzzleData: IPuzzleCardAssignData;
2833
+ courseStream: TCourseStream;
2834
+ studentId: string;
2835
+ onFullyHidden?: () => void;
2836
+ onPuzzleClick: () => void;
2837
+ onPuzzleAssign?: () => void;
2838
+ }
2839
+
2804
2840
  export declare interface IPuzzleWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {
2805
2841
  question: string;
2806
2842
  askHintPermission?: boolean;
@@ -4296,6 +4332,7 @@ export declare const NODE_TYPE: {
4296
4332
  readonly PUZZLE_HARD: "PUZZLE_HARD";
4297
4333
  readonly PUZZLE_MEDIUM: "PUZZLE_MEDIUM";
4298
4334
  readonly PUZZLE: "PUZZLE";
4335
+ readonly PUZZLE_CARD: "PUZZLE_CARD";
4299
4336
  readonly PYTHON_BASIC: "PYTHON_BASIC";
4300
4337
  readonly PYTHON_VISUAL: "PYTHON_VISUAL";
4301
4338
  readonly RECAP: "RECAP";
@@ -4344,7 +4381,8 @@ export declare enum NODE_TYPES {
4344
4381
  'TRIAL_BASIC' = "TRIAL_BASIC",
4345
4382
  'TRIAL_INTERMEDIATE' = "TRIAL_INTERMEDIATE",
4346
4383
  'TRIAL_ADVANCED' = "TRIAL_ADVANCED",
4347
- 'MASTERY' = "MASTERY"
4384
+ 'MASTERY' = "MASTERY",
4385
+ 'PUZZLE_CARD' = "PUZZLE_CARD"
4348
4386
  }
4349
4387
 
4350
4388
  export declare const Nudge: React_2.FC<INudgeProps>;
@@ -4463,6 +4501,8 @@ export declare interface Puzzle extends BaseProject {
4463
4501
  solved: boolean;
4464
4502
  }
4465
4503
 
4504
+ export declare const Puzzle2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
4505
+
4466
4506
  declare const PUZZLE_CARD_STATE: {
4467
4507
  readonly LOCKED: "LOCKED";
4468
4508
  readonly COMPLETED: "COMPLETED";
@@ -4478,6 +4518,10 @@ declare const PUZZLE_CARD_STATE: {
4478
4518
 
4479
4519
  declare const PUZZLE_CARDS: "puzzle_cards";
4480
4520
 
4521
+ export declare const PuzzleCard: FC<IPuzzleCardContainerProps>;
4522
+
4523
+ export declare const PuzzleIcon: React.FC<React.SVGProps<SVGSVGElement>>;
4524
+
4481
4525
  export declare const PYTHON_NODE_TYPES: {
4482
4526
  readonly PPT_BASIC: "PPT_BASIC";
4483
4527
  readonly PPT_CONTENT: "PPT_CONTENT";
@@ -5180,6 +5224,28 @@ export declare type TInclassMessage = {
5180
5224
  eventPayload: {
5181
5225
  chapterId: string;
5182
5226
  };
5227
+ } | {
5228
+ eventName: 'TEACHER_BADGE';
5229
+ eventPayload: {
5230
+ data: {
5231
+ selectedBadge: Record<string, string>;
5232
+ badgeId: string;
5233
+ };
5234
+ };
5235
+ } | {
5236
+ eventName: 'STUDENT_BADGE';
5237
+ eventPayload: {
5238
+ studentId: string;
5239
+ badges: unknown[];
5240
+ };
5241
+ } | {
5242
+ eventName: 'OPEN_ADDITIONAL_CLASS_CONFIRMED_MODAL';
5243
+ eventPayload: {
5244
+ studentId: string;
5245
+ teacherId: string;
5246
+ timezone: string;
5247
+ timestamp: null | string;
5248
+ };
5183
5249
  };
5184
5250
 
5185
5251
  export declare type TInputShapes = 'border' | 'borderLess' | 'curved';
@@ -5449,7 +5515,7 @@ declare type TNodeSubGroupProps = keyof typeof NODE_SUB_GROUP;
5449
5515
 
5450
5516
  declare type TNodeTypeProps = keyof typeof NODE_TYPE | keyof typeof PYTHON_NODE_TYPES | keyof typeof SAT_NODE_TYPE;
5451
5517
 
5452
- export declare type TNodeTypes = 'LEGACY' | 'LEARNING' | 'REMEDIAL' | 'GENERAL' | 'SAT_MATH_RECAP' | 'SAT_MATH_LEARNING' | 'SAT_MATH_ASSESSMENT' | 'SAT_ENGLISH_RECAP' | 'SAT_ENGLISH_LEARNING' | 'SAT_ENGLISH_ASSESSMENT' | 'LEVEL3' | 'RECAP' | 'REVISION' | 'LEVEL2' | 'TARGET_PRACTICE' | 'PRACTICE' | 'EXTRA_PRACTICE' | 'PUZZLE_EASY' | 'PUZZLE_MEDIUM' | 'PUZZLE_HARD' | 'CHAPTER_ASSESSMENT' | 'ASSESSMENT' | 'TRIAL_DIAGNOSTIC' | 'TRIAL_BASIC' | 'TRIAL_INTERMEDIATE' | 'TRIAL_ADVANCED' | 'MASTERY' | 'DYNAMIC' | 'TURING_ASSESSMENT' | 'TURING_SUBJECTIVE' | 'TURING_PRACTICE' | 'DIAGNOSTIC' | 'SUBJECTIVE' | 'VIDEO';
5518
+ export declare type TNodeTypes = 'LEGACY' | 'LEARNING' | 'REMEDIAL' | 'GENERAL' | 'SAT_MATH_RECAP' | 'SAT_MATH_LEARNING' | 'SAT_MATH_ASSESSMENT' | 'SAT_ENGLISH_RECAP' | 'SAT_ENGLISH_LEARNING' | 'SAT_ENGLISH_ASSESSMENT' | 'LEVEL3' | 'RECAP' | 'REVISION' | 'LEVEL2' | 'TARGET_PRACTICE' | 'PRACTICE' | 'EXTRA_PRACTICE' | 'PUZZLE_EASY' | 'PUZZLE_MEDIUM' | 'PUZZLE_HARD' | 'CHAPTER_ASSESSMENT' | 'ASSESSMENT' | 'TRIAL_DIAGNOSTIC' | 'TRIAL_BASIC' | 'TRIAL_INTERMEDIATE' | 'TRIAL_ADVANCED' | 'MASTERY' | 'DYNAMIC' | 'TURING_ASSESSMENT' | 'TURING_SUBJECTIVE' | 'TURING_PRACTICE' | 'DIAGNOSTIC' | 'SUBJECTIVE' | 'VIDEO' | 'PUZZLE_CARD';
5453
5519
 
5454
5520
  declare type TNodeTypes_2 = keyof typeof NODE_TYPE | keyof typeof PYTHON_NODE_TYPES | keyof typeof SAT_NODE_TYPE;
5455
5521
 
@@ -5899,6 +5965,22 @@ export declare const useGetPastMilestoneCount: (initialId?: string, initialQuery
5899
5965
  } & Record<string, unknown>) | undefined;
5900
5966
  };
5901
5967
 
5968
+ export declare const useGetPuzzleToAssign: (initialId?: string, initialQuery?: void | undefined) => {
5969
+ get: (id: string, query: void, meta: {
5970
+ courseStream: TCourseStream;
5971
+ }) => Promise<void>;
5972
+ resource: ResourceModel<IPuzzleCardAssignData[]> | undefined;
5973
+ data: IPuzzleCardAssignData[] | undefined;
5974
+ permissions: Record<string, unknown> | undefined;
5975
+ isProcessing: boolean;
5976
+ isProcessed: boolean;
5977
+ isProcessingFailed: boolean;
5978
+ isStale: boolean;
5979
+ error: ({
5980
+ message?: string | undefined;
5981
+ } & Record<string, unknown>) | undefined;
5982
+ };
5983
+
5902
5984
  export declare const useGetTestHelpData: (initialId?: string, initialQuery?: void | undefined) => {
5903
5985
  get: (id: string, query: void, meta: {
5904
5986
  studentId: string;