@cuemath/leap 3.2.32 → 3.2.33-as2

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 (67) hide show
  1. package/dist/assets/gif/gif.js +4 -1
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +17 -0
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/lottie/lottie.js +3 -0
  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 +12 -11
  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 +11 -4
  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/class-timer/animate.js +103 -0
  20. package/dist/features/class-timer/animate.js.map +1 -0
  21. package/dist/features/class-timer/animations/open-close.js +102 -0
  22. package/dist/features/class-timer/animations/open-close.js.map +1 -0
  23. package/dist/features/class-timer/animations/ripple.js +44 -0
  24. package/dist/features/class-timer/animations/ripple.js.map +1 -0
  25. package/dist/features/class-timer/class-timer.js +155 -0
  26. package/dist/features/class-timer/class-timer.js.map +1 -0
  27. package/dist/features/class-timer/clock.js +26 -0
  28. package/dist/features/class-timer/clock.js.map +1 -0
  29. package/dist/features/class-timer/constants.js +27 -0
  30. package/dist/features/class-timer/constants.js.map +1 -0
  31. package/dist/features/class-timer/timer.js +68 -0
  32. package/dist/features/class-timer/timer.js.map +1 -0
  33. package/dist/features/hooks/use-visibility-change.js +12 -0
  34. package/dist/features/hooks/use-visibility-change.js.map +1 -0
  35. package/dist/features/ui/constants/z-index.js +4 -1
  36. package/dist/features/ui/constants/z-index.js.map +1 -1
  37. package/dist/features/ui/drawer/drawer-styled.js +4 -2
  38. package/dist/features/ui/drawer/drawer-styled.js.map +1 -1
  39. package/dist/features/utils/utils.js +18 -18
  40. package/dist/features/utils/utils.js.map +1 -1
  41. package/dist/index.d.ts +86 -0
  42. package/dist/index.js +476 -466
  43. package/dist/index.js.map +1 -1
  44. package/dist/static/arrow-board-green.11e75bca.svg +1 -0
  45. package/dist/static/book-checked-green.c275dbd9.svg +1 -0
  46. package/dist/static/book-checked-orange.53ea6880.svg +1 -0
  47. package/dist/static/book-checked-purple.df628f3e.svg +1 -0
  48. package/dist/static/calendar-check-green.ab0e24d2.svg +1 -0
  49. package/dist/static/calendar-cross-orange.8e7a23bd.svg +1 -0
  50. package/dist/static/calendar-hour-glass-orange.e99f8ffd.json +1 -0
  51. package/dist/static/equal-outlined.b705bf5d.svg +1 -0
  52. package/dist/static/handshake-green.f8d24216.svg +1 -0
  53. package/dist/static/heart-outlined.5b5415fe.svg +1 -0
  54. package/dist/static/knowledge-blue.ead536f1.svg +1 -0
  55. package/dist/static/learning-session-grid-bg.fb60e64b.gif +0 -0
  56. package/dist/static/platform-green.eb853207.svg +1 -0
  57. package/dist/static/platform-purple.ecf6fa46.svg +1 -0
  58. package/dist/static/radial-gradient-bg-2.6657c758.svg +1 -0
  59. package/dist/static/radial-gradient-bg.5ae0cde5.svg +1 -0
  60. package/dist/static/star-outlined.bde83c7c.svg +1 -0
  61. package/dist/static/student-avatar.24bc2875.svg +1 -0
  62. package/dist/static/teacher-found.0ba07d4a.json +1 -0
  63. package/dist/static/teacher-search.552c8ba2.json +1 -0
  64. package/dist/static/trophy-outlined.f946b362.svg +1 -0
  65. package/dist/static/way-forward-grid-bg.ab5d2dc6.gif +0 -0
  66. package/dist/static/your-goals-grid-bg.87fa9c60.gif +0 -0
  67. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sources":["../../../src/features/class-timer/clock.tsx"],"sourcesContent":["import type { TColorNames, TTextVariants } from '../ui/types';\n\nimport { useState, useEffect, useCallback, useRef, memo } from 'react';\n\nimport Text from '../ui/text/text';\nimport { formatTimeInHHMMSS } from '../utils/utils';\nimport { getTime, TIMEOUT_INTERVAL } from './constants';\n\ninterface IClockProps {\n completionTime?: number | null;\n onComplete?: () => void;\n startedOn: Date;\n textVariant?: TTextVariants;\n textColor?: TColorNames;\n}\n\nconst Clock = ({\n completionTime = null,\n onComplete = () => {},\n startedOn,\n textVariant = 'ab2-bold',\n textColor,\n}: IClockProps) => {\n const [elapsedTime, setElapsedTime] = useState(getTime(startedOn));\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n const formattedTime = formatTimeInHHMMSS(elapsedTime);\n const start = useRef<number | null>(null);\n const timer = useCallback(() => {\n const timestamp = performance.now();\n\n const elapsed = timestamp - (start.current || 0);\n\n if (elapsed >= 1000) {\n setElapsedTime(getTime(startedOn));\n\n start.current = performance.now();\n }\n\n timerRef.current = setTimeout(timer, TIMEOUT_INTERVAL);\n }, [startedOn]);\n\n useEffect(() => {\n if (completionTime && elapsedTime >= completionTime && elapsedTime <= completionTime + 5) {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n onComplete();\n }\n }, [completionTime, elapsedTime, onComplete]);\n\n useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (start.current === null) {\n start.current = performance.now();\n }\n\n timerRef.current = setTimeout(timer, TIMEOUT_INTERVAL);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [timer]);\n\n if (elapsedTime < 0) return null;\n\n return (\n <Text $width={formattedTime.length > 5 ? 71 : 57} $renderAs={textVariant} $color={textColor}>\n {formattedTime}\n </Text>\n );\n};\n\nexport default memo(Clock);\n"],"names":["Clock","completionTime","onComplete","startedOn","textVariant","textColor","elapsedTime","setElapsedTime","useState","getTime","timerRef","useRef","formattedTime","formatTimeInHHMMSS","start","timer","useCallback","TIMEOUT_INTERVAL","useEffect","jsx","Text","Clock$1","memo"],"mappings":";;;;;AAgBA,MAAMA,IAAQ,CAAC;AAAA,EACb,gBAAAC,IAAiB;AAAA,EACjB,YAAAC,IAAa,MAAM;AAAA,EAAC;AAAA,EACpB,WAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AACF,MAAmB;AACjB,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAASC,EAAQN,CAAS,CAAC,GAC3DO,IAAWC,EAA8B,IAAI,GAC7CC,IAAgBC,EAAmBP,CAAW,GAC9CQ,IAAQH,EAAsB,IAAI,GAClCI,IAAQC,EAAY,MAAM;AAK9B,IAJkB,YAAY,SAEDF,EAAM,WAAW,MAE/B,QACEP,EAAAE,EAAQN,CAAS,CAAC,GAE3BW,EAAA,UAAU,YAAY,QAGrBJ,EAAA,UAAU,WAAWK,GAAOE,CAAgB;AAAA,EAAA,GACpD,CAACd,CAAS,CAAC;AAgCV,SA9BJe,EAAU,MAAM;AACd,IAAIjB,KAAkBK,KAAeL,KAAkBK,KAAeL,IAAiB,MACjFS,EAAS,YACX,aAAaA,EAAS,OAAO,GAC7BA,EAAS,UAAU,OAGVR;EAEZ,GAAA,CAACD,GAAgBK,GAAaJ,CAAU,CAAC,GAE5CgB,EAAU,OACJR,EAAS,YACX,aAAaA,EAAS,OAAO,GAC7BA,EAAS,UAAU,OAGjBI,EAAM,YAAY,SACdA,EAAA,UAAU,YAAY,QAGrBJ,EAAA,UAAU,WAAWK,GAAOE,CAAgB,GAE9C,MAAM;AACX,IAAIP,EAAS,WACX,aAAaA,EAAS,OAAO;AAAA,EAC/B,IAED,CAACK,CAAK,CAAC,GAENT,IAAc,IAAU,OAGzB,gBAAAa,EAAAC,GAAA,EAAK,QAAQR,EAAc,SAAS,IAAI,KAAK,IAAI,WAAWR,GAAa,QAAQC,GAC/E,UACHO,EAAA,CAAA;AAEJ,GAEeS,IAAAC,EAAKtB,CAAK;"}
