@cuemath/leap 3.2.33 → 3.2.34-mb

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/gif/gif.js +1 -4
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +0 -17
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/lottie/lottie.js +0 -3
  6. package/dist/assets/lottie/lottie.js.map +1 -1
  7. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +1 -1
  8. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -1
  9. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +22 -22
  10. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
  11. package/dist/features/auth/comps/pill-button/pill-button-styled.js +11 -12
  12. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -1
  13. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +4 -11
  14. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -1
  15. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +17 -17
  16. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
  17. package/dist/features/auth/pla-signup/signup-options/signup-options.js +1 -1
  18. package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
  19. package/dist/features/stickers/sticker-data.js +234 -0
  20. package/dist/features/stickers/sticker-data.js.map +1 -0
  21. package/dist/features/stickers/sticker-selector/sticker-selector-grid.js +39 -0
  22. package/dist/features/stickers/sticker-selector/sticker-selector-grid.js.map +1 -0
  23. package/dist/features/{ui/sticker-grid/sticker-grid-styles.js → stickers/sticker-selector/sticker-selector-styles.js} +23 -31
  24. package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +1 -0
  25. package/dist/features/stickers/sticker-selector/sticker-selector.js +88 -0
  26. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -0
  27. package/dist/features/stickers/sticker-selector/sticker.js +60 -0
  28. package/dist/features/stickers/sticker-selector/sticker.js.map +1 -0
  29. package/dist/features/stickers/stickers-effects/effects.js +82 -0
  30. package/dist/features/stickers/stickers-effects/effects.js.map +1 -0
  31. package/dist/features/stickers/stickers-effects/stickers-cache.js +19 -0
  32. package/dist/features/stickers/stickers-effects/stickers-cache.js.map +1 -0
  33. package/dist/features/stickers/stickers-effects/stickers-effects-helper.js +105 -0
  34. package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +1 -0
  35. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js +37 -0
  36. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -0
  37. package/dist/features/stickers/stickers-effects/stickers-effects.js +67 -0
  38. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -0
  39. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +8 -3
  40. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
  41. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +40 -40
  42. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  43. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +88 -75
  44. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -1
  45. package/dist/features/ui/drawer/drawer-styled.js +2 -4
  46. package/dist/features/ui/drawer/drawer-styled.js.map +1 -1
  47. package/dist/features/ui/lottie-animation/lottie-animation.js +36 -31
  48. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  49. package/dist/features/ui/modals/modal-styled.js +48 -15
  50. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  51. package/dist/features/ui/modals/modal.js +43 -35
  52. package/dist/features/ui/modals/modal.js.map +1 -1
  53. package/dist/index.d.ts +85 -57
  54. package/dist/index.js +343 -341
  55. package/dist/index.js.map +1 -1
  56. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  57. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  58. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  59. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  60. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  61. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  62. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  63. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  64. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  65. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  66. package/package.json +1 -1
  67. package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +0 -1
  68. package/dist/features/ui/sticker-grid/sticker-grid.js +0 -24
  69. package/dist/features/ui/sticker-grid/sticker-grid.js.map +0 -1
  70. package/dist/features/ui/sticker-grid/sticker.js +0 -57
  71. package/dist/features/ui/sticker-grid/sticker.js.map +0 -1
  72. package/dist/features/ui/stickers/constants.js +0 -6
  73. package/dist/features/ui/stickers/constants.js.map +0 -1
  74. package/dist/features/ui/stickers/stickers-effects.js +0 -64
  75. package/dist/features/ui/stickers/stickers-effects.js.map +0 -1
  76. package/dist/features/ui/stickers/stickers-styled.js +0 -29
  77. package/dist/features/ui/stickers/stickers-styled.js.map +0 -1
  78. package/dist/features/ui/stickers/stickers-utils.js +0 -91
  79. package/dist/features/ui/stickers/stickers-utils.js.map +0 -1
  80. package/dist/features/ui/stickers/stickers.js +0 -40
  81. package/dist/features/ui/stickers/stickers.js.map +0 -1
  82. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  83. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  84. package/dist/static/arrow-board-green.11e75bca.svg +0 -1
  85. package/dist/static/book-checked-green.c275dbd9.svg +0 -1
  86. package/dist/static/book-checked-orange.53ea6880.svg +0 -1
  87. package/dist/static/book-checked-purple.df628f3e.svg +0 -1
  88. package/dist/static/calendar-check-green.ab0e24d2.svg +0 -1
  89. package/dist/static/calendar-cross-orange.8e7a23bd.svg +0 -1
  90. package/dist/static/calendar-hour-glass-orange.e99f8ffd.json +0 -1
  91. package/dist/static/equal-outlined.b705bf5d.svg +0 -1
  92. package/dist/static/handshake-green.f8d24216.svg +0 -1
  93. package/dist/static/heart-outlined.5b5415fe.svg +0 -1
  94. package/dist/static/knowledge-blue.ead536f1.svg +0 -1
  95. package/dist/static/learning-session-grid-bg.fb60e64b.gif +0 -0
  96. package/dist/static/platform-green.eb853207.svg +0 -1
  97. package/dist/static/platform-purple.ecf6fa46.svg +0 -1
  98. package/dist/static/radial-gradient-bg-2.6657c758.svg +0 -1
  99. package/dist/static/radial-gradient-bg.5ae0cde5.svg +0 -1
  100. package/dist/static/star-outlined.bde83c7c.svg +0 -1
  101. package/dist/static/student-avatar.24bc2875.svg +0 -1
  102. package/dist/static/teacher-found.0ba07d4a.json +0 -1
  103. package/dist/static/teacher-search.552c8ba2.json +0 -1
  104. package/dist/static/trophy-outlined.f946b362.svg +0 -1
  105. package/dist/static/way-forward-grid-bg.ab5d2dc6.gif +0 -0
  106. package/dist/static/your-goals-grid-bg.87fa9c60.gif +0 -0
