@cuemath/leap 3.2.15-link.3 → 3.2.15-mb

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 (194) 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/lottie/lottie.js +0 -10
  4. package/dist/assets/lottie/lottie.js.map +1 -1
  5. package/dist/features/auth/account-selector/account-selector.js +25 -26
  6. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  7. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +14 -20
  8. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  9. package/dist/features/auth/comps/resend-otp/resend-otp.js +47 -54
  10. package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
  11. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js +17 -29
  12. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js.map +1 -1
  13. package/dist/features/auth/comps/tabs/tabs-styled.js +10 -22
  14. package/dist/features/auth/comps/tabs/tabs-styled.js.map +1 -1
  15. package/dist/features/auth/comps/tabs/tabs.js +5 -5
  16. package/dist/features/auth/comps/tabs/tabs.js.map +1 -1
  17. package/dist/features/auth/comps/user-list/user-item/user-item.js +31 -30
  18. package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
  19. package/dist/features/auth/comps/user-list/user-list.js +34 -35
  20. package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
  21. package/dist/features/auth/forgot-password/forgot-password-styled.js +15 -14
  22. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  23. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +7 -6
  24. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  25. package/dist/features/auth/login/login-styled.js +9 -8
  26. package/dist/features/auth/login/login-styled.js.map +1 -1
  27. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +98 -121
  28. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
  29. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +28 -29
  30. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
  31. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +42 -43
  32. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
  33. package/dist/features/circle-games/games/tutorial/tutorial.js +35 -43
  34. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  35. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js +2 -2
  36. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
  37. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js +1 -1
  38. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
  39. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js +24 -26
  40. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
  41. package/dist/features/circle-games/sign-up/constants.js +1 -3
  42. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  43. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +42 -42
  44. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  45. package/dist/features/hooks/use-viewport/use-viewport.js +22 -0
  46. package/dist/features/hooks/use-viewport/use-viewport.js.map +1 -0
  47. package/dist/features/journey/comps/coachmark/coachmark.js +17 -18
  48. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  49. package/dist/features/stickers/sticker-data.js +228 -0
  50. package/dist/features/stickers/sticker-data.js.map +1 -0
  51. package/dist/features/{ui/sticker-grid/sticker-grid-styles.js → stickers/sticker-selector/sticker-selector-styles.js} +1 -1
  52. package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +1 -0
  53. package/dist/features/stickers/sticker-selector/sticker-selector.js +25 -0
  54. package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -0
  55. package/dist/features/{ui/sticker-grid → stickers/sticker-selector}/sticker.js +9 -9
  56. package/dist/features/stickers/sticker-selector/sticker.js.map +1 -0
  57. package/dist/features/{ui/stickers/stickers-effects.js → stickers/stickers-effects/effects.js} +6 -6
  58. package/dist/features/stickers/stickers-effects/effects.js.map +1 -0
  59. package/dist/features/{ui/stickers/stickers-styled.js → stickers/stickers-effects/stickers-effects-styled.js} +2 -2
  60. package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -0
  61. package/dist/features/{ui/stickers/stickers-utils.js → stickers/stickers-effects/stickers-effects-utils.js} +6 -6
  62. package/dist/features/stickers/stickers-effects/stickers-effects-utils.js.map +1 -0
  63. package/dist/features/stickers/stickers-effects/stickers-effects.js +39 -0
  64. package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -0
  65. package/dist/features/trial-session/comps/student-profile/student-profile.js +1 -1
  66. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js +50 -7
  67. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js.map +1 -1
  68. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +69 -15
  69. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  70. package/dist/features/ui/error/error.js +27 -65
  71. package/dist/features/ui/error/error.js.map +1 -1
  72. package/dist/features/ui/image/image.js +1 -1
  73. package/dist/features/ui/image/image.js.map +1 -1
  74. package/dist/features/ui/inputs/base-input/base-input.js +11 -11
  75. package/dist/features/ui/inputs/base-input/base-input.js.map +1 -1
  76. package/dist/features/ui/inputs/text-input/text-input.js +18 -19
  77. package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
  78. package/dist/features/ui/modals/modal-styled.js +58 -69
  79. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  80. package/dist/features/ui/modals/modal.js +14 -50
  81. package/dist/features/ui/modals/modal.js.map +1 -1
  82. package/dist/features/ui/streak-icon/streak-icon-styled.js +13 -13
  83. package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
  84. package/dist/features/ui/streak-icon/streak-icon.js +15 -17
  85. package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
  86. package/dist/features/ui/text/text.js +38 -44
  87. package/dist/features/ui/text/text.js.map +1 -1
  88. package/dist/features/ui/theme/button.js +78 -78
  89. package/dist/features/ui/theme/button.js.map +1 -1
  90. package/dist/features/ui/theme/constants.js +2 -4
  91. package/dist/features/ui/theme/constants.js.map +1 -1
  92. package/dist/features/ui/theme/get-device.js +3 -3
  93. package/dist/features/ui/theme/get-device.js.map +1 -1
  94. package/dist/features/worksheet/worksheet/constants.js +13 -12
  95. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  96. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +260 -246
  97. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  98. package/dist/features/worksheet/worksheet/worksheet-styled.js +28 -37
  99. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  100. package/dist/features/worksheet/worksheet/worksheet.js +164 -166
  101. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  102. package/dist/index.d.ts +49 -212
  103. package/dist/index.js +583 -615
  104. package/dist/index.js.map +1 -1
  105. package/package.json +3 -2
  106. package/dist/assets/line-icons/icons/after-noon.js +0 -34
  107. package/dist/assets/line-icons/icons/after-noon.js.map +0 -1
  108. package/dist/assets/line-icons/icons/apple-icon-white.js +0 -42
  109. package/dist/assets/line-icons/icons/apple-icon-white.js.map +0 -1
  110. package/dist/assets/line-icons/icons/evening.js +0 -35
  111. package/dist/assets/line-icons/icons/evening.js.map +0 -1
  112. package/dist/assets/line-icons/icons/morning.js +0 -35
  113. package/dist/assets/line-icons/icons/morning.js.map +0 -1
  114. package/dist/assets/line-icons/icons/star3.js +0 -32
  115. package/dist/assets/line-icons/icons/star3.js.map +0 -1
  116. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +0 -9
  117. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +0 -1
  118. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +0 -52
  119. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +0 -1
  120. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +0 -93
  121. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +0 -1
  122. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text-styled.js +0 -10
  123. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text-styled.js.map +0 -1
  124. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js +0 -17
  125. package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js.map +0 -1
  126. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js +0 -12
  127. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js.map +0 -1
  128. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js +0 -34
  129. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +0 -1
  130. package/dist/features/auth/comps/otp-input/otp-input-styled.js +0 -22
  131. package/dist/features/auth/comps/otp-input/otp-input-styled.js.map +0 -1
  132. package/dist/features/auth/comps/otp-input/otp-input.js +0 -51
  133. package/dist/features/auth/comps/otp-input/otp-input.js.map +0 -1
  134. package/dist/features/auth/comps/pill-button/pill-button-styled.js +0 -44
  135. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +0 -1
  136. package/dist/features/auth/comps/pill-button/pill-button.js +0 -75
  137. package/dist/features/auth/comps/pill-button/pill-button.js.map +0 -1
  138. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js +0 -17
  139. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js.map +0 -1
  140. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js +0 -67
  141. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +0 -1
  142. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-constants.js +0 -19
  143. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-constants.js.map +0 -1
  144. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-styled.js +0 -32
  145. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-styled.js.map +0 -1
  146. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide.js +0 -44
  147. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide.js.map +0 -1
  148. package/dist/features/auth/signup-v2/signup-header/signup-header.js +0 -54
  149. package/dist/features/auth/signup-v2/signup-header/signup-header.js.map +0 -1
  150. package/dist/features/auth/signup-v2/signup-options/signup-options.js +0 -83
  151. package/dist/features/auth/signup-v2/signup-options/signup-options.js.map +0 -1
  152. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +0 -49
  153. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +0 -1
  154. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +0 -64
  155. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +0 -1
  156. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js +0 -28
  157. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js.map +0 -1
  158. package/dist/features/ui/accordion/accordion-items/accordion-items.js +0 -83
  159. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +0 -1
  160. package/dist/features/ui/accordion/accordion.js +0 -62
  161. package/dist/features/ui/accordion/accordion.js.map +0 -1
  162. package/dist/features/ui/drawer/drawer-styled.js +0 -34
  163. package/dist/features/ui/drawer/drawer-styled.js.map +0 -1
  164. package/dist/features/ui/drawer/drawer.js +0 -42
  165. package/dist/features/ui/drawer/drawer.js.map +0 -1
  166. package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +0 -1
  167. package/dist/features/ui/sticker-grid/sticker-grid.js +0 -24
  168. package/dist/features/ui/sticker-grid/sticker-grid.js.map +0 -1
  169. package/dist/features/ui/sticker-grid/sticker.js.map +0 -1
  170. package/dist/features/ui/stickers/constants.js +0 -6
  171. package/dist/features/ui/stickers/constants.js.map +0 -1
  172. package/dist/features/ui/stickers/stickers-effects.js.map +0 -1
  173. package/dist/features/ui/stickers/stickers-styled.js.map +0 -1
  174. package/dist/features/ui/stickers/stickers-utils.js.map +0 -1
  175. package/dist/features/ui/stickers/stickers.js +0 -40
  176. package/dist/features/ui/stickers/stickers.js.map +0 -1
  177. package/dist/static/animated-avatar.1ad58b1d.json +0 -1
  178. package/dist/static/animated-avatar.69b07505.json +0 -1
  179. package/dist/static/animated-avatar.9c560b46.json +0 -1
  180. package/dist/static/calendar-purple.1a840b41.svg +0 -1
  181. package/dist/static/flying-disk.c7f6ed39.json +0 -1
  182. package/dist/static/graduation-cap.3be3340a.json +0 -1
  183. package/dist/static/handshake.287e7dfb.svg +0 -1
  184. package/dist/static/light-bulb.c6db0b23.json +0 -1
  185. package/dist/static/money.332aacf1.svg +0 -1
  186. package/dist/static/muscle.9bcfb8a7.json +0 -1
  187. package/dist/static/parent-avatar.822c7b9b.svg +0 -1
  188. package/dist/static/pencil.23df9da0.json +0 -1
  189. package/dist/static/plus-sign.de6af957.json +0 -1
  190. package/dist/static/racing-car.2cbf864e.json +0 -1
  191. package/dist/static/rocket.0a3ccab0.json +0 -1
  192. package/dist/static/shovel.abeec04c.json +0 -1
  193. package/dist/static/stripe-blurple.6abf422f.svg +0 -1
  194. package/dist/static/trustpilot.bd3d79e1.svg +0 -1
