@cuemath/leap 3.0.26 → 3.0.27-aa5

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 (81) hide show
  1. package/dist/assets/line-icons/icons/check.js +3 -3
  2. package/dist/assets/line-icons/icons/check.js.map +1 -1
  3. package/dist/assets/line-icons/icons/puzzle-icon.js +51 -0
  4. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -0
  5. package/dist/assets/line-icons/icons/share.js +48 -0
  6. package/dist/assets/line-icons/icons/share.js.map +1 -0
  7. package/dist/assets/line-icons/icons/tile.js +54 -0
  8. package/dist/assets/line-icons/icons/tile.js.map +1 -0
  9. package/dist/features/cue-canvas/bottombar/homework-controls.js +73 -0
  10. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -0
  11. package/dist/features/cue-canvas/cue-canvas-context.js +8 -5
  12. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  13. package/dist/features/cue-canvas/cue-canvas-core.js +68 -59
  14. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  15. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  16. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  17. package/dist/features/cue-canvas/cue-canvas-provider.js +14 -12
  18. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  19. package/dist/features/cue-canvas/cue-canvas.js +71 -64
  20. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  21. package/dist/features/cue-canvas/cue-cavas-styled.js +45 -42
  22. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  23. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +60 -54
  24. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  25. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +18 -14
  26. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  27. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  28. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  29. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  30. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  31. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  32. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  33. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +68 -0
  34. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  35. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  36. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  37. package/dist/features/cue-canvas/sidebar/homework/homework.js +39 -0
  38. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  39. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  40. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  41. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  42. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  43. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  44. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  45. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  46. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  47. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  48. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  49. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  50. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  51. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  52. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  53. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  54. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  55. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  56. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  57. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  58. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  59. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  60. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  61. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  62. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  63. package/dist/features/cue-canvas/sidebar/sidebar.js +29 -0
  64. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  65. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  66. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  67. package/dist/features/hooks/use-debounce.js +16 -0
  68. package/dist/features/hooks/use-debounce.js.map +1 -0
  69. package/dist/features/ui/error/error.js +20 -20
  70. package/dist/features/ui/error/error.js.map +1 -1
  71. package/dist/features/ui/stepper/stepper.js +7 -7
  72. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  73. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  74. package/dist/features/worksheet/worksheet/worksheet-helpers.js +58 -57
  75. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  76. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +94 -90
  77. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  78. package/dist/index.d.ts +50 -2
  79. package/dist/index.js +184 -180
  80. package/dist/index.js.map +1 -1
  81. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- const e = (t) => /* @__PURE__ */ o(
2
+ const t = (e) => /* @__PURE__ */ o(
3
3
  "svg",
4
4
  {
5
5
  width: "24",
@@ -7,7 +7,7 @@ const e = (t) => /* @__PURE__ */ o(
7
7
  viewBox: "0 0 24 24",
8
8
  fill: "none",
9
9
  xmlns: "http://www.w3.org/2000/svg",
10
- ...t,
10
+ ...e,
11
11
  children: /* @__PURE__ */ o(
12
12
  "path",
13
13
  {
@@ -19,7 +19,7 @@ const e = (t) => /* @__PURE__ */ o(
19
19
  }
20
20
  )
21
21
  }
22
- ), n = e;
22
+ ), n = t;
23
23
  export {
24
24
  n as default
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sources":["../../../../src/assets/line-icons/icons/check.tsx"],"sourcesContent":["const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M18.6663 7L9.49967 16.1667L5.33301 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.66882\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default CheckIcon;\n"],"names":["CheckIcon","props","jsx","TickIcon"],"mappings":";AAAA,MAAMA,IAAqD,CACzDC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,EAAA;AACF,GAGFC,IAAeH;"}
1
+ {"version":3,"file":"check.js","sources":["../../../../src/assets/line-icons/icons/check.tsx"],"sourcesContent":["const CheckIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M18.6663 7L9.49967 16.1667L5.33301 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.66882\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default CheckIcon;\n"],"names":["CheckIcon","props","jsx","CheckIcon$1"],"mappings":";AAAA,MAAMA,IAAqD,CACzDC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,EAAA;AACF,GAGFC,IAAeH;"}
@@ -0,0 +1,51 @@
1
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
+ const e = (c) => /* @__PURE__ */ l(
3
+ "svg",
4
+ {
5
+ width: "20",
6
+ height: "20",
7
+ viewBox: "0 0 20 20",
8
+ fill: "none",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ ...c,
11
+ children: [
12
+ /* @__PURE__ */ r(
13
+ "path",
14
+ {
15
+ d: "M4.84375 5.78632L4.84375 4.37218C4.84375 3.98865 5.15466 3.67773 5.53819 3.67773H7.11038",
16
+ stroke: "currentColor",
17
+ strokeWidth: "1.39167"
18
+ }
19
+ ),
20
+ /* @__PURE__ */ r(
21
+ "path",
22
+ {
23
+ d: "M14.6472 16.5289L17.3453 4.68253C17.4304 4.30858 17.1963 3.93638 16.8224 3.85121L10.0307 2.30435C9.67373 2.22305 9.31497 2.43282 9.21075 2.78377L8.31911 5.78642",
24
+ stroke: "currentColor",
25
+ strokeWidth: "1.39167"
26
+ }
27
+ ),
28
+ /* @__PURE__ */ r(
29
+ "rect",
30
+ {
31
+ x: "3.33325",
32
+ y: "7.59961",
33
+ width: "9.0665",
34
+ height: "9.0665",
35
+ rx: "0.694444",
36
+ fill: "#F6F6F6",
37
+ stroke: "currentColor",
38
+ strokeWidth: "1.39167"
39
+ }
40
+ ),
41
+ /* @__PURE__ */ r("circle", { cx: "6.29508", cy: "10.563", r: "0.695833", fill: "black" }),
42
+ /* @__PURE__ */ r("circle", { cx: "6.29508", cy: "13.7359", r: "0.695833", fill: "black" }),
43
+ /* @__PURE__ */ r("circle", { cx: "9.4689", cy: "10.563", r: "0.695833", fill: "black" }),
44
+ /* @__PURE__ */ r("circle", { cx: "9.4689", cy: "13.7359", r: "0.695833", fill: "black" })
45
+ ]
46
+ }
47
+ );
48
+ export {
49
+ e as default
50
+ };
51
+ //# sourceMappingURL=puzzle-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzle-icon.js","sources":["../../../../src/assets/line-icons/icons/puzzle-icon.tsx"],"sourcesContent":["const PuzzleIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M4.84375 5.78632L4.84375 4.37218C4.84375 3.98865 5.15466 3.67773 5.53819 3.67773H7.11038\"\n stroke=\"currentColor\"\n strokeWidth=\"1.39167\"\n />\n <path\n d=\"M14.6472 16.5289L17.3453 4.68253C17.4304 4.30858 17.1963 3.93638 16.8224 3.85121L10.0307 2.30435C9.67373 2.22305 9.31497 2.43282 9.21075 2.78377L8.31911 5.78642\"\n stroke=\"currentColor\"\n strokeWidth=\"1.39167\"\n />\n <rect\n x=\"3.33325\"\n y=\"7.59961\"\n width=\"9.0665\"\n height=\"9.0665\"\n rx=\"0.694444\"\n fill=\"#F6F6F6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.39167\"\n />\n <circle cx=\"6.29508\" cy=\"10.563\" r=\"0.695833\" fill=\"black\" />\n <circle cx=\"6.29508\" cy=\"13.7359\" r=\"0.695833\" fill=\"black\" />\n <circle cx=\"9.4689\" cy=\"10.563\" r=\"0.695833\" fill=\"black\" />\n <circle cx=\"9.4689\" cy=\"13.7359\" r=\"0.695833\" fill=\"black\" />\n </svg>\n);\n\nexport default PuzzleIcon;\n"],"names":["PuzzleIcon","props","jsxs","jsx"],"mappings":";AAAA,MAAMA,IAAsD,CAC1DC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,QAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,QAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,QAAA;AAAA,MACd;AAAA,MACA,gBAAAA,EAAC,YAAO,IAAG,WAAU,IAAG,UAAS,GAAE,YAAW,MAAK,QAAQ,CAAA;AAAA,MAC3D,gBAAAA,EAAC,YAAO,IAAG,WAAU,IAAG,WAAU,GAAE,YAAW,MAAK,QAAQ,CAAA;AAAA,MAC5D,gBAAAA,EAAC,YAAO,IAAG,UAAS,IAAG,UAAS,GAAE,YAAW,MAAK,QAAQ,CAAA;AAAA,MAC1D,gBAAAA,EAAC,YAAO,IAAG,UAAS,IAAG,WAAU,GAAE,YAAW,MAAK,QAAQ,CAAA;AAAA,IAAA;AAAA,EAAA;AAC7D;"}
@@ -0,0 +1,48 @@
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ const s = (o) => /* @__PURE__ */ t(
3
+ "svg",
4
+ {
5
+ width: "21",
6
+ height: "20",
7
+ viewBox: "0 0 21 20",
8
+ fill: "none",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ ...o,
11
+ children: [
12
+ /* @__PURE__ */ e(
13
+ "path",
14
+ {
15
+ d: "M14.6667 10.6951V14.8618C14.6667 15.2301 14.5203 15.5834 14.2599 15.8439C13.9994 16.1043 13.6461 16.2507 13.2778 16.2507H5.63889C5.27053 16.2507 4.91726 16.1043 4.6568 15.8439C4.39633 15.5834 4.25 15.2301 4.25 14.8618V7.22287C4.25 6.85452 4.39633 6.50125 4.6568 6.24078C4.91726 5.98031 5.27053 5.83398 5.63889 5.83398H9.80556",
16
+ stroke: "#2B2B2B",
17
+ strokeWidth: "1.66667",
18
+ strokeLinecap: "square",
19
+ strokeLinejoin: "round"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ e(
23
+ "path",
24
+ {
25
+ d: "M12.5835 3.75H16.7502V7.91667",
26
+ stroke: "#2B2B2B",
27
+ strokeWidth: "1.66667",
28
+ strokeLinecap: "square",
29
+ strokeLinejoin: "round"
30
+ }
31
+ ),
32
+ /* @__PURE__ */ e(
33
+ "path",
34
+ {
35
+ d: "M9.11133 11.3898L16.0558 4.44531",
36
+ stroke: "#2B2B2B",
37
+ strokeWidth: "1.66667",
38
+ strokeLinecap: "square",
39
+ strokeLinejoin: "round"
40
+ }
41
+ )
42
+ ]
43
+ }
44
+ );
45
+ export {
46
+ s as default
47
+ };
48
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sources":["../../../../src/assets/line-icons/icons/share.tsx"],"sourcesContent":["const ShareIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M14.6667 10.6951V14.8618C14.6667 15.2301 14.5203 15.5834 14.2599 15.8439C13.9994 16.1043 13.6461 16.2507 13.2778 16.2507H5.63889C5.27053 16.2507 4.91726 16.1043 4.6568 15.8439C4.39633 15.5834 4.25 15.2301 4.25 14.8618V7.22287C4.25 6.85452 4.39633 6.50125 4.6568 6.24078C4.91726 5.98031 5.27053 5.83398 5.63889 5.83398H9.80556\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12.5835 3.75H16.7502V7.91667\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9.11133 11.3898L16.0558 4.44531\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default ShareIcon;\n"],"names":["ShareIcon","props","jsxs","jsx"],"mappings":";AAAA,MAAMA,IAAqD,CACzDC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EAAA;AACF;"}
@@ -0,0 +1,54 @@
1
+ import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
+ const o = (e) => /* @__PURE__ */ i(
3
+ "svg",
4
+ {
5
+ className: "tile-icon",
6
+ width: "32",
7
+ height: "32",
8
+ viewBox: "0 0 32 32",
9
+ fill: "none",
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ ...e,
12
+ children: [
13
+ /* @__PURE__ */ t("rect", { x: "0.5", y: "0.5", width: "31", height: "31", rx: "15.5", fill: "white" }),
14
+ /* @__PURE__ */ t("rect", { x: "0.5", y: "0.5", width: "31", height: "31", rx: "15.5", stroke: "white" }),
15
+ /* @__PURE__ */ t(
16
+ "rect",
17
+ {
18
+ x: "8.5",
19
+ y: "16",
20
+ width: "5.83333",
21
+ height: "6.66667",
22
+ rx: "0.833333",
23
+ stroke: "#2B2B2B",
24
+ strokeWidth: "1.39167",
25
+ strokeLinejoin: "round"
26
+ }
27
+ ),
28
+ /* @__PURE__ */ t(
29
+ "circle",
30
+ {
31
+ cx: "20.1667",
32
+ cy: "19.2542",
33
+ r: "3.33333",
34
+ stroke: "#2B2B2B",
35
+ strokeWidth: "1.39167",
36
+ strokeLinejoin: "round"
37
+ }
38
+ ),
39
+ /* @__PURE__ */ t(
40
+ "path",
41
+ {
42
+ d: "M18.8222 13.6583H11.7094C10.9896 13.6583 10.6084 12.8073 11.0875 12.2702L14.644 8.28391C14.9753 7.91249 15.5563 7.9125 15.8876 8.28391L19.444 12.2702C19.9232 12.8073 19.542 13.6583 18.8222 13.6583Z",
43
+ stroke: "#2B2B2B",
44
+ strokeWidth: "1.39167",
45
+ strokeLinejoin: "round"
46
+ }
47
+ )
48
+ ]
49
+ }
50
+ );
51
+ export {
52
+ o as default
53
+ };
54
+ //# sourceMappingURL=tile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile.js","sources":["../../../../src/assets/line-icons/icons/tile.tsx"],"sourcesContent":["const TileIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n className=\"tile-icon\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"31\" height=\"31\" rx=\"15.5\" stroke=\"white\" />\n <rect\n x=\"8.5\"\n y=\"16\"\n width=\"5.83333\"\n height=\"6.66667\"\n rx=\"0.833333\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.39167\"\n strokeLinejoin=\"round\"\n />\n <circle\n cx=\"20.1667\"\n cy=\"19.2542\"\n r=\"3.33333\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.39167\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.8222 13.6583H11.7094C10.9896 13.6583 10.6084 12.8073 11.0875 12.2702L14.644 8.28391C14.9753 7.91249 15.5563 7.9125 15.8876 8.28391L19.444 12.2702C19.9232 12.8073 19.542 13.6583 18.8222 13.6583Z\"\n stroke=\"#2B2B2B\"\n strokeWidth=\"1.39167\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default TileIcon;\n"],"names":["TileIcon","props","jsxs","jsx"],"mappings":";AAAA,MAAMA,IAAoD,CACxDC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAK,EAAA,GAAE,OAAM,GAAE,OAAM,OAAM,MAAK,QAAO,MAAK,IAAG,QAAO,MAAK,SAAQ;AAAA,MACnE,gBAAAA,EAAA,QAAA,EAAK,GAAE,OAAM,GAAE,OAAM,OAAM,MAAK,QAAO,MAAK,IAAG,QAAO,QAAO,SAAQ;AAAA,MACtE,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EAAA;AACF;"}
@@ -0,0 +1,73 @@
1
+ import { jsx as n, jsxs as g } from "react/jsx-runtime";
2
+ import { memo as b, useState as w, useCallback as i } from "react";
3
+ import k from "../../../assets/line-icons/icons/check.js";
4
+ import y from "../../../assets/line-icons/icons/share.js";
5
+ import f from "../../ui/buttons/button/button.js";
6
+ import p from "../../ui/layout/flex-view.js";
7
+ import I from "../../ui/separator/separator.js";
8
+ import B from "../../ui/text/text.js";
9
+ import { dataURIToBlob as x } from "../cue-canvas-helpers.js";
10
+ import { useCueCanvasActions as A } from "../hooks/use-cue-canvas-actions.js";
11
+ const S = (h) => {
12
+ const { width: c, onSendImageToChat: t, onMarkAsResolved: s } = h, { homeworkId: o, activeInstance: r, setHomeworkId: l } = A(), [m, u] = w(!1), a = i(() => {
13
+ r == null || r.clearCanvas(), l(void 0), u(!1);
14
+ }, [r, l]), d = i(async () => {
15
+ if (!r) return;
16
+ const e = await (r == null ? void 0 : r.getCanvasAsImage());
17
+ return e ? [x(e)] : void 0;
18
+ }, [r]), $ = i(async () => {
19
+ const e = await d();
20
+ !o || !t || !e || t == null || t(o, e, a);
21
+ }, [d, o, t, a]), C = i(() => {
22
+ o && (u(!0), s == null || s(o, a));
23
+ }, [o, s, a]);
24
+ return o ? m ? /* @__PURE__ */ n(
25
+ p,
26
+ {
27
+ $gapX: 1,
28
+ $gutterX: 0.5,
29
+ $alignItems: "center",
30
+ $justifyContent: "center",
31
+ $width: c,
32
+ $background: "YELLOW_1",
33
+ children: /* @__PURE__ */ n(B, { $renderAs: "body3", $color: "BLACK", children: "Resolving...." })
34
+ }
35
+ ) : /* @__PURE__ */ g(
36
+ p,
37
+ {
38
+ $flexDirection: "row",
39
+ $gapX: 1,
40
+ $gutterX: 0.5,
41
+ $alignItems: "center",
42
+ $justifyContent: "center",
43
+ $width: c,
44
+ $background: "YELLOW_1",
45
+ children: [
46
+ /* @__PURE__ */ n(
47
+ f,
48
+ {
49
+ label: "Mark as reolved",
50
+ onClick: C,
51
+ renderAs: "primary",
52
+ Icon: k,
53
+ busy: m
54
+ }
55
+ ),
56
+ /* @__PURE__ */ n(I, { width: 16 }),
57
+ /* @__PURE__ */ n(
58
+ f,
59
+ {
60
+ label: "Send CueBoard image to chat",
61
+ onClick: $,
62
+ renderAs: "primary",
63
+ Icon: y
64
+ }
65
+ )
66
+ ]
67
+ }
68
+ ) : null;
69
+ }, _ = b(S);
70
+ export {
71
+ _ as default
72
+ };
73
+ //# sourceMappingURL=homework-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import type { IHomeWorkControllerProps } from './bottombar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","homeworkControls","memo"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAAmD,CAASC,MAAA;AAChE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,kBAAAC,EAAA,IAAqBH,GACjD,EAAE,YAAAI,GAAY,gBAAAC,GAAgB,eAAAC,MAAkBC,EAAoB,GACpE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAYC,EAAY,MAAM;AAClC,IAAAP,KAAA,QAAAA,EAAgB,eAChBC,EAAc,MAAS,GACvBG,EAAU,EAAK;AAAA,EAAA,GACd,CAACJ,GAAgBC,CAAa,CAAC,GAE5BO,IAAmBD,EAAY,YAAY;AAC/C,QAAI,CAACP,EAAgB;AAEf,UAAAS,IAAW,OAAMT,KAAA,gBAAAA,EAAgB;AAEvC,WAAKS,IAME,CAFUC,EAAcD,CAAQ,CAEvB,IALd;AAAA,EAKc,GACf,CAACT,CAAc,CAAC,GAEbW,IAAwBJ,EAAY,YAAY;AAC9C,UAAAE,IAAW,MAAMD;AAEvB,IAAI,CAACT,KAAc,CAACF,KAAqB,CAACY,KAEtBZ,KAAA,QAAAA,EAAAE,GAAYU,GAAUH;AAAA,KACzC,CAACE,GAAkBT,GAAYF,GAAmBS,CAAS,CAAC,GAEzDM,IAAuBL,EAAY,MAAM;AAC7C,IAAKR,MACLK,EAAU,EAAI,GACdN,KAAA,QAAAA,EAAmBC,GAAYO;AAAA,EAC9B,GAAA,CAACP,GAAYD,GAAkBQ,CAAS,CAAC;AAExC,SAACP,IAEDI,IAEA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,4BAACmB,GAAK,EAAA,WAAU,SAAQ,QAAO,SAAQ,UAEvC,iBAAA;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASL;AAAA,YACT,UAAU;AAAA,YACV,MAAMM;AAAA,YACN,MAAMf;AAAA,UAAA;AAAA,QACR;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,OAAO,GAAI,CAAA;AAAA,QACtB,gBAAAN;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASN;AAAA,YACT,UAAU;AAAA,YACV,MAAMS;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1CoB;AA6C1B,GAEeC,IAAAC,EAAK5B,CAAkB;"}
@@ -1,17 +1,20 @@
1
- import { createContext as t } from "react";
2
- import { CANVAS_COLORS as o } from "./constants/constants.js";
3
- const c = t({
1
+ import { createContext as o } from "react";
2
+ import { CANVAS_COLORS as e } from "./constants/constants.js";
3
+ const v = o({
4
4
  activeInstance: void 0,
5
5
  setActiveInstance: () => {
6
6
  },
7
7
  activeTool: "pen",
8
8
  setActiveTool: () => {
9
9
  },
10
- activeColor: Object.keys(o)[0],
10
+ activeColor: Object.keys(e)[0],
11
11
  setActiveColor: () => {
12
+ },
13
+ homeworkId: void 0,
14
+ setHomeworkId: () => {
12
15
  }
13
16
  });
14
17
  export {
15
- c as default
18
+ v as default
16
19
  };
17
20
  //# sourceMappingURL=cue-canvas-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nimport { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAOA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AACxB,CAAC;"}
1
+ {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nimport { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n homeworkId: undefined,\n setHomeworkId: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAOA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AAAA,EACtB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AACvB,CAAC;"}
@@ -1,20 +1,21 @@
1
- var d = Object.defineProperty;
2
- var u = (r, t, e) => t in r ? d(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
- var s = (r, t, e) => u(r, typeof t != "symbol" ? t + "" : t, e);
1
+ var u = Object.defineProperty;
2
+ var g = (l, t, e) => t in l ? u(l, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[t] = e;
3
+ var s = (l, t, e) => g(l, typeof t != "symbol" ? t + "" : t, e);
4
4
  import v from "../../node_modules/lodash.debounce/index.js";
5
- import { removeTileButton as f, removeMask as g, checkTextOrEquationTool as y, getReverseMap as C, getToolAndSubtool as m } from "./cue-canvas-helpers.js";
6
- class b {
5
+ import { removeTileButton as f, removeMask as y, checkTextOrEquationTool as C, getReverseMap as m, getToolAndSubtool as T } from "./cue-canvas-helpers.js";
6
+ class k {
7
7
  constructor({
8
8
  onPublish: t,
9
9
  onSubscribe: e,
10
10
  onUpdateActiveTool: a,
11
- onUpdateHeight: n,
11
+ onUpdateHeight: i,
12
12
  uploadImageToS3: o,
13
- height: i,
14
- userId: l,
15
- canvasId: h,
13
+ height: n,
14
+ userId: h,
15
+ canvasId: r,
16
16
  userType: c,
17
- renderAs: p
17
+ renderAs: p,
18
+ updateCanvasConfig: d
18
19
  }) {
19
20
  s(this, "polycanvas");
20
21
  s(this, "publish");
@@ -28,6 +29,7 @@ class b {
28
29
  s(this, "fileInput", null);
29
30
  s(this, "debouncedViewportChange");
30
31
  s(this, "uploadImageToS3");
32
+ s(this, "updateCanvasConfigChange");
31
33
  s(this, "publishToChannel", (t, e, a) => {
32
34
  this.publish && this.publish({
33
35
  eventName: "cue_canvas_changed",
@@ -43,7 +45,7 @@ class b {
43
45
  });
44
46
  s(this, "onChange", (t) => {
45
47
  const a = Object.fromEntries(t.entries());
46
- y(a) && this.onUpdateActiveTool("move"), this.publishToChannel(a);
48
+ C(a) && this.onUpdateActiveTool("move"), this.publishToChannel(a);
47
49
  });
48
50
  s(this, "undo", () => {
49
51
  if (!this.polycanvas)
@@ -51,7 +53,7 @@ class b {
51
53
  const t = this.polycanvas.undo();
52
54
  if (!t)
53
55
  return;
54
- const e = C(t);
56
+ const e = m(t);
55
57
  this.onChange(e);
56
58
  });
57
59
  s(this, "redo", () => {
@@ -73,6 +75,7 @@ class b {
73
75
  const t = this.polycanvas.getViewport();
74
76
  this.polycanvas.setViewport(t.x, t.y, t.zoom * 0.9);
75
77
  });
78
+ s(this, "getCanvasAsImage", async () => this.polycanvas ? await this.polycanvas.image(3e3, 3e3, "png") : void 0);
76
79
  s(this, "downloadCanvasAsImage", async () => {
77
80
  if (!this.polycanvas) return;
78
81
  const t = await this.polycanvas.image(3e3, 3e3, "png");
@@ -80,32 +83,35 @@ class b {
80
83
  const e = document.createElement("a");
81
84
  e.href = t, e.download = `canvas-drawing-${Date.now()}.png`, e.click();
82
85
  });
83
- s(this, "uploadFileToCanvas", async (t) => new Promise((e, a) => {
84
- this.uploadImageToS3 ? e(this.uploadImageToS3(t)) : a(new Error("Upload function not provided"));
85
- }));
86
86
  s(this, "onViewPortChange", (t) => {
87
- if (!this.publish) return;
87
+ if (!this.updateCanvasConfigChange) return;
88
88
  const e = t;
89
- this.publishToChannel({}, void 0, e);
89
+ this.updateCanvasConfigChange({ dimesion: e });
90
90
  });
91
91
  s(this, "openFileUpload", () => {
92
- this.fileInput || (this.fileInput = document.createElement("input"), this.fileInput.type = "file", this.fileInput.accept = "image/*", this.fileInput.style.display = "none", this.fileInput.onchange = this.addImageToCanvas, document.body.appendChild(this.fileInput)), this.fileInput.click();
92
+ this.fileInput || (this.fileInput = document.createElement("input"), this.fileInput.type = "file", this.fileInput.accept = "image/*", this.fileInput.style.display = "none", this.fileInput.onchange = this.onSelectImage, document.body.appendChild(this.fileInput)), this.fileInput.click();
93
93
  });
94
- s(this, "addImageToCanvas", async (t) => {
95
- var h;
96
- const e = t.target, a = (h = e.files) == null ? void 0 : h[0];
97
- if (!a || !this.polycanvas || !this.uploadImageToS3) return;
98
- const n = await this.uploadImageToS3(a), o = this.polycanvas.getViewport(), i = {
94
+ s(this, "addImageToCanvas", (t) => {
95
+ if (!this.polycanvas) return;
96
+ const e = this.polycanvas.getViewport(), a = {
99
97
  name: "image",
100
- href: n,
101
- x: o.x + 88,
102
- y: o.y + 88
103
- }, l = this.polycanvas.add({
104
- ...i
98
+ href: t,
99
+ x: e.x + 24,
100
+ y: e.y + 24,
101
+ width: 500
102
+ }, i = this.polycanvas.add({
103
+ ...a
105
104
  });
106
105
  this.publishToChannel({
107
- [l]: [void 0, { ...i, status: "locked" }]
108
- }), e.value = "";
106
+ [i]: [void 0, { ...a, status: "locked" }]
107
+ });
108
+ });
109
+ s(this, "onSelectImage", async (t) => {
110
+ var o;
111
+ const e = t.target, a = (o = e.files) == null ? void 0 : o[0];
112
+ if (!a || !this.polycanvas || !this.uploadImageToS3) return;
113
+ const i = await this.uploadImageToS3(a);
114
+ i !== "error" && (this.addImageToCanvas(i), e.value = "");
109
115
  });
110
116
  s(this, "updateCanvasConfig", (t, e, a) => {
111
117
  this.polycanvas && (t > this.height && this.updateHeight(t), e && this.polycanvas.setViewport(e.x, e.y, e.zoom), a && this.polycanvas.setOptions({
@@ -114,44 +120,47 @@ class b {
114
120
  });
115
121
  s(this, "updateCanvas", ({ data: t, userId: e }) => {
116
122
  const a = this.userType === "TEACHER" || e === this.userId;
117
- Object.entries(t).forEach(([n, o]) => {
118
- var i, l, h;
119
- !o[0] && o[1] ? (i = this.polycanvas) == null || i.add({ ...o[1], cannotEdit: !a }, n) : o[0] && !o[1] ? (l = this.polycanvas) == null || l.delete(n) : o[0] && o[1] && ((h = this.polycanvas) == null || h.update(n, { ...o[1] }));
123
+ Object.entries(t).forEach(([i, o]) => {
124
+ var n, h, r;
125
+ !o[0] && o[1] ? ("name" in o[1] && o[1].name === "image" && (o[1].status = this.userType === "STUDENT" ? "locked" : void 0), (n = this.polycanvas) == null || n.add({ ...o[1], cannotEdit: !a }, i)) : o[0] && !o[1] ? (h = this.polycanvas) == null || h.delete(i) : o[0] && o[1] && ((r = this.polycanvas) == null || r.update(i, { ...o[1] }));
120
126
  });
121
127
  });
122
128
  s(this, "toggleTiles", (t) => {
123
129
  var e;
124
130
  (e = this.polycanvas) == null || e.toggleSidebar(t);
125
131
  });
132
+ s(this, "setViewPort", ({ x: t, y: e, zoom: a }) => {
133
+ this.polycanvas && this.polycanvas.setViewport(t, e, a);
134
+ });
126
135
  s(this, "resetViewPort", () => {
127
136
  this.polycanvas && this.polycanvas.resetViewport();
128
137
  });
129
138
  s(this, "changeGrid", (t) => {
130
- this.polycanvas && (this.polycanvas.setOptions({
139
+ !this.polycanvas || !this.updateCanvasConfigChange || (this.polycanvas.setOptions({
131
140
  grid: t
132
- }), this.publishToChannel({}, t));
141
+ }), this.userType === "TEACHER" && this.updateCanvasConfigChange({ gridName: t }));
133
142
  });
134
143
  s(this, "lockSelectedTiles", () => {
135
- var a, n;
136
- const { tiles: t } = ((a = this.polycanvas) == null ? void 0 : a.serialize()) || {}, e = ((n = this.polycanvas) == null ? void 0 : n.getSelection()) || [];
144
+ var a, i;
145
+ const { tiles: t } = ((a = this.polycanvas) == null ? void 0 : a.serialize()) || {}, e = ((i = this.polycanvas) == null ? void 0 : i.getSelection()) || [];
137
146
  if (e.length > 0 && t) {
138
147
  const o = {};
139
- e.forEach((i) => {
140
- var h, c, p;
141
- if (!((h = t[i]) != null && h.name)) return;
142
- const l = { ...t[i], status: "locked" };
143
- (c = this.polycanvas) == null || c.update(i, l), (p = t[i]) != null && p.name && (o[i] = [t[i], l]);
148
+ e.forEach((n) => {
149
+ var r, c, p;
150
+ if (!((r = t[n]) != null && r.name)) return;
151
+ const h = { ...t[n], status: "locked" };
152
+ (c = this.polycanvas) == null || c.update(n, h), (p = t[n]) != null && p.name && (o[n] = [t[n], h]);
144
153
  }), this.publishToChannel(o);
145
154
  }
146
155
  });
147
156
  s(this, "unlockAllTiles", () => {
148
157
  if (!this.polycanvas) return;
149
158
  const { tiles: t } = this.polycanvas.serialize(), e = {};
150
- t && Object.entries(t).length > 0 && (Object.entries(t).forEach(([a, n]) => {
151
- var i;
152
- if (n.status !== "locked") return;
153
- const o = { ...n, status: void 0 };
154
- (i = this.polycanvas) == null || i.update(a, o), e[a] = [n, o];
159
+ t && Object.entries(t).length > 0 && (Object.entries(t).forEach(([a, i]) => {
160
+ var n;
161
+ if (i.status !== "locked") return;
162
+ const o = { ...i, status: void 0 };
163
+ (n = this.polycanvas) == null || n.update(a, o), e[a] = [i, o];
155
164
  }), this.publishToChannel(e));
156
165
  });
157
166
  s(this, "replaceCanvas", (t) => {
@@ -159,17 +168,17 @@ class b {
159
168
  const { data: e, gridName: a } = t;
160
169
  this.polycanvas.clear(), a && this.polycanvas.setOptions({
161
170
  grid: a
162
- }), Object.entries(e).forEach(([n, o]) => {
163
- var i;
171
+ }), Object.entries(e).forEach(([i, o]) => {
172
+ var n;
164
173
  if (!o[0] && o[1]) {
165
- (i = this.polycanvas) == null || i.add({ ...o[1] }, n);
174
+ (n = this.polycanvas) == null || n.add({ ...o[1] }, i);
166
175
  return;
167
176
  }
168
177
  }), this.publishToChannel(e, a);
169
178
  });
170
179
  s(this, "setTool", (t) => {
171
180
  if (this.polycanvas) {
172
- const [e, a] = m(t);
181
+ const [e, a] = T(t);
173
182
  switch (e) {
174
183
  case "clearAll":
175
184
  this.clearCanvas();
@@ -222,10 +231,10 @@ class b {
222
231
  */
223
232
  s(this, "update", (t) => {
224
233
  if (Array.isArray(t)) {
225
- const e = t.map((i) => i.height).filter(Boolean), a = Math.max(...e), n = t.map((i) => i.dimension).filter(Boolean)[t.length - 1], o = t.map((i) => i.gridName).filter(Boolean)[t.length - 1];
226
- this.updateCanvasConfig(a, n, o), t.forEach((i) => this.updateCanvas(i));
234
+ const e = t.map((i) => i.height).filter(Boolean), a = Math.max(...e);
235
+ a > this.height && this.updateHeight(a), t.forEach((i) => this.updateCanvas(i));
227
236
  } else
228
- this.updateCanvasConfig(t.height, t.dimension, t == null ? void 0 : t.gridName), this.updateCanvas(t);
237
+ t.height > this.height && this.updateHeight(t.height), this.updateCanvas(t);
229
238
  });
230
239
  s(this, "setColor", (t) => {
231
240
  this.polycanvas && this.polycanvas.setColor(t);
@@ -237,9 +246,9 @@ class b {
237
246
  s(this, "destroy", () => {
238
247
  this.polycanvas && (this.polycanvas.off("change", this.onChange), this.polycanvas.destroy(), this.debouncedViewportChange.cancel(), this.renderAs === "whiteboard" && this.userType === "TEACHER" && this.polycanvas.off("viewport", this.debouncedViewportChange), this.polycanvas = void 0, this.fileInput && this.fileInput.parentNode && (this.fileInput.parentNode.removeChild(this.fileInput), this.fileInput = null));
239
248
  });
240
- this.onUpdateHeight = n, this.onUpdateActiveTool = a, this.height = i, this.uploadImageToS3 = o, this.userId = l, this.canvasId = h, this.publish = t, this.userType = c, this.renderAs = p, this.debouncedViewportChange = v(this.onViewPortChange, 300), e == null || e(this.canvasId, this.update);
249
+ this.onUpdateHeight = i, this.onUpdateActiveTool = a, this.height = n, this.uploadImageToS3 = o, this.userId = h, this.canvasId = r, this.publish = t, this.userType = c, this.renderAs = p, this.debouncedViewportChange = v(this.onViewPortChange, 300), this.updateCanvasConfigChange = d, e == null || e(this.canvasId, this.update);
241
250
  }
242
- async create({ canvasElementRef: t, canvasConfig: e, canvasSetting: a, initialData: n }) {
251
+ async create({ canvasElementRef: t, canvasConfig: e, canvasSetting: a, initialData: i }) {
243
252
  if (!t.current)
244
253
  throw new Error("PolyCanvas: Div Element Not found for canvas");
245
254
  this.polycanvas = await window.Polypad.create(t.current, {
@@ -247,11 +256,11 @@ class b {
247
256
  options: e
248
257
  },
249
258
  ...a,
250
- imageUpload: this.renderAs === "whiteboard" && this.userType === "TEACHER" ? this.uploadFileToCanvas : void 0
251
- }), this.renderAs === "whiteboard" && this.userType === "TEACHER" && (this.polycanvas.toggleSidebar(!1), f(t), this.polycanvas.on("viewport", this.debouncedViewportChange)), g(t), this.polycanvas.on("change", this.onChange), n && this.update(n);
259
+ imageUpload: this.renderAs === "whiteboard" && this.userType === "TEACHER" && this.uploadImageToS3 ? this.uploadImageToS3 : void 0
260
+ }), this.renderAs === "whiteboard" && this.userType === "TEACHER" && (this.polycanvas.toggleSidebar(!1), this.polycanvas.bindKeyboardEvents({}), f(t), this.polycanvas.on("viewport", this.debouncedViewportChange)), y(t), this.polycanvas.on("change", this.onChange), i && this.update(i);
252
261
  }
253
262
  }
254
263
  export {
255
- b as CueCanvasCore
264
+ k as CueCanvasCore
256
265
  };
257
266
  //# sourceMappingURL=cue-canvas-core.js.map