@cuemath/leap 3.0.10-aa0 → 3.0.10-aa11

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 (66) 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-core.js +38 -40
  12. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  13. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  14. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  15. package/dist/features/cue-canvas/cue-canvas.js +53 -52
  16. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  17. package/dist/features/cue-canvas/cue-cavas-styled.js +29 -29
  18. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  19. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  20. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  21. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  22. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  23. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  24. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +61 -0
  25. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  26. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  27. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  28. package/dist/features/cue-canvas/sidebar/homework/homework.js +32 -0
  29. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  30. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  31. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  32. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  33. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  34. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  35. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  36. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  37. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  38. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  39. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  40. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  41. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  42. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  43. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  44. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  45. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  46. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  47. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  48. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  49. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  50. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  51. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  52. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  53. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  54. package/dist/features/cue-canvas/sidebar/sidebar.js +33 -0
  55. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  56. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  57. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  58. package/dist/features/hooks/use-debounce.js +16 -0
  59. package/dist/features/hooks/use-debounce.js.map +1 -0
  60. package/dist/features/ui/stepper/stepper.js +7 -7
  61. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  62. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  63. package/dist/index.d.ts +34 -0
  64. package/dist/index.js +186 -182
  65. package/dist/index.js.map +1 -1
  66. package/package.json +1 -1
