@cuemath/leap 3.2.24-as2 → 3.2.24-as3

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,13 +1,13 @@
1
- import { jsxs as d, jsx as o, Fragment as I } from "react/jsx-runtime";
2
- import { memo as M, useState as S, useCallback as u } from "react";
1
+ import { jsxs as d, jsx as o, Fragment as _ } from "react/jsx-runtime";
2
+ import { memo as M, useState as S, useCallback as m } from "react";
3
3
  import r, { css as T, keyframes as W } from "styled-components";
4
- import i from "../../ui/layout/flex-view.js";
4
+ import n from "../../ui/layout/flex-view.js";
5
5
  import G from "../../ui/lottie-animation/lottie-animation.js";
6
6
  import N from "../../ui/separator/separator.js";
7
7
  import p from "../../ui/text/text.js";
8
8
  import { getTheme as P } from "../../ui/theme/get-theme.js";
9
- import H from "./hooks/use-student-badge-hook.js";
10
- const { colors: n } = P(), m = 20, O = (e) => W`
9
+ import O from "./hooks/use-student-badge-hook.js";
10
+ const { colors: i } = P(), u = 20, H = (e) => W`
11
11
  0% {
12
12
  background-position: -${e}px 0;
13
13
  }
@@ -20,32 +20,32 @@ const { colors: n } = P(), m = 20, O = (e) => W`
20
20
  height: ${({ $badgeWidth: e }) => e}px;
21
21
  background: linear-gradient(
22
22
  92.42deg,
23
- ${n.GREY_1}40 1.94%,
24
- ${n.GREY_1} 48.8%,
25
- ${n.GREY_1}40 97.88%
23
+ ${i.GREY_1}40 1.94%,
24
+ ${i.GREY_1} 48.8%,
25
+ ${i.GREY_1}40 97.88%
26
26
  );
27
27
  background-size: 200% 100%;
28
- animation-name: ${({ $badgeWidth: e }) => O(e)};
28
+ animation-name: ${({ $badgeWidth: e }) => H(e)};
29
29
  animation-duration: 2s;
30
30
  animation-iteration-count: infinite;
31
31
  background-repeat: no-repeat;
32
- background-color: ${n.WHITE};
32
+ background-color: ${i.WHITE};
33
33
  opacity: 0.5;
34
- `, j = r(i)`
34
+ `, j = r(n)`
35
35
  position: absolute;
36
36
  top: 0;
37
37
  right: 0;
38
- background: ${n.ORANGE_3};
38
+ background: ${i.ORANGE_3};
39
39
  border-radius: 0px 8px;
40
40
  padding: 2px 8px;
41
41
  z-index: 1;
42
- `, z = r(i)`
42
+ `, z = r(n)`
43
43
  cursor: ${(e) => e.$isEarned ? "pointer" : "default"};
44
- `, D = r(i)`
44
+ `, D = r(n)`
45
45
  position: relative;
46
46
  border-radius: 8px;
47
47
  overflow: hidden;
48
- `, F = r(i)`
48
+ `, F = r(n)`
49
49
  position: relative;
50
50
  border-radius: 8px;
51
51
  overflow: hidden;
@@ -57,13 +57,13 @@ const { colors: n } = P(), m = 20, O = (e) => W`
57
57
  `}
58
58
  `, U = r.img`
59
59
  opacity: ${(e) => e.$mouseEntered ? 0 : 1};
60
- `, K = r(i)`
60
+ `, K = r(n)`
61
61
  position: absolute;
62
62
  bottom: 0;
63
- `, V = r(i)`
63
+ `, V = r(n)`
64
64
  position: relative;
65
65
  overflow: hidden;
66
- `, X = r(i)`
66
+ `, X = r(n)`
67
67
  position: absolute;
68
68
  left: 0;
69
69
  top: 0;
@@ -75,9 +75,9 @@ const { colors: n } = P(), m = 20, O = (e) => W`
75
75
  -webkit-box-orient: vertical;