@@ -1,55 +1,63 @@
1
- import { jsx as r, jsxs as f } from "react/jsx-runtime";
2
- import { captureException as u } from "@sentry/browser";
3
- import { memo as $, useCallback as g, Suspense as n } from "react";
4
- import { ErrorBoundary as a } from "react-error-boundary";
1
+ import { jsx as r, jsxs as g } from "react/jsx-runtime";
2
+ import { captureException as C } from "@sentry/browser";
3
+ import { memo as M, useCallback as b, Suspense as h } from "react";
4
+ import { ErrorBoundary as c } from "react-error-boundary";
5
5
  import E from "../../../assets/line-icons/icons/cross.js";
6
- import h from "../error/error.js";
7
- import M from "../buttons/clickable/clickable.js";
8
- import x from "../layout/flex-view.js";
9
- import c from "../loader/app-loader/app-loader.js";
10
- import { ModalContainer as d, BottomSheetModal as v, ModalLoaderWrapper as C, SpotlightModal as B, BaseModal as S, CloseButtonContainer as W, BaseModalContent as w } from "./modal-styled.js";
11
- const q = $(({ modal: b, isClosing: o = !1, onClose: m }) => {
12
- const { renderAs: s, element: e, modalWidth: l, isDismissable: p } = b, i = g((t) => {
13
- u(t);
14
- }, []), k = g((t) => {
15
- t.stopPropagation();
6
+ import d from "../error/error.js";
7
+ import x from "../buttons/clickable/clickable.js";
8
+ import v from "../layout/flex-view.js";
9
+ import s from "../loader/app-loader/app-loader.js";
10
+ import { ModalContainer as m, BottomSheetModal as B, ModalLoaderWrapper as k, SpotlightModal as S, TransparentModalContainer as W, BaseModal as w, CloseButtonContainer as j, BaseModalContent as y } from "./modal-styled.js";
11
+ const G = M(({ modal: $, isClosing: o = !1, onClose: p }) => {
12
+ const { renderAs: i, element: e, modalWidth: t, isDismissable: f, blocking: l = !0 } = $, n = b((a) => {
13
+ C(a);
14
+ }, []), u = b((a) => {
15
+ a.stopPropagation();
16
16
  }, []);
17
- return s === "bottom-sheet" ? /* @__PURE__ */ r(d, { $isClosing: o, onClick: p ? m : () => null, children: /* @__PURE__ */ r(v, { $isClosing: o, onClick: k, children: /* @__PURE__ */ r(
18
- a,
17
+ return i === "bottom-sheet" ? /* @__PURE__ */ r(
18
+ m,
19
19
  {
20
- fallback: /* @__PURE__ */ r(x, { $gap: 24, children: /* @__PURE__ */ r(h, { height: "100%" }) }),
21
- onError: i,
22
- children: /* @__PURE__ */ r(n, { fallback: /* @__PURE__ */ r(c, { height: "50vh" }), children: e })
20
+ $isClosing: o,
21
+ $blocking: l,
22
+ onClick: f ? p : () => null,
23
+ children: /* @__PURE__ */ r(B, { $isClosing: o, onClick: u, children: /* @__PURE__ */ r(
24
+ c,
25
+ {
26
+ fallback: /* @__PURE__ */ r(v, { $gap: 24, children: /* @__PURE__ */ r(d, { height: "100%" }) }),
27
+ onError: n,
28
+ children: /* @__PURE__ */ r(h, { fallback: /* @__PURE__ */ r(s, { height: "50vh" }), children: e })
29
+ }
30
+ ) })
23
31
  }
24
- ) }) }) : s === "spotlight" ? /* @__PURE__ */ r(d, { $isClosing: o, children: /* @__PURE__ */ r(
25
- a,
32
+ ) : i === "spotlight" ? /* @__PURE__ */ r(m, { $isClosing: o, $blocking: l, children: /* @__PURE__ */ r(
33
+ c,
26
34
  {
27
- fallback: /* @__PURE__ */ r(C, { children: /* @__PURE__ */ r(h, { height: "100vh" }) }),
28
- onError: i,
29
- children: /* @__PURE__ */ f(
30
- n,
35
+ fallback: /* @__PURE__ */ r(k, { children: /* @__PURE__ */ r(d, { height: "100vh" }) }),
36
+ onError: n,
37
+ children: /* @__PURE__ */ g(
38
+ h,
31
39
  {
32
- fallback: /* @__PURE__ */ r(C, { children: /* @__PURE__ */ r(c, { height: "100vh" }) }),
40
+ fallback: /* @__PURE__ */ r(k, { children: /* @__PURE__ */ r(s, { height: "100vh" }) }),
33
41
  children: [
34
- /* @__PURE__ */ r(B, { $isClosing: o }),
42
+ /* @__PURE__ */ r(S, { $isClosing: o }),
35
43
  e
36
44
  ]
37
45
  }
38
46
  )
39
47
  }
40
- ) }) : /* @__PURE__ */ r(d, { $isClosing: o, children: /* @__PURE__ */ f(S, { $isClosing: o, $width: l, children: [
41
- p !== !1 && /* @__PURE__ */ r(W, { $modalWidth: l, children: /* @__PURE__ */ r(M, { label: "Close", onClick: m, children: /* @__PURE__ */ r(E, { width: 40, height: 40 }) }) }),
42
- /* @__PURE__ */ r(w, { $modalWidth: l, children: /* @__PURE__ */ r(
43
- a,
48
+ ) }) : i === "fullscreen-transparent" ? /* @__PURE__ */ r(W, { $isClosing: o, $blocking: l, children: e }) : /* @__PURE__ */ r(m, { $isClosing: o, $blocking: l, children: /* @__PURE__ */ g(w, { $isClosing: o, $width: t, children: [
49
+ f !== !1 && /* @__PURE__ */ r(j, { $modalWidth: t, children: /* @__PURE__ */ r(x, { label: "Close", onClick: p, children: /* @__PURE__ */ r(E, { width: 40, height: 40 }) }) }),
50
+ /* @__PURE__ */ r(y, { $modalWidth: t, children: /* @__PURE__ */ r(
51
+ c,
44
52
  {
45
- fallback: /* @__PURE__ */ r(h, { height: "50vh", size: "compact" }),
46
- onError: i,
47
- children: /* @__PURE__ */ r(n, { fallback: /* @__PURE__ */ r(c, { height: "50vh" }), children: e })
53
+ fallback: /* @__PURE__ */ r(d, { height: "50vh", size: "compact" }),
54
+ onError: n,
55
+ children: /* @__PURE__ */ r(h, { fallback: /* @__PURE__ */ r(s, { height: "50vh" }), children: e })
48
56
  }
49
57
  ) })
50
58
  ] }) });
51
59
  });
52
60
  export {
53
- q as default
61
+ G as default
54
62
  };
55
63
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../../../../src/features/ui/modals/modal.tsx"],"sourcesContent":["import type { IModalProps } from './modal-types';\nimport type { FC } from 'react';\n\nimport { captureException } from '@sentry/browser';\nimport { memo, Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport CrossIcon from '../../../assets/line-icons/icons/cross';\nimport Error from '../../ui/error/error';\nimport Clickable from '../buttons/clickable/clickable';\nimport FlexView from '../layout/flex-view';\nimport AppLoader from '../loader/app-loader/app-loader';\nimport * as Styled from './modal-styled';\n\n/**\n * Modal component that renders modal content with close button\n * Handles animation state for entry and exit transitions\n */\nconst Modal: FC<IModalProps> = memo(({ modal, isClosing = false, onClose }) => {\n const { renderAs, element, modalWidth, isDismissable } = modal;\n\n const sentryCaptureException = useCallback((error: Error) => {\n captureException(error);\n }, []);\n\n const handleStopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n if (renderAs === 'bottom-sheet') {\n return (\n <Styled.ModalContainer $isClosing={isClosing} onClick={isDismissable ? onClose : () => null}>\n <Styled.BottomSheetModal $isClosing={isClosing} onClick={handleStopPropagation}>\n <ErrorBoundary\n fallback={\n <FlexView $gap={24}>\n <Error height=\"100%\" />\n </FlexView>\n }\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BottomSheetModal>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'spotlight') {\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <ErrorBoundary\n fallback={\n <Styled.ModalLoaderWrapper>\n <Error height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n onError={sentryCaptureException}\n >\n <Suspense\n fallback={\n <Styled.ModalLoaderWrapper>\n <AppLoader height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n >\n <Styled.SpotlightModal $isClosing={isClosing} />\n {element}\n </Suspense>\n </ErrorBoundary>\n </Styled.ModalContainer>\n );\n }\n\n return (\n <Styled.ModalContainer $isClosing={isClosing}>\n <Styled.BaseModal $isClosing={isClosing} $width={modalWidth}>\n {isDismissable !== false && (\n <Styled.CloseButtonContainer $modalWidth={modalWidth}>\n <Clickable label=\"Close\" onClick={onClose}>\n <CrossIcon width={40} height={40} />\n </Clickable>\n </Styled.CloseButtonContainer>\n )}\n <Styled.BaseModalContent $modalWidth={modalWidth}>\n <ErrorBoundary\n fallback={<Error height=\"50vh\" size=\"compact\" />}\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BaseModalContent>\n </Styled.BaseModal>\n </Styled.ModalContainer>\n );\n});\n\nexport default Modal;\n"],"names":["Modal","memo","modal","isClosing","onClose","renderAs","element","modalWidth","isDismissable","sentryCaptureException","useCallback","error","captureException","handleStopPropagation","e","Styled.ModalContainer","Styled.BottomSheetModal","jsx","ErrorBoundary","FlexView","Error","Suspense","AppLoader","Styled.ModalLoaderWrapper","jsxs","Styled.SpotlightModal","Styled.BaseModal","Styled.CloseButtonContainer","Clickable","CrossIcon","Styled.BaseModalContent"],"mappings":";;;;;;;;;;AAkBM,MAAAA,IAAyBC,EAAK,CAAC,EAAE,OAAAC,GAAO,WAAAC,IAAY,IAAO,SAAAC,QAAc;AAC7E,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,YAAAC,GAAY,eAAAC,MAAkBN,GAEnDO,IAAyBC,EAAY,CAACC,MAAiB;AAC3D,IAAAC,EAAiBD,CAAK;AAAA,EACxB,GAAG,CAAE,CAAA,GAECE,IAAwBH,EAAY,CAACI,MAAwB;AACjE,IAAAA,EAAE,gBAAgB;AAAA,EACpB,GAAG,CAAE,CAAA;AAEL,SAAIT,MAAa,mCAEZU,GAAA,EAAsB,YAAYZ,GAAW,SAASK,IAAgBJ,IAAU,MAAM,MACrF,4BAACY,GAAA,EAAwB,YAAYb,GAAW,SAASU,GACvD,UAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGC,GAAS,EAAA,MAAM,IACd,UAAC,gBAAAF,EAAAG,GAAA,EAAM,QAAO,OAAA,CAAO,EACvB,CAAA;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAQ,EAACI,KAAS,UAAU,gBAAAJ,EAACK,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQhB,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA,EAE9D,CAAA,EACF,CAAA,IAIAD,MAAa,cAEZ,gBAAAY,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACGK,GAAA,EACC,UAAC,gBAAAN,EAAAG,GAAA,EAAM,QAAO,QAAQ,CAAA,GACxB;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAe;AAAA,QAACH;AAAA,QAAA;AAAA,UACC,4BACGE,GAAA,EACC,UAAC,gBAAAN,EAAAK,GAAA,EAAU,QAAO,QAAQ,CAAA,GAC5B;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAL,EAACQ,GAAA,EAAsB,YAAYtB,EAAW,CAAA;AAAA,YAC7CG;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA,IAKD,gBAAAW,EAAAF,GAAA,EAAsB,YAAYZ,GACjC,UAAC,gBAAAqB,EAAAE,GAAA,EAAiB,YAAYvB,GAAW,QAAQI,GAC9C,UAAA;AAAA,IAAkBC,MAAA,wBAChBmB,GAAA,EAA4B,aAAapB,GACxC,4BAACqB,GAAU,EAAA,OAAM,SAAQ,SAASxB,GAChC,4BAACyB,GAAU,EAAA,OAAO,IAAI,QAAQ,IAAI,GACpC,EACF,CAAA;AAAA,IAED,gBAAAZ,EAAAa,GAAA,EAAwB,aAAavB,GACpC,UAAA,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAW,gBAAAD,EAAAG,GAAA,EAAM,QAAO,QAAO,MAAK,WAAU;AAAA,QAC9C,SAASX;AAAA,QAET,UAAA,gBAAAQ,EAACI,KAAS,UAAU,gBAAAJ,EAACK,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQhB,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE9D;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"modal.js","sources":["../../../../src/features/ui/modals/modal.tsx"],"sourcesContent":["import type { IModalProps } from './modal-types';\nimport type { FC } from 'react';\n\nimport { captureException } from '@sentry/browser';\nimport { memo, Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport CrossIcon from '../../../assets/line-icons/icons/cross';\nimport Error from '../../ui/error/error';\nimport Clickable from '../buttons/clickable/clickable';\nimport FlexView from '../layout/flex-view';\nimport AppLoader from '../loader/app-loader/app-loader';\nimport * as Styled from './modal-styled';\n\n/**\n * Modal component that renders modal content with close button\n * Handles animation state for entry and exit transitions\n */\nconst Modal: FC<IModalProps> = memo(({ modal, isClosing = false, onClose }) => {\n const { renderAs, element, modalWidth, isDismissable, blocking = true } = modal;\n\n const sentryCaptureException = useCallback((error: Error) => {\n captureException(error);\n }, []);\n\n const handleStopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n if (renderAs === 'bottom-sheet') {\n return (\n <Styled.ModalContainer\n $isClosing={isClosing}\n $blocking={blocking}\n onClick={isDismissable ? onClose : () => null}\n >\n <Styled.BottomSheetModal $isClosing={isClosing} onClick={handleStopPropagation}>\n <ErrorBoundary\n fallback={\n <FlexView $gap={24}>\n <Error height=\"100%\" />\n </FlexView>\n }\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BottomSheetModal>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'spotlight') {\n return (\n <Styled.ModalContainer $isClosing={isClosing} $blocking={blocking}>\n <ErrorBoundary\n fallback={\n <Styled.ModalLoaderWrapper>\n <Error height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n onError={sentryCaptureException}\n >\n <Suspense\n fallback={\n <Styled.ModalLoaderWrapper>\n <AppLoader height=\"100vh\" />\n </Styled.ModalLoaderWrapper>\n }\n >\n <Styled.SpotlightModal $isClosing={isClosing} />\n {element}\n </Suspense>\n </ErrorBoundary>\n </Styled.ModalContainer>\n );\n }\n\n if (renderAs === 'fullscreen-transparent') {\n return (\n <Styled.TransparentModalContainer $isClosing={isClosing} $blocking={blocking}>\n {element}\n </Styled.TransparentModalContainer>\n );\n }\n\n return (\n <Styled.ModalContainer $isClosing={isClosing} $blocking={blocking}>\n <Styled.BaseModal $isClosing={isClosing} $width={modalWidth}>\n {isDismissable !== false && (\n <Styled.CloseButtonContainer $modalWidth={modalWidth}>\n <Clickable label=\"Close\" onClick={onClose}>\n <CrossIcon width={40} height={40} />\n </Clickable>\n </Styled.CloseButtonContainer>\n )}\n <Styled.BaseModalContent $modalWidth={modalWidth}>\n <ErrorBoundary\n fallback={<Error height=\"50vh\" size=\"compact\" />}\n onError={sentryCaptureException}\n >\n <Suspense fallback={<AppLoader height=\"50vh\" />}>{element}</Suspense>\n </ErrorBoundary>\n </Styled.BaseModalContent>\n </Styled.BaseModal>\n </Styled.ModalContainer>\n );\n});\n\nexport default Modal;\n"],"names":["Modal","memo","modal","isClosing","onClose","renderAs","element","modalWidth","isDismissable","blocking","sentryCaptureException","useCallback","error","captureException","handleStopPropagation","e","jsx","Styled.ModalContainer","Styled.BottomSheetModal","ErrorBoundary","FlexView","Error","Suspense","AppLoader","Styled.ModalLoaderWrapper","jsxs","Styled.SpotlightModal","Styled.TransparentModalContainer","Styled.BaseModal","Styled.CloseButtonContainer","Clickable","CrossIcon","Styled.BaseModalContent"],"mappings":";;;;;;;;;;AAkBM,MAAAA,IAAyBC,EAAK,CAAC,EAAE,OAAAC,GAAO,WAAAC,IAAY,IAAO,SAAAC,QAAc;AAC7E,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,YAAAC,GAAY,eAAAC,GAAe,UAAAC,IAAW,GAAS,IAAAP,GAEpEQ,IAAyBC,EAAY,CAACC,MAAiB;AAC3D,IAAAC,EAAiBD,CAAK;AAAA,EACxB,GAAG,CAAE,CAAA,GAECE,IAAwBH,EAAY,CAACI,MAAwB;AACjE,IAAAA,EAAE,gBAAgB;AAAA,EACpB,GAAG,CAAE,CAAA;AAEL,SAAIV,MAAa,iBAEb,gBAAAW;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,YAAYd;AAAA,MACZ,WAAWM;AAAA,MACX,SAASD,IAAgBJ,IAAU,MAAM;AAAA,MAEzC,4BAACc,GAAA,EAAwB,YAAYf,GAAW,SAASW,GACvD,UAAA,gBAAAE;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,4BACGC,GAAS,EAAA,MAAM,IACd,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,QAAO,OAAA,CAAO,EACvB,CAAA;AAAA,UAEF,SAASX;AAAA,UAET,UAAA,gBAAAM,EAACM,KAAS,UAAU,gBAAAN,EAACO,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQjB,EAAA,CAAA;AAAA,QAAA;AAAA,MAAA,GAE9D;AAAA,IAAA;AAAA,EAAA,IAKFD,MAAa,gCAEZY,GAAA,EAAsB,YAAYd,GAAW,WAAWM,GACvD,UAAA,gBAAAO;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,4BACGK,GAAA,EACC,UAAC,gBAAAR,EAAAK,GAAA,EAAM,QAAO,QAAQ,CAAA,GACxB;AAAA,MAEF,SAASX;AAAA,MAET,UAAA,gBAAAe;AAAA,QAACH;AAAA,QAAA;AAAA,UACC,4BACGE,GAAA,EACC,UAAC,gBAAAR,EAAAO,GAAA,EAAU,QAAO,QAAQ,CAAA,GAC5B;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAP,EAACU,GAAA,EAAsB,YAAYvB,EAAW,CAAA;AAAA,YAC7CG;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA,IAIAD,MAAa,2BAEb,gBAAAW,EAACW,GAAA,EAAiC,YAAYxB,GAAW,WAAWM,GACjE,UACHH,EAAA,CAAA,IAKD,gBAAAU,EAAAC,GAAA,EAAsB,YAAYd,GAAW,WAAWM,GACvD,UAAA,gBAAAgB,EAACG,GAAA,EAAiB,YAAYzB,GAAW,QAAQI,GAC9C,UAAA;AAAA,IAAkBC,MAAA,wBAChBqB,GAAA,EAA4B,aAAatB,GACxC,4BAACuB,GAAU,EAAA,OAAM,SAAQ,SAAS1B,GAChC,4BAAC2B,GAAU,EAAA,OAAO,IAAI,QAAQ,IAAI,GACpC,EACF,CAAA;AAAA,IAED,gBAAAf,EAAAgB,GAAA,EAAwB,aAAazB,GACpC,UAAA,gBAAAS;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,UAAW,gBAAAH,EAAAK,GAAA,EAAM,QAAO,QAAO,MAAK,WAAU;AAAA,QAC9C,SAASX;AAAA,QAET,UAAA,gBAAAM,EAACM,KAAS,UAAU,gBAAAN,EAACO,KAAU,QAAO,OAAO,CAAA,GAAK,UAAQjB,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE9D;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import { ChannelStatus } from '@cuemath/cue-message-broker';
4
4
  import { ComponentType } from 'react';
5
5
  import type { Config } from '@lottiefiles/dotlottie-web';
6
6
  import { Context } from 'react';
7
+ import type { Data } from '@lottiefiles/dotlottie-web';
7
8
  import type { DefaultTheme } from 'styled-components';
8
9
  import { DetailedHTMLProps } from 'react';
9
10
  import type { Dispatch } from 'react';
@@ -398,7 +399,7 @@ export declare const DesmosCalculator: FC<IDesmosCalculatorProps>;
398
399
 
399
400
  export declare const DigitalMeter: FC<IDigitalMeterProps>;
400
401
 
401
- export declare const DotLottieAnimation: NamedExoticComponent<ILottieAnimationProps & RefAttributes<ILottieAnimationRef>>;
402
+ export declare const DotLottieAnimation: NamedExoticComponent<IDotLottieAnimationProps & RefAttributes<IDotLottieAnimationRef>>;
402
403
 
403
404
  export declare const DownIcon: React.FC<React.SVGProps<SVGSVGElement>>;
404
405
 
@@ -628,7 +629,6 @@ export declare const GIF: {
628
629
  GAMES: string;
629
630
  JIGII_WAVE: string;
630
631
  LEARNING_SESSION: string;
631
- LEARNING_SESSION_GRID_BG: string;
632
632
  MAX_WAVE: string;
633
633
  PUZZLES: string;
634
634
  SCHOOL_SUCCESS: string;
@@ -642,9 +642,7 @@ export declare const GIF: {
642
642
  TRACK_PROGRESS: string;
643
643
  VINNIE_WAVE: string;
644
644
  WAY_FORWARD: string;
645
- WAY_FORWARD_GRID_BG: string;
646
645
  YOUR_GOALS: string;
647
- YOUR_GOALS_GRID_BG: string;
648
646
  };
649
647
 
650
648
  declare const GOAL_CATEGORY: {
@@ -1461,6 +1459,15 @@ declare interface IDigitalMeterProps {
1461
1459
  actAsTimer?: boolean;
1462
1460
  }
1463
1461
 
1462
+ declare type IDotLottieAnimationProps = XOR<WithSrc, WithData> & SharedProps;
1463
+
1464
+ declare interface IDotLottieAnimationRef {
1465
+ play: () => void;
1466
+ pause: () => void;
1467
+ playSegments: (segments: AnimationSegment) => void;
1468
+ setFrame: (frame: number) => void;
1469
+ }
1470
+
1464
1471
  declare interface IDrawerProps {
1465
1472
  isOpen: boolean;
1466
1473
  onClose?: () => void;
@@ -2121,19 +2128,13 @@ export declare const ILLUSTRATIONS: {
2121
2128
  ALIEN_2: string;
2122
2129
  ALIEN_3: string;
2123
2130
  ALIEN_4: string;
2124
- ARROW_BOARD_GREEN: string;
2125
2131
  BLUE_CLIP: string;
2126
- BOOK_CHECKED_GREEN: string;
2127
- BOOK_CHECKED_ORANGE: string;
2128
- BOOK_CHECKED_PURPLE: string;
2129
2132
  BOOK_GREEN: string;
2130
2133
  BOOK_OPEN_BLUE: string;
2131
2134
  BOOK_ORANGE: string;
2132
2135
  BOOK_YELLOW: string;
2133
2136
  BULLET_YELLOW: string;
2134
2137
  CALENDAR_BLUE: string;
2135
- CALENDAR_CHECK_GREEN: string;
2136
- CALENDAR_CROSS_ORANGE: string;
2137
2138
  CALENDAR_GRAY: string;
2138
2139
  CALENDAR_GREEN: string;
2139
2140
  CALENDAR_PURPLE: string;
@@ -2167,7 +2168,6 @@ export declare const ILLUSTRATIONS: {
2167
2168
  DURATION_90MIN_GRAY: string;
2168
2169
  EARTH_GREEN: string;
2169
2170
  ELLIPSE_CLIP: string;
2170
- EQUAL_OUTLINED: string;
2171
2171
  FEMALE_AVATAR: string;
2172
2172
  GAME_PLAY: string;
2173
2173
  GLOBE_WITH_BLUE_FILL: string;
@@ -2178,9 +2178,6 @@ export declare const ILLUSTRATIONS: {
2178
2178
  GREEN_BALLOON: string;
2179
2179
  GREEN_FACE: string;
2180
2180
  HANDSHAKE: string;
2181
- HANDSHAKE_GREEN: string;
2182
- HEART_OUTLINED: string;
2183
- KNOWLEDGE_BLUE: string;
2184
2181
  LEARNED_SHIELD_GRAY: string;
2185
2182
  LEARNED_SHIELD_GREEN: string;
2186
2183
  LEARNT: string;
@@ -2219,8 +2216,6 @@ export declare const ILLUSTRATIONS: {
2219
2216
  ORANGE_FACE: string;
2220
2217
  PARENT_AVATAR: string;
2221
2218
  PEOPLE_WITH_ORANGE_FILL: string;
2222
- PLATFORM_GREEN: string;
2223
- PLATFORM_PURPLE: string;
2224
2219
  PLAY: string;
2225
2220
  PLAY_ICON: string;
2226
2221
  POINTS_SUM: string;
@@ -2236,8 +2231,6 @@ export declare const ILLUSTRATIONS: {
2236
2231
  PUZZLE_PATTERN_PURPLE: string;
2237
2232
  PUZZLE_PATTERN_YELLOW: string;
2238
2233
  PUZZLE_STUDENT: string;
2239
- RADIAL_GRADIENT_BG: string;
2240
- RADIAL_GRADIENT_BG_2: string;
2241
2234
  REFUND_POLICY: string;
2242
2235
  REFUND_POLICY_WITH_HEADPHONE: string;
2243
2236
  REPORT_404: string;
@@ -2247,12 +2240,10 @@ export declare const ILLUSTRATIONS: {
2247
2240
  SMILEY: string;
2248
2241
  STAR_ORANGE: string;
2249
2242
  STAR_ORANGE_FILLED: string;
2250
- STAR_OUTLINED: string;
2251
2243
  STAR_WITH_GREEN_FILL: string;
2252
2244
  STREAK_GREEN: string;
2253
2245
  STREAK_WHITE: string;
2254
2246
  STRIPE_BLURPLE: string;
2255
- STUDENT_AVATAR: string;
2256
2247
  TEST_DIFFICULTY_EASY: string;
2257
2248
  TEST_DIFFICULTY_HARD: string;
2258
2249
  TEST_DIFFICULTY_MEDIUM: string;
@@ -2262,7 +2253,6 @@ export declare const ILLUSTRATIONS: {
2262
2253
  TROPHY_BLUE_FILLED: string;
2263
2254
  TROPHY_CIRCLE: string;
2264
2255
  TROPHY_GREEN: string;
2265
- TROPHY_OUTLINED: string;
2266
2256
  TRUSTPILOT: string;
2267
2257
  TWO_STARS_FILLED: string;
2268
2258
  UP_ARROW: string;
@@ -2283,23 +2273,6 @@ declare interface ILogger {
2283
2273
  (eventName: string, data?: Record<string, unknown>): void;
2284
2274
  }
2285
2275
 
2286
- declare interface ILottieAnimationProps {
2287
- src: string;
2288
- width?: string | number;
2289
- height?: string | number;
2290
- settings?: Partial<LottieSettings>;
2291
- eventListeners?: {
2292
- name: EventType;
2293
- callback: EventListener_2<EventType>;
2294
- }[];
2295
- onRender?: () => void;
2296
- onError?: () => void;
2297
- }
2298
-
2299
- declare interface ILottieAnimationRef {
2300
- playSegments: (segments: AnimationSegment, forceFlag?: boolean) => void;
2301
- }
2302
-
2303
2276
  declare interface ILPARChapterProps extends ILPARSheetCallbacks {
2304
2277
  userType: TUserTypes;
2305
2278
  chapterData: TLPARChapterData;
@@ -2638,11 +2611,13 @@ export declare interface IModal {
2638
2611
  /** Content to display inside the modal */
2639
2612
  element: ReactElement;
2640
2613
  /** Rendering style of the modal */
2641
- renderAs?: 'modal' | 'fullscreen' | 'spotlight' | 'bottom-sheet';
2614
+ renderAs?: 'modal' | 'fullscreen' | 'spotlight' | 'bottom-sheet' | 'fullscreen-transparent';
2642
2615
  /** Whether the modal can be dismissed by clicking outside or ESC key (default: true) */
2643
2616
  isDismissable?: boolean;
2644
2617
  /** Whether the modal requires authentication to view (default: true) */
2645
2618
  isPrivate?: boolean;
2619
+ /** If true, disables interaction behind modal (default: true) */
2620
+ blocking?: boolean;
2646
2621
  /** Width of the modal in CSS units (e.g., '500px', '80vw') */
2647
2622
  modalWidth: string;
2648
2623
  }
@@ -3489,14 +3464,22 @@ declare interface IStepperProps {
3489
3464
  currentStep: number;
3490
3465
  }
3491
3466
 
3492
- declare interface IStickerData {
3467
+ export declare interface IStickerData {
3493
3468
  id: string;
3494
3469
  emoji: string;
3495
3470
  lottieUrl?: string;
3496
- name?: string;
3471
+ name: string;
3472
+ }
3473
+
3474
+ export declare interface IStickerProps {
3475
+ emoji: string;
3476
+ lottieUrl?: string;
3477
+ size?: number | string;
3478
+ onClick?: () => void;
3479
+ disabled?: boolean;
3497
3480
  }
3498
3481
 
3499
- declare interface IStickerGridProps {
3482
+ export declare interface IStickerSelectorGridProps {
3500
3483
  stickers: IStickerData[];
3501
3484
  columns?: number;
3502
3485
  gap?: number;
@@ -3504,6 +3487,22 @@ declare interface IStickerGridProps {
3504
3487
  onStickerClick?: (sticker: IStickerData) => void;
3505
3488
  }
3506
3489
 
3490
+ export declare interface IStickerSelectorProps {
3491
+ triggerNode: React.ReactNode;
3492
+ studentClassroomId: string;
3493
+ gridConfig: Omit<Partial<IStickerSelectorGridProps>, 'stickers' | 'onStickerClick'>;
3494
+ tooltipConfig: Omit<Partial<IArrowTooltipProps>, 'children' | 'tooltipItem' | 'hidden' | 'alwaysVisible'>;
3495
+ visible: boolean;
3496
+ onToggle: () => void;
3497
+ }
3498
+
3499
+ export declare interface IStickersProps {
3500
+ stickers: string[];
3501
+ effect: TStickerEffects;
3502
+ count: number;
3503
+ duration: number;
3504
+ }
3505
+
3507
3506
  declare interface IStreakIconProps extends React.HTMLProps<HTMLDivElement> {
3508
3507
  value: number;
3509
3508
  blink?: boolean;
@@ -4516,7 +4515,6 @@ export declare const LOTTIE: {
4516
4515
  BRONZE_1: string;
4517
4516
  BRONZE_2: string;
4518
4517
  BRONZE_3: string;
4519
- CALENDAR_HOUR_GLASS_ORANGE: string;
4520
4518
  CENT: string;
4521
4519
  CHAPTER_COMPLETED: string;
4522
4520
  CIRCULAR_LOADER: string;
@@ -4622,8 +4620,6 @@ export declare const LOTTIE: {
4622
4620
  TABLE_MODE_STAR: string;
4623
4621
  TABLE_SEGMENT_STAR: string;
4624
4622
  TARGET_ACHIEVED_TEXT: string;
4625
- TEACHER_FOUND: string;
4626
- TEACHER_SEARCH: string;
4627
4623
  TEACHER_VALIDATION: string;
4628
4624
  TEST: string;
4629
4625
  TOTAL_STREAK: string;
@@ -5092,6 +5088,18 @@ export declare const SENTRY_IGNORED_ERRORS: Array<string | RegExp>;
5092
5088
 
5093
5089
  export declare const Separator: React_2.FC<ISeparatorProps>;
5094
5090
 
5091
+ declare type SharedProps = {
5092
+ width?: string | number;
5093
+ height?: string | number;
5094
+ settings?: Partial<LottieSettings>;
5095
+ eventListeners?: {
5096
+ name: EventType;
5097
+ callback: EventListener_2<EventType>;
5098
+ }[];
5099
+ onRender?: () => void;
5100
+ onError?: () => void;
5101
+ };
5102
+
5095
5103
  export declare const SHEET_ACTIONS: {
5096
5104
  readonly START: "START";
5097
5105
  readonly RESUME: "RESUME";
@@ -5198,22 +5206,15 @@ declare const STICKER_BADGE: {
5198
5206
  AWESOME: string;
5199
5207
  };
5200
5208
 
5201
- declare type StickerEffect = 'burst_from_edges' | 'pop_expand' | 'float_up' | 'fall_down';
5209
+ export declare const stickerData: IStickerData[];
5202
5210
 
5203
5211
  export declare const StickerFilledIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5204
5212
 
5205
5213
  export declare const StickerIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5206
5214
 
5207
- export declare const Stickers: React_2.NamedExoticComponent<StickersProps>;
5208
-
5209
- declare interface StickersProps {
5210
- stickers: string[];
5211
- effect: StickerEffect;
5212
- count: number;
5213
- duration: number;
5214
- }
5215
+ export declare const StickersEffects: React_2.NamedExoticComponent<IStickersProps>;
5215
5216
 
5216
- export declare const StickersSelector: React_2.NamedExoticComponent<IStickerGridProps>;
5217
+ export declare const StickersSelector: React_2.NamedExoticComponent<IStickerSelectorProps>;
5217
5218
 
5218
5219
  export declare const StreakIcon: React_2.FC<IStreakIconProps>;
5219
5220
 
@@ -6154,7 +6155,7 @@ declare type TRenderAs_2 = 'canvas' | 'whiteboard';
6154
6155
  declare type TRewardHomeData = {
6155
6156
  user_badges: TBadgeData[] | [];
6156
6157
  user_rewards: TRewardsData[] | [];
6157
- user_stickers: TStickerData[] | [];
6158
+ user_stickers: TStickerData_2[] | [];
6158
6159
  };
6159
6160
 
6160
6161
  declare type TRewardsData = {
@@ -6282,7 +6283,18 @@ export declare type TSkillStatus = 'pending' | 'completed';
6282
6283
 
6283
6284
  export declare type TSocialAuthProvider = 'google' | 'apple';
6284
6285
 
6285
- declare type TStickerData = {
6286
+ export declare type TStickerData = {
6287
+ id: string;
6288
+ sticker: string;
6289
+ lottie?: string;
6290
+ x: number;
6291
+ y: number;
6292
+ size: number;
6293
+ fromX?: string;
6294
+ fromY?: string;
6295
+ };
6296
+
6297
+ declare type TStickerData_2 = {
6286
6298
  actor_id: string;
6287
6299
  badge_id: string;
6288
6300
  badge_type: string;
@@ -6295,6 +6307,8 @@ declare type TStickerData = {
6295
6307
  user_type: string;
6296
6308
  };
6297
6309
 
6310
+ export declare type TStickerEffects = 'burst-from-edges' | 'pop-expand' | 'float-up' | 'fall-down';
6311
+
6298
6312
  export declare type TStreakStatus = 'pending' | 'completed';
6299
6313
 
6300
6314
  declare type TStyleAttrubutes = NonNullable<HTMLAttributes<HTMLDivElement>['style']>;
@@ -6675,6 +6689,18 @@ export declare enum WebViewEvent {
6675
6689
  */
6676
6690
  export declare const WHITELIST_EVENTS: Record<string, PLUGIN_NAME[]>;
6677
6691
 
6692
+ declare type WithData = {
6693
+ data: Data;
6694
+ };
6695
+
6696
+ declare type Without<T, K extends keyof any> = {
6697
+ [P in Exclude<keyof T, K>]?: never;
6698
+ };
6699
+
6700
+ declare type WithSrc = {
6701
+ src: string;
6702
+ };
6703
+
6678
6704
  export declare const Worksheet: NamedExoticComponent<IWorksheetContainerProps & RefAttributes<IWorksheetRef>>;
6679
6705
 
6680
6706
  export declare const WORKSHEET_ACTION_BAR_HEIGHT = 56;
@@ -6687,6 +6713,8 @@ export declare const WORKSHEET_TOP_NAVIGATION_HEIGHT = 48;
6687
6713
 
6688
6714
  export declare const WORKSHEET_V3_NODE_TYPES: TNodeTypeProps[];
6689
6715
 
6716
+ declare type XOR<T, U> = (T & Without<U, keyof T>) | (U & Without<T, keyof U>);
6717
+
6690
6718
  declare const ZINDEX: {
6691
6719
  readonly CHAPTER_CROWN_ICON: 4;
6692
6720
  readonly CHAPTER_PLUS_ICON: 2;