@cuemath/leap 2.8.35-beta.0 → 2.8.36-link.0

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 (75) hide show
  1. package/dist/assets/illustrations/illustrations.js +2 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/sounds/sounds.js +7 -0
  4. package/dist/assets/sounds/sounds.js.map +1 -0
  5. package/dist/features/analytics-events/whitelist-events.js +13 -15
  6. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  7. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  8. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +63 -54
  9. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  10. package/dist/features/talk-meter/helper.js +11 -0
  11. package/dist/features/talk-meter/helper.js.map +1 -0
  12. package/dist/features/talk-meter/hooks/use-talk-meter.js +112 -0
  13. package/dist/features/talk-meter/hooks/use-talk-meter.js.map +1 -0
  14. package/dist/features/talk-meter/ripple/index.js +62 -0
  15. package/dist/features/talk-meter/ripple/index.js.map +1 -0
  16. package/dist/features/talk-meter/talk-meter-styled.js +84 -0
  17. package/dist/features/talk-meter/talk-meter-styled.js.map +1 -0
  18. package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js +22 -0
  19. package/dist/features/talk-meter/talk-meter-view/talk-meter-view-styled.js.map +1 -0
  20. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js +89 -0
  21. package/dist/features/talk-meter/talk-meter-view/talk-meter-view.js.map +1 -0
  22. package/dist/features/talk-meter/talk-meter.js +71 -0
  23. package/dist/features/talk-meter/talk-meter.js.map +1 -0
  24. package/dist/features/ui/grade-selector/grade-tab.js +15 -15
  25. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  26. package/dist/features/ui/tab/tab-styled.js +8 -7
  27. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  28. package/dist/features/ui/tab/tab.js +31 -36
  29. package/dist/features/ui/tab/tab.js.map +1 -1
  30. package/dist/features/ui/theme/tab.js +1 -1
  31. package/dist/features/ui/theme/tab.js.map +1 -1
  32. package/dist/index.d.ts +36 -37
  33. package/dist/index.js +302 -304
  34. package/dist/index.js.map +1 -1
  35. package/dist/static/female-avatar.b8cd1012.svg +1 -0
  36. package/dist/static/male-avatar.2febc9eb.svg +1 -0
  37. package/package.json +2 -3
  38. package/dist/assets/line-icons/icons/sheet.js +0 -54
  39. package/dist/assets/line-icons/icons/sheet.js.map +0 -1
  40. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +0 -194
  41. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +0 -1
  42. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +0 -10
  43. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +0 -1
  44. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +0 -9
  45. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +0 -1
  46. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +0 -9
  47. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +0 -1
  48. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +0 -20
  49. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +0 -1
  50. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +0 -47
  51. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +0 -1
  52. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +0 -22
  53. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +0 -1
  54. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +0 -60
  55. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +0 -1
  56. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +0 -6
  57. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +0 -1
  58. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +0 -19
  59. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +0 -1
  60. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +0 -22
  61. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +0 -1
  62. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +0 -17
  63. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +0 -1
  64. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +0 -95
  65. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +0 -1
  66. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +0 -62
  67. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +0 -1
  68. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +0 -189
  69. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +0 -1
  70. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +0 -8
  71. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +0 -1
  72. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +0 -28
  73. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +0 -1
  74. package/dist/features/ui/inputs/searchable-input/searchable-input.js +0 -101
  75. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +0 -1
@@ -0,0 +1,84 @@
1
+ import i, { keyframes as o, css as s } from "styled-components";
2
+ import p from "../../assets/line-icons/icons/cross.js";
3
+ import l from "../ui/layout/flex-view.js";
4
+ const r = o`
5
+ 0% {
6
+ opacity: 0;
7
+ transform: translate(0%, -100%) scale(0);
8
+ height: 0px;
9
+ }
10
+ 50% {
11
+ opacity: 1;
12
+ }
13
+ 100% {
14
+ opacity: 1;
15
+ transform: translate(0%, 0%) scale(1);
16
+ height: 128px;
17
+ }
18
+ `, c = o`
19
+ 0% {
20
+ opacity: 1;
21
+ transform: translate(0%, 0%) scale(1);
22
+ }
23
+ 100% {
24
+ opacity: 0;
25
+ transform: translate(0%, -100%) scale(1);
26
+ height: 0px;
27
+ }
28
+ `, y = i(p)`
29
+ position: absolute;
30
+ top: 15px;
31
+ right: 20px;
32
+ color: black;
33
+ width: 20px;
34
+ height: 20px;
35
+ z-index: 2;
36
+ `, f = i(l)(
37
+ ({ $isTeacher: n, $animated: t, $canAnimateIn: a, $canAnimateOut: e }) => `
38
+ width: 100%;
39
+ max-width: 336px;
40
+
41
+ ${t ? `
42
+ height: 0;
43
+ opacity: 0;
44
+ display: none;
45
+ ` : `
46
+ height: 100%;
47
+ opacity: 1;
48
+ display: flex;
49
+ `}
50
+
51
+ ${n ? null : s`
52
+ display: ${t ? "none" : "flex"};
53
+ top: ${t ? 70 : 0}px;
54
+ right: ${t ? 10 : 0}px;
55
+ z-index: 100;
56
+ position: ${t ? "fixed" : "relative"};
57
+ `}
58
+
59
+ ${a ? `
60
+ animation-name: ${r};
61
+ animation-duration: 800ms;
62
+ animation-iteration-count: 1;
63
+ animation-timing-function: ease-out;
64
+ opacity: 1;
65
+ display: flex;
66
+ height: 128px;
67
+ ` : null}
68
+
69
+ ${e ? `
70
+ animation-name: ${c};
71
+ animation-duration: 400ms;
72
+ animation-iteration-count: 1;
73
+ animation-timing-function: ease-out;
74
+ opacity: 0;
75
+ display: none;
76
+ height: 0px;
77
+ ` : null}
78
+ `
79
+ );
80
+ export {
81
+ y as CloseIcon,
82
+ f as Wrapper
83
+ };
84
+ //# sourceMappingURL=talk-meter-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-styled.js","sources":["../../../src/features/talk-meter/talk-meter-styled.tsx"],"sourcesContent":["import styled, { css, keyframes } from 'styled-components';\n\nimport CrossIcon from '../../assets/line-icons/icons/cross';\nimport FlexView from '../ui/layout/flex-view';\n\nconst scaleInAnim = keyframes`\n 0% {\n opacity: 0;\n transform: translate(0%, -100%) scale(0);\n height: 0px;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n transform: translate(0%, 0%) scale(1);\n height: 128px;\n }\n`;\n\nconst scaleOutAnim = keyframes`\n 0% {\n opacity: 1;\n transform: translate(0%, 0%) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translate(0%, -100%) scale(1);\n height: 0px;\n }\n`;\n\nconst CloseIcon = styled(CrossIcon)`\n position: absolute;\n top: 15px;\n right: 20px;\n color: black;\n width: 20px;\n height: 20px;\n z-index: 2;\n`;\n\nconst Wrapper = styled(FlexView)<{\n $isTeacher: boolean;\n $animated: boolean;\n $canAnimateIn: boolean;\n $canAnimateOut: boolean;\n}>(\n ({ $isTeacher, $animated, $canAnimateIn, $canAnimateOut }) => `\n width: 100%;\n max-width: 336px;\n \n ${\n $animated\n ? `\n height: 0;\n opacity: 0;\n display: none;\n `\n : `\n height: 100%;\n opacity: 1;\n display: flex;\n `\n }\n \n ${\n !$isTeacher\n ? css`\n display: ${$animated ? 'none' : 'flex'};\n top: ${$animated ? 70 : 0}px;\n right: ${$animated ? 10 : 0}px;\n z-index: 100;\n position: ${$animated ? 'fixed' : 'relative'};\n `\n : null\n }\n \n ${\n $canAnimateIn\n ? `\n animation-name: ${scaleInAnim};\n animation-duration: 800ms;\n animation-iteration-count: 1;\n animation-timing-function: ease-out;\n opacity: 1;\n display: flex;\n height: 128px;\n `\n : null\n }\n\n ${\n $canAnimateOut\n ? `\n animation-name: ${scaleOutAnim};\n animation-duration: 400ms;\n animation-iteration-count: 1;\n animation-timing-function: ease-out;\n opacity: 0;\n display: none;\n height: 0px;\n `\n : null\n }\n `,\n);\n\nexport { Wrapper, CloseIcon };\n"],"names":["scaleInAnim","keyframes","scaleOutAnim","CloseIcon","styled","CrossIcon","Wrapper","FlexView","$isTeacher","$animated","$canAnimateIn","$canAnimateOut","css"],"mappings":";;;AAKA,MAAMA,IAAcC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBdC,IAAeD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYfE,IAAYC,EAAOC,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAU5BC,IAAUF,EAAOG,CAAQ;AAAA,EAM7B,CAAC,EAAE,YAAAC,GAAY,WAAAC,GAAW,eAAAC,GAAe,gBAAAC,EAAqB,MAAA;AAAA;AAAA;AAAA;AAAA,MAK1DF,IACI;AAAA;AAAA;AAAA;AAAA,cAKA;AAAA;AAAA;AAAA;AAAA,WAKN;AAAA;AAAA,MAGGD,IAQG,OAPAI;AAAA,uBACaH,IAAY,SAAS,MAAM;AAAA,mBAC/BA,IAAY,KAAK,CAAC;AAAA,qBAChBA,IAAY,KAAK,CAAC;AAAA;AAAA,wBAEfA,IAAY,UAAU,UAAU;AAAA,WAGpD;AAAA;AAAA,MAGEC,IACI;AAAA,8BACoBV,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAQ/B,IACN;AAAA;AAAA,MAGEW,IACI;AAAA,8BACoBT,CAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAQhC,IACN;AAAA;AAEJ;"}
@@ -0,0 +1,22 @@
1
+ import e from "styled-components";
2
+ import i from "../../ui/layout/flex-view.js";
3
+ const p = e(i)`
4
+ height: 104px;
5
+ transition: height 300ms ease-in-out;
6
+ z-index: 1;
7
+ `;
8
+ e.div(
9
+ ({ $avatarUrl: r }) => `
10
+ width: 20px;
11
+ height: 20px;
12
+ border-radius: 50%;
13
+ background: url(${r});
14
+ background-size: cover;
15
+ background-repeat: no-repeat;
16
+ position: relative;
17
+ `
18
+ );
19
+ export {
20
+ p as MeterWrapper
21
+ };
22
+ //# sourceMappingURL=talk-meter-view-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-view-styled.js","sources":["../../../../src/features/talk-meter/talk-meter-view/talk-meter-view-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\nconst MeterWrapper = styled(FlexView)`\n height: 104px;\n transition: height 300ms ease-in-out;\n z-index: 1;\n`;\n\nconst Avatar = styled.div<{ $avatarUrl: string }>(\n ({ $avatarUrl }) => `\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: url(${$avatarUrl});\n background-size: cover;\n background-repeat: no-repeat;\n position: relative;\n`,\n);\n\nexport { MeterWrapper, Avatar };\n"],"names":["MeterWrapper","styled","FlexView","$avatarUrl"],"mappings":";;AAIM,MAAAA,IAAeC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAMrBD,EAAO;AAAA,EACpB,CAAC,EAAE,YAAAE,EAAA,MAAiB;AAAA;AAAA;AAAA;AAAA,oBAIFA,CAAU;AAAA;AAAA;AAAA;AAAA;AAK9B;"}
@@ -0,0 +1,89 @@
1
+ import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
+ import { memo as T } from "react";
3
+ import { ILLUSTRATIONS as a } from "../../../assets/illustrations/illustrations.js";
4
+ import l from "../../ui/image/image.js";
5
+ import t from "../../ui/layout/flex-view.js";
6
+ import b from "../../ui/separator/separator.js";
7
+ import o from "../../ui/text/text.js";
8
+ import { getMeterColor as p } from "../helper.js";
9
+ import { MeterWrapper as $ } from "./talk-meter-view-styled.js";
10
+ const g = {
11
+ MALE: "MALE",
12
+ FEMALE: "FEMALE",
13
+ OTHER: "OTHER"
14
+ }, k = T((s) => {
15
+ const {
16
+ stdName: h = "Student",
17
+ tchName: u = "Teacher",
18
+ stdRatio: i = 10,
19
+ tchRatio: n = 20,
20
+ tchGender: A = "MALE",
21
+ userType: m
22
+ } = s, c = p(i), E = Math.abs(n - i), f = n > 0 && i > 0 && E < 95, d = m === "TEACHER";
23
+ return f ? /* @__PURE__ */ r(
24
+ $,
25
+ {
26
+ $gap: 12,
27
+ $gutter: 12,
28
+ $background: "WHITE",
29
+ $borderColor: "GREY_2",
30
+ $borderRadius: 12,
31
+ children: [
32
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $align: "center", children: "50:50 TALK METER" }),
33
+ /* @__PURE__ */ e(b, { height: 8 }),
34
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
35
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", $flexGap: 4, children: [
36
+ /* @__PURE__ */ e(l, { src: a.ALIEN_4, width: 20, height: 20, withLoader: !0 }),
37
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: d ? h : "You" })
38
+ ] }),
39
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", $flexGap: 4, children: [
40
+ /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: d ? "You" : u }),
41
+ /* @__PURE__ */ e(
42
+ l,
43
+ {
44
+ src: A === g.MALE ? a.MALE_AVATAR : a.FEMALE_AVATAR,
45
+ width: 20,
46
+ height: 20,
47
+ withLoader: !0
48
+ }
49
+ )
50
+ ] })
51
+ ] }),
52
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $gap: 4, children: [
53
+ /* @__PURE__ */ e(
54
+ t,
55
+ {
56
+ $height: 8,
57
+ $width: `${i}%`,
58
+ $borderRadius: 4,
59
+ $background: c.STUDENT
60
+ }
61
+ ),
62
+ /* @__PURE__ */ e(
63
+ t,
64
+ {
65
+ $height: 8,
66
+ $width: `${n}%`,
67
+ $borderRadius: 4,
68
+ $background: c.TEACHER
69
+ }
70
+ )
71
+ ] }),
72
+ /* @__PURE__ */ r(t, { $flexDirection: "row", $alignItems: "center", $justifyContent: "space-between", children: [
73
+ /* @__PURE__ */ r(o, { $renderAs: "ab2-black", $color: c.STUDENT, children: [
74
+ i,
75
+ " %"
76
+ ] }),
77
+ /* @__PURE__ */ r(o, { $renderAs: "ab2-black", $color: c.TEACHER, children: [
78
+ n,
79
+ " %"
80
+ ] })
81
+ ] })
82
+ ]
83
+ }
84
+ ) : /* @__PURE__ */ e($, { $justifyContent: "center", $alignItems: "center", $gap: 12, $gutter: 12, children: /* @__PURE__ */ e(o, { $renderAs: "ub3-bold", $color: "BLACK", children: "Oops! There was insufficient data to calculate your Talk Ratio." }) });
85
+ });
86
+ export {
87
+ k as default
88
+ };
89
+ //# sourceMappingURL=talk-meter-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter-view.js","sources":["../../../../src/features/talk-meter/talk-meter-view/talk-meter-view.tsx"],"sourcesContent":["import type { TUserTypes } from '../../ui/types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\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 { getMeterColor } from '../helper';\nimport * as Styled from './talk-meter-view-styled';\n\nconst GENDER = {\n MALE: 'MALE',\n FEMALE: 'FEMALE',\n OTHER: 'OTHER',\n};\n\ninterface ITalkMeterView {\n stdName?: string;\n tchName?: string;\n stdRatio: number;\n tchRatio: number;\n tchGender: keyof typeof GENDER;\n userType: TUserTypes;\n}\n\nconst TalkMeterView: FC<ITalkMeterView> = memo(props => {\n const {\n stdName = 'Student',\n tchName = 'Teacher',\n stdRatio = 10,\n tchRatio = 20,\n tchGender = 'MALE',\n userType,\n } = props;\n const colors = getMeterColor(stdRatio);\n const diff = Math.abs(tchRatio - stdRatio);\n const isValid = tchRatio > 0 && stdRatio > 0 && diff < 95;\n const isTeacher = userType === 'TEACHER';\n\n if (!isValid) {\n return (\n <Styled.MeterWrapper $justifyContent=\"center\" $alignItems=\"center\" $gap={12} $gutter={12}>\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n Oops! There was insufficient data to calculate your Talk Ratio.\n </Text>\n </Styled.MeterWrapper>\n );\n }\n\n return (\n <Styled.MeterWrapper\n $gap={12}\n $gutter={12}\n $background=\"WHITE\"\n $borderColor=\"GREY_2\"\n $borderRadius={12}\n >\n <Text $renderAs=\"ub3-bold\" $align=\"center\">\n 50:50 TALK METER\n </Text>\n\n <Separator height={8} />\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\" $flexGap={4}>\n <Image src={ILLUSTRATIONS.ALIEN_4} width={20} height={20} withLoader />\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n {isTeacher ? stdName : 'You'}\n </Text>\n </FlexView>\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\" $flexGap={4}>\n <Text $renderAs=\"ub3-bold\" $color=\"BLACK\">\n {isTeacher ? 'You' : tchName}\n </Text>\n <Image\n src={\n tchGender === GENDER.MALE ? ILLUSTRATIONS.MALE_AVATAR : ILLUSTRATIONS.FEMALE_AVATAR\n }\n width={20}\n height={20}\n withLoader\n />\n </FlexView>\n </FlexView>\n <FlexView $flexDirection=\"row\" $gap={4}>\n <FlexView\n $height={8}\n $width={`${stdRatio}%`}\n $borderRadius={4}\n $background={colors.STUDENT}\n />\n <FlexView\n $height={8}\n $width={`${tchRatio}%`}\n $borderRadius={4}\n $background={colors.TEACHER}\n />\n </FlexView>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"space-between\">\n <Text $renderAs=\"ab2-black\" $color={colors.STUDENT}>\n {stdRatio} %\n </Text>\n <Text $renderAs=\"ab2-black\" $color={colors.TEACHER}>\n {tchRatio} %\n </Text>\n </FlexView>\n </Styled.MeterWrapper>\n );\n});\n\nexport default TalkMeterView;\n"],"names":["GENDER","TalkMeterView","memo","props","stdName","tchName","stdRatio","tchRatio","tchGender","userType","colors","getMeterColor","diff","isValid","isTeacher","jsxs","Styled.MeterWrapper","jsx","Text","Separator","FlexView","Image","ILLUSTRATIONS"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { jsxs as c, Fragment as g, jsx as e } from "react/jsx-runtime";
2
+ import { memo as y } from "react";
3
+ import { getMeterColor as v } from "./helper.js";
4
+ import { useTalkMeter as w } from "./hooks/use-talk-meter.js";
5
+ import n from "./ripple/index.js";
6
+ import { Wrapper as x, CloseIcon as S } from "./talk-meter-styled.js";
7
+ import j from "./talk-meter-view/talk-meter-view.js";
8
+ const B = y((m) => {
9
+ const {
10
+ animated: t = !0,
11
+ userType: a,
12
+ teacherId: l,
13
+ studentId: d,
14
+ studentName: h,
15
+ teacherName: T,
16
+ teacherGender: p,
17
+ classStartTime: u,
18
+ canDisplayBatch: f,
19
+ teacherTalkTime: k,
20
+ studentTalkTime: A,
21
+ avPackageEnabled: M,
22
+ teacherClassroomId: N,
23
+ lastBatchReceivedNo: I,
24
+ onDismissMeter: R,
25
+ onMessageReceive: C
26
+ } = m, { canAnimateOut: D, canAnimateIn: r, stdRatio: o, tchRatio: E, handleDismiss: $ } = w({
27
+ userType: a,
28
+ studentId: d,
29
+ teacherId: l,
30
+ classStartTime: u,
31
+ avPackageEnabled: M,
32
+ teacherClassroomId: N,
33
+ teacherTalkTime: k,
34
+ studentTalkTime: A,
35
+ lastBatchReceivedNo: I,
36
+ canDisplayBatch: f,
37
+ onMessageReceive: C,
38
+ onDismissMeter: R
39
+ }), i = v(o), s = a === "TEACHER";
40
+ return /* @__PURE__ */ c(
41
+ x,
42
+ {
43
+ $isTeacher: s,
44
+ $animated: t,
45
+ $canAnimateIn: r,
46
+ $canAnimateOut: D,
47
+ children: [
48
+ t && r && /* @__PURE__ */ c(g, { children: [
49
+ /* @__PURE__ */ e(n, { delay: 800, withAudio: !0, color: i.STUDENT }),
50
+ /* @__PURE__ */ e(n, { delay: 1050, withAudio: !1, color: i.STUDENT })
51
+ ] }),
52
+ /* @__PURE__ */ e(
53
+ j,
54
+ {
55
+ userType: a,
56
+ tchName: T,
57
+ stdName: h,
58
+ tchRatio: E,
59
+ stdRatio: o,
60
+ tchGender: p
61
+ }
62
+ ),
63
+ t && !s && /* @__PURE__ */ e(S, { onClick: $ })
64
+ ]
65
+ }
66
+ );
67
+ }), V = B;
68
+ export {
69
+ V as default
70
+ };
71
+ //# sourceMappingURL=talk-meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talk-meter.js","sources":["../../../src/features/talk-meter/talk-meter.tsx"],"sourcesContent":["import type { ITalkMeterProps } from './talk-meter-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport { getMeterColor } from './helper';\nimport { useTalkMeter } from './hooks/use-talk-meter';\nimport Ripple from './ripple';\nimport * as Styled from './talk-meter-styled';\nimport TalkMeterView from './talk-meter-view/talk-meter-view';\n\nconst TalkMeter: FC<ITalkMeterProps> = memo(props => {\n const {\n animated = true,\n userType,\n teacherId,\n studentId,\n studentName,\n teacherName,\n teacherGender,\n classStartTime,\n canDisplayBatch,\n teacherTalkTime,\n studentTalkTime,\n avPackageEnabled,\n teacherClassroomId,\n lastBatchReceivedNo,\n onDismissMeter,\n onMessageReceive,\n } = props;\n\n const { canAnimateOut, canAnimateIn, stdRatio, tchRatio, handleDismiss } = useTalkMeter({\n userType,\n studentId,\n teacherId,\n classStartTime,\n avPackageEnabled,\n teacherClassroomId,\n teacherTalkTime,\n studentTalkTime,\n lastBatchReceivedNo,\n canDisplayBatch,\n onMessageReceive,\n onDismissMeter,\n });\n\n const colors = getMeterColor(stdRatio);\n const isTeacher = userType === 'TEACHER';\n\n return (\n <Styled.Wrapper\n $isTeacher={isTeacher}\n $animated={animated}\n $canAnimateIn={canAnimateIn}\n $canAnimateOut={canAnimateOut}\n >\n {animated && canAnimateIn && (\n <>\n <Ripple delay={800} withAudio color={colors.STUDENT} />\n <Ripple delay={1050} withAudio={false} color={colors.STUDENT} />\n </>\n )}\n <TalkMeterView\n userType={userType}\n tchName={teacherName}\n stdName={studentName}\n tchRatio={tchRatio}\n stdRatio={stdRatio}\n tchGender={teacherGender}\n />\n {animated && !isTeacher && <Styled.CloseIcon onClick={handleDismiss} />}\n </Styled.Wrapper>\n );\n});\n\nexport default TalkMeter;\n"],"names":["TalkMeter","memo","props","animated","userType","teacherId","studentId","studentName","teacherName","teacherGender","classStartTime","canDisplayBatch","teacherTalkTime","studentTalkTime","avPackageEnabled","teacherClassroomId","lastBatchReceivedNo","onDismissMeter","onMessageReceive","canAnimateOut","canAnimateIn","stdRatio","tchRatio","handleDismiss","useTalkMeter","colors","getMeterColor","isTeacher","jsxs","Styled.Wrapper","Fragment","jsx","Ripple","TalkMeterView","Styled.CloseIcon","TalkMeter$1"],"mappings":";;;;;;;AAWA,MAAMA,IAAiCC,EAAK,CAASC,MAAA;AAC7C,QAAA;AAAA,IACJ,UAAAC,IAAW;AAAA,IACX,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAC;AAAA,EACE,IAAAhB,GAEE,EAAE,eAAAiB,GAAe,cAAAC,GAAc,UAAAC,GAAU,UAAAC,GAAU,eAAAC,MAAkBC,EAAa;AAAA,IACtF,UAAApB;AAAA,IACA,WAAAE;AAAA,IACA,WAAAD;AAAA,IACA,gBAAAK;AAAA,IACA,kBAAAI;AAAA,IACA,oBAAAC;AAAA,IACA,iBAAAH;AAAA,IACA,iBAAAC;AAAA,IACA,qBAAAG;AAAA,IACA,iBAAAL;AAAA,IACA,kBAAAO;AAAA,IACA,gBAAAD;AAAA,EAAA,CACD,GAEKQ,IAASC,EAAcL,CAAQ,GAC/BM,IAAYvB,MAAa;AAG7B,SAAA,gBAAAwB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,YAAYF;AAAA,MACZ,WAAWxB;AAAA,MACX,eAAeiB;AAAA,MACf,gBAAgBD;AAAA,MAEf,UAAA;AAAA,QAAAhB,KAAYiB,KAET,gBAAAQ,EAAAE,GAAA,EAAA,UAAA;AAAA,UAAA,gBAAAC,EAACC,KAAO,OAAO,KAAK,WAAS,IAAC,OAAOP,EAAO,SAAS;AAAA,UACrD,gBAAAM,EAACC,KAAO,OAAO,MAAM,WAAW,IAAO,OAAOP,EAAO,SAAS;AAAA,QAAA,GAChE;AAAA,QAEF,gBAAAM;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,UAAA7B;AAAA,YACA,SAASI;AAAA,YACT,SAASD;AAAA,YACT,UAAAe;AAAA,YACA,UAAAD;AAAA,YACA,WAAWZ;AAAA,UAAA;AAAA,QACb;AAAA,QACCN,KAAY,CAACwB,KAAa,gBAAAI,EAACG,GAAA,EAAiB,SAASX,GAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG3E,CAAC,GAEDY,IAAenC;"}
@@ -1,27 +1,27 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { useCallback as n } from "react";
3
- import p from "../tab/tab.js";
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { useCallback as c } from "react";
3
+ import d from "../tab/tab.js";
4
4
  const u = ({
5
- renderAs: o = "primary",
6
- size: t = "regular",
7
- label: a,
5
+ renderAs: a = "primary",
6
+ size: o = "regular",
7
+ label: t,
8
8
  selected: i,
9
- width: m,
9
+ width: s,
10
10
  onSelect: r,
11
11
  grade: e
12
12
  }) => {
13
- const s = n(() => {
13
+ const l = c(() => {
14
14
  r(e);
15
15
  }, [e, r]);
16
- return /* @__PURE__ */ l(
17
- p,
16
+ return /* @__PURE__ */ m(
17
+ d,
18
18
  {
19
- label: a,
19
+ label: t,
20
20
  $selected: i,
21
- $width: m,
22
- $renderAs: o,
23
- $size: t,
24
- onClick: s
21
+ $width: s,
22
+ $renderAs: a,
23
+ $size: o,
24
+ onClick: l
25
25
  }
26
26
  );
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"grade-tab.js","sources":["../../../../src/features/ui/grade-selector/grade-tab.tsx"],"sourcesContent":["import type { IGradeTabProps } from './grade-selector-types';\n\nimport React, { useCallback } from 'react';\n\nimport Tab from '../tab/tab';\n\nconst GradeTab: React.FC<IGradeTabProps> = ({\n renderAs = 'primary',\n size = 'regular',\n label,\n selected,\n width,\n onSelect,\n grade,\n}) => {\n const handleClick = useCallback(() => {\n onSelect(grade);\n }, [grade, onSelect]);\n\n return (\n <Tab\n label={label}\n $selected={selected}\n $width={width}\n $renderAs={renderAs}\n $size={size}\n onClick={handleClick}\n />\n );\n};\n\nexport default GradeTab;\n"],"names":["GradeTab","renderAs","size","label","selected","width","onSelect","grade","handleClick","useCallback","jsx","Tab"],"mappings":";;;AAMA,MAAMA,IAAqC,CAAC;AAAA,EAC1C,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACE,QAAAC,IAAcC,EAAY,MAAM;AACpC,IAAAH,EAASC,CAAK;AAAA,EAAA,GACb,CAACA,GAAOD,CAAQ,CAAC;AAGlB,SAAA,gBAAAI;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAAR;AAAA,MACA,WAAWC;AAAA,MACX,QAAQC;AAAA,MACR,WAAWJ;AAAA,MACX,OAAOC;AAAA,MACP,SAASM;AAAA,IAAA;AAAA,EAAA;AAGf;"}
1
+ {"version":3,"file":"grade-tab.js","sources":["../../../../src/features/ui/grade-selector/grade-tab.tsx"],"sourcesContent":["import type { IGradeTabProps } from './grade-selector-types';\n\nimport React, { useCallback } from 'react';\n\nimport Tab from '../tab/tab';\n\nconst GradeTab: React.FC<IGradeTabProps> = ({\n renderAs = 'primary',\n size = 'regular',\n label,\n selected,\n width,\n onSelect,\n grade,\n}) => {\n const handleClick = useCallback(() => {\n onSelect(grade);\n }, [grade, onSelect]);\n\n return (\n <Tab\n label={label}\n $selected={selected}\n $width={width}\n $renderAs={renderAs}\n $size={size}\n onClick={handleClick}\n />\n );\n};\n\nexport default GradeTab;\n"],"names":["GradeTab","renderAs","size","label","selected","width","onSelect","grade","handleClick","useCallback","jsx","Tab"],"mappings":";;;AAMA,MAAMA,IAAqC,CAAC;AAAA,EAC1C,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACE,QAAAC,IAAcC,EAAY,MAAM;AACpC,IAAAH,EAASC,CAAK;AAAA,EAAA,GACb,CAACA,GAAOD,CAAQ,CAAC;AAGlB,SAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAR;AAAA,MACA,WAAWC;AAAA,MACX,QAAQC;AAAA,MACR,WAAWJ;AAAA,MACX,OAAOC;AAAA,MACP,SAASM;AAAA,IAAA;AAAA,EAAA;AAGf;"}
@@ -2,19 +2,20 @@ import x from "styled-components";
2
2
  import s from "../layout/flex-view.js";
3
3
  const k = x(s)(({
4
4
  theme: v,
5
+ $width: e,
5
6
  $selected: i,
6
7
  $size: p,
7
- $renderAs: d,
8
- $disabled: r,
9
- $shape: e
8
+ $renderAs: g,
9
+ $disabled: r
10
10
  }) => {
11
- const { colors: o, tab: g, layout: h } = v, { sizes: l, variants: u } = g, { height: b, paddingHorizontal: m } = l[p], { backgroundColorName: t, colorName: a, borderColorName: n, fontWeight: c } = u[d];
11
+ const { colors: o, tab: h, layout: d } = v, { sizes: l, variants: b } = h, { height: u, paddingHorizontal: m } = l[p], { backgroundColorName: t, colorName: a, borderColorName: n, fontWeight: c } = b[g];
12
12
  return `
13
- height:${b}px;
13
+ width: ${e ? `${e}px` : "auto"};
14
+ height:${u}px;
14
15
  padding:0 ${m}px;
16
+ border-radius:8px;
15
17
  cursor:${r ? "not-allowed" : "pointer"};
16
- margin:${e === "square" ? h.gutter * 0.5 : 0}px;
17
- border-radius: ${e === "curved" ? "50px" : "8px"};
18
+ margin:${d.gutter * 0.5}px;
18
19
  border:1px solid ${r ? o[n.disabled] : i ? o[n.active] : o[n.inactive]};
19
20
  background-color: ${r ? o[t.disabled] : i ? o[t.active] : o[t.inactive]};
20
21
  & div{
@@ -1 +1 @@
1
- {"version":3,"file":"tab-styled.js","sources":["../../../../src/features/ui/tab/tab-styled.tsx"],"sourcesContent":["import type { ITabWrapperProps } from './tab-types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\n\nconst TabWrapper = styled(FlexView)<ITabWrapperProps>(({\n theme,\n $selected,\n $size,\n $renderAs,\n $disabled,\n $shape,\n}) => {\n const { colors, tab, layout } = theme;\n const { sizes, variants } = tab;\n const { height, paddingHorizontal } = sizes[$size];\n const { backgroundColorName, colorName, borderColorName, fontWeight } = variants[$renderAs];\n\n return `\n height:${height}px;\n padding:0 ${paddingHorizontal}px;\n cursor:${$disabled ? 'not-allowed' : 'pointer'};\n margin:${$shape === 'square' ? layout.gutter * 0.5 : 0}px;\n border-radius: ${$shape === 'curved' ? '50px' : '8px'};\n border:1px solid ${\n $disabled\n ? colors[borderColorName.disabled]\n : $selected\n ? colors[borderColorName.active]\n : colors[borderColorName.inactive]\n };\n background-color: ${\n $disabled\n ? colors[backgroundColorName.disabled]\n : $selected\n ? colors[backgroundColorName.active]\n : colors[backgroundColorName.inactive]\n };\n & div{\n font-weight:${\n $disabled ? fontWeight.disabled : $selected ? fontWeight.active : fontWeight.inactive\n };\n color: ${\n $disabled\n ? colors[colorName.disabled]\n : $selected\n ? colors[colorName.active]\n : colors[colorName.inactive]\n };\n }\n &:hover {\n background-color:${\n $disabled\n ? colors[backgroundColorName.disabled]\n : $selected\n ? colors[backgroundColorName.active]\n : colors[backgroundColorName.hover]\n };\n border-color: ${\n $disabled\n ? colors[borderColorName.disabled]\n : $selected\n ? colors[borderColorName.active]\n : colors[borderColorName.hover]\n };\n & div{\n font-weight:${fontWeight.hover};\n color:${\n $disabled\n ? colors[colorName.disabled]\n : $selected\n ? colors[colorName.active]\n : colors[colorName.hover]\n };\n } \n }\n `;\n});\n\nexport { TabWrapper };\n"],"names":["TabWrapper","styled","FlexView","theme","$selected","$size","$renderAs","$disabled","$shape","colors","tab","layout","sizes","variants","height","paddingHorizontal","backgroundColorName","colorName","borderColorName","fontWeight"],"mappings":";;AAMA,MAAMA,IAAaC,EAAOC,CAAQ,EAAoB,CAAC;AAAA,EACrD,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACJ,QAAM,EAAE,QAAAC,GAAQ,KAAAC,GAAK,QAAAC,EAAA,IAAWR,GAC1B,EAAE,OAAAS,GAAO,UAAAC,EAAa,IAAAH,GACtB,EAAE,QAAAI,GAAQ,mBAAAC,EAAkB,IAAIH,EAAMP,CAAK,GAC3C,EAAE,qBAAAW,GAAqB,WAAAC,GAAW,iBAAAC,GAAiB,YAAAC,MAAeN,EAASP,CAAS;AAEnF,SAAA;AAAA,eACMQ,CAAM;AAAA,kBACHC,CAAiB;AAAA,eACpBR,IAAY,gBAAgB,SAAS;AAAA,eACrCC,MAAW,WAAWG,EAAO,SAAS,MAAM,CAAC;AAAA,uBACrCH,MAAW,WAAW,SAAS,KAAK;AAAA,yBAEnDD,IACIE,EAAOS,EAAgB,QAAQ,IAC/Bd,IACEK,EAAOS,EAAgB,MAAM,IAC7BT,EAAOS,EAAgB,QAAQ,CACvC;AAAA,0BAEEX,IACIE,EAAOO,EAAoB,QAAQ,IACnCZ,IACEK,EAAOO,EAAoB,MAAM,IACjCP,EAAOO,EAAoB,QAAQ,CAC3C;AAAA;AAAA,sBAGIT,IAAYY,EAAW,WAAWf,IAAYe,EAAW,SAASA,EAAW,QAC/E;AAAA,iBAEEZ,IACIE,EAAOQ,EAAU,QAAQ,IACzBb,IACEK,EAAOQ,EAAU,MAAM,IACvBR,EAAOQ,EAAU,QAAQ,CACjC;AAAA;AAAA;AAAA,2BAIEV,IACIE,EAAOO,EAAoB,QAAQ,IACnCZ,IACEK,EAAOO,EAAoB,MAAM,IACjCP,EAAOO,EAAoB,KAAK,CACxC;AAAA,wBAEET,IACIE,EAAOS,EAAgB,QAAQ,IAC/Bd,IACEK,EAAOS,EAAgB,MAAM,IAC7BT,EAAOS,EAAgB,KAAK,CACpC;AAAA;AAAA,wBAEgBC,EAAW,KAAK;AAAA,kBAE5BZ,IACIE,EAAOQ,EAAU,QAAQ,IACzBb,IACEK,EAAOQ,EAAU,MAAM,IACvBR,EAAOQ,EAAU,KAAK,CAC9B;AAAA;AAAA;AAAA;AAIV,CAAC;"}
1
+ {"version":3,"file":"tab-styled.js","sources":["../../../../src/features/ui/tab/tab-styled.tsx"],"sourcesContent":["import type { ITabWrapperProps } from './tab-types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\n\nconst TabWrapper = styled(FlexView)<ITabWrapperProps>(({\n theme,\n $width,\n $selected,\n $size,\n $renderAs,\n $disabled,\n}) => {\n const { colors, tab, layout } = theme;\n const { sizes, variants } = tab;\n const { height, paddingHorizontal } = sizes[$size];\n const { backgroundColorName, colorName, borderColorName, fontWeight } = variants[$renderAs];\n\n return `\n width: ${$width ? `${$width}px` : 'auto'};\n height:${height}px;\n padding:0 ${paddingHorizontal}px;\n border-radius:8px;\n cursor:${$disabled ? 'not-allowed' : 'pointer'};\n margin:${layout.gutter * 0.5}px;\n border:1px solid ${\n $disabled\n ? colors[borderColorName.disabled]\n : $selected\n ? colors[borderColorName.active]\n : colors[borderColorName.inactive]\n };\n background-color: ${\n $disabled\n ? colors[backgroundColorName.disabled]\n : $selected\n ? colors[backgroundColorName.active]\n : colors[backgroundColorName.inactive]\n };\n & div{\n font-weight:${\n $disabled ? fontWeight.disabled : $selected ? fontWeight.active : fontWeight.inactive\n };\n color: ${\n $disabled\n ? colors[colorName.disabled]\n : $selected\n ? colors[colorName.active]\n : colors[colorName.inactive]\n };\n }\n &:hover {\n background-color:${\n $disabled\n ? colors[backgroundColorName.disabled]\n : $selected\n ? colors[backgroundColorName.active]\n : colors[backgroundColorName.hover]\n };\n border-color: ${\n $disabled\n ? colors[borderColorName.disabled]\n : $selected\n ? colors[borderColorName.active]\n : colors[borderColorName.hover]\n };\n & div{\n font-weight:${fontWeight.hover};\n color:${\n $disabled\n ? colors[colorName.disabled]\n : $selected\n ? colors[colorName.active]\n : colors[colorName.hover]\n };\n } \n }\n `;\n});\n\nexport { TabWrapper };\n"],"names":["TabWrapper","styled","FlexView","theme","$width","$selected","$size","$renderAs","$disabled","colors","tab","layout","sizes","variants","height","paddingHorizontal","backgroundColorName","colorName","borderColorName","fontWeight"],"mappings":";;AAMA,MAAMA,IAAaC,EAAOC,CAAQ,EAAoB,CAAC;AAAA,EACrD,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAM,EAAE,QAAAC,GAAQ,KAAAC,GAAK,QAAAC,EAAA,IAAWR,GAC1B,EAAE,OAAAS,GAAO,UAAAC,EAAa,IAAAH,GACtB,EAAE,QAAAI,GAAQ,mBAAAC,EAAkB,IAAIH,EAAMN,CAAK,GAC3C,EAAE,qBAAAU,GAAqB,WAAAC,GAAW,iBAAAC,GAAiB,YAAAC,MAAeN,EAASN,CAAS;AAEnF,SAAA;AAAA,eACMH,IAAS,GAAGA,CAAM,OAAO,MAAM;AAAA,eAC/BU,CAAM;AAAA,kBACHC,CAAiB;AAAA;AAAA,eAEpBP,IAAY,gBAAgB,SAAS;AAAA,eACrCG,EAAO,SAAS,GAAG;AAAA,yBAE1BH,IACIC,EAAOS,EAAgB,QAAQ,IAC/Bb,IACEI,EAAOS,EAAgB,MAAM,IAC7BT,EAAOS,EAAgB,QAAQ,CACvC;AAAA,0BAEEV,IACIC,EAAOO,EAAoB,QAAQ,IACnCX,IACEI,EAAOO,EAAoB,MAAM,IACjCP,EAAOO,EAAoB,QAAQ,CAC3C;AAAA;AAAA,sBAGIR,IAAYW,EAAW,WAAWd,IAAYc,EAAW,SAASA,EAAW,QAC/E;AAAA,iBAEEX,IACIC,EAAOQ,EAAU,QAAQ,IACzBZ,IACEI,EAAOQ,EAAU,MAAM,IACvBR,EAAOQ,EAAU,QAAQ,CACjC;AAAA;AAAA;AAAA,2BAIET,IACIC,EAAOO,EAAoB,QAAQ,IACnCX,IACEI,EAAOO,EAAoB,MAAM,IACjCP,EAAOO,EAAoB,KAAK,CACxC;AAAA,wBAEER,IACIC,EAAOS,EAAgB,QAAQ,IAC/Bb,IACEI,EAAOS,EAAgB,MAAM,IAC7BT,EAAOS,EAAgB,KAAK,CACpC;AAAA;AAAA,wBAEgBC,EAAW,KAAK;AAAA,kBAE5BX,IACIC,EAAOQ,EAAU,QAAQ,IACzBZ,IACEI,EAAOQ,EAAU,MAAM,IACvBR,EAAOQ,EAAU,KAAK,CAC9B;AAAA;AAAA;AAAA;AAIV,CAAC;"}
@@ -1,40 +1,35 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { memo as c } from "react";
3
- import { useTheme as f } from "styled-components";
4
- import u from "../text/text.js";
5
- import { TabWrapper as T } from "./tab-styled.js";
6
- const l = c(
7
- ({
8
- $renderAs: o = "primary",
9
- $size: r = "regular",
10
- label: m,
11
- $selected: t,
12
- $width: n,
13
- $disabled: a,
14
- onClick: p,
15
- shape: i = "square"
16
- }) => {
17
- const {
18
- tab: { sizes: s }
19
- } = f();
20
- return /* @__PURE__ */ e(
21
- T,
22
- {
23
- $selected: t,
24
- $width: n,
25
- onClick: p,
26
- $size: r,
27
- $renderAs: o,
28
- $disabled: a,
29
- $justifyContent: "center",
30
- $alignItems: "center",
31
- $shape: i,
32
- children: /* @__PURE__ */ e(u, { $renderAs: s[r].textVariant, color: t ? "WHITE" : "BLACK", children: m })
33
- }
34
- );
35
- }
36
- ), $ = l;
2
+ import { useTheme as s } from "styled-components";
3
+ import c from "../text/text.js";
4
+ import { TabWrapper as f } from "./tab-styled.js";
5
+ const T = ({
6
+ $renderAs: o = "primary",
7
+ $size: r = "regular",
8
+ label: n,
9
+ $selected: t,
10
+ $width: a,
11
+ $disabled: m,
12
+ onClick: i
13
+ }) => {
14
+ const {
15
+ tab: { sizes: p }
16
+ } = s();
17
+ return /* @__PURE__ */ e(
18
+ f,
19
+ {
20
+ $selected: t,
21
+ $width: a,
22
+ onClick: i,
23
+ $size: r,
24
+ $renderAs: o,
25
+ $disabled: m,
26
+ $justifyContent: "center",
27
+ $alignItems: "center",
28
+ children: /* @__PURE__ */ e(c, { $renderAs: p[r].textVariant, color: t ? "WHITE" : "BLACK", children: n })
29
+ }
30
+ );
31
+ }, d = T;
37
32
  export {
38
- $ as default
33
+ d as default
39
34
  };
40
35
  //# sourceMappingURL=tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/tab/tab.tsx"],"sourcesContent":["import type { ITabProps } from './tab-types';\n\nimport React, { memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Text from '../text/text';\nimport * as Styled from './tab-styled';\n\nconst TabComponent: React.FC<ITabProps> = memo(\n ({\n $renderAs = 'primary',\n $size = 'regular',\n label,\n $selected,\n $width,\n $disabled,\n onClick,\n shape = 'square',\n }) => {\n const {\n tab: { sizes },\n } = useTheme();\n\n return (\n <Styled.TabWrapper\n $selected={$selected}\n $width={$width}\n onClick={onClick}\n $size={$size}\n $renderAs={$renderAs}\n $disabled={$disabled}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $shape={shape}\n >\n <Text $renderAs={sizes[$size].textVariant} color={$selected ? 'WHITE' : 'BLACK'}>\n {label}\n </Text>\n </Styled.TabWrapper>\n );\n },\n);\n\nexport default TabComponent;\n"],"names":["TabComponent","memo","$renderAs","$size","label","$selected","$width","$disabled","onClick","shape","sizes","useTheme","jsx","Styled.TabWrapper","Text","TabComponent$1"],"mappings":";;;;;AAQA,MAAMA,IAAoCC;AAAA,EACxC,CAAC;AAAA,IACC,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,EAAA,MACJ;AACE,UAAA;AAAA,MACJ,KAAK,EAAE,OAAAC,EAAM;AAAA,QACXC,EAAS;AAGX,WAAA,gBAAAC;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,WAAAR;AAAA,QACA,QAAAC;AAAA,QACA,SAAAE;AAAA,QACA,OAAAL;AAAA,QACA,WAAAD;AAAA,QACA,WAAAK;AAAA,QACA,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,QAAQE;AAAA,QAER,UAAA,gBAAAG,EAACE,GAAK,EAAA,WAAWJ,EAAMP,CAAK,EAAE,aAAa,OAAOE,IAAY,UAAU,SACrE,UACHD,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF,GAEAW,IAAef;"}
1
+ {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/tab/tab.tsx"],"sourcesContent":["import type { ITabProps } from './tab-types';\n\nimport React from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Text from '../text/text';\nimport * as Styled from './tab-styled';\n\nconst TabComponent: React.FC<ITabProps> = ({\n $renderAs = 'primary',\n $size = 'regular',\n label,\n $selected,\n $width,\n $disabled,\n onClick,\n}) => {\n const {\n tab: { sizes },\n } = useTheme();\n\n return (\n <Styled.TabWrapper\n $selected={$selected}\n $width={$width}\n onClick={onClick}\n $size={$size}\n $renderAs={$renderAs}\n $disabled={$disabled}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Text $renderAs={sizes[$size].textVariant} color={$selected ? 'WHITE' : 'BLACK'}>\n {label}\n </Text>\n </Styled.TabWrapper>\n );\n};\n\nexport default TabComponent;\n"],"names":["TabComponent","$renderAs","$size","label","$selected","$width","$disabled","onClick","sizes","useTheme","jsx","Styled.TabWrapper","Text","Tab"],"mappings":";;;;AAQA,MAAMA,IAAoC,CAAC;AAAA,EACzC,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACE,QAAA;AAAA,IACJ,KAAK,EAAE,OAAAC,EAAM;AAAA,MACXC,EAAS;AAGX,SAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAAP;AAAA,MACA,QAAAC;AAAA,MACA,SAAAE;AAAA,MACA,OAAAL;AAAA,MACA,WAAAD;AAAA,MACA,WAAAK;AAAA,MACA,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEZ,UAAA,gBAAAI,EAACE,GAAK,EAAA,WAAWJ,EAAMN,CAAK,EAAE,aAAa,OAAOE,IAAY,UAAU,SACrE,UACHD,EAAA,CAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEAU,IAAeb;"}
@@ -6,7 +6,7 @@ const o = (a) => ({ sizes: {
6
6
  },
7
7
  small: {
8
8
  height: a * 2,
9
- paddingHorizontal: a * 0.75,
9
+ paddingHorizontal: a * 0.5,
10
10
  textVariant: "body2"
11
11
  },
12
12
  regular: {
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/theme/tab.ts"],"sourcesContent":["import type { ITabSizeConfig, ITabVariantConfig, TTabSizes, TTabVariants } from '../types';\n\ninterface IGetTabConfig {\n (gutter: number): {\n sizes: Record<TTabSizes, ITabSizeConfig>;\n variants: Record<TTabVariants, ITabVariantConfig>;\n };\n}\n\nconst getTabConfig: IGetTabConfig = (gutter: number) => {\n const sizes: Record<TTabSizes, ITabSizeConfig> = {\n xsmall: {\n height: gutter * 1.625,\n paddingHorizontal: gutter * 0.5,\n textVariant: 'body3',\n },\n small: {\n height: gutter * 2,\n paddingHorizontal: gutter * 0.75,\n textVariant: 'body2',\n },\n regular: {\n height: gutter * 2.5,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n medium: {\n height: gutter * 3,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n };\n\n const variants: Record<TTabVariants, ITabVariantConfig> = {\n primary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'BLACK',\n hover: 'WHITE',\n disabled: 'GREY_1',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n hover: 'BLACK',\n disabled: 'BLACK_50',\n },\n borderColorName: {\n inactive: 'GREY_3',\n active: 'BLACK',\n hover: 'BLACK',\n disabled: 'GREY_1',\n },\n fontWeight: {\n inactive: 400,\n active: 500,\n hover: 500,\n disabled: 400,\n },\n },\n };\n\n return { sizes, variants };\n};\n\nexport default getTabConfig;\n"],"names":["getTabConfig","gutter"],"mappings":"AASM,MAAAA,IAA8B,CAACC,OAqD5B,EAAE,OApDwC;AAAA,EAC/C,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,GAgCc,UA7B0C;AAAA,EACxD,SAAS;AAAA,IACP,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;"}
1
+ {"version":3,"file":"tab.js","sources":["../../../../src/features/ui/theme/tab.ts"],"sourcesContent":["import type { ITabSizeConfig, ITabVariantConfig, TTabSizes, TTabVariants } from '../types';\n\ninterface IGetTabConfig {\n (gutter: number): {\n sizes: Record<TTabSizes, ITabSizeConfig>;\n variants: Record<TTabVariants, ITabVariantConfig>;\n };\n}\n\nconst getTabConfig: IGetTabConfig = (gutter: number) => {\n const sizes: Record<TTabSizes, ITabSizeConfig> = {\n xsmall: {\n height: gutter * 1.625,\n paddingHorizontal: gutter * 0.5,\n textVariant: 'body3',\n },\n small: {\n height: gutter * 2,\n paddingHorizontal: gutter * 0.5,\n textVariant: 'body2',\n },\n regular: {\n height: gutter * 2.5,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n medium: {\n height: gutter * 3,\n paddingHorizontal: gutter,\n textVariant: 'body1',\n },\n };\n\n const variants: Record<TTabVariants, ITabVariantConfig> = {\n primary: {\n backgroundColorName: {\n inactive: 'WHITE',\n active: 'BLACK',\n hover: 'WHITE',\n disabled: 'GREY_1',\n },\n colorName: {\n inactive: 'BLACK',\n active: 'WHITE',\n hover: 'BLACK',\n disabled: 'BLACK_50',\n },\n borderColorName: {\n inactive: 'GREY_3',\n active: 'BLACK',\n hover: 'BLACK',\n disabled: 'GREY_1',\n },\n fontWeight: {\n inactive: 400,\n active: 500,\n hover: 500,\n disabled: 400,\n },\n },\n };\n\n return { sizes, variants };\n};\n\nexport default getTabConfig;\n"],"names":["getTabConfig","gutter"],"mappings":"AASM,MAAAA,IAA8B,CAACC,OAqD5B,EAAE,OApDwC;AAAA,EAC/C,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,QAAQA,IAAS;AAAA,IACjB,mBAAmBA,IAAS;AAAA,IAC5B,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,QAAQA,IAAS;AAAA,IACjB,mBAAmBA;AAAA,IACnB,aAAa;AAAA,EACf;AAAA,GAgCc,UA7B0C;AAAA,EACxD,SAAS;AAAA,IACP,qBAAqB;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;"}