@cuemath/leap 3.2.23-as1 → 3.2.23-j1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -6
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/images/images.js +0 -10
  4. package/dist/assets/images/images.js.map +1 -1
  5. package/dist/assets/lottie/lottie.js +2 -7
  6. package/dist/assets/lottie/lottie.js.map +1 -1
  7. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +2 -1
  8. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +1 -1
  9. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +8 -8
  10. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -1
  11. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +82 -60
  12. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
  13. package/dist/features/ui/constants/z-index.js +3 -5
  14. package/dist/features/ui/constants/z-index.js.map +1 -1
  15. package/dist/features/ui/inputs/base-select-input/base-select-input.js +67 -77
  16. package/dist/features/ui/inputs/base-select-input/base-select-input.js.map +1 -1
  17. package/dist/features/ui/lottie-animation/lottie-animation.js +27 -24
  18. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  19. package/dist/index.d.ts +4 -245
  20. package/dist/index.js +603 -619
  21. package/dist/index.js.map +1 -1
  22. package/dist/node_modules/decode-uri-component/index.js.map +1 -0
  23. package/dist/node_modules/query-string/base.js +1 -1
  24. package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
  25. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  26. package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
  27. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  28. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
  29. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  30. package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
  31. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  32. package/dist/static/animated-avatar.95f31960.json +1 -0
  33. package/dist/static/animated-avatar.c3a0fa98.json +1 -0
  34. package/package.json +1 -2
  35. package/dist/assets/line-icons/icons/cue-coin.js +0 -182
  36. package/dist/assets/line-icons/icons/cue-coin.js.map +0 -1
  37. package/dist/assets/line-icons/icons/wins-common-icon.js +0 -26
  38. package/dist/assets/line-icons/icons/wins-common-icon.js.map +0 -1
  39. package/dist/assets/line-icons/icons/wins-epic-icon.js +0 -25
  40. package/dist/assets/line-icons/icons/wins-epic-icon.js.map +0 -1
  41. package/dist/assets/line-icons/icons/wins-legendary-icon.js +0 -25
  42. package/dist/assets/line-icons/icons/wins-legendary-icon.js.map +0 -1
  43. package/dist/assets/line-icons/icons/wins-mystery-icon.js +0 -105
  44. package/dist/assets/line-icons/icons/wins-mystery-icon.js.map +0 -1
  45. package/dist/assets/line-icons/icons/wins-mythic-icon.js +0 -28
  46. package/dist/assets/line-icons/icons/wins-mythic-icon.js.map +0 -1
  47. package/dist/assets/line-icons/icons/wins-rare-icon.js +0 -28
  48. package/dist/assets/line-icons/icons/wins-rare-icon.js.map +0 -1
  49. package/dist/features/notification/notification.js +0 -129
  50. package/dist/features/notification/notification.js.map +0 -1
  51. package/dist/features/ui/carousal/carousal-styles.js +0 -45
  52. package/dist/features/ui/carousal/carousal-styles.js.map +0 -1
  53. package/dist/features/ui/carousal/carousal.js +0 -76
  54. package/dist/features/ui/carousal/carousal.js.map +0 -1
  55. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js +0 -9
  56. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js.map +0 -1
  57. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +0 -80
  58. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +0 -1
  59. package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js +0 -108
  60. package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js.map +0 -1
  61. package/dist/features/wins-dashboard/belts-elements-stickers/belts.js +0 -94
  62. package/dist/features/wins-dashboard/belts-elements-stickers/belts.js.map +0 -1
  63. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js +0 -182
  64. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js.map +0 -1
  65. package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js +0 -35
  66. package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js.map +0 -1
  67. package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js +0 -82
  68. package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js.map +0 -1
  69. package/dist/features/wins-dashboard/constants.js +0 -161
  70. package/dist/features/wins-dashboard/constants.js.map +0 -1
  71. package/dist/features/wins-dashboard/header/wins-header.js +0 -95
  72. package/dist/features/wins-dashboard/header/wins-header.js.map +0 -1
  73. package/dist/features/wins-dashboard/student-badges/animated-tabbar.js +0 -65
  74. package/dist/features/wins-dashboard/student-badges/animated-tabbar.js.map +0 -1
  75. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-hook.js +0 -107
  76. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-hook.js.map +0 -1
  77. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js +0 -135
  78. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +0 -1
  79. package/dist/features/wins-dashboard/student-badges/student-badge.js +0 -161
  80. package/dist/features/wins-dashboard/student-badges/student-badge.js.map +0 -1
  81. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js +0 -136
  82. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +0 -1
  83. package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js +0 -1881
  84. package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js.map +0 -1
  85. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +0 -1
  86. package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
  87. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
  88. package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
  89. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
  90. package/dist/static/awesome.4239f583.json +0 -1
  91. package/dist/static/black-belt.81b3ebf9.png +0 -0
  92. package/dist/static/blue-belt.508a1b4b.png +0 -0
  93. package/dist/static/brown-belt.09bb7e93.png +0 -0
  94. package/dist/static/clapping-hands.17e7ecf0.json +0 -1
  95. package/dist/static/common.9e8ceef1.svg +0 -1
  96. package/dist/static/cool.cd6921bb.json +0 -1
  97. package/dist/static/epic.37a0265a.svg +0 -1
  98. package/dist/static/green-belt.5501296f.png +0 -0
  99. package/dist/static/legendary.f15d09ca.svg +0 -1
  100. package/dist/static/like-button.281a2618.json +0 -1
  101. package/dist/static/mastered-badge.91d25e92.png +0 -0
  102. package/dist/static/mystery.81ada5fb.svg +0 -1
  103. package/dist/static/mythic.58ba0ae0.svg +0 -1
  104. package/dist/static/orange-belt.1fefcc8c.png +0 -0
  105. package/dist/static/purple-belt.e15611b4.png +0 -0
  106. package/dist/static/rare.1ffaa311.svg +0 -1
  107. package/dist/static/red-belt.11f841d9.png +0 -0
  108. package/dist/static/star-strike-emoji.c0b31028.json +0 -1
  109. package/dist/static/trophy.5ef1853a.json +0 -1
  110. package/dist/static/white-belt.ea93103e.png +0 -0
  111. package/dist/static/yellow-belt.0c47b8cc.png +0 -0
  112. /package/dist/node_modules/{query-string/node_modules/decode-uri-component → decode-uri-component}/index.js +0 -0
