@cuemath/leap 3.5.26 → 3.5.27

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.
@@ -0,0 +1,18 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import n from "../../text/text.js";
3
+ import r from "../hooks/use-time-remaining.js";
4
+ const T = ({
5
+ timeRemaining: t,
6
+ onTimerComplete: e,
7
+ ...o
8
+ }) => {
9
+ const { formattedTime: m } = r({
10
+ initialTimeRemaining: t,
11
+ onTimerComplete: e
12
+ });
13
+ return /* @__PURE__ */ i(n, { ...o, children: m });
14
+ }, f = T;
15
+ export {
16
+ f as default
17
+ };
18
+ //# sourceMappingURL=countdown-text-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countdown-text-timer.js","sources":["../../../../../src/features/ui/timers/countdown-text-timer/countdown-text-timer.tsx"],"sourcesContent":["import { type FC } from 'react';\n\nimport Text, { type TextProps } from '../../text/text';\nimport useTimeRemaining from '../hooks/use-time-remaining';\n\ninterface ICountdownTextTimer extends TextProps {\n timeRemaining: number;\n onTimerComplete?: () => void;\n}\n\nconst CountdownTextTimer: FC<ICountdownTextTimer> = ({\n timeRemaining: initialTimeRemaining,\n onTimerComplete,\n ...textProps\n}) => {\n const { formattedTime } = useTimeRemaining({\n initialTimeRemaining,\n onTimerComplete,\n });\n\n return <Text {...textProps}>{formattedTime}</Text>;\n};\n\nexport default CountdownTextTimer;\n"],"names":["CountdownTextTimer","initialTimeRemaining","onTimerComplete","textProps","formattedTime","useTimeRemaining","jsx","Text","CountdownTextTimer$1"],"mappings":";;;AAUA,MAAMA,IAA8C,CAAC;AAAA,EACnD,eAAeC;AAAA,EACf,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAA,EAAE,eAAAC,EAAc,IAAIC,EAAiB;AAAA,IACzC,sBAAAJ;AAAA,IACA,iBAAAC;AAAA,EAAA,CACD;AAED,SAAQ,gBAAAI,EAAAC,GAAA,EAAM,GAAGJ,GAAY,UAAcC,EAAA,CAAA;AAC7C,GAEAI,IAAeR;"}
@@ -1,74 +1,67 @@
1
- import { jsxs as c, jsx as r } from "react/jsx-runtime";
2
- import { useState as g, useEffect as f } from "react";
3
- import l from "styled-components";
4
- import { ILLUSTRATIONS as R } from "../../../../assets/illustrations/illustrations.js";
5
- import { formatTimeInHHMMSS as $ } from "../../../utils/utils.js";
6
- import d from "../../layout/flex-view.js";
7
- import h from "../../loader/reverse-circular-bar/reverse-circular-bar.js";
8
- import I from "../../text/text.js";
9
- const w = l.div`
1
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
+ import n from "styled-components";
3
+ import { ILLUSTRATIONS as c } from "../../../../assets/illustrations/illustrations.js";
4
+ import m from "../../layout/flex-view.js";
5
+ import p from "../../loader/reverse-circular-bar/reverse-circular-bar.js";
6
+ import f from "../../text/text.js";
7
+ import g from "../hooks/use-time-remaining.js";
8
+ const R = n.div`
10
9
  position: absolute;
11
10
  left: 50%;
12
11
  top: 54%;
13
12
  transform: translate(-50%, -50%);
14
- `, S = l(d)`
13
+ `, $ = n(m)`
15
14
  position: relative;