@@ -1,33 +1,36 @@
1
- import { useEffect as g, useCallback as w } from "react";
2
- import { useAwsSignedKey as S } from "../api/subjective-review.js";
3
- import h from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
- const A = (c) => {
5
- const { studentId: t, query: o } = c, { data: a, get: s } = S();
6
- return g(() => {
7
- s(t, o);
8
- }, [o, s, t]), w(
9
- async ({ images: d, onSuccess: i, onError: l, fileKey: u, fileName: m }) => {
1
+ import { useRef as h, useEffect as f, useCallback as k } from "react";
2
+ import { useAwsSignedKey as I } from "../api/subjective-review.js";
3
+ import S from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
+ const C = (y) => {
5
+ const { studentId: t, query: o, enabled: r = !0 } = y, { data: s, get: d } = I(), c = h(s);
6
+ return f(() => {
7
+ c.current = s;
8
+ }, [s]), f(() => {
9
+ r && t && d(t, o);
10
+ }, [o, d, t, r]), k(
11
+ async ({ images: g, onSuccess: n, onError: p, fileKey: w, fileName: K }) => {
12
+ const a = c.current;
10
13
  if (!a) return;
11
- const r = `https://${a.bucketName}.s3.amazonaws.com/`;
14
+ const i = `https://${a.bucketName}.s3.amazonaws.com/`;
12
15
  try {
13
- const n = d.map(async (f) => {
14
- const e = new FormData(), p = `${u}${m ?? h()}`;
15
- if (e.append("key", p), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", f.file), !(await fetch(r, {
16
+ const l = g.map(async (b) => {
17
+ const e = new FormData(), m = `${w}${K ?? S()}`;
18
+ if (e.append("key", m), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", b.file), !(await fetch(i, {
16
19
  method: "POST",
17
20
  body: e
18
21
  })).ok)
19
22
  throw new Error("Upload failed");
20
- return `${r}${p}`;
21
- }), y = await Promise.all(n);
22
- i(y);
23
+ return `${i}${m}`;
24
+ }), u = await Promise.all(l);
25
+ return n == null || n(u), u;
23
26
  } catch {
24
- l();
27
+ p == null || p();
25
28
  }
26
29
  },
27
- [a]
30
+ []
28
31
  );
29
32
  };
30
33
  export {
31
- A as default
34
+ C as default
32
35
  };
33
36
  //# sourceMappingURL=use-s3-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helper {\n (params: {\n studentId: string;\n query: {\n type: string;\n };\n }): (props: IUploadImageProps) => void;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess: (urls: string[]) => void;\n onError: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper: IUseS3helper = props => {\n const { studentId, query } = props;\n const { data: awsSignedKey, get: getAwsSignedKey } = useAwsSignedKey();\n\n useEffect(() => {\n getAwsSignedKey(studentId, query);\n }, [query, getAwsSignedKey, studentId]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess(uploadedUrls);\n } catch (error) {\n onError();\n }\n },\n [awsSignedKey],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","awsSignedKey","getAwsSignedKey","useAwsSignedKey","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAwBA,MAAMA,IAAuC,CAASC,MAAA;AAC9C,QAAA,EAAE,WAAAC,GAAW,OAAAC,EAAU,IAAAF,GACvB,EAAE,MAAMG,GAAc,KAAKC,EAAA,IAAoBC;AAErD,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAgBH,GAAWC,CAAK;AAAA,EAC/B,GAAA,CAACA,GAAOE,GAAiBH,CAAS,CAAC,GAEbM;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,UAAI,CAACT,EAAc;AAEb,YAAAU,IAAM,WAAWV,EAAa,UAAU;AAE1C,UAAA;AACF,cAAMW,IAAiBN,EAAO,IAAI,OAAOO,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGN,CAAO,GAAGC,KAAYM,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBb,EAAa,MAAM,GAC5Ca,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUb,EAAa,MAAM,GACpCa,EAAA,OAAO,aAAab,EAAa,SAAS,GAC1Ca,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,QAAAL,EAAUU,CAAY;AAAA,cACR;AACN,QAAAT;MACV;AAAA,IACF;AAAA,IACA,CAACP,CAAY;AAAA,EAAA;AAIjB;"}
1
+ {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helperProps {\n studentId: string;\n query: {\n type: string;\n };\n enabled?: boolean;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess?: (urls: string[]) => void;\n onError?: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper = (props: IUseS3helperProps) => {\n const { studentId, query, enabled = true } = props;\n const { data, get: getAwsSignedKey } = useAwsSignedKey();\n const awsSignedKeyRef = useRef(data);\n\n useEffect(() => {\n awsSignedKeyRef.current = data;\n }, [data]);\n\n useEffect(() => {\n if (enabled && studentId) {\n getAwsSignedKey(studentId, query);\n }\n }, [query, getAwsSignedKey, studentId, enabled]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n const awsSignedKey = awsSignedKeyRef.current;\n\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess?.(uploadedUrls);\n\n return uploadedUrls;\n } catch (error) {\n onError?.();\n }\n },\n [],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","enabled","data","getAwsSignedKey","useAwsSignedKey","awsSignedKeyRef","useRef","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","awsSignedKey","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAuBM,MAAAA,IAAyB,CAACC,MAA6B;AAC3D,QAAM,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,IAAU,OAASH,GACvC,EAAE,MAAAI,GAAM,KAAKC,MAAoBC,EAAgB,GACjDC,IAAkBC,EAAOJ,CAAI;AAEnC,SAAAK,EAAU,MAAM;AACd,IAAAF,EAAgB,UAAUH;AAAA,EAAA,GACzB,CAACA,CAAI,CAAC,GAETK,EAAU,MAAM;AACd,IAAIN,KAAWF,KACbI,EAAgBJ,GAAWC,CAAK;AAAA,KAEjC,CAACA,GAAOG,GAAiBJ,GAAWE,CAAO,CAAC,GAEtBO;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,YAAMC,IAAeT,EAAgB;AAErC,UAAI,CAACS,EAAc;AAEb,YAAAC,IAAM,WAAWD,EAAa,UAAU;AAE1C,UAAA;AACF,cAAME,IAAiBP,EAAO,IAAI,OAAOQ,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGP,CAAO,GAAGC,KAAYO,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBJ,EAAa,MAAM,GAC5CI,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUJ,EAAa,MAAM,GACpCI,EAAA,OAAO,aAAaJ,EAAa,SAAS,GAC1CI,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,eAAAN,KAAA,QAAAA,EAAYW,IAELA;AAAA,cACO;AACJ,QAAAV,KAAA,QAAAA;AAAA,MACZ;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EAAA;AAIL;"}
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, onSuccess: () => void) => 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;
@@ -3119,6 +3152,7 @@ declare interface ITile {
3119
3152
  toTileId: string;
3120
3153
  }[];
3121
3154
  html?: string;
3155
+ width?: number | string;
3122
3156
  }
3123
3157
 
3124
3158
  declare interface ITimeLeftTimelineProps {