@cuemath/leap 3.2.21-m → 3.2.22-m

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 (70) hide show
  1. package/dist/assets/illustrations/illustrations.js +1 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/star3.js +32 -0
  4. package/dist/assets/line-icons/icons/star3.js.map +1 -0
  5. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +19 -12
  6. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  7. package/dist/features/chapters-v2/constants/block-constants.js +3 -2
  8. package/dist/features/chapters-v2/constants/block-constants.js.map +1 -1
  9. package/dist/features/chapters-v2/utils/index.js +6 -4
  10. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  11. package/dist/features/chapters-v2/utils/node-card-utils.js +4 -0
  12. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  13. package/dist/features/sheets/constants/sheet.js +2 -1
  14. package/dist/features/sheets/constants/sheet.js.map +1 -1
  15. package/dist/features/trial-session/comps/student-profile/student-profile.js +1 -1
  16. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js +7 -50
  17. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js.map +1 -1
  18. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +15 -69
  19. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  20. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +49 -0
  21. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +1 -0
  22. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +64 -0
  23. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -0
  24. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js +28 -0
  25. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js.map +1 -0
  26. package/dist/features/ui/accordion/accordion-items/accordion-items.js +83 -0
  27. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -0
  28. package/dist/features/ui/accordion/accordion.js +62 -0
  29. package/dist/features/ui/accordion/accordion.js.map +1 -0
  30. package/dist/features/ui/buttons/button/button.js +41 -38
  31. package/dist/features/ui/buttons/button/button.js.map +1 -1
  32. package/dist/features/ui/buttons/icon-button/icon-button.js +31 -27
  33. package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
  34. package/dist/features/ui/buttons/text-button/text-button.js +26 -22
  35. package/dist/features/ui/buttons/text-button/text-button.js.map +1 -1
  36. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js +9 -0
  37. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation-styled.js.map +1 -0
  38. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +65 -0
  39. package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -0
  40. package/dist/features/ui/grade-selector/grade-selector.js +33 -27
  41. package/dist/features/ui/grade-selector/grade-selector.js.map +1 -1
  42. package/dist/features/ui/inputs/base-input/base-input.js +11 -11
  43. package/dist/features/ui/inputs/base-input/base-input.js.map +1 -1
  44. package/dist/features/ui/inputs/text-input/text-input.js +19 -18
  45. package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
  46. package/dist/features/ui/modals/modal-styled.js +42 -8
  47. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  48. package/dist/features/ui/modals/modal.js +37 -27
  49. package/dist/features/ui/modals/modal.js.map +1 -1
  50. package/dist/features/ui/tab/tab.js +30 -26
  51. package/dist/features/ui/tab/tab.js.map +1 -1
  52. package/dist/features/ui/text/text.js +31 -29
  53. package/dist/features/ui/text/text.js.map +1 -1
  54. package/dist/features/ui/theme/clrs.js +2 -0
  55. package/dist/features/ui/theme/clrs.js.map +1 -1
  56. package/dist/features/worksheet/worksheet/constants.js +13 -12
  57. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  58. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +260 -246
  59. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  60. package/dist/features/worksheet/worksheet/worksheet-styled.js +28 -37
  61. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  62. package/dist/features/worksheet/worksheet/worksheet.js +164 -166
  63. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  64. package/dist/index.d.ts +105 -5
  65. package/dist/index.js +637 -625
  66. package/dist/index.js.map +1 -1
  67. package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js +1881 -0
  68. package/dist/node_modules/@lottiefiles/dotlottie-web/dist/index.js.map +1 -0
  69. package/dist/static/stripe-blurple.6abf422f.svg +1 -0
  70. package/package.json +1 -1
@@ -0,0 +1,49 @@
1
+ import r from "styled-components";
2
+ import e from "../../../../ui/image/image.js";
3
+ import t from "../../../../ui/layout/flex-view.js";
4
+ const l = r(e)`
5
+ object-fit: cover;
6
+ `, c = r.div(
7
+ ({ theme: o }) => `
8
+ flex: 1;
9
+ display: grid;
10
+ border-left: 1px solid ${o.colors.BLACK_T_87};
11
+ grid-template-columns: repeat(2, 1fr);
12
+ grid-template-rows: auto auto auto;
13
+ `
14
+ ), h = r(t)(
15
+ ({ theme: o }) => `
16
+ border: 0.5px solid ${o.colors.WHITE_5};
17
+ &:first-child,
18
+ &:nth-child(2) {
19
+ grid-column: span 1;
20
+ }
21
+ &:nth-child(3),
22
+ &:nth-child(4) {
23
+ grid-column: span 2;
24
+ }
25
+ &:first-child {
26
+ border-left: none;
27
+ border-top: none;
28
+ }
29
+ &:nth-child(2) {
30
+ border-right: none;
31
+ border-top: none;
32
+ }
33
+ &:nth-child(3) {
34
+ border-left: none;
35
+ border-right: none;
36
+ }
37
+ &:nth-child(4) {
38
+ border-left: none;
39
+ border-right: none;
40
+ border-bottom: none;
41
+ }
42
+ `
43
+ );
44
+ export {
45
+ c as GridContainer,
46
+ h as GridItem,
47
+ l as ProfilePicture
48
+ };
49
+ //# sourceMappingURL=teacher-profile-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teacher-profile-styled.js","sources":["../../../../../../src/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\n\nconst ProfilePicture = styled(Image)`\n object-fit: cover;\n`;\n\nconst GridContainer = styled.div(\n ({ theme }) => `\n flex: 1;\n display: grid;\n border-left: 1px solid ${theme.colors.BLACK_T_87};\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: auto auto auto;\n`,\n);\n\nconst GridItem = styled(FlexView)(\n ({ theme }) => `\n border: 0.5px solid ${theme.colors.WHITE_5};\n &:first-child,\n &:nth-child(2) {\n grid-column: span 1;\n }\n &:nth-child(3),\n &:nth-child(4) {\n grid-column: span 2;\n }\n &:first-child {\n border-left: none;\n border-top: none;\n }\n &:nth-child(2) {\n border-right: none;\n border-top: none;\n }\n &:nth-child(3) {\n border-left: none;\n border-right: none;\n }\n &:nth-child(4) {\n border-left: none;\n border-right: none;\n border-bottom: none;\n }\n`,\n);\n\nexport { ProfilePicture, GridContainer, GridItem };\n"],"names":["ProfilePicture","styled","Image","GridContainer","theme","GridItem","FlexView"],"mappings":";;;AAKM,MAAAA,IAAiBC,EAAOC,CAAK;AAAA;AAAA,GAI7BC,IAAgBF,EAAO;AAAA,EAC3B,CAAC,EAAE,OAAAG,EAAA,MAAY;AAAA;AAAA;AAAA,2BAGUA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA;AAIlD,GAEMC,IAAWJ,EAAOK,CAAQ;AAAA,EAC9B,CAAC,EAAE,OAAAF,EAAA,MAAY;AAAA,wBACOA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2B5C;"}
@@ -0,0 +1,64 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,28 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,83 @@
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
@@ -0,0 +1 @@
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;"}
@@ -0,0 +1,62 @@
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
@@ -0,0 +1 @@
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,55 +1,58 @@
1
- import { jsx as t, jsxs as B, Fragment as R } from "react/jsx-runtime";
2
- import { useCallback as g } from "react";
3
- import { useTheme as j } from "styled-components";
4
- import { ILLUSTRATIONS as I } from "../../../../assets/illustrations/illustrations.js";
5
- import O from "../../hooks/use-click-handler.js";
6
- import { Button as S, Loader as T, Icon as b, Label as v } from "./button-styled.js";
7
- const w = ({
8
- label: r,
1
+ import { jsx as t, jsxs as S, Fragment as T } from "react/jsx-runtime";
2
+ import { useMemo as g, useCallback as j } from "react";
3
+ import { useTheme as w } from "styled-components";
4
+ import { ILLUSTRATIONS as D } from "../../../../assets/illustrations/illustrations.js";
5
+ import F from "../../hooks/use-click-handler.js";
6
+ import { EDeviceType as u } from "../../theme/constants.js";
7
+ import { Button as H, Loader as M, Icon as N, Label as O } from "./button-styled.js";
8
+ const P = ({
9
+ label: s,
9
10
  renderAs: o,
10
- size: n = "regular",
11
- shape: s = "curved",
12
- disabled: a = !1,
11
+ size: r = "regular",
12
+ shape: m = "curved",
13
+ disabled: f = !1,
13
14
  busy: e = !1,
14
- width: c,
15
- widthX: d,
16
- Icon: i,
17
- iconPosition: u = "left",
18
- onClick: m,
19
- alignSelf: $,
20
- justifyContent: f = "center",
21
- analyticsLabel: h,
22
- analyticsProps: p,
23
- children: C,
24
- ...L
15
+ width: $,
16
+ widthX: h,
17
+ Icon: a,
18
+ iconPosition: p = "left",
19
+ onClick: L,
20
+ alignSelf: B,
21
+ justifyContent: C = "center",
22
+ analyticsLabel: k,
23
+ analyticsProps: A,
24
+ children: v,
25
+ sizeOnMobile: d,
26
+ sizeOnTablet: i,
27
+ ...x
25
28
  }) => {
26
- const { button: k } = j(), { textVariant: x } = k.sizes[n], { handleClick: l } = O({ label: r, analyticsLabel: h, analyticsProps: p }, m), A = g(() => {
29
+ const { button: E, device: c } = w(), n = g(() => c <= u.MOBILE ? d || i || r : c <= u.TABLET && i || r, [c, r, d, i]), { textVariant: I } = E.sizes[n], { handleClick: l } = F({ label: s, analyticsLabel: k, analyticsProps: A }, L), R = j(() => {
27
30
  if (e) return null;
28
31
  l();
29
32
  }, [e, l]);
30
33
  return /* @__PURE__ */ t(
31
- S,
34
+ H,
32
35
  {
33
- disabled: a,
34
- $alignSelf: $,
35
- $justifyContent: f,
36
- $width: c,
37
- $widthX: d,
36
+ disabled: f,
37
+ $alignSelf: B,
38
+ $justifyContent: C,
39
+ $width: $,
40
+ $widthX: h,
38
41
  $renderAs: o,
39
42
  $size: n,
40
- $shape: s,
41
- onClick: A,
43
+ $shape: m,
44
+ onClick: R,
42
45
  "data-busy": e,
43
- ...L,
44
- children: e ? /* @__PURE__ */ t(T, { src: I.LOADER, alt: "Loader", $size: n }) : /* @__PURE__ */ B(R, { children: [
45
- i ? /* @__PURE__ */ t(b, { $buttonRenderAs: o, $iconPosition: u, $size: n, children: /* @__PURE__ */ t(i, {}) }) : void 0,
46
- /* @__PURE__ */ t(v, { $renderAs: x, $buttonRenderAs: o, children: r }),
47
- C
46
+ ...x,
47
+ children: e ? /* @__PURE__ */ t(M, { src: D.LOADER, alt: "Loader", $size: n }) : /* @__PURE__ */ S(T, { children: [
48
+ a ? /* @__PURE__ */ t(N, { $buttonRenderAs: o, $iconPosition: p, $size: n, children: /* @__PURE__ */ t(a, {}) }) : void 0,
49
+ /* @__PURE__ */ t(O, { $renderAs: I, $buttonRenderAs: o, children: s }),
50
+ v
48
51
  ] })
49
52
  }
50
53
  );
51
- }, P = w;
54
+ }, K = P;
52
55
  export {
53
- P as default
56
+ K as default
54
57
  };
55
58
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../../../../src/features/ui/buttons/button/button.tsx"],"sourcesContent":["import type { IButtonProps } from './button-types';\n\nimport React, { useCallback } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport useClickHandler from '../../hooks/use-click-handler';\nimport * as Styled from './button-styled';\n\nconst Button: React.FC<IButtonProps> = ({\n label,\n renderAs,\n size = 'regular',\n shape = 'curved',\n disabled = false,\n busy = false,\n width,\n widthX,\n Icon,\n iconPosition = 'left',\n onClick,\n alignSelf,\n justifyContent = 'center',\n analyticsLabel,\n analyticsProps,\n children,\n ...rest\n}) => {\n const { button } = useTheme();\n const { textVariant } = button.sizes[size];\n const { handleClick } = useClickHandler({ label, analyticsLabel, analyticsProps }, onClick);\n\n const handleOnClick = useCallback(() => {\n if (busy) return null;\n\n handleClick();\n }, [busy, handleClick]);\n\n return (\n <Styled.Button\n disabled={disabled}\n $alignSelf={alignSelf}\n $justifyContent={justifyContent}\n $width={width}\n $widthX={widthX}\n $renderAs={renderAs}\n $size={size}\n $shape={shape}\n onClick={handleOnClick}\n data-busy={busy}\n {...rest}\n >\n {busy ? (\n <Styled.Loader src={ILLUSTRATIONS.LOADER} alt=\"Loader\" $size={size} />\n ) : (\n <>\n {Icon ? (\n <Styled.Icon $buttonRenderAs={renderAs} $iconPosition={iconPosition} $size={size}>\n <Icon />\n </Styled.Icon>\n ) : undefined}\n\n <Styled.Label $renderAs={textVariant} $buttonRenderAs={renderAs}>\n {label}\n </Styled.Label>\n\n {children}\n </>\n )}\n </Styled.Button>\n );\n};\n\nexport default Button;\n"],"names":["Button","label","renderAs","size","shape","disabled","busy","width","widthX","Icon","iconPosition","onClick","alignSelf","justifyContent","analyticsLabel","analyticsProps","children","rest","button","useTheme","textVariant","handleClick","useClickHandler","handleOnClick","useCallback","jsx","Styled.Button","Styled.Loader","ILLUSTRATIONS","jsxs","Fragment","Styled.Icon","Styled.Label","Button$1"],"mappings":";;;;;;AASA,MAAMA,IAAiC,CAAC;AAAA,EACtC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,QAAAC;AAAA,EAAA,MACAC;AAAAA,EACA,cAAAC,IAAe;AAAA,EACf,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAA,EAAE,QAAAC,MAAWC,KACb,EAAE,aAAAC,EAAgB,IAAAF,EAAO,MAAMf,CAAI,GACnC,EAAE,aAAAkB,EAAgB,IAAAC,EAAgB,EAAE,OAAArB,GAAO,gBAAAa,GAAgB,gBAAAC,KAAkBJ,CAAO,GAEpFY,IAAgBC,EAAY,MAAM;AACtC,QAAIlB,EAAa,QAAA;AAEL,IAAAe;EAAA,GACX,CAACf,GAAMe,CAAW,CAAC;AAGpB,SAAA,gBAAAI;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAArB;AAAA,MACA,YAAYO;AAAA,MACZ,iBAAiBC;AAAA,MACjB,QAAQN;AAAA,MACR,SAASC;AAAA,MACT,WAAWN;AAAA,MACX,OAAOC;AAAA,MACP,QAAQC;AAAA,MACR,SAASmB;AAAA,MACT,aAAWjB;AAAA,MACV,GAAGW;AAAA,MAEH,UACCX,IAAA,gBAAAmB,EAACE,GAAA,EAAc,KAAKC,EAAc,QAAQ,KAAI,UAAS,OAAOzB,EAAM,CAAA,IAGjE,gBAAA0B,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAArB,IACE,gBAAAgB,EAAAM,GAAA,EAAY,iBAAiB7B,GAAU,eAAeQ,GAAc,OAAOP,GAC1E,UAAC,gBAAAsB,EAAAhB,GAAA,CAAA,CAAK,GACR,IACE;AAAA,QAEJ,gBAAAgB,EAACO,GAAA,EAAa,WAAWZ,GAAa,iBAAiBlB,GACpD,UACHD,GAAA;AAAA,QAECe;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAIR,GAEAiB,IAAejC;"}
1
+ {"version":3,"file":"button.js","sources":["../../../../../src/features/ui/buttons/button/button.tsx"],"sourcesContent":["import type { IButtonProps } from './button-types';\n\nimport React, { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport useClickHandler from '../../hooks/use-click-handler';\nimport { EDeviceType } from '../../theme/constants';\nimport * as Styled from './button-styled';\n\nconst Button: React.FC<IButtonProps> = ({\n label,\n renderAs,\n size = 'regular',\n shape = 'curved',\n disabled = false,\n busy = false,\n width,\n widthX,\n Icon,\n iconPosition = 'left',\n onClick,\n alignSelf,\n justifyContent = 'center',\n analyticsLabel,\n analyticsProps,\n children,\n sizeOnMobile,\n sizeOnTablet,\n ...rest\n}) => {\n const { button, device } = useTheme();\n const renderSize = useMemo(() => {\n if (device <= EDeviceType.MOBILE) {\n return sizeOnMobile || sizeOnTablet || size;\n }\n\n if (device <= EDeviceType.TABLET) {\n return sizeOnTablet || size;\n }\n\n return size;\n }, [device, size, sizeOnMobile, sizeOnTablet]);\n\n const { textVariant } = button.sizes[renderSize];\n const { handleClick } = useClickHandler({ label, analyticsLabel, analyticsProps }, onClick);\n\n const handleOnClick = useCallback(() => {\n if (busy) return null;\n\n handleClick();\n }, [busy, handleClick]);\n\n return (\n <Styled.Button\n disabled={disabled}\n $alignSelf={alignSelf}\n $justifyContent={justifyContent}\n $width={width}\n $widthX={widthX}\n $renderAs={renderAs}\n $size={renderSize}\n $shape={shape}\n onClick={handleOnClick}\n data-busy={busy}\n {...rest}\n >\n {busy ? (\n <Styled.Loader src={ILLUSTRATIONS.LOADER} alt=\"Loader\" $size={renderSize} />\n ) : (\n <>\n {Icon ? (\n <Styled.Icon $buttonRenderAs={renderAs} $iconPosition={iconPosition} $size={renderSize}>\n <Icon />\n </Styled.Icon>\n ) : undefined}\n\n <Styled.Label $renderAs={textVariant} $buttonRenderAs={renderAs}>\n {label}\n </Styled.Label>\n\n {children}\n </>\n )}\n </Styled.Button>\n );\n};\n\nexport default Button;\n"],"names":["Button","label","renderAs","size","shape","disabled","busy","width","widthX","Icon","iconPosition","onClick","alignSelf","justifyContent","analyticsLabel","analyticsProps","children","sizeOnMobile","sizeOnTablet","rest","button","device","useTheme","renderSize","useMemo","EDeviceType","textVariant","handleClick","useClickHandler","handleOnClick","useCallback","jsx","Styled.Button","Styled.Loader","ILLUSTRATIONS","jsxs","Fragment","Styled.Icon","Styled.Label","Button$1"],"mappings":";;;;;;;AAUA,MAAMA,IAAiC,CAAC;AAAA,EACtC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,QAAAC;AAAA,EAAA,MACAC;AAAAA,EACA,cAAAC,IAAe;AAAA,EACf,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,EAAE,QAAAC,GAAQ,QAAAC,EAAO,IAAIC,EAAS,GAC9BC,IAAaC,EAAQ,MACrBH,KAAUI,EAAY,SACjBR,KAAgBC,KAAgBf,IAGrCkB,KAAUI,EAAY,UACjBP,KAAgBf,GAIxB,CAACkB,GAAQlB,GAAMc,GAAcC,CAAY,CAAC,GAEvC,EAAE,aAAAQ,EAAgB,IAAAN,EAAO,MAAMG,CAAU,GACzC,EAAE,aAAAI,EAAgB,IAAAC,EAAgB,EAAE,OAAA3B,GAAO,gBAAAa,GAAgB,gBAAAC,KAAkBJ,CAAO,GAEpFkB,IAAgBC,EAAY,MAAM;AACtC,QAAIxB,EAAa,QAAA;AAEL,IAAAqB;EAAA,GACX,CAACrB,GAAMqB,CAAW,CAAC;AAGpB,SAAA,gBAAAI;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAA3B;AAAA,MACA,YAAYO;AAAA,MACZ,iBAAiBC;AAAA,MACjB,QAAQN;AAAA,MACR,SAASC;AAAA,MACT,WAAWN;AAAA,MACX,OAAOqB;AAAA,MACP,QAAQnB;AAAA,MACR,SAASyB;AAAA,MACT,aAAWvB;AAAA,MACV,GAAGa;AAAA,MAEH,UACCb,IAAA,gBAAAyB,EAACE,GAAA,EAAc,KAAKC,EAAc,QAAQ,KAAI,UAAS,OAAOX,EAAY,CAAA,IAGvE,gBAAAY,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA3B,IACE,gBAAAsB,EAAAM,GAAA,EAAY,iBAAiBnC,GAAU,eAAeQ,GAAc,OAAOa,GAC1E,UAAC,gBAAAQ,EAAAtB,GAAA,CAAA,CAAK,GACR,IACE;AAAA,QAEJ,gBAAAsB,EAACO,GAAA,EAAa,WAAWZ,GAAa,iBAAiBxB,GACpD,UACHD,GAAA;AAAA,QAECe;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAIR,GAEAuB,IAAevC;"}
@@ -1,34 +1,38 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { memo as p } from "react";
3
- import { ILLUSTRATIONS as u } from "../../../../assets/illustrations/illustrations.js";
4
- import f from "../../hooks/use-click-handler.js";
5
- import { Loader as I } from "../button/button-styled.js";
6
- import { IconButtonWrapper as $, IconWrapper as C } from "./icon-button-styled.js";
7
- const L = p((n) => {
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { memo as b, useMemo as z } from "react";
3
+ import { useTheme as B } from "styled-components";
4
+ import { ILLUSTRATIONS as T } from "../../../../assets/illustrations/illustrations.js";
5
+ import $ from "../../hooks/use-click-handler.js";
6
+ import { EDeviceType as c } from "../../theme/constants.js";
7
+ import { Loader as A } from "../button/button-styled.js";
8
+ import { IconButtonWrapper as C, IconWrapper as O } from "./icon-button-styled.js";
9
+ const h = b((m) => {
8
10
  const {
9
- Icon: e,
10
- size: r,
11
- onClick: s,
12
- renderAs: t,
13
- disabled: c,
14
- analyticsLabel: i,
15
- analyticsProps: l,
16
- customBgColor: m,
17
- busy: a
18
- } = n, { handleClick: d } = f({ analyticsLabel: i, analyticsProps: l }, s);
19
- return /* @__PURE__ */ o(
20
- $,
11
+ Icon: l,
12
+ size: o,
13
+ sizeOnMobile: n,
14
+ sizeOnTablet: r,
15
+ onClick: a,
16
+ renderAs: i,
17
+ disabled: u,
18
+ analyticsLabel: p,
19
+ analyticsProps: d,
20
+ customBgColor: f,
21
+ busy: I
22
+ } = m, { handleClick: L } = $({ analyticsLabel: p, analyticsProps: d }, a), { device: t } = B(), s = z(() => t <= c.MOBILE ? n || r || o : t <= c.TABLET && r || o, [t, o, n, r]);
23
+ return /* @__PURE__ */ e(
24
+ C,
21
25
  {
22
- disabled: c,
23
- $size: r,
24
- $buttonRenderAs: t,
25
- onClick: d,
26
- $customBgColor: m,
27
- children: a ? /* @__PURE__ */ o(I, { src: u.LOADER, alt: "Loader", $size: r || "small" }) : /* @__PURE__ */ o(C, { $size: r, $buttonRenderAs: t, children: /* @__PURE__ */ o(e, {}) })
26
+ disabled: u,
27
+ $size: o,
28
+ $buttonRenderAs: i,
29
+ onClick: L,
30
+ $customBgColor: f,
31
+ children: I ? /* @__PURE__ */ e(A, { src: T.LOADER, alt: "Loader", $size: s || "small" }) : /* @__PURE__ */ e(O, { $size: s, $buttonRenderAs: i, children: /* @__PURE__ */ e(l, {}) })
28
32
  }
29
33
  );
30
- }), h = L;
34
+ }), x = h;
31
35
  export {
32
- h as default
36
+ x as default
33
37
  };
34
38
  //# sourceMappingURL=icon-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sources":["../../../../../src/features/ui/buttons/icon-button/icon-button.tsx"],"sourcesContent":["import type { IIconButtonProps } from './icon-button-types';\n\nimport { memo, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport useClickHandler from '../../hooks/use-click-handler';\nimport { Loader } from '../button/button-styled';\nimport * as Styled from './icon-button-styled';\n\nconst IconButton: FC<IIconButtonProps> = memo(props => {\n const {\n Icon,\n size,\n onClick,\n renderAs,\n disabled,\n analyticsLabel,\n analyticsProps,\n customBgColor,\n busy,\n } = props;\n const { handleClick } = useClickHandler({ analyticsLabel, analyticsProps }, onClick);\n\n return (\n <Styled.IconButtonWrapper\n disabled={disabled}\n $size={size}\n $buttonRenderAs={renderAs}\n onClick={handleClick}\n $customBgColor={customBgColor}\n >\n {busy ? (\n <Loader src={ILLUSTRATIONS.LOADER} alt=\"Loader\" $size={size || 'small'} />\n ) : (\n <Styled.IconWrapper $size={size} $buttonRenderAs={renderAs}>\n <Icon />\n </Styled.IconWrapper>\n )}\n </Styled.IconButtonWrapper>\n );\n});\n\nexport default IconButton;\n"],"names":["IconButton","memo","props","Icon","size","onClick","renderAs","disabled","analyticsLabel","analyticsProps","customBgColor","busy","handleClick","useClickHandler","jsx","Styled.IconButtonWrapper","Loader","ILLUSTRATIONS","Styled.IconWrapper","IconButton$1"],"mappings":";;;;;;AASA,MAAMA,IAAmCC,EAAK,CAASC,MAAA;AAC/C,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,MAAAC;AAAA,EACE,IAAAT,GACE,EAAE,aAAAU,MAAgBC,EAAgB,EAAE,gBAAAL,GAAgB,gBAAAC,EAAA,GAAkBJ,CAAO;AAGjF,SAAA,gBAAAS;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAAR;AAAA,MACA,OAAOH;AAAA,MACP,iBAAiBE;AAAA,MACjB,SAASM;AAAA,MACT,gBAAgBF;AAAA,MAEf,UAAAC,sBACEK,GAAO,EAAA,KAAKC,EAAc,QAAQ,KAAI,UAAS,OAAOb,KAAQ,SAAS,IAEvE,gBAAAU,EAAAI,GAAA,EAAmB,OAAOd,GAAM,iBAAiBE,GAChD,UAAC,gBAAAQ,EAAAX,GAAA,CAAA,CAAK,EACR,CAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC,GAEDgB,IAAenB;"}
1
+ {"version":3,"file":"icon-button.js","sources":["../../../../../src/features/ui/buttons/icon-button/icon-button.tsx"],"sourcesContent":["import type { IIconButtonProps } from './icon-button-types';\n\nimport { memo, useMemo, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport useClickHandler from '../../hooks/use-click-handler';\nimport { EDeviceType } from '../../theme/constants';\nimport { Loader } from '../button/button-styled';\nimport * as Styled from './icon-button-styled';\n\nconst IconButton: FC<IIconButtonProps> = memo(props => {\n const {\n Icon,\n size,\n sizeOnMobile,\n sizeOnTablet,\n onClick,\n renderAs,\n disabled,\n analyticsLabel,\n analyticsProps,\n customBgColor,\n busy,\n } = props;\n const { handleClick } = useClickHandler({ analyticsLabel, analyticsProps }, onClick);\n const { device } = useTheme();\n const renderSize = useMemo(() => {\n if (device <= EDeviceType.MOBILE) {\n return sizeOnMobile || sizeOnTablet || size;\n }\n\n if (device <= EDeviceType.TABLET) {\n return sizeOnTablet || size;\n }\n\n return size;\n }, [device, size, sizeOnMobile, sizeOnTablet]);\n\n return (\n <Styled.IconButtonWrapper\n disabled={disabled}\n $size={size}\n $buttonRenderAs={renderAs}\n onClick={handleClick}\n $customBgColor={customBgColor}\n >\n {busy ? (\n <Loader src={ILLUSTRATIONS.LOADER} alt=\"Loader\" $size={renderSize || 'small'} />\n ) : (\n <Styled.IconWrapper $size={renderSize} $buttonRenderAs={renderAs}>\n <Icon />\n </Styled.IconWrapper>\n )}\n </Styled.IconButtonWrapper>\n );\n});\n\nexport default IconButton;\n"],"names":["IconButton","memo","props","Icon","size","sizeOnMobile","sizeOnTablet","onClick","renderAs","disabled","analyticsLabel","analyticsProps","customBgColor","busy","handleClick","useClickHandler","device","useTheme","renderSize","useMemo","EDeviceType","jsx","Styled.IconButtonWrapper","Loader","ILLUSTRATIONS","Styled.IconWrapper","IconButton$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAmCC,EAAK,CAASC,MAAA;AAC/C,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,MAAAC;AAAA,EACE,IAAAX,GACE,EAAE,aAAAY,MAAgBC,EAAgB,EAAE,gBAAAL,GAAgB,gBAAAC,EAAA,GAAkBJ,CAAO,GAC7E,EAAE,QAAAS,MAAWC,KACbC,IAAaC,EAAQ,MACrBH,KAAUI,EAAY,SACjBf,KAAgBC,KAAgBF,IAGrCY,KAAUI,EAAY,UACjBd,KAAgBF,GAIxB,CAACY,GAAQZ,GAAMC,GAAcC,CAAY,CAAC;AAG3C,SAAA,gBAAAe;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAAb;AAAA,MACA,OAAOL;AAAA,MACP,iBAAiBI;AAAA,MACjB,SAASM;AAAA,MACT,gBAAgBF;AAAA,MAEf,UAAAC,sBACEU,GAAO,EAAA,KAAKC,EAAc,QAAQ,KAAI,UAAS,OAAON,KAAc,SAAS,IAE7E,gBAAAG,EAAAI,GAAA,EAAmB,OAAOP,GAAY,iBAAiBV,GACtD,UAAC,gBAAAa,EAAAlB,GAAA,CAAA,CAAK,EACR,CAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC,GAEDuB,IAAe1B;"}
@@ -1,30 +1,34 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { useTheme as x } from "styled-components";
3
- import a from "../clickable/clickable.js";
4
- import { Text as f } from "./text-button-styled.js";
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { useMemo as T } from "react";
3
+ import { useTheme as a } from "styled-components";
4
+ import { EDeviceType as c } from "../../theme/constants.js";
5
+ import $ from "../clickable/clickable.js";
6
+ import { Text as h } from "./text-button-styled.js";
5
7
  const l = ({
6
- label: t,
7
- size: o = "regular",
8
- disabled: e = !1,
9
- onClick: n,
10
- analyticsLabel: s,
11
- analyticsProps: i,
12
- color: m
8
+ label: e,
9
+ size: r = "regular",
10
+ sizeOnMobile: n,
11
+ sizeOnTablet: t,
12
+ disabled: f = !1,
13
+ onClick: i,
14
+ analyticsLabel: p,
15
+ analyticsProps: s,
16
+ color: x
13
17
  }) => {
14
- const { textButton: c } = x(), { textVariant: u } = c.sizes[o];
15
- return /* @__PURE__ */ r(
16
- a,
18
+ const { textButton: d, device: o } = a(), m = T(() => o <= c.MOBILE ? n || t || r : o <= c.TABLET && t || r, [o, r, n, t]), { textVariant: B } = d.sizes[m];
19
+ return /* @__PURE__ */ u(
20
+ $,
17
21
  {
18
- label: t,
19
- disabled: e,
20
- onClick: n,
21
- analyticsLabel: s,
22
- analyticsProps: i,
23
- children: /* @__PURE__ */ r(f, { $color: m, $renderAs: u, $buttonSize: o, children: t })
22
+ label: e,
23
+ disabled: f,
24
+ onClick: i,
25
+ analyticsLabel: p,
26
+ analyticsProps: s,
27
+ children: /* @__PURE__ */ u(h, { $color: x, $renderAs: B, $buttonSize: m, children: e })
24
28
  }
25
29
  );
26
- }, h = l;
30
+ }, j = l;
27
31
  export {
28
- h as default
32
+ j as default
29
33
  };
30
34
  //# sourceMappingURL=text-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-button.js","sources":["../../../../../src/features/ui/buttons/text-button/text-button.tsx"],"sourcesContent":["import type { ITextButtonProps } from './text-button-types';\n\nimport React from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Clickable from '../clickable/clickable';\nimport * as Styled from './text-button-styled';\n\nconst TextButton: React.FC<ITextButtonProps> = ({\n label,\n size = 'regular',\n disabled = false,\n onClick,\n analyticsLabel,\n analyticsProps,\n color,\n}) => {\n const { textButton } = useTheme();\n const { textVariant } = textButton.sizes[size];\n\n return (\n <Clickable\n label={label}\n disabled={disabled}\n onClick={onClick}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n >\n <Styled.Text $color={color} $renderAs={textVariant} $buttonSize={size}>\n {label}\n </Styled.Text>\n </Clickable>\n );\n};\n\nexport default TextButton;\n"],"names":["TextButton","label","size","disabled","onClick","analyticsLabel","analyticsProps","color","textButton","useTheme","textVariant","jsx","Clickable","Styled.Text","TextButton$1"],"mappings":";;;;AAQA,MAAMA,IAAyC,CAAC;AAAA,EAC9C,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACE,QAAA,EAAE,YAAAC,MAAeC,KACjB,EAAE,aAAAC,EAAgB,IAAAF,EAAW,MAAMN,CAAI;AAG3C,SAAA,gBAAAS;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAX;AAAA,MACA,UAAAE;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAC;AAAA,MAEA,UAAA,gBAAAK,EAACE,GAAA,EAAY,QAAQN,GAAO,WAAWG,GAAa,aAAaR,GAC9D,UACHD,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEAa,IAAed;"}
1
+ {"version":3,"file":"text-button.js","sources":["../../../../../src/features/ui/buttons/text-button/text-button.tsx"],"sourcesContent":["import type { ITextButtonProps } from './text-button-types';\n\nimport React, { useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { EDeviceType } from '../../theme/constants';\nimport Clickable from '../clickable/clickable';\nimport * as Styled from './text-button-styled';\n\nconst TextButton: React.FC<ITextButtonProps> = ({\n label,\n size = 'regular',\n sizeOnMobile,\n sizeOnTablet,\n disabled = false,\n onClick,\n analyticsLabel,\n analyticsProps,\n color,\n}) => {\n const { textButton, device } = useTheme();\n const renderSize = useMemo(() => {\n if (device <= EDeviceType.MOBILE) {\n return sizeOnMobile || sizeOnTablet || size;\n }\n\n if (device <= EDeviceType.TABLET) {\n return sizeOnTablet || size;\n }\n\n return size;\n }, [device, size, sizeOnMobile, sizeOnTablet]);\n\n const { textVariant } = textButton.sizes[renderSize];\n\n return (\n <Clickable\n label={label}\n disabled={disabled}\n onClick={onClick}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n >\n <Styled.Text $color={color} $renderAs={textVariant} $buttonSize={renderSize}>\n {label}\n </Styled.Text>\n </Clickable>\n );\n};\n\nexport default TextButton;\n"],"names":["TextButton","label","size","sizeOnMobile","sizeOnTablet","disabled","onClick","analyticsLabel","analyticsProps","color","textButton","device","useTheme","renderSize","useMemo","EDeviceType","textVariant","jsx","Clickable","Styled.Text","TextButton$1"],"mappings":";;;;;;AASA,MAAMA,IAAyC,CAAC;AAAA,EAC9C,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACJ,QAAM,EAAE,YAAAC,GAAY,QAAAC,EAAO,IAAIC,EAAS,GAClCC,IAAaC,EAAQ,MACrBH,KAAUI,EAAY,SACjBZ,KAAgBC,KAAgBF,IAGrCS,KAAUI,EAAY,UACjBX,KAAgBF,GAIxB,CAACS,GAAQT,GAAMC,GAAcC,CAAY,CAAC,GAEvC,EAAE,aAAAY,EAAgB,IAAAN,EAAW,MAAMG,CAAU;AAGjD,SAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAjB;AAAA,MACA,UAAAI;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAC;AAAA,MAEA,UAAA,gBAAAS,EAACE,GAAA,EAAY,QAAQV,GAAO,WAAWO,GAAa,aAAaH,GAC9D,UACHZ,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEAmB,IAAepB;"}