@cuemath/leap 3.4.5 → 3.4.6-akm-1

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.
@@ -1,70 +1,68 @@
1
1
  import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
- import { useRef as m, useState as i, useCallback as f } from "react";
3
- import C from "../../../../assets/line-icons/icons/cross.js";
2
+ import { forwardRef as C, useRef as m, useState as i, useImperativeHandle as E, useCallback as f } from "react";
3
+ import R from "../../../../assets/line-icons/icons/cross.js";
4
4
  import p from "../../../ui/text/text.js";
5
- import { InfoBar as E } from "../../comps/info-bar/info-bar.js";
6
- import { GameTutorialWrapper as H, GameTutorialHeader as A, HeaderIconContainer as G, GameTutorialContainer as R, VideoContainer as U } from "./tutorial-styled.js";
7
- import { VideoProgressBar as j } from "./video-progress-bar/video-progress-bar.js";
8
- const M = ({
9
- src: h,
10
- title: t,
11
- onCross: n,
12
- showProgress: g = !0,
13
- onTutorialPlayedOnce: o,
14
- isJourneyActive: b
15
- }) => {
16
- const e = m(null), s = m(!1), [I, d] = i(0), [W, $] = i(0), [T, v] = i(null), P = f(
17
- (c) => {
18
- const x = c.target.currentTime || 0, a = c.target.duration || 1, u = x / a * 100;
19
- u >= 90 && !s.current && (s.current = !0, o == null || o()), d(u), $(a);
20
- },
21
- [o]
22
- ), V = f(() => {
23
- e.current && v(e.current.clientWidth);
24
- }, []);
25
- return /* @__PURE__ */ l(H, { children: [
26
- (t || n) && /* @__PURE__ */ l(A, { children: [
27
- t && /* @__PURE__ */ r(p, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: t }),
28
- n && /* @__PURE__ */ r(G, { children: /* @__PURE__ */ r(C, { color: "#fff", onClick: n }) })
29
- ] }),
30
- b && /* @__PURE__ */ r(E, { hue: "PURPLE", children: /* @__PURE__ */ r(
31
- p,
32
- {
33
- $renderOnMobileAs: "ab3-bold",
34
- $renderAs: "ab2-bold",
35
- $color: "WHITE_T_87",
36
- $align: "center",
37
- children: "Understanding the rules is always helpful before you begin."
38
- }
39
- ) }),
40
- /* @__PURE__ */ r(R, { children: /* @__PURE__ */ r(U, { children: /* @__PURE__ */ r(
41
- "video",
42
- {
43
- ref: e,
44
- onPlay: V,
45
- loop: !0,
46
- autoPlay: !0,
47
- muted: !0,
48
- src: h,
49
- onTimeUpdate: P,
50
- disablePictureInPicture: !0,
51
- itemType: "video/mp4",
52
- playsInline: !0
53
- }
54
- ) }) }),
55
- g && e && /* @__PURE__ */ r(
56
- j,
57
- {
58
- ref: e,
59
- progress: I,
60
- duration: W,
61
- setProgress: d,
62
- videoWidth: T || 0
63
- }
64
- )
65
- ] });
66
- };
5
+ import { InfoBar as y } from "../../comps/info-bar/info-bar.js";
6
+ import { GameTutorialWrapper as A, GameTutorialHeader as G, HeaderIconContainer as U, GameTutorialContainer as j, VideoContainer as k } from "./tutorial-styled.js";
7
+ import { VideoProgressBar as w } from "./video-progress-bar/video-progress-bar.js";
8
+ const B = C(
9
+ ({ src: h, title: o, onCross: n, showProgress: g = !0, onTutorialPlayedOnce: t, isJourneyActive: b }, I) => {
10
+ const e = m(null), s = m(!1), [T, a] = i(0), [W, $] = i(0), [V, v] = i(null);
11
+ E(I, () => e.current, []);
12
+ const H = f(
13
+ (d) => {
14
+ const x = d.target.currentTime || 0, c = d.target.duration || 1, u = x / c * 100;
15
+ u >= 90 && !s.current && (s.current = !0, t == null || t()), a(u), $(c);
16
+ },
17
+ [t]
18
+ ), P = f(() => {
19
+ e.current && v(e.current.clientWidth);
20
+ }, []);
21
+ return /* @__PURE__ */ l(A, { children: [
22
+ (o || n) && /* @__PURE__ */ l(G, { children: [
23
+ o && /* @__PURE__ */ r(p, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: o }),
24
+ n && /* @__PURE__ */ r(U, { children: /* @__PURE__ */ r(R, { color: "#fff", onClick: n }) })
25
+ ] }),
26
+ b && /* @__PURE__ */ r(y, { hue: "PURPLE", children: /* @__PURE__ */ r(
27
+ p,
28
+ {
29
+ $renderOnMobileAs: "ab3-bold",
30
+ $renderAs: "ab2-bold",
31
+ $color: "WHITE_T_87",
32
+ $align: "center",
33
+ children: "Understanding the rules is always helpful before you begin."
34
+ }
35
+ ) }),
36
+ /* @__PURE__ */ r(j, { children: /* @__PURE__ */ r(k, { children: /* @__PURE__ */ r(
37
+ "video",
38
+ {
39
+ ref: e,
40
+ onPlay: P,
41
+ loop: !0,
42
+ autoPlay: !0,
43
+ muted: !0,
44
+ src: h,
45
+ onTimeUpdate: H,
46
+ disablePictureInPicture: !0,
47
+ itemType: "video/mp4",
48
+ playsInline: !0
49
+ }
50
+ ) }) }),
51
+ g && /* @__PURE__ */ r(
52
+ w,
53
+ {
54
+ ref: e,
55
+ progress: T,
56
+ duration: W,
57
+ setProgress: a,
58
+ videoWidth: V || 0
59
+ }
60
+ )
61
+ ] });
62
+ }
63
+ );
64
+ B.displayName = "Tutorial";
67
65
  export {
68
- M as Tutorial
66
+ B as Tutorial
69
67
  };