@@ -0,0 +1,27 @@
1
+ import c from "styled-components";
2
+ import n from "../ui/layout/flex-view.js";
3
+ const s = c(n)`
4
+ svg {
5
+ color: ${(o) => o.theme.colors[o.$iconColor]};
6
+ }
7
+ `, t = 60 * 10, e = 60 * 5, L = {
8
+ LAST_TEN: t + 2,
9
+ LAST_FIVE: e + 2
10
+ }, A = 2e3, l = 1500, i = 250, m = ({
11
+ remainingTime: o,
12
+ updateWithExtendedTime: r,
13
+ extendedTime: T,
14
+ extendedTimeStarted: E
15
+ }) => o <= e ? "ORANGE_3" : o <= t || r && T || E ? "YELLOW_3" : "BLACK_3", M = (o) => Math.floor(((/* @__PURE__ */ new Date()).getTime() - o.getTime()) / 1e3);
16
+ export {
17
+ L as ANIMATION_TIME,
18
+ l as EXTEND_IDLE,
19
+ s as IconWrapper,
20
+ e as LAST_FIVE,
21
+ t as START_TIMER,
22
+ i as TIMEOUT_INTERVAL,
23
+ A as TIME_LEFT_IDLE,
24
+ m as getClockColor,
25
+ M as getTime
26
+ };
27
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/features/class-timer/constants.ts"],"sourcesContent":["import type { TColorNames } from '../ui/types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../ui/layout/flex-view';\n\nconst IconWrapper = styled(FlexView)<{ $iconColor: TColorNames }>`\n svg {\n color: ${props => props.theme.colors[props.$iconColor]};\n }\n`;\n\nconst START_TIMER = 60 * 10; // 10 minutes\nconst LAST_FIVE = 60 * 5; // 5 minutes\nconst ANIMATION_TIME = {\n LAST_TEN: START_TIMER + 2,\n LAST_FIVE: LAST_FIVE + 2,\n};\n\nconst TIME_LEFT_IDLE = 2000;\nconst EXTEND_IDLE = 1500;\nconst TIMEOUT_INTERVAL = 250;\n\ninterface IClockColorParams {\n remainingTime: number;\n updateWithExtendedTime: boolean;\n extendedTime: number;\n extendedTimeStarted: boolean;\n}\n\nconst getClockColor = ({\n remainingTime,\n updateWithExtendedTime,\n extendedTime,\n extendedTimeStarted,\n}: IClockColorParams): TColorNames => {\n if (remainingTime <= LAST_FIVE) return 'ORANGE_3';\n\n if (\n remainingTime <= START_TIMER ||\n (updateWithExtendedTime && extendedTime) ||\n extendedTimeStarted\n )\n return 'YELLOW_3';\n\n return 'BLACK_3';\n};\n\nconst getTime = (startedOn: Date): number => {\n return Math.floor((new Date().getTime() - startedOn.getTime()) / 1000);\n};\n\nexport {\n getClockColor,\n getTime,\n IconWrapper,\n ANIMATION_TIME,\n START_TIMER,\n LAST_FIVE,\n TIME_LEFT_IDLE,\n EXTEND_IDLE,\n TIMEOUT_INTERVAL,\n};\n"],"names":["IconWrapper","styled","FlexView","props","START_TIMER","LAST_FIVE","ANIMATION_TIME","TIME_LEFT_IDLE","EXTEND_IDLE","TIMEOUT_INTERVAL","getClockColor","remainingTime","updateWithExtendedTime","extendedTime","extendedTimeStarted","getTime","startedOn"],"mappings":";;AAMM,MAAAA,IAAcC,EAAOC,CAAQ;AAAA;AAAA,aAEtB,OAASC,EAAM,MAAM,OAAOA,EAAM,UAAU,CAAC;AAAA;AAAA,GAIpDC,IAAc,KAAK,IACnBC,IAAY,KAAK,GACjBC,IAAiB;AAAA,EACrB,UAAUF,IAAc;AAAA,EACxB,WAAWC,IAAY;AACzB,GAEME,IAAiB,KACjBC,IAAc,MACdC,IAAmB,KASnBC,IAAgB,CAAC;AAAA,EACrB,eAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,qBAAAC;AACF,MACMH,KAAiBN,IAAkB,aAGrCM,KAAiBP,KAChBQ,KAA0BC,KAC3BC,IAEO,aAEF,WAGHC,IAAU,CAACC,MACR,KAAK,QAAO,oBAAI,KAAK,GAAE,YAAYA,EAAU,QAAQ,KAAK,GAAI;"}
@@ -0,0 +1,68 @@
1
+ import { jsxs as I, jsx as n } from "react/jsx-runtime";
2
+ import { memo as b, useState as A, useRef as f, useCallback as E, useEffect as p } from "react";
3
+ import M from "styled-components";
4
+ import R from "../../assets/line-icons/icons/clock2.js";
5
+ import k from "../ui/layout/flex-view.js";
6
+ import $ from "../ui/text/text.js";
7
+ import { formatTimeInHHMMSS as X } from "../utils/utils.js";
8
+ import { TIMEOUT_INTERVAL as T, IconWrapper as D } from "./constants.js";
9
+ const G = M(k)`
10
+ border-radius: 20px;
11
+ position: relative;
12
+ z-index: 7;
13
+ gap: 8px;
14
+ `, S = ({
15
+ styledTimer: d = !1,
16
+ backgroundColor: h = "GREY_1",
17
+ endTime: c,
18
+ // Default 1 minute from now
19
+ onComplete: u = () => {
20
+ },
21
+ onReminder: i,
22
+ reminder: m,
23
+ iconColor: g = "ORANGE_4",
24
+ textColor: a = "BLACK",
25
+ textVariant: s = "ac3-black"
26
+ }) => {
27
+ const [e, w] = A(Math.ceil(c - Date.now() / 1e3)), r = f(null), t = f(null), l = E(() => {
28
+ if (performance.now() - (t.current || 0) >= 1e3) {
29
+ const x = Math.ceil(c - Date.now() / 1e3);
30
+ w(x), t.current = performance.now();
31
+ }
32
+ r.current = setTimeout(l, T);
33
+ }, [c]);
34
+ p(() => (r.current && (clearTimeout(r.current), r.current = null), t.current === null && (t.current = performance.now()), r.current = setTimeout(l, T), () => {
35
+ r.current && clearTimeout(r.current);
36
+ }), [l]), p(() => {
37
+ m && i && e === m && i(), e <= 0 && (r.current && (clearTimeout(r.current), r.current = null), u());
38
+ }, [m, i, u, e]);
39
+ const o = X(e);
40
+ return d ? /* @__PURE__ */ I(
41
+ G,
42
+ {
43
+ $flexDirection: "row",
44
+ $alignItems: "center",
45
+ $background: h,
46
+ $borderRadiusX: 1.25,
47
+ $gutterX: 0.75,
48
+ $gapX: 0.15,
49
+ $flexGapX: 0.25,
50
+ children: [
51
+ /* @__PURE__ */ n(D, { $iconColor: g, children: /* @__PURE__ */ n(R, {}) }),
52
+ /* @__PURE__ */ n(
53
+ $,
54
+ {
55
+ $width: o.length > 5 ? 71 : 57,
56
+ $renderAs: s,
57
+ $color: a,
58
+ children: o
59
+ }
60
+ )
61
+ ]
62
+ }
63
+ ) : /* @__PURE__ */ n($, { $width: o.length > 5 ? 71 : 57, $renderAs: s, $color: a, children: o });
64
+ }, z = b(S);
65
+ export {
66
+ z as default
67
+ };
68
+ //# sourceMappingURL=timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.js","sources":["../../../src/features/class-timer/timer.tsx"],"sourcesContent":["import type { TColorNames, TTextVariants } from '../ui/types';\n\nimport { memo, useCallback, useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Clock2Icon from '../../assets/line-icons/icons/clock2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\nimport { formatTimeInHHMMSS } from '../utils/utils';\nimport { IconWrapper, TIMEOUT_INTERVAL } from './constants';\n\ninterface ITimeWrapperProps {\n backgroundColor?: TColorNames;\n}\n\nconst TimeWrapper = styled(FlexView)<ITimeWrapperProps>`\n border-radius: 20px;\n position: relative;\n z-index: 7;\n gap: 8px;\n`;\n\ninterface ITimerProps {\n styledTimer?: boolean;\n backgroundColor?: TColorNames;\n endTime: number;\n onComplete?: () => void;\n onReminder?: () => void;\n reminder?: number;\n iconColor?: TColorNames;\n textColor?: TColorNames;\n textVariant?: TTextVariants;\n}\n\nconst Timer = ({\n styledTimer = false,\n backgroundColor = 'GREY_1',\n endTime, // Default 1 minute from now\n onComplete = () => {},\n onReminder,\n reminder,\n iconColor = 'ORANGE_4',\n textColor = 'BLACK',\n textVariant = 'ac3-black',\n}: ITimerProps) => {\n const [remainingTime, setRemainingTime] = useState(Math.ceil(endTime - Date.now() / 1000));\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n const start = useRef<number | null>(null);\n const timer = useCallback(() => {\n const timestamp = performance.now();\n const elapsed = timestamp - (start.current || 0);\n\n if (elapsed >= 1000) {\n // only if 1s has elapsed\n const rt = Math.ceil(endTime - Date.now() / 1000);\n\n setRemainingTime(rt);\n start.current = performance.now();\n }\n\n timerRef.current = setTimeout(timer, TIMEOUT_INTERVAL);\n }, [endTime]);\n\n useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (start.current === null) {\n start.current = performance.now();\n }\n\n timerRef.current = setTimeout(timer, TIMEOUT_INTERVAL);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [timer]);\n\n useEffect(() => {\n if (reminder && onReminder && remainingTime === reminder) {\n onReminder();\n }\n\n if (remainingTime <= 0) {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n onComplete();\n }\n }, [reminder, onReminder, onComplete, remainingTime]);\n const formattedTime = formatTimeInHHMMSS(remainingTime);\n\n if (styledTimer) {\n return (\n <TimeWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background={backgroundColor}\n $borderRadiusX={1.25}\n $gutterX={0.75}\n $gapX={0.15}\n $flexGapX={0.25}\n >\n <IconWrapper $iconColor={iconColor}>\n <Clock2Icon />\n </IconWrapper>\n <Text\n $width={formattedTime.length > 5 ? 71 : 57}\n $renderAs={textVariant}\n $color={textColor}\n >\n {formattedTime}\n </Text>\n </TimeWrapper>\n );\n }\n\n return (\n <Text $width={formattedTime.length > 5 ? 71 : 57} $renderAs={textVariant} $color={textColor}>\n {formattedTime}\n </Text>\n );\n};\n\nexport default memo(Timer);\n"],"names":["TimeWrapper","styled","FlexView","Timer","styledTimer","backgroundColor","endTime","onComplete","onReminder","reminder","iconColor","textColor","textVariant","remainingTime","setRemainingTime","useState","timerRef","useRef","start","timer","useCallback","rt","TIMEOUT_INTERVAL","useEffect","formattedTime","formatTimeInHHMMSS","jsxs","jsx","IconWrapper","Clock2Icon","Text","Timer$1","memo"],"mappings":";;;;;;;;AAeA,MAAMA,IAAcC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,GAmB7BC,IAAQ,CAAC;AAAA,EACb,aAAAC,IAAc;AAAA,EACd,iBAAAC,IAAkB;AAAA,EAClB,SAAAC;AAAA;AAAA,EACA,YAAAC,IAAa,MAAM;AAAA,EAAC;AAAA,EACpB,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,aAAAC,IAAc;AAChB,MAAmB;AACjB,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAS,KAAK,KAAKT,IAAU,KAAK,QAAQ,GAAI,CAAC,GACnFU,IAAWC,EAA8B,IAAI,GAC7CC,IAAQD,EAAsB,IAAI,GAClCE,IAAQC,EAAY,MAAM;AAI9B,QAHkB,YAAY,SACDF,EAAM,WAAW,MAE/B,KAAM;AAEnB,YAAMG,IAAK,KAAK,KAAKf,IAAU,KAAK,IAAA,IAAQ,GAAI;AAEhD,MAAAQ,EAAiBO,CAAE,GACbH,EAAA,UAAU,YAAY;IAC9B;AAES,IAAAF,EAAA,UAAU,WAAWG,GAAOG,CAAgB;AAAA,EAAA,GACpD,CAAChB,CAAO,CAAC;AAEZ,EAAAiB,EAAU,OACJP,EAAS,YACX,aAAaA,EAAS,OAAO,GAC7BA,EAAS,UAAU,OAGjBE,EAAM,YAAY,SACdA,EAAA,UAAU,YAAY,QAGrBF,EAAA,UAAU,WAAWG,GAAOG,CAAgB,GAE9C,MAAM;AACX,IAAIN,EAAS,WACX,aAAaA,EAAS,OAAO;AAAA,EAC/B,IAED,CAACG,CAAK,CAAC,GAEVI,EAAU,MAAM;AACV,IAAAd,KAAYD,KAAcK,MAAkBJ,KACnCD,KAGTK,KAAiB,MACfG,EAAS,YACX,aAAaA,EAAS,OAAO,GAC7BA,EAAS,UAAU,OAEVT;KAEZ,CAACE,GAAUD,GAAYD,GAAYM,CAAa,CAAC;AAC9C,QAAAW,IAAgBC,EAAmBZ,CAAa;AAEtD,SAAIT,IAEA,gBAAAsB;AAAA,IAAC1B;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,aAAaK;AAAA,MACb,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAsB,EAACC,GAAY,EAAA,YAAYlB,GACvB,UAAA,gBAAAiB,EAACE,IAAW,CAAA,GACd;AAAA,QACA,gBAAAF;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,QAAQN,EAAc,SAAS,IAAI,KAAK;AAAA,YACxC,WAAWZ;AAAA,YACX,QAAQD;AAAA,YAEP,UAAAa;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAMH,gBAAAG,EAAAG,GAAA,EAAK,QAAQN,EAAc,SAAS,IAAI,KAAK,IAAI,WAAWZ,GAAa,QAAQD,GAC/E,UACHa,EAAA,CAAA;AAEJ,GAEeO,IAAAC,EAAK7B,CAAK;"}
@@ -0,0 +1,12 @@
1
+ import { useState as n, useCallback as l, useEffect as a } from "react";
2
+ const o = () => {
3
+ const [t, e] = n(document.visibilityState === "visible"), i = l(() => {
4
+ const s = document.visibilityState === "visible";
5
+ e(s);
6
+ }, [e]);
7
+ return a(() => (document.addEventListener("visibilitychange", i), () => document.removeEventListener("visibilitychange", i)), [i]), t;
8
+ }, c = o;
9
+ export {
10
+ c as default
11
+ };
12
+ //# sourceMappingURL=use-visibility-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-visibility-change.js","sources":["../../../src/features/hooks/use-visibility-change.tsx"],"sourcesContent":["import { useEffect, useState, useCallback } from 'react';\n\n/**\n * Custom hook to detect visibility change of the document.\n * Returns true if the document is visible, false otherwise.\n */\nconst useVisibilityChange = () => {\n const [isVisible, setIsVisible] = useState(document.visibilityState === 'visible');\n\n const onVisibilityChange = useCallback(() => {\n const isVisibleState = document.visibilityState === 'visible';\n\n setIsVisible(isVisibleState);\n }, [setIsVisible]);\n\n useEffect(() => {\n document.addEventListener('visibilitychange', onVisibilityChange);\n\n return () => document.removeEventListener('visibilitychange', onVisibilityChange);\n }, [onVisibilityChange]);\n\n return isVisible;\n};\n\nexport default useVisibilityChange;\n"],"names":["useVisibilityChange","isVisible","setIsVisible","useState","onVisibilityChange","useCallback","isVisibleState","useEffect","useVisibilityChange$1"],"mappings":";AAMA,MAAMA,IAAsB,MAAM;AAChC,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,SAAS,oBAAoB,SAAS,GAE3EC,IAAqBC,EAAY,MAAM;AACrC,UAAAC,IAAiB,SAAS,oBAAoB;AAEpD,IAAAJ,EAAaI,CAAc;AAAA,EAAA,GAC1B,CAACJ,CAAY,CAAC;AAEjB,SAAAK,EAAU,OACC,SAAA,iBAAiB,oBAAoBH,CAAkB,GAEzD,MAAM,SAAS,oBAAoB,oBAAoBA,CAAkB,IAC/E,CAACA,CAAkB,CAAC,GAEhBH;AACT,GAEAO,IAAeR;"}
@@ -15,7 +15,10 @@ const _ = {
15
15
  DESMOS_CALCULATOR: 2,
16
16
  GOAL_CHAPTER_SHEETS_MENU: 4,
17
17
  JOURNEY_OVERLAY: 1e3,
18
- CHAPTER_COMPLETED_LOTTIE: 5
18
+ CHAPTER_COMPLETED_LOTTIE: 5,
19
+ EXTEND_CLASS_ANIMATION_1: 24,
20
+ EXTEND_CLASS_ANIMATION_2: 25,
21
+ EXTEND_CLASS_ANIMATION_3: 26
19
22
  };
