@cuemath/leap 3.2.1-beta-0.1 → 3.2.1-ppa-0.1

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 (72) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -1
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/hint-fill.js +35 -0
  4. package/dist/assets/line-icons/icons/hint-fill.js.map +1 -0
  5. package/dist/assets/lottie/lottie.js +0 -6
  6. package/dist/assets/lottie/lottie.js.map +1 -1
  7. package/dist/features/communication/pub-sub/constants.js +4 -6
  8. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  9. package/dist/features/homework/homework-card-view.js +100 -87
  10. package/dist/features/homework/homework-card-view.js.map +1 -1
  11. package/dist/features/puzzles/app/puzzle-app-styled.js +115 -0
  12. package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -0
  13. package/dist/features/puzzles/app/puzzle-app-view.js +116 -0
  14. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -0
  15. package/dist/features/puzzles/app/puzzle-app.js +63 -0
  16. package/dist/features/puzzles/app/puzzle-app.js.map +1 -0
  17. package/dist/features/puzzles/comps/puzzle-card-styled.js +69 -24
  18. package/dist/features/puzzles/comps/puzzle-card-styled.js.map +1 -1
  19. package/dist/features/puzzles/comps/puzzle-card.js +30 -53
  20. package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
  21. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js +25 -55
  22. package/dist/features/puzzles/puzzle-container/puzzle-container-styled.js.map +1 -1
  23. package/dist/features/puzzles/puzzle-container/puzzle-container.js +107 -89
  24. package/dist/features/puzzles/puzzle-container/puzzle-container.js.map +1 -1
  25. package/dist/features/puzzles/utils/puzzle-pattern.js +13 -28
  26. package/dist/features/puzzles/utils/puzzle-pattern.js.map +1 -1
  27. package/dist/features/worksheet/worksheet/worksheet-helpers.js +19 -20
  28. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  29. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +25 -29
  30. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  31. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +47 -97
  32. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
  33. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +163 -166
  34. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  35. package/dist/features/worksheet/worksheet/worksheet-styled.js +34 -34
  36. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  37. package/dist/features/worksheet/worksheet/worksheet.js +309 -303
  38. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  39. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +1 -1
  40. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  41. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +17 -20
  42. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  43. package/dist/index.d.ts +18 -28
  44. package/dist/index.js +523 -521
  45. package/dist/index.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/features/puzzles/api/puzzle-dashboard.js +0 -10
  48. package/dist/features/puzzles/api/puzzle-dashboard.js.map +0 -1
  49. package/dist/features/puzzles/constants/puzzle-container.js +0 -8
  50. package/dist/features/puzzles/constants/puzzle-container.js.map +0 -1
  51. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js +0 -45
  52. package/dist/features/puzzles/puzzle-container/puzzle-container-view.js.map +0 -1
  53. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard-styled.js +0 -30
  54. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard-styled.js.map +0 -1
  55. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard.js +0 -84
  56. package/dist/features/puzzles/puzzle-dashboard/puzzle-dashboard.js.map +0 -1
  57. package/dist/static/arm-mechanical.7561628e.json +0 -4428
  58. package/dist/static/cent-emoji.3a07ef13.json +0 -5576
  59. package/dist/static/clap-emoji.aa0b824b.json +0 -12684
  60. package/dist/static/gem-stone.8c91431a.json +0 -6716
  61. package/dist/static/partyball.e19caed6.json +0 -11578
  62. package/dist/static/partypopper.9f7992e8.json +0 -6416
  63. package/dist/static/puzzle-blue-lottie.7017e2e8.json +0 -1
  64. package/dist/static/puzzle-blue-lottie.bf64ebc5.json +0 -12760
  65. package/dist/static/puzzle-dashboard-banner.b7956519.svg +0 -1
  66. package/dist/static/puzzle-green-lottie.1da90698.json +0 -1
  67. package/dist/static/puzzle-orange-lottie.cfcf3724.json +0 -1
  68. package/dist/static/puzzle-purple-lottie.e70de110.json +0 -9860
  69. package/dist/static/puzzle-yellow-lottie.275b5cf4.json +0 -1
  70. package/dist/static/slotmachine.ba8014dd.json +0 -7779
  71. package/dist/static/super-emoji.7fad19f6.json +0 -3720
  72. package/dist/static/victory-emoji.2ca41d92.json +0 -9959