70
68
  //# sourceMappingURL=tutorial.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport { InfoBar } from '../../comps/info-bar/info-bar';\nimport * as Styled from './tutorial-styled';\nimport type { ITutorialProps } from './tutorial-types';\nimport { VideoProgressBar } from './video-progress-bar/video-progress-bar';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n isJourneyActive,\n}: ITutorialProps) => {\n const videoRef = useRef<HTMLVideoElement | null>(null);\n const hasVideoEnded = useRef(false);\n const [progress, setProgress] = useState(0);\n const [duration, setDuration] = useState(0);\n const [videoWidth, setVideoWidth] = useState<number | null>(null);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const current = e.target.currentTime || 0;\n const dur = e.target.duration || 1;\n const p = (current / dur) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n setDuration(dur);\n },\n [onTutorialPlayedOnce],\n );\n\n const onVideoPlay = useCallback(() => {\n if (videoRef.current) {\n setVideoWidth(videoRef.current.clientWidth);\n }\n }, []);\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n {isJourneyActive && (\n <InfoBar hue=\"PURPLE\">\n <Text\n $renderOnMobileAs=\"ab3-bold\"\n $renderAs=\"ab2-bold\"\n $color=\"WHITE_T_87\"\n $align=\"center\"\n >\n Understanding the rules is always helpful before you begin.\n </Text>\n </InfoBar>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n ref={videoRef}\n onPlay={onVideoPlay}\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n playsInline\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && videoRef && (\n <VideoProgressBar\n ref={videoRef}\n progress={progress}\n duration={duration}\n setProgress={setProgress}\n videoWidth={videoWidth || 0}\n />\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","isJourneyActive","videoRef","useRef","hasVideoEnded","progress","setProgress","useState","duration","setDuration","videoWidth","setVideoWidth","onProgress","useCallback","e","current","dur","p","onVideoPlay","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","InfoBar","Styled.GameTutorialContainer","Styled.VideoContainer","VideoProgressBar"],"mappings":";;;;;;;AAUO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AAAA,EACA,iBAAAC;AACF,MAAsB;AACd,QAAAC,IAAWC,EAAgC,IAAI,GAC/CC,IAAgBD,EAAO,EAAK,GAC5B,CAACE,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpC,CAACC,GAAUC,CAAW,IAAIF,EAAS,CAAC,GACpC,CAACG,GAAYC,CAAa,IAAIJ,EAAwB,IAAI,GAE1DK,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,IAAUD,EAAE,OAAO,eAAe,GAClCE,IAAMF,EAAE,OAAO,YAAY,GAC3BG,IAAKF,IAAUC,IAAO;AAE5B,MAAIC,KAAK,MAAM,CAACb,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBM,EAAYW,CAAC,GACbR,EAAYO,CAAG;AAAA,IACjB;AAAA,IACA,CAAChB,CAAoB;AAAA,EAAA,GAGjBkB,IAAcL,EAAY,MAAM;AACpC,IAAIX,EAAS,WACGS,EAAAT,EAAS,QAAQ,WAAW;AAAA,EAE9C,GAAG,CAAE,CAAA;AAGH,SAAA,gBAAAiB,EAACC,GAAA,EACG,UAAA;AAAA,KAAAvB,KAASC,MACT,gBAAAqB,EAACE,GAAA,EACE,UAAA;AAAA,MACCxB,KAAA,gBAAAyB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACH1B,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAwB,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAAS3B,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,IAGDG,KACC,gBAAAqB,EAACI,GAAQ,EAAA,KAAI,UACX,UAAA,gBAAAJ;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,mBAAkB;AAAA,QAClB,WAAU;AAAA,QACV,QAAO;AAAA,QACP,QAAO;AAAA,QACR,UAAA;AAAA,MAAA;AAAA,IAAA,GAGH;AAAA,sBAGDI,GAAA,EACC,UAAC,gBAAAL,EAAAM,GAAA,EACC,UAAA,gBAAAN;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKpB;AAAA,QACL,QAAQgB;AAAA,QACR,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAtB;AAAA,QACA,cAAcgB;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,QACT,aAAW;AAAA,MAAA;AAAA,OAEf,EACF,CAAA;AAAA,IAECb,KAAgBG,KACf,gBAAAoB;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,KAAK3B;AAAA,QACL,UAAAG;AAAA,QACA,UAAAG;AAAA,QACA,aAAAF;AAAA,QACA,YAAYI,KAAc;AAAA,MAAA;AAAA,IAC5B;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ChangeEvent, ForwardedRef } from 'react';\nimport { forwardRef, useCallback, useRef, useState, useImperativeHandle } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport { InfoBar } from '../../comps/info-bar/info-bar';\nimport * as Styled from './tutorial-styled';\nimport type { ITutorialProps } from './tutorial-types';\nimport { VideoProgressBar } from './video-progress-bar/video-progress-bar';\n\nexport const Tutorial = forwardRef<HTMLVideoElement, ITutorialProps>(\n (\n { src, title, onCross, showProgress = true, onTutorialPlayedOnce, isJourneyActive },\n ref: ForwardedRef<HTMLVideoElement>,\n ) => {\n const internalVideoRef = useRef<HTMLVideoElement | null>(null);\n const hasVideoEnded = useRef(false);\n const [progress, setProgress] = useState(0);\n const [duration, setDuration] = useState(0);\n const [videoWidth, setVideoWidth] = useState<number | null>(null);\n\n // Forward the internal ref to the outside\n useImperativeHandle(ref, () => internalVideoRef.current as HTMLVideoElement, []);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const current = e.target.currentTime || 0;\n const dur = e.target.duration || 1;\n const p = (current / dur) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n setDuration(dur);\n },\n [onTutorialPlayedOnce],\n );\n\n const onVideoPlay = useCallback(() => {\n if (internalVideoRef.current) {\n setVideoWidth(internalVideoRef.current.clientWidth);\n }\n }, []);\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n {isJourneyActive && (\n <InfoBar hue=\"PURPLE\">\n <Text\n $renderOnMobileAs=\"ab3-bold\"\n $renderAs=\"ab2-bold\"\n $color=\"WHITE_T_87\"\n $align=\"center\"\n >\n Understanding the rules is always helpful before you begin.\n </Text>\n </InfoBar>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n ref={internalVideoRef}\n onPlay={onVideoPlay}\n loop\n autoPlay\n muted\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture\n itemType=\"video/mp4\"\n playsInline\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <VideoProgressBar\n ref={internalVideoRef}\n progress={progress}\n duration={duration}\n setProgress={setProgress}\n videoWidth={videoWidth || 0}\n />\n )}\n </Styled.GameTutorialWrapper>\n );\n },\n);\n\nTutorial.displayName = 'Tutorial';\n"],"names":["Tutorial","forwardRef","src","title","onCross","showProgress","onTutorialPlayedOnce","isJourneyActive","ref","internalVideoRef","useRef","hasVideoEnded","progress","setProgress","useState","duration","setDuration","videoWidth","setVideoWidth","useImperativeHandle","onProgress","useCallback","e","current","dur","p","onVideoPlay","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","InfoBar","Styled.GameTutorialContainer","Styled.VideoContainer","VideoProgressBar"],"mappings":";;;;;;;AAUO,MAAMA,IAAWC;AAAA,EACtB,CACE,EAAE,KAAAC,GAAK,OAAAC,GAAO,SAAAC,GAAS,cAAAC,IAAe,IAAM,sBAAAC,GAAsB,iBAAAC,EAAgB,GAClFC,MACG;AACG,UAAAC,IAAmBC,EAAgC,IAAI,GACvDC,IAAgBD,EAAO,EAAK,GAC5B,CAACE,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpC,CAACC,GAAUC,CAAW,IAAIF,EAAS,CAAC,GACpC,CAACG,GAAYC,CAAa,IAAIJ,EAAwB,IAAI;AAGhE,IAAAK,EAAoBX,GAAK,MAAMC,EAAiB,SAA6B,CAAE,CAAA;AAE/E,UAAMW,IAAaC;AAAA,MACjB,CAACC,MAAqC;AAC9B,cAAAC,IAAUD,EAAE,OAAO,eAAe,GAClCE,IAAMF,EAAE,OAAO,YAAY,GAC3BG,IAAKF,IAAUC,IAAO;AAE5B,QAAIC,KAAK,MAAM,CAACd,EAAc,YAC5BA,EAAc,UAAU,IACDL,KAAA,QAAAA,MAGzBO,EAAYY,CAAC,GACbT,EAAYQ,CAAG;AAAA,MACjB;AAAA,MACA,CAAClB,CAAoB;AAAA,IAAA,GAGjBoB,IAAcL,EAAY,MAAM;AACpC,MAAIZ,EAAiB,WACLS,EAAAT,EAAiB,QAAQ,WAAW;AAAA,IAEtD,GAAG,CAAE,CAAA;AAGH,WAAA,gBAAAkB,EAACC,GAAA,EACG,UAAA;AAAA,OAAAzB,KAASC,MACT,gBAAAuB,EAACE,GAAA,EACE,UAAA;AAAA,QACC1B,KAAA,gBAAA2B,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACH5B,EAAA,CAAA;AAAA,QAEDC,KACE,gBAAA0B,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAAS7B,EAAA,CAAS,EAC5C,CAAA;AAAA,MAAA,GAEJ;AAAA,MAGDG,KACC,gBAAAuB,EAACI,GAAQ,EAAA,KAAI,UACX,UAAA,gBAAAJ;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,mBAAkB;AAAA,UAClB,WAAU;AAAA,UACV,QAAO;AAAA,UACP,QAAO;AAAA,UACR,UAAA;AAAA,QAAA;AAAA,MAAA,GAGH;AAAA,wBAGDI,GAAA,EACC,UAAC,gBAAAL,EAAAM,GAAA,EACC,UAAA,gBAAAN;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKrB;AAAA,UACL,QAAQiB;AAAA,UACR,MAAI;AAAA,UACJ,UAAQ;AAAA,UACR,OAAK;AAAA,UACL,KAAAxB;AAAA,UACA,cAAckB;AAAA,UACd,yBAAuB;AAAA,UACvB,UAAS;AAAA,UACT,aAAW;AAAA,QAAA;AAAA,SAEf,EACF,CAAA;AAAA,MAECf,KACC,gBAAAyB;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,KAAK5B;AAAA,UACL,UAAAG;AAAA,UACA,UAAAG;AAAA,UACA,aAAAF;AAAA,UACA,YAAYI,KAAc;AAAA,QAAA;AAAA,MAC5B;AAAA,IAEJ,EAAA,CAAA;AAAA,EAEJ;AACF;AAEAjB,EAAS,cAAc;"}