20
23
  export {
21
24
  _ as ZINDEX
@@ -1 +1 @@
1
- {"version":3,"file":"z-index.js","sources":["../../../../src/features/ui/constants/z-index.ts"],"sourcesContent":["const ZINDEX = {\n CHAPTER_CROWN_ICON: 4,\n CHAPTER_PLUS_ICON: 2,\n CHAPTER_PROGRESS_SVG: 2,\n LPAR_SHEET_ITEM_BOTTOM_DASH_BOX: 1,\n LPAR_SHEET_ITEM_TOP_VERTICAL_ICON: 2,\n MODAL: 20,\n SAT_SUMMARY_SCORE: 25, //* SAT_SUMMARY_SCORE > MODAL\n CANVAS_SCRIBBLING: 26, //* CANVAS_SCRIBBLING > Learnosity\n TILE_CONTAINER: 30, //whiteboard\n QUESTION_TIPS: -1,\n DESMOS_CALCULATOR: 2,\n GOAL_CHAPTER_SHEETS_MENU: 4,\n JOURNEY_OVERLAY: 1000,\n CHAPTER_COMPLETED_LOTTIE: 5,\n} as const;\n\nexport { ZINDEX };\n"],"names":["ZINDEX"],"mappings":"AAAA,MAAMA,IAAS;AAAA,EACb,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,iCAAiC;AAAA,EACjC,mCAAmC;AAAA,EACnC,OAAO;AAAA,EACP,mBAAmB;AAAA;AAAA,EACnB,mBAAmB;AAAA;AAAA,EACnB,gBAAgB;AAAA;AAAA,EAChB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,0BAA0B;AAC5B;"}
1
+ {"version":3,"file":"z-index.js","sources":["../../../../src/features/ui/constants/z-index.ts"],"sourcesContent":["const ZINDEX = {\n CHAPTER_CROWN_ICON: 4,\n CHAPTER_PLUS_ICON: 2,\n CHAPTER_PROGRESS_SVG: 2,\n LPAR_SHEET_ITEM_BOTTOM_DASH_BOX: 1,\n LPAR_SHEET_ITEM_TOP_VERTICAL_ICON: 2,\n MODAL: 20,\n SAT_SUMMARY_SCORE: 25, //* SAT_SUMMARY_SCORE > MODAL\n CANVAS_SCRIBBLING: 26, //* CANVAS_SCRIBBLING > Learnosity\n TILE_CONTAINER: 30, //whiteboard\n QUESTION_TIPS: -1,\n DESMOS_CALCULATOR: 2,\n GOAL_CHAPTER_SHEETS_MENU: 4,\n JOURNEY_OVERLAY: 1000,\n CHAPTER_COMPLETED_LOTTIE: 5,\n EXTEND_CLASS_ANIMATION_1: 24,\n EXTEND_CLASS_ANIMATION_2: 25,\n EXTEND_CLASS_ANIMATION_3: 26,\n} as const;\n\nexport { ZINDEX };\n"],"names":["ZINDEX"],"mappings":"AAAA,MAAMA,IAAS;AAAA,EACb,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,iCAAiC;AAAA,EACjC,mCAAmC;AAAA,EACnC,OAAO;AAAA,EACP,mBAAmB;AAAA;AAAA,EACnB,mBAAmB;AAAA;AAAA,EACnB,gBAAgB;AAAA;AAAA,EAChB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,0BAA0B;AAC5B;"}
@@ -10,6 +10,7 @@ const a = o.div`
10
10
  height: 100%;
11
11
  z-index: ${({ $zIndex: t }) => t ?? 999};
12
12
  pointer-events: ${({ $isOpen: t }) => t ? "auto" : "none"};
13
+ overflow: hidden;
13
14
  `, s = o(e)`
14
15
  position: absolute;
15
16
  top: 0;
@@ -19,7 +20,8 @@ const a = o.div`
19
20
  transform: ${({ $isOpen: t, $position: i }) => t ? "translateX(0)" : i === "left" ? "translateX(-100%)" : "translateX(100%)"};
20
21
  transition: transform 0.3s ease-in-out;
21
22
  height: 100%;
22
- `, p = o(e)`
23
+ overflow-y: auto;
24
+ `, l = o(e)`
23
25
  position: absolute;
24
26
  inset: 0;
25
27
  backdrop-filter: blur(40px);
@@ -27,7 +29,7 @@ const a = o.div`
27
29
  transition: opacity 0.3s ease-in-out;
28
30
  `;
29
31
  export {
30
- p as DrawerBackdrop,
32
+ l as DrawerBackdrop,
31
33
  a as DrawerContainer,
32
34
  s as DrawerPanel
33
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-styled.js","sources":["../../../../src/features/ui/drawer/drawer-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\n\ninterface DrawerContainerProps {\n $isOpen: boolean;\n $position: 'left' | 'right';\n $zIndex?: number;\n}\n\ninterface DrawerPanelProps extends DrawerContainerProps {\n $drawerWidth: number | string;\n}\n\nexport const DrawerContainer = styled.div<DrawerContainerProps>`\n position: fixed;\n top: 0;\n bottom: 0;\n left: ${({ $position }) => ($position === 'left' ? 0 : 'auto')};\n right: ${({ $position }) => ($position === 'right' ? 0 : 'auto')};\n width: 100%;\n height: 100%;\n z-index: ${({ $zIndex }) => $zIndex ?? 999};\n pointer-events: ${({ $isOpen }) => ($isOpen ? 'auto' : 'none')};\n`;\n\nexport const DrawerPanel = styled(FlexView)<DrawerPanelProps>`\n position: absolute;\n top: 0;\n bottom: 0;\n ${({ $position }) => ($position === 'left' ? 'left: 0;' : 'right: 0;')}\n width: ${({ $drawerWidth }) =>\n typeof $drawerWidth === 'number' ? `${$drawerWidth}px` : $drawerWidth};\n transform: ${({ $isOpen, $position }) =>\n $isOpen ? 'translateX(0)' : $position === 'left' ? 'translateX(-100%)' : 'translateX(100%)'};\n transition: transform 0.3s ease-in-out;\n height: 100%;\n`;\n\nexport const DrawerBackdrop = styled(FlexView)<{ $isOpen: boolean }>`\n position: absolute;\n inset: 0;\n backdrop-filter: blur(40px);\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n transition: opacity 0.3s ease-in-out;\n`;\n"],"names":["DrawerContainer","styled","$position","$zIndex","$isOpen","DrawerPanel","FlexView","$drawerWidth","DrawerBackdrop"],"mappings":";;AAcO,MAAMA,IAAkBC,EAAO;AAAA;AAAA;AAAA;AAAA,UAI5B,CAAC,EAAE,WAAAC,QAAiBA,MAAc,SAAS,IAAI,MAAO;AAAA,WACrD,CAAC,EAAE,WAAAA,QAAiBA,MAAc,UAAU,IAAI,MAAO;AAAA;AAAA;AAAA,aAGrD,CAAC,EAAE,SAAAC,QAAcA,KAAW,GAAG;AAAA,oBACxB,CAAC,EAAE,SAAAC,EAAA,MAAeA,IAAU,SAAS,MAAO;AAAA,GAGnDC,IAAcJ,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,IAItC,CAAC,EAAE,WAAAJ,QAAiBA,MAAc,SAAS,aAAa,WAAY;AAAA,WAC7D,CAAC,EAAE,cAAAK,EACV,MAAA,OAAOA,KAAiB,WAAW,GAAGA,CAAY,OAAOA,CAAY;AAAA,eAC1D,CAAC,EAAE,SAAAH,GAAS,WAAAF,QACvBE,IAAU,kBAAkBF,MAAc,SAAS,sBAAsB,kBAAkB;AAAA;AAAA;AAAA,GAKlFM,IAAiBP,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,aAIhC,CAAC,EAAE,SAAAF,EAAA,MAAeA,IAAU,IAAI,CAAE;AAAA;AAAA;"}
1
+ {"version":3,"file":"drawer-styled.js","sources":["../../../../src/features/ui/drawer/drawer-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\n\ninterface DrawerContainerProps {\n $isOpen: boolean;\n $position: 'left' | 'right';\n $zIndex?: number;\n}\n\ninterface DrawerPanelProps extends DrawerContainerProps {\n $drawerWidth: number | string;\n}\n\nexport const DrawerContainer = styled.div<DrawerContainerProps>`\n position: fixed;\n top: 0;\n bottom: 0;\n left: ${({ $position }) => ($position === 'left' ? 0 : 'auto')};\n right: ${({ $position }) => ($position === 'right' ? 0 : 'auto')};\n width: 100%;\n height: 100%;\n z-index: ${({ $zIndex }) => $zIndex ?? 999};\n pointer-events: ${({ $isOpen }) => ($isOpen ? 'auto' : 'none')};\n overflow: hidden;\n`;\n\nexport const DrawerPanel = styled(FlexView)<DrawerPanelProps>`\n position: absolute;\n top: 0;\n bottom: 0;\n ${({ $position }) => ($position === 'left' ? 'left: 0;' : 'right: 0;')}\n width: ${({ $drawerWidth }) =>\n typeof $drawerWidth === 'number' ? `${$drawerWidth}px` : $drawerWidth};\n transform: ${({ $isOpen, $position }) =>\n $isOpen ? 'translateX(0)' : $position === 'left' ? 'translateX(-100%)' : 'translateX(100%)'};\n transition: transform 0.3s ease-in-out;\n height: 100%;\n overflow-y: auto;\n`;\n\nexport const DrawerBackdrop = styled(FlexView)<{ $isOpen: boolean }>`\n position: absolute;\n inset: 0;\n backdrop-filter: blur(40px);\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n transition: opacity 0.3s ease-in-out;\n`;\n"],"names":["DrawerContainer","styled","$position","$zIndex","$isOpen","DrawerPanel","FlexView","$drawerWidth","DrawerBackdrop"],"mappings":";;AAcO,MAAMA,IAAkBC,EAAO;AAAA;AAAA;AAAA;AAAA,UAI5B,CAAC,EAAE,WAAAC,QAAiBA,MAAc,SAAS,IAAI,MAAO;AAAA,WACrD,CAAC,EAAE,WAAAA,QAAiBA,MAAc,UAAU,IAAI,MAAO;AAAA;AAAA;AAAA,aAGrD,CAAC,EAAE,SAAAC,QAAcA,KAAW,GAAG;AAAA,oBACxB,CAAC,EAAE,SAAAC,EAAA,MAAeA,IAAU,SAAS,MAAO;AAAA;AAAA,GAInDC,IAAcJ,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,IAItC,CAAC,EAAE,WAAAJ,QAAiBA,MAAc,SAAS,aAAa,WAAY;AAAA,WAC7D,CAAC,EAAE,cAAAK,EACV,MAAA,OAAOA,KAAiB,WAAW,GAAGA,CAAY,OAAOA,CAAY;AAAA,eAC1D,CAAC,EAAE,SAAAH,GAAS,WAAAF,QACvBE,IAAU,kBAAkBF,MAAc,SAAS,sBAAsB,kBAAkB;AAAA;AAAA;AAAA;AAAA,GAMlFM,IAAiBP,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,aAIhC,CAAC,EAAE,SAAAF,EAAA,MAAeA,IAAU,IAAI,CAAE;AAAA;AAAA;"}
@@ -1,22 +1,22 @@
1
- import { addYears as s } from "../../node_modules/date-fns/addYears.js";
2
- const i = (r) => Array.isArray(r) && r.length > 0, c = (r) => {
3
- const t = (a) => a.toString().padStart(2, "0"), o = Math.floor(r / 3600), e = Math.floor(r % 3600 / 60), n = r % 60;
4
- return o > 0 ? `${t(o)}:${t(e)}:${t(n)}` : `${t(e)}:${t(n)}`;
5
- }, l = (r) => {
6
- let t = null;
7
- return { promise: new Promise((e) => {
8
- t = setTimeout(() => {
9
- e("resolved");
10
- }, r);
11
- }), timerId: t };
12
- }, p = () => {
13
- const t = s(/* @__PURE__ */ new Date(), 1);
14
- return Math.floor(t.getTime() / 1e3);
1
+ import { addYears as m } from "../../node_modules/date-fns/addYears.js";
2
+ const c = (t) => Array.isArray(t) && t.length > 0, l = (t, e = !0) => {
3
+ const r = (s) => s.toString().padStart(2, "0"), o = Math.floor(t / 3600), n = Math.floor(t % 3600 / 60), a = t % 60;
4
+ return e ? o > 0 ? `${r(o)}:${r(n)}:${r(a)}` : `${r(n)}:${r(a)}` : `${r(n)}:${r(a)}`;
5
+ }, p = (t) => {
6
+ let e = null;
7
+ return { promise: new Promise((o) => {
8
+ e = setTimeout(() => {
9
+ o("resolved");
10
+ }, t);
11
+ }), timerId: e };
12
+ }, u = () => {
13
+ const e = m(/* @__PURE__ */ new Date(), 1);
14
+ return Math.floor(e.getTime() / 1e3);
15
15
  };
16
16
  export {
17
- l as delay,
18
- p as epochTimestampAfterOneYear,
19
- c as formatTimeInHHMMSS,
20
- i as isNonEmptyArray
17
+ p as delay,
18
+ u as epochTimestampAfterOneYear,
19
+ l as formatTimeInHHMMSS,
20
+ c as isNonEmptyArray
21
21
  };
22
22
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/features/utils/utils.ts"],"sourcesContent":["import { addYears } from 'date-fns';\n\nconst isNonEmptyArray = (array: unknown) => {\n return Array.isArray(array) && array.length > 0;\n};\n\n// format the time in HH:MM:SS\nconst formatTimeInHHMMSS = (seconds: number) => {\n const pad = (num: number) => num.toString().padStart(2, '0');\n\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n\n return h > 0 ? `${pad(h)}:${pad(m)}:${pad(s)}` : `${pad(m)}:${pad(s)}`;\n};\n\nconst delay = (delayInMs: number) => {\n let timerId: ReturnType<typeof setTimeout> | null = null;\n const promise = new Promise(res => {\n timerId = setTimeout(() => {\n res('resolved');\n }, delayInMs);\n });\n\n return { promise, timerId };\n};\n\nconst epochTimestampAfterOneYear = () => {\n const today = new Date();\n const oneYearLater = addYears(today, 1);\n\n return Math.floor(oneYearLater.getTime() / 1000);\n};\n\nexport { isNonEmptyArray, formatTimeInHHMMSS, delay, epochTimestampAfterOneYear };\n"],"names":["isNonEmptyArray","array","formatTimeInHHMMSS","seconds","pad","num","h","m","s","delay","delayInMs","timerId","res","epochTimestampAfterOneYear","oneYearLater","addYears"],"mappings":";AAEM,MAAAA,IAAkB,CAACC,MAChB,MAAM,QAAQA,CAAK,KAAKA,EAAM,SAAS,GAI1CC,IAAqB,CAACC,MAAoB;AACxC,QAAAC,IAAM,CAACC,MAAgBA,EAAI,WAAW,SAAS,GAAG,GAAG,GAErDC,IAAI,KAAK,MAAMH,IAAU,IAAI,GAC7BI,IAAI,KAAK,MAAOJ,IAAU,OAAQ,EAAE,GACpCK,IAAIL,IAAU;AAEb,SAAAG,IAAI,IAAI,GAAGF,EAAIE,CAAC,CAAC,IAAIF,EAAIG,CAAC,CAAC,IAAIH,EAAII,CAAC,CAAC,KAAK,GAAGJ,EAAIG,CAAC,CAAC,IAAIH,EAAII,CAAC,CAAC;AACtE,GAEMC,IAAQ,CAACC,MAAsB;AACnC,MAAIC,IAAgD;AAO7C,SAAA,EAAE,SANO,IAAI,QAAQ,CAAOC,MAAA;AACjC,IAAAD,IAAU,WAAW,MAAM;AACzB,MAAAC,EAAI,UAAU;AAAA,OACbF,CAAS;AAAA,EAAA,CACb,GAEiB,SAAAC;AACpB,GAEME,IAA6B,MAAM;AAEjC,QAAAC,IAAeC,sBADH,QACmB,CAAC;AAEtC,SAAO,KAAK,MAAMD,EAAa,YAAY,GAAI;AACjD;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/features/utils/utils.ts"],"sourcesContent":["import { addYears } from 'date-fns';\n\nconst isNonEmptyArray = (array: unknown) => {\n return Array.isArray(array) && array.length > 0;\n};\n\n// format the time in HH:MM:SS\nconst formatTimeInHHMMSS = (seconds: number, includeHours: boolean = true) => {\n const pad = (num: number) => num.toString().padStart(2, '0');\n\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n\n if (!includeHours) {\n return `${pad(m)}:${pad(s)}`;\n }\n\n return h > 0 ? `${pad(h)}:${pad(m)}:${pad(s)}` : `${pad(m)}:${pad(s)}`;\n};\n\nconst delay = (delayInMs: number) => {\n let timerId: ReturnType<typeof setTimeout> | null = null;\n const promise = new Promise(res => {\n timerId = setTimeout(() => {\n res('resolved');\n }, delayInMs);\n });\n\n return { promise, timerId };\n};\n\nconst epochTimestampAfterOneYear = () => {\n const today = new Date();\n const oneYearLater = addYears(today, 1);\n\n return Math.floor(oneYearLater.getTime() / 1000);\n};\n\nexport { isNonEmptyArray, formatTimeInHHMMSS, delay, epochTimestampAfterOneYear };\n"],"names":["isNonEmptyArray","array","formatTimeInHHMMSS","seconds","includeHours","pad","num","h","m","s","delay","delayInMs","timerId","res","epochTimestampAfterOneYear","oneYearLater","addYears"],"mappings":";AAEM,MAAAA,IAAkB,CAACC,MAChB,MAAM,QAAQA,CAAK,KAAKA,EAAM,SAAS,GAI1CC,IAAqB,CAACC,GAAiBC,IAAwB,OAAS;AACtE,QAAAC,IAAM,CAACC,MAAgBA,EAAI,WAAW,SAAS,GAAG,GAAG,GAErDC,IAAI,KAAK,MAAMJ,IAAU,IAAI,GAC7BK,IAAI,KAAK,MAAOL,IAAU,OAAQ,EAAE,GACpCM,IAAIN,IAAU;AAEpB,SAAKC,IAIEG,IAAI,IAAI,GAAGF,EAAIE,CAAC,CAAC,IAAIF,EAAIG,CAAC,CAAC,IAAIH,EAAII,CAAC,CAAC,KAAK,GAAGJ,EAAIG,CAAC,CAAC,IAAIH,EAAII,CAAC,CAAC,KAH3D,GAAGJ,EAAIG,CAAC,CAAC,IAAIH,EAAII,CAAC,CAAC;AAI9B,GAEMC,IAAQ,CAACC,MAAsB;AACnC,MAAIC,IAAgD;AAO7C,SAAA,EAAE,SANO,IAAI,QAAQ,CAAOC,MAAA;AACjC,IAAAD,IAAU,WAAW,MAAM;AACzB,MAAAC,EAAI,UAAU;AAAA,OACbF,CAAS;AAAA,EAAA,CACb,GAEiB,SAAAC;AACpB,GAEME,IAA6B,MAAM;AAEjC,QAAAC,IAAeC,sBADH,QACmB,CAAC;AAEtC,SAAO,KAAK,MAAMD,EAAa,YAAY,GAAI;AACjD;"}
package/dist/index.d.ts CHANGED
@@ -320,10 +320,14 @@ export declare const CircularStepWrapper: NamedExoticComponent<ICircularStepWrap
320
320
 
321
321
  export declare const ClaimUserAccount: NamedExoticComponent<IClaimUserAccountProps>;
322
322
 
323
+ export declare const ClassTime: MemoExoticComponent<(props: IClassTimeProps) => JSX.Element | null>;
324
+
323
325
  export declare const Clickable: React_2.FC<IClickableProps>;
324
326
 
325
327
  export declare const ClipboardIcon: React.FC<React.SVGProps<SVGSVGElement>>;
326
328
 
329
+ export declare const Clock: MemoExoticComponent<({ completionTime, onComplete, startedOn, textVariant, textColor, }: IClockProps) => JSX.Element | null>;
330
+
327
331
  export declare const Clock2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
328
332
 
329
333
  export declare const ClockIcon: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -569,6 +573,8 @@ declare interface FlexViewProps {
569
573
  $flex?: number;
570
574
  }
571
575
 
576
+ export declare const formatTimeInHHMMSS: (seconds: number, includeHours?: boolean) => string;
577
+
572
578
  export declare interface Game extends BaseProject {
573
579
  isPlayed: boolean;
574
580
  }
@@ -628,6 +634,7 @@ export declare const GIF: {
628
634
  GAMES: string;
629
635
  JIGII_WAVE: string;
630
636
  LEARNING_SESSION: string;
637
+ LEARNING_SESSION_GRID_BG: string;
631
638
  MAX_WAVE: string;
632
639
  PUZZLES: string;
633
640
  SCHOOL_SUCCESS: string;
@@ -641,7 +648,9 @@ export declare const GIF: {
641
648
  TRACK_PROGRESS: string;
642
649
  VINNIE_WAVE: string;
643
650
  WAY_FORWARD: string;
651
+ WAY_FORWARD_GRID_BG: string;
644
652
  YOUR_GOALS: string;
653
+ YOUR_GOALS_GRID_BG: string;
645
654
  };
646
655
 
647
656
  declare const GOAL_CATEGORY: {
@@ -1272,6 +1281,25 @@ export declare interface IClassTimeAlertConfig {
1272
1281
  onComplete: () => void;
1273
1282
  }
1274
1283
 
1284
+ declare interface IClassTimeProps {
1285
+ backgroundColor?: TColorNames;
1286
+ onAnimation?: () => void;
1287
+ onComplete?: () => void;
1288
+ onExtendClass?: () => void;
1289
+ onExtendedTimeStart?: () => void;
1290
+ onTMinusOne?: () => void;
1291
+ showExtendIcon?: boolean;
1292
+ showExtendText?: boolean;
1293
+ status?: {
1294
+ class_duration: number;
1295
+ classStartedTime: Date;
1296
+ extended_time: number;
1297
+ ongoing: boolean;
1298
+ } | null;
1299
+ updateWithExtendedTime?: boolean;
1300
+ multiReminders: MultiReminder[];
1301
+ }
1302
+
1275
1303
  export declare interface IClickableAnalyticsProps {
1276
1304
  label?: string;
1277
1305
  analyticsLabel?: string;
@@ -1285,6 +1313,14 @@ declare interface IClickableProps extends IClickableAnalyticsProps {
1285
1313
  children: React_2.ReactNode;
1286
1314
  }
1287
1315
 
1316
+ declare interface IClockProps {
1317
+ completionTime?: number | null;
1318
+ onComplete?: () => void;
1319
+ startedOn: Date;
1320
+ textVariant?: TTextVariants;
1321
+ textColor?: TColorNames;
1322
+ }
1323
+
1288
1324
  declare interface ICoachMarkCompletion {
1289
1325
  CIRCLE_ACTIVITIES_INTRO_JOURNEY: boolean;
1290
1326
  CIRCLE_LEADERBOARD_INTRO_JOURNEY: boolean;
@@ -2118,13 +2154,19 @@ export declare const ILLUSTRATIONS: {
2118
2154
  ALIEN_2: string;
2119
2155
  ALIEN_3: string;
2120
2156
  ALIEN_4: string;
2157
+ ARROW_BOARD_GREEN: string;
2121
2158
  BLUE_CLIP: string;
2159
+ BOOK_CHECKED_GREEN: string;
2160
+ BOOK_CHECKED_ORANGE: string;
2161
+ BOOK_CHECKED_PURPLE: string;
2122
2162
  BOOK_GREEN: string;
2123
2163
  BOOK_OPEN_BLUE: string;
2124
2164
  BOOK_ORANGE: string;
2125
2165
  BOOK_YELLOW: string;
2126
2166
  BULLET_YELLOW: string;
2127
2167
  CALENDAR_BLUE: string;
2168
+ CALENDAR_CHECK_GREEN: string;
2169
+ CALENDAR_CROSS_ORANGE: string;
2128
2170
  CALENDAR_GRAY: string;
2129
2171
  CALENDAR_GREEN: string;
2130
2172
  CALENDAR_PURPLE: string;
@@ -2158,6 +2200,7 @@ export declare const ILLUSTRATIONS: {
2158
2200
  DURATION_90MIN_GRAY: string;
2159
2201
  EARTH_GREEN: string;
2160
2202
  ELLIPSE_CLIP: string;
2203
+ EQUAL_OUTLINED: string;
2161
2204
  FEMALE_AVATAR: string;
2162
2205
  GAME_PLAY: string;
2163
2206
  GLOBE_WITH_BLUE_FILL: string;
@@ -2168,6 +2211,9 @@ export declare const ILLUSTRATIONS: {
2168
2211
  GREEN_BALLOON: string;
2169
2212
  GREEN_FACE: string;
2170
2213
  HANDSHAKE: string;
2214
+ HANDSHAKE_GREEN: string;
2215
+ HEART_OUTLINED: string;
2216
+ KNOWLEDGE_BLUE: string;
2171
2217
  LEARNED_SHIELD_GRAY: string;
2172
2218
  LEARNED_SHIELD_GREEN: string;
2173
2219
  LEARNT: string;
@@ -2206,6 +2252,8 @@ export declare const ILLUSTRATIONS: {
2206
2252
  ORANGE_FACE: string;
2207
2253
  PARENT_AVATAR: string;
2208
2254
  PEOPLE_WITH_ORANGE_FILL: string;
2255
+ PLATFORM_GREEN: string;
2256
+ PLATFORM_PURPLE: string;
2209
2257
  PLAY: string;
2210
2258
  PLAY_ICON: string;
2211
2259
  POINTS_SUM: string;
@@ -2221,6 +2269,8 @@ export declare const ILLUSTRATIONS: {
2221
2269
  PUZZLE_PATTERN_PURPLE: string;
2222
2270
  PUZZLE_PATTERN_YELLOW: string;
2223
2271
  PUZZLE_STUDENT: string;
2272
+ RADIAL_GRADIENT_BG: string;
2273
+ RADIAL_GRADIENT_BG_2: string;
2224
2274
  REFUND_POLICY: string;
2225
2275
  REFUND_POLICY_WITH_HEADPHONE: string;
2226
2276
  REPORT_404: string;
@@ -2230,10 +2280,12 @@ export declare const ILLUSTRATIONS: {
2230
2280
  SMILEY: string;
2231
2281
  STAR_ORANGE: string;
2232
2282
  STAR_ORANGE_FILLED: string;
2283
+ STAR_OUTLINED: string;
2233
2284
  STAR_WITH_GREEN_FILL: string;
2234
2285
  STREAK_GREEN: string;
2235
2286
  STREAK_WHITE: string;
2236
2287
  STRIPE_BLURPLE: string;
2288
+ STUDENT_AVATAR: string;
2237
2289
  TEST_DIFFICULTY_EASY: string;
2238
2290
  TEST_DIFFICULTY_HARD: string;
2239
2291
  TEST_DIFFICULTY_MEDIUM: string;
@@ -2243,6 +2295,7 @@ export declare const ILLUSTRATIONS: {
2243
2295
  TROPHY_BLUE_FILLED: string;
2244
2296
  TROPHY_CIRCLE: string;
2245
2297
  TROPHY_GREEN: string;
2298
+ TROPHY_OUTLINED: string;
2246
2299
  TRUSTPILOT: string;
2247
2300
  TWO_STARS_FILLED: string;
2248
2301
  UP_ARROW: string;
@@ -3824,6 +3877,18 @@ declare interface ITimeLeftTimelineProps {
3824
3877
  showRemainingTime?: boolean;
3825
3878
  }
3826
3879
 
3880
+ declare interface ITimerProps {
3881
+ styledTimer?: boolean;
3882
+ backgroundColor?: TColorNames;
3883
+ endTime: number;
3884
+ onComplete?: () => void;
3885
+ onReminder?: () => void;
3886
+ reminder?: number;
3887
+ iconColor?: TColorNames;
3888
+ textColor?: TColorNames;
3889
+ textVariant?: TTextVariants;
3890
+ }
3891
+
3827
3892
  declare interface ITimeStampsResponseModel {
3828
3893
  current: number;
3829
3894
  start_timestamp: number;
@@ -4496,6 +4561,7 @@ export declare const LOTTIE: {
4496
4561
  BRONZE_1: string;
4497
4562
  BRONZE_2: string;
4498
4563
  BRONZE_3: string;
4564
+ CALENDAR_HOUR_GLASS_ORANGE: string;
4499
4565
  CENT: string;
4500
4566
  CHAPTER_COMPLETED: string;
4501
4567
  CIRCULAR_LOADER: string;
@@ -4601,6 +4667,8 @@ export declare const LOTTIE: {
4601
4667
  TABLE_MODE_STAR: string;
4602
4668
  TABLE_SEGMENT_STAR: string;
4603
4669
  TARGET_ACHIEVED_TEXT: string;
4670
+ TEACHER_FOUND: string;
4671
+ TEACHER_SEARCH: string;
4604
4672
  TEACHER_VALIDATION: string;
4605
4673
  TEST: string;
4606
4674
  TOTAL_STREAK: string;
@@ -4652,6 +4720,13 @@ export declare const MoreVerticalIcon: React.FC<React.SVGProps<SVGSVGElement>>;
4652
4720
 
4653
4721
  export declare const MorningIcon: React.FC<React.SVGProps<SVGSVGElement>>;
4654
4722
 
4723
+ declare interface MultiReminder {
4724
+ at: number;
4725
+ callback: () => void;
4726
+ id?: string;
4727
+ persist?: boolean;
4728
+ }
4729
+
4655
4730
  export declare const MultiTabBlocker: FC<PropsWithChildren<IMultiTabBlockerProps>>;
4656
4731
 
4657
4732
  export declare const Next2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -5510,6 +5585,8 @@ export declare const TickIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5510
5585
  */
5511
5586
  export declare const TimeLeftTimeline: React_2.FC<ITimeLeftTimelineProps>;
5512
5587
 
5588
+ export declare const Timer: MemoExoticComponent<({ styledTimer, backgroundColor, endTime, onComplete, onReminder, reminder, iconColor, textColor, textVariant, }: ITimerProps) => JSX.Element>;
5589
+
5513
5590
  export declare type TInclassChannelMetadata = {
5514
5591
  syncModule?: {
5515
5592
  name: 'MILESTONE_CREATE' | 'MILESTONE_EDIT' | 'MILESTONE_REVIEW';
@@ -6611,6 +6688,12 @@ export declare const useTrialSessionMessageBroker: IUseTrialSessionMessageBroker
6611
6688
 
6612
6689
  export declare const useUIContext: () => UIContextProps;
6613
6690
 
6691
+ /**
6692
+ * Custom hook to detect visibility change of the document.
6693
+ * Returns true if the document is visible, false otherwise.
6694
+ */
6695
+ export declare const useVisibilityChange: () => boolean;
6696
+
6614
6697
  export declare const useWorksheetLayout: IUseWorksheetLayout;
6615
6698
 
6616
6699
  export declare const useZoomDisable: () => void;
@@ -6679,6 +6762,9 @@ declare const ZINDEX: {
6679
6762
  readonly GOAL_CHAPTER_SHEETS_MENU: 4;
6680
6763
  readonly JOURNEY_OVERLAY: 1000;
6681
6764
  readonly CHAPTER_COMPLETED_LOTTIE: 5;
6765
+ readonly EXTEND_CLASS_ANIMATION_1: 24;
6766
+ readonly EXTEND_CLASS_ANIMATION_2: 25;
6767
+ readonly EXTEND_CLASS_ANIMATION_3: 26;
6682
6768
  };
6683
6769
 
6684
6770
  export { }