@@ -1,77 +1,47 @@
1
- import e from "styled-components";
2
- import r from "../../ui/layout/flex-view.js";
3
- import { getPuzzleCardPattern as s } from "../utils/puzzle-pattern.js";
4
- const c = e(r)(({ theme: t, $assigned: o }) => {
5
- const { colors: i, layout: n } = t;
6
- return `
7
- cursor: pointer;
8
- width: ${n.gutter * 15.9375}px;
9
- height: ${n.gutter * 19.125}px;
10
- position: relative;
11
- left: ${o ? "0" : "50px"};
12
- top: ${o ? "0" : "50px"};
1
+ import o from "styled-components";
2
+ import t from "../../ui/layout/flex-view.js";
3
+ const p = o(t)`
4
+ cursor: pointer;
13
5
 
14
- &:hover {
15
- outline: 2px solid ${i.BLACK_1};
16
- }
17
- `;
18
- }), x = e(r)(({ theme: t, $assigned: o, $assigning: i }) => {
19
- const { colors: n, layout: p } = t;
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;
20
11
  return `
21
- cursor: pointer;
22
- width: ${p.gutter * 15.9375}px;
23
12
  position: absolute;
24
- left: ${o ? "0" : "50px"};
25
- bottom: ${o ? "-50px" : "11px"};
13
+ bottom: -48px;
14
+ cursor: pointer;
15
+ z-index: -1;
26
16
 
27
- ${(o || i) && `
28
- background: ${n.WHITE_4};
29
- border: 2px solid ${n.WHITE_5};
17
+ ${n && `
18
+ background: ${r.WHITE_4};
19
+ border: 2px solid ${r.WHITE_5};
30
20
  border-top: 0;
31
21
  pointer-events: none;
32
22
  `}
33
23
  `;
34
- });
35
- e(r)`
24
+ }), c = o(t)`
36
25
  position: relative;
37
26
  top: -8px;
38
27
  height: 100%;
39
28
  width: 100%;
40
- `;
41
- e(r)`
29
+ `, u = o(t)`
42
30
  border-radius: 50%;
43
- `;
44
- const d = e(r)`
31
+ `, a = o(t)`
45
32
  position: relative;
46
33
  transition: height 0.3s ease-out;
47
- `, g = e(r)`
34
+ `, d = o(t)`
48
35
  position: absolute;
49
36
  top: 0;
50
37
  right: 0;
51
- `, h = e(r)(({ $visible: t, theme: o }) => {
52
- const { layout: i } = o;
53
- return `
54
- width: ${i.gutter * 22.1875}px;
55
- height: ${i.gutter * 26}px;
56
- left: 0;
57
- opacity: ${t ? 1 : 0};
58
- pointer-events: ${t ? "auto" : "none"};
59
- transition: opacity 0.2s ease-out;
60
- `;
61
- }), $ = e(r)`
62
- position: relative;
63
-
64
- box-shadow: inset 0px 0px 0px 4px ${({ theme: t, $imageHue: o }) => t.colors[`${o}_4`]};
65
-
66
- background-image: ${({ $imageHue: t }) => `url(${s(t)})`};
67
- background-size: cover;
68
38
  `;
69
39
  export {
70
- g as AssignedTag,
71
- $ as PuzzleAssignedWrapper,
72
- x as PuzzleButton,
73
- d as PuzzleContainer,
74
- c as PuzzleContent,
75
- h as PuzzleContentWrapper
40
+ d as AssignedTag,
41
+ u as CheckMarkIcon,
42
+ l as PuzzleButton,
43
+ a as PuzzleContainer,
44
+ p as PuzzleContent,
45
+ c as PuzzleText
76
46
  };
77
47
  //# sourceMappingURL=puzzle-container-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puzzle-container-styled.js","sources":["../../../../src/features/puzzles/puzzle-container/puzzle-container-styled.tsx"],"sourcesContent":["import type { THueNames } from '../../ui/types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { getPuzzleCardPattern } from '../utils/puzzle-pattern';\n\ninterface IPuzzleProps {\n $assigned?: boolean;\n $assigning?: boolean;\n}\n\nconst PuzzleContent = styled(FlexView)<IPuzzleProps>(({ theme, $assigned }) => {\n const { colors, layout } = theme;\n\n return `\n cursor: pointer;\n width: ${layout.gutter * 15.9375}px;\n height: ${layout.gutter * 19.125}px;\n position: relative;\n left: ${$assigned ? '0' : '50px'};\n top: ${$assigned ? '0' : '50px'};\n\n &:hover {\n outline: 2px solid ${colors.BLACK_1};\n }\n `;\n});\n\nconst PuzzleButton = styled(FlexView)<IPuzzleProps>(({ theme, $assigned, $assigning }) => {\n const { colors, layout } = theme;\n\n return `\n cursor: pointer;\n width: ${layout.gutter * 15.9375}px;\n position: absolute;\n left: ${$assigned ? '0' : '50px'};\n bottom: ${$assigned ? '-50px' : '11px'};\n \n ${\n ($assigned || $assigning) &&\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\ninterface IPuzzleContentWrapper {\n $visible?: boolean;\n}\n\nconst PuzzleContentWrapper = styled(FlexView)<IPuzzleContentWrapper>(({ $visible, theme }) => {\n const { layout } = theme;\n\n return `\n width: ${layout.gutter * 22.1875}px;\n height: ${layout.gutter * 26}px;\n left: 0;\n opacity: ${$visible ? 1 : 0};\n pointer-events: ${$visible ? 'auto' : 'none'};\n transition: opacity 0.2s ease-out;\n `;\n});\n\nconst PuzzleAssignedWrapper = styled(FlexView)<{ $imageHue: THueNames }>`\n position: relative;\n\n box-shadow: inset 0px 0px 0px 4px ${({ theme, $imageHue }) => theme.colors[`${$imageHue}_4`]};\n\n background-image: ${({ $imageHue }) => `url(${getPuzzleCardPattern($imageHue)})`};\n background-size: cover;\n`;\n\nexport {\n PuzzleContainer,\n PuzzleContentWrapper,\n PuzzleContent,\n PuzzleButton,\n PuzzleText,\n CheckMarkIcon,\n AssignedTag,\n PuzzleAssignedWrapper,\n};\n"],"names":["PuzzleContent","styled","FlexView","theme","$assigned","colors","layout","PuzzleButton","$assigning","PuzzleContainer","AssignedTag","PuzzleContentWrapper","$visible","PuzzleAssignedWrapper","$imageHue","getPuzzleCardPattern"],"mappings":";;;AAYM,MAAAA,IAAgBC,EAAOC,CAAQ,EAAgB,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAAgB;AACvE,QAAA,EAAE,QAAAC,GAAQ,QAAAC,EAAW,IAAAH;AAEpB,SAAA;AAAA;AAAA,aAEIG,EAAO,SAAS,OAAO;AAAA,cACtBA,EAAO,SAAS,MAAM;AAAA;AAAA,YAExBF,IAAY,MAAM,MAAM;AAAA,WACzBA,IAAY,MAAM,MAAM;AAAA;AAAA;AAAA,2BAGRC,EAAO,OAAO;AAAA;AAAA;AAGzC,CAAC,GAEKE,IAAeN,EAAOC,CAAQ,EAAgB,CAAC,EAAE,OAAAC,GAAO,WAAAC,GAAW,YAAAI,QAAiB;AAClF,QAAA,EAAE,QAAAH,GAAQ,QAAAC,EAAW,IAAAH;AAEpB,SAAA;AAAA;AAAA,aAEIG,EAAO,SAAS,OAAO;AAAA;AAAA,YAExBF,IAAY,MAAM,MAAM;AAAA,cACtBA,IAAY,UAAU,MAAM;AAAA;AAAA,OAGnCA,KAAaI,MACd;AAAA,oBACcH,EAAO,OAAO;AAAA,0BACRA,EAAO,OAAO;AAAA;AAAA;AAAA,KAIpC;AAAA;AAEJ,CAAC;AAEkBJ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOZD,EAAOC,CAAQ;AAAA;AAAA;AAI/B,MAAAO,IAAkBR,EAAOC,CAAQ;AAAA;AAAA;AAAA,GAKjCQ,IAAcT,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAU7BS,IAAuBV,EAAOC,CAAQ,EAAyB,CAAC,EAAE,UAAAU,GAAU,OAAAT,QAAY;AACtF,QAAA,EAAE,QAAAG,EAAW,IAAAH;AAEZ,SAAA;AAAA,aACIG,EAAO,SAAS,OAAO;AAAA,cACtBA,EAAO,SAAS,EAAE;AAAA;AAAA,eAEjBM,IAAW,IAAI,CAAC;AAAA,sBACTA,IAAW,SAAS,MAAM;AAAA;AAAA;AAGhD,CAAC,GAEKC,IAAwBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA,sCAGP,CAAC,EAAE,OAAAC,GAAO,WAAAW,QAAgBX,EAAM,OAAO,GAAGW,CAAS,IAAI,CAAC;AAAA;AAAA,sBAExE,CAAC,EAAE,WAAAA,EAAU,MAAM,OAAOC,EAAqBD,CAAS,CAAC,GAAG;AAAA;AAAA;"}
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;"}
@@ -1,109 +1,127 @@
1
- import { jsx as n, jsxs as x } from "react/jsx-runtime";
2
- import { memo as R, useState as V, useRef as N, useMemo as C, useEffect as T, useCallback as u } from "react";
3
- import j from "../../ui/layout/flex-view.js";
4
- import k from "../../ui/lottie-animation/lottie-animation.js";
5
- import { usePostPuzzleToAssign as O } from "../api/puzzle-assign.js";
6
- import { PUZZLE_ASSIGN_ANIMATION as m } from "../constants/puzzle-container.js";
7
- import { getPuzzleCardLottie as v } from "../utils/puzzle-pattern.js";
8
- import { PuzzleContainer as L, PuzzleAssignedWrapper as G, PuzzleContentWrapper as M } from "./puzzle-container-styled.js";
9
- import S from "./puzzle-container-view.js";
10
- const U = {
11
- loop: !1,
12
- renderer: "svg",
13
- autoPlay: !1
14
- }, W = R(
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(
15
10
  ({
16
- triggerReveal: l = !1,
17
- onFullyHidden: i,
18
- onPuzzleClick: c,
19
- puzzleData: E,
20
- courseStream: f,
21
- studentId: z
11
+ userType: A,
12
+ triggerReveal: o = !1,
13
+ onFullyHidden: s,
14
+ onPuzzleClick: d,
15
+ puzzleData: p,
16
+ courseStream: g,
17
+ studentId: u
22
18
  }) => {
23
19
  const {
24
- image_hue: o,
25
- image_url: p,
26
- assigned: s,
27
- title: g,
28
- id: P
29
- } = E, [$, a] = V(s), r = N(null), I = C(() => v(o), [o]), { post: h, isProcessing: _ } = O({
30
- onComplete: (e) => {
31
- var t;
32
- e ? a(!0) : ((t = r.current) == null || t.playSegments(m.REVEAL_ASSIGNED, !1), a(!1));
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");
33
28
  }
34
29
  });
35
- T(() => {
36
- var e, t;
37
- s || (l ? (e = r.current) == null || e.playSegments(m.REVEAL, !0) : ((t = r.current) == null || t.stop(), a(!1)));
38
- }, [s, l]);
39
- const A = u(() => {
40
- s || h(
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 || $(
41
54
  {
42
- puzzle_id: P
55
+ puzzle_id: h
43
56
  },
44
57
  {
45
- studentId: z,
46
- courseStream: f
58
+ studentId: u,
59
+ courseStream: g
47
60
  }
48
61
  );
49
- }, [f, s, h, P, z]), d = u(() => {
50
- c();
51
- }, [c]), w = u(() => {
52
- var e;
53
- (e = r.current) == null || e.playSegments(m.REVEAL, !0);
54
- }, []), b = C(
55
- () => ({
56
- name: "enterFrame",
57
- callback: (e) => {
58
- const { currentTime: t } = e;
59
- t === 49 && a(!0), t === 101 && (i == null || i());
60
- }
61
- }),
62
- [i]
63
- );
64
- return l ? s ? /* @__PURE__ */ n(L, { $justifyContent: "center", children: /* @__PURE__ */ n(
65
- G,
66
- {
67
- $imageHue: o,
68
- $background: `${o}_2`,
69
- $widthX: 15.9375,
70
- children: /* @__PURE__ */ n(
71
- S,
72
- {
73
- imageUrl: p,
74
- title: g,
75
- handleOnPuzzleClick: d,
76
- handleAssign: A,
77
- assigned: !0
78
- }
79
- )
80
- }
81
- ) }) : /* @__PURE__ */ n(L, { children: /* @__PURE__ */ x(j, { $heightX: 26, children: [
82
- /* @__PURE__ */ n(
83
- k,
62
+ }, [g, e, $, h, u]), _ = c(() => {
63
+ d();
64
+ }, [d]), E = () => n === "visible" || e ? /* @__PURE__ */ l(w, { children: [
65
+ /* @__PURE__ */ l(
66
+ G,
84
67
  {
85
- src: I,
86
- ref: r,
87
- settings: U,
88
- onRender: w,
89
- eventListener: b,
90
- animateOnIntersect: !0
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
+ ]
91
80
  }
92
81
  ),
93
- /* @__PURE__ */ n(M, { $visible: $, $position: "absolute", children: /* @__PURE__ */ n(
82
+ A === "TEACHER" && /* @__PURE__ */ i(
94
83
  S,
95
84
  {
96
- imageUrl: p,
97
- title: g,
98
- handleOnPuzzleClick: d,
99
- handleAssign: A,
100
- assigning: _
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" })
101
94
  }
102
- ) })
103
- ] }) }) : null;
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
+ ) });
104
122
  }
105
- ), Y = W;
123
+ ), F = M;
106
124
  export {
107
- Y as default
125
+ F as default
108
126
  };
109
127
  //# sourceMappingURL=puzzle-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puzzle-container.js","sources":["../../../../src/features/puzzles/puzzle-container/puzzle-container.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../ui/lottie-animation/types';\nimport type { IPuzzleCardContainerProps } from './puzzle-container-types';\nimport type { AnimationEventName, BMEnterFrameEvent } from 'lottie-web';\nimport type { FC } from 'react';\n\nimport { useState, useCallback, useEffect, useRef, memo, useMemo } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport { usePostPuzzleToAssign } from '../api/puzzle-assign';\nimport { PUZZLE_ASSIGN_ANIMATION } from '../constants/puzzle-container';\nimport { getPuzzleCardLottie } from '../utils/puzzle-pattern';\nimport * as Styled from './puzzle-container-styled';\nimport PuzzleAssigned from './puzzle-container-view';\n\nconst modeRevealAnimationSettings = {\n loop: false,\n renderer: 'svg',\n autoPlay: false,\n};\n\nconst PuzzleCardContainer: FC<IPuzzleCardContainerProps> = memo(\n ({\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 [showPuzzleInfo, setShowPuzzleInfo] = useState(externalAssigned);\n\n const assignLottieRef = useRef<ILottieAnimationRef | null>(null);\n const puzzleLottieSrc = useMemo(() => getPuzzleCardLottie(imageHue), [imageHue]);\n\n const { post: postPuzzleToAssign, isProcessing } = usePostPuzzleToAssign({\n onComplete: (error: string | null) => {\n if (error) {\n // Handle error (e.g., show a notification)\n setShowPuzzleInfo(true);\n } else {\n assignLottieRef.current?.playSegments(PUZZLE_ASSIGN_ANIMATION.REVEAL_ASSIGNED, false);\n\n setShowPuzzleInfo(false);\n }\n },\n });\n\n useEffect(() => {\n if (!externalAssigned) {\n if (triggerReveal) {\n assignLottieRef.current?.playSegments(PUZZLE_ASSIGN_ANIMATION.REVEAL, true);\n } else {\n assignLottieRef.current?.stop();\n setShowPuzzleInfo(false);\n }\n }\n }, [externalAssigned, triggerReveal]);\n\n const handleAssign = useCallback(() => {\n if (externalAssigned) return;\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 const showPuzzleLottie = useCallback(() => {\n assignLottieRef.current?.playSegments(PUZZLE_ASSIGN_ANIMATION.REVEAL, true);\n }, []);\n\n const onAnimationFinish = useMemo(\n () => ({\n name: 'enterFrame' as AnimationEventName,\n callback: (event: BMEnterFrameEvent) => {\n const { currentTime } = event;\n\n if (currentTime === 49) {\n setShowPuzzleInfo(true);\n }\n\n if (currentTime === 101) {\n onFullyHidden?.();\n }\n },\n }),\n [onFullyHidden],\n );\n\n if (!triggerReveal) {\n return null;\n }\n\n if (externalAssigned) {\n return (\n <Styled.PuzzleContainer $justifyContent=\"center\">\n <Styled.PuzzleAssignedWrapper\n $imageHue={imageHue}\n $background={`${imageHue}_2`}\n $widthX={15.9375}\n >\n <PuzzleAssigned\n imageUrl={imageUrl}\n title={title}\n handleOnPuzzleClick={handleOnPuzzleClick}\n handleAssign={handleAssign}\n assigned\n />\n </Styled.PuzzleAssignedWrapper>\n </Styled.PuzzleContainer>\n );\n }\n\n return (\n <Styled.PuzzleContainer>\n <FlexView $heightX={26}>\n <LottieAnimation\n src={puzzleLottieSrc}\n ref={assignLottieRef}\n settings={modeRevealAnimationSettings}\n onRender={showPuzzleLottie}\n eventListener={onAnimationFinish}\n animateOnIntersect\n />\n\n <Styled.PuzzleContentWrapper $visible={showPuzzleInfo} $position=\"absolute\">\n <PuzzleAssigned\n imageUrl={imageUrl}\n title={title}\n handleOnPuzzleClick={handleOnPuzzleClick}\n handleAssign={handleAssign}\n assigning={isProcessing}\n />\n </Styled.PuzzleContentWrapper>\n </FlexView>\n </Styled.PuzzleContainer>\n );\n },\n);\n\nexport default PuzzleCardContainer;\n"],"names":["modeRevealAnimationSettings","PuzzleCardContainer","memo","triggerReveal","onFullyHidden","onPuzzleClick","puzzleData","courseStream","studentId","imageHue","imageUrl","externalAssigned","title","puzzleId","showPuzzleInfo","setShowPuzzleInfo","useState","assignLottieRef","useRef","puzzleLottieSrc","useMemo","getPuzzleCardLottie","postPuzzleToAssign","isProcessing","usePostPuzzleToAssign","error","_a","PUZZLE_ASSIGN_ANIMATION","useEffect","_b","handleAssign","useCallback","handleOnPuzzleClick","showPuzzleLottie","onAnimationFinish","event","currentTime","jsx","Styled.PuzzleContainer","Styled.PuzzleAssignedWrapper","PuzzleAssigned","jsxs","FlexView","LottieAnimation","Styled.PuzzleContentWrapper","PuzzleCardContainer$1"],"mappings":"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"}
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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"}
@@ -1,40 +1,25 @@
1
- import { ILLUSTRATIONS as r } from "../../../assets/illustrations/illustrations.js";
2
- import { LOTTIE as E } from "../../../assets/lottie/lottie.js";
1
+ import { ILLUSTRATIONS as P } from "../../../assets/illustrations/illustrations.js";
3
2
  const {
4
- PUZZLE_PATTERN_BLUE: e,
5
- PUZZLE_PATTERN_GREEN: t,
6
- PUZZLE_PATTERN_ORANGE: P,
7
- PUZZLE_PATTERN_PURPLE: T,
8
- PUZZLE_PATTERN_YELLOW: Z
9
- } = r, U = (L) => {
10
- switch (L) {
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) {
11
10
  case "YELLOW":
12
- return Z;
11
+ return R;
13
12
  case "GREEN":
14
- return t;
15
- case "ORANGE":
16
- return P;
17
- case "PURPLE":
18
- return T;
19
- default:
20
13
  return e;
21
- }
22
- }, O = (L) => {
23
- switch (L) {
24
- case "YELLOW":
25
- return E.PUZZLE_YELLOW_LOTTIE;
26
- case "GREEN":
27
- return E.PUZZLE_GREEN_LOTTIE;
28
14
  case "ORANGE":
29
- return E.PUZZLE_ORANGE_LOTTIE;
15
+ return t;
30
16
  case "PURPLE":
31
- return E.PUZZLE_PURPLE_LOTTIE;
17
+ return L;
32
18
  default:
33
- return E.PUZZLE_BLUE_LOTTIE;
19
+ return r;
34
20
  }
35
21
  };
36
22
  export {
37
- O as getPuzzleCardLottie,
38
- U as getPuzzleCardPattern
23
+ N as getPuzzleCardPattern
39
24
  };
40
25
  //# sourceMappingURL=puzzle-pattern.js.map
@@ -1 +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';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\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\nconst getPuzzleCardLottie = (imageHue: THueNames) => {\n switch (imageHue) {\n case 'YELLOW':\n return LOTTIE.PUZZLE_YELLOW_LOTTIE;\n case 'GREEN':\n return LOTTIE.PUZZLE_GREEN_LOTTIE;\n case 'ORANGE':\n return LOTTIE.PUZZLE_ORANGE_LOTTIE;\n case 'PURPLE':\n return LOTTIE.PUZZLE_PURPLE_LOTTIE;\n\n default:\n return LOTTIE.PUZZLE_BLUE_LOTTIE;\n }\n};\n\nexport { getPuzzleCardPattern, getPuzzleCardLottie };\n"],"names":["PUZZLE_PATTERN_BLUE","PUZZLE_PATTERN_GREEN","PUZZLE_PATTERN_ORANGE","PUZZLE_PATTERN_PURPLE","PUZZLE_PATTERN_YELLOW","ILLUSTRATIONS","getPuzzleCardPattern","imageHue","getPuzzleCardLottie","LOTTIE"],"mappings":";;AAKA,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,GAEMQ,IAAsB,CAACD,MAAwB;AACnD,UAAQA,GAAU;AAAA,IAChB,KAAK;AACH,aAAOE,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAChB,KAAK;AACH,aAAOA,EAAO;AAAA,IAEhB;AACE,aAAOA,EAAO;AAAA,EAClB;AACF;"}
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;"}
@@ -1,10 +1,10 @@
1
1
  import w from "../../../assets/line-icons/icons/bulb2.js";
2
2
  import S from "../../../assets/line-icons/icons/edit-star.js";
3
3
  import A from "../../../assets/line-icons/icons/edit2.js";
4
- import k from "../../../assets/line-icons/icons/question-letter.js";
5
- import L from "../../../assets/line-icons/icons/star2.js";
4
+ import O from "../../../assets/line-icons/icons/question-letter.js";
5
+ import R from "../../../assets/line-icons/icons/star2.js";
6
6
  import b from "../constants/events.js";
7
- import { OPTIONAL_ITEM_TYPES as O, ACTION_BAR_HEIGHT as R, QUESTION_WIDTH as C, SPLIT_QUESTION_WIDTH as N, CLOZE_FORMULA_RESPONSE_LIMIT as x } from "./constants.js";
7
+ import { OPTIONAL_ITEM_TYPES as L, ACTION_BAR_HEIGHT as k, QUESTION_WIDTH as y, SPLIT_QUESTION_WIDTH as N, CLOZE_FORMULA_RESPONSE_LIMIT as x } from "./constants.js";
8
8
  import { QUESTION_TAGS as E } from "./worksheet-types.js";
9
9
  const Q = (e) => {
10
10
  switch (e) {
@@ -35,7 +35,7 @@ const Q = (e) => {
35
35
  return !1;
36
36
  const r = e.toLowerCase();
37
37
  return r === "intro" || r === "concept-intro";
38
- }, y = (e) => e.reduce((r, t) => {
38
+ }, C = (e) => e.reduce((r, t) => {
39
39
  const [n, s] = t.split(":"), a = n == null ? void 0 : n.trim(), c = s == null ? void 0 : s.trim();
40
40
  return !a || !c ? r : {
41
41
  ...r,
@@ -61,9 +61,9 @@ const Q = (e) => {
61
61
  item_display_number: g,
62
62
  section_name: l,
63
63
  item_type: r ? o : void 0,
64
- is_optional: o ? O.includes(o) : !1,
64
+ is_optional: o ? L.includes(o) : !1,
65
65
  item_tags: a.tags ?? [],
66
- item_tags_map: y(a.tags ?? []),
66
+ item_tags_map: C(a.tags ?? []),
67
67
  question_number: h - (d ? 1 : 0),
68
68
  total_questions: _.length
69
69
  };
@@ -105,7 +105,7 @@ const Q = (e) => {
105
105
  item_number: c,
106
106
  item_display_number: c + 1,
107
107
  item_tags: a.tags ?? [],
108
- item_tags_map: y(a.tags ?? []),
108
+ item_tags_map: C(a.tags ?? []),
109
109
  question_number: m,
110
110
  total_questions: i.length
111
111
  };
@@ -131,7 +131,7 @@ const Q = (e) => {
131
131
  });
132
132
  }
133
133
  return n;
134
- }, z = ({
134
+ }, J = ({
135
135
  questions: e,
136
136
  initialQuestion: r,
137
137
  initialResponseId: t,
@@ -154,7 +154,7 @@ const Q = (e) => {
154
154
  if ((u = e[0]) != null && u.response_id)
155
155
  return e[0].response_id;
156
156
  throw new Error("Initial question not found");
157
- }, J = ({
157
+ }, V = ({
158
158
  questions: e,
159
159
  responses: r,
160
160
  behavior: t,
@@ -206,7 +206,7 @@ function M(e, r) {
206
206
  }
207
207
  };
208
208
  }
209
- const V = (e) => e.reduce(
209
+ const z = (e) => e.reduce(
210
210
  (r, t) => ({
211
211
  ...r,
212
212
  [t.response_id]: M(e, t.response_id)
@@ -217,9 +217,9 @@ const V = (e) => e.reduce(
217
217
  return {
218
218
  questionsContainerWidth: !e.some(
219
219
  (a) => a.questions.some((c) => c.stimulus_review)
220
- ) ? C : N,
221
- maxQuestionWidth: C,
222
- actionbarHeight: t === "bottom" ? R : 0
220
+ ) ? y : N,
221
+ maxQuestionWidth: y,
222
+ actionbarHeight: t === "bottom" ? k : 0
223
223
  };
224
224
  }, Z = ({
225
225
  questions: e,
@@ -352,9 +352,9 @@ const V = (e) => e.reduce(
352
352
  case "practice-regular":
353
353
  return S;
354
354
  case "exit-ticket":
355
- return k;
355
+ return O;
356
356
  case "advanced":
357
- return L;
357
+ return R;
358
358
  default:
359
359
  return w;
360
360
  }
@@ -385,17 +385,16 @@ const V = (e) => e.reduce(
385
385
  bgColor: "BLACK",
386
386
  borderColor: "BLACK_4",
387
387
  textColor: "WHITE"
388
- }, ue = (e) => e ? `${e}_1` : "BLUE_1";
388
+ };
389
389
  export {
390
390
  ie as checkIsClozeFormulaResponseInvalid,
391
- z as getInitialQuestionId,
392
- V as getInitialResponses,
393
- J as getLastUnlockedQuestionIndex,
391
+ J as getInitialQuestionId,
392
+ z as getInitialResponses,
393
+ V as getLastUnlockedQuestionIndex,
394
394
  ne as getNavigationSectionBackgroundColor,
395
395
  ae as getNavigationSectionIcon,
396
396
  oe as getNavigationSectionName,
397
397
  ee as getPaperColorByQuestion,
398
- ue as getPuzzleWorksheetBackgroundColor,
399
398
  te as getQuestionBackgroundImage,
400
399
  re as getQuestionBorderColor,
401
400
  M as getQuestionMetadata,