76
76
  overflow: hidden;
77
77
  `, Z = (e) => {
78
- const { is_recent: $, badgeWidth: t, maxBadgeNameLines: s = 1, image_url: b } = e, [c, g] = S(!1), f = u(() => {
78
+ const { is_recent: $, badgeWidth: t, maxBadgeNameLines: s = 1, image_url: b } = e, [c, g] = S(!1), f = m(() => {
79
79
  g(!0);
80
- }, []), x = u(() => {
80
+ }, []), x = m(() => {
81
81
  g(!1);
82
82
  }, []), {
83
83
  badgeBackgroundColor: E,
@@ -90,19 +90,19 @@ const { colors: n } = P(), m = 20, O = (e) => W`
90
90
  onBadgeClick: R,
91
91
  showLoader: A,
92
92
  showProgress: C,
93
- studentBadgeId: L,
94
- studentBadgeRef: _,
93
+ studentBadgeId: I,
94
+ studentBadgeRef: L,
95
95
  animationUrl: l
96
- } = H(e);
96
+ } = O(e);
97
97
  return /* @__PURE__ */ d(
98
98
  z,
99
99
  {
100
100
  onClick: R,
101
- ref: _,
101
+ ref: L,
102
102
  $width: t,
103
103
  $isEarned: a,
104
104
  children: [
105
- /* @__PURE__ */ o(D, { children: A ? /* @__PURE__ */ o(Y, { $badgeWidth: t }) : /* @__PURE__ */ d(I, { children: [
105
+ /* @__PURE__ */ o(D, { children: A ? /* @__PURE__ */ o(Y, { $badgeWidth: t }) : /* @__PURE__ */ d(_, { children: [
106
106
  /* @__PURE__ */ d(
107
107
  F,
108
108
  {
@@ -132,10 +132,10 @@ const { colors: n } = P(), m = 20, O = (e) => W`
132
132
  }
133
133
  ),
134
134
  l && /* @__PURE__ */ o(
135
- i,
135
+ n,
136
136
  {
137
- $width: t + m,
138
- $height: t + m,
137
+ $width: t + u,
138
+ $height: t + u,
139
139
  $position: "absolute",
140
140
  children: /* @__PURE__ */ o(
141
141
  G,
@@ -143,7 +143,8 @@ const { colors: n } = P(), m = 20, O = (e) => W`
143
143
  src: l,
144
144
  width: t,
145
145
  height: t,
146
- settings: { autoplay: c, loop: !0 }
146
+ settings: { autoplay: c, loop: !0 },
147
+ animateOnIntersect: !1
147
148
  }
148
149
  )
149
150
  }
@@ -158,7 +159,7 @@ const { colors: n } = P(), m = 20, O = (e) => W`
158
159
  /* @__PURE__ */ o(h, { $renderAs: "body3", $numberOfLines: s + 1, children: k })
159
160
  ]
160
161
  },
161
- L
162
+ I
162
163
  );
163
164
  }, ae = M(Z);
164
165
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"student-badge.js","sources":["../../../../src/features/wins-dashboard/student-badges/student-badge.tsx"],"sourcesContent":["import React, { memo, useCallback, useState } from 'react';\nimport styled, { css, keyframes } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { getTheme } from '../../ui/theme/get-theme';\nimport useStudentBadgeHook from './hooks/use-student-badge-hook';\n\nconst { colors } = getTheme();\n\nconst EXTRA_BADGE_SIZE = 20;\n\nconst shimmer = (badgeWidth: number) => keyframes`\n 0% {\n background-position: -${badgeWidth}px 0;\n }\n 80%, 100% {\n background-position: ${badgeWidth}px 0;\n }\n`;\n\nconst BadgePlaceholder = styled.div<{ $badgeWidth: number }>`\n display: flex;\n width: ${({ $badgeWidth }) => $badgeWidth}px;\n height: ${({ $badgeWidth }) => $badgeWidth}px;\n background: linear-gradient(\n 92.42deg,\n ${colors.GREY_1}40 1.94%,\n ${colors.GREY_1} 48.8%,\n ${colors.GREY_1}40 97.88%\n );\n background-size: 200% 100%;\n animation-name: ${({ $badgeWidth }) => shimmer($badgeWidth)};\n animation-duration: 2s;\n animation-iteration-count: infinite;\n background-repeat: no-repeat;\n background-color: ${colors.WHITE};\n opacity: 0.5;\n`;\n\nconst NewTag = styled(FlexView)`\n position: absolute;\n top: 0;\n right: 0;\n background: ${colors.ORANGE_3};\n border-radius: 0px 8px;\n padding: 2px 8px;\n z-index: 1;\n`;\n\ninterface StudentBadgeModalData {\n badges: Array<{\n animation_url?: string;\n animationData?: object;\n category: string;\n current_count?: number;\n description?: string;\n id: string;\n image_url?: string;\n name?: string;\n state?: string;\n total_count?: number;\n }>;\n invalidateRewardsHome?: () => void;\n}\n\nexport interface StudentBadgeProps {\n animation_url?: string;\n category: string;\n current_count?: number;\n description?: string;\n id: string;\n image_url?: string;\n invalidateRewardsHome?: () => void;\n is_recent?: boolean;\n name?: string;\n openModal?: (modalType: string, data: StudentBadgeModalData) => void;\n state?: string;\n total_count?: number;\n badgeWidth: number;\n maxBadgeNameLines: number;\n}\n\nconst Wrapper = styled(FlexView)<{ $isEarned: boolean }>`\n cursor: ${props => (props.$isEarned ? 'pointer' : 'default')};\n`;\nconst StudentBadgeWrapper = styled(FlexView)`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n`;\n\nconst BadgeImageContainer = styled(FlexView)<{\n $backgroundColor: string;\n $badgeEarned: boolean;\n $notEarnedMysterBadge: boolean;\n}>`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background: ${({ $backgroundColor }) => $backgroundColor};\n opacity: ${({ $badgeEarned }) => ($badgeEarned ? 1 : 0.5)};\n\n ${({ $notEarnedMysterBadge }) =>\n $notEarnedMysterBadge &&\n css`\n mix-blend-mode: luminosity;\n `}\n`;\n\nconst BadgeImage = styled.img<{ $mouseEntered?: boolean }>`\n opacity: ${props => (props.$mouseEntered ? 0 : 1)};\n`;\n\nconst ProgressContainer = styled(FlexView)`\n position: absolute;\n bottom: 0;\n`;\n\nconst Background = styled(FlexView)`\n position: relative;\n overflow: hidden;\n`;\n\nconst Progress = styled(FlexView)`\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n transition: width 300ms ease-in-out;\n`;\n\nconst BadgeText = styled(Text)<{ $numberOfLines: number }>`\n display: -webkit-box;\n -webkit-line-clamp: ${({ $numberOfLines }) => $numberOfLines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst StudentBadge: React.FC<StudentBadgeProps> = props => {\n const { is_recent: isRecent, badgeWidth, maxBadgeNameLines = 1, image_url: imageUrl } = props;\n const [mouseEntered, setMouseEntered] = useState(false);\n\n const onBadgeMouseEnter = useCallback(() => {\n setMouseEntered(true);\n }, []);\n\n const onBadgeMouseLeave = useCallback(() => {\n setMouseEntered(false);\n }, []);\n\n const {\n badgeBackgroundColor,\n badgeDescription,\n badgeEarned,\n badgeImage,\n badgeName,\n badgeProgress,\n notEarnedMysterBadge,\n onBadgeClick,\n showLoader,\n showProgress,\n studentBadgeId,\n studentBadgeRef,\n animationUrl,\n } = useStudentBadgeHook(props);\n\n return (\n <Wrapper\n onClick={onBadgeClick}\n ref={studentBadgeRef}\n $width={badgeWidth}\n $isEarned={badgeEarned}\n key={studentBadgeId}\n >\n <StudentBadgeWrapper>\n {showLoader ? (\n <BadgePlaceholder $badgeWidth={badgeWidth} />\n ) : (\n <>\n <BadgeImageContainer\n $backgroundColor={badgeBackgroundColor}\n $badgeEarned={badgeEarned}\n $notEarnedMysterBadge={notEarnedMysterBadge}\n onMouseEnter={onBadgeMouseEnter}\n onMouseLeave={onBadgeMouseLeave}\n >\n {isRecent && (\n <NewTag>\n <Text $renderAs=\"cta2\">NEW</Text>\n </NewTag>\n )}\n {badgeEarned ? (\n <BadgeImage\n $mouseEntered={mouseEntered}\n src={imageUrl}\n alt=\"badge-placeholder\"\n width={badgeWidth}\n height={badgeWidth}\n />\n ) : (\n <img\n src={badgeImage}\n alt=\"badge-placeholder\"\n width={badgeWidth}\n height={badgeWidth}\n />\n )}\n {animationUrl && (\n <FlexView\n $width={badgeWidth + EXTRA_BADGE_SIZE}\n $height={badgeWidth + EXTRA_BADGE_SIZE}\n $position=\"absolute\"\n >\n <LottieAnimation\n src={animationUrl}\n width={badgeWidth}\n height={badgeWidth}\n settings={{ autoplay: mouseEntered, loop: true }}\n />\n </FlexView>\n )}\n </BadgeImageContainer>\n {showProgress && (\n <ProgressContainer $width={badgeWidth}>\n <Background $height={4} $borderRadius={2} $width={'100%'} $background=\"WHITE\">\n <Progress $width={`${badgeProgress}%`} $borderRadius={2} $background=\"BLACK\" />\n </Background>\n </ProgressContainer>\n )}\n </>\n )}\n </StudentBadgeWrapper>\n <Separator height={8} />\n <BadgeText $renderAs=\"cta2\" $numberOfLines={maxBadgeNameLines}>\n {badgeName}\n </BadgeText>\n <BadgeText $renderAs=\"body3\" $numberOfLines={maxBadgeNameLines + 1}>\n {badgeDescription}\n </BadgeText>\n </Wrapper>\n );\n};\n\nexport default memo(StudentBadge);\n"],"names":["colors","getTheme","EXTRA_BADGE_SIZE","shimmer","badgeWidth","keyframes","BadgePlaceholder","styled","$badgeWidth","NewTag","FlexView","Wrapper","props","StudentBadgeWrapper","BadgeImageContainer","$backgroundColor","$badgeEarned","$notEarnedMysterBadge","css","BadgeImage","ProgressContainer","Background","Progress","BadgeText","Text","$numberOfLines","StudentBadge","isRecent","maxBadgeNameLines","imageUrl","mouseEntered","setMouseEntered","useState","onBadgeMouseEnter","useCallback","onBadgeMouseLeave","badgeBackgroundColor","badgeDescription","badgeEarned","badgeImage","badgeName","badgeProgress","notEarnedMysterBadge","onBadgeClick","showLoader","showProgress","studentBadgeId","studentBadgeRef","animationUrl","useStudentBadgeHook","jsxs","jsx","Fragment","LottieAnimation","Separator","StudentBadge$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"student-badge.js","sources":["../../../../src/features/wins-dashboard/student-badges/student-badge.tsx"],"sourcesContent":["import React, { memo, useCallback, useState } from 'react';\nimport styled, { css, keyframes } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport LottieAnimation from '../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { getTheme } from '../../ui/theme/get-theme';\nimport useStudentBadgeHook from './hooks/use-student-badge-hook';\n\nconst { colors } = getTheme();\n\nconst EXTRA_BADGE_SIZE = 20;\n\nconst shimmer = (badgeWidth: number) => keyframes`\n 0% {\n background-position: -${badgeWidth}px 0;\n }\n 80%, 100% {\n background-position: ${badgeWidth}px 0;\n }\n`;\n\nconst BadgePlaceholder = styled.div<{ $badgeWidth: number }>`\n display: flex;\n width: ${({ $badgeWidth }) => $badgeWidth}px;\n height: ${({ $badgeWidth }) => $badgeWidth}px;\n background: linear-gradient(\n 92.42deg,\n ${colors.GREY_1}40 1.94%,\n ${colors.GREY_1} 48.8%,\n ${colors.GREY_1}40 97.88%\n );\n background-size: 200% 100%;\n animation-name: ${({ $badgeWidth }) => shimmer($badgeWidth)};\n animation-duration: 2s;\n animation-iteration-count: infinite;\n background-repeat: no-repeat;\n background-color: ${colors.WHITE};\n opacity: 0.5;\n`;\n\nconst NewTag = styled(FlexView)`\n position: absolute;\n top: 0;\n right: 0;\n background: ${colors.ORANGE_3};\n border-radius: 0px 8px;\n padding: 2px 8px;\n z-index: 1;\n`;\n\ninterface StudentBadgeModalData {\n badges: Array<{\n animation_url?: string;\n animationData?: object;\n category: string;\n current_count?: number;\n description?: string;\n id: string;\n image_url?: string;\n name?: string;\n state?: string;\n total_count?: number;\n }>;\n invalidateRewardsHome?: () => void;\n}\n\nexport interface StudentBadgeProps {\n animation_url?: string;\n category: string;\n current_count?: number;\n description?: string;\n id: string;\n image_url?: string;\n invalidateRewardsHome?: () => void;\n is_recent?: boolean;\n name?: string;\n openModal?: (modalType: string, data: StudentBadgeModalData) => void;\n state?: string;\n total_count?: number;\n badgeWidth: number;\n maxBadgeNameLines: number;\n}\n\nconst Wrapper = styled(FlexView)<{ $isEarned: boolean }>`\n cursor: ${props => (props.$isEarned ? 'pointer' : 'default')};\n`;\nconst StudentBadgeWrapper = styled(FlexView)`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n`;\n\nconst BadgeImageContainer = styled(FlexView)<{\n $backgroundColor: string;\n $badgeEarned: boolean;\n $notEarnedMysterBadge: boolean;\n}>`\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background: ${({ $backgroundColor }) => $backgroundColor};\n opacity: ${({ $badgeEarned }) => ($badgeEarned ? 1 : 0.5)};\n\n ${({ $notEarnedMysterBadge }) =>\n $notEarnedMysterBadge &&\n css`\n mix-blend-mode: luminosity;\n `}\n`;\n\nconst BadgeImage = styled.img<{ $mouseEntered?: boolean }>`\n opacity: ${props => (props.$mouseEntered ? 0 : 1)};\n`;\n\nconst ProgressContainer = styled(FlexView)`\n position: absolute;\n bottom: 0;\n`;\n\nconst Background = styled(FlexView)`\n position: relative;\n overflow: hidden;\n`;\n\nconst Progress = styled(FlexView)`\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n transition: width 300ms ease-in-out;\n`;\n\nconst BadgeText = styled(Text)<{ $numberOfLines: number }>`\n display: -webkit-box;\n -webkit-line-clamp: ${({ $numberOfLines }) => $numberOfLines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst StudentBadge: React.FC<StudentBadgeProps> = props => {\n const { is_recent: isRecent, badgeWidth, maxBadgeNameLines = 1, image_url: imageUrl } = props;\n const [mouseEntered, setMouseEntered] = useState(false);\n\n const onBadgeMouseEnter = useCallback(() => {\n setMouseEntered(true);\n }, []);\n\n const onBadgeMouseLeave = useCallback(() => {\n setMouseEntered(false);\n }, []);\n\n const {\n badgeBackgroundColor,\n badgeDescription,\n badgeEarned,\n badgeImage,\n badgeName,\n badgeProgress,\n notEarnedMysterBadge,\n onBadgeClick,\n showLoader,\n showProgress,\n studentBadgeId,\n studentBadgeRef,\n animationUrl,\n } = useStudentBadgeHook(props);\n\n return (\n <Wrapper\n onClick={onBadgeClick}\n ref={studentBadgeRef}\n $width={badgeWidth}\n $isEarned={badgeEarned}\n key={studentBadgeId}\n >\n <StudentBadgeWrapper>\n {showLoader ? (\n <BadgePlaceholder $badgeWidth={badgeWidth} />\n ) : (\n <>\n <BadgeImageContainer\n $backgroundColor={badgeBackgroundColor}\n $badgeEarned={badgeEarned}\n $notEarnedMysterBadge={notEarnedMysterBadge}\n onMouseEnter={onBadgeMouseEnter}\n onMouseLeave={onBadgeMouseLeave}\n >\n {isRecent && (\n <NewTag>\n <Text $renderAs=\"cta2\">NEW</Text>\n </NewTag>\n )}\n {badgeEarned ? (\n <BadgeImage\n $mouseEntered={mouseEntered}\n src={imageUrl}\n alt=\"badge-placeholder\"\n width={badgeWidth}\n height={badgeWidth}\n />\n ) : (\n <img\n src={badgeImage}\n alt=\"badge-placeholder\"\n width={badgeWidth}\n height={badgeWidth}\n />\n )}\n {animationUrl && (\n <FlexView\n $width={badgeWidth + EXTRA_BADGE_SIZE}\n $height={badgeWidth + EXTRA_BADGE_SIZE}\n $position=\"absolute\"\n >\n <LottieAnimation\n src={animationUrl}\n width={badgeWidth}\n height={badgeWidth}\n settings={{ autoplay: mouseEntered, loop: true }}\n animateOnIntersect={false}\n />\n </FlexView>\n )}\n </BadgeImageContainer>\n {showProgress && (\n <ProgressContainer $width={badgeWidth}>\n <Background $height={4} $borderRadius={2} $width={'100%'} $background=\"WHITE\">\n <Progress $width={`${badgeProgress}%`} $borderRadius={2} $background=\"BLACK\" />\n </Background>\n </ProgressContainer>\n )}\n </>\n )}\n </StudentBadgeWrapper>\n <Separator height={8} />\n <BadgeText $renderAs=\"cta2\" $numberOfLines={maxBadgeNameLines}>\n {badgeName}\n </BadgeText>\n <BadgeText $renderAs=\"body3\" $numberOfLines={maxBadgeNameLines + 1}>\n {badgeDescription}\n </BadgeText>\n </Wrapper>\n );\n};\n\nexport default memo(StudentBadge);\n"],"names":["colors","getTheme","EXTRA_BADGE_SIZE","shimmer","badgeWidth","keyframes","BadgePlaceholder","styled","$badgeWidth","NewTag","FlexView","Wrapper","props","StudentBadgeWrapper","BadgeImageContainer","$backgroundColor","$badgeEarned","$notEarnedMysterBadge","css","BadgeImage","ProgressContainer","Background","Progress","BadgeText","Text","$numberOfLines","StudentBadge","isRecent","maxBadgeNameLines","imageUrl","mouseEntered","setMouseEntered","useState","onBadgeMouseEnter","useCallback","onBadgeMouseLeave","badgeBackgroundColor","badgeDescription","badgeEarned","badgeImage","badgeName","badgeProgress","notEarnedMysterBadge","onBadgeClick","showLoader","showProgress","studentBadgeId","studentBadgeRef","animationUrl","useStudentBadgeHook","jsxs","jsx","Fragment","LottieAnimation","Separator","StudentBadge$1","memo"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.2.24-as2",
3
+ "version": "3.2.24-as3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"