@@ -0,0 +1,44 @@
1
+ import { useCallback as i } from "react";
2
+ import m from "../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js";
3
+ import { useUIContext as E } from "../../ui/context/context.js";
4
+ import { STICKERS_ANALYTICS_EVENT as d } from "../stickers-analytics-events.js";
5
+ import { useStickers as k } from "../stickers-effects/hooks/use-stickers.js";
6
+ import { useStickersErrorLogger as f } from "./use-stickers-error-logger.js";
7
+ const u = (t) => {
8
+ const { publish: e } = m({
9
+ studentClassroomId: t
10
+ }), { onEvent: c } = E(), n = f(), { showSticker: s } = k();
11
+ return i(
12
+ (o, S) => {
13
+ const a = {
14
+ classroom_id: t,
15
+ sticker: o.id
16
+ };
17
+ try {
18
+ const r = {
19
+ message: {
20
+ data: {
21
+ selectedSticker: {
22
+ id: o.id,
23
+ name: o.name
24
+ },
25
+ effectId: S
26
+ }
27
+ },
28
+ type: "STICKERS"
29
+ };
30
+ s(r), e == null || e({
31
+ eventName: "STICKERS",
32
+ eventPayload: r
33
+ }), c(d.STICKER_SENT, a);
34
+ } catch (r) {
35
+ n(r, { baseEventData: a });
36
+ }
37
+ },
38
+ [n, e, s, t, c]
39
+ );
40
+ };
41
+ export {
42
+ u as useHandleStickerSend
43
+ };
44
+ //# sourceMappingURL=use-handle-sticker-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-handle-sticker-send.js","sources":["../../../../src/features/stickers/hooks/use-handle-sticker-send.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport useInClassMessageBroker from '../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker';\nimport { useUIContext } from '../../ui/context/context';\nimport { STICKERS_ANALYTICS_EVENT } from '../stickers-analytics-events';\nimport { useStickers } from '../stickers-effects/hooks/use-stickers';\nimport type { IStickerData, TStickerAnimationEffects, TStickersPayload } from '../stickers-types';\nimport { useStickersErrorLogger } from './use-stickers-error-logger';\n\nexport const useHandleStickerSend = (studentClassroomId?: string) => {\n const { publish } = useInClassMessageBroker({\n studentClassroomId,\n });\n\n const { onEvent: trackEvent } = useUIContext();\n const logError = useStickersErrorLogger();\n\n const { showSticker } = useStickers();\n\n const sendSticker = useCallback(\n (sticker: IStickerData, effect: TStickerAnimationEffects) => {\n const baseEventData = {\n classroom_id: studentClassroomId,\n sticker: sticker.id,\n };\n\n try {\n const payload: TStickersPayload = {\n message: {\n data: {\n selectedSticker: {\n id: sticker.id,\n name: sticker.name,\n },\n effectId: effect,\n },\n },\n type: 'STICKERS',\n };\n\n showSticker(payload);\n\n publish?.({\n eventName: 'STICKERS',\n eventPayload: payload,\n });\n\n trackEvent(STICKERS_ANALYTICS_EVENT.STICKER_SENT, baseEventData);\n } catch (error) {\n logError(error, { baseEventData });\n }\n },\n [logError, publish, showSticker, studentClassroomId, trackEvent],\n );\n\n return sendSticker;\n};\n"],"names":["useHandleStickerSend","studentClassroomId","publish","useInClassMessageBroker","trackEvent","useUIContext","logError","useStickersErrorLogger","showSticker","useStickers","useCallback","sticker","effect","baseEventData","payload","STICKERS_ANALYTICS_EVENT","error"],"mappings":";;;;;;AASa,MAAAA,IAAuB,CAACC,MAAgC;AAC7D,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAwB;AAAA,IAC1C,oBAAAF;AAAA,EAAA,CACD,GAEK,EAAE,SAASG,EAAW,IAAIC,EAAa,GACvCC,IAAWC,KAEX,EAAE,aAAAC,MAAgBC;AAsCjB,SApCaC;AAAA,IAClB,CAACC,GAAuBC,MAAqC;AAC3D,YAAMC,IAAgB;AAAA,QACpB,cAAcZ;AAAA,QACd,SAASU,EAAQ;AAAA,MAAA;AAGf,UAAA;AACF,cAAMG,IAA4B;AAAA,UAChC,SAAS;AAAA,YACP,MAAM;AAAA,cACJ,iBAAiB;AAAA,gBACf,IAAIH,EAAQ;AAAA,gBACZ,MAAMA,EAAQ;AAAA,cAChB;AAAA,cACA,UAAUC;AAAA,YACZ;AAAA,UACF;AAAA,UACA,MAAM;AAAA,QAAA;AAGR,QAAAJ,EAAYM,CAAO,GAETZ,KAAA,QAAAA,EAAA;AAAA,UACR,WAAW;AAAA,UACX,cAAcY;AAAA,QAAA,IAGLV,EAAAW,EAAyB,cAAcF,CAAa;AAAA,eACxDG,GAAO;AACL,QAAAV,EAAAU,GAAO,EAAE,eAAAH,EAAA,CAAe;AAAA,MACnC;AAAA,IACF;AAAA,IACA,CAACP,GAAUJ,GAASM,GAAaP,GAAoBG,CAAU;AAAA,EAAA;AAInE;"}
@@ -0,0 +1,17 @@
1
+ import { useUIContext as E } from "../../ui/context/context.js";
2
+ import { STICKERS_ANALYTICS_EVENT as i } from "../stickers-analytics-events.js";
3
+ function f() {
4
+ const { onEvent: s } = E();
5
+ return (t, o) => {
6
+ let e = "Unknown error", n;
7
+ t instanceof Error ? (e = t.message, n = t.stack) : typeof t == "string" && (e = t), s(i.STICKER_LOG_ERROR, {
8
+ message: e,
9
+ stack: n,
10
+ ...o
11
+ });
12
+ };
13
+ }
14
+ export {
15
+ f as useStickersErrorLogger
16
+ };
17
+ //# sourceMappingURL=use-stickers-error-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-stickers-error-logger.js","sources":["../../../../src/features/stickers/hooks/use-stickers-error-logger.ts"],"sourcesContent":["import { useUIContext } from '../../ui/context/context';\nimport { STICKERS_ANALYTICS_EVENT } from '../stickers-analytics-events';\n\nexport function useStickersErrorLogger() {\n const { onEvent: trackEvent } = useUIContext();\n\n return (error: unknown, context?: Record<string, unknown>) => {\n let message = 'Unknown error';\n let stack: string | undefined;\n\n if (error instanceof Error) {\n message = error.message;\n stack = error.stack;\n } else if (typeof error === 'string') {\n message = error;\n }\n\n trackEvent(STICKERS_ANALYTICS_EVENT.STICKER_LOG_ERROR, {\n message,\n stack,\n ...context,\n });\n };\n}\n"],"names":["useStickersErrorLogger","trackEvent","useUIContext","error","context","message","stack","STICKERS_ANALYTICS_EVENT"],"mappings":";;AAGO,SAASA,IAAyB;AACvC,QAAM,EAAE,SAASC,EAAW,IAAIC,EAAa;AAEtC,SAAA,CAACC,GAAgBC,MAAsC;AAC5D,QAAIC,IAAU,iBACVC;AAEJ,IAAIH,aAAiB,SACnBE,IAAUF,EAAM,SAChBG,IAAQH,EAAM,SACL,OAAOA,KAAU,aAChBE,IAAAF,IAGZF,EAAWM,EAAyB,mBAAmB;AAAA,MACrD,SAAAF;AAAA,MACA,OAAAC;AAAA,MACA,GAAGF;AAAA,IAAA,CACJ;AAAA,EAAA;AAEL;"}
@@ -1,12 +1,12 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
2
  import { useCallback as m, useMemo as h } from "react";