@@ -1,182 +0,0 @@
1
- import { jsxs as h, jsx as o } from "react/jsx-runtime";
2
- import { useState as S } from "react";
3
- import r, { css as a } from "styled-components";
4
- import l from "../../ui/layout/flex-view.js";
5
- import T from "../../ui/lottie-animation/lottie-animation.js";
6
- import w from "../../ui/separator/separator.js";
7
- import m from "../../ui/text/text.js";
8
- import { SCREEN_SIZES as u, getRewardElement as L, elementColors as D } from "../constants.js";
9
- const W = {
10
- TETRA: 0.5,
11
- COSA: 0.3,
12
- DODA: 0.3,
13
- HEXO: 0.5,
14
- OCTO: 0.5,
15
- EKA: 0.5,
16
- DVI: 0.3,
17
- CHATVA: 0.3,
18
- ASHTA: 0.5,
19
- ZODASA: 0.4,
20
- CLAP: 0.6,
21
- COOL: 0.6,
22
- LIKE: 0.6,
23
- WOW: 0.6,
24
- CHEER: 0.6,
25
- "ROCK-ON": 0.6
26
- }, R = {
27
- ASHTA: "Ashta",
28
- CHATVA: "Chatva",
29
- COSA: "Cosa",
30
- DODA: "Doca",
31
- DVI: "Dvi",
32
- EKA: "Eka",
33
- HEXO: "Hexo",
34
- OCTO: "Octo",
35
- TETRA: "T'tro",
36
- ZODASA: "Zodasa",
37
- CONGRATS: "Congrats",
38
- COOL: "Cool",
39
- KUDOS: "Kudos",
40
- GREAT: "Great",
41
- WOW: "Wow",
42
- AWESOME: "Awesome"
43
- }, P = (t, e) => {
44
- let i = null, s = "-4px", n = null;
45
- return t ? n = "-4px" : (i = `${e ? "-2px" : "2px"}`, s = `${e ? "-4px" : "2px"}`), `
46
- bottom: ${i};
47
- top: ${n};
48
- right: ${s};
49
- `;
50
- }, H = r(l)`
51
- align-items: center;
52
- gap: 4px;
53
- `, K = r(l)`
54
- position: absolute;
55
- top: -3px;
56
- align-items: center;
57
- justify-content: center;
58
- width: 62px;
59
- height: 62px;
60
- `, V = r.div`
61
- position: relative;
62
- width: 62px;
63
- height: 62px;
64
- `, y = r.div`
65
- position: relative;
66
- `, G = r.img`
67
- width: 56px;
68
- height: 56px;
69
- ${({ $disabled: t, $disabledVal: e }) => t && a`
70
- filter: saturate(0);
71
- opacity: ${e};
72
- `}
73
- `, I = r.div`
74
- border: 1px solid ${({ theme: t }) => t.colors.GREY_2};
75
- border-radius: 8px;
76
- `, j = r(l)`
77
- width: 62px;
78
- height: 62px;
79
- align-items: center;
80
- justify-content: center;
81
- ${({ $disabled: t, $disabledVal: e }) => t && a`
82
- filter: saturate(0);
83
- opacity: ${e};
84
- `}
85
- `, Z = r(l)`
86
- position: absolute;
87
- ${({ $isSticker: t, $isCoddingType: e }) => P(t, e)};
88
- background-color: ${({ theme: t }) => t.colors.GREY_2};
89
- border-radius: ${({ $borderRadius: t }) => t};
90
- border: ${({ $borderColor: t }) => `1px solid ${t}`};
91
- width: ${({ $width: t }) => t}px;
92
- height: 16px;
93
- align-items: center;
94
- justify-content: center;
95
- ${({ $currentScreenWidth: t, $width: e }) => t < u.LAPTOP && a`
96
- width: ${e + 6}px;
97
- height: 22px;
98
- `}
99
- `, v = r(m)`
100
- font-size: 9px;
101
- line-height: 14px;
102
- ${({ $currentScreenWidth: t }) => t < u.LAPTOP && a`
103
- font-size: 12px;
104
- line-height: 14px;
105
- `}
106
- `, B = r(m)`
107
- color: ${({ theme: t }) => t.colors.BLACK};
108
- opacity: ${({ $disabled: t }) => t ? 1 : 0.5};
109
- `, U = ({
110
- isAchieved: t = !1,
111
- count: e = 0,
112
- elementType: i,
113
- isCoddingType: s = !1,
114
- isSticker: n = !1,
115
- lotties: A = {},
116
- currentScreenWidth: p
117
- }) => {
118
- const [g, C] = S(!0), d = e >= 100, O = R[i], c = W[i] || 1, { height: f, width: E, lottieSrc: $ } = A[i] || {}, x = (b) => {
119
- C(b);
120
- };
121
- return /* @__PURE__ */ h(H, { children: [
122
- /* @__PURE__ */ o(V, { children: /* @__PURE__ */ o(K, { $flexDirection: "row", children: /* @__PURE__ */ h(y, { children: [
123
- !n && /* @__PURE__ */ o(
124
- G,
125
- {
126
- $disabled: !t,
127
- $disabledVal: c,
128
- src: L(i),
129
- alt: "reward"
130
- }
131
- ),
132
- n && $ && /* @__PURE__ */ o(I, { $disabled: !t, children: /* @__PURE__ */ o(
133
- j,
134
- {
135
- $disabled: !t,
136
- $disabledVal: c,
137
- onMouseEnter: () => x(!1),
138
- onMouseLeave: () => x(!0),
139
- children: /* @__PURE__ */ o(
140
- T,
141
- {
142
- src: $,
143
- width: E,
144
- height: f,
145
- settings: {
146
- loop: !0,
147
- autoplay: !g && t
148
- }
149
- }
150
- )
151
- }
152
- ) }),
153
- t && /* @__PURE__ */ o(
154
- Z,
155
- {
156
- $isSticker: n,
157
- $borderColor: D[i] || "#000",
158
- $width: d ? 28 : 16,
159
- $borderRadius: d ? "26px" : "50%",
160
- $isCoddingType: s,
161
- $currentScreenWidth: p,
162
- $flexDirection: "row",
163
- children: /* @__PURE__ */ o(
164
- v,
165
- {
166
- $currentScreenWidth: p,
167
- $renderAs: "body3",
168
- $color: "BLACK",
169
- children: e
170
- }
171
- )
172
- }
173
- )
174
- ] }) }) }),
175
- /* @__PURE__ */ o(w, { height: 4 }),
176
- /* @__PURE__ */ o(B, { $renderAs: "body3", $disabled: t, children: O })
177
- ] });
178
- };
179
- export {
180
- U as default
181
- };
182
- //# sourceMappingURL=elements.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elements.js","sources":["../../../../src/features/wins-dashboard/belts-elements-stickers/elements.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport styled, { css } 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 { elementColors, getRewardElement, SCREEN_SIZES } from '../constants';\n\nconst disablePercentages: Record<string, number> = {\n 'TETRA': 0.5,\n 'COSA': 0.3,\n 'DODA': 0.3,\n 'HEXO': 0.5,\n 'OCTO': 0.5,\n 'EKA': 0.5,\n 'DVI': 0.3,\n 'CHATVA': 0.3,\n 'ASHTA': 0.5,\n 'ZODASA': 0.4,\n 'CLAP': 0.6,\n 'COOL': 0.6,\n 'LIKE': 0.6,\n 'WOW': 0.6,\n 'CHEER': 0.6,\n 'ROCK-ON': 0.6,\n};\n\nconst elementTitles: Record<string, string> = {\n ASHTA: 'Ashta',\n CHATVA: 'Chatva',\n COSA: 'Cosa',\n DODA: 'Doca',\n DVI: 'Dvi',\n EKA: 'Eka',\n HEXO: 'Hexo',\n OCTO: 'Octo',\n TETRA: `T'tro`,\n ZODASA: 'Zodasa',\n CONGRATS: 'Congrats',\n COOL: 'Cool',\n KUDOS: 'Kudos',\n GREAT: 'Great',\n WOW: 'Wow',\n AWESOME: 'Awesome',\n};\n\nconst getPositionStyles = (isSticker: boolean, isCoddingType: boolean): string => {\n let bottom: string | null = null;\n let right = '-4px';\n let top: string | null = null;\n\n if (!isSticker) {\n bottom = `${isCoddingType ? '-2px' : '2px'}`;\n right = `${isCoddingType ? '-4px' : '2px'}`;\n } else {\n top = '-4px';\n }\n\n return `\n bottom: ${bottom};\n top: ${top};\n right: ${right};\n `;\n};\n\nconst ElementContainer = styled(FlexView)`\n align-items: center;\n gap: 4px;\n`;\n\nconst Wrapper = styled(FlexView)`\n position: absolute;\n top: -3px;\n align-items: center;\n justify-content: center;\n width: 62px;\n height: 62px;\n`;\n\nconst BgWrapper = styled.div`\n position: relative;\n width: 62px;\n height: 62px;\n`;\n\nconst GemContainer = styled.div`\n position: relative;\n`;\n\ninterface ImageWrapperProps {\n $disabled: boolean;\n $disabledVal: number;\n}\n\nconst ImageWrapper = styled.img<ImageWrapperProps>`\n width: 56px;\n height: 56px;\n ${({ $disabled, $disabledVal }) =>\n $disabled &&\n css`\n filter: saturate(0);\n opacity: ${$disabledVal};\n `}\n`;\n\ninterface LottieContainerProps {\n $disabled: boolean;\n}\n\nconst LottieContainer = styled.div<LottieContainerProps>`\n border: 1px solid ${({ theme }) => theme.colors.GREY_2};\n border-radius: 8px;\n`;\n\ninterface LottieWrapperProps {\n $disabled: boolean;\n $disabledVal: number;\n}\n\nconst LottieWrapper = styled(FlexView)<LottieWrapperProps>`\n width: 62px;\n height: 62px;\n align-items: center;\n justify-content: center;\n ${({ $disabled, $disabledVal }) =>\n $disabled &&\n css`\n filter: saturate(0);\n opacity: ${$disabledVal};\n `}\n`;\n\ninterface CountWrapperProps {\n $isSticker: boolean;\n $isCoddingType: boolean;\n $borderColor: string;\n $width: number;\n $borderRadius: string;\n $currentScreenWidth: number;\n}\n\nconst CountWrapper = styled(FlexView)<CountWrapperProps>`\n position: absolute;\n ${({ $isSticker, $isCoddingType }) => getPositionStyles($isSticker, $isCoddingType)};\n background-color: ${({ theme }) => theme.colors.GREY_2};\n border-radius: ${({ $borderRadius }) => $borderRadius};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n width: ${({ $width }) => $width}px;\n height: 16px;\n align-items: center;\n justify-content: center;\n ${({ $currentScreenWidth, $width }) =>\n $currentScreenWidth < SCREEN_SIZES.LAPTOP &&\n css`\n width: ${$width + 6}px;\n height: 22px;\n `}\n`;\n\ninterface CountTextProps {\n $currentScreenWidth: number;\n}\n\nconst CountText = styled(Text)<CountTextProps>`\n font-size: 9px;\n line-height: 14px;\n ${({ $currentScreenWidth }) =>\n $currentScreenWidth < SCREEN_SIZES.LAPTOP &&\n css`\n font-size: 12px;\n line-height: 14px;\n `}\n`;\n\ninterface ElementTextProps {\n $disabled: boolean;\n}\n\nconst ElementText = styled(Text)<ElementTextProps>`\n color: ${({ theme }) => theme.colors.BLACK};\n opacity: ${({ $disabled }) => ($disabled ? 1 : 0.5)};\n`;\n\ninterface LottieData {\n height: number;\n width: number;\n lottieSrc: string;\n}\n\ninterface ElementProps {\n isAchieved?: boolean;\n count?: number;\n elementType: string;\n isCoddingType?: boolean;\n isSticker?: boolean;\n lotties?: Record<string, LottieData>;\n currentScreenWidth: number;\n}\n\nconst Element: React.FC<ElementProps> = ({\n isAchieved = false,\n count = 0,\n elementType,\n isCoddingType = false,\n isSticker = false,\n lotties = {},\n currentScreenWidth,\n}) => {\n const [isPaused, setIsPaused] = useState(true);\n const isLargeCount = count >= 100;\n const elementTitle = elementTitles[elementType];\n const disabledVal = disablePercentages[elementType] || 1;\n const { height, width, lottieSrc } = lotties[elementType] || {};\n\n const animateLottie = (val: boolean) => {\n setIsPaused(val);\n };\n\n return (\n <ElementContainer>\n <BgWrapper>\n <Wrapper $flexDirection=\"row\">\n <GemContainer>\n {!isSticker && (\n <ImageWrapper\n $disabled={!isAchieved}\n $disabledVal={disabledVal}\n src={getRewardElement(elementType)}\n alt=\"reward\"\n />\n )}\n {isSticker && lottieSrc && (\n <LottieContainer $disabled={!isAchieved}>\n <LottieWrapper\n $disabled={!isAchieved}\n $disabledVal={disabledVal}\n onMouseEnter={() => animateLottie(false)}\n onMouseLeave={() => animateLottie(true)}\n >\n <LottieAnimation\n src={lottieSrc}\n width={width}\n height={height}\n settings={{\n loop: true,\n autoplay: !isPaused && isAchieved,\n }}\n />\n </LottieWrapper>\n </LottieContainer>\n )}\n\n {isAchieved && (\n <CountWrapper\n $isSticker={isSticker}\n $borderColor={elementColors[elementType as keyof typeof elementColors] || '#000'}\n $width={isLargeCount ? 28 : 16}\n $borderRadius={isLargeCount ? '26px' : '50%'}\n $isCoddingType={isCoddingType}\n $currentScreenWidth={currentScreenWidth}\n $flexDirection=\"row\"\n >\n <CountText\n $currentScreenWidth={currentScreenWidth}\n $renderAs=\"body3\"\n $color=\"BLACK\"\n >\n {count}\n </CountText>\n </CountWrapper>\n )}\n </GemContainer>\n </Wrapper>\n </BgWrapper>\n <Separator height={4} />\n <ElementText $renderAs=\"body3\" $disabled={isAchieved}>\n {elementTitle}\n </ElementText>\n </ElementContainer>\n );\n};\n\nexport default Element;\n"],"names":["disablePercentages","elementTitles","getPositionStyles","isSticker","isCoddingType","bottom","right","top","ElementContainer","styled","FlexView","Wrapper","BgWrapper","GemContainer","ImageWrapper","$disabled","$disabledVal","css","LottieContainer","theme","LottieWrapper","CountWrapper","$isSticker","$isCoddingType","$borderRadius","$borderColor","$width","$currentScreenWidth","SCREEN_SIZES","CountText","Text","ElementText","Element","isAchieved","count","elementType","lotties","currentScreenWidth","isPaused","setIsPaused","useState","isLargeCount","elementTitle","disabledVal","height","width","lottieSrc","animateLottie","val","jsx","getRewardElement","LottieAnimation","elementColors","Separator"],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import s from "styled-components";
3
- const a = s.div`
4
- position: relative;
5
- overflow: hidden;
6
- background: ${({ $backgroundColor: r, theme: o }) => o.colors[r] || r};
7
- width: 100%;
8
- height: ${({ $height: r }) => `${r}px`};
9
- border-radius: ${({ $height: r, $corners: o }) => o ? `${r / 2}px` : 0};
10
- `, $ = s.div`
11
- position: absolute;
12
- background: ${({ $backgroundColor: r, theme: o }) => o.colors[r] || r};
13
- transition: width 300ms ease-in-out;
14
- width: ${({ $progress: r }) => `${r}%`};
15
- height: 100%;
16
- border-radius: ${({ $borderRadius: r }) => r || 0}px;
17
- `, c = ({
18
- borderRadius: r = 0,
19
- height: o = 8,
20
- progress: t,
21
- corners: e = !0,
22
- backgroundColor: d = "GREY_1",
23
- progressColor: n = "GREY_4"
24
- }) => /* @__PURE__ */ i(a, { $height: o, $corners: e, $backgroundColor: d, children: /* @__PURE__ */ i(
25
- $,
26
- {
27
- $progress: t,
28
- $backgroundColor: n,
29
- $borderRadius: r
30
- }
31
- ) });
32
- export {
33
- c as default
34
- };
35
- //# sourceMappingURL=progress-bar-horizontal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-bar-horizontal.js","sources":["../../../../src/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.tsx"],"sourcesContent":["import type { TColorNames } from '../../ui/types';\n\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Background = styled.div<{\n $backgroundColor: TColorNames | string;\n $height: number;\n $corners: boolean;\n}>`\n position: relative;\n overflow: hidden;\n background: ${({ $backgroundColor, theme }) =>\n theme.colors[$backgroundColor as TColorNames] || $backgroundColor};\n width: 100%;\n height: ${({ $height }) => `${$height}px`};\n border-radius: ${({ $height, $corners }) => ($corners ? `${$height / 2}px` : 0)};\n`;\n\nconst Progress = styled.div<{\n $backgroundColor: TColorNames | string;\n $progress: number;\n $borderRadius: number;\n}>`\n position: absolute;\n background: ${({ $backgroundColor, theme }) =>\n theme.colors[$backgroundColor as TColorNames] || $backgroundColor};\n transition: width 300ms ease-in-out;\n width: ${({ $progress }) => `${$progress}%`};\n height: 100%;\n border-radius: ${({ $borderRadius }) => $borderRadius || 0}px;\n`;\n\ninterface ProgressBarHorizontalProps {\n borderRadius?: number;\n progress: number;\n height?: number;\n backgroundColor?: TColorNames | string;\n progressColor?: TColorNames | string;\n corners?: boolean;\n}\n\nconst ProgressBarHorizontal: React.FC<ProgressBarHorizontalProps> = ({\n borderRadius = 0,\n height = 8,\n progress,\n corners = true,\n backgroundColor = 'GREY_1',\n progressColor = 'GREY_4',\n}) => {\n return (\n <Background $height={height} $corners={corners} $backgroundColor={backgroundColor}>\n <Progress\n $progress={progress}\n $backgroundColor={progressColor}\n $borderRadius={borderRadius}\n />\n </Background>\n );\n};\n\nexport default ProgressBarHorizontal;\n"],"names":["Background","styled","$backgroundColor","theme","$height","$corners","Progress","$progress","$borderRadius","ProgressBarHorizontal","borderRadius","height","progress","corners","backgroundColor","progressColor","jsx"],"mappings":";;AAKA,MAAMA,IAAaC,EAAO;AAAA;AAAA;AAAA,gBAOV,CAAC,EAAE,kBAAAC,GAAkB,OAAAC,QACjCA,EAAM,OAAOD,CAA+B,KAAKA,CAAgB;AAAA;AAAA,YAEzD,CAAC,EAAE,SAAAE,EAAc,MAAA,GAAGA,CAAO,IAAI;AAAA,mBACxB,CAAC,EAAE,SAAAA,GAAS,UAAAC,EAAS,MAAOA,IAAW,GAAGD,IAAU,CAAC,OAAO,CAAE;AAAA,GAG3EE,IAAWL,EAAO;AAAA;AAAA,gBAMR,CAAC,EAAE,kBAAAC,GAAkB,OAAAC,QACjCA,EAAM,OAAOD,CAA+B,KAAKA,CAAgB;AAAA;AAAA,WAE1D,CAAC,EAAE,WAAAK,EAAgB,MAAA,GAAGA,CAAS,GAAG;AAAA;AAAA,mBAE1B,CAAC,EAAE,eAAAC,QAAoBA,KAAiB,CAAC;AAAA,GAYtDC,IAA8D,CAAC;AAAA,EACnE,cAAAC,IAAe;AAAA,EACf,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,iBAAAC,IAAkB;AAAA,EAClB,eAAAC,IAAgB;AAClB,wBAEKf,GAAW,EAAA,SAASW,GAAQ,UAAUE,GAAS,kBAAkBC,GAChE,UAAA,gBAAAE;AAAA,EAACV;AAAA,EAAA;AAAA,IACC,WAAWM;AAAA,IACX,kBAAkBG;AAAA,IAClB,eAAeL;AAAA,EAAA;AAEnB,EAAA,CAAA;"}
@@ -1,82 +0,0 @@
1
- import { jsxs as I, jsx as r } from "react/jsx-runtime";
2
- import l, { css as m } from "styled-components";
3
- import f from "../../ui/layout/flex-view.js";
4
- import $ from "../../ui/separator/separator.js";
5
- import S from "../../ui/text/text.js";
6
- import { SCREEN_SIZES as a, INSTRUCTION_REWARDS as N, MATH_REWARDS as R, STICKERS as w } from "../constants.js";
7
- import A from "./elements.js";
8
- const E = {
9
- STICKER: "STICKERS",
10
- CODING: "CODING",
11
- CHIP: "CHIPS",
12
- ELEMENT: "ELEMENTS"
13
- }, g = l(f)`
14
- background-color: ${({ theme: t }) => t.colors.WHITE};
15
- `, L = l(f)`
16
- max-width: 280px;
17
- width: 100%;
18
- ${({ $currentScreenWidth: t }) => t < a.LAPTOP && m`
19
- max-width: 764px;
20
- width: 100%;
21
- `}
22
- `, P = l.div`
23
- width: 33%;
24
- padding-bottom: 16px;
25
- ${({ $currentScreenWidth: t }) => t < a.LAPTOP && m`
26
- width: 15%;
27
- height: 33%;
28
- `}
29
- `, O = l.div`
30
- padding-left: ${({ $isSticker: t }) => t ? "13px" : "19px"};
31
- color: ${({ theme: t }) => t.colors.BLACK};
32
- font-size: 20px;
33
- font-weight: 800;
34
- ${({ $currentScreenWidth: t }) => t < a.LAPTOP && m`
35
- padding-left: 0;
36
- `}
37
- `, u = (t, o) => {
38
- let e = E.STICKER;
39
- return t || (e = o ? E.CHIP : E.ELEMENT), e;
40
- }, T = (t, o, e, n, s = {}, c) => /* @__PURE__ */ r(P, { $currentScreenWidth: c, children: /* @__PURE__ */ r(
41
- A,
42
- {
43
- isAchieved: t in o,
44
- count: o[t],
45
- elementType: t,
46
- isCoddingType: e,
47
- isSticker: n,
48
- lotties: s,
49
- currentScreenWidth: c
50
- }
51
- ) }, t), v = ({
52
- elements: t,
53
- isSticker: o = !1,
54
- lotties: e = {},
55
- currentScreenWidth: n,
56
- programStream: s
57
- }) => {
58
- const c = s === E.CODING ? [...N] : [...R], d = s === E.CODING, h = w, p = {};
59
- return t && t.forEach((i) => {
60
- const { name: x, count: C } = i;
61
- p[x] = C;
62
- }), /* @__PURE__ */ I(g, { children: [
63
- /* @__PURE__ */ r(O, { $currentScreenWidth: n, $isSticker: o, children: /* @__PURE__ */ r(S, { $renderAs: "h5", $color: "BLACK", children: u(o, d) }) }),
64
- /* @__PURE__ */ r($, { height: 18 }),
65
- /* @__PURE__ */ r(L, { $flexWrap: !0, $flexDirection: "row", $currentScreenWidth: n, children: o ? h.map(
66
- (i) => T(
67
- i,
68
- p,
69
- d,
70
- o,
71
- e,
72
- n
73
- )
74
- ) : c.map(
75
- (i) => T(i, p, d, !1, {}, n)
76
- ) })
77
- ] });
78
- };
79
- export {
80
- v as default
81
- };
82
- //# sourceMappingURL=reward-elements.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reward-elements.js","sources":["../../../../src/features/wins-dashboard/belts-elements-stickers/reward-elements.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { INSTRUCTION_REWARDS, MATH_REWARDS, SCREEN_SIZES, STICKERS } from '../constants';\nimport Element from './elements';\n\nconst ELEMENT_TEXT = {\n STICKER: 'STICKERS',\n CODING: 'CODING',\n CHIP: 'CHIPS',\n ELEMENT: 'ELEMENTS',\n};\n\nconst InfoWrapper = styled(FlexView)`\n background-color: ${({ theme }) => theme.colors.WHITE};\n`;\n\ninterface ElementContainerProps {\n $currentScreenWidth: number;\n}\n\nconst ElementContainer = styled(FlexView)<ElementContainerProps>`\n max-width: 280px;\n width: 100%;\n ${({ $currentScreenWidth }) =>\n $currentScreenWidth < SCREEN_SIZES.LAPTOP &&\n css`\n max-width: 764px;\n width: 100%;\n `}\n`;\n\ninterface ElementWrapperProps {\n $currentScreenWidth: number;\n}\n\nconst ElementWrapper = styled.div<ElementWrapperProps>`\n width: 33%;\n padding-bottom: 16px;\n ${({ $currentScreenWidth }) =>\n $currentScreenWidth < SCREEN_SIZES.LAPTOP &&\n css`\n width: 15%;\n height: 33%;\n `}\n`;\n\ninterface ElementTextProps {\n $isSticker: boolean;\n $currentScreenWidth: number;\n}\n\nconst ElementText = styled.div<ElementTextProps>`\n padding-left: ${({ $isSticker }) => ($isSticker ? '13px' : '19px')};\n color: ${({ theme }) => theme.colors.BLACK};\n font-size: 20px;\n font-weight: 800;\n ${({ $currentScreenWidth }) =>\n $currentScreenWidth < SCREEN_SIZES.LAPTOP &&\n css`\n padding-left: 0;\n `}\n`;\n\nconst getElementText = (isSticker: boolean, isCoddingType: boolean): string => {\n let name = ELEMENT_TEXT.STICKER;\n\n if (!isSticker) {\n name = isCoddingType ? ELEMENT_TEXT.CHIP : ELEMENT_TEXT.ELEMENT;\n }\n\n return name;\n};\n\ninterface ElementData {\n name: string;\n count: number;\n}\n\ninterface LottieProps {\n height: number;\n width: number;\n lottieSrc: string;\n}\n\nconst getElements = (\n element: string,\n elementsCount: Record<string, number>,\n isCoddingType: boolean,\n isSticker: boolean,\n lotties: Record<string, LottieProps> = {},\n currentScreenWidth: number,\n) => {\n return (\n <ElementWrapper $currentScreenWidth={currentScreenWidth} key={element}>\n <Element\n isAchieved={element in elementsCount}\n count={elementsCount[element]}\n elementType={element}\n isCoddingType={isCoddingType}\n isSticker={isSticker}\n lotties={lotties}\n currentScreenWidth={currentScreenWidth}\n />\n </ElementWrapper>\n );\n};\n\ninterface RewardElementsProps {\n elements?: ElementData[];\n isSticker?: boolean;\n lotties?: Record<string, LottieProps>;\n currentScreenWidth: number;\n programStream?: string;\n}\n\nconst RewardElements: React.FC<RewardElementsProps> = ({\n elements,\n isSticker = false,\n lotties = {},\n currentScreenWidth,\n programStream,\n}) => {\n const totalElements =\n programStream === ELEMENT_TEXT.CODING ? [...INSTRUCTION_REWARDS] : [...MATH_REWARDS];\n const isCoddingType = programStream === ELEMENT_TEXT.CODING;\n const totalStickers = STICKERS;\n const elementsCount: Record<string, number> = {};\n\n if (elements) {\n elements.forEach(element => {\n const { name, count } = element;\n\n elementsCount[name] = count;\n });\n }\n\n return (\n <InfoWrapper>\n <ElementText $currentScreenWidth={currentScreenWidth} $isSticker={isSticker}>\n <Text $renderAs=\"h5\" $color=\"BLACK\">\n {getElementText(isSticker, isCoddingType)}\n </Text>\n </ElementText>\n <Separator height={18} />\n <ElementContainer $flexWrap $flexDirection=\"row\" $currentScreenWidth={currentScreenWidth}>\n {!isSticker\n ? totalElements.map(element =>\n getElements(element, elementsCount, isCoddingType, false, {}, currentScreenWidth),\n )\n : totalStickers.map(sticker =>\n getElements(\n sticker,\n elementsCount,\n isCoddingType,\n isSticker,\n lotties,\n currentScreenWidth,\n ),\n )}\n </ElementContainer>\n </InfoWrapper>\n );\n};\n\nexport default RewardElements;\n"],"names":["ELEMENT_TEXT","InfoWrapper","styled","FlexView","theme","ElementContainer","$currentScreenWidth","SCREEN_SIZES","css","ElementWrapper","ElementText","$isSticker","getElementText","isSticker","isCoddingType","name","getElements","element","elementsCount","lotties","currentScreenWidth","jsx","Element","RewardElements","elements","programStream","totalElements","INSTRUCTION_REWARDS","MATH_REWARDS","totalStickers","STICKERS","count","Text","Separator","sticker"],"mappings":";;;;;;;AASA,MAAMA,IAAe;AAAA,EACnB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AACX,GAEMC,IAAcC,EAAOC,CAAQ;AAAA,sBACb,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA,GAOjDC,IAAmBH,EAAOC,CAAQ;AAAA;AAAA;AAAA,IAGpC,CAAC,EAAE,qBAAAG,EACH,MAAAA,IAAsBC,EAAa,UACnCC;AAAA;AAAA;AAAA,KAGC;AAAA,GAOCC,IAAiBP,EAAO;AAAA;AAAA;AAAA,IAG1B,CAAC,EAAE,qBAAAI,EACH,MAAAA,IAAsBC,EAAa,UACnCC;AAAA;AAAA;AAAA,KAGC;AAAA,GAQCE,IAAcR,EAAO;AAAA,kBACT,CAAC,EAAE,YAAAS,EAAA,MAAkBA,IAAa,SAAS,MAAO;AAAA,WACzD,CAAC,EAAE,OAAAP,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA,IAGxC,CAAC,EAAE,qBAAAE,EACH,MAAAA,IAAsBC,EAAa,UACnCC;AAAA;AAAA,KAEC;AAAA,GAGCI,IAAiB,CAACC,GAAoBC,MAAmC;AAC7E,MAAIC,IAAOf,EAAa;AAExB,SAAKa,MACIE,IAAAD,IAAgBd,EAAa,OAAOA,EAAa,UAGnDe;AACT,GAaMC,IAAc,CAClBC,GACAC,GACAJ,GACAD,GACAM,IAAuC,CAAC,GACxCC,MAGE,gBAAAC,EAACZ,GAAe,EAAA,qBAAqBW,GACnC,UAAA,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,YAAYL,KAAWC;AAAA,IACvB,OAAOA,EAAcD,CAAO;AAAA,IAC5B,aAAaA;AAAA,IACb,eAAAH;AAAA,IACA,WAAAD;AAAA,IACA,SAAAM;AAAA,IACA,oBAAAC;AAAA,EAAA;AAAA,KAR0DH,CAU9D,GAYEM,IAAgD,CAAC;AAAA,EACrD,UAAAC;AAAA,EACA,WAAAX,IAAY;AAAA,EACZ,SAAAM,IAAU,CAAC;AAAA,EACX,oBAAAC;AAAA,EACA,eAAAK;AACF,MAAM;AACE,QAAAC,IACJD,MAAkBzB,EAAa,SAAS,CAAC,GAAG2B,CAAmB,IAAI,CAAC,GAAGC,CAAY,GAC/Ed,IAAgBW,MAAkBzB,EAAa,QAC/C6B,IAAgBC,GAChBZ,IAAwC,CAAA;AAE9C,SAAIM,KACFA,EAAS,QAAQ,CAAWP,MAAA;AACpB,UAAA,EAAE,MAAAF,GAAM,OAAAgB,EAAU,IAAAd;AAExB,IAAAC,EAAcH,CAAI,IAAIgB;AAAA,EAAA,CACvB,qBAIA9B,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAoB,EAACX,GAAY,EAAA,qBAAqBU,GAAoB,YAAYP,GAChE,UAAC,gBAAAQ,EAAAW,GAAA,EAAK,WAAU,MAAK,QAAO,SACzB,UAAApB,EAAeC,GAAWC,CAAa,EAC1C,CAAA,GACF;AAAA,IACA,gBAAAO,EAACY,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAZ,EAAChB,GAAiB,EAAA,WAAS,IAAC,gBAAe,OAAM,qBAAqBe,GACnE,UAACP,IAIEgB,EAAc;AAAA,MAAI,CAChBK,MAAAlB;AAAA,QACEkB;AAAA,QACAhB;AAAA,QACAJ;AAAA,QACAD;AAAA,QACAM;AAAA,QACAC;AAAA,MACF;AAAA,IAAA,IAXFM,EAAc;AAAA,MAAI,CAAAT,MAChBD,EAAYC,GAASC,GAAeJ,GAAe,IAAO,IAAIM,CAAkB;AAAA,OAYxF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,161 +0,0 @@
1
- import { ILLUSTRATIONS as T } from "../../assets/illustrations/illustrations.js";
2
- import { IMAGES as E } from "../../assets/images/images.js";
3
- import R from "../../assets/line-icons/icons/wins-common-icon.js";
4
- import o from "../../assets/line-icons/icons/wins-epic-icon.js";
5
- import C from "../../assets/line-icons/icons/wins-legendary-icon.js";
6
- import D from "../../assets/line-icons/icons/wins-mystery-icon.js";
7
- import n from "../../assets/line-icons/icons/wins-mythic-icon.js";
8
- import c from "../../assets/line-icons/icons/wins-rare-icon.js";
9
- import { LOTTIE as t } from "../../assets/lottie/lottie.js";
10
- import { getTheme as s } from "../ui/theme/get-theme.js";
11
- const m = {
12
- TABLET: 864,
13
- LAPTOP: 1024,
14
- LAPTOPL: 1280
15
- }, { colors: O } = s(), a = {
16
- ASHTA: "#FF7E3B",
17
- CHATVA: "#DA5107",
18
- COSA: "#0A47C2",
19
- DODA: "#850F85",
20
- DVI: "#0A47C2",
21
- EKA: "#3DD771",
22
- HEXO: "#3DD771",
23
- OCTO: "#FF7E3B",
24
- TETRA: "#FFBA07",
25
- ZODASA: "#1EB5F0",
26
- CONGRATS: O.GREY_2,
27
- COOL: O.GREY_2,
28
- KUDOS: O.GREY_2,
29
- GREAT: O.GREY_2,
30
- WOW: O.GREY_2,
31
- AWESOME: O.GREY_2
32
- }, A = {
33
- COMMON: "COMMON",
34
- RARE: "RARE",
35
- EPIC: "EPIC",
36
- LEGENDARY: "LEGENDARY",
37
- MYTHIC: "MYTHIC",
38
- MYSTERY: "MYSTERY"
39
- }, H = {
40
- ACKNOWLEDGED: "ACKNOWLEDGED",
41
- ASSIGNED: "ASSIGNED",
42
- UNASSIGNED: "UNASSIGNED"
43
- }, h = {
44
- [A.COMMON]: "#1EB5F0",
45
- [A.RARE]: "#3DD771",
46
- [A.EPIC]: "#ED6CEF",
47
- [A.LEGENDARY]: "#FF7E3B",
48
- [A.MYTHIC]: "#FFBA07",
49
- [A.MYSTERY]: O.WHITE
50
- }, u = {
51
- [A.COMMON]: R,
52
- [A.RARE]: c,
53
- [A.EPIC]: o,
54
- [A.LEGENDARY]: C,
55
- [A.MYTHIC]: n,
56
- [A.MYSTERY]: D
57
- }, P = {
58
- [A.COMMON]: T.COMMON,
59
- [A.RARE]: T.RARE,
60
- [A.EPIC]: T.EPIC,
61
- [A.LEGENDARY]: T.LEGENDARY,
62
- [A.MYTHIC]: T.MYTHIC,
63
- [A.MYSTERY]: T.MYSTERY
64
- }, S = {
65
- black: E.BLACK_BELT,
66
- blue: E.BLUE_BELT,
67
- brown: E.BROWN_BELT,
68
- green: E.GREEN_BELT,
69
- orange: E.ORANGE_BELT,
70
- purple: E.PURPLE_BELT,
71
- red: E.RED_BELT,
72
- white: E.WHITE_BELT,
73
- yellow: E.YELLOW_BELT
74
- }, l = (r) => {
75
- const e = r == null ? void 0 : r.toLowerCase();
76
- return e && e in S ? S[e] : E.MASTERED_BADGE;
77
- }, K = ["TETRA", "COSA", "DODA", "HEXO", "OCTO"], U = ["EKA", "DVI", "CHATVA", "ASHTA", "ZODASA"], F = ["CONGRATS", "COOL", "KUDOS", "GREAT", "WOW", "AWESOME"], f = (r) => {
78
- switch (r) {
79
- case "COSA":
80
- return E.COSA;
81
- case "OCTO":
82
- return E.OCTO;
83
- case "DODA":
84
- return E.DODA;
85
- case "HEXO":
86
- return E.HEXO;
87
- case "TETRA":
88
- return E.TETRA;
89
- case "EKA":
90
- return E.EKA;
91
- case "DVI":
92
- return E.DVI;
93
- case "CHATVA":
94
- return E.CHATVA;
95
- case "ASHTA":
96
- return E.ASHTA;
97
- case "ZODASA":
98
- return E.ZODASA;
99
- case "CONGRATS":
100
- return E.CONGRATS;
101
- case "COOL":
102
- return E.COOL;
103
- case "KUDOS":
104
- return E.KUDOS;
105
- case "GREAT":
106
- return E.GREAT;
107
- case "WOW":
108
- return E.WOW;
109
- case "AWESOME":
110
- return E.AWESOME;
111
- default:
112
- return E.TETRA;
113
- }
114
- }, g = {
115
- CONGRATS: {
116
- height: 50,
117
- width: 50,
118
- lottieSrc: t.TROPHY
119
- },
120
- COOL: {
121
- height: 50,
122
- width: 50,
123
- lottieSrc: t.COOL
124
- },
125
- KUDOS: {
126
- height: 50,
127
- width: 50,
128
- lottieSrc: t.CLAPPING_HANDS
129
- },
130
- GREAT: {
131
- height: 63,
132
- width: 50,
133
- lottieSrc: t.LIKE_BUTTON
134
- },
135
- WOW: {
136
- height: 55,
137
- width: 55,
138
- lottieSrc: t.STAR_STRIKE_EMOJI
139
- },
140
- AWESOME: {
141
- height: 50,
142
- width: 50,
143
- lottieSrc: t.AWESOME
144
- }
145
- };
146
- export {
147
- h as BADGE_TYPE_BACKGROUND,
148
- P as BADGE_TYPE_BADGE_ICON,
149
- u as BADGE_TYPE_TAB_ICON,
150
- U as INSTRUCTION_REWARDS,
151
- K as MATH_REWARDS,
152
- m as SCREEN_SIZES,
153
- F as STICKERS,
154
- H as STUDENT_BADGE_STATUS,
155
- A as STUDENT_BADGE_TYPE,
156
- g as StickerMap,
157
- a as elementColors,
158
- l as getBeltIcon,
159
- f as getRewardElement
160
- };
161
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../src/features/wins-dashboard/constants.ts"],"sourcesContent":["import { ILLUSTRATIONS } from '../../assets/illustrations/illustrations';\nimport { IMAGES } from '../../assets/images/images';\nimport WinsCommonIcon from '../../assets/line-icons/icons/wins-common-icon';\nimport WinsEpicIcon from '../../assets/line-icons/icons/wins-epic-icon';\nimport WinsLegendaryIcon from '../../assets/line-icons/icons/wins-legendary-icon';\nimport WinsMysteryIcon from '../../assets/line-icons/icons/wins-mystery-icon';\nimport WinsMythicIcon from '../../assets/line-icons/icons/wins-mythic-icon';\nimport WinsRareIcon from '../../assets/line-icons/icons/wins-rare-icon';\nimport { LOTTIE } from '../../assets/lottie/lottie';\nimport { getTheme } from '../ui/theme/get-theme';\n\nexport const SCREEN_SIZES = {\n TABLET: 864,\n LAPTOP: 1024,\n LAPTOPL: 1280,\n};\n\nexport const DEVICES = {\n TABLET: `(max-width: ${SCREEN_SIZES.TABLET}px)`,\n LAPTOP: `(max-width: ${SCREEN_SIZES.LAPTOP}px)`,\n LAPTOPL: `(max-width: ${SCREEN_SIZES.LAPTOPL}px)`,\n};\n\nconst { colors } = getTheme();\n\nexport const elementColors = {\n ASHTA: '#FF7E3B',\n CHATVA: '#DA5107',\n COSA: '#0A47C2',\n DODA: '#850F85',\n DVI: '#0A47C2',\n EKA: '#3DD771',\n HEXO: '#3DD771',\n OCTO: '#FF7E3B',\n TETRA: '#FFBA07',\n ZODASA: '#1EB5F0',\n CONGRATS: colors.GREY_2,\n COOL: colors.GREY_2,\n KUDOS: colors.GREY_2,\n GREAT: colors.GREY_2,\n WOW: colors.GREY_2,\n AWESOME: colors.GREY_2,\n};\n\nexport const STUDENT_BADGE_TYPE = {\n COMMON: 'COMMON',\n RARE: 'RARE',\n EPIC: 'EPIC',\n LEGENDARY: 'LEGENDARY',\n MYTHIC: 'MYTHIC',\n MYSTERY: 'MYSTERY',\n};\n\nexport const STUDENT_BADGE_STATUS = {\n ACKNOWLEDGED: 'ACKNOWLEDGED',\n ASSIGNED: 'ASSIGNED',\n UNASSIGNED: 'UNASSIGNED',\n};\n\nexport const BADGE_TYPE_BACKGROUND = {\n [STUDENT_BADGE_TYPE.COMMON]: '#1EB5F0',\n [STUDENT_BADGE_TYPE.RARE]: '#3DD771',\n [STUDENT_BADGE_TYPE.EPIC]: '#ED6CEF',\n [STUDENT_BADGE_TYPE.LEGENDARY]: '#FF7E3B',\n [STUDENT_BADGE_TYPE.MYTHIC]: '#FFBA07',\n [STUDENT_BADGE_TYPE.MYSTERY]: colors.WHITE,\n};\n\nexport const BADGE_TYPE_TAB_ICON: Record<\n string,\n React.FC<{ color?: string; selected?: boolean }>\n> = {\n [STUDENT_BADGE_TYPE.COMMON]: WinsCommonIcon,\n [STUDENT_BADGE_TYPE.RARE]: WinsRareIcon,\n [STUDENT_BADGE_TYPE.EPIC]: WinsEpicIcon,\n [STUDENT_BADGE_TYPE.LEGENDARY]: WinsLegendaryIcon,\n [STUDENT_BADGE_TYPE.MYTHIC]: WinsMythicIcon,\n [STUDENT_BADGE_TYPE.MYSTERY]: WinsMysteryIcon,\n};\n\nexport const BADGE_TYPE_BADGE_ICON = {\n [STUDENT_BADGE_TYPE.COMMON]: ILLUSTRATIONS.COMMON,\n [STUDENT_BADGE_TYPE.RARE]: ILLUSTRATIONS.RARE,\n [STUDENT_BADGE_TYPE.EPIC]: ILLUSTRATIONS.EPIC,\n [STUDENT_BADGE_TYPE.LEGENDARY]: ILLUSTRATIONS.LEGENDARY,\n [STUDENT_BADGE_TYPE.MYTHIC]: ILLUSTRATIONS.MYTHIC,\n [STUDENT_BADGE_TYPE.MYSTERY]: ILLUSTRATIONS.MYSTERY,\n};\n\n// Audio URLs for badge sounds (commented out for now until MP3 files are available)\n// export const BADGE_TYPE_BADGE_SOUND = {\n// [STUDENT_BADGE_TYPE.COMMON]: '/static/sounds/common-badge.mp3',\n// [STUDENT_BADGE_TYPE.RARE]: '/static/sounds/rare-badge.mp3',\n// [STUDENT_BADGE_TYPE.EPIC]: '/static/sounds/epic-badge.mp3',\n// [STUDENT_BADGE_TYPE.LEGENDARY]: '/static/sounds/legendary-badge.mp3',\n// [STUDENT_BADGE_TYPE.MYTHIC]: '/static/sounds/mythic-badge.mp3',\n// [STUDENT_BADGE_TYPE.MYSTERY]: '/static/sounds/mystery-badge.mp3',\n// };\n\nconst BELT_COLORS = [\n 'black',\n 'blue',\n 'brown',\n 'green',\n 'orange',\n 'purple',\n 'red',\n 'white',\n 'yellow',\n] as const;\n\ntype BeltColor = (typeof BELT_COLORS)[number];\n\nconst COLOR_TO_BELT_MAP: Record<BeltColor, string> = {\n black: IMAGES.BLACK_BELT,\n blue: IMAGES.BLUE_BELT,\n brown: IMAGES.BROWN_BELT,\n green: IMAGES.GREEN_BELT,\n orange: IMAGES.ORANGE_BELT,\n purple: IMAGES.PURPLE_BELT,\n red: IMAGES.RED_BELT,\n white: IMAGES.WHITE_BELT,\n yellow: IMAGES.YELLOW_BELT,\n};\n\nexport const getBeltIcon = (type: string) => {\n const key = type?.toLowerCase() as BeltColor;\n\n if (key && key in COLOR_TO_BELT_MAP) return COLOR_TO_BELT_MAP[key];\n\n return IMAGES.MASTERED_BADGE;\n};\n\nexport const MATH_REWARDS = ['TETRA', 'COSA', 'DODA', 'HEXO', 'OCTO'];\n\nexport const INSTRUCTION_REWARDS = ['EKA', 'DVI', 'CHATVA', 'ASHTA', 'ZODASA'];\n\nexport const STICKERS = ['CONGRATS', 'COOL', 'KUDOS', 'GREAT', 'WOW', 'AWESOME'];\n\nexport const getRewardElement = (rewardType: string): string => {\n switch (rewardType) {\n case 'COSA':\n return IMAGES.COSA;\n case 'OCTO':\n return IMAGES.OCTO;\n case 'DODA':\n return IMAGES.DODA;\n case 'HEXO':\n return IMAGES.HEXO;\n case 'TETRA':\n return IMAGES.TETRA;\n case 'EKA':\n return IMAGES.EKA;\n case 'DVI':\n return IMAGES.DVI;\n case 'CHATVA':\n return IMAGES.CHATVA;\n case 'ASHTA':\n return IMAGES.ASHTA;\n case 'ZODASA':\n return IMAGES.ZODASA;\n case 'CONGRATS':\n return IMAGES.CONGRATS;\n case 'COOL':\n return IMAGES.COOL;\n case 'KUDOS':\n return IMAGES.KUDOS;\n case 'GREAT':\n return IMAGES.GREAT;\n case 'WOW':\n return IMAGES.WOW;\n case 'AWESOME':\n return IMAGES.AWESOME;\n default:\n return IMAGES.TETRA;\n }\n};\n\nexport const StickerMap = {\n CONGRATS: {\n height: 50,\n width: 50,\n lottieSrc: LOTTIE.TROPHY,\n },\n COOL: {\n height: 50,\n width: 50,\n lottieSrc: LOTTIE.COOL,\n },\n KUDOS: {\n height: 50,\n width: 50,\n lottieSrc: LOTTIE.CLAPPING_HANDS,\n },\n GREAT: {\n height: 63,\n width: 50,\n lottieSrc: LOTTIE.LIKE_BUTTON,\n },\n WOW: {\n height: 55,\n width: 55,\n lottieSrc: LOTTIE.STAR_STRIKE_EMOJI,\n },\n AWESOME: {\n height: 50,\n width: 50,\n lottieSrc: LOTTIE.AWESOME,\n },\n};\n\nexport const TYPES = {\n SENT_BADGES: 'SENT_BADGES',\n PENDING_BADGES: 'PENDING_BADGES',\n};\n\nexport const ACTION = {\n ACKNOWLEDGE: 'ACKNOWLEDGE',\n};\n"],"names":["SCREEN_SIZES","colors","getTheme","elementColors","STUDENT_BADGE_TYPE","STUDENT_BADGE_STATUS","BADGE_TYPE_BACKGROUND","BADGE_TYPE_TAB_ICON","WinsCommonIcon","WinsRareIcon","WinsEpicIcon","WinsLegendaryIcon","WinsMythicIcon","WinsMysteryIcon","BADGE_TYPE_BADGE_ICON","ILLUSTRATIONS","COLOR_TO_BELT_MAP","IMAGES","getBeltIcon","type","key","MATH_REWARDS","INSTRUCTION_REWARDS","STICKERS","getRewardElement","rewardType","StickerMap","LOTTIE"],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- import { jsxs as r, jsx as e, Fragment as k } from "react/jsx-runtime";
2
- import { useCallback as u } from "react";
3
- import h, { css as C } from "styled-components";
4
- import W from "../../../assets/line-icons/icons/back2.js";
5
- import y from "../../../assets/line-icons/icons/cue-coin.js";
6
- import H from "../../ui/buttons/clickable/clickable.js";
7
- import T from "../../ui/inputs/select-input/select-input.js";
8
- import n from "../../ui/layout/flex-view.js";
9
- import f from "../../ui/separator/separator.js";
10
- import m from "../../ui/text/text.js";
11
- const j = h(n)`
12
- background: ${({ theme: i }) => i.colors.WHITE};
13
- border-bottom: 1px solid ${({ theme: i }) => i.colors.GREY_2};
14
- height: 64px;
15
- left: ${({ widthOffset: i }) => i}px;
16
- padding-left: 32px;
17
- padding-right: 20px;
18
- position: fixed;
19
- right: 0;
20
- top: ${({ topOffset: i }) => i}px;
21
- width: calc(100% - ${({ widthOffset: i }) => i}px);
22
- ${({ showLeftBorder: i }) => i && C`
23
- position: sticky;
24
- left: 0;
25
- top: 0;
26
- width: 100%;
27
- border-left: 1px solid ${({ theme: t }) => t.colors.GREY_2};
28
- `}
29
- z-index: ${({
30
- theme: {
31
- zIndex: { HEADER: i }
32
- }
33
- }) => i};
34
- `, v = h(n)`
35
- flex: 1;
36
- `, p = ({ variant: i, coin: t }) => /* @__PURE__ */ r(k, { children: [
37
- /* @__PURE__ */ e(y, { variant: i, width: 32, height: 32 }),
38
- /* @__PURE__ */ e(f, { width: 8 }),
39
- /* @__PURE__ */ e(m, { $renderAs: "h5", children: t })
40
- ] }), A = ({
41
- currentSelectedProgram: i,
42
- goldCoins: t = 0,
43
- onBackClick: x,
44
- onProgramChange: l,
45
- programOptions: d = [],
46
- silverCoins: c = 0,
47
- showLeftBorder: $ = !1,
48
- topOffset: w = 0,
49
- widthOffset: b = 0
50
- }) => {
51
- const g = u(
52
- (o) => {
53
- const a = d.find((I) => I.id === o);
54
- l && a && l(a);
55
- },
56
- [l, d]
57
- ), s = d.map((o) => ({
58
- id: o.id,
59
- label: o.name
60
- // Use 'name' from API data for display
61
- }));
62
- return /* @__PURE__ */ r(
63
- j,
64
- {
65
- $flexDirection: "row",
66
- topOffset: w,
67
- widthOffset: b,
68
- showLeftBorder: $,
69
- children: [
70
- /* @__PURE__ */ r(n, { $flexDirection: "row", $alignItems: "center", $flexGapX: 0.5, children: [
71
- /* @__PURE__ */ e(H, { label: "Back", onClick: x, children: /* @__PURE__ */ e(W, { width: 24, height: 24 }) }),
72
- /* @__PURE__ */ e(m, { $renderAs: "h6", children: "Wins" })
73
- ] }),
74
- s.length > 1 && /* @__PURE__ */ e(v, { $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ e(
75
- T,
76
- {
77
- options: s,
78
- value: (i == null ? void 0 : i.id) || "",
79
- onChange: g,
80
- renderAs: "primary"
81
- }
82
- ) }),
83
- /* @__PURE__ */ r(n, { $flexDirection: "row", $alignItems: "center", children: [
84
- t > 0 && /* @__PURE__ */ e(p, { variant: "gold", coin: t }),
85
- /* @__PURE__ */ e(f, { width: 8 }),
86
- c > 0 && /* @__PURE__ */ e(p, { variant: "silver", coin: c })
87
- ] })
88
- ]
89
- }
90
- );
91
- }, X = A;
92
- export {
93
- X as default
94
- };
95
- //# sourceMappingURL=wins-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wins-header.js","sources":["../../../../src/features/wins-dashboard/header/wins-header.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Back2Icon from '../../../assets/line-icons/icons/back2';\nimport CueCoinIcon from '../../../assets/line-icons/icons/cue-coin';\nimport Clickable from '../../ui/buttons/clickable/clickable';\nimport SelectInput from '../../ui/inputs/select-input/select-input';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\n\ninterface HeaderProps {\n topOffset: number;\n widthOffset: number;\n showLeftBorder: boolean;\n}\n\nconst Header = styled(FlexView)<HeaderProps>`\n background: ${({ theme }) => theme.colors.WHITE};\n border-bottom: 1px solid ${({ theme }) => theme.colors.GREY_2};\n height: 64px;\n left: ${({ widthOffset }) => widthOffset}px;\n padding-left: 32px;\n padding-right: 20px;\n position: fixed;\n right: 0;\n top: ${({ topOffset }) => topOffset}px;\n width: calc(100% - ${({ widthOffset }) => widthOffset}px);\n ${({ showLeftBorder }) =>\n showLeftBorder &&\n css`\n position: sticky;\n left: 0;\n top: 0;\n width: 100%;\n border-left: 1px solid ${({ theme }) => theme.colors.GREY_2};\n `}\n z-index: ${({\n theme: {\n zIndex: { HEADER },\n },\n }) => HEADER};\n`;\n\nconst ProgramSwitcherWrapper = styled(FlexView)`\n flex: 1;\n`;\n\ninterface CoinViewProps {\n variant: 'gold' | 'silver';\n coin: number;\n}\n\nconst CoinView: React.FC<CoinViewProps> = ({ variant, coin }) => {\n return (\n <>\n <CueCoinIcon variant={variant} width={32} height={32} />\n <Separator width={8} />\n <Text $renderAs=\"h5\">{coin}</Text>\n </>\n );\n};\n\ninterface IProgramOption {\n badges_enabled: boolean;\n board: string;\n board_id: string;\n code: string;\n cue_program_type: string;\n description: string;\n grade: string;\n grades: string[];\n id: string;\n is_active: boolean;\n is_current: boolean;\n is_current_stream_program: boolean;\n is_demo: boolean;\n is_live: boolean;\n name: string;\n program_type: string;\n rewards_enabled: boolean;\n stream: string;\n sub_stream: string | null;\n [key: string]: unknown;\n}\n\ninterface WinsTabHeaderProps {\n currentSelectedProgram?: IProgramOption;\n goldCoins?: number;\n onBackClick?: () => void;\n onProgramChange?: (p: IProgramOption) => void;\n programOptions?: IProgramOption[];\n silverCoins?: number;\n showLeftBorder?: boolean;\n topOffset?: number;\n widthOffset?: number;\n}\n\nconst WinsTabHeader: React.FC<WinsTabHeaderProps> = ({\n currentSelectedProgram,\n goldCoins = 0,\n onBackClick,\n onProgramChange,\n programOptions = [],\n silverCoins = 0,\n showLeftBorder = false,\n topOffset = 0,\n widthOffset = 0,\n}) => {\n const handleProgramChange = useCallback(\n (selectedId: string) => {\n // Find the original program option from programOptions\n const originalOption = programOptions.find(op => op.id === selectedId);\n\n if (onProgramChange && originalOption) {\n onProgramChange(originalOption);\n }\n },\n [onProgramChange, programOptions],\n );\n\n // Transform program options to SelectInput format\n const selectOptions = programOptions.map(option => ({\n id: option.id,\n label: option.name, // Use 'name' from API data for display\n }));\n\n return (\n <Header\n $flexDirection=\"row\"\n topOffset={topOffset}\n widthOffset={widthOffset}\n showLeftBorder={showLeftBorder}\n >\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={0.5}>\n <Clickable label=\"Back\" onClick={onBackClick}>\n <Back2Icon width={24} height={24} />\n </Clickable>\n <Text $renderAs=\"h6\">Wins</Text>\n </FlexView>\n {selectOptions.length > 1 && (\n <ProgramSwitcherWrapper $justifyContent=\"center\" $alignItems=\"center\">\n <SelectInput\n options={selectOptions}\n value={currentSelectedProgram?.id || ''}\n onChange={handleProgramChange}\n renderAs=\"primary\"\n />\n </ProgramSwitcherWrapper>\n )}\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n {goldCoins > 0 && <CoinView variant=\"gold\" coin={goldCoins} />}\n <Separator width={8} />\n {silverCoins > 0 && <CoinView variant=\"silver\" coin={silverCoins} />}\n </FlexView>\n </Header>\n );\n};\n\nexport default WinsTabHeader;\n"],"names":["Header","styled","FlexView","theme","widthOffset","topOffset","showLeftBorder","css","HEADER","ProgramSwitcherWrapper","CoinView","variant","coin","jsxs","Fragment","jsx","CueCoinIcon","Separator","Text","WinsTabHeader","currentSelectedProgram","goldCoins","onBackClick","onProgramChange","programOptions","silverCoins","handleProgramChange","useCallback","selectedId","originalOption","op","selectOptions","option","Clickable","Back2Icon","SelectInput","WinsTabHeader$1"],"mappings":"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"}