16
- `, x = ({
17
- hideDigits: o,
18
- onTimerComplete: t,
19
- timeRemaining: i,
20
- duration: p,
21
- theme: n
15
+ `, h = ({
16
+ hideDigits: r,
17
+ onTimerComplete: a,
18
+ timeRemaining: s,
19
+ duration: l,
20
+ theme: t
22
21
  }) => {
23
- const [e, u] = g(i);
24
- f(() => {
25
- const m = setInterval(() => {
26
- u((s) => s <= 1 ? (clearInterval(m), 0) : s - 1);
27
- }, 1e3);
28
- return () => clearInterval(m);
29
- }, []), f(() => {
30
- !e && t && t();
31
- }, [t, e]);
32
- const a = $(e);
33
- return /* @__PURE__ */ c(
34
- d,
22
+ const { timeRemaining: d, formattedTime: i } = g({
23
+ initialTimeRemaining: s,
24
+ onTimerComplete: a
25
+ });
26
+ return /* @__PURE__ */ o(
27
+ m,
35
28
  {
36
29
  $gap: 4,
37
- $gutter: o ? 4 : 8,
38
- $background: n,
30
+ $gutter: r ? 4 : 8,
31
+ $background: t,
39
32
  $flexDirection: "row",
40
33
  $alignItems: "center",
41
34
  $borderRadius: 18,
42
35
  $width: "fit-content",
43
36
  $flexGap: 4,
44
37
  children: [
45
- /* @__PURE__ */ c(S, { children: [
46
- /* @__PURE__ */ r("img", { src: R.CROSSHAIR_CIRCLE, width: 28, height: 28 }),
47
- /* @__PURE__ */ r(w, { children: /* @__PURE__ */ r(
48
- h,
38
+ /* @__PURE__ */ o($, { children: [
39
+ /* @__PURE__ */ e("img", { src: c.CROSSHAIR_CIRCLE, width: 28, height: 28 }),
40
+ /* @__PURE__ */ e(R, { children: /* @__PURE__ */ e(
41
+ p,
49
42
  {
50
- timeRemaining: i,
51
- duration: p,
52
- color: n === "GREEN_1" ? "GREEN_5" : "ORANGE_5",
43
+ timeRemaining: d,
44
+ duration: l,
45
+ color: t === "GREEN_1" ? "GREEN_5" : "ORANGE_5",
53
46
  width: 14,
54
47
  height: 14
55
48
  }
56
49
  ) })
57
50
  ] }),
58
- !o && /* @__PURE__ */ r(
59
- I,
51
+ !r && /* @__PURE__ */ e(
52
+ f,
60
53
  {
61
- $width: a.length > 5 ? 66 : 46,
54
+ $width: i.length > 5 ? 66 : 46,
62
55
  $alignSelf: "center",
63
56
  $renderAs: "eyebrow1",
64
- children: a
57
+ children: i
65
58
  }
66
59
  )
67
60
  ]
68
61
  }
69
62
  );
70
- }, T = x;
63
+ }, S = h;
71
64
  export {
72
- T as default
65
+ S as default
73
66
  };
74
67
  //# sourceMappingURL=countdown-timer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"countdown-timer.js","sources":["../../../../../src/features/ui/timers/countdown-timer/countdown-timer.tsx"],"sourcesContent":["import { useEffect, useState, type FC } from 'react';\nimport styled from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { formatTimeInHHMMSS } from '../../../utils/utils';\nimport FlexView from '../../layout/flex-view';\nimport CircularProgressiveBar from '../../loader/reverse-circular-bar/reverse-circular-bar';\nimport Text from '../../text/text';\n\ninterface ICountdownTimer {\n hideDigits: boolean;\n onTimerComplete?: () => void;\n timeRemaining: number;\n duration: number;\n theme: 'GREEN_1' | 'ORANGE_1';\n}\n\nconst LoaderWrapper = styled.div`\n position: absolute;\n left: 50%;\n top: 54%;\n transform: translate(-50%, -50%);\n`;\n\nconst ImageWrapper = styled(FlexView)`\n position: relative;\n`;\n\nconst CountdownTimer: FC<ICountdownTimer> = ({\n hideDigits,\n onTimerComplete,\n timeRemaining: initialTimeRemaining,\n duration,\n theme,\n}) => {\n const [timeRemaining, setTimeRemaining] = useState<number>(initialTimeRemaining);\n\n useEffect(() => {\n const timerId = setInterval(() => {\n setTimeRemaining(prevTime => {\n if (prevTime <= 1) {\n clearInterval(timerId);\n\n return 0;\n }\n\n return prevTime - 1;\n });\n }, 1000);\n\n return () => clearInterval(timerId);\n }, []);\n\n useEffect(() => {\n if (!timeRemaining && onTimerComplete) {\n onTimerComplete();\n }\n }, [onTimerComplete, timeRemaining]);\n\n const formattedTime = formatTimeInHHMMSS(timeRemaining);\n\n return (\n <FlexView\n $gap={4}\n $gutter={hideDigits ? 4 : 8}\n $background={theme}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $borderRadius={18}\n $width=\"fit-content\"\n $flexGap={4}\n >\n <ImageWrapper>\n <img src={ILLUSTRATIONS.CROSSHAIR_CIRCLE} width={28} height={28} />\n <LoaderWrapper>\n <CircularProgressiveBar\n timeRemaining={initialTimeRemaining}\n duration={duration}\n color={theme === 'GREEN_1' ? 'GREEN_5' : 'ORANGE_5'}\n width={14}\n height={14}\n />\n </LoaderWrapper>\n </ImageWrapper>\n\n {!hideDigits && (\n <Text\n $width={formattedTime.length > 5 ? 66 : 46} // while hour is missing\n $alignSelf=\"center\"\n $renderAs=\"eyebrow1\"\n >\n {formattedTime}\n </Text>\n )}\n </FlexView>\n );\n};\n\nexport default CountdownTimer;\n"],"names":["LoaderWrapper","styled","ImageWrapper","FlexView","CountdownTimer","hideDigits","onTimerComplete","initialTimeRemaining","duration","theme","timeRemaining","setTimeRemaining","useState","useEffect","timerId","prevTime","formattedTime","formatTimeInHHMMSS","jsxs","jsx","ILLUSTRATIONS","CircularProgressiveBar","Text","CountdownTimer$1"],"mappings":";;;;;;;;AAiBA,MAAMA,IAAgBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBC,IAAeD,EAAOE,CAAQ;AAAA;AAAA,GAI9BC,IAAsC,CAAC;AAAA,EAC3C,YAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAeC;AAAA,EACf,UAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACJ,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAiBL,CAAoB;AAE/E,EAAAM,EAAU,MAAM;AACR,UAAAC,IAAU,YAAY,MAAM;AAChC,MAAAH,EAAiB,CAAYI,MACvBA,KAAY,KACd,cAAcD,CAAO,GAEd,KAGFC,IAAW,CACnB;AAAA,OACA,GAAI;AAEA,WAAA,MAAM,cAAcD,CAAO;AAAA,EACpC,GAAG,CAAE,CAAA,GAELD,EAAU,MAAM;AACV,IAAA,CAACH,KAAiBJ,KACJA;EAClB,GACC,CAACA,GAAiBI,CAAa,CAAC;AAE7B,QAAAM,IAAgBC,EAAmBP,CAAa;AAGpD,SAAA,gBAAAQ;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,SAASE,IAAa,IAAI;AAAA,MAC1B,aAAaI;AAAA,MACb,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,eAAe;AAAA,MACf,QAAO;AAAA,MACP,UAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAS,EAAChB,GACC,EAAA,UAAA;AAAA,UAAA,gBAAAiB,EAAC,SAAI,KAAKC,EAAc,kBAAkB,OAAO,IAAI,QAAQ,IAAI;AAAA,4BAChEpB,GACC,EAAA,UAAA,gBAAAmB;AAAA,YAACE;AAAAA,YAAA;AAAA,cACC,eAAed;AAAA,cACf,UAAAC;AAAA,cACA,OAAOC,MAAU,YAAY,YAAY;AAAA,cACzC,OAAO;AAAA,cACP,QAAQ;AAAA,YAAA;AAAA,UAAA,GAEZ;AAAA,QAAA,GACF;AAAA,QAEC,CAACJ,KACA,gBAAAc;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,QAAQN,EAAc,SAAS,IAAI,KAAK;AAAA,YACxC,YAAW;AAAA,YACX,WAAU;AAAA,YAET,UAAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEAO,IAAenB;"}
1
+ {"version":3,"file":"countdown-timer.js","sources":["../../../../../src/features/ui/timers/countdown-timer/countdown-timer.tsx"],"sourcesContent":["import { type FC } from 'react';\nimport styled from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport FlexView from '../../layout/flex-view';\nimport CircularProgressiveBar from '../../loader/reverse-circular-bar/reverse-circular-bar';\nimport Text from '../../text/text';\nimport useTimeRemaining from '../hooks/use-time-remaining';\n\ninterface ICountdownTimer {\n hideDigits: boolean;\n onTimerComplete?: () => void;\n timeRemaining: number;\n duration: number;\n theme: 'GREEN_1' | 'ORANGE_1';\n}\n\nconst LoaderWrapper = styled.div`\n position: absolute;\n left: 50%;\n top: 54%;\n transform: translate(-50%, -50%);\n`;\n\nconst ImageWrapper = styled(FlexView)`\n position: relative;\n`;\n\nconst CountdownTimer: FC<ICountdownTimer> = ({\n hideDigits,\n onTimerComplete,\n timeRemaining: initialTimeRemaining,\n duration,\n theme,\n}) => {\n const { timeRemaining, formattedTime } = useTimeRemaining({\n initialTimeRemaining,\n onTimerComplete,\n });\n\n return (\n <FlexView\n $gap={4}\n $gutter={hideDigits ? 4 : 8}\n $background={theme}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $borderRadius={18}\n $width=\"fit-content\"\n $flexGap={4}\n >\n <ImageWrapper>\n <img src={ILLUSTRATIONS.CROSSHAIR_CIRCLE} width={28} height={28} />\n <LoaderWrapper>\n <CircularProgressiveBar\n timeRemaining={timeRemaining}\n duration={duration}\n color={theme === 'GREEN_1' ? 'GREEN_5' : 'ORANGE_5'}\n width={14}\n height={14}\n />\n </LoaderWrapper>\n </ImageWrapper>\n\n {!hideDigits && (\n <Text\n $width={formattedTime.length > 5 ? 66 : 46} // while hour is missing\n $alignSelf=\"center\"\n $renderAs=\"eyebrow1\"\n >\n {formattedTime}\n </Text>\n )}\n </FlexView>\n );\n};\n\nexport default CountdownTimer;\n"],"names":["LoaderWrapper","styled","ImageWrapper","FlexView","CountdownTimer","hideDigits","onTimerComplete","initialTimeRemaining","duration","theme","timeRemaining","formattedTime","useTimeRemaining","jsxs","jsx","ILLUSTRATIONS","CircularProgressiveBar","Text","CountdownTimer$1"],"mappings":";;;;;;;AAiBA,MAAMA,IAAgBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBC,IAAeD,EAAOE,CAAQ;AAAA;AAAA,GAI9BC,IAAsC,CAAC;AAAA,EAC3C,YAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAeC;AAAA,EACf,UAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACJ,QAAM,EAAE,eAAAC,GAAe,eAAAC,EAAc,IAAIC,EAAiB;AAAA,IACxD,sBAAAL;AAAA,IACA,iBAAAD;AAAA,EAAA,CACD;AAGC,SAAA,gBAAAO;AAAA,IAACV;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,SAASE,IAAa,IAAI;AAAA,MAC1B,aAAaI;AAAA,MACb,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,eAAe;AAAA,MACf,QAAO;AAAA,MACP,UAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAI,EAACX,GACC,EAAA,UAAA;AAAA,UAAA,gBAAAY,EAAC,SAAI,KAAKC,EAAc,kBAAkB,OAAO,IAAI,QAAQ,IAAI;AAAA,4BAChEf,GACC,EAAA,UAAA,gBAAAc;AAAA,YAACE;AAAAA,YAAA;AAAA,cACC,eAAAN;AAAA,cACA,UAAAF;AAAA,cACA,OAAOC,MAAU,YAAY,YAAY;AAAA,cACzC,OAAO;AAAA,cACP,QAAQ;AAAA,YAAA;AAAA,UAAA,GAEZ;AAAA,QAAA,GACF;AAAA,QAEC,CAACJ,KACA,gBAAAS;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,QAAQN,EAAc,SAAS,IAAI,KAAK;AAAA,YACxC,YAAW;AAAA,YACX,WAAU;AAAA,YAET,UAAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEAO,IAAed;"}
@@ -0,0 +1,22 @@
1
+ import { useState as f, useEffect as i } from "react";
2
+ import { formatTimeInHHMMSS as u } from "../../../utils/utils.js";
3
+ const c = ({ initialTimeRemaining: a, onTimerComplete: t }) => {
4
+ const [e, m] = f(a);
5
+ i(() => {
6
+ const n = setInterval(() => {
7
+ m((r) => r <= 1 ? (clearInterval(n), 0) : r - 1);
8
+ }, 1e3);
9
+ return () => clearInterval(n);
10
+ }, []), i(() => {
11
+ !e && t && t();
12
+ }, [t, e]);
13
+ const s = u(e);
14
+ return {
15
+ timeRemaining: e,
16
+ formattedTime: s
17
+ };
18
+ }, g = c;
19
+ export {
20
+ g as default
21
+ };
22
+ //# sourceMappingURL=use-time-remaining.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-time-remaining.js","sources":["../../../../../src/features/ui/timers/hooks/use-time-remaining.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { formatTimeInHHMMSS } from '../../../utils/utils';\n\ninterface IUseTimeRemaining {\n (params: { initialTimeRemaining: number; onTimerComplete?: () => void }): {\n timeRemaining: number;\n formattedTime: string;\n };\n}\n\nconst useTimeRemaining: IUseTimeRemaining = ({ initialTimeRemaining, onTimerComplete }) => {\n const [timeRemaining, setTimeRemaining] = useState<number>(initialTimeRemaining);\n\n useEffect(() => {\n const timerId = setInterval(() => {\n setTimeRemaining(prevTime => {\n if (prevTime <= 1) {\n clearInterval(timerId);\n\n return 0;\n }\n\n return prevTime - 1;\n });\n }, 1000);\n\n return () => clearInterval(timerId);\n }, []);\n\n useEffect(() => {\n if (!timeRemaining && onTimerComplete) {\n onTimerComplete();\n }\n }, [onTimerComplete, timeRemaining]);\n\n const formattedTime = formatTimeInHHMMSS(timeRemaining);\n\n return {\n timeRemaining,\n formattedTime,\n };\n};\n\nexport default useTimeRemaining;\n"],"names":["useTimeRemaining","initialTimeRemaining","onTimerComplete","timeRemaining","setTimeRemaining","useState","useEffect","timerId","prevTime","formattedTime","formatTimeInHHMMSS","useTimeRemaining$1"],"mappings":";;AAWA,MAAMA,IAAsC,CAAC,EAAE,sBAAAC,GAAsB,iBAAAC,QAAsB;AACzF,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAiBJ,CAAoB;AAE/E,EAAAK,EAAU,MAAM;AACR,UAAAC,IAAU,YAAY,MAAM;AAChC,MAAAH,EAAiB,CAAYI,MACvBA,KAAY,KACd,cAAcD,CAAO,GAEd,KAGFC,IAAW,CACnB;AAAA,OACA,GAAI;AAEA,WAAA,MAAM,cAAcD,CAAO;AAAA,EACpC,GAAG,CAAE,CAAA,GAELD,EAAU,MAAM;AACV,IAAA,CAACH,KAAiBD,KACJA;EAClB,GACC,CAACA,GAAiBC,CAAa,CAAC;AAE7B,QAAAM,IAAgBC,EAAmBP,CAAa;AAE/C,SAAA;AAAA,IACL,eAAAA;AAAA,IACA,eAAAM;AAAA,EAAA;AAEJ,GAEAE,IAAeX;"}
package/dist/index.d.ts CHANGED
@@ -1,40 +1,40 @@
1
- import type { ButtonHTMLAttributes } from 'react';
2
- import type { Channel } from '@cuemath/cue-message-broker';
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ import { Channel } from '@cuemath/cue-message-broker';
3
3
  import { ChannelStatus } from '@cuemath/cue-message-broker';
4
4
  import { ComponentProps } from 'react';
5
5
  import { ComponentType } from 'react';
6
- import type { Config } from '@lottiefiles/dotlottie-web';
6
+ import { Config } from '@lottiefiles/dotlottie-web';
7
7
  import { Context } from 'react';
8
- import type { Data } from '@lottiefiles/dotlottie-web';
9
- import type { DefaultTheme } from 'styled-components';
8
+ import { Data } from '@lottiefiles/dotlottie-web';
9
+ import { DefaultTheme } from 'styled-components';
10
10
  import { DetailedHTMLProps } from 'react';
11
- import type { Dispatch } from 'react';
12
- import type { EventListener as EventListener_2 } from '@lottiefiles/dotlottie-web';
13
- import type { EventType } from '@lottiefiles/dotlottie-web';
11
+ import { Dispatch } from 'react';
12
+ import { EventListener as EventListener_2 } from '@lottiefiles/dotlottie-web';
13
+ import { EventType } from '@lottiefiles/dotlottie-web';
14
14
  import { FC } from 'react';
15
- import type { FormEvent } from 'react';
15
+ import { FormEvent } from 'react';
16
16
  import { ForwardRefExoticComponent } from 'react';
17
17
  import { HTMLAttributes } from 'react';
18
- import type { HTMLProps } from 'react';
18
+ import { HTMLProps } from 'react';
19
19
  import { IChannelMessage } from '@cuemath/cue-message-broker';
20
- import type { IframeHTMLAttributes } from 'react';
21
- import type { ImgHTMLAttributes } from 'react';
22
- import type { InputHTMLAttributes } from 'react';
20
+ import { IframeHTMLAttributes } from 'react';
21
+ import { ImgHTMLAttributes } from 'react';
22
+ import { InputHTMLAttributes } from 'react';
23
23
  import { IProvidedProps } from 'google-maps-react';
24
24
  import { IStyledComponent } from 'styled-components';
25
25
  import { JSX } from 'react/jsx-runtime';
26
26
  import { MemoExoticComponent } from 'react';
27
- import type { MutableRefObject } from 'react';
27
+ import { MutableRefObject } from 'react';
28
28
  import { NamedExoticComponent } from 'react';
29
29
  import { Omit as Omit_2 } from 'google-maps-react';
30
- import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';
30
+ import { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';
31
31
  import { PropsWithChildren } from 'react';
32
32
  import { ReactElement } from 'react';
33
33
  import { ReactNode } from 'react';
34
34
  import { RefAttributes } from 'react';
35
35
  import { RefObject } from 'react';
36
36
  import { ResourceModel } from '@cuemath/rest-api';
37
- import type { SetStateAction } from 'react';
37
+ import { SetStateAction } from 'react';
38
38
  import { Substitute } from 'styled-components/dist/types';
39
39
  import { SVGProps } from 'react';
40
40
  import { VideoHTMLAttributes } from 'react';
@@ -87,7 +87,7 @@ declare type AnimationSegment = [number, number];
87
87
  export declare const AppLoader: FC<IAppLoaderProps>;
88
88
 
89
89
  export declare const ArcButton: NamedExoticComponent<IArcButtonProps & {
90
- children?: ReactNode | undefined;
90
+ children?: ReactNode | undefined;
91
91
  } & RefAttributes<HTMLDivElement>>;
92
92
 
93
93
  export declare const ArrowTooltip: NamedExoticComponent<IArrowTooltipProps>;
@@ -399,6 +399,8 @@ export declare const ContextMenu: FC<IContextMenuProps>;
399
399
 
400
400
  export declare const CopyIcon: FC<SVGProps<SVGSVGElement>>;
401
401
 
402
+ export declare const CountdownTextTimer: FC<ICountdownTextTimer>;
403
+
402
404
  export declare const CountdownTimer: FC<ICountdownTimer>;
403
405
 
404
406
  export declare const COUNTRY_CODE_MAP: {
@@ -448,7 +450,7 @@ declare interface CueCoinIconProps extends SVGProps<SVGSVGElement> {
448
450
  variant?: 'gold' | 'silver';
449
451
  }
450
452
 
451
- export declare const CuemathAppFeatures: NamedExoticComponent<{}>;
453
+ export declare const CuemathAppFeatures: NamedExoticComponent< {}>;
452
454
 
453
455
  export declare const CuemathLogo: FC<SVGProps<SVGSVGElement>>;
454
456
 
@@ -705,7 +707,7 @@ declare enum GENDER {
705
707
  OTHER = "OTHER"
706
708
  }
707
709
 
708
- export declare const getActiveSATSheet: (sheets: TLPARSheetData[]) => TLPARSheetData;
710
+ export declare const getActiveSATSheet: (sheets: TLPARSheetData[]) => TLPARSheetData | undefined;
709
711
 
710
712
  declare const getArrowTooltipConfig: IGetArrowTooltipConfig;
711
713
 
@@ -1472,6 +1474,11 @@ declare interface IContextMenuProps {
1472
1474
  onMenuVisibilityChange?: (visible: boolean) => void;
1473
1475
  }
1474
1476
 
1477
+ declare interface ICountdownTextTimer extends TextProps {
1478
+ timeRemaining: number;
1479
+ onTimerComplete?: () => void;
1480
+ }
1481
+
1475
1482
  declare interface ICountdownTimer {
1476
1483
  hideDigits: boolean;
1477
1484
  onTimerComplete?: () => void;
@@ -4512,6 +4519,16 @@ declare interface IUseTeacherStickersJourneyProps {
4512
4519
  tooltipConfig: TArrowTooltipConfigProps;
4513
4520
  }
4514
4521
 
4522
+ declare interface IUseTimeRemaining {
4523
+ (params: {
4524
+ initialTimeRemaining: number;
4525
+ onTimerComplete?: () => void;
4526
+ }): {
4527
+ timeRemaining: number;
4528
+ formattedTime: string;
4529
+ };
4530
+ }
4531
+
4515
4532
  declare interface IUseTrialSessionMessageBroker {
4516
4533
  (options: {
4517
4534
  teacherClassroomId?: string;
@@ -5337,7 +5354,7 @@ export declare const OTPInput: NamedExoticComponent<IOTPInputProps>;
5337
5354
  export declare type OutcomeStage = keyof typeof STAGES;
5338
5355
 
5339
5356
  export declare const OverlayLoader: MemoExoticComponent<({ isLoading }: {
5340
- isLoading?: boolean | undefined;
5357
+ isLoading?: boolean | undefined;
5341
5358
  }) => JSX.Element | null>;
5342
5359
 
5343
5360
  export declare const ParentDashboard: NamedExoticComponent<IParentDashboardProps>;
@@ -5673,7 +5690,7 @@ export declare const SheetIcon: FC<SVGProps<SVGSVGElement>>;
5673
5690
  export declare const SheetList: FC<ISheetsListProps>;
5674
5691
 
5675
5692
  export declare const SheetLocked: MemoExoticComponent<({ onHomeClick }: {
5676
- onHomeClick: () => void;
5693
+ onHomeClick: () => void;
5677
5694
  }) => JSX.Element>;
5678
5695
 
5679
5696
  export declare const SignUp: ({ circleOnLeapPremiumDays, circleUsername, countryCode, grade: defaultGrade, state, circleOnLeapPremiumEnabled, studentId, isSignUpProcessing, onCreateUser, onUpdateUser, onSignupStepsComplete, isPLAStudent, }: ISignUpProps) => JSX.Element;
@@ -7206,8 +7223,8 @@ export declare const useGetMilestoneResources: (initialId?: string, initialQuery
7206
7223
 
7207
7224
  export declare const useGetPastMilestoneCount: (initialId?: string, initialQuery?: void | undefined) => {
7208
7225
  get: (id: string, query: void, meta: TQuery_2) => Promise<void>;
7209
- resource: ResourceModel<{
7210
- user_milestones_count: number;
7226
+ resource: ResourceModel< {
7227
+ user_milestones_count: number;
7211
7228
  }> | undefined;
7212
7229
  data: {
7213
7230
  user_milestones_count: number;
@@ -7365,6 +7382,8 @@ export declare const useTeacherPuzzleAssignedJourney: () => {
7365
7382
  startJourney: () => void;
7366
7383
  };
7367
7384
 
7385
+ export declare const useTimeRemaining: IUseTimeRemaining;
7386
+
7368
7387
  export declare const useTrackingContext: (commonAnalyticsProps: Record<string, unknown>, overrides?: Record<string, unknown>) => {
7369
7388
  onClick: TTrackCTA;
7370
7389
  onResponse: TTrackInput;