3
- import { JOURNEY_ID_TEACHER as t } from "../../../../journey/journey-id/journey-id-teacher.js";
4
- import { IndicatorType as C } from "../../../../journey/use-journey/constants.js";
5
- import { useJourney as T } from "../../../../journey/use-journey/use-journey.js";
6
- import y from "../../../../ui/buttons/button/button.js";
7
- import O from "../../../../ui/layout/flex-view.js";
8
- import S from "../../../../ui/separator/separator.js";
9
- import u from "../../../../ui/text/text.js";
3
+ import { JOURNEY_ID_TEACHER as t } from "../../../journey/journey-id/journey-id-teacher.js";
4
+ import { IndicatorType as C } from "../../../journey/use-journey/constants.js";
5
+ import { useJourney as T } from "../../../journey/use-journey/use-journey.js";
6
+ import y from "../../../ui/buttons/button/button.js";
7
+ import O from "../../../ui/layout/flex-view.js";
8
+ import S from "../../../ui/separator/separator.js";
9
+ import u from "../../../ui/text/text.js";
10
10
  const x = ({
11
11
  triggerRef: o,
12
12
  triggerElement: n,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-stickers-journey.js","sources":["../../../../../src/features/stickers/hooks/use-stickers-journey/use-stickers-journey.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\n\nimport { JOURNEY_ID_TEACHER } from '../../../journey/journey-id/journey-id-teacher';\nimport { IndicatorType } from '../../../journey/use-journey/constants';\nimport { useJourney } from '../../../journey/use-journey/use-journey';\nimport type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport type { IUseTeacherStickersJourneyProps } from './use-stickers-journey-types';\n\nexport const useStickersJourney = ({\n triggerRef,\n triggerElement,\n tooltipConfig,\n}: IUseTeacherStickersJourneyProps) => {\n const { setJourney, nextCoachmark, endJourney } = useJourney();\n\n const endTeacherStickersOnboarding = useCallback(() => {\n endJourney(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [endJourney]);\n\n const startTeacherStickersJourney = useCallback(() => {\n if (!triggerRef.current) return;\n\n const indicatorPayload = {\n position: tooltipConfig.position,\n tooltipXCoOrdinates: tooltipConfig.tooltipXCoOrdinates,\n tooltipYCoOrdinates: tooltipConfig.tooltipYCoOrdinates,\n arrowXCoOrdinates: tooltipConfig.arrowXCoOrdinates,\n arrowYCoOrdinates: tooltipConfig.arrowYCoOrdinates,\n borderColor: 'BLACK',\n arrowColor: 'BLACK',\n backgroundColor: 'PURPLE_4',\n tooltipItem: (\n <FlexView>\n <FlexView>\n <Text\n $renderOnMobileAs=\"ab3\"\n $renderAs=\"ab3\"\n as=\"span\"\n $inline={true}\n $whiteSpace=\"normal\"\n >\n <Text $renderAs=\"ab3-bold\" as=\"span\" $inline={true}>\n New Stickers\n </Text>{' '}\n - Use them to celebrate little moments of joy!\n </Text>\n </FlexView>\n <Separator height={10} />\n <Button\n renderAs=\"secondary\"\n label=\"Got It\"\n size=\"xsmall\"\n width=\"50%\"\n onClick={endTeacherStickersOnboarding}\n />\n </FlexView>\n ),\n } as IArrowTooltipProps;\n\n setJourney(\n JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY,\n [\n {\n originalElementToHighlightRef: triggerRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: triggerElement,\n indicator: indicatorPayload,\n },\n ],\n undefined,\n false,\n );\n\n nextCoachmark(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [\n triggerRef,\n triggerElement,\n tooltipConfig.position,\n tooltipConfig.tooltipXCoOrdinates,\n tooltipConfig.tooltipYCoOrdinates,\n tooltipConfig.arrowXCoOrdinates,\n tooltipConfig.arrowYCoOrdinates,\n endTeacherStickersOnboarding,\n setJourney,\n nextCoachmark,\n ]);\n\n const stickerJourney = useMemo(\n () => ({\n startTeacherStickersJourney,\n }),\n [startTeacherStickersJourney],\n );\n\n return stickerJourney;\n};\n"],"names":["useStickersJourney","triggerRef","triggerElement","tooltipConfig","setJourney","nextCoachmark","endJourney","useJourney","endTeacherStickersOnboarding","useCallback","JOURNEY_ID_TEACHER","startTeacherStickersJourney","indicatorPayload","FlexView","jsx","jsxs","Text","Separator","Button","IndicatorType","useMemo"],"mappings":";;;;;;;;;AAYO,MAAMA,IAAqB,CAAC;AAAA,EACjC,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC;AACF,MAAuC;AACrC,QAAM,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,MAAeC,EAAW,GAEvDC,IAA+BC,EAAY,MAAM;AACrD,IAAAH,EAAWI,EAAmB,sBAAsB;AAAA,EAAA,GACnD,CAACJ,CAAU,CAAC,GAETK,IAA8BF,EAAY,MAAM;AAChD,QAAA,CAACR,EAAW,QAAS;AAEzB,UAAMW,IAAmB;AAAA,MACvB,UAAUT,EAAc;AAAA,MACxB,qBAAqBA,EAAc;AAAA,MACnC,qBAAqBA,EAAc;AAAA,MACnC,mBAAmBA,EAAc;AAAA,MACjC,mBAAmBA,EAAc;AAAA,MACjC,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,+BACGU,GACC,EAAA,UAAA;AAAA,QAAA,gBAAAC,EAACD,GACC,EAAA,UAAA,gBAAAE;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,mBAAkB;AAAA,YAClB,WAAU;AAAA,YACV,IAAG;AAAA,YACH,SAAS;AAAA,YACT,aAAY;AAAA,YAEZ,UAAA;AAAA,cAAA,gBAAAF,EAACE,KAAK,WAAU,YAAW,IAAG,QAAO,SAAS,IAAM,UAEpD,eAAA,CAAA;AAAA,cAAQ;AAAA,cAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAGhB;AAAA,QACA,gBAAAF,EAACG,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,QACvB,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,OAAM;AAAA,YACN,MAAK;AAAA,YACL,OAAM;AAAA,YACN,SAASV;AAAA,UAAA;AAAA,QACX;AAAA,MAAA,GACF;AAAA,IAAA;AAIJ,IAAAJ;AAAA,MACEM,EAAmB;AAAA,MACnB;AAAA,QACE;AAAA,UACE,+BAA+BT;AAAA,UAC/B,MAAMkB,EAAc;AAAA,UACpB,oBAAoBjB;AAAA,UACpB,WAAWU;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAGFP,EAAcK,EAAmB,sBAAsB;AAAA,EAAA,GACtD;AAAA,IACDT;AAAA,IACAC;AAAA,IACAC,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdK;AAAA,IACAJ;AAAA,IACAC;AAAA,EAAA,CACD;AASM,SAPgBe;AAAA,IACrB,OAAO;AAAA,MACL,6BAAAT;AAAA,IAAA;AAAA,IAEF,CAACA,CAA2B;AAAA,EAAA;AAIhC;"}
@@ -1,49 +1,50 @@
1
- import { jsxs as $, jsx as s } from "react/jsx-runtime";
2
- import { memo as E, useState as u, useRef as k, useCallback as r } from "react";
3
- import g from "../../../../ui/lottie-animation/lottie-animation.js";
4
- import { StickerContainer as j, StaticEmoji as C, LottieContainer as R } from "./sticker-styled.js";
5
- const x = {
1
+ import { jsxs as L, jsx as s } from "react/jsx-runtime";
2
+ import { memo as $, useState as f, useRef as k, useCallback as r } from "react";
3
+ import j from "../../../../ui/lottie-animation/lottie-animation.js";
4
+ import { useStickersErrorLogger as C } from "../../../hooks/use-stickers-error-logger.js";
5
+ import { StickerContainer as R, StaticEmoji as x, LottieContainer as y } from "./sticker-styled.js";
6
+ const A = {
6
7
  renderer: "canvas"
7
- }, y = ({ emoji: f, lottieUrl: a, size: n = 48, onClick: h, disabled: t = !1 }) => {
8
- const [c, d] = u(!1), [i, l] = u("idle"), o = k(null), v = r(() => {
8
+ }, H = ({ emoji: h, lottieUrl: a, size: n = 48, onClick: S, disabled: t = !1 }) => {
9
+ const [c, l] = f(!1), [i, d] = f("idle"), o = k(null), m = C(), v = r(() => {
9
10
  var e;
10
- l("loaded"), (e = o.current) == null || e.play();
11
- }, []), S = r(() => {
12
- l("error");
11
+ d("loaded"), (e = o.current) == null || e.play();
13
12
  }, []), p = r(() => {
13
+ d("error"), m("Error in loading the lottie");
14
+ }, [m]), E = r(() => {
14
15
  var e;
15
- d(!0), i === "loaded" && ((e = o.current) == null || e.play());
16
- }, [i]), L = r(() => {
16
+ l(!0), i === "loaded" && ((e = o.current) == null || e.play());
17
+ }, [i]), g = r(() => {
17
18
  var e;
18
- d(!1), (e = o.current) == null || e.goToAndStop(0, !0);
19
- }, []), m = c && i === "loaded";
20
- return /* @__PURE__ */ $(
21
- j,
19
+ l(!1), (e = o.current) == null || e.goToAndStop(0, !0);
20
+ }, []), u = c && i === "loaded";
21
+ return /* @__PURE__ */ L(
22
+ R,
22
23
  {
23
24
  $size: n,
24
25
  $disabled: t,
25
- onPointerEnter: t ? void 0 : p,
26
- onPointerLeave: t ? void 0 : L,
27
- onClick: t ? void 0 : h,
26
+ onPointerEnter: t ? void 0 : E,
27
+ onPointerLeave: t ? void 0 : g,
28
+ onClick: t ? void 0 : S,
28
29
  children: [
29
- /* @__PURE__ */ s(C, { $size: n, $visible: !m, children: f }),
30
- /* @__PURE__ */ s(R, { $size: n, $visible: m, children: c && a && /* @__PURE__ */ s(
31
- g,
30
+ /* @__PURE__ */ s(x, { $size: n, $visible: !u, children: h }),
31
+ /* @__PURE__ */ s(y, { $size: n, $visible: u, children: c && a && /* @__PURE__ */ s(
32
+ j,
32
33
  {
33
34
  ref: o,
34
35
  src: a,
35
36
  width: "100%",
36
37
  height: "100%",
37
- settings: x,
38
+ settings: A,
38
39
  onRender: v,
39
- onError: S
40
+ onError: p
40
41
  }
41
42
  ) })
42
43
  ]
43
44
  }
44
45
  );
45
- }, b = E(y);
46
+ }, I = $(H);
46
47
  export {
47
- b as default
48
+ I as default
48
49
  };
49
50
  //# sourceMappingURL=sticker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sticker.js","sources":["../../../../../../src/features/stickers/sticker-selector/comps/sticker/sticker.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useRef, useState } from 'react';\n\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport * as Styled from './sticker-styled';\nimport type { IStickerProps } from './sticker-types';\n\nconst renderSettings = {\n renderer: 'canvas' as const,\n};\n\nconst Sticker: FC<IStickerProps> = ({ emoji, lottieUrl, size = 48, onClick, disabled = false }) => {\n const [isHovered, setIsHovered] = useState(false);\n const [lottieState, setLottieState] = useState<'idle' | 'loaded' | 'error'>('idle');\n const lottieRef = useRef<ILottieAnimationRef>(null);\n\n const handleLottieReady = useCallback(() => {\n setLottieState('loaded');\n lottieRef.current?.play();\n }, []);\n\n const handleLottieError = useCallback(() => {\n setLottieState('error');\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n\n if (lottieState === 'loaded') {\n lottieRef.current?.play();\n }\n }, [lottieState]);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n lottieRef.current?.goToAndStop(0, true);\n }, []);\n\n const hideStaticEmoji = isHovered && lottieState === 'loaded';\n\n return (\n <Styled.StickerContainer\n $size={size}\n $disabled={disabled}\n onPointerEnter={disabled ? undefined : handleMouseEnter}\n onPointerLeave={disabled ? undefined : handleMouseLeave}\n onClick={disabled ? undefined : onClick}\n >\n <Styled.StaticEmoji $size={size} $visible={!hideStaticEmoji}>\n {emoji}\n </Styled.StaticEmoji>\n\n <Styled.LottieContainer $size={size} $visible={hideStaticEmoji}>\n {isHovered && lottieUrl && (\n <LottieAnimation\n ref={lottieRef}\n src={lottieUrl}\n width=\"100%\"\n height=\"100%\"\n settings={renderSettings}\n onRender={handleLottieReady}\n onError={handleLottieError}\n />\n )}\n </Styled.LottieContainer>\n </Styled.StickerContainer>\n );\n};\n\nexport default memo(Sticker);\n"],"names":["renderSettings","Sticker","emoji","lottieUrl","size","onClick","disabled","isHovered","setIsHovered","useState","lottieState","setLottieState","lottieRef","useRef","handleLottieReady","useCallback","_a","handleLottieError","handleMouseEnter","handleMouseLeave","hideStaticEmoji","jsxs","Styled.StickerContainer","jsx","Styled.StaticEmoji","Styled.LottieContainer","LottieAnimation","Sticker$1","memo"],"mappings":";;;;AAQA,MAAMA,IAAiB;AAAA,EACrB,UAAU;AACZ,GAEMC,IAA6B,CAAC,EAAE,OAAAC,GAAO,WAAAC,GAAW,MAAAC,IAAO,IAAI,SAAAC,GAAS,UAAAC,IAAW,SAAY;AACjG,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAaC,CAAc,IAAIF,EAAsC,MAAM,GAC5EG,IAAYC,EAA4B,IAAI,GAE5CC,IAAoBC,EAAY,MAAM;;AAC1C,IAAAJ,EAAe,QAAQ,IACvBK,IAAAJ,EAAU,YAAV,QAAAI,EAAmB;AAAA,EACrB,GAAG,CAAE,CAAA,GAECC,IAAoBF,EAAY,MAAM;AAC1C,IAAAJ,EAAe,OAAO;AAAA,EACxB,GAAG,CAAE,CAAA,GAECO,IAAmBH,EAAY,MAAM;;AACzC,IAAAP,EAAa,EAAI,GAEbE,MAAgB,cAClBM,IAAAJ,EAAU,YAAV,QAAAI,EAAmB;AAAA,EACrB,GACC,CAACN,CAAW,CAAC,GAEVS,IAAmBJ,EAAY,MAAM;;AACzC,IAAAP,EAAa,EAAK,IACRQ,IAAAJ,EAAA,YAAA,QAAAI,EAAS,YAAY,GAAG;AAAA,EACpC,GAAG,CAAE,CAAA,GAECI,IAAkBb,KAAaG,MAAgB;AAGnD,SAAA,gBAAAW;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAOlB;AAAA,MACP,WAAWE;AAAA,MACX,gBAAgBA,IAAW,SAAYY;AAAA,MACvC,gBAAgBZ,IAAW,SAAYa;AAAA,MACvC,SAASb,IAAW,SAAYD;AAAA,MAEhC,UAAA;AAAA,QAAC,gBAAAkB,EAAAC,GAAA,EAAmB,OAAOpB,GAAM,UAAU,CAACgB,GACzC,UACHlB,GAAA;AAAA,QAEA,gBAAAqB,EAACE,GAAA,EAAuB,OAAOrB,GAAM,UAAUgB,GAC5C,UAAAb,KAAaJ,KACZ,gBAAAoB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKd;AAAA,YACL,KAAKT;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,UAAUH;AAAA,YACV,UAAUc;AAAA,YACV,SAASG;AAAA,UAAA;AAAA,QAAA,GAGf;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeU,IAAAC,EAAK3B,CAAO;"}
1
+ {"version":3,"file":"sticker.js","sources":["../../../../../../src/features/stickers/sticker-selector/comps/sticker/sticker.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useCallback, useRef, useState } from 'react';\n\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport { useStickersErrorLogger } from '../../../hooks/use-stickers-error-logger';\nimport * as Styled from './sticker-styled';\nimport type { IStickerProps } from './sticker-types';\n\nconst renderSettings = {\n renderer: 'canvas' as const,\n};\n\nconst Sticker: FC<IStickerProps> = ({ emoji, lottieUrl, size = 48, onClick, disabled = false }) => {\n const [isHovered, setIsHovered] = useState(false);\n const [lottieState, setLottieState] = useState<'idle' | 'loaded' | 'error'>('idle');\n const lottieRef = useRef<ILottieAnimationRef>(null);\n\n const logError = useStickersErrorLogger();\n\n const handleLottieReady = useCallback(() => {\n setLottieState('loaded');\n lottieRef.current?.play();\n }, []);\n\n const handleLottieError = useCallback(() => {\n setLottieState('error');\n logError('Error in loading the lottie');\n }, [logError]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n\n if (lottieState === 'loaded') {\n lottieRef.current?.play();\n }\n }, [lottieState]);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n lottieRef.current?.goToAndStop(0, true);\n }, []);\n\n const hideStaticEmoji = isHovered && lottieState === 'loaded';\n\n return (\n <Styled.StickerContainer\n $size={size}\n $disabled={disabled}\n onPointerEnter={disabled ? undefined : handleMouseEnter}\n onPointerLeave={disabled ? undefined : handleMouseLeave}\n onClick={disabled ? undefined : onClick}\n >\n <Styled.StaticEmoji $size={size} $visible={!hideStaticEmoji}>\n {emoji}\n </Styled.StaticEmoji>\n\n <Styled.LottieContainer $size={size} $visible={hideStaticEmoji}>\n {isHovered && lottieUrl && (\n <LottieAnimation\n ref={lottieRef}\n src={lottieUrl}\n width=\"100%\"\n height=\"100%\"\n settings={renderSettings}\n onRender={handleLottieReady}\n onError={handleLottieError}\n />\n )}\n </Styled.LottieContainer>\n </Styled.StickerContainer>\n );\n};\n\nexport default memo(Sticker);\n"],"names":["renderSettings","Sticker","emoji","lottieUrl","size","onClick","disabled","isHovered","setIsHovered","useState","lottieState","setLottieState","lottieRef","useRef","logError","useStickersErrorLogger","handleLottieReady","useCallback","_a","handleLottieError","handleMouseEnter","handleMouseLeave","hideStaticEmoji","jsxs","Styled.StickerContainer","jsx","Styled.StaticEmoji","Styled.LottieContainer","LottieAnimation","Sticker$1","memo"],"mappings":";;;;;AASA,MAAMA,IAAiB;AAAA,EACrB,UAAU;AACZ,GAEMC,IAA6B,CAAC,EAAE,OAAAC,GAAO,WAAAC,GAAW,MAAAC,IAAO,IAAI,SAAAC,GAAS,UAAAC,IAAW,SAAY;AACjG,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAaC,CAAc,IAAIF,EAAsC,MAAM,GAC5EG,IAAYC,EAA4B,IAAI,GAE5CC,IAAWC,KAEXC,IAAoBC,EAAY,MAAM;;AAC1C,IAAAN,EAAe,QAAQ,IACvBO,IAAAN,EAAU,YAAV,QAAAM,EAAmB;AAAA,EACrB,GAAG,CAAE,CAAA,GAECC,IAAoBF,EAAY,MAAM;AAC1C,IAAAN,EAAe,OAAO,GACtBG,EAAS,6BAA6B;AAAA,EAAA,GACrC,CAACA,CAAQ,CAAC,GAEPM,IAAmBH,EAAY,MAAM;;AACzC,IAAAT,EAAa,EAAI,GAEbE,MAAgB,cAClBQ,IAAAN,EAAU,YAAV,QAAAM,EAAmB;AAAA,EACrB,GACC,CAACR,CAAW,CAAC,GAEVW,IAAmBJ,EAAY,MAAM;;AACzC,IAAAT,EAAa,EAAK,IACRU,IAAAN,EAAA,YAAA,QAAAM,EAAS,YAAY,GAAG;AAAA,EACpC,GAAG,CAAE,CAAA,GAECI,IAAkBf,KAAaG,MAAgB;AAGnD,SAAA,gBAAAa;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAOpB;AAAA,MACP,WAAWE;AAAA,MACX,gBAAgBA,IAAW,SAAYc;AAAA,MACvC,gBAAgBd,IAAW,SAAYe;AAAA,MACvC,SAASf,IAAW,SAAYD;AAAA,MAEhC,UAAA;AAAA,QAAC,gBAAAoB,EAAAC,GAAA,EAAmB,OAAOtB,GAAM,UAAU,CAACkB,GACzC,UACHpB,GAAA;AAAA,QAEA,gBAAAuB,EAACE,GAAA,EAAuB,OAAOvB,GAAM,UAAUkB,GAC5C,UAAAf,KAAaJ,KACZ,gBAAAsB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKhB;AAAA,YACL,KAAKT;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,UAAUH;AAAA,YACV,UAAUgB;AAAA,YACV,SAASG;AAAA,UAAA;AAAA,QAAA,GAGf;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeU,IAAAC,EAAK7B,CAAO;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import { memo as B, useState as G, useCallback as H, useMemo as c } from "react";
3
3
  import K from "../../ui/arrow-tooltip/arrow-tooltip.js";
4
- import R from "./comps/stiker-selector-grid/sticker-selector-grid.js";
5
- import { useHandleStickerSend as _ } from "./hooks/use-handle-sticker-send.js";
4
+ import { useHandleStickerSend as R } from "../hooks/use-handle-sticker-send.js";
5
+ import _ from "./comps/stiker-selector-grid/sticker-selector-grid.js";
6
6
  import { TriggerWrapper as $ } from "./sticker-selector-styled.js";
7
7
  const q = ({
8
8
  triggerNode: e,
@@ -30,7 +30,7 @@ const q = ({
30
30
  zIndex: M,
31
31
  parentWidth: X,
32
32
  isBlocking: D = !1
33
- } = f, [o, n] = G(!1), r = _(m), l = H(
33
+ } = f, [o, n] = G(!1), r = R(m), l = H(
34
34
  (W) => {
35
35
  if (o) return;
36
36
  const d = ["burst-from-edges", "pop-expand", "float-up", "fall-down"], Y = d[Math.floor(Math.random() * d.length)];
@@ -43,7 +43,7 @@ const q = ({
43
43
  [r, o]
44
44
  ), F = c(
45
45
  () => /* @__PURE__ */ t(
46
- R,
46
+ _,
47
47
  {
48
48
  columns: i,
49
49
  gap: s,
@@ -1 +1 @@
1
- {"version":3,"file":"sticker-selector.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useMemo, useState, useCallback } from 'react';\n\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport type { IStickerData, TStickerAnimationEffects } from '../stickers-types';\nimport StickerSelectorGrid from './comps/stiker-selector-grid/sticker-selector-grid';\nimport { useHandleStickerSend } from './hooks/use-handle-sticker-send';\nimport * as Styled from './sticker-selector-styled';\nimport type { IStickerSelectorProps } from './sticker-selector-types';\n\nconst StickerSelector: FC<IStickerSelectorProps> = ({\n triggerNode,\n studentClassroomId,\n gridConfig,\n tooltipConfig,\n visible,\n}) => {\n const { columns = 4, gap = 8, stickerSize = 48 } = gridConfig;\n const {\n isAnimated,\n arrowColor,\n arrowSize,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n position = 'bottom',\n renderAs = 'primary',\n textVariant,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n parentWidth,\n isBlocking = false,\n } = tooltipConfig;\n\n const [isTemporarilyDisabled, setIsTemporarilyDisabled] = useState(false);\n\n const sendSticker = useHandleStickerSend(studentClassroomId);\n\n const handleStickerSend = useCallback(\n (sticker: IStickerData) => {\n if (isTemporarilyDisabled) return;\n\n const STICKER_EFFECTS = ['burst-from-edges', 'pop-expand', 'float-up', 'fall-down'] as const;\n\n const randomEffect: TStickerAnimationEffects =\n STICKER_EFFECTS[Math.floor(Math.random() * STICKER_EFFECTS.length)]!;\n\n sendSticker?.(sticker, randomEffect);\n setIsTemporarilyDisabled(true);\n\n const timeout = setTimeout(() => {\n setIsTemporarilyDisabled(false);\n }, 5000);\n\n return () => clearTimeout(timeout);\n },\n [sendSticker, isTemporarilyDisabled],\n );\n\n const tooltipItem = useMemo(\n () => (\n <StickerSelectorGrid\n columns={columns}\n gap={gap}\n stickerSize={stickerSize}\n onStickerClick={handleStickerSend}\n disabled={isTemporarilyDisabled}\n />\n ),\n [columns, gap, stickerSize, handleStickerSend, isTemporarilyDisabled],\n );\n\n const triggerEle = useMemo(() => {\n return (\n <Styled.TriggerWrapper $disabled={isTemporarilyDisabled}>{triggerNode}</Styled.TriggerWrapper>\n );\n }, [isTemporarilyDisabled, triggerNode]);\n\n return (\n <ArrowTooltip\n children={triggerEle}\n alwaysVisible\n hidden={!visible}\n tooltipItem={tooltipItem}\n renderAs={renderAs}\n position={position}\n isBlocking={isBlocking}\n isAnimated={isAnimated}\n zIndex={zIndex}\n width={width}\n widthX={widthX}\n parentWidth={parentWidth}\n backgroundColor={backgroundColor}\n borderColor={borderColor}\n textVariant={textVariant}\n tooltipOffset={tooltipOffset}\n arrowColor={arrowColor}\n arrowSize={arrowSize}\n arrowXCoOrdinates={arrowXCoOrdinates}\n arrowYCoOrdinates={arrowYCoOrdinates}\n tooltipXCoOrdinates={tooltipXCoOrdinates}\n tooltipYCoOrdinates={tooltipYCoOrdinates}\n />\n );\n};\n\nexport default memo(StickerSelector);\n"],"names":["StickerSelector","triggerNode","studentClassroomId","gridConfig","tooltipConfig","visible","columns","gap","stickerSize","isAnimated","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","position","renderAs","textVariant","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","parentWidth","isBlocking","isTemporarilyDisabled","setIsTemporarilyDisabled","useState","sendSticker","useHandleStickerSend","handleStickerSend","useCallback","sticker","STICKER_EFFECTS","randomEffect","timeout","tooltipItem","useMemo","jsx","StickerSelectorGrid","triggerEle","Styled.TriggerWrapper","ArrowTooltip","stickerSelector","memo"],"mappings":";;;;;;AAUA,MAAMA,IAA6C,CAAC;AAAA,EAClD,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,IAAU,GAAG,KAAAC,IAAM,GAAG,aAAAC,IAAc,GAAO,IAAAL,GAC7C;AAAA,IACJ,YAAAM;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,EACX,IAAAtB,GAEE,CAACuB,GAAuBC,CAAwB,IAAIC,EAAS,EAAK,GAElEC,IAAcC,EAAqB7B,CAAkB,GAErD8B,IAAoBC;AAAA,IACxB,CAACC,MAA0B;AACzB,UAAIP,EAAuB;AAE3B,YAAMQ,IAAkB,CAAC,oBAAoB,cAAc,YAAY,WAAW,GAE5EC,IACJD,EAAgB,KAAK,MAAM,KAAK,WAAWA,EAAgB,MAAM,CAAC;AAEpE,MAAAL,KAAA,QAAAA,EAAcI,GAASE,IACvBR,EAAyB,EAAI;AAEvB,YAAAS,IAAU,WAAW,MAAM;AAC/B,QAAAT,EAAyB,EAAK;AAAA,SAC7B,GAAI;AAEA,aAAA,MAAM,aAAaS,CAAO;AAAA,IACnC;AAAA,IACA,CAACP,GAAaH,CAAqB;AAAA,EAAA,GAG/BW,IAAcC;AAAA,IAClB,MACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAAnC;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgBwB;AAAA,QAChB,UAAUL;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,CAACrB,GAASC,GAAKC,GAAawB,GAAmBL,CAAqB;AAAA,EAAA,GAGhEe,IAAaH,EAAQ,wBAEtBI,GAAA,EAAsB,WAAWhB,GAAwB,UAAY1B,EAAA,CAAA,GAEvE,CAAC0B,GAAuB1B,CAAW,CAAC;AAGrC,SAAA,gBAAAuC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,UAAUF;AAAA,MACV,eAAa;AAAA,MACb,QAAQ,CAACrC;AAAA,MACT,aAAAiC;AAAA,MACA,UAAArB;AAAA,MACA,UAAAD;AAAA,MACA,YAAAU;AAAA,MACA,YAAAjB;AAAA,MACA,QAAAe;AAAA,MACA,OAAAF;AAAA,MACA,QAAAC;AAAA,MACA,aAAAE;AAAA,MACA,iBAAAX;AAAA,MACA,aAAAC;AAAA,MACA,aAAAG;AAAA,MACA,eAAAC;AAAA,MACA,YAAAT;AAAA,MACA,WAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,qBAAAO;AAAA,MACA,qBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN,GAEewB,IAAAC,EAAK9C,CAAe;"}
1
+ {"version":3,"file":"sticker-selector.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { memo, useMemo, useState, useCallback } from 'react';\n\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport { useHandleStickerSend } from '../hooks/use-handle-sticker-send';\nimport type { IStickerData, TStickerAnimationEffects } from '../stickers-types';\nimport StickerSelectorGrid from './comps/stiker-selector-grid/sticker-selector-grid';\nimport * as Styled from './sticker-selector-styled';\nimport type { IStickerSelectorProps } from './sticker-selector-types';\n\nconst StickerSelector: FC<IStickerSelectorProps> = ({\n triggerNode,\n studentClassroomId,\n gridConfig,\n tooltipConfig,\n visible,\n}) => {\n const { columns = 4, gap = 8, stickerSize = 48 } = gridConfig;\n const {\n isAnimated,\n arrowColor,\n arrowSize,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n position = 'bottom',\n renderAs = 'primary',\n textVariant,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n parentWidth,\n isBlocking = false,\n } = tooltipConfig;\n\n const [isTemporarilyDisabled, setIsTemporarilyDisabled] = useState(false);\n\n const sendSticker = useHandleStickerSend(studentClassroomId);\n\n const handleStickerSend = useCallback(\n (sticker: IStickerData) => {\n if (isTemporarilyDisabled) return;\n\n const STICKER_EFFECTS = ['burst-from-edges', 'pop-expand', 'float-up', 'fall-down'] as const;\n\n const randomEffect: TStickerAnimationEffects =\n STICKER_EFFECTS[Math.floor(Math.random() * STICKER_EFFECTS.length)]!;\n\n sendSticker?.(sticker, randomEffect);\n setIsTemporarilyDisabled(true);\n\n const timeout = setTimeout(() => {\n setIsTemporarilyDisabled(false);\n }, 5000);\n\n return () => clearTimeout(timeout);\n },\n [sendSticker, isTemporarilyDisabled],\n );\n\n const tooltipItem = useMemo(\n () => (\n <StickerSelectorGrid\n columns={columns}\n gap={gap}\n stickerSize={stickerSize}\n onStickerClick={handleStickerSend}\n disabled={isTemporarilyDisabled}\n />\n ),\n [columns, gap, stickerSize, handleStickerSend, isTemporarilyDisabled],\n );\n\n const triggerEle = useMemo(() => {\n return (\n <Styled.TriggerWrapper $disabled={isTemporarilyDisabled}>{triggerNode}</Styled.TriggerWrapper>\n );\n }, [isTemporarilyDisabled, triggerNode]);\n\n return (\n <ArrowTooltip\n children={triggerEle}\n alwaysVisible\n hidden={!visible}\n tooltipItem={tooltipItem}\n renderAs={renderAs}\n position={position}\n isBlocking={isBlocking}\n isAnimated={isAnimated}\n zIndex={zIndex}\n width={width}\n widthX={widthX}\n parentWidth={parentWidth}\n backgroundColor={backgroundColor}\n borderColor={borderColor}\n textVariant={textVariant}\n tooltipOffset={tooltipOffset}\n arrowColor={arrowColor}\n arrowSize={arrowSize}\n arrowXCoOrdinates={arrowXCoOrdinates}\n arrowYCoOrdinates={arrowYCoOrdinates}\n tooltipXCoOrdinates={tooltipXCoOrdinates}\n tooltipYCoOrdinates={tooltipYCoOrdinates}\n />\n );\n};\n\nexport default memo(StickerSelector);\n"],"names":["StickerSelector","triggerNode","studentClassroomId","gridConfig","tooltipConfig","visible","columns","gap","stickerSize","isAnimated","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","position","renderAs","textVariant","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","parentWidth","isBlocking","isTemporarilyDisabled","setIsTemporarilyDisabled","useState","sendSticker","useHandleStickerSend","handleStickerSend","useCallback","sticker","STICKER_EFFECTS","randomEffect","timeout","tooltipItem","useMemo","jsx","StickerSelectorGrid","triggerEle","Styled.TriggerWrapper","ArrowTooltip","stickerSelector","memo"],"mappings":";;;;;;AAUA,MAAMA,IAA6C,CAAC;AAAA,EAClD,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,IAAU,GAAG,KAAAC,IAAM,GAAG,aAAAC,IAAc,GAAO,IAAAL,GAC7C;AAAA,IACJ,YAAAM;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,EACX,IAAAtB,GAEE,CAACuB,GAAuBC,CAAwB,IAAIC,EAAS,EAAK,GAElEC,IAAcC,EAAqB7B,CAAkB,GAErD8B,IAAoBC;AAAA,IACxB,CAACC,MAA0B;AACzB,UAAIP,EAAuB;AAE3B,YAAMQ,IAAkB,CAAC,oBAAoB,cAAc,YAAY,WAAW,GAE5EC,IACJD,EAAgB,KAAK,MAAM,KAAK,WAAWA,EAAgB,MAAM,CAAC;AAEpE,MAAAL,KAAA,QAAAA,EAAcI,GAASE,IACvBR,EAAyB,EAAI;AAEvB,YAAAS,IAAU,WAAW,MAAM;AAC/B,QAAAT,EAAyB,EAAK;AAAA,SAC7B,GAAI;AAEA,aAAA,MAAM,aAAaS,CAAO;AAAA,IACnC;AAAA,IACA,CAACP,GAAaH,CAAqB;AAAA,EAAA,GAG/BW,IAAcC;AAAA,IAClB,MACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAAnC;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgBwB;AAAA,QAChB,UAAUL;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,CAACrB,GAASC,GAAKC,GAAawB,GAAmBL,CAAqB;AAAA,EAAA,GAGhEe,IAAaH,EAAQ,wBAEtBI,GAAA,EAAsB,WAAWhB,GAAwB,UAAY1B,EAAA,CAAA,GAEvE,CAAC0B,GAAuB1B,CAAW,CAAC;AAGrC,SAAA,gBAAAuC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,UAAUF;AAAA,MACV,eAAa;AAAA,MACb,QAAQ,CAACrC;AAAA,MACT,aAAAiC;AAAA,MACA,UAAArB;AAAA,MACA,UAAAD;AAAA,MACA,YAAAU;AAAA,MACA,YAAAjB;AAAA,MACA,QAAAe;AAAA,MACA,OAAAF;AAAA,MACA,QAAAC;AAAA,MACA,aAAAE;AAAA,MACA,iBAAAX;AAAA,MACA,aAAAC;AAAA,MACA,aAAAG;AAAA,MACA,eAAAC;AAAA,MACA,YAAAT;AAAA,MACA,WAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,qBAAAO;AAAA,MACA,qBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN,GAEewB,IAAAC,EAAK9C,CAAe;"}
@@ -0,0 +1,8 @@
1
+ const _ = {
2
+ STICKER_SENT: "sticker_sent",
3
+ STICKER_LOG_ERROR: "sticker_log_error"
4
+ };
5
+ export {
6
+ _ as STICKERS_ANALYTICS_EVENT
7
+ };
8
+ //# sourceMappingURL=stickers-analytics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stickers-analytics-events.js","sources":["../../../src/features/stickers/stickers-analytics-events.ts"],"sourcesContent":["export const STICKERS_ANALYTICS_EVENT = {\n STICKER_SENT: 'sticker_sent',\n STICKER_LOG_ERROR: 'sticker_log_error',\n};\n"],"names":["STICKERS_ANALYTICS_EVENT"],"mappings":"AAAO,MAAMA,IAA2B;AAAA,EACtC,cAAc;AAAA,EACd,mBAAmB;AACrB;"}
package/dist/index.d.ts CHANGED
@@ -6891,7 +6891,7 @@ export declare type TUserTypes = 'TEACHER' | 'STUDENT';
6891
6891
 
6892
6892
  export declare const TutorChangeModal: MemoExoticComponent<() => JSX.Element>;
6893
6893
 
6894
- export declare const Tutorial: ({ src, title, onCross, showProgress, onTutorialPlayedOnce, isJourneyActive, }: ITutorialProps) => JSX.Element;
6894
+ export declare const Tutorial: ForwardRefExoticComponent<ITutorialProps & RefAttributes<HTMLVideoElement>>;
6895
6895
 
6896
6896
  export declare const TutoringIcon: FC<SVGProps<SVGSVGElement>>;
6897
6897
 
package/dist/index.js CHANGED
@@ -320,8 +320,8 @@ import { default as Id } from "./features/stickers/stickers-effects/stickers-eff
320
320
  import { default as Td } from "./features/stickers/sticker-selector/sticker-selector.js";
321
321
  import { StickersProvider as Cd } from "./features/stickers/stickers-effects/context/sticker-provider.js";
322
322
  import { useStickers as Ad } from "./features/stickers/stickers-effects/hooks/use-stickers.js";
323
- import { useHandleStickerSend as hd } from "./features/stickers/sticker-selector/hooks/use-handle-sticker-send.js";
324
- import { useStickersJourney as Rd } from "./features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js";
323
+ import { useHandleStickerSend as hd } from "./features/stickers/hooks/use-handle-sticker-send.js";
324
+ import { useStickersJourney as Rd } from "./features/stickers/hooks/use-stickers-journey/use-stickers-journey.js";
325
325
  import { default as kd } from "./features/student-details/student-details.js";
326
326
  import { default as Nd } from "./features/utils/load-script.js";
327
327
  import { default as gd } from "./features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.4.5",
3
+ "version": "3.4.6-akm-1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -1,33 +0,0 @@
1
- import { useCallback as n } from "react";
2
- import c from "../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js";
3
- import { useStickers as d } from "../../stickers-effects/hooks/use-stickers.js";
4
- const l = (r) => {
5
- const { publish: e } = c({
6
- studentClassroomId: r
7
- }), { showSticker: t } = d();
8
- return n(
9
- (s, a) => {
10
- const o = {
11
- message: {
12
- data: {
13
- selectedSticker: {
14
- id: s.id,
15
- name: s.name
16
- },
17
- effectId: a
18
- }
19
- },
20
- type: "STICKERS"
21
- };
22
- t(o), e == null || e({
23
- eventName: "STICKERS",
24
- eventPayload: o
25
- });
26
- },
27
- [e, t]
28
- );
29
- };
30
- export {
31
- l as useHandleStickerSend
32
- };
33
- //# sourceMappingURL=use-handle-sticker-send.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-handle-sticker-send.js","sources":["../../../../../src/features/stickers/sticker-selector/hooks/use-handle-sticker-send.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport useInClassMessageBroker from '../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker';\nimport { useStickers } from '../../stickers-effects/hooks/use-stickers';\nimport type {\n IStickerData,\n TStickerAnimationEffects,\n TStickersPayload,\n} from '../../stickers-types';\n\nexport const useHandleStickerSend = (studentClassroomId?: string) => {\n const { publish } = useInClassMessageBroker({\n studentClassroomId,\n });\n\n const { showSticker } = useStickers();\n\n const sendSticker = useCallback(\n (sticker: IStickerData, effect: TStickerAnimationEffects) => {\n const payload: TStickersPayload = {\n message: {\n data: {\n selectedSticker: {\n id: sticker.id,\n name: sticker.name,\n },\n effectId: effect,\n },\n },\n type: 'STICKERS',\n };\n\n showSticker(payload);\n\n publish?.({\n eventName: 'STICKERS',\n eventPayload: payload,\n });\n },\n [publish, showSticker],\n );\n\n return sendSticker;\n};\n"],"names":["useHandleStickerSend","studentClassroomId","publish","useInClassMessageBroker","showSticker","useStickers","useCallback","sticker","effect","payload"],"mappings":";;;AAUa,MAAAA,IAAuB,CAACC,MAAgC;AAC7D,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAwB;AAAA,IAC1C,oBAAAF;AAAA,EAAA,CACD,GAEK,EAAE,aAAAG,MAAgBC;AA2BjB,SAzBaC;AAAA,IAClB,CAACC,GAAuBC,MAAqC;AAC3D,YAAMC,IAA4B;AAAA,QAChC,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,iBAAiB;AAAA,cACf,IAAIF,EAAQ;AAAA,cACZ,MAAMA,EAAQ;AAAA,YAChB;AAAA,YACA,UAAUC;AAAA,UACZ;AAAA,QACF;AAAA,QACA,MAAM;AAAA,MAAA;AAGR,MAAAJ,EAAYK,CAAO,GAETP,KAAA,QAAAA,EAAA;AAAA,QACR,WAAW;AAAA,QACX,cAAcO;AAAA,MAAA;AAAA,IAElB;AAAA,IACA,CAACP,GAASE,CAAW;AAAA,EAAA;AAIzB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-stickers-journey.js","sources":["../../../../../../src/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\n\nimport { JOURNEY_ID_TEACHER } from '../../../../journey/journey-id/journey-id-teacher';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport type { IUseTeacherStickersJourneyProps } from './use-stickers-journey-types';\n\nexport const useStickersJourney = ({\n triggerRef,\n triggerElement,\n tooltipConfig,\n}: IUseTeacherStickersJourneyProps) => {\n const { setJourney, nextCoachmark, endJourney } = useJourney();\n\n const endTeacherStickersOnboarding = useCallback(() => {\n endJourney(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [endJourney]);\n\n const startTeacherStickersJourney = useCallback(() => {\n if (!triggerRef.current) return;\n\n const indicatorPayload = {\n position: tooltipConfig.position,\n tooltipXCoOrdinates: tooltipConfig.tooltipXCoOrdinates,\n tooltipYCoOrdinates: tooltipConfig.tooltipYCoOrdinates,\n arrowXCoOrdinates: tooltipConfig.arrowXCoOrdinates,\n arrowYCoOrdinates: tooltipConfig.arrowYCoOrdinates,\n borderColor: 'BLACK',\n arrowColor: 'BLACK',\n backgroundColor: 'PURPLE_4',\n tooltipItem: (\n <FlexView>\n <FlexView>\n <Text\n $renderOnMobileAs=\"ab3\"\n $renderAs=\"ab3\"\n as=\"span\"\n $inline={true}\n $whiteSpace=\"normal\"\n >\n <Text $renderAs=\"ab3-bold\" as=\"span\" $inline={true}>\n New Stickers\n </Text>{' '}\n - Use them to celebrate little moments of joy!\n </Text>\n </FlexView>\n <Separator height={10} />\n <Button\n renderAs=\"secondary\"\n label=\"Got It\"\n size=\"xsmall\"\n width=\"50%\"\n onClick={endTeacherStickersOnboarding}\n />\n </FlexView>\n ),\n } as IArrowTooltipProps;\n\n setJourney(\n JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY,\n [\n {\n originalElementToHighlightRef: triggerRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: triggerElement,\n indicator: indicatorPayload,\n },\n ],\n undefined,\n false,\n );\n\n nextCoachmark(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [\n triggerRef,\n triggerElement,\n tooltipConfig.position,\n tooltipConfig.tooltipXCoOrdinates,\n tooltipConfig.tooltipYCoOrdinates,\n tooltipConfig.arrowXCoOrdinates,\n tooltipConfig.arrowYCoOrdinates,\n endTeacherStickersOnboarding,\n setJourney,\n nextCoachmark,\n ]);\n\n const stickerJourney = useMemo(\n () => ({\n startTeacherStickersJourney,\n }),\n [startTeacherStickersJourney],\n );\n\n return stickerJourney;\n};\n"],"names":["useStickersJourney","triggerRef","triggerElement","tooltipConfig","setJourney","nextCoachmark","endJourney","useJourney","endTeacherStickersOnboarding","useCallback","JOURNEY_ID_TEACHER","startTeacherStickersJourney","indicatorPayload","FlexView","jsx","jsxs","Text","Separator","Button","IndicatorType","useMemo"],"mappings":";;;;;;;;;AAYO,MAAMA,IAAqB,CAAC;AAAA,EACjC,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC;AACF,MAAuC;AACrC,QAAM,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,MAAeC,EAAW,GAEvDC,IAA+BC,EAAY,MAAM;AACrD,IAAAH,EAAWI,EAAmB,sBAAsB;AAAA,EAAA,GACnD,CAACJ,CAAU,CAAC,GAETK,IAA8BF,EAAY,MAAM;AAChD,QAAA,CAACR,EAAW,QAAS;AAEzB,UAAMW,IAAmB;AAAA,MACvB,UAAUT,EAAc;AAAA,MACxB,qBAAqBA,EAAc;AAAA,MACnC,qBAAqBA,EAAc;AAAA,MACnC,mBAAmBA,EAAc;AAAA,MACjC,mBAAmBA,EAAc;AAAA,MACjC,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,+BACGU,GACC,EAAA,UAAA;AAAA,QAAA,gBAAAC,EAACD,GACC,EAAA,UAAA,gBAAAE;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,mBAAkB;AAAA,YAClB,WAAU;AAAA,YACV,IAAG;AAAA,YACH,SAAS;AAAA,YACT,aAAY;AAAA,YAEZ,UAAA;AAAA,cAAA,gBAAAF,EAACE,KAAK,WAAU,YAAW,IAAG,QAAO,SAAS,IAAM,UAEpD,eAAA,CAAA;AAAA,cAAQ;AAAA,cAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAGhB;AAAA,QACA,gBAAAF,EAACG,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,QACvB,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,OAAM;AAAA,YACN,MAAK;AAAA,YACL,OAAM;AAAA,YACN,SAASV;AAAA,UAAA;AAAA,QACX;AAAA,MAAA,GACF;AAAA,IAAA;AAIJ,IAAAJ;AAAA,MACEM,EAAmB;AAAA,MACnB;AAAA,QACE;AAAA,UACE,+BAA+BT;AAAA,UAC/B,MAAMkB,EAAc;AAAA,UACpB,oBAAoBjB;AAAA,UACpB,WAAWU;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAGFP,EAAcK,EAAmB,sBAAsB;AAAA,EAAA,GACtD;AAAA,IACDT;AAAA,IACAC;AAAA,IACAC,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdK;AAAA,IACAJ;AAAA,IACAC;AAAA,EAAA,CACD;AASM,SAPgBe;AAAA,IACrB,OAAO;AAAA,MACL,6BAAAT;AAAA,IAAA;AAAA,IAEF,CAACA,CAA2B;AAAA,EAAA;AAIhC;"}