@@ -1,64 +0,0 @@
1
- import { jsxs as e, jsx as r } from "react/jsx-runtime";
2
- import { memo as G, useMemo as T } from "react";
3
- import C from "../../../../ui/image/image.js";
4
- import a from "../../../../ui/layout/flex-view.js";
5
- import j from "../../../../ui/separator/separator.js";
6
- import t from "../../../../ui/text/text.js";
7
- import { COUNTRY_FLAGS as k } from "../teacher-intro-constants.js";
8
- import { ProfilePicture as I, GridContainer as S, GridItem as i } from "./teacher-profile-styled.js";
9
- const O = G(({ teacherProfile: s }) => {
10
- const {
11
- degree: f,
12
- countries: o,
13
- lower_grade: c,
14
- higher_grade: n,
15
- header_image: u,
16
- years_of_experience: g,
17
- number_of_students_taught: m
18
- } = s || {}, { degree_name: d, field_of_study: l } = f || {}, $ = Object.values(k), h = n && parseInt(n, 10) > 8, p = T(() => h ? "High School" : ` ${c === "K" ? "" : "G"}${c} - G${n}`, [h, n, c]);
19
- return /* @__PURE__ */ e(a, { $flexDirection: "row", $borderColor: "BLACK_T_87", $background: "WHITE_3", children: [
20
- /* @__PURE__ */ r(I, { withLoader: !0, src: u, width: 350, height: 350 }),
21
- /* @__PURE__ */ e(S, { children: [
22
- /* @__PURE__ */ e(i, { $justifyContent: "center", $gutter: 24, children: [
23
- /* @__PURE__ */ e(t, { $renderAs: "ah3-black", children: [
24
- g,
25
- "+"
26
- ] }),
27
- /* @__PURE__ */ r(t, { $renderAs: "ub3", children: "Yrs of Teaching Experience" })
28
- ] }),
29
- /* @__PURE__ */ e(i, { $justifyContent: "center", $gutter: 24, children: [
30
- /* @__PURE__ */ e(t, { $renderAs: "ah3-black", children: [
31
- m,
32
- "+"
33
- ] }),
34
- /* @__PURE__ */ r(t, { $renderAs: "ub3", children: "Students Taught" })
35
- ] }),
36
- d && l && /* @__PURE__ */ e(i, { $justifyContent: "center", $gutter: 24, children: [
37
- /* @__PURE__ */ r(t, { $renderAs: "ab1-black", children: d }),
38
- /* @__PURE__ */ e(t, { $renderAs: "ub3", children: [
39
- "In ",
40
- l
41
- ] })
42
- ] }),
43
- /* @__PURE__ */ e(i, { $justifyContent: "center", $gutter: 24, children: [
44
- /* @__PURE__ */ e(t, { $renderAs: "ab1-black", children: [
45
- "Teaching ",
46
- p,
47
- " kids in"
48
- ] }),
49
- /* @__PURE__ */ r(j, { height: 12 }),
50
- /* @__PURE__ */ r(a, { $flexDirection: "row", $flexGap: 16, $flexWrap: !0, children: o && o.length > 0 && o.map((b) => {
51
- const _ = $.find((w) => w.name === b), { flag_icon: x = "", label: y, name: A } = _ || {};
52
- return /* @__PURE__ */ e(a, { $flexDirection: "row", $flexGap: 4, children: [
53
- /* @__PURE__ */ r(C, { src: x, width: 30, height: 20, withLoader: !1 }),
54
- /* @__PURE__ */ r(t, { $renderAs: "ab3-black", children: y })
55
- ] }, A);
56
- }) })
57
- ] })
58
- ] })
59
- ] });
60
- }), W = O;
61
- export {
62
- W as default
63
- };
64
- //# sourceMappingURL=teacher-profile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"teacher-profile.js","sources":["../../../../../../src/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.tsx"],"sourcesContent":["import type { ITeacherProfileDetails } from '../../../trial-session-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { COUNTRY_FLAGS } from '../teacher-intro-constants';\nimport * as Styled from './teacher-profile-styled';\n\ninterface ITeacherProfileProps {\n teacherProfile?: ITeacherProfileDetails;\n}\n\nconst TeacherProfile: FC<ITeacherProfileProps> = memo(({ teacherProfile }) => {\n const {\n degree,\n countries,\n lower_grade: lowerGrade,\n higher_grade: higherGrade,\n header_image: headerImage,\n years_of_experience: yearsOfExperience,\n number_of_students_taught: numberOfStudentsTaught,\n } = teacherProfile || {};\n const { degree_name: degreeName, field_of_study: fieldOfStudy } = degree || {};\n\n const countryFlagArray = Object.values(COUNTRY_FLAGS);\n const isHighSchool = higherGrade && parseInt(higherGrade, 10) > 8;\n\n const displayGrade = useMemo(() => {\n return isHighSchool\n ? 'High School'\n : ` ${lowerGrade === 'K' ? '' : 'G'}${lowerGrade} - G${higherGrade}`;\n }, [isHighSchool, higherGrade, lowerGrade]);\n\n return (\n <FlexView $flexDirection=\"row\" $borderColor=\"BLACK_T_87\" $background=\"WHITE_3\">\n <Styled.ProfilePicture withLoader src={headerImage} width={350} height={350} />\n <Styled.GridContainer>\n <Styled.GridItem $justifyContent=\"center\" $gutter={24}>\n <Text $renderAs=\"ah3-black\">{yearsOfExperience}+</Text>\n <Text $renderAs=\"ub3\">Yrs of Teaching Experience</Text>\n </Styled.GridItem>\n <Styled.GridItem $justifyContent=\"center\" $gutter={24}>\n <Text $renderAs=\"ah3-black\">{numberOfStudentsTaught}+</Text>\n <Text $renderAs=\"ub3\">Students Taught</Text>\n </Styled.GridItem>\n {degreeName && fieldOfStudy && (\n <Styled.GridItem $justifyContent=\"center\" $gutter={24}>\n <Text $renderAs=\"ab1-black\">{degreeName}</Text>\n <Text $renderAs=\"ub3\">In {fieldOfStudy}</Text>\n </Styled.GridItem>\n )}\n <Styled.GridItem $justifyContent=\"center\" $gutter={24}>\n <Text $renderAs=\"ab1-black\">Teaching {displayGrade} kids in</Text>\n <Separator height={12} />\n <FlexView $flexDirection=\"row\" $flexGap={16} $flexWrap>\n {countries &&\n countries.length > 0 &&\n countries.map(country => {\n const countryFlag = countryFlagArray.find(item => item.name === country);\n const { flag_icon: flagIcon = '', label, name } = countryFlag || {};\n\n return (\n <FlexView key={name} $flexDirection=\"row\" $flexGap={4}>\n <Image src={flagIcon} width={30} height={20} withLoader={false} />\n <Text $renderAs=\"ab3-black\">{label}</Text>\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.GridItem>\n </Styled.GridContainer>\n </FlexView>\n );\n});\n\nexport default TeacherProfile;\n"],"names":["TeacherProfile","memo","teacherProfile","degree","countries","lowerGrade","higherGrade","headerImage","yearsOfExperience","numberOfStudentsTaught","degreeName","fieldOfStudy","countryFlagArray","COUNTRY_FLAGS","isHighSchool","displayGrade","useMemo","FlexView","jsx","Styled.ProfilePicture","jsxs","Styled.GridContainer","Styled.GridItem","Text","Separator","country","countryFlag","item","flagIcon","label","name","Image","TeacherProfile$1"],"mappings":";;;;;;;;AAgBA,MAAMA,IAA2CC,EAAK,CAAC,EAAE,gBAAAC,QAAqB;AACtE,QAAA;AAAA,IACJ,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAaC;AAAA,IACb,cAAcC;AAAA,IACd,cAAcC;AAAA,IACd,qBAAqBC;AAAA,IACrB,2BAA2BC;AAAA,EAAA,IACzBP,KAAkB,CAAA,GAChB,EAAE,aAAaQ,GAAY,gBAAgBC,EAAa,IAAIR,KAAU,IAEtES,IAAmB,OAAO,OAAOC,CAAa,GAC9CC,IAAeR,KAAe,SAASA,GAAa,EAAE,IAAI,GAE1DS,IAAeC,EAAQ,MACpBF,IACH,gBACA,IAAIT,MAAe,MAAM,KAAK,GAAG,GAAGA,CAAU,OAAOC,CAAW,IACnE,CAACQ,GAAcR,GAAaD,CAAU,CAAC;AAE1C,2BACGY,GAAS,EAAA,gBAAe,OAAM,cAAa,cAAa,aAAY,WACnE,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAsB,YAAU,IAAC,KAAKZ,GAAa,OAAO,KAAK,QAAQ,IAAK,CAAA;AAAA,IAC7E,gBAAAa,EAACC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAgB,iBAAgB,UAAS,SAAS,IACjD,UAAA;AAAA,QAAC,gBAAAF,EAAAG,GAAA,EAAK,WAAU,aAAa,UAAA;AAAA,UAAAf;AAAA,UAAkB;AAAA,QAAA,GAAC;AAAA,QAC/C,gBAAAU,EAAAK,GAAA,EAAK,WAAU,OAAM,UAA0B,8BAAA;AAAA,MAAA,GAClD;AAAA,wBACCD,GAAA,EAAgB,iBAAgB,UAAS,SAAS,IACjD,UAAA;AAAA,QAAC,gBAAAF,EAAAG,GAAA,EAAK,WAAU,aAAa,UAAA;AAAA,UAAAd;AAAA,UAAuB;AAAA,QAAA,GAAC;AAAA,QACpD,gBAAAS,EAAAK,GAAA,EAAK,WAAU,OAAM,UAAe,mBAAA;AAAA,MAAA,GACvC;AAAA,MACCb,KAAcC,KACZ,gBAAAS,EAAAE,GAAA,EAAgB,iBAAgB,UAAS,SAAS,IACjD,UAAA;AAAA,QAAC,gBAAAJ,EAAAK,GAAA,EAAK,WAAU,aAAa,UAAWb,GAAA;AAAA,QACxC,gBAAAU,EAACG,GAAK,EAAA,WAAU,OAAM,UAAA;AAAA,UAAA;AAAA,UAAIZ;AAAA,QAAA,GAAa;AAAA,MAAA,GACzC;AAAA,wBAEDW,GAAA,EAAgB,iBAAgB,UAAS,SAAS,IACjD,UAAA;AAAA,QAAC,gBAAAF,EAAAG,GAAA,EAAK,WAAU,aAAY,UAAA;AAAA,UAAA;AAAA,UAAUR;AAAA,UAAa;AAAA,QAAA,GAAQ;AAAA,QAC3D,gBAAAG,EAACM,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,QACtB,gBAAAN,EAAAD,GAAA,EAAS,gBAAe,OAAM,UAAU,IAAI,WAAS,IACnD,UAAAb,KACCA,EAAU,SAAS,KACnBA,EAAU,IAAI,CAAWqB,MAAA;AACvB,gBAAMC,IAAcd,EAAiB,KAAK,CAAQe,MAAAA,EAAK,SAASF,CAAO,GACjE,EAAE,WAAWG,IAAW,IAAI,OAAAC,GAAO,MAAAC,EAAK,IAAIJ,KAAe;AAEjE,iBACG,gBAAAN,EAAAH,GAAA,EAAoB,gBAAe,OAAM,UAAU,GAClD,UAAA;AAAA,YAAC,gBAAAC,EAAAa,GAAA,EAAM,KAAKH,GAAU,OAAO,IAAI,QAAQ,IAAI,YAAY,GAAO,CAAA;AAAA,YAC/D,gBAAAV,EAAAK,GAAA,EAAK,WAAU,aAAa,UAAMM,GAAA;AAAA,UAAA,EAAA,GAFtBC,CAGf;AAAA,QAEH,CAAA,GACL;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC,GAEDE,IAAehC;"}
@@ -1,28 +0,0 @@
1
- import o from "styled-components";
2
- import r from "../../../../assets/line-icons/icons/plus.js";
3
- import t from "../../layout/flex-view.js";
4
- const a = o(t)(
5
- ({ $index: e, $visible: i, $accordionBorderColor: n }) => `
6
- border-bottom: 1px solid ${n};
7
- ${e === 0 ? `border-top: 1px solid ${n};` : ""}
8
- display: ${i ? "flex" : "none"};
9
- `
10
- ), c = o(t)`
11
- cursor: pointer;
12
- `, m = o.div`
13
- max-height: 0;
14
- overflow: hidden;
15
- transition: all 0.3s ease-in-out;
16
- `, p = o(t)`
17
- width: 100%;
18
- `, x = o(r)`
19
- transition: all 0.3s ease-in-out;
20
- `;
21
- export {
22
- m as AccordionAnswer,
23
- c as AccordionItemContainer,
24
- a as Container,
25
- p as ContentContainer,
26
- x as StyledPlusIcon
27
- };
28
- //# sourceMappingURL=accordion-items-styled.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion-items-styled.js","sources":["../../../../../src/features/ui/accordion/accordion-items/accordion-items-styled.ts"],"sourcesContent":["import type { ContainerProps } from '../accordion-types';\n\nimport styled from 'styled-components';\n\nimport PlusIcon from '../../../../assets/line-icons/icons/plus';\nimport FlexView from '../../layout/flex-view';\n\nconst Container = styled(FlexView)<ContainerProps>(\n ({ $index, $visible, $accordionBorderColor }) => `\n border-bottom: 1px solid ${$accordionBorderColor};\n ${$index === 0 ? `border-top: 1px solid ${$accordionBorderColor};` : ''}\n display: ${$visible ? 'flex' : 'none'};\n`,\n);\n\nconst AccordionItemContainer = styled(FlexView)`\n cursor: pointer;\n`;\n\nconst AccordionAnswer = styled.div`\n max-height: 0;\n overflow: hidden;\n transition: all 0.3s ease-in-out;\n`;\n\nconst ContentContainer = styled(FlexView)`\n width: 100%;\n`;\n\nconst StyledPlusIcon = styled(PlusIcon)`\n transition: all 0.3s ease-in-out;\n`;\n\nexport { Container, AccordionItemContainer, AccordionAnswer, ContentContainer, StyledPlusIcon };\n"],"names":["Container","styled","FlexView","$index","$visible","$accordionBorderColor","AccordionItemContainer","AccordionAnswer","ContentContainer","StyledPlusIcon","PlusIcon"],"mappings":";;;AAOM,MAAAA,IAAYC,EAAOC,CAAQ;AAAA,EAC/B,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,uBAAAC,EAA4B,MAAA;AAAA,6BACtBA,CAAqB;AAAA,IAC9CF,MAAW,IAAI,yBAAyBE,CAAqB,MAAM,EAAE;AAAA,aAC5DD,IAAW,SAAS,MAAM;AAAA;AAEvC,GAEME,IAAyBL,EAAOC,CAAQ;AAAA;AAAA,GAIxCK,IAAkBN,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBO,IAAmBP,EAAOC,CAAQ;AAAA;AAAA,GAIlCO,IAAiBR,EAAOS,CAAQ;AAAA;AAAA;"}
@@ -1,83 +0,0 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
- import { memo as C, useCallback as p } from "react";
3
- import { useTheme as u } from "styled-components";
4
- import b from "../../layout/flex-view.js";
5
- import x from "../../separator/separator.js";
6
- import s from "../../text/text.js";
7
- import { EDeviceType as I } from "../../theme/constants.js";
8
- import { Container as g, ContentContainer as w, AccordionItemContainer as T, StyledPlusIcon as y, AccordionAnswer as B } from "./accordion-items-styled.js";
9
- const M = C((d) => {
10
- const { item: o, index: r, theme: m, refList: a, iconRef: f, visible: $, handleToggle: c } = d, { device: h } = u(), l = h === I.MOBILE, n = m === "dark", A = p(() => {
11
- c(r);
12
- }, [c, r]);
13
- return /* @__PURE__ */ e(
14
- g,
15
- {
16
- $flexDirection: "column",
17
- $justifyContent: "center",
18
- $alignItems: "flex-start",
19
- $index: r,
20
- $visible: $,
21
- onClick: A,
22
- $accordionBorderColor: n ? "WHITE" : "BLACK",
23
- children: /* @__PURE__ */ t(
24
- w,
25
- {
26
- $flexDirection: "column",
27
- $justifyContent: "center",
28
- $alignItems: "flex-start",
29
- $gap: 24,
30
- children: [
31
- /* @__PURE__ */ t(
32
- T,
33
- {
34
- $width: "100%",
35
- $flexDirection: "row",
36
- $justifyContent: "space-between",
37
- $alignItems: "center",
38
- children: [
39
- /* @__PURE__ */ e(s, { $renderAs: "ab1", $renderOnMobileAs: "ab2", $color: n ? "WHITE" : "BLACK", children: o.accordionQuestion + o.accordionQuestion }),
40
- /* @__PURE__ */ e(b, { children: /* @__PURE__ */ e(
41
- y,
42
- {
43
- color: n ? "WHITE" : "BLACK",
44
- width: l ? 24 : 40,
45
- height: l ? 24 : 40,
46
- ref: (i) => {
47
- f[r] = i;
48
- }
49
- }
50
- ) })
51
- ]
52
- }
53
- ),
54
- /* @__PURE__ */ t(
55
- B,
56
- {
57
- ref: (i) => {
58
- a[r] = i;
59
- },
60
- children: [
61
- /* @__PURE__ */ e(x, { height: 12 }),
62
- typeof o.accordionAnswer == "string" ? /* @__PURE__ */ e(
63
- s,
64
- {
65
- $renderAs: "ub2-bold",
66
- $renderOnMobileAs: "ub3-bold",
67
- $color: n ? "WHITE" : "BLACK",
68
- children: o.accordionAnswer
69
- }
70
- ) : o.accordionAnswer
71
- ]
72
- }
73
- )
74
- ]
75
- }
76
- )
77
- }
78
- );
79
- });
80
- export {
81
- M as default
82
- };
83
- //# sourceMappingURL=accordion-items.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion-items.js","sources":["../../../../../src/features/ui/accordion/accordion-items/accordion-items.tsx"],"sourcesContent":["import type { AccordionItemProps } from '../accordion-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../../layout/flex-view';\nimport Separator from '../../separator/separator';\nimport Text from '../../text/text';\nimport { EDeviceType } from '../../theme/constants';\nimport * as Styled from './accordion-items-styled';\n\nconst AccordionItem: FC<AccordionItemProps> = memo(props => {\n const { item, index, theme, refList, iconRef, visible, handleToggle } = props;\n const { device } = useTheme();\n const isMobile = device === EDeviceType.MOBILE;\n const isDarkTheme = theme === 'dark';\n\n const handleClick = useCallback(() => {\n handleToggle(index);\n }, [handleToggle, index]);\n\n return (\n <Styled.Container\n $flexDirection=\"column\"\n $justifyContent=\"center\"\n $alignItems=\"flex-start\"\n $index={index}\n $visible={visible}\n onClick={handleClick}\n $accordionBorderColor={isDarkTheme ? 'WHITE' : 'BLACK'}\n >\n <Styled.ContentContainer\n $flexDirection=\"column\"\n $justifyContent=\"center\"\n $alignItems=\"flex-start\"\n $gap={24}\n >\n <Styled.AccordionItemContainer\n $width=\"100%\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n <Text $renderAs=\"ab1\" $renderOnMobileAs=\"ab2\" $color={isDarkTheme ? 'WHITE' : 'BLACK'}>\n {item.accordionQuestion + item.accordionQuestion}\n </Text>\n <FlexView>\n <Styled.StyledPlusIcon\n color={isDarkTheme ? 'WHITE' : 'BLACK'}\n width={isMobile ? 24 : 40}\n height={isMobile ? 24 : 40}\n ref={node => {\n iconRef[index] = node;\n }}\n />\n </FlexView>\n </Styled.AccordionItemContainer>\n\n <Styled.AccordionAnswer\n ref={node => {\n refList[index] = node;\n }}\n >\n <Separator height={12} />\n {typeof item.accordionAnswer === 'string' ? (\n <Text\n $renderAs=\"ub2-bold\"\n $renderOnMobileAs=\"ub3-bold\"\n $color={isDarkTheme ? 'WHITE' : 'BLACK'}\n >\n {item.accordionAnswer}\n </Text>\n ) : (\n item.accordionAnswer\n )}\n </Styled.AccordionAnswer>\n </Styled.ContentContainer>\n </Styled.Container>\n );\n});\n\nexport default AccordionItem;\n"],"names":["AccordionItem","memo","props","item","index","theme","refList","iconRef","visible","handleToggle","device","useTheme","isMobile","EDeviceType","isDarkTheme","handleClick","useCallback","jsx","Styled.Container","jsxs","Styled.ContentContainer","Styled.AccordionItemContainer","Text","FlexView","Styled.StyledPlusIcon","node","Styled.AccordionAnswer","Separator"],"mappings":";;;;;;;;AAYM,MAAAA,IAAwCC,EAAK,CAASC,MAAA;AACpD,QAAA,EAAE,MAAAC,GAAM,OAAAC,GAAO,OAAAC,GAAO,SAAAC,GAAS,SAAAC,GAAS,SAAAC,GAAS,cAAAC,EAAiB,IAAAP,GAClE,EAAE,QAAAQ,MAAWC,KACbC,IAAWF,MAAWG,EAAY,QAClCC,IAAcT,MAAU,QAExBU,IAAcC,EAAY,MAAM;AACpC,IAAAP,EAAaL,CAAK;AAAA,EAAA,GACjB,CAACK,GAAcL,CAAK,CAAC;AAGtB,SAAA,gBAAAa;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,aAAY;AAAA,MACZ,QAAQd;AAAA,MACR,UAAUI;AAAA,MACV,SAASO;AAAA,MACT,uBAAuBD,IAAc,UAAU;AAAA,MAE/C,UAAA,gBAAAK;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,gBAAe;AAAA,UACf,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,MAAM;AAAA,UAEN,UAAA;AAAA,YAAA,gBAAAD;AAAA,cAACE;AAAAA,cAAA;AAAA,gBACC,QAAO;AAAA,gBACP,gBAAe;AAAA,gBACf,iBAAgB;AAAA,gBAChB,aAAY;AAAA,gBAEZ,UAAA;AAAA,kBAAA,gBAAAJ,EAACK,GAAK,EAAA,WAAU,OAAM,mBAAkB,OAAM,QAAQR,IAAc,UAAU,SAC3E,UAAAX,EAAK,oBAAoBA,EAAK,mBACjC;AAAA,oCACCoB,GACC,EAAA,UAAA,gBAAAN;AAAA,oBAACO;AAAAA,oBAAA;AAAA,sBACC,OAAOV,IAAc,UAAU;AAAA,sBAC/B,OAAOF,IAAW,KAAK;AAAA,sBACvB,QAAQA,IAAW,KAAK;AAAA,sBACxB,KAAK,CAAQa,MAAA;AACX,wBAAAlB,EAAQH,CAAK,IAAIqB;AAAA,sBACnB;AAAA,oBAAA;AAAA,kBAAA,GAEJ;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,YAEA,gBAAAN;AAAA,cAACO;AAAAA,cAAA;AAAA,gBACC,KAAK,CAAQD,MAAA;AACX,kBAAAnB,EAAQF,CAAK,IAAIqB;AAAA,gBACnB;AAAA,gBAEA,UAAA;AAAA,kBAAC,gBAAAR,EAAAU,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,kBACtB,OAAOxB,EAAK,mBAAoB,WAC/B,gBAAAc;AAAA,oBAACK;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,mBAAkB;AAAA,sBAClB,QAAQR,IAAc,UAAU;AAAA,sBAE/B,UAAKX,EAAA;AAAA,oBAAA;AAAA,sBAGRA,EAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YAET;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -1,62 +0,0 @@
1
- import { jsxs as k, jsx as f } from "react/jsx-runtime";
2
- import { memo as C, useState as $, useMemo as b, useCallback as m, useEffect as x } from "react";
3
- import H from "../layout/flex-view.js";
4
- import R from "../separator/separator.js";
5
- import V from "../text/text.js";
6
- import w from "./accordion-items/accordion-items.js";
7
- const y = C((S) => {
8
- const { theme: p = "light", visibleBuffer: i, accordionData: c, defaultOpenElement: v = -1 } = S, [l, g] = $(i), [o, E] = $(v), r = b(() => [], []), s = b(() => [], []), T = p === "dark", A = m(() => {
9
- g((e) => e < c.length ? c.length : i);
10
- }, [c.length, i]), n = m((e, t) => {
11
- e instanceof HTMLDivElement ? e.style.maxHeight = t ? `${e.scrollHeight}px` : "0px" : e instanceof SVGSVGElement && (e.style.transform = t ? "rotateZ(45deg)" : "rotateZ(0deg)");
12
- }, []), D = m(
13
- (e) => {
14
- const t = r[e], h = s[e];
15
- if (!t || !h) return;
16
- const a = o === e, L = a ? -1 : e;
17
- if (o !== -1 && o !== e) {
18
- const u = r[o], d = s[o];
19
- u && d && (n(u, !1), n(d, !1));
20
- }
21
- n(t, !a), n(h, !a), E(L);
22
- },
23
- [r, s, o, n]
24
- );
25
- return x(() => {
26
- g(i);
27
- }, [i]), x(() => {
28
- o !== -1 && r[o] && s[o] && (n(r[o], !0), n(s[o], !0));
29
- }, [l, o, r, s, n]), /* @__PURE__ */ k(H, { $flexDirection: "column", children: [
30
- c.map((e, t) => /* @__PURE__ */ f(
31
- w,
32
- {
33
- item: e,
34
- index: t,
35
- handleToggle: D,
36
- refList: r,
37
- iconRef: s,
38
- visible: t < l,
39
- theme: p
40
- },
41
- `${e.accordionQuestion}-${t}`
42
- )),
43
- /* @__PURE__ */ f(R, { height: 24 }),
44
- /* @__PURE__ */ f(
45
- V,
46
- {
47
- $renderAs: "ub3-bold",
48
- $align: "center",
49
- $textDecoration: "underline",
50
- $marginBottom: 24,
51
- onClick: A,
52
- $color: T ? "WHITE" : "BLACK",
53
- $cursor: "pointer",
54
- children: l < c.length ? "See More" : "See Less"
55
- }
56
- )
57
- ] });
58
- }), Z = y;
59
- export {
60
- Z as default
61
- };
62
- //# sourceMappingURL=accordion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../../src/features/ui/accordion/accordion.tsx"],"sourcesContent":["import type { AccordionProps } from './accordion-types';\n\nimport { useCallback, useEffect, useMemo, useState, memo } from 'react';\n\nimport FlexView from '../layout/flex-view';\nimport Separator from '../separator/separator';\nimport Text from '../text/text';\nimport AccordionItem from './accordion-items/accordion-items';\n\nconst Accordion = memo<AccordionProps>(props => {\n const { theme = 'light', visibleBuffer, accordionData, defaultOpenElement = -1 } = props;\n const [visible, setVisible] = useState(visibleBuffer);\n const [openIndex, setOpenIndex] = useState<number>(defaultOpenElement);\n const refList = useMemo<(HTMLDivElement | null)[]>(() => [], []);\n const iconRef = useMemo<(SVGSVGElement | null)[]>(() => [], []);\n const isDarkTheme = theme === 'dark';\n\n const handleShowToggle = useCallback(() => {\n setVisible(prev => (prev < accordionData.length ? accordionData.length : visibleBuffer));\n }, [accordionData.length, visibleBuffer]);\n\n const animateElement = useCallback((element: HTMLElement | SVGElement, isOpen: boolean) => {\n if (element instanceof HTMLDivElement) {\n element.style.maxHeight = isOpen ? `${element.scrollHeight}px` : '0px';\n } else if (element instanceof SVGSVGElement) {\n element.style.transform = isOpen ? 'rotateZ(45deg)' : 'rotateZ(0deg)';\n }\n }, []);\n\n const handleToggle = useCallback(\n (currentIndex: number) => {\n const currentRefList = refList[currentIndex];\n const currentIconRef = iconRef[currentIndex];\n\n if (!currentRefList || !currentIconRef) return;\n\n const isCurrentlyOpen = openIndex === currentIndex;\n const newOpenIndex = isCurrentlyOpen ? -1 : currentIndex;\n\n // Close previously open item\n if (openIndex !== -1 && openIndex !== currentIndex) {\n const prevRef = refList[openIndex];\n const prevIcon = iconRef[openIndex];\n\n if (prevRef && prevIcon) {\n animateElement(prevRef, false);\n animateElement(prevIcon, false);\n }\n }\n\n // Toggle current item\n animateElement(currentRefList, !isCurrentlyOpen);\n animateElement(currentIconRef, !isCurrentlyOpen);\n\n setOpenIndex(newOpenIndex);\n },\n [refList, iconRef, openIndex, animateElement],\n );\n\n useEffect(() => {\n setVisible(visibleBuffer);\n }, [visibleBuffer]);\n\n useEffect(() => {\n if (openIndex !== -1 && refList[openIndex] && iconRef[openIndex]) {\n animateElement(refList[openIndex]!, true);\n animateElement(iconRef[openIndex]!, true);\n }\n }, [visible, openIndex, refList, iconRef, animateElement]);\n\n return (\n <FlexView $flexDirection=\"column\">\n {accordionData.map((item, index) => (\n <AccordionItem\n key={`${item.accordionQuestion}-${index}`}\n item={item}\n index={index}\n handleToggle={handleToggle}\n refList={refList}\n iconRef={iconRef}\n visible={index < visible}\n theme={theme}\n />\n ))}\n <Separator height={24} />\n <Text\n $renderAs=\"ub3-bold\"\n $align=\"center\"\n $textDecoration=\"underline\"\n $marginBottom={24}\n onClick={handleShowToggle}\n $color={isDarkTheme ? 'WHITE' : 'BLACK'}\n $cursor=\"pointer\"\n >\n {visible < accordionData.length ? 'See More' : 'See Less'}\n </Text>\n </FlexView>\n );\n});\n\nexport default Accordion;\n"],"names":["Accordion","memo","props","theme","visibleBuffer","accordionData","defaultOpenElement","visible","setVisible","useState","openIndex","setOpenIndex","refList","useMemo","iconRef","isDarkTheme","handleShowToggle","useCallback","prev","animateElement","element","isOpen","handleToggle","currentIndex","currentRefList","currentIconRef","isCurrentlyOpen","newOpenIndex","prevRef","prevIcon","useEffect","jsxs","FlexView","item","index","jsx","AccordionItem","Separator","Text","Accordion$1"],"mappings":";;;;;;AASA,MAAMA,IAAYC,EAAqB,CAASC,MAAA;AAC9C,QAAM,EAAE,OAAAC,IAAQ,SAAS,eAAAC,GAAe,eAAAC,GAAe,oBAAAC,IAAqB,GAAO,IAAAJ,GAC7E,CAACK,GAASC,CAAU,IAAIC,EAASL,CAAa,GAC9C,CAACM,GAAWC,CAAY,IAAIF,EAAiBH,CAAkB,GAC/DM,IAAUC,EAAmC,MAAM,CAAC,GAAG,CAAE,CAAA,GACzDC,IAAUD,EAAkC,MAAM,CAAC,GAAG,CAAE,CAAA,GACxDE,IAAcZ,MAAU,QAExBa,IAAmBC,EAAY,MAAM;AACzC,IAAAT,EAAW,OAASU,IAAOb,EAAc,SAASA,EAAc,SAASD,CAAc;AAAA,EACtF,GAAA,CAACC,EAAc,QAAQD,CAAa,CAAC,GAElCe,IAAiBF,EAAY,CAACG,GAAmCC,MAAoB;AACzF,IAAID,aAAmB,iBACrBA,EAAQ,MAAM,YAAYC,IAAS,GAAGD,EAAQ,YAAY,OAAO,QACxDA,aAAmB,kBACpBA,EAAA,MAAM,YAAYC,IAAS,mBAAmB;AAAA,EAE1D,GAAG,CAAE,CAAA,GAECC,IAAeL;AAAA,IACnB,CAACM,MAAyB;AAClB,YAAAC,IAAiBZ,EAAQW,CAAY,GACrCE,IAAiBX,EAAQS,CAAY;AAEvC,UAAA,CAACC,KAAkB,CAACC,EAAgB;AAExC,YAAMC,IAAkBhB,MAAca,GAChCI,IAAeD,IAAkB,KAAKH;AAGxC,UAAAb,MAAc,MAAMA,MAAca,GAAc;AAC5C,cAAAK,IAAUhB,EAAQF,CAAS,GAC3BmB,IAAWf,EAAQJ,CAAS;AAElC,QAAIkB,KAAWC,MACbV,EAAeS,GAAS,EAAK,GAC7BT,EAAeU,GAAU,EAAK;AAAA,MAElC;AAGe,MAAAV,EAAAK,GAAgB,CAACE,CAAe,GAChCP,EAAAM,GAAgB,CAACC,CAAe,GAE/Cf,EAAagB,CAAY;AAAA,IAC3B;AAAA,IACA,CAACf,GAASE,GAASJ,GAAWS,CAAc;AAAA,EAAA;AAG9C,SAAAW,EAAU,MAAM;AACd,IAAAtB,EAAWJ,CAAa;AAAA,EAAA,GACvB,CAACA,CAAa,CAAC,GAElB0B,EAAU,MAAM;AACd,IAAIpB,MAAc,MAAME,EAAQF,CAAS,KAAKI,EAAQJ,CAAS,MAC9CS,EAAAP,EAAQF,CAAS,GAAI,EAAI,GACzBS,EAAAL,EAAQJ,CAAS,GAAI,EAAI;AAAA,EAC1C,GACC,CAACH,GAASG,GAAWE,GAASE,GAASK,CAAc,CAAC,GAGvD,gBAAAY,EAACC,GAAS,EAAA,gBAAe,UACtB,UAAA;AAAA,IAAc3B,EAAA,IAAI,CAAC4B,GAAMC,MACxB,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,MAAAH;AAAA,QACA,OAAAC;AAAA,QACA,cAAAZ;AAAA,QACA,SAAAV;AAAA,QACA,SAAAE;AAAA,QACA,SAASoB,IAAQ3B;AAAA,QACjB,OAAAJ;AAAA,MAAA;AAAA,MAPK,GAAG8B,EAAK,iBAAiB,IAAIC,CAAK;AAAA,IAAA,CAS1C;AAAA,IACD,gBAAAC,EAACE,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,QAAO;AAAA,QACP,iBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,SAAStB;AAAA,QACT,QAAQD,IAAc,UAAU;AAAA,QAChC,SAAQ;AAAA,QAEP,UAAAR,IAAUF,EAAc,SAAS,aAAa;AAAA,MAAA;AAAA,IACjD;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC,GAEDkC,IAAevC;"}
@@ -1,34 +0,0 @@
1
- import o from "styled-components";
2
- import e from "../layout/flex-view.js";
3
- const a = o.div`
4
- position: fixed;
5
- top: 0;
6
- bottom: 0;
7
- left: ${({ $position: t }) => t === "left" ? 0 : "auto"};
8
- right: ${({ $position: t }) => t === "right" ? 0 : "auto"};
9
- width: 100%;
10
- height: 100%;
11
- z-index: ${({ $zIndex: t }) => t ?? 999};
12
- pointer-events: ${({ $isOpen: t }) => t ? "auto" : "none"};
13
- `, s = o(e)`
14
- position: absolute;
15
- top: 0;
16
- bottom: 0;
17
- ${({ $position: t }) => t === "left" ? "left: 0;" : "right: 0;"}
18
- width: ${({ $drawerWidth: t }) => typeof t == "number" ? `${t}px` : t};
19
- transform: ${({ $isOpen: t, $position: i }) => t ? "translateX(0)" : i === "left" ? "translateX(-100%)" : "translateX(100%)"};
20
- transition: transform 0.3s ease-in-out;
21
- height: 100%;
22
- `, p = o(e)`
23
- position: absolute;
24
- inset: 0;
25
- backdrop-filter: blur(40px);
26
- opacity: ${({ $isOpen: t }) => t ? 1 : 0};
27
- transition: opacity 0.3s ease-in-out;
28
- `;
29
- export {
30
- p as DrawerBackdrop,
31
- a as DrawerContainer,
32
- s as DrawerPanel
33
- };
34
- //# sourceMappingURL=drawer-styled.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawer-styled.js","sources":["../../../../src/features/ui/drawer/drawer-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\n\ninterface DrawerContainerProps {\n $isOpen: boolean;\n $position: 'left' | 'right';\n $zIndex?: number;\n}\n\ninterface DrawerPanelProps extends DrawerContainerProps {\n $drawerWidth: number | string;\n}\n\nexport const DrawerContainer = styled.div<DrawerContainerProps>`\n position: fixed;\n top: 0;\n bottom: 0;\n left: ${({ $position }) => ($position === 'left' ? 0 : 'auto')};\n right: ${({ $position }) => ($position === 'right' ? 0 : 'auto')};\n width: 100%;\n height: 100%;\n z-index: ${({ $zIndex }) => $zIndex ?? 999};\n pointer-events: ${({ $isOpen }) => ($isOpen ? 'auto' : 'none')};\n`;\n\nexport const DrawerPanel = styled(FlexView)<DrawerPanelProps>`\n position: absolute;\n top: 0;\n bottom: 0;\n ${({ $position }) => ($position === 'left' ? 'left: 0;' : 'right: 0;')}\n width: ${({ $drawerWidth }) =>\n typeof $drawerWidth === 'number' ? `${$drawerWidth}px` : $drawerWidth};\n transform: ${({ $isOpen, $position }) =>\n $isOpen ? 'translateX(0)' : $position === 'left' ? 'translateX(-100%)' : 'translateX(100%)'};\n transition: transform 0.3s ease-in-out;\n height: 100%;\n`;\n\nexport const DrawerBackdrop = styled(FlexView)<{ $isOpen: boolean }>`\n position: absolute;\n inset: 0;\n backdrop-filter: blur(40px);\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n transition: opacity 0.3s ease-in-out;\n`;\n"],"names":["DrawerContainer","styled","$position","$zIndex","$isOpen","DrawerPanel","FlexView","$drawerWidth","DrawerBackdrop"],"mappings":";;AAcO,MAAMA,IAAkBC,EAAO;AAAA;AAAA;AAAA;AAAA,UAI5B,CAAC,EAAE,WAAAC,QAAiBA,MAAc,SAAS,IAAI,MAAO;AAAA,WACrD,CAAC,EAAE,WAAAA,QAAiBA,MAAc,UAAU,IAAI,MAAO;AAAA;AAAA;AAAA,aAGrD,CAAC,EAAE,SAAAC,QAAcA,KAAW,GAAG;AAAA,oBACxB,CAAC,EAAE,SAAAC,EAAA,MAAeA,IAAU,SAAS,MAAO;AAAA,GAGnDC,IAAcJ,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,IAItC,CAAC,EAAE,WAAAJ,QAAiBA,MAAc,SAAS,aAAa,WAAY;AAAA,WAC7D,CAAC,EAAE,cAAAK,EACV,MAAA,OAAOA,KAAiB,WAAW,GAAGA,CAAY,OAAOA,CAAY;AAAA,eAC1D,CAAC,EAAE,SAAAH,GAAS,WAAAF,QACvBE,IAAU,kBAAkBF,MAAc,SAAS,sBAAsB,kBAAkB;AAAA;AAAA;AAAA,GAKlFM,IAAiBP,EAAOK,CAAQ;AAAA;AAAA;AAAA;AAAA,aAIhC,CAAC,EAAE,SAAAF,EAAA,MAAeA,IAAU,IAAI,CAAE;AAAA;AAAA;"}
@@ -1,42 +0,0 @@
1
- import { jsxs as s, jsx as c } from "react/jsx-runtime";
2
- import { memo as $, useRef as w, useEffect as k } from "react";
3
- import { DrawerContainer as D, DrawerBackdrop as _, DrawerPanel as p } from "./drawer-styled.js";
4
- const E = $(
5
- ({ isOpen: r, onClose: e, children: i, drawerWidth: o = 300, position: n = "left", zIndex: u, theme: m = "dark" }) => {
6
- const t = w(null);
7
- k(() => {
8
- const d = (f) => {
9
- t.current && !t.current.contains(f.target) && (e == null || e());
10
- };
11
- return r && document.addEventListener("mousedown", d), () => {
12
- document.removeEventListener("mousedown", d);
13
- };
14
- }, [r, e]);
15
- const a = m === "dark";
16
- return /* @__PURE__ */ s(D, { $isOpen: r, $position: n, $zIndex: u, children: [
17
- /* @__PURE__ */ c(
18
- _,
19
- {
20
- $isOpen: r,
21
- onClick: e,
22
- $background: a ? "WHITE_T_10" : "BLACK_T_38"
23
- }
24
- ),
25
- /* @__PURE__ */ c(
26
- p,
27
- {
28
- ref: t,
29
- $isOpen: r,
30
- $position: n,
31
- $drawerWidth: o,
32
- $background: a ? "BLACK_3" : "WHITE_3",
33
- children: i
34
- }
35
- )
36
- ] });
37
- }
38
- ), L = E;
39
- export {
40
- L as default
41
- };
42
- //# sourceMappingURL=drawer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawer.js","sources":["../../../../src/features/ui/drawer/drawer.tsx"],"sourcesContent":["import type { IDrawerProps } from './drawer-types';\nimport type { FC } from 'react';\n\nimport { memo, useEffect, useRef } from 'react';\n\nimport * as Styled from './drawer-styled';\n\nconst Drawer: FC<IDrawerProps> = memo(\n ({ isOpen, onClose, children, drawerWidth = 300, position = 'left', zIndex, theme = 'dark' }) => {\n const drawerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (drawerRef.current && !drawerRef.current.contains(e.target as Node)) {\n onClose?.();\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen, onClose]);\n\n const isDarkTheme = theme === 'dark';\n\n return (\n <Styled.DrawerContainer $isOpen={isOpen} $position={position} $zIndex={zIndex}>\n <Styled.DrawerBackdrop\n $isOpen={isOpen}\n onClick={onClose}\n $background={isDarkTheme ? 'WHITE_T_10' : 'BLACK_T_38'}\n />\n <Styled.DrawerPanel\n ref={drawerRef}\n $isOpen={isOpen}\n $position={position}\n $drawerWidth={drawerWidth}\n $background={isDarkTheme ? 'BLACK_3' : 'WHITE_3'}\n >\n {children}\n </Styled.DrawerPanel>\n </Styled.DrawerContainer>\n );\n },\n);\n\nexport default Drawer;\n"],"names":["Drawer","memo","isOpen","onClose","children","drawerWidth","position","zIndex","theme","drawerRef","useRef","useEffect","handleClickOutside","e","isDarkTheme","jsxs","Styled.DrawerContainer","jsx","Styled.DrawerBackdrop","Styled.DrawerPanel","Drawer$1"],"mappings":";;;AAOA,MAAMA,IAA2BC;AAAA,EAC/B,CAAC,EAAE,QAAAC,GAAQ,SAAAC,GAAS,UAAAC,GAAU,aAAAC,IAAc,KAAK,UAAAC,IAAW,QAAQ,QAAAC,GAAQ,OAAAC,IAAQ,OAAA,MAAa;AACzF,UAAAC,IAAYC,EAAuB,IAAI;AAE7C,IAAAC,EAAU,MAAM;AACR,YAAAC,IAAqB,CAACC,MAAkB;AACxC,QAAAJ,EAAU,WAAW,CAACA,EAAU,QAAQ,SAASI,EAAE,MAAc,MACzDV,KAAA,QAAAA;AAAA,MACZ;AAGF,aAAID,KACO,SAAA,iBAAiB,aAAaU,CAAkB,GAGpD,MAAM;AACF,iBAAA,oBAAoB,aAAaA,CAAkB;AAAA,MAAA;AAAA,IAC9D,GACC,CAACV,GAAQC,CAAO,CAAC;AAEpB,UAAMW,IAAcN,MAAU;AAG5B,WAAA,gBAAAO,EAACC,GAAA,EAAuB,SAASd,GAAQ,WAAWI,GAAU,SAASC,GACrE,UAAA;AAAA,MAAA,gBAAAU;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,SAAShB;AAAA,UACT,SAASC;AAAA,UACT,aAAaW,IAAc,eAAe;AAAA,QAAA;AAAA,MAC5C;AAAA,MACA,gBAAAG;AAAA,QAACE;AAAAA,QAAA;AAAA,UACC,KAAKV;AAAA,UACL,SAASP;AAAA,UACT,WAAWI;AAAA,UACX,cAAcD;AAAA,UACd,aAAaS,IAAc,YAAY;AAAA,UAEtC,UAAAV;AAAA,QAAA;AAAA,MACH;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AACF,GAEAgB,IAAepB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sticker-grid-styles.js","sources":["../../../../src/features/ui/sticker-grid/sticker-grid-styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StickerContainer = styled.div<{\n $size: number | string;\n $disabled?: boolean;\n}>`\n position: relative;\n width: ${({ $size }) => (typeof $size === 'number' ? `${$size}px` : $size)};\n height: ${({ $size }) => (typeof $size === 'number' ? `${$size}px` : $size)};\n cursor: ${({ $disabled }) => ($disabled ? 'none' : 'pointer')};\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n background-color: transparent;\n opacity: ${({ $disabled }) => ($disabled ? 0.5 : 1)};\n\n &:hover {\n transform: ${({ $disabled }) => ($disabled ? 'none' : 'scale(1.1)')};\n background-color: rgba(255, 255, 255, 0.1);\n }\n\n &:active {\n transform: ${({ $disabled }) => ($disabled ? 'none' : 'scale(0.95)')};\n }\n`;\n\nexport const StaticEmoji = styled.div<{ $size: number | string }>`\n font-size: ${({ $size }) => {\n if (typeof $size === 'number') {\n return `${$size * 0.7}px`;\n }\n\n return '70%';\n }};\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n transition: opacity 0.2s ease;\n`;\n\nexport const LottieContainer = styled.div<{ $size: number | string }>`\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${({ $size }) => (typeof $size === 'number' ? `${$size * 0.7}px` : $size)};\n height: ${({ $size }) => (typeof $size === 'number' ? `${$size * 0.7}px` : $size)};\n opacity: 0;\n transition: opacity 0.2s ease;\n transform: translate(-50%, -50%);\n pointer-events: none;\n\n ${StickerContainer}:hover & {\n opacity: 1;\n }\n`;\n\nexport const StickerGrid = styled.div<{\n $columns: number;\n $gap: number;\n}>`\n display: grid;\n grid-template-columns: repeat(${({ $columns }) => $columns}, 1fr);\n gap: ${({ $gap }) => $gap}px;\n padding: 16px;\n background-color: #2a2a2a;\n border-radius: 12px;\n max-height: 400px;\n overflow-y: auto;\n\n &::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n }\n`;\n\nexport const StickerGridContainer = styled.div<{\n $width: string;\n $height: string;\n}>`\n width: 100%;\n max-width: ${({ $width }) => $width};\n max-height: ${({ $height }) => $height};\n`;\n"],"names":["StickerContainer","styled","$size","$disabled","StaticEmoji","LottieContainer","StickerGrid","$columns","$gap","StickerGridContainer","$width","$height"],"mappings":";AAEO,MAAMA,IAAmBC,EAAO;AAAA;AAAA,WAK5B,CAAC,EAAE,OAAAC,EAAa,MAAA,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,CAAM;AAAA,YAChE,CAAC,EAAE,OAAAA,EAAa,MAAA,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,CAAM;AAAA,YACjE,CAAC,EAAE,WAAAC,EAAA,MAAiBA,IAAY,SAAS,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQlD,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,MAAM,CAAE;AAAA;AAAA;AAAA,iBAGpC,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,SAAS,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKtD,CAAC,EAAE,WAAAA,EAAA,MAAiBA,IAAY,SAAS,aAAc;AAAA;AAAA,GAI3DC,IAAcH,EAAO;AAAA,eACnB,CAAC,EAAE,OAAAC,QACV,OAAOA,KAAU,WACZ,GAAGA,IAAQ,GAAG,OAGhB,KACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUUG,IAAkBJ,EAAO;AAAA;AAAA;AAAA;AAAA,WAI3B,CAAC,EAAE,OAAAC,QAAa,OAAOA,KAAU,WAAW,GAAGA,IAAQ,GAAG,OAAOA,CAAM;AAAA,YACtE,CAAC,EAAE,OAAAA,QAAa,OAAOA,KAAU,WAAW,GAAGA,IAAQ,GAAG,OAAOA,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM/EF,CAAgB;AAAA;AAAA;AAAA,GAKPM,IAAcL,EAAO;AAAA;AAAA,kCAKA,CAAC,EAAE,UAAAM,EAAS,MAAMA,CAAQ;AAAA,SACnD,CAAC,EAAE,MAAAC,EAAK,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0BdC,IAAuBR,EAAO;AAAA;AAAA,eAK5B,CAAC,EAAE,QAAAS,EAAO,MAAMA,CAAM;AAAA,gBACrB,CAAC,EAAE,SAAAC,EAAQ,MAAMA,CAAO;AAAA;"}
@@ -1,24 +0,0 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import { memo as d } from "react";
3
- import n from "./sticker.js";
4
- import { StickerGridContainer as a, StickerGrid as f } from "./sticker-grid-styles.js";
5
- const h = ({
6
- stickers: t,
7
- columns: i = 4,
8
- gap: e = 8,
9
- stickerSize: p = 48,
10
- onStickerClick: o
11
- }) => /* @__PURE__ */ m(a, { $width: "350px", $height: "400px", children: /* @__PURE__ */ m(f, { $columns: i, $gap: e, children: t.map((r) => /* @__PURE__ */ m(
12
- n,
13
- {
14
- emoji: r.emoji,
15
- lottieUrl: r.lottieUrl,
16
- size: p,
17
- onClick: () => o == null ? void 0 : o(r)
18
- },
19
- r.id
20
- )) }) }), $ = d(h);
21
- export {
22
- $ as default
23
- };
24
- //# sourceMappingURL=sticker-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sticker-grid.js","sources":["../../../../src/features/ui/sticker-grid/sticker-grid.tsx"],"sourcesContent":["import type { IStickerGridProps } from './sticker-grid-types';\n\nimport React, { memo } from 'react';\n\nimport Sticker from './sticker';\nimport { StickerGrid, StickerGridContainer } from './sticker-grid-styles';\n\nconst StickerGridComponent: React.FC<IStickerGridProps> = ({\n stickers,\n columns = 4,\n gap = 8,\n stickerSize = 48,\n onStickerClick,\n}) => {\n return (\n <StickerGridContainer $width=\"350px\" $height=\"400px\">\n <StickerGrid $columns={columns} $gap={gap}>\n {stickers.map(sticker => (\n <Sticker\n key={sticker.id}\n emoji={sticker.emoji}\n lottieUrl={sticker.lottieUrl}\n size={stickerSize}\n onClick={() => onStickerClick?.(sticker)}\n />\n ))}\n </StickerGrid>\n </StickerGridContainer>\n );\n};\n\nexport default memo(StickerGridComponent);\n"],"names":["StickerGridComponent","stickers","columns","gap","stickerSize","onStickerClick","jsx","StickerGridContainer","StickerGrid","sticker","Sticker","stickerGrid","memo"],"mappings":";;;;AAOA,MAAMA,IAAoD,CAAC;AAAA,EACzD,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,KAAAC,IAAM;AAAA,EACN,aAAAC,IAAc;AAAA,EACd,gBAAAC;AACF,MAEK,gBAAAC,EAAAC,GAAA,EAAqB,QAAO,SAAQ,SAAQ,SAC3C,UAAA,gBAAAD,EAACE,GAAY,EAAA,UAAUN,GAAS,MAAMC,GACnC,UAAAF,EAAS,IAAI,CACZQ,MAAA,gBAAAH;AAAA,EAACI;AAAA,EAAA;AAAA,IAEC,OAAOD,EAAQ;AAAA,IACf,WAAWA,EAAQ;AAAA,IACnB,MAAML;AAAA,IACN,SAAS,MAAMC,KAAA,gBAAAA,EAAiBI;AAAA,EAAO;AAAA,EAJlCA,EAAQ;AAAA,CAMhB,GACH,EACF,CAAA,GAIWE,IAAAC,EAAKZ,CAAoB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sticker.js","sources":["../../../../src/features/ui/sticker-grid/sticker.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../lottie-animation/types';\nimport type { IStickerProps } from './sticker-grid-types';\n\nimport React, { useCallback, useMemo, useRef, useState, memo, useLayoutEffect } from 'react';\n\nimport LottieAnimation from '../lottie-animation/lottie-animation';\nimport { StickerContainer, StaticEmoji, LottieContainer } from './sticker-grid-styles';\n\nconst Sticker: React.FC<IStickerProps> = ({\n emoji,\n lottieUrl,\n size = 48,\n onClick,\n disabled = false,\n}) => {\n const [isHovered, setIsHovered] = useState(false);\n const lottieRef = useRef<ILottieAnimationRef>(null);\n\n useLayoutEffect(() => {\n if (lottieRef.current) {\n lottieRef.current.playSegments([0, 1], true);\n }\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (!disabled) setIsHovered(true);\n }, [disabled]);\n\n const handleMouseLeave = useCallback(() => {\n if (!disabled) setIsHovered(false);\n }, [disabled]);\n\n const handleClick = useCallback(() => {\n if (!disabled && onClick) onClick();\n }, [disabled, onClick]);\n\n const lottieSettings = useMemo(\n () => ({\n loop: true,\n renderer: 'canvas',\n autoplay: isHovered,\n }),\n [isHovered],\n );\n\n return (\n <StickerContainer\n $size={size}\n $disabled={disabled}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n >\n {!isHovered && <StaticEmoji $size={size}>{emoji}</StaticEmoji>}\n\n {lottieUrl && (\n <LottieContainer $size={size}>\n <LottieAnimation\n ref={lottieRef}\n src={lottieUrl}\n width=\"100%\"\n height=\"100%\"\n settings={lottieSettings}\n />\n </LottieContainer>\n )}\n </StickerContainer>\n );\n};\n\nexport default memo(Sticker);\n"],"names":["Sticker","emoji","lottieUrl","size","onClick","disabled","isHovered","setIsHovered","useState","lottieRef","useRef","useLayoutEffect","handleMouseEnter","useCallback","handleMouseLeave","handleClick","lottieSettings","useMemo","jsxs","StickerContainer","jsx","StaticEmoji","LottieContainer","LottieAnimation","Sticker$1","memo"],"mappings":";;;;AAQA,MAAMA,IAAmC,CAAC;AAAA,EACxC,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1CC,IAAYC,EAA4B,IAAI;AAElD,EAAAC,EAAgB,MAAM;AACpB,IAAIF,EAAU,WACZA,EAAU,QAAQ,aAAa,CAAC,GAAG,CAAC,GAAG,EAAI;AAAA,EAE/C,GAAG,CAAE,CAAA;AAEC,QAAAG,IAAmBC,EAAY,MAAM;AACrC,IAACR,KAAUE,EAAa,EAAI;AAAA,EAAA,GAC/B,CAACF,CAAQ,CAAC,GAEPS,IAAmBD,EAAY,MAAM;AACrC,IAACR,KAAUE,EAAa,EAAK;AAAA,EAAA,GAChC,CAACF,CAAQ,CAAC,GAEPU,IAAcF,EAAY,MAAM;AAChC,IAAA,CAACR,KAAYD,KAAiBA;EAAA,GACjC,CAACC,GAAUD,CAAO,CAAC,GAEhBY,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAUX;AAAA,IAAA;AAAA,IAEZ,CAACA,CAAS;AAAA,EAAA;AAIV,SAAA,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOhB;AAAA,MACP,WAAWE;AAAA,MACX,cAAcO;AAAA,MACd,cAAcE;AAAA,MACd,SAASC;AAAA,MAER,UAAA;AAAA,QAAA,CAACT,KAAa,gBAAAc,EAACC,GAAY,EAAA,OAAOlB,GAAO,UAAMF,GAAA;AAAA,QAE/CC,KACC,gBAAAkB,EAACE,GAAgB,EAAA,OAAOnB,GACtB,UAAA,gBAAAiB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKd;AAAA,YACL,KAAKP;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,UAAUc;AAAA,UAAA;AAAA,QAAA,GAEd;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEeQ,IAAAC,EAAKzB,CAAO;"}
@@ -1,6 +0,0 @@
1
- const I = 32, E = 48;
2
- export {
3
- E as STICKER_MAX_SIZE,
4
- I as STICKER_MIN_SIZE
5
- };
6
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/features/ui/stickers/constants.ts"],"sourcesContent":["export const STICKER_MIN_SIZE = 32;\nexport const STICKER_MAX_SIZE = 48;\n"],"names":["STICKER_MIN_SIZE","STICKER_MAX_SIZE"],"mappings":"AAAO,MAAMA,IAAmB,IACnBC,IAAmB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stickers-effects.js","sources":["../../../../src/features/ui/stickers/stickers-effects.ts"],"sourcesContent":["import type { StickersProps } from './stickers-types';\n\nimport { keyframes, css } from 'styled-components';\n\nimport { randomizeDuration } from './stickers-utils';\n\nconst floatUp = keyframes`\n 0% {\n transform: translateY(0vh);\n opacity: 1;\n }\n 100% {\n transform: translateY(-100vh);\n opacity: 0;\n }\n`;\n\nconst fallDown = keyframes`\n 0% {\n transform: translateY(0vh);\n opacity: 1;\n }\n 100% {\n transform: translateY(100vh);\n opacity: 0;\n }\n`;\n\nconst burstFromEdges = keyframes`\n 0% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1);\n opacity: 1;\n }\n 100% {\n transform: translateX(0vw) translateY(0vh) scale(1.25);\n opacity: 0;\n }\n`;\n\nconst popExpand = keyframes`\n 0% {\n transform: translateX(0) translateY(0vh);\n opacity: 1;\n }\n 35% {\n transform: translateX(0) translateY(-50vh) scale(1.25);\n opacity: 1;\n }\n 60% {\n transform: translateX(var(--from-x)) translateY(var(--from-y)) scale(1.25);\n opacity: 0.75;\n }\n 100% {\n transform: translateX(var(--from-x)) translateY(-110vh) scale(1.25);\n opacity: 0;\n }\n`;\n\nexport const effectAnimations: Record<\n StickersProps['effect'],\n (duration: number) => ReturnType<typeof css>\n> = {\n float_up: (duration: number) => css`\n animation: ${floatUp} ${randomizeDuration(duration)}ms ease-out forwards;\n `,\n fall_down: (duration: number) => css`\n animation: ${fallDown} ${randomizeDuration(duration)}ms ease-out forwards;\n `,\n burst_from_edges: (duration: number) => css`\n animation: ${burstFromEdges} ${randomizeDuration(duration)}ms linear forwards;\n `,\n pop_expand: (duration: number) => css`\n animation: ${popExpand} ${duration}ms cubic-bezier(0.5, 0.1, 0.7, 1) forwards;\n `,\n};\n"],"names":["floatUp","keyframes","fallDown","burstFromEdges","popExpand","effectAnimations","duration","css","randomizeDuration"],"mappings":";;AAMA,MAAMA,IAAUC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWVC,IAAWD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWXE,IAAiBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWjBG,IAAYH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAmBLI,IAGT;AAAA,EACF,UAAU,CAACC,MAAqBC;AAAA,iBACjBP,CAAO,IAAIQ,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAErD,WAAW,CAACA,MAAqBC;AAAA,iBAClBL,CAAQ,IAAIM,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAEtD,kBAAkB,CAACA,MAAqBC;AAAA,iBACzBJ,CAAc,IAAIK,EAAkBF,CAAQ,CAAC;AAAA;AAAA,EAE5D,YAAY,CAACA,MAAqBC;AAAA,iBACnBH,CAAS,IAAIE,CAAQ;AAAA;AAEtC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stickers-styled.js","sources":["../../../../src/features/ui/stickers/stickers-styled.ts"],"sourcesContent":["import type { StickersProps } from './stickers-types';\n\nimport styled, { css } from 'styled-components';\n\nimport { effectAnimations } from './stickers-effects';\n\nexport const Container = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n background: transparent;\n pointer-events: none;\n`;\n\nexport const Sticker = styled.div<{\n effect: StickersProps['effect'];\n duration: number;\n fromX?: string;\n fromY?: string;\n x: number;\n y: number;\n size: number;\n}>`\n position: absolute;\n z-index: 10;\n\n left: ${({ x }) => `${x}%`};\n top: ${({ y }) => `${y}%`};\n width: ${({ size }) => `${size}px`};\n height: ${({ size }) => `${size}px`};\n font-size: ${({ size }) => `${size}px`};\n\n ${({ effect, duration, fromX, fromY }) =>\n fromX && fromY\n ? css`\n ${effectAnimations[effect](duration)}\n --from-x: ${fromX};\n --from-y: ${fromY};\n `\n : effectAnimations[effect](duration)}\n`;\n"],"names":["Container","styled","Sticker","x","y","size","effect","duration","fromX","fromY","css","effectAnimations"],"mappings":";;AAMO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBC,IAAUD,EAAO;AAAA;AAAA;AAAA;AAAA,UAYpB,CAAC,EAAE,GAAAE,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,SACnB,CAAC,EAAE,GAAAC,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,WAChB,CAAC,EAAE,MAAAC,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,YACxB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,eACtB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA;AAAA,IAEpC,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,OAAAC,GAAO,OAAAC,QAC5BD,KAASC,IACLC;AAAA,YACIC,EAAiBL,CAAM,EAAEC,CAAQ,CAAC;AAAA,sBACxBC,CAAK;AAAA,sBACLC,CAAK;AAAA,YAEnBE,EAAiBL,CAAM,EAAEC,CAAQ,CAAC;AAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stickers-utils.js","sources":["../../../../src/features/ui/stickers/stickers-utils.ts"],"sourcesContent":["import type { StickerDatum, StickersProps } from './stickers-types';\n\nconst getBurstPosition = (\n index: number,\n total: number,\n): {\n fromX: string;\n fromY: string;\n x: number;\n y: number;\n} => {\n const countPerSide = Math.ceil(total / 4);\n const sideIndex = Math.floor(index / countPerSide);\n const pos = index % countPerSide;\n\n const sides = ['top', 'right', 'bottom', 'left'] as const;\n const side = sides[sideIndex] ?? 'left';\n\n const basePercent = ((pos + 0.5) / countPerSide) * 100;\n const jitter = (Math.random() - 0.5) * 25;\n const edgePercent = Math.min(Math.max(basePercent + jitter, 0), 100);\n\n const centerX = 45 + Math.random() * 10;\n const centerY = 45 + Math.random() * 10;\n\n let fromX = 0;\n let fromY = 0;\n\n switch (side) {\n case 'top':\n fromX = edgePercent - centerX;\n fromY = -centerY + jitter;\n break;\n case 'right':\n fromX = 100 - centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n case 'bottom':\n fromX = edgePercent - centerX;\n fromY = 100 - centerY + jitter;\n break;\n case 'left':\n fromX = -centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n }\n\n return {\n fromX: `${fromX}vw`,\n fromY: `${fromY}vh`,\n x: centerX,\n y: centerY,\n };\n};\n\nconst getRandomNonOverlappingPositions = (count: number, buffer = 10): number[] => {\n const used: number[] = [];\n let attempts = 0;\n const maxAttempts = count;\n\n while (used.length < count && attempts < maxAttempts) {\n const value = Math.floor(Math.random() * (100 - 2 * buffer) + buffer);\n\n if (used.every(v => Math.abs(v - value) >= buffer)) {\n used.push(value);\n }\n attempts++;\n }\n\n while (used.length < count) {\n used.push(Math.floor(Math.random() * (100 - 2 * buffer) + buffer));\n }\n\n return used;\n};\n\nexport function generateStickerData({\n count,\n effect,\n stickers,\n minSize,\n maxSize,\n}: {\n count: number;\n effect: StickersProps['effect'];\n stickers: string[];\n minSize: number;\n maxSize: number;\n}): StickerDatum[] {\n const buffer = (100 / count) * 2;\n const getSize = () => Math.random() * (maxSize - minSize) + minSize;\n const result: StickerDatum[] = [];\n const xPositions = ['float_up', 'fall_down'].includes(effect)\n ? getRandomNonOverlappingPositions(count, buffer)\n : [];\n\n for (let i = 0; i < count; i++) {\n const sticker = stickers[i % stickers.length] ?? '';\n const size = getSize();\n\n if (effect === 'float_up') {\n result.push({\n id: i,\n sticker,\n x: xPositions[i]!,\n y: 110 + (Math.random() - 0.5) * size,\n size,\n });\n } else if (effect === 'fall_down') {\n result.push({\n id: i,\n sticker,\n x: xPositions[i]!,\n y: -10 + (Math.random() - 0.5) * size,\n size,\n });\n } else if (effect === 'burst_from_edges') {\n const { x, y, fromX, fromY } = getBurstPosition(i, count);\n\n result.push({ id: i, sticker, x, y, fromX, fromY, size });\n } else if (effect === 'pop_expand') {\n result.push({\n id: i,\n sticker,\n x: 50,\n y: 100,\n fromX: `${(Math.random() - 0.5) * 27.5}vw`,\n fromY: `${-50 - Math.random() * 27.5}vh`,\n size,\n });\n } else {\n result.push({\n id: i,\n sticker,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size,\n });\n }\n }\n\n return result;\n}\n\nexport const randomizeDuration = (base: number, variancePercent = 0.2): number => {\n const delta = base * variancePercent;\n const min = base - delta;\n const max = base + delta;\n\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n"],"names":["getBurstPosition","index","total","countPerSide","sideIndex","pos","side","basePercent","jitter","edgePercent","centerX","centerY","fromX","fromY","getRandomNonOverlappingPositions","count","buffer","used","attempts","maxAttempts","value","v","generateStickerData","effect","stickers","minSize","maxSize","getSize","result","xPositions","i","sticker","size","x","y","randomizeDuration","base","variancePercent","delta","min","max"],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { memo as E, useState as I, useLayoutEffect as l } from "react";
3
- import { STICKER_MIN_SIZE as x, STICKER_MAX_SIZE as D } from "./constants.js";
4
- import { Container as T, Sticker as _ } from "./stickers-styled.js";
5
- import { generateStickerData as z } from "./stickers-utils.js";
6
- const C = ({ stickers: i, effect: t, count: m, duration: r }) => {
7
- const [c, s] = I([]);
8
- return l(() => {
9
- const e = z({
10
- count: m,
11
- effect: t,
12
- stickers: i,
13
- minSize: x,
14
- maxSize: D
15
- });
16
- s(e);
17
- const o = setTimeout(() => s([]), r);
18
- return () => clearTimeout(o);
19
- }, [i, t, m, r]), /* @__PURE__ */ a(T, { children: c.map((e) => {
20
- const { id: o, sticker: n, x: S, y: k, size: p, fromX: u, fromY: f } = e;
21
- return /* @__PURE__ */ a(
22
- _,
23
- {
24
- effect: t,
25
- duration: r,
26
- fromX: u,
27
- fromY: f,
28
- x: S,
29
- y: k,
30
- size: p,
31
- children: n
32
- },
33
- o
34
- );
35
- }) });
36
- }, R = E(C);
37
- export {
38
- R as default
39
- };
40
- //# sourceMappingURL=stickers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stickers.js","sources":["../../../../src/features/ui/stickers/stickers.tsx"],"sourcesContent":["import type { StickerDatum, StickersProps } from './stickers-types';\n\nimport React, { memo, useLayoutEffect, useState } from 'react';\n\nimport { STICKER_MAX_SIZE, STICKER_MIN_SIZE } from './constants';\nimport { Container, Sticker } from './stickers-styled';\nimport { generateStickerData } from './stickers-utils';\n\nconst Stickers: React.FC<StickersProps> = ({ stickers, effect, count, duration }) => {\n const [stickersData, setStickersData] = useState<ReturnType<typeof generateStickerData>>([]);\n\n useLayoutEffect(() => {\n const stickerData = generateStickerData({\n count,\n effect,\n stickers,\n minSize: STICKER_MIN_SIZE,\n maxSize: STICKER_MAX_SIZE,\n });\n\n setStickersData(stickerData);\n\n const timeout = setTimeout(() => setStickersData([]), duration);\n\n return () => clearTimeout(timeout);\n }, [stickers, effect, count, duration]);\n\n return (\n <Container>\n {stickersData.map((data: StickerDatum) => {\n const { id, sticker, x, y, size, fromX, fromY } = data;\n\n return (\n <Sticker\n key={id}\n effect={effect}\n duration={duration}\n fromX={fromX}\n fromY={fromY}\n x={x}\n y={y}\n size={size}\n >\n {sticker}\n </Sticker>\n );\n })}\n </Container>\n );\n};\n\nexport default memo(Stickers);\n"],"names":["Stickers","stickers","effect","count","duration","stickersData","setStickersData","useState","useLayoutEffect","stickerData","generateStickerData","STICKER_MIN_SIZE","STICKER_MAX_SIZE","timeout","jsx","Container","data","id","sticker","x","y","size","fromX","fromY","Sticker","memo"],"mappings":";;;;;AAQA,MAAMA,IAAoC,CAAC,EAAE,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,QAAe;AACnF,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAiD,CAAE,CAAA;AAE3F,SAAAC,EAAgB,MAAM;AACpB,UAAMC,IAAcC,EAAoB;AAAA,MACtC,OAAAP;AAAA,MACA,QAAAD;AAAA,MACA,UAAAD;AAAA,MACA,SAASU;AAAA,MACT,SAASC;AAAA,IAAA,CACV;AAED,IAAAN,EAAgBG,CAAW;AAE3B,UAAMI,IAAU,WAAW,MAAMP,EAAgB,CAAE,CAAA,GAAGF,CAAQ;AAEvD,WAAA,MAAM,aAAaS,CAAO;AAAA,KAChC,CAACZ,GAAUC,GAAQC,GAAOC,CAAQ,CAAC,GAGnC,gBAAAU,EAAAC,GAAA,EACE,UAAaV,EAAA,IAAI,CAACW,MAAuB;AAClC,UAAA,EAAE,IAAAC,GAAI,SAAAC,GAAS,GAAAC,GAAG,GAAAC,GAAG,MAAAC,GAAM,OAAAC,GAAO,OAAAC,EAAU,IAAAP;AAGhD,WAAA,gBAAAF;AAAA,MAACU;AAAA,MAAA;AAAA,QAEC,QAAAtB;AAAA,QACA,UAAAE;AAAA,QACA,OAAAkB;AAAA,QACA,OAAAC;AAAA,QACA,GAAAJ;AAAA,QACA,GAAAC;AAAA,QACA,MAAAC;AAAA,QAEC,UAAAH;AAAA,MAAA;AAAA,MATID;AAAA,IAAA;AAAA,EAYV,CAAA,EACH,CAAA;AAEJ,GAEehB,IAAAwB,EAAKzB,CAAQ;"}