@cuemath/leap 3.0.32 → 3.1.0-aa1

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 (106) 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/check.js +3 -3
  4. package/dist/assets/line-icons/icons/check.js.map +1 -1
  5. package/dist/assets/line-icons/icons/puzzle-icon.js +51 -0
  6. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -0
  7. package/dist/assets/line-icons/icons/share.js +48 -0
  8. package/dist/assets/line-icons/icons/share.js.map +1 -0
  9. package/dist/assets/line-icons/icons/tile.js +54 -0
  10. package/dist/assets/line-icons/icons/tile.js.map +1 -0
  11. package/dist/features/cue-canvas/bottombar/homework-controls.js +73 -0
  12. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -0
  13. package/dist/features/cue-canvas/cue-canvas-context.js +8 -5
  14. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  15. package/dist/features/cue-canvas/cue-canvas-core.js +68 -70
  16. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  17. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  18. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  19. package/dist/features/cue-canvas/cue-canvas-provider.js +14 -12
  20. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  21. package/dist/features/cue-canvas/cue-canvas.js +86 -66
  22. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  23. package/dist/features/cue-canvas/cue-cavas-styled.js +45 -42
  24. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  25. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +61 -54
  26. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  27. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +18 -14
  28. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  29. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  30. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  31. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  32. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  33. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  34. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  35. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +68 -0
  36. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  37. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  38. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  39. package/dist/features/cue-canvas/sidebar/homework/homework.js +39 -0
  40. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  41. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  42. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  43. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  44. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  45. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  46. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  47. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  48. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  49. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  50. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  51. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  52. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  53. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  54. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  55. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  56. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  57. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  58. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  59. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  60. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  61. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  62. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  63. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  64. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  65. package/dist/features/cue-canvas/sidebar/sidebar.js +29 -0
  66. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  67. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  68. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  69. package/dist/features/cue-canvas/toolbar/grid-menu.js +13 -13
  70. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
  71. package/dist/features/cue-canvas/toolbar/tool.js +22 -20
  72. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  73. package/dist/features/homework/styles.js +4 -5
  74. package/dist/features/homework/styles.js.map +1 -1
  75. package/dist/features/hooks/use-debounce.js +16 -0
  76. package/dist/features/hooks/use-debounce.js.map +1 -0
  77. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +36 -38
  78. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  79. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +22 -24
  80. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  81. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +22 -23
  82. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  83. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +47 -49
  84. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  85. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +87 -94
  86. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  87. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +12 -13
  88. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  89. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +21 -23
  90. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  91. package/dist/features/milestone/create/milestone-create-helpers.js +162 -165
  92. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  93. package/dist/features/trial-session/comps/pricing/pricing.js +35 -36
  94. package/dist/features/trial-session/comps/pricing/pricing.js.map +1 -1
  95. package/dist/features/ui/stepper/stepper.js +7 -7
  96. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  97. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  98. package/dist/index.d.ts +48 -4
  99. package/dist/index.js +184 -180
  100. package/dist/index.js.map +1 -1
  101. package/package.json +3 -2
  102. package/dist/features/trial-session/comps/pricing/india-pricing/index.js +0 -96
  103. package/dist/features/trial-session/comps/pricing/india-pricing/index.js.map +0 -1
  104. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js +0 -59
  105. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js.map +0 -1
  106. package/dist/static/ellipse-clip.dfb25608.svg +0 -1
@@ -1,38 +1,37 @@
1
1
  import { jsx as r, jsxs as a } from "react/jsx-runtime";
2
- import { memo as x, useCallback as I, useEffect as l } from "react";
2
+ import { memo as P, useCallback as x, useEffect as m } from "react";
3
3
  import { ILLUSTRATIONS as T } from "../../../../assets/illustrations/illustrations.js";
4
- import y from "../../../ui/error/error.js";
5
- import v from "../../../ui/image/image.js";
4
+ import v from "../../../ui/error/error.js";
5
+ import y from "../../../ui/image/image.js";
6
6
  import C from "../../../ui/layout/flex-view.js";
7
- import L from "../../../ui/loader/app-loader/app-loader.js";
7
+ import I from "../../../ui/loader/app-loader/app-loader.js";
8
8
  import d from "../../../ui/separator/separator.js";
9
- import S from "../../../ui/text/text.js";
10
- import { useGetTrialPricing as $ } from "../../api/trial-pricing.js";
11
- import { useTrialSessionContext as w } from "../../context/use-trial-session-context.js";
12
- import A from "../slide-header/index.js";
13
- import b from "./india-pricing/index.js";
14
- import D from "./pricing-cards.js";
15
- import { Container as E, PricingWrapper as W, PolicyWrapper as _, RefundImageWrapper as N } from "./pricing-styled.js";
16
- const M = x(() => {
17
- const { isTeacher: f, studentId: i, updateButtonState: s } = w(), {
9
+ import L from "../../../ui/text/text.js";
10
+ import { useGetTrialPricing as S } from "../../api/trial-pricing.js";
11
+ import { useTrialSessionContext as $ } from "../../context/use-trial-session-context.js";
12
+ import w from "../slide-header/index.js";
13
+ import A from "./pricing-cards.js";
14
+ import { Container as b, PricingWrapper as D, PolicyWrapper as E, RefundImageWrapper as W } from "./pricing-styled.js";
15
+ const z = P(() => {
16
+ const { isTeacher: f, studentId: i, updateButtonState: s } = $(), {
18
17
  data: g,
19
18
  get: p,
20
- isProcessed: t,
21
- isProcessing: o,
19
+ isProcessed: e,
20
+ isProcessing: t,
22
21
  isProcessingFailed: h
23
- } = $("trial-v3-pricing", {
22
+ } = S("trial-v3-pricing", {
24
23
  student_id: i
25
- }), { plans: e, intent_level: c, country: u } = g || {}, n = I(() => {
26
- i && !t && p("trial-v3-pricing", { student_id: i });
27
- }, [p, t, i]);
28
- return l(() => {
24
+ }), { plans: o, intent_level: c } = g || {}, n = x(() => {
25
+ i && !e && p("trial-v3-pricing", { student_id: i });
26
+ }, [p, e, i]);
27
+ return m(() => {
29
28
  n();
30
- }, [n]), l(() => {
31
- s("right", { isDisabled: o, isLoading: !1 });
32
- }, [o, f, s]), o ? /* @__PURE__ */ r(L, { height: "100vh" }) : h ? /* @__PURE__ */ r(y, { height: "100vh", onTryAgain: n }) : t ? /* @__PURE__ */ a(E, { children: [
29
+ }, [n]), m(() => {
30
+ s("right", { isDisabled: t, isLoading: !1 });
31
+ }, [t, f, s]), t ? /* @__PURE__ */ r(I, { height: "100vh" }) : h ? /* @__PURE__ */ r(v, { height: "100vh", onTryAgain: n }) : e ? /* @__PURE__ */ a(b, { children: [
33
32
  /* @__PURE__ */ r(d, { height: 60 }),
34
- /* @__PURE__ */ r(A, { marginBottom: 38 }),
35
- /* @__PURE__ */ a(W, { children: [
33
+ /* @__PURE__ */ r(w, { marginBottom: 38 }),
34
+ /* @__PURE__ */ a(D, { children: [
36
35
  /* @__PURE__ */ r(
37
36
  C,
38
37
  {
@@ -41,22 +40,22 @@ const M = x(() => {
41
40
  $justifyContent: "space-between",
42
41
  $flexGap: 20,
43
42
  $flexWrap: !0,
44
- children: e && Array.isArray(e) && (u === "IN" ? /* @__PURE__ */ r(b, { plans: e }) : c && e.map((P, m) => /* @__PURE__ */ r(
45
- D,
43
+ children: c && o && Array.isArray(o) && o.map((u, l) => /* @__PURE__ */ r(
44
+ A,
46
45
  {
47
- colorIndex: m,
46
+ colorIndex: l,
48
47
  intentType: c,
49
- pricingConfig: P
48
+ pricingConfig: u
50
49
  },
51
- m
52
- )))
50
+ l
51
+ ))
53
52
  }
54
53
  ),
55
54
  /* @__PURE__ */ r(d, { height: 50 }),
56
- /* @__PURE__ */ a(_, { children: [
57
- /* @__PURE__ */ r(S, { $renderAs: "ab1-bold", $color: "GREEN_6", children: "We have a no-questions-asked refund policy" }),
58
- /* @__PURE__ */ r(N, { children: /* @__PURE__ */ r(
59
- v,
55
+ /* @__PURE__ */ a(E, { children: [
56
+ /* @__PURE__ */ r(L, { $renderAs: "ab1-bold", $color: "GREEN_6", children: "We have a no-questions-asked refund policy" }),
57
+ /* @__PURE__ */ r(W, { children: /* @__PURE__ */ r(
58
+ y,
60
59
  {
61
60
  src: T.REFUND_POLICY,
62
61
  width: 168,
@@ -69,6 +68,6 @@ const M = x(() => {
69
68
  ] }) : null;
70
69
  });
71
70
  export {
72
- M as default
71
+ z as default
73
72
  };
74
73
  //# sourceMappingURL=pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sources":["../../../../../src/features/trial-session/comps/pricing/pricing.tsx"],"sourcesContent":["import { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetTrialPricing } from '../../api/trial-pricing';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport PricingIndia from './india-pricing';\nimport PricingCards from './pricing-cards';\nimport * as Styled from './pricing-styled';\n\nconst SessionPricing = memo(() => {\n const { isTeacher, studentId, updateButtonState } = useTrialSessionContext();\n\n const {\n data: pricingData,\n get: getTrialPricing,\n isProcessed,\n isProcessing,\n isProcessingFailed,\n } = useGetTrialPricing('trial-v3-pricing', {\n student_id: studentId,\n });\n\n const { plans: pricingPlans, intent_level: intentLevel, country } = pricingData || {};\n const fetchData = useCallback(() => {\n if (studentId && !isProcessed) {\n getTrialPricing('trial-v3-pricing', { student_id: studentId });\n }\n }, [getTrialPricing, isProcessed, studentId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, isTeacher, updateButtonState]);\n\n if (isProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error height=\"100vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessed) {\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={38} />\n <Styled.PricingWrapper>\n <FlexView\n $width=\"100%\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $flexGap={20}\n $flexWrap\n >\n {pricingPlans &&\n Array.isArray(pricingPlans) &&\n (country === 'IN' ? (\n <PricingIndia plans={pricingPlans} />\n ) : (\n intentLevel &&\n pricingPlans.map((pricing, index) => {\n return (\n <PricingCards\n key={index}\n colorIndex={index}\n intentType={intentLevel}\n pricingConfig={pricing}\n />\n );\n })\n ))}\n </FlexView>\n <Separator height={50} />\n <Styled.PolicyWrapper>\n <Text $renderAs=\"ab1-bold\" $color=\"GREEN_6\">\n We have a no-questions-asked refund policy\n </Text>\n <Styled.RefundImageWrapper>\n <Image\n src={ILLUSTRATIONS.REFUND_POLICY}\n width={168}\n height={100}\n withLoader={false}\n />\n </Styled.RefundImageWrapper>\n </Styled.PolicyWrapper>\n </Styled.PricingWrapper>\n </Styled.Container>\n );\n }\n\n return null;\n});\n\nexport default SessionPricing;\n"],"names":["SessionPricing","memo","isTeacher","studentId","updateButtonState","useTrialSessionContext","pricingData","getTrialPricing","isProcessed","isProcessing","isProcessingFailed","useGetTrialPricing","pricingPlans","intentLevel","country","fetchData","useCallback","useEffect","jsx","AppLoader","Error","jsxs","Styled.Container","Separator","SlideHeader","Styled.PricingWrapper","FlexView","PricingIndia","pricing","index","PricingCards","Styled.PolicyWrapper","Text","Styled.RefundImageWrapper","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;;;;;;;;AAgBM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,WAAAC,GAAW,WAAAC,GAAW,mBAAAC,MAAsBC,EAAuB,GAErE;AAAA,IACJ,MAAMC;AAAA,IACN,KAAKC;AAAA,IACL,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEC,EAAmB,oBAAoB;AAAA,IACzC,YAAYR;AAAA,EAAA,CACb,GAEK,EAAE,OAAOS,GAAc,cAAcC,GAAa,SAAAC,EAAQ,IAAIR,KAAe,IAC7ES,IAAYC,EAAY,MAAM;AAC9B,IAAAb,KAAa,CAACK,KAChBD,EAAgB,oBAAoB,EAAE,YAAYJ,EAAW,CAAA;AAAA,EAE9D,GAAA,CAACI,GAAiBC,GAAaL,CAAS,CAAC;AAU5C,SARAc,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEdE,EAAU,MAAM;AACd,IAAAb,EAAkB,SAAS,EAAE,YAAYK,GAAc,WAAW,IAAO;AAAA,EACxE,GAAA,CAACA,GAAcP,GAAWE,CAAiB,CAAC,GAE3CK,IACK,gBAAAS,EAACC,GAAU,EAAA,QAAO,QAAQ,CAAA,IAG/BT,IACM,gBAAAQ,EAAAE,GAAA,EAAM,QAAO,SAAQ,YAAYL,EAAW,CAAA,IAGlDP,IAEA,gBAAAa,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAL,EAACM,GAAY,EAAA,cAAc,GAAI,CAAA;AAAA,IAC/B,gBAAAH,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,QAAO;AAAA,UACP,gBAAe;AAAA,UACf,iBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,WAAS;AAAA,UAER,eACC,MAAM,QAAQd,CAAY,MACzBE,MAAY,OACX,gBAAAI,EAACS,GAAa,EAAA,OAAOf,EAAc,CAAA,IAEnCC,KACAD,EAAa,IAAI,CAACgB,GAASC,MAEvB,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cAEC,YAAYD;AAAA,cACZ,YAAYhB;AAAA,cACZ,eAAee;AAAA,YAAA;AAAA,YAHVC;AAAA,UAAA,CAMV;AAAA,QAAA;AAAA,MAEP;AAAA,MACA,gBAAAX,EAACK,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,MACvB,gBAAAF,EAACU,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAb,EAACc,GAAK,EAAA,WAAU,YAAW,QAAO,WAAU,UAE5C,8CAAA;AAAA,QACA,gBAAAd,EAACe,GAAA,EACC,UAAA,gBAAAf;AAAA,UAACgB;AAAA,UAAA;AAAA,YACC,KAAKC,EAAc;AAAA,YACnB,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA,IAIG;AACT,CAAC;"}
1
+ {"version":3,"file":"pricing.js","sources":["../../../../../src/features/trial-session/comps/pricing/pricing.tsx"],"sourcesContent":["import { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetTrialPricing } from '../../api/trial-pricing';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport PricingCards from './pricing-cards';\nimport * as Styled from './pricing-styled';\n\nconst SessionPricing = memo(() => {\n const { isTeacher, studentId, updateButtonState } = useTrialSessionContext();\n\n const {\n data: pricingData,\n get: getTrialPricing,\n isProcessed,\n isProcessing,\n isProcessingFailed,\n } = useGetTrialPricing('trial-v3-pricing', {\n student_id: studentId,\n });\n\n const { plans: pricingPlans, intent_level: intentLevel } = pricingData || {};\n const fetchData = useCallback(() => {\n if (studentId && !isProcessed) {\n getTrialPricing('trial-v3-pricing', { student_id: studentId });\n }\n }, [getTrialPricing, isProcessed, studentId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, isTeacher, updateButtonState]);\n\n if (isProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error height=\"100vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessed) {\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={38} />\n <Styled.PricingWrapper>\n <FlexView\n $width=\"100%\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $flexGap={20}\n $flexWrap\n >\n {intentLevel &&\n pricingPlans &&\n Array.isArray(pricingPlans) &&\n pricingPlans.map((pricing, index) => {\n return (\n <PricingCards\n key={index}\n colorIndex={index}\n intentType={intentLevel}\n pricingConfig={pricing}\n />\n );\n })}\n </FlexView>\n <Separator height={50} />\n <Styled.PolicyWrapper>\n <Text $renderAs=\"ab1-bold\" $color=\"GREEN_6\">\n We have a no-questions-asked refund policy\n </Text>\n <Styled.RefundImageWrapper>\n <Image\n src={ILLUSTRATIONS.REFUND_POLICY}\n width={168}\n height={100}\n withLoader={false}\n />\n </Styled.RefundImageWrapper>\n </Styled.PolicyWrapper>\n </Styled.PricingWrapper>\n </Styled.Container>\n );\n }\n\n return null;\n});\n\nexport default SessionPricing;\n"],"names":["SessionPricing","memo","isTeacher","studentId","updateButtonState","useTrialSessionContext","pricingData","getTrialPricing","isProcessed","isProcessing","isProcessingFailed","useGetTrialPricing","pricingPlans","intentLevel","fetchData","useCallback","useEffect","jsx","AppLoader","Error","jsxs","Styled.Container","Separator","SlideHeader","Styled.PricingWrapper","FlexView","pricing","index","PricingCards","Styled.PolicyWrapper","Text","Styled.RefundImageWrapper","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;;;;;;;AAeM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,WAAAC,GAAW,WAAAC,GAAW,mBAAAC,MAAsBC,EAAuB,GAErE;AAAA,IACJ,MAAMC;AAAA,IACN,KAAKC;AAAA,IACL,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEC,EAAmB,oBAAoB;AAAA,IACzC,YAAYR;AAAA,EAAA,CACb,GAEK,EAAE,OAAOS,GAAc,cAAcC,EAAY,IAAIP,KAAe,IACpEQ,IAAYC,EAAY,MAAM;AAC9B,IAAAZ,KAAa,CAACK,KAChBD,EAAgB,oBAAoB,EAAE,YAAYJ,EAAW,CAAA;AAAA,EAE9D,GAAA,CAACI,GAAiBC,GAAaL,CAAS,CAAC;AAU5C,SARAa,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEdE,EAAU,MAAM;AACd,IAAAZ,EAAkB,SAAS,EAAE,YAAYK,GAAc,WAAW,IAAO;AAAA,EACxE,GAAA,CAACA,GAAcP,GAAWE,CAAiB,CAAC,GAE3CK,IACK,gBAAAQ,EAACC,GAAU,EAAA,QAAO,QAAQ,CAAA,IAG/BR,IACM,gBAAAO,EAAAE,GAAA,EAAM,QAAO,SAAQ,YAAYL,EAAW,CAAA,IAGlDN,IAEA,gBAAAY,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAL,EAACM,GAAY,EAAA,cAAc,GAAI,CAAA;AAAA,IAC/B,gBAAAH,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,QAAO;AAAA,UACP,gBAAe;AAAA,UACf,iBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,WAAS;AAAA,UAER,UAAAZ,KACCD,KACA,MAAM,QAAQA,CAAY,KAC1BA,EAAa,IAAI,CAACc,GAASC,MAEvB,gBAAAV;AAAA,YAACW;AAAA,YAAA;AAAA,cAEC,YAAYD;AAAA,cACZ,YAAYd;AAAA,cACZ,eAAea;AAAA,YAAA;AAAA,YAHVC;AAAA,UAAA,CAMV;AAAA,QAAA;AAAA,MACL;AAAA,MACA,gBAAAV,EAACK,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,MACvB,gBAAAF,EAACS,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAZ,EAACa,GAAK,EAAA,WAAU,YAAW,QAAO,WAAU,UAE5C,8CAAA;AAAA,QACA,gBAAAb,EAACc,GAAA,EACC,UAAA,gBAAAd;AAAA,UAACe;AAAA,UAAA;AAAA,YACC,KAAKC,EAAc;AAAA,YACnB,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA,IAIG;AACT,CAAC;"}
@@ -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
@@ -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
@@ -295,10 +295,14 @@ export declare const CueCanvas: React.FC<ICueCanvas>;
295
295
 
296
296
  export declare const CueCanvasController: React_2.FC<IToolbarProps>;
297
297
 
298
+ export declare const CueCanvasHomeworkController: NamedExoticComponent<IHomeWorkControllerProps>;
299
+
298
300
  export declare const CueCanvasProvider: FC<PropsWithChildren<{
299
301
  userType: TUserTypes;
300
302
  }>>;
301
303
 
304
+ export declare const CueCanvasSideBar: NamedExoticComponent<ISidebar>;
305
+
302
306
  export declare const CuemathLogo: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
303
307
 
304
308
  export declare const CueRocket: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -799,6 +803,11 @@ declare interface ICalloutProps {
799
803
  marginBottomX: number;
800
804
  }
801
805
 
806
+ declare interface ICanvasUpdateConfig {
807
+ dimesion?: IViewport;
808
+ gridName?: TCueCanvasGridName;
809
+ }
810
+
802
811
  declare interface ICascadeSelectValue {
803
812
  variant: string;
804
813
  detail: string;
@@ -1204,6 +1213,8 @@ declare interface ICueCanvas {
1204
1213
  onUpdateHeight?: TUpdateHeight;
1205
1214
  onPublish?: TPublish;
1206
1215
  onSubscribe?: TSubscribe;
1216
+ canvasConfig?: ICanvasUpdateConfig | null;
1217
+ updateCanvasConfig?: TUpdateCanvasConfig;
1207
1218
  }
1208
1219
 
1209
1220
  declare interface ICueCanvasCallbackProps {
@@ -1451,7 +1462,6 @@ declare interface IGoalCurriculumMap {
1451
1462
  program_code: string;
1452
1463
  program_name: string;
1453
1464
  program_id: string;
1454
- is_live: boolean;
1455
1465
  }
1456
1466
 
1457
1467
  declare interface IGooglePlaceOption extends google.maps.places.AutocompletePrediction, ISelectOption<string> {
@@ -1479,6 +1489,30 @@ export declare interface IHomepageStartJourneyProps {
1479
1489
  userType: TUserTypes;
1480
1490
  }
1481
1491
 
1492
+ declare interface IHomeWorkControllerProps {
1493
+ width: number;
1494
+ hwRequests?: IHomeWorkHelpRequestModel[];
1495
+ onMarkAsResolved?: (homeworkId: string, onSuccess: () => void) => void;
1496
+ onSendImageToChat?: (homeworkId: string, snapshot: Blob[], onSuccess: () => void) => void;
1497
+ }
1498
+
1499
+ export declare interface IHomeWorkHelpRequestModel {
1500
+ channel_id: string;
1501
+ created_on_ts: number;
1502
+ homework_id: string;
1503
+ id: string;
1504
+ message_timestamp: string;
1505
+ problem_description: string;
1506
+ problem_image_urls: string[];
1507
+ state: string;
1508
+ student_id: string;
1509
+ teacher_id: string;
1510
+ }
1511
+
1512
+ declare interface IHomeWorkHelpRequestModelWithStudentName extends IHomeWorkHelpRequestModel {
1513
+ student_name: string;
1514
+ }
1515
+
1482
1516
  declare interface IIconButtonProps extends Omit<IButtonProps, 'label' | 'shape' | 'widthX' | 'width' | 'iconPosition' | 'alignSelf' | 'analyticsLabel' | 'renderAs'>, Required<Pick<IClickableAnalyticsProps, 'analyticsLabel'>> {
1483
1517
  Icon: React.FC<React.SVGProps<SVGSVGElement>>;
1484
1518
  customBgColor?: TColorNames;
@@ -1909,7 +1943,6 @@ export declare const ILLUSTRATIONS: {
1909
1943
  DURATION_60MIN_GRAY: string;
1910
1944
  DURATION_90MIN_GRAY: string;
1911
1945
  EARTH_GREEN: string;
1912
- ELLIPSE_CLIP: string;
1913
1946
  FEMALE_AVATAR: string;
1914
1947
  GAME_PLAY: string;
1915
1948
  GLOBE_WITH_BLUE_FILL: string;
@@ -2973,6 +3006,11 @@ declare interface ISheetsListProps extends ISheetItemCallbackProps {
2973
3006
  section?: TSheetsSection;
2974
3007
  }
2975
3008
 
3009
+ declare interface ISidebar {
3010
+ grade?: string;
3011
+ hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];
3012
+ }
3013
+
2976
3014
  declare interface ISignupMethodsProps {
2977
3015
  onEmailSignup: () => void;
2978
3016
  onPhoneSignup: () => void;
@@ -3341,6 +3379,8 @@ declare interface ITile {
3341
3379
  toPort?: string;
3342
3380
  toTileId: string;
3343
3381
  }[];
3382
+ html?: string;
3383
+ width?: number | string;
3344
3384
  }
3345
3385
 
3346
3386
  declare interface ITimeLeftTimelineProps {
@@ -5571,6 +5611,8 @@ export declare type TTrialSessionMessage = {
5571
5611
  };
5572
5612
  };
5573
5613
 
5614
+ declare type TUpdateCanvasConfig = (data: ICanvasUpdateConfig) => void;
5615
+
5574
5616
  declare type TUpdateHeight = (height: number) => void;
5575
5617
 
5576
5618
  declare type TUserAccount = {
@@ -5622,12 +5664,14 @@ export declare const UpIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5622
5664
 
5623
5665
  export declare const useAutoPlayPermission: () => IAutoPlayPermissionContextType;
5624
5666
 
5625
- export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>) => {
5626
- publishStrokes: ((message: unknown) => boolean) | undefined;
5667
+ export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>, type?: TRenderAs_2) => {
5668
+ publishStrokes: ((message: IPublishData) => boolean) | undefined;
5627
5669
  channelStatus: ChannelStatus | undefined;
5628
5670
  closeChannel: () => void;
5629
5671
  initialStrokesData: Record<string, IActionData[]>;
5630
5672
  registerCallback: (qrId: string, cb: (data: IActionData) => void) => void;
5673
+ setChannelMetadata: ((metadata: ICanvasUpdateConfig, merge?: boolean) => void) | undefined;
5674
+ channelMetadata: ICanvasUpdateConfig | null | undefined;
5631
5675
  };
5632
5676
 
5633
5677
  export declare const useChapterPageJourney: () => {