@cuemath/leap 3.0.10-aa0 → 3.0.10-aa2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/assets/line-icons/icons/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 +60 -0
  10. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -0
  11. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  12. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  13. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  14. package/dist/features/cue-canvas/cue-cavas-styled.js +29 -29
  15. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  16. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  17. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  18. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  19. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +60 -0
  20. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  21. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  22. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  23. package/dist/features/cue-canvas/sidebar/homework/homework.js +32 -0
  24. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  25. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  26. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  27. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  28. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  29. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  30. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  31. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  32. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  33. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  34. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  35. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  36. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  37. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  38. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  39. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  40. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  41. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  42. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  43. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  44. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  45. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  46. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  47. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  48. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  49. package/dist/features/cue-canvas/sidebar/sidebar.js +33 -0
  50. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  51. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  52. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  53. package/dist/features/hooks/use-debounce.js +16 -0
  54. package/dist/features/hooks/use-debounce.js.map +1 -0
  55. package/dist/features/ui/stepper/stepper.js +7 -7
  56. package/dist/index.d.ts +33 -0
  57. package/dist/index.js +186 -182
  58. package/dist/index.js.map +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,120 @@
1
+ const I = (l) => {
2
+ const { grid: m, strokes: c, tiles: f } = l || {}, a = {};
3
+ (f || []).forEach((o) => {
4
+ var G, u, g, D, A, h;
5
+ const { name: t, options: i, id: r, size: T } = o || {};
6
+ if (r) {
7
+ if (t === "text") {
8
+ const e = { ...o, html: i };
9
+ delete e.options, delete e.id, a[r] = [void 0, e];
10
+ }
11
+ if (t === "equation" || t === "algebra-tile") {
12
+ const e = { ...o, expr: i };
13
+ t === "algebra-tile" && (e.name = "algebra"), delete e.options, delete e.id, a[r] = [void 0, e];
14
+ }
15
+ if (t === "image") {
16
+ const e = { ...o, href: i, width: T };
17
+ delete e.options, delete e.id, a[r] = [void 0, e];
18
+ }
19
+ if (t === "polygon" || t === "token" || t === "custom-polygon") {
20
+ const e = { ...o, shape: i };
21
+ delete e.options, delete e.id, a[r] = [void 0, e];
22
+ }
23
+ if (t === "dice") {
24
+ const e = (G = i == null ? void 0 : i.trim()) == null ? void 0 : G.split(":")[0], d = { ...o, value: e };
25
+ delete d.options, delete d.id, a[r] = [void 0, d];
26
+ }
27
+ if (t === "number-tile") {
28
+ const [e, d] = ((u = i == null ? void 0 : i.trim()) == null ? void 0 : u.split(":")) || [], n = { ...o, value: d || 0, width: e || 0 };
29
+ delete n.options, delete n.id, a[r] = [void 0, n];
30
+ }
31
+ if (t === "geo") {
32
+ const [e, d] = ((g = i == null ? void 0 : i.trim()) == null ? void 0 : g.split("=")) || [], n = { ...o, key: e || "", expr: d || 0 };
33
+ delete n.options, delete n.id, a[r] = [void 0, n];
34
+ }
35
+ if (t === "number-line") {
36
+ const [e, d, n, s, E] = ((D = i == null ? void 0 : i.trim()) == null ? void 0 : D.split(":")) || [], p = {
37
+ ...o,
38
+ start: e || 0,
39
+ step: d || 0,
40
+ width: n || 0,
41
+ size: s || 0,
42
+ minor: E || 0
43
+ };
44
+ delete p.options, delete p.id, a[r] = [void 0, p];
45
+ }
46
+ if (t === "fraction-bar") {
47
+ const [e, d, n] = ((A = i == null ? void 0 : i.trim()) == null ? void 0 : A.split(":")) || [], s = { ...o };
48
+ e && (s.denominator = +e), d && (s.count = +d), n && (s.active = +n), delete s.options, delete s.id, a[r] = [void 0, s];
49
+ }
50
+ if (t === "fraction-circle") {
51
+ const [e, d, n] = ((h = i == null ? void 0 : i.trim()) == null ? void 0 : h.split(":")) || [], s = { ...o };
52
+ e && (s.denominator = +e), d && (s.count = +d), n && (s.active = +n), delete s.options, delete s.id, a[r] = [void 0, s];
53
+ }
54
+ if (t === "number-card" || t === "number-bar" || t === "tantrix") {
55
+ const e = { ...o, value: i };
56
+ delete e.options, delete e.id, a[r] = [void 0, e];
57
+ }
58
+ if (t === "tangram" || t === "garden" || t === "kolam" || t === "penrose" || t === "polyomino") {
59
+ const e = { ...o, index: i };
60
+ delete e.options, delete e.id, a[r] = [void 0, e];
61
+ }
62
+ if (t === "ruler" || t === "protractor" || t === "set-triangle" || t === "compass") {
63
+ const e = { ...o, width: i };
64
+ delete e.options, delete e.id, a[r] = [void 0, e];
65
+ }
66
+ }
67
+ });
68
+ const v = {};
69
+ return c.forEach((o) => {
70
+ const { id: t } = o || {};
71
+ if (t) {
72
+ const i = { ...o };
73
+ delete i.id, v[t] = [void 0, i];
74
+ }
75
+ }), {
76
+ gridName: m,
77
+ data: { ...v, ...a }
78
+ };
79
+ }, L = (l, m = "") => {
80
+ const c = [];
81
+ return l && l.length > 0 && l.forEach((f) => {
82
+ if (m === "grades") {
83
+ const a = `G${f.name}`;
84
+ c.push(a);
85
+ } else
86
+ c.push(f.name);
87
+ }), c;
88
+ }, y = {
89
+ ACTIVITY_TILES: "activity_tiles",
90
+ ACTIVITY_TOPICS: "activity_topics",
91
+ ACTIVITY_TYPES: "activity_types",
92
+ ACTIVITY_GRADES: "grades"
93
+ }, _ = {
94
+ "-1": "LKG",
95
+ 0: "UKG",
96
+ 1: "G1",
97
+ 2: "G2",
98
+ 3: "G3",
99
+ 4: "G4",
100
+ 5: "G5",
101
+ 6: "G6",
102
+ 7: "G7",
103
+ 8: "G8",
104
+ 9: "G9",
105
+ 10: "G10",
106
+ 11: "G11",
107
+ 12: "G12",
108
+ ALG1: "ALG1",
109
+ ALG2: "ALG2",
110
+ PCAL: "PCAL",
111
+ GEO: "GEO",
112
+ CAL: "CAL"
113
+ };
114
+ export {
115
+ y as FILTER_KEYS,
116
+ _ as GRADE_DISPLAY_NAMES,
117
+ L as getTags,
118
+ I as serializeData
119
+ };
120
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/features/cue-canvas/sidebar/puzzles/utils.ts"],"sourcesContent":["import type { TCueCanvasChangeDataObject, TCueCanvasGridName } from '../../types/cue-canvas';\nimport type { ActivityMetadata, IActivityGrade } from './api/get-puzzles';\nimport type { ITypeStroke, ITypeTile } from './puzzles-type';\n\nexport const serializeData = (jsonOBJ: {\n grid: TCueCanvasGridName;\n strokes: ITypeStroke[];\n tiles: ITypeTile[];\n}) => {\n const { grid, strokes, tiles } = jsonOBJ || {};\n const newTilesArray = {} as TCueCanvasChangeDataObject;\n\n (tiles || []).forEach(tile => {\n const { name, options, id, size } = tile || {};\n\n if (id) {\n if (name === 'text') {\n const tileData = { ...tile, html: options };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'equation' || name === 'algebra-tile') {\n const tileData = { ...tile, expr: options };\n\n if (name === 'algebra-tile') {\n tileData.name = 'algebra';\n }\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'image') {\n const tileData = { ...tile, href: options, width: size };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'polygon' || name === 'token' || name === 'custom-polygon') {\n const tileData = { ...tile, shape: options };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'dice') {\n const val = options?.trim()?.split(':')[0];\n const tileData = { ...tile, value: val };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'number-tile') {\n const [width, value] = options?.trim()?.split(':') || [];\n const tileData = { ...tile, value: value || 0, width: width || 0 };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'geo') {\n const [key, expr] = options?.trim()?.split('=') || [];\n const tileData = { ...tile, key: key || '', expr: expr || 0 };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'number-line') {\n const [start, step, width, stepSize, minor] = options?.trim()?.split(':') || [];\n const tileData = {\n ...tile,\n start: start || 0,\n step: step || 0,\n width: width || 0,\n size: stepSize || 0,\n minor: minor || 0,\n };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'fraction-bar') {\n const [denominator, count, active] = options?.trim()?.split(':') || [];\n\n const tileData = { ...tile };\n\n if (denominator) {\n tileData.denominator = +denominator;\n }\n\n if (count) {\n tileData.count = +count;\n }\n\n if (active) {\n tileData.active = +active;\n }\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'fraction-circle') {\n const [denominator, count, active] = options?.trim()?.split(':') || [];\n\n const tileData = { ...tile };\n\n if (denominator) {\n tileData.denominator = +denominator;\n }\n\n if (count) {\n tileData.count = +count;\n }\n\n if (active) {\n tileData.active = +active;\n }\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (name === 'number-card' || name === 'number-bar' || name === 'tantrix') {\n const tileData = { ...tile, value: options };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (\n name === 'tangram' ||\n name === 'garden' ||\n name === 'kolam' ||\n name === 'penrose' ||\n name === 'polyomino'\n ) {\n const tileData = { ...tile, index: options };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n\n if (\n name === 'ruler' ||\n name === 'protractor' ||\n name === 'set-triangle' ||\n name === 'compass'\n ) {\n const tileData = { ...tile, width: options };\n\n delete tileData.options;\n delete tileData.id;\n newTilesArray[id] = [undefined, tileData];\n }\n }\n });\n const newStrokeMap = {} as TCueCanvasChangeDataObject;\n\n strokes.forEach((stroke: ITypeStroke) => {\n const { id } = stroke || {};\n\n if (id) {\n const strokeData = { ...stroke };\n\n delete strokeData.id;\n newStrokeMap[id] = [undefined, strokeData];\n }\n });\n\n return {\n gridName: grid,\n data: { ...newStrokeMap, ...newTilesArray },\n };\n};\n\nexport const getTags = (data: ActivityMetadata[] | IActivityGrade[], type = '') => {\n const arr: string[] = [];\n\n if (data && data.length > 0) {\n data.forEach(res => {\n if (type === 'grades') {\n const grade = `G${res.name}`;\n\n arr.push(grade);\n } else {\n arr.push(res.name);\n }\n });\n }\n\n return arr;\n};\n\nexport const FILTER_KEYS = {\n ACTIVITY_TILES: 'activity_tiles',\n ACTIVITY_TOPICS: 'activity_topics',\n ACTIVITY_TYPES: 'activity_types',\n ACTIVITY_GRADES: 'grades',\n} as const;\n\nexport const GRADE_DISPLAY_NAMES: Record<string, string> = {\n '-1': 'LKG',\n '0': 'UKG',\n '1': 'G1',\n '2': 'G2',\n '3': 'G3',\n '4': 'G4',\n '5': 'G5',\n '6': 'G6',\n '7': 'G7',\n '8': 'G8',\n '9': 'G9',\n '10': 'G10',\n '11': 'G11',\n '12': 'G12',\n 'ALG1': 'ALG1',\n 'ALG2': 'ALG2',\n 'PCAL': 'PCAL',\n 'GEO': 'GEO',\n 'CAL': 'CAL',\n};\n"],"names":["serializeData","jsonOBJ","grid","strokes","tiles","newTilesArray","tile","_a","_b","_c","_d","_e","_f","name","options","id","size","tileData","val","width","value","key","expr","start","step","stepSize","minor","denominator","count","active","newStrokeMap","stroke","strokeData","getTags","data","type","arr","res","grade","FILTER_KEYS","GRADE_DISPLAY_NAMES"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import p, { css as r } from "styled-components";
2
+ import x from "../../ui/layout/flex-view.js";
3
+ const t = p(x)(({
4
+ theme: o,
5
+ $activeSidebar: d
6
+ }) => r`
7
+ z-index: ${o.zIndex.TILE_CONTAINER};
8
+ background-color: ${o.colors.WHITE};
9
+ padding: 7px;
10
+ gap: 4px;
11
+ border-radius: 8px;
12
+ border: 1px solid ${o.colors.BLACK_10};
13
+ box-shadow: 0px 1px 5px 0px ${o.colors.BLACK_10};
14
+
15
+ ${d === "tile" && r`
16
+ border: none;
17
+ box-shadow: none;
18
+ `}
19
+ `);
20
+ p(x)`
21
+ margin: auto;
22
+ box-shadow: 0px 1px 5px 0px ${({ theme: o }) => o.colors.BLACK_10};
23
+ border-top-left-radius: 8px;
24
+ border-top-right-radius: 8px;
25
+ bottom: 0;
26
+ left: 50%;
27
+ transform: translateX(-50%);
28
+ `;
29
+ export {
30
+ t as SideBarContainer
31
+ };
32
+ //# sourceMappingURL=sidebar-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-styled.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar-styled.tsx"],"sourcesContent":["import type { TActiveSidebar } from '../sidebar/puzzles/puzzles-type';\n\nimport styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\ninterface IStyledTileContainer {\n $activeSidebar?: TActiveSidebar;\n}\n\nexport const SideBarContainer = styled(FlexView)<IStyledTileContainer>(({\n theme,\n $activeSidebar,\n}) => {\n return css`\n z-index: ${theme.zIndex.TILE_CONTAINER};\n background-color: ${theme.colors.WHITE};\n padding: 7px;\n gap: 4px;\n border-radius: 8px;\n border: 1px solid ${theme.colors.BLACK_10};\n box-shadow: 0px 1px 5px 0px ${theme.colors.BLACK_10};\n\n ${$activeSidebar === 'tile' &&\n css`\n border: none;\n box-shadow: none;\n `}\n `;\n});\n\nexport const StyledToolContainer = styled(FlexView)`\n margin: auto;\n box-shadow: 0px 1px 5px 0px ${({ theme }) => theme.colors.BLACK_10};\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n`;\n"],"names":["SideBarContainer","styled","FlexView","theme","$activeSidebar","css"],"mappings":";;AAUO,MAAMA,IAAmBC,EAAOC,CAAQ,EAAwB,CAAC;AAAA,EACtE,OAAAC;AAAA,EACA,gBAAAC;AACF,MACSC;AAAA,eACMF,EAAM,OAAO,cAAc;AAAA,wBAClBA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,wBAIlBA,EAAM,OAAO,QAAQ;AAAA,kCACXA,EAAM,OAAO,QAAQ;AAAA;AAAA,MAEjDC,MAAmB,UACrBC;AAAA;AAAA;AAAA,KAGC;AAAA,GAEJ;AAEkCJ,EAAOC,CAAQ;AAAA;AAAA,gCAElB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,33 @@
1
+ import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import { memo as a, useState as s } from "react";
3
+ import f from "./homework/homework.js";
4
+ import n from "./puzzles/puzzles.js";
5
+ import { SideBarContainer as c } from "./sidebar-styled.js";
6
+ import d from "./tiles/tile.js";
7
+ const p = ({ grade: i, hwRequests: o }) => {
8
+ const [r, t] = s();
9
+ return /* @__PURE__ */ m(
10
+ c,
11
+ {
12
+ $activeSidebar: r,
13
+ $flexDirection: "row",
14
+ $justifyContent: "flex-start",
15
+ children: [
16
+ /* @__PURE__ */ e(d, { activeSidebar: r, setActiveSidebar: t }),
17
+ /* @__PURE__ */ e(n, { grade: i, activeSidebar: r, setActiveSidebar: t }),
18
+ o && /* @__PURE__ */ e(
19
+ f,
20
+ {
21
+ activeSidebar: r,
22
+ setActiveSidebar: t,
23
+ hwRequests: o
24
+ }
25
+ )
26
+ ]
27
+ }
28
+ );
29
+ }, v = a(p);
30
+ export {
31
+ v as default
32
+ };
33
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport Homework from './homework/homework';\nimport Puzzles from './puzzles/puzzles';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n return (\n <SideBarContainer\n $activeSidebar={activeSidebar}\n $flexDirection=\"row\"\n $justifyContent=\"flex-start\"\n >\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n {hwRequests && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","jsxs","SideBarContainer","jsx","TileBar","Puzzles","Homework","sidebar","memo"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACvD,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC;AAG7E,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAgBJ;AAAA,MAChB,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAC,gBAAAK,EAAAC,GAAA,EAAQ,eAAAN,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QAC1E,gBAAAI,EAAAE,GAAA,EAAQ,OAAAT,GAAc,eAAAE,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QACxFF,KACC,gBAAAM;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,eAAAR;AAAA,YACA,kBAAAC;AAAA,YACA,YAAAF;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEeU,IAAAC,EAAKb,CAAO;"}
@@ -0,0 +1,16 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { memo as c, useCallback as a } from "react";
3
+ import n from "../../../../assets/line-icons/icons/tile.js";
4
+ import { StyledWrapper as p } from "../../cue-cavas-styled.js";
5
+ import { useCueCanvasActions as d } from "../../hooks/use-cue-canvas-actions.js";
6
+ const C = c((s) => {
7
+ const { setActiveSidebar: t, activeSidebar: o } = s, { activeInstance: e, setActiveTool: i } = d(), m = a(() => {
8
+ const r = o !== "tile";
9
+ e == null || e.toggleTiles(r), t(r ? "tile" : void 0), i("move");
10
+ }, [o, e, t, i]);
11
+ return /* @__PURE__ */ l(p, { $active: o === "tile", onClick: m, children: /* @__PURE__ */ l(n, {}) });
12
+ });
13
+ export {
14
+ C as default
15
+ };
16
+ //# sourceMappingURL=tile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile.js","sources":["../../../../../src/features/cue-canvas/sidebar/tiles/tile.tsx"],"sourcesContent":["import type { TActiveSidebar } from '../puzzles/puzzles-type';\nimport type { Dispatch, FC, SetStateAction } from 'react';\n\nimport { memo, useCallback } from 'react';\n\nimport TileIcon from '../../../../assets/line-icons/icons/tile';\nimport { StyledWrapper } from '../../cue-cavas-styled';\nimport { useCueCanvasActions } from '../../hooks/use-cue-canvas-actions';\n\ninterface ITileBar {\n setActiveSidebar: Dispatch<SetStateAction<TActiveSidebar | undefined>>;\n activeSidebar?: TActiveSidebar;\n}\n\nconst TileBar: FC<ITileBar> = memo(props => {\n const { setActiveSidebar, activeSidebar } = props;\n const { activeInstance, setActiveTool } = useCueCanvasActions();\n\n const toggleTiles = useCallback(() => {\n const newTileState = activeSidebar !== 'tile';\n\n activeInstance?.toggleTiles(newTileState);\n setActiveSidebar(newTileState ? 'tile' : undefined);\n setActiveTool('move');\n }, [activeSidebar, activeInstance, setActiveSidebar, setActiveTool]);\n\n return (\n <StyledWrapper $active={activeSidebar === 'tile'} onClick={toggleTiles}>\n <TileIcon />\n </StyledWrapper>\n );\n});\n\nexport default TileBar;\n"],"names":["TileBar","memo","props","setActiveSidebar","activeSidebar","activeInstance","setActiveTool","useCueCanvasActions","toggleTiles","useCallback","newTileState","jsx","StyledWrapper","TileIcon"],"mappings":";;;;;AAcM,MAAAA,IAAwBC,EAAK,CAASC,MAAA;AACpC,QAAA,EAAE,kBAAAC,GAAkB,eAAAC,EAAkB,IAAAF,GACtC,EAAE,gBAAAG,GAAgB,eAAAC,EAAc,IAAIC,EAAoB,GAExDC,IAAcC,EAAY,MAAM;AACpC,UAAMC,IAAeN,MAAkB;AAEvC,IAAAC,KAAA,QAAAA,EAAgB,YAAYK,IACXP,EAAAO,IAAe,SAAS,MAAS,GAClDJ,EAAc,MAAM;AAAA,KACnB,CAACF,GAAeC,GAAgBF,GAAkBG,CAAa,CAAC;AAGjE,SAAA,gBAAAK,EAACC,KAAc,SAASR,MAAkB,QAAQ,SAASI,GACzD,UAAC,gBAAAG,EAAAE,GAAA,CAAS,CAAA,EACZ,CAAA;AAEJ,CAAC;"}
@@ -0,0 +1,16 @@
1
+ import { useRef as n, useCallback as c } from "react";
2
+ function a(u, r) {
3
+ const e = n(null);
4
+ return c(
5
+ (t) => (e.current && clearTimeout(e.current), e.current = setTimeout(() => {
6
+ u(t);
7
+ }, r), () => {
8
+ e.current && clearTimeout(e.current);
9
+ }),
10
+ [u, r]
11
+ );
12
+ }
13
+ export {
14
+ a as default
15
+ };
16
+ //# sourceMappingURL=use-debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounce.js","sources":["../../../src/features/hooks/use-debounce.tsx"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nfunction useDebounce<T>(callback: (arg: T) => void, wait: number) {\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const debouncedCallback = useCallback(\n (val: T) => {\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n callback(val);\n }, wait);\n\n return () => {\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n },\n [callback, wait],\n );\n\n return debouncedCallback;\n}\n\nexport default useDebounce;\n"],"names":["useDebounce","callback","wait","timeoutIdRef","useRef","useCallback","val"],"mappings":";AAEA,SAASA,EAAeC,GAA4BC,GAAc;AAC1D,QAAAC,IAAeC,EAA6C,IAAI;AAgB/D,SAdmBC;AAAA,IACxB,CAACC,OACKH,EAAa,WAAsB,aAAAA,EAAa,OAAO,GAC9CA,EAAA,UAAU,WAAW,MAAM;AACtC,MAAAF,EAASK,CAAG;AAAA,OACXJ,CAAI,GAEA,MAAM;AACX,MAAIC,EAAa,WAAsB,aAAAA,EAAa,OAAO;AAAA,IAAA;AAAA,IAG/D,CAACF,GAAUC,CAAI;AAAA,EAAA;AAInB;"}
@@ -1,14 +1,14 @@
1
1
  import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
- import m from "../../../assets/line-icons/icons/check.js";
3
- import h from "../text/text.js";
2
+ import l from "../../../assets/line-icons/icons/check.js";
3
+ import m from "../text/text.js";
4
4
  import { getTheme as p } from "../theme/get-theme.js";
5
5
  import { MainWrapper as a, HorizontalLine as d, Wrapper as g, NumberWrapper as f, StyledText as s } from "./stepper-styled.js";
6
6
  const { layout: u } = p(), { gutter: i } = u;
7
- function j({ stepsInfo: n = [], currentStep: e = 2 }) {
7
+ function W({ stepsInfo: n = [], currentStep: e = 2 }) {
8
8
  const c = n.length && e >= 1 ? (e - 1) / n.length * 100 : 0;
9
9
  return /* @__PURE__ */ o(a, { $flexDirection: "row", $width: "fit-content", $gutterX: 0.625, $gapX: 0.625, children: [
10
10
  /* @__PURE__ */ t(d, { $percentageCompleted: c, $height: 1 }),
11
- n.map(({ id: $, label: l }, r) => /* @__PURE__ */ o(
11
+ n.map(({ id: $, label: h }, r) => /* @__PURE__ */ o(
12
12
  g,
13
13
  {
14
14
  $flexDirection: "row",
@@ -25,10 +25,10 @@ function j({ stepsInfo: n = [], currentStep: e = 2 }) {
25
25
  $justifyContent: "center",
26
26
  $heightX: 1.25,
27
27
  $widthX: 1.25,
28
- children: r + 1 < e ? /* @__PURE__ */ t(m, { height: i, width: i }) : /* @__PURE__ */ t(h, { $renderAs: "body3", $color: "WHITE", children: $ })
28
+ children: r + 1 < e ? /* @__PURE__ */ t(l, { height: i, width: i }) : /* @__PURE__ */ t(m, { $renderAs: "body3", $color: "WHITE", children: $ })
29
29
  }
30
30
  ),
31
- r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: l })
31
+ r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: h })
32
32
  ]
33
33
  },
34
34
  r
@@ -36,6 +36,6 @@ function j({ stepsInfo: n = [], currentStep: e = 2 }) {
36
36
  ] });
37
37
  }
38
38
  export {
39
- j as default
39
+ W as default
40
40
  };
41
41
  //# sourceMappingURL=stepper.js.map
package/dist/index.d.ts CHANGED
@@ -271,10 +271,14 @@ export declare const CueCanvas: React.FC<ICueCanvas>;
271
271
 
272
272
  export declare const CueCanvasController: React_2.FC<IToolbarProps>;
273
273
 
274
+ export declare const CueCanvasHomeworkController: NamedExoticComponent<IHomeWorkControllerProps>;
275
+
274
276
  export declare const CueCanvasProvider: FC<PropsWithChildren<{
275
277
  userType: TUserTypes;
276
278
  }>>;
277
279
 
280
+ export declare const CueCanvasSideBar: NamedExoticComponent<ISidebar>;
281
+
278
282
  export declare const CuemathLogo: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
279
283
 
280
284
  export declare const CueRocket: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -1356,6 +1360,30 @@ export declare interface IHomepageStartJourneyProps {
1356
1360
  userType: TUserTypes;
1357
1361
  }
1358
1362
 
1363
+ declare interface IHomeWorkControllerProps {
1364
+ width: number;
1365
+ hwRequests?: IHomeWorkHelpRequestModel[];
1366
+ onMarkAsResolved?: (homeworkId: string) => void;
1367
+ onSendImageToChat?: (homeworkId: string, snapshot: Blob, onSuccess: () => void) => void;
1368
+ }
1369
+
1370
+ export declare interface IHomeWorkHelpRequestModel {
1371
+ channel_id: string;
1372
+ created_on_ts: number;
1373
+ homework_id: string;
1374
+ id: string;
1375
+ message_timestamp: string;
1376
+ problem_description: string;
1377
+ problem_image_urls: string[];
1378
+ state: string;
1379
+ student_id: string;
1380
+ teacher_id: string;
1381
+ }
1382
+
1383
+ declare interface IHomeWorkHelpRequestModelWithStudentName extends IHomeWorkHelpRequestModel {
1384
+ student_name: string;
1385
+ }
1386
+
1359
1387
  declare interface IIconButtonProps extends Omit<IButtonProps, 'label' | 'shape' | 'widthX' | 'width' | 'iconPosition' | 'alignSelf' | 'analyticsLabel' | 'renderAs'>, Required<Pick<IClickableAnalyticsProps, 'analyticsLabel'>> {
1360
1388
  Icon: React.FC<React.SVGProps<SVGSVGElement>>;
1361
1389
  customBgColor?: TColorNames;
@@ -2793,6 +2821,11 @@ declare interface ISheetsListProps extends ISheetItemCallbackProps {
2793
2821
  section?: TSheetsSection;
2794
2822
  }
2795
2823
 
2824
+ declare interface ISidebar {
2825
+ grade?: string;
2826
+ hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];
2827
+ }
2828
+
2796
2829
  export declare interface ISignUpProps {
2797
2830
  circleOnLeapSignedUp: boolean;
2798
2831
  circleOnLeapPremiumEnabled: boolean;