@cuemath/leap 3.2.15-link.0 → 3.2.15

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 (154) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -6
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/cue-board-filled.js +33 -0
  4. package/dist/assets/line-icons/icons/cue-board-filled.js.map +1 -0
  5. package/dist/assets/line-icons/icons/cue-board.js +23 -0
  6. package/dist/assets/line-icons/icons/cue-board.js.map +1 -0
  7. package/dist/assets/line-icons/icons/hint-fill.js +35 -0
  8. package/dist/assets/line-icons/icons/hint-fill.js.map +1 -0
  9. package/dist/assets/line-icons/icons/screen-grab-filled.js +35 -0
  10. package/dist/assets/line-icons/icons/screen-grab-filled.js.map +1 -0
  11. package/dist/assets/line-icons/icons/screen-grab.js +23 -0
  12. package/dist/assets/line-icons/icons/screen-grab.js.map +1 -0
  13. package/dist/assets/line-icons/icons/sticker-filled.js +64 -0
  14. package/dist/assets/line-icons/icons/sticker-filled.js.map +1 -0
  15. package/dist/assets/line-icons/icons/sticker.js +46 -0
  16. package/dist/assets/line-icons/icons/sticker.js.map +1 -0
  17. package/dist/assets/lottie/lottie.js +1 -11
  18. package/dist/assets/lottie/lottie.js.map +1 -1
  19. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +13 -18
  20. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  21. package/dist/features/auth/comps/resend-otp/resend-otp.js +47 -54
  22. package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
  23. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js +17 -29
  24. package/dist/features/auth/comps/tabs/tab-tem/tab-item.js.map +1 -1
  25. package/dist/features/auth/comps/tabs/tabs-styled.js +10 -22
  26. package/dist/features/auth/comps/tabs/tabs-styled.js.map +1 -1
  27. package/dist/features/auth/comps/tabs/tabs.js +5 -5
  28. package/dist/features/auth/comps/tabs/tabs.js.map +1 -1
  29. package/dist/features/chapters-v2/utils/node-card-utils.js +7 -7
  30. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  31. package/dist/features/journey/comps/coachmark/coachmark.js +29 -28
  32. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  33. package/dist/features/journey/journey-id/journey-id-student.js +2 -2
  34. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  35. package/dist/features/journey/use-journey/journey-context-provider.js +73 -72
  36. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  37. package/dist/features/journey/use-journey/journey-styled.js +6 -4
  38. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  39. package/dist/features/puzzles/app/puzzle-app-styled.js +81 -0
  40. package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -0
  41. package/dist/features/puzzles/app/puzzle-app-view.js +120 -0
  42. package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -0
  43. package/dist/features/puzzles/app/puzzle-app.js +62 -0
  44. package/dist/features/puzzles/app/puzzle-app.js.map +1 -0
  45. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js +50 -7
  46. package/dist/features/trial-session/comps/teacher-intro/teacher-intro-styled.js.map +1 -1
  47. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js +69 -15
  48. package/dist/features/trial-session/comps/teacher-intro/teacher-intro.js.map +1 -1
  49. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js +6 -0
  50. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js.map +1 -0
  51. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +12 -60
  52. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
  53. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +72 -77
  54. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  55. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js +63 -0
  56. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -0
  57. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js +21 -0
  58. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -0
  59. package/dist/features/ui/image/image.js +1 -1
  60. package/dist/features/ui/image/image.js.map +1 -1
  61. package/dist/features/ui/inputs/base-input/base-input.js +11 -11
  62. package/dist/features/ui/inputs/base-input/base-input.js.map +1 -1
  63. package/dist/features/ui/inputs/text-input/text-input.js +18 -19
  64. package/dist/features/ui/inputs/text-input/text-input.js.map +1 -1
  65. package/dist/features/ui/modals/modal-styled.js +8 -43
  66. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  67. package/dist/features/ui/modals/modal.js +27 -37
  68. package/dist/features/ui/modals/modal.js.map +1 -1
  69. package/dist/features/ui/nudge/nudge-styled.js +14 -7
  70. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  71. package/dist/features/ui/nudge/nudge.js +13 -12
  72. package/dist/features/ui/nudge/nudge.js.map +1 -1
  73. package/dist/features/ui/text/text.js +29 -31
  74. package/dist/features/ui/text/text.js.map +1 -1
  75. package/dist/features/ui/theme/button.js +78 -78
  76. package/dist/features/ui/theme/button.js.map +1 -1
  77. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +24 -24
  78. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  79. package/dist/index.d.ts +38 -151
  80. package/dist/index.js +516 -530
  81. package/dist/index.js.map +1 -1
  82. package/dist/static/nudge-tap.0591aef4.json +1 -0
  83. package/package.json +3 -2
  84. package/dist/assets/line-icons/icons/after-noon.js +0 -34
  85. package/dist/assets/line-icons/icons/after-noon.js.map +0 -1
  86. package/dist/assets/line-icons/icons/apple-icon-white.js +0 -42
  87. package/dist/assets/line-icons/icons/apple-icon-white.js.map +0 -1
  88. package/dist/assets/line-icons/icons/evening.js +0 -35
  89. package/dist/assets/line-icons/icons/evening.js.map +0 -1
  90. package/dist/assets/line-icons/icons/morning.js +0 -35
  91. package/dist/assets/line-icons/icons/morning.js.map +0 -1
  92. package/dist/assets/line-icons/icons/star3.js +0 -32
  93. package/dist/assets/line-icons/icons/star3.js.map +0 -1
  94. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +0 -9
  95. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +0 -1
  96. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +0 -65
  97. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +0 -1
  98. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +0 -92
  99. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +0 -1
  100. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js +0 -12
  101. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar-styled.js.map +0 -1
  102. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js +0 -34
  103. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +0 -1
  104. package/dist/features/auth/comps/otp-input/otp-input-styled.js +0 -22
  105. package/dist/features/auth/comps/otp-input/otp-input-styled.js.map +0 -1
  106. package/dist/features/auth/comps/otp-input/otp-input.js +0 -51
  107. package/dist/features/auth/comps/otp-input/otp-input.js.map +0 -1
  108. package/dist/features/auth/comps/pill-button/pill-button-styled.js +0 -44
  109. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +0 -1
  110. package/dist/features/auth/comps/pill-button/pill-button.js +0 -75
  111. package/dist/features/auth/comps/pill-button/pill-button.js.map +0 -1
  112. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js +0 -17
  113. package/dist/features/auth/comps/selectable-info-card/selectable-info-card-styled.js.map +0 -1
  114. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js +0 -67
  115. package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +0 -1
  116. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-constants.js +0 -19
  117. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-constants.js.map +0 -1
  118. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-styled.js +0 -32
  119. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide-styled.js.map +0 -1
  120. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide.js +0 -44
  121. package/dist/features/auth/signup-v2/onboarding-guide/onboarding-guide.js.map +0 -1
  122. package/dist/features/auth/signup-v2/signup-header/signup-header.js +0 -54
  123. package/dist/features/auth/signup-v2/signup-header/signup-header.js.map +0 -1
  124. package/dist/features/auth/signup-v2/signup-options/signup-options.js +0 -83
  125. package/dist/features/auth/signup-v2/signup-options/signup-options.js.map +0 -1
  126. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +0 -49
  127. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +0 -1
  128. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +0 -64
  129. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +0 -1
  130. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js +0 -28
  131. package/dist/features/ui/accordion/accordion-items/accordion-items-styled.js.map +0 -1
  132. package/dist/features/ui/accordion/accordion-items/accordion-items.js +0 -83
  133. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +0 -1
  134. package/dist/features/ui/accordion/accordion.js +0 -62
  135. package/dist/features/ui/accordion/accordion.js.map +0 -1
  136. package/dist/static/animated-avatar.1ad58b1d.json +0 -1
  137. package/dist/static/animated-avatar.69b07505.json +0 -1
  138. package/dist/static/animated-avatar.9c560b46.json +0 -1
  139. package/dist/static/calendar-purple.1a840b41.svg +0 -1
  140. package/dist/static/flying-disk.c7f6ed39.json +0 -1
  141. package/dist/static/graduation-cap.3be3340a.json +0 -1
  142. package/dist/static/handshake.287e7dfb.svg +0 -1
  143. package/dist/static/light-bulb.c6db0b23.json +0 -1
  144. package/dist/static/money.332aacf1.svg +0 -1
  145. package/dist/static/muscle.9bcfb8a7.json +0 -1
  146. package/dist/static/nudge-tap.5cb30093.json +0 -1057
  147. package/dist/static/parent-avatar.822c7b9b.svg +0 -1
  148. package/dist/static/pencil.23df9da0.json +0 -1
  149. package/dist/static/plus-sign.de6af957.json +0 -1
  150. package/dist/static/racing-car.2cbf864e.json +0 -1
  151. package/dist/static/rocket.0a3ccab0.json +0 -1
  152. package/dist/static/shovel.abeec04c.json +0 -1
  153. package/dist/static/stripe-blurple.6abf422f.svg +0 -1
  154. package/dist/static/trustpilot.bd3d79e1.svg +0 -1
@@ -1,72 +1,65 @@
1
- import { jsx as r, jsxs as n, Fragment as C } from "react/jsx-runtime";
2
- import { memo as g, useCallback as f } from "react";
3
- import w from "../../../ui/buttons/button/button.js";
4
- import $ from "../../../ui/buttons/text-button/text-button.js";
5
- import m from "../../../ui/layout/flex-view.js";
6
- import a from "../../../ui/text/text.js";
7
- import { useResendTimer as A } from "./hooks/use-resend-timer.js";
1
+ import { jsx as e, jsxs as n, Fragment as _ } from "react/jsx-runtime";
2
+ import { memo as x, useCallback as a } from "react";
3
+ import k from "../../../ui/buttons/button/button.js";
4
+ import u from "../../../ui/buttons/text-button/text-button.js";
5
+ import i from "../../../ui/layout/flex-view.js";
6
+ import c from "../../../ui/text/text.js";
7
+ import { useResendTimer as C } from "./hooks/use-resend-timer.js";
8
8
  const I = ({
9
- onResendOTP: l,
10
- onResendVoiceOTP: i,
11
- timerSeconds: h = 15,
12
- showVoiceOTP: p = !1,
13
- disabled: o,
14
- renderAs: x = "text",
15
- width: k,
16
- textButtonColor: s = "WHITE_T_60",
17
- size: d = "small"
9
+ onResendOTP: r,
10
+ onResendVoiceOTP: l,
11
+ timerSeconds: f = 15,
12
+ showVoiceOTP: $ = !1,
13
+ disabled: m,
14
+ renderAs: h = "text",
15
+ width: p
18
16
  }) => {
19
- const { canResend: c, resetTimer: t, timeLeft: u } = A({
20
- initialSeconds: h
21
- }), b = f(() => {
17
+ const { canResend: o, resetTimer: t, timeLeft: s } = C({
18
+ initialSeconds: f
19
+ }), d = a(() => {
20
+ r == null || r(), t();
21
+ }, [r, t]), b = a(() => {
22
22
  l == null || l(), t();
23
- }, [l, t]), _ = f(() => {
24
- i == null || i(), t();
25
- }, [i, t]);
26
- if (x === "submit")
27
- return /* @__PURE__ */ r(
28
- w,
23
+ }, [l, t]);
24
+ return h === "submit" ? /* @__PURE__ */ e(
25
+ k,
26
+ {
27
+ size: "small",
28
+ renderAs: "secondary-dark",
29
+ type: "submit",
30
+ label: o ? "Resend" : `Resend in ${s}`,
31
+ width: p,
32
+ onClick: d,
33
+ disabled: !o || m
34
+ }
35
+ ) : /* @__PURE__ */ e(i, { children: o ? /* @__PURE__ */ n(i, { $flexDirection: "row", $alignItems: "center", $flexColumnGapX: 0.5, children: [
36
+ /* @__PURE__ */ e(
37
+ u,
29
38
  {
30
- size: d,
31
- renderAs: "secondary-dark",
32
- type: "submit",
33
- label: c ? "Resend" : `Resend in ${u}`,
34
- width: k,
35
- onClick: b,
36
- disabled: !c || o
37
- }
38
- );
39
- const e = d === "xsmall";
40
- return /* @__PURE__ */ r(m, { children: c ? /* @__PURE__ */ n(m, { $flexDirection: "row", $alignItems: "center", $flexColumnGapX: 0.5, children: [
41
- /* @__PURE__ */ r(
42
- $,
43
- {
44
- disabled: o,
39
+ disabled: m,
45
40
  label: "Resend",
46
- size: e ? "small" : "regular",
47
- color: s,
48
- onClick: b
41
+ color: "WHITE_T_60",
42
+ onClick: d
49
43
  }
50
44
  ),
51
- p && /* @__PURE__ */ n(C, { children: [
52
- /* @__PURE__ */ r(a, { $renderAs: e ? "ub3" : "ub2", $color: s, children: "or" }),
53
- /* @__PURE__ */ r(m, { $width: 116, children: /* @__PURE__ */ r(
54
- $,
45
+ $ && /* @__PURE__ */ n(_, { children: [
46
+ /* @__PURE__ */ e(c, { $renderAs: "ub2", $color: "WHITE_T_60", children: "or" }),
47
+ /* @__PURE__ */ e(i, { $width: 116, children: /* @__PURE__ */ e(
48
+ u,
55
49
  {
56
50
  label: "Get code via call",
57
- size: e ? "small" : "regular",
58
- color: s,
59
- onClick: _
51
+ color: "WHITE_T_60",
52
+ onClick: b
60
53
  }
61
54
  ) })
62
55
  ] })
63
- ] }) : /* @__PURE__ */ r(m, { $width: 105, children: /* @__PURE__ */ n(a, { $renderAs: e ? "ub3" : "ub2", $color: "WHITE_T_60", children: [
56
+ ] }) : /* @__PURE__ */ e(i, { $width: 105, children: /* @__PURE__ */ n(c, { $renderAs: "ub2", $color: "WHITE_T_60", children: [
64
57
  "Resend in",
65
58
  " ",
66
- /* @__PURE__ */ r(a, { $renderAs: e ? "ub3-bold" : "ub2-bold", $inline: !0, $color: "WHITE_T_60", children: u })
59
+ /* @__PURE__ */ e(c, { $renderAs: "ub2-bold", $inline: !0, $color: "WHITE_T_60", children: s })
67
60
  ] }) }) });
68
- }, F = g(I);
61
+ }, j = x(I);
69
62
  export {
70
- F as default
63
+ j as default
71
64
  };
72
65
  //# sourceMappingURL=resend-otp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resend-otp.js","sources":["../../../../../src/features/auth/comps/resend-otp/resend-otp.tsx"],"sourcesContent":["import type { IOTPResendProps } from './resend-otp-types';\n\nimport { useCallback, memo } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useResendTimer } from './hooks/use-resend-timer';\n\nconst ResendOTP: React.FC<IOTPResendProps> = ({\n onResendOTP,\n onResendVoiceOTP,\n timerSeconds = 15,\n showVoiceOTP = false,\n disabled,\n renderAs = 'text',\n width,\n textButtonColor = 'WHITE_T_60',\n size = 'small',\n}) => {\n const { canResend, resetTimer, timeLeft } = useResendTimer({\n initialSeconds: timerSeconds,\n });\n\n const handleResendClick = useCallback(() => {\n onResendOTP?.();\n resetTimer();\n }, [onResendOTP, resetTimer]);\n\n const handleVoiceResendClick = useCallback(() => {\n onResendVoiceOTP?.();\n resetTimer();\n }, [onResendVoiceOTP, resetTimer]);\n\n if (renderAs === 'submit') {\n return (\n <Button\n size={size}\n renderAs=\"secondary-dark\"\n type=\"submit\"\n label={canResend ? 'Resend' : `Resend in ${timeLeft}`}\n width={width}\n onClick={handleResendClick}\n disabled={!canResend || disabled}\n />\n );\n }\n\n const isXSmallSize = size === 'xsmall';\n\n return (\n <FlexView>\n {!canResend ? (\n <FlexView $width={105}>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color=\"WHITE_T_60\">\n Resend in{' '}\n <Text $renderAs={isXSmallSize ? 'ub3-bold' : 'ub2-bold'} $inline $color=\"WHITE_T_60\">\n {timeLeft}\n </Text>\n </Text>\n </FlexView>\n ) : (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexColumnGapX={0.5}>\n <TextButton\n disabled={disabled}\n label=\"Resend\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleResendClick}\n />\n {showVoiceOTP && (\n <>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color={textButtonColor}>\n or\n </Text>\n <FlexView $width={116}>\n <TextButton\n label=\"Get code via call\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleVoiceResendClick}\n />\n </FlexView>\n </>\n )}\n </FlexView>\n )}\n </FlexView>\n );\n};\n\nexport default memo(ResendOTP);\n"],"names":["ResendOTP","onResendOTP","onResendVoiceOTP","timerSeconds","showVoiceOTP","disabled","renderAs","width","textButtonColor","size","canResend","resetTimer","timeLeft","useResendTimer","handleResendClick","useCallback","handleVoiceResendClick","jsx","Button","isXSmallSize","FlexView","jsxs","TextButton","Fragment","Text","ResendOtp","memo"],"mappings":";;;;;;;AAUA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,MAAAC,IAAO;AACT,MAAM;AACJ,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,UAAAC,EAAA,IAAaC,EAAe;AAAA,IACzD,gBAAgBV;AAAA,EAAA,CACjB,GAEKW,IAAoBC,EAAY,MAAM;AAC5B,IAAAd,KAAA,QAAAA,KACHU;EAAA,GACV,CAACV,GAAaU,CAAU,CAAC,GAEtBK,IAAyBD,EAAY,MAAM;AAC5B,IAAAb,KAAA,QAAAA,KACRS;EAAA,GACV,CAACT,GAAkBS,CAAU,CAAC;AAEjC,MAAIL,MAAa;AAEb,WAAA,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAT;AAAA,QACA,UAAS;AAAA,QACT,MAAK;AAAA,QACL,OAAOC,IAAY,WAAW,aAAaE,CAAQ;AAAA,QACnD,OAAAL;AAAA,QACA,SAASO;AAAA,QACT,UAAU,CAACJ,KAAaL;AAAA,MAAA;AAAA,IAAA;AAK9B,QAAMc,IAAeV,MAAS;AAE9B,SACG,gBAAAQ,EAAAG,GAAA,EACE,UAACV,IAUC,gBAAAW,EAAAD,GAAA,EAAS,gBAAe,OAAM,aAAY,UAAS,iBAAiB,KACnE,UAAA;AAAA,IAAA,gBAAAH;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,UAAAjB;AAAA,QACA,OAAM;AAAA,QACN,MAAMc,IAAe,UAAU;AAAA,QAC/B,OAAOX;AAAA,QACP,SAASM;AAAA,MAAA;AAAA,IACX;AAAA,IACCV,KAEG,gBAAAiB,EAAAE,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAN,EAACO,KAAK,WAAWL,IAAe,QAAQ,OAAO,QAAQX,GAAiB,UAExE,KAAA,CAAA;AAAA,MACA,gBAAAS,EAACG,GAAS,EAAA,QAAQ,KAChB,UAAA,gBAAAH;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,MAAMH,IAAe,UAAU;AAAA,UAC/B,OAAOX;AAAA,UACP,SAASQ;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,IAAA,GACF;AAAA,EAAA,EAEJ,CAAA,sBAhCCI,GAAS,EAAA,QAAQ,KAChB,UAAA,gBAAAC,EAACG,KAAK,WAAWL,IAAe,QAAQ,OAAO,QAAO,cAAa,UAAA;AAAA,IAAA;AAAA,IACvD;AAAA,IACV,gBAAAF,EAACO,GAAK,EAAA,WAAWL,IAAe,aAAa,YAAY,SAAO,IAAC,QAAO,cACrE,UACHP,EAAA,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,EA2BJ,CAAA;AAEJ,GAEea,IAAAC,EAAK1B,CAAS;"}
1
+ {"version":3,"file":"resend-otp.js","sources":["../../../../../src/features/auth/comps/resend-otp/resend-otp.tsx"],"sourcesContent":["import type { IOTPResendProps } from './resend-otp-types';\n\nimport { useCallback, memo } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useResendTimer } from './hooks/use-resend-timer';\n\nconst ResendOTP: React.FC<IOTPResendProps> = ({\n onResendOTP,\n onResendVoiceOTP,\n timerSeconds = 15,\n showVoiceOTP = false,\n disabled,\n renderAs = 'text',\n width,\n}) => {\n const { canResend, resetTimer, timeLeft } = useResendTimer({\n initialSeconds: timerSeconds,\n });\n\n const handleResendClick = useCallback(() => {\n onResendOTP?.();\n resetTimer();\n }, [onResendOTP, resetTimer]);\n\n const handleVoiceResendClick = useCallback(() => {\n onResendVoiceOTP?.();\n resetTimer();\n }, [onResendVoiceOTP, resetTimer]);\n\n if (renderAs === 'submit') {\n return (\n <Button\n size=\"small\"\n renderAs=\"secondary-dark\"\n type=\"submit\"\n label={canResend ? 'Resend' : `Resend in ${timeLeft}`}\n width={width}\n onClick={handleResendClick}\n disabled={!canResend || disabled}\n />\n );\n }\n\n return (\n <FlexView>\n {!canResend ? (\n <FlexView $width={105}>\n <Text $renderAs=\"ub2\" $color=\"WHITE_T_60\">\n Resend in{' '}\n <Text $renderAs=\"ub2-bold\" $inline $color=\"WHITE_T_60\">\n {timeLeft}\n </Text>\n </Text>\n </FlexView>\n ) : (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexColumnGapX={0.5}>\n <TextButton\n disabled={disabled}\n label=\"Resend\"\n color=\"WHITE_T_60\"\n onClick={handleResendClick}\n />\n {showVoiceOTP && (\n <>\n <Text $renderAs=\"ub2\" $color=\"WHITE_T_60\">\n or\n </Text>\n <FlexView $width={116}>\n <TextButton\n label=\"Get code via call\"\n color=\"WHITE_T_60\"\n onClick={handleVoiceResendClick}\n />\n </FlexView>\n </>\n )}\n </FlexView>\n )}\n </FlexView>\n );\n};\n\nexport default memo(ResendOTP);\n"],"names":["ResendOTP","onResendOTP","onResendVoiceOTP","timerSeconds","showVoiceOTP","disabled","renderAs","width","canResend","resetTimer","timeLeft","useResendTimer","handleResendClick","useCallback","handleVoiceResendClick","jsx","Button","FlexView","jsxs","TextButton","Fragment","Text","ResendOtp","memo"],"mappings":";;;;;;;AAUA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AACF,MAAM;AACJ,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,UAAAC,EAAA,IAAaC,EAAe;AAAA,IACzD,gBAAgBR;AAAA,EAAA,CACjB,GAEKS,IAAoBC,EAAY,MAAM;AAC5B,IAAAZ,KAAA,QAAAA,KACHQ;EAAA,GACV,CAACR,GAAaQ,CAAU,CAAC,GAEtBK,IAAyBD,EAAY,MAAM;AAC5B,IAAAX,KAAA,QAAAA,KACRO;EAAA,GACV,CAACP,GAAkBO,CAAU,CAAC;AAEjC,SAAIH,MAAa,WAEb,gBAAAS;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAS;AAAA,MACT,MAAK;AAAA,MACL,OAAOR,IAAY,WAAW,aAAaE,CAAQ;AAAA,MACnD,OAAAH;AAAA,MACA,SAASK;AAAA,MACT,UAAU,CAACJ,KAAaH;AAAA,IAAA;AAAA,EAAA,IAM3B,gBAAAU,EAAAE,GAAA,EACE,UAACT,IAUC,gBAAAU,EAAAD,GAAA,EAAS,gBAAe,OAAM,aAAY,UAAS,iBAAiB,KACnE,UAAA;AAAA,IAAA,gBAAAF;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,UAAAd;AAAA,QACA,OAAM;AAAA,QACN,OAAM;AAAA,QACN,SAASO;AAAA,MAAA;AAAA,IACX;AAAA,IACCR,KAEG,gBAAAc,EAAAE,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAL,EAACM,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,MAAA;AAAA,MACA,gBAAAN,EAACE,GAAS,EAAA,QAAQ,KAChB,UAAA,gBAAAF;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAM;AAAA,UACN,SAASL;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,IAAA,GACF;AAAA,EAAA,EAEJ,CAAA,IA9BC,gBAAAC,EAAAE,GAAA,EAAS,QAAQ,KAChB,UAAC,gBAAAC,EAAAG,GAAA,EAAK,WAAU,OAAM,QAAO,cAAa,UAAA;AAAA,IAAA;AAAA,IAC9B;AAAA,IACV,gBAAAN,EAACM,KAAK,WAAU,YAAW,SAAO,IAAC,QAAO,cACvC,UACHX,EAAA,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,EAyBJ,CAAA;AAEJ,GAEeY,IAAAC,EAAKvB,CAAS;"}
@@ -1,35 +1,23 @@
1
- import { jsxs as l, jsx as n } from "react/jsx-runtime";
2
- import { memo as s, useCallback as m } from "react";
3
- import $ from "../../../../ui/text/text.js";
4
- import { TabWrapper as d, Icon as a } from "../tabs-styled.js";
5
- const f = ({ tab: o, isSelected: e, onChange: r }) => {
6
- const { Icon: t, iconPosition: i = "left" } = o, c = m(() => {
7
- r(o.id);
8
- }, [o.id, r]);
9
- return /* @__PURE__ */ l(
10
- d,
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { memo as m, useCallback as c } from "react";
3
+ import { TabsText as i } from "../tabs-styled.js";
4
+ const n = ({ tab: e, isSelected: o, onChange: r }) => {
5
+ const l = c(() => {
6
+ r(e.id);
7
+ }, [e.id, r]);
8
+ return /* @__PURE__ */ t(
9
+ i,
11
10
  {
12
- $selected: e,
13
- $flexDirection: "row",
14
- $alignItems: "center",
15
- $justifyContent: "center",
16
- children: [
17
- t ? /* @__PURE__ */ n(a, { $selected: e, $iconPosition: i, children: /* @__PURE__ */ n(t, {}) }) : void 0,
18
- /* @__PURE__ */ n(
19
- $,
20
- {
21
- $renderAs: e ? "ub2-bold" : "ub2",
22
- $align: "center",
23
- onClick: c,
24
- $color: "WHITE",
25
- children: o.label
26
- }
27
- )
28
- ]
11
+ $renderAs: o ? "ub2-bold" : "ub2",
12
+ $align: "center",
13
+ $selected: o,
14
+ onClick: l,
15
+ $color: "WHITE",
16
+ children: e.label
29
17
  }
30
18
  );
31
- }, x = s(f);
19
+ }, b = m(n);
32
20
  export {
33
- x as default
21
+ b as default
34
22
  };
35
23
  //# sourceMappingURL=tab-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-item.js","sources":["../../../../../../src/features/auth/comps/tabs/tab-tem/tab-item.tsx"],"sourcesContent":["import type { ITabItemProps } from '../tabs-types';\n\nimport { memo, useCallback } from 'react';\n\nimport Text from '../../../../ui/text/text';\nimport * as Styled from '../tabs-styled';\n\nconst TabItem = ({ tab, isSelected, onChange }: ITabItemProps) => {\n const { Icon, iconPosition = 'left' } = tab;\n\n const handleClick = useCallback(() => {\n onChange(tab.id);\n }, [tab.id, onChange]);\n\n return (\n <Styled.TabWrapper\n $selected={isSelected}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {Icon ? (\n <Styled.Icon $selected={isSelected} $iconPosition={iconPosition}>\n <Icon />\n </Styled.Icon>\n ) : undefined}\n <Text\n $renderAs={isSelected ? 'ub2-bold' : 'ub2'}\n $align=\"center\"\n onClick={handleClick}\n $color=\"WHITE\"\n >\n {tab.label}\n </Text>\n </Styled.TabWrapper>\n );\n};\n\nexport default memo(TabItem);\n"],"names":["TabItem","tab","isSelected","onChange","Icon","iconPosition","handleClick","useCallback","jsxs","Styled.TabWrapper","jsx","Styled.Icon","Text","TabItem$1","memo"],"mappings":";;;;AAOA,MAAMA,IAAU,CAAC,EAAE,KAAAC,GAAK,YAAAC,GAAY,UAAAC,QAA8B;AAChE,QAAM,EAAEC,MAAAA,GAAM,cAAAC,IAAe,OAAA,IAAWJ,GAElCK,IAAcC,EAAY,MAAM;AACpC,IAAAJ,EAASF,EAAI,EAAE;AAAA,EACd,GAAA,CAACA,EAAI,IAAIE,CAAQ,CAAC;AAGnB,SAAA,gBAAAK;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWP;AAAA,MACX,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAEf,UAAA;AAAA,QACCE,IAAA,gBAAAM,EAACC,GAAA,EAAY,WAAWT,GAAY,eAAeG,GACjD,UAAA,gBAAAK,EAACN,GAAK,CAAA,CAAA,EACR,CAAA,IACE;AAAA,QACJ,gBAAAM;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWV,IAAa,aAAa;AAAA,YACrC,QAAO;AAAA,YACP,SAASI;AAAA,YACT,QAAO;AAAA,YAEN,UAAIL,EAAA;AAAA,UAAA;AAAA,QACP;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeY,IAAAC,EAAKd,CAAO;"}
1
+ {"version":3,"file":"tab-item.js","sources":["../../../../../../src/features/auth/comps/tabs/tab-tem/tab-item.tsx"],"sourcesContent":["import type { ITabItemProps } from '../tabs-types';\n\nimport { memo, useCallback } from 'react';\n\nimport * as Styled from '../tabs-styled';\n\nconst TabItem = ({ tab, isSelected, onChange }: ITabItemProps) => {\n const handleClick = useCallback(() => {\n onChange(tab.id);\n }, [tab.id, onChange]);\n\n return (\n <Styled.TabsText\n $renderAs={isSelected ? 'ub2-bold' : 'ub2'}\n $align=\"center\"\n $selected={isSelected}\n onClick={handleClick}\n $color=\"WHITE\"\n >\n {tab.label}\n </Styled.TabsText>\n );\n};\n\nexport default memo(TabItem);\n"],"names":["TabItem","tab","isSelected","onChange","handleClick","useCallback","jsx","Styled.TabsText","TabItem$1","memo"],"mappings":";;;AAMA,MAAMA,IAAU,CAAC,EAAE,KAAAC,GAAK,YAAAC,GAAY,UAAAC,QAA8B;AAC1D,QAAAC,IAAcC,EAAY,MAAM;AACpC,IAAAF,EAASF,EAAI,EAAE;AAAA,EACd,GAAA,CAACA,EAAI,IAAIE,CAAQ,CAAC;AAGnB,SAAA,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWL,IAAa,aAAa;AAAA,MACrC,QAAO;AAAA,MACP,WAAWA;AAAA,MACX,SAASE;AAAA,MACT,QAAO;AAAA,MAEN,UAAIH,EAAA;AAAA,IAAA;AAAA,EAAA;AAGX,GAEeO,IAAAC,EAAKT,CAAO;"}
@@ -1,35 +1,23 @@
1
1
  import s from "styled-components";
2
- import i from "../../../ui/layout/flex-view.js";
3
- const d = s.div(({ theme: o, $tabsCount: r, $background: t }) => {
4
- const { colors: e } = o;
2
+ import p from "../../../ui/text/text.js";
3
+ const d = s.div(({ theme: r, $tabsCount: o }) => {
4
+ const { colors: t } = r;
5
5
  return `
6
6
  display: grid;
7
- background: ${e[t]};
8
- grid-template-columns: repeat(${r}, 1fr);
7
+ background: ${t.BLACK_4};
8
+ grid-template-columns: repeat(${o}, 1fr);
9
9
  `;
10
- }), c = s(i)(({ theme: o, $selected: r }) => {
11
- const { layout: t, colors: e } = o, { WHITE_T_15: n, WHITE: p } = e;
10
+ }), l = s(p)(({ theme: r, $selected: o }) => {
11
+ const { layout: t, colors: e } = r, { WHITE_T_15: n, WHITE: a } = e;
12
12
  return `
13
13
  cursor: pointer;
14
14
  padding: ${t.gutter * 0.875}px 0;
15
- border-bottom: 1.5px solid ${r ? p : n};
15
+ border-bottom: 1.5px solid ${o ? a : n};
16
16
  transition: all 0.3s ease;
17
17
  `;
18
- }), g = s.div(({ theme: o, $iconPosition: r, $selected: t }) => `
19
- ${r === "left" ? "padding-right" : "padding-left"}: 4px;
20
- order: ${r === "left" ? -1 : 1};
21
-
22
- & svg {
23
- display: ${t ? "block" : "none"};
24
- width: 16px;
25
- height: 16px;
26
- color: ${o.colors.WHITE_1};
27
- transition: color 0.2s ease-in-out;
28
- }
29
- `);
18
+ });
30
19
  export {
31
- g as Icon,
32
- c as TabWrapper,
20
+ l as TabsText,
33
21
  d as TabsWrapper
34
22
  };
35
23
  //# sourceMappingURL=tabs-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-styled.js","sources":["../../../../../src/features/auth/comps/tabs/tabs-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../../ui/types';\nimport type { ITabItem } from './tabs-types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\ninterface TabsWrapperProps {\n $tabsCount: number;\n $background: TColorNames;\n}\n\nconst TabsWrapper = styled.div<TabsWrapperProps>(({ theme, $tabsCount, $background }) => {\n const { colors } = theme;\n\n return `\n display: grid;\n background: ${colors[$background]};\n grid-template-columns: repeat(${$tabsCount}, 1fr);\n `;\n});\n\ninterface ITabsText {\n $selected?: boolean;\n}\n\nconst TabWrapper = styled(FlexView)<ITabsText>(({ theme, $selected }) => {\n const { layout, colors } = theme;\n const { WHITE_T_15, WHITE } = colors;\n\n return `\n cursor: pointer;\n padding: ${layout.gutter * 0.875}px 0;\n border-bottom: 1.5px solid ${$selected ? WHITE : WHITE_T_15};\n transition: all 0.3s ease;\n `;\n});\n\ninterface IStyledIconProps {\n $iconPosition: NonNullable<ITabItem['iconPosition']>;\n $selected: boolean;\n}\n\nconst Icon = styled.div<IStyledIconProps>(({ theme, $iconPosition, $selected }) => {\n return `\n ${$iconPosition === 'left' ? 'padding-right' : 'padding-left'}: 4px;\n order: ${$iconPosition === 'left' ? -1 : 1};\n \n & svg {\n display: ${$selected ? 'block' : 'none'};\n width: 16px;\n height: 16px;\n color: ${theme.colors.WHITE_1};\n transition: color 0.2s ease-in-out;\n }\n `;\n});\n\nexport { TabsWrapper, Icon, TabWrapper };\n"],"names":["TabsWrapper","styled","theme","$tabsCount","$background","colors","TabWrapper","FlexView","$selected","layout","WHITE_T_15","WHITE","Icon","$iconPosition"],"mappings":";;AAYM,MAAAA,IAAcC,EAAO,IAAsB,CAAC,EAAE,OAAAC,GAAO,YAAAC,GAAY,aAAAC,QAAkB;AACjF,QAAA,EAAE,QAAAC,EAAW,IAAAH;AAEZ,SAAA;AAAA;AAAA,kBAESG,EAAOD,CAAW,CAAC;AAAA,oCACDD,CAAU;AAAA;AAE9C,CAAC,GAMKG,IAAaL,EAAOM,CAAQ,EAAa,CAAC,EAAE,OAAAL,GAAO,WAAAM,QAAgB;AACjE,QAAA,EAAE,QAAAC,GAAQ,QAAAJ,EAAW,IAAAH,GACrB,EAAE,YAAAQ,GAAY,OAAAC,EAAU,IAAAN;AAEvB,SAAA;AAAA;AAAA,eAEMI,EAAO,SAAS,KAAK;AAAA,iCACHD,IAAYG,IAAQD,CAAU;AAAA;AAAA;AAG/D,CAAC,GAOKE,IAAOX,EAAO,IAAsB,CAAC,EAAE,OAAAC,GAAO,eAAAW,GAAe,WAAAL,QAC1D;AAAA,MACHK,MAAkB,SAAS,kBAAkB,cAAc;AAAA,aACpDA,MAAkB,SAAS,KAAK,CAAC;AAAA;AAAA;AAAA,iBAG7BL,IAAY,UAAU,MAAM;AAAA;AAAA;AAAA,eAG9BN,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA,OAIlC;"}
1
+ {"version":3,"file":"tabs-styled.js","sources":["../../../../../src/features/auth/comps/tabs/tabs-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Text from '../../../ui/text/text';\n\ninterface TabsWrapperProps {\n $tabsCount: number;\n}\n\nconst TabsWrapper = styled.div<TabsWrapperProps>(({ theme, $tabsCount }) => {\n const { colors } = theme;\n\n return `\n display: grid;\n background: ${colors.BLACK_4};\n grid-template-columns: repeat(${$tabsCount}, 1fr);\n `;\n});\n\ninterface ITabsText {\n $selected?: boolean;\n}\n\nconst TabsText = styled(Text)<ITabsText>(({ theme, $selected }) => {\n const { layout, colors } = theme;\n const { WHITE_T_15, WHITE } = colors;\n\n return `\n cursor: pointer;\n padding: ${layout.gutter * 0.875}px 0;\n border-bottom: 1.5px solid ${$selected ? WHITE : WHITE_T_15};\n transition: all 0.3s ease;\n `;\n});\n\nexport { TabsWrapper, TabsText };\n"],"names":["TabsWrapper","styled","theme","$tabsCount","colors","TabsText","Text","$selected","layout","WHITE_T_15","WHITE"],"mappings":";;AAQA,MAAMA,IAAcC,EAAO,IAAsB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACpE,QAAA,EAAE,QAAAC,EAAW,IAAAF;AAEZ,SAAA;AAAA;AAAA,kBAESE,EAAO,OAAO;AAAA,oCACID,CAAU;AAAA;AAE9C,CAAC,GAMKE,IAAWJ,EAAOK,CAAI,EAAa,CAAC,EAAE,OAAAJ,GAAO,WAAAK,QAAgB;AAC3D,QAAA,EAAE,QAAAC,GAAQ,QAAAJ,EAAW,IAAAF,GACrB,EAAE,YAAAO,GAAY,OAAAC,EAAU,IAAAN;AAEvB,SAAA;AAAA;AAAA,eAEMI,EAAO,SAAS,KAAK;AAAA,iCACHD,IAAYG,IAAQD,CAAU;AAAA;AAAA;AAG/D,CAAC;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
- import { memo as p } from "react";
3
- import s from "./tab-tem/tab-item.js";
4
- import { TabsWrapper as a } from "./tabs-styled.js";
5
- const n = ({ selectedTab: t, onChange: e, tabs: o, background: i = "BLACK_4" }) => /* @__PURE__ */ m(a, { $tabsCount: o.length, $background: i, children: o.map((r) => /* @__PURE__ */ m(s, { tab: r, isSelected: r.id === t, onChange: e }, r.id)) }), u = p(n);
2
+ import { memo as i } from "react";
3
+ import p from "./tab-tem/tab-item.js";
4
+ import { TabsWrapper as s } from "./tabs-styled.js";
5
+ const a = ({ selectedTab: t, onChange: e, tabs: o }) => /* @__PURE__ */ m(s, { $tabsCount: o.length, children: o.map((r) => /* @__PURE__ */ m(p, { tab: r, isSelected: r.id === t, onChange: e }, r.id)) }), l = i(a);
6
6
  export {
7
- u as default
7
+ l as default
8
8
  };
9
9
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../../src/features/auth/comps/tabs/tabs.tsx"],"sourcesContent":["import type { ITabsProps } from './tabs-types';\n\nimport { memo } from 'react';\n\nimport TabItem from './tab-tem/tab-item';\nimport * as Styled from './tabs-styled';\n\nconst Tabs = ({ selectedTab, onChange, tabs, background = 'BLACK_4' }: ITabsProps) => {\n return (\n <Styled.TabsWrapper $tabsCount={tabs.length} $background={background}>\n {tabs.map(tab => (\n <TabItem key={tab.id} tab={tab} isSelected={tab.id === selectedTab} onChange={onChange} />\n ))}\n </Styled.TabsWrapper>\n );\n};\n\nexport default memo(Tabs);\n"],"names":["Tabs","selectedTab","onChange","tabs","background","jsx","Styled.TabsWrapper","TabItem","tab","memo"],"mappings":";;;;AAOA,MAAMA,IAAO,CAAC,EAAE,aAAAC,GAAa,UAAAC,GAAU,MAAAC,GAAM,YAAAC,IAAa,gBAEtD,gBAAAC,EAACC,GAAA,EAAmB,YAAYH,EAAK,QAAQ,aAAaC,GACvD,UAAKD,EAAA,IAAI,OACP,gBAAAE,EAAAE,GAAA,EAAqB,KAAAC,GAAU,YAAYA,EAAI,OAAOP,GAAa,UAAAC,EAAtD,GAAAM,EAAI,EAAsE,CACzF,EACH,CAAA,GAIWL,IAAAM,EAAKT,CAAI;"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../../src/features/auth/comps/tabs/tabs.tsx"],"sourcesContent":["import type { ITabsProps } from './tabs-types';\n\nimport { memo } from 'react';\n\nimport TabItem from './tab-tem/tab-item';\nimport * as Styled from './tabs-styled';\n\nconst Tabs = ({ selectedTab, onChange, tabs }: ITabsProps) => {\n return (\n <Styled.TabsWrapper $tabsCount={tabs.length}>\n {tabs.map(tab => (\n <TabItem key={tab.id} tab={tab} isSelected={tab.id === selectedTab} onChange={onChange} />\n ))}\n </Styled.TabsWrapper>\n );\n};\n\nexport default memo(Tabs);\n"],"names":["Tabs","selectedTab","onChange","tabs","jsx","Styled.TabsWrapper","tab","TabItem","memo"],"mappings":";;;;AAOA,MAAMA,IAAO,CAAC,EAAE,aAAAC,GAAa,UAAAC,GAAU,MAAAC,QAEnC,gBAAAC,EAACC,GAAA,EAAmB,YAAYF,EAAK,QAClC,YAAK,IAAI,CAAAG,wBACPC,GAAqB,EAAA,KAAAD,GAAU,YAAYA,EAAI,OAAOL,GAAa,UAAAC,EAAtD,GAAAI,EAAI,EAAsE,CACzF,EACH,CAAA,GAIWH,IAAAK,EAAKR,CAAI;"}
@@ -9,14 +9,14 @@ import E from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
9
  import I from "../../ui/text/text.js";
10
10
  import { InProgressIconWrapper as d } from "../comps/node-card/node-card-styled.js";
11
11
  import A from "../comps/tag/tag.js";
12
- const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
12
+ const u = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
13
13
  if (!r || c)
14
14
  return { isOverdue: !1, daysText: "", differenceInDays: 0 };
15
- const i = Math.floor(Date.now() / 1e3), s = r - i, o = Math.ceil(s / _), a = o < 0, n = o > 0 ? `${Math.abs(o)}D` : "";
15
+ const i = Math.floor(Date.now() / 1e3), s = r - i, o = Math.ceil(s / u), a = o < 0, n = o > 0 ? `${Math.abs(o)}D` : "";
16
16
  return { isOverdue: a, daysText: n, differenceInDays: o };
17
- }, U = (r, c, i, s, o) => {
17
+ }, x = (r, c, i, s, o) => {
18
18
  const { isOverdue: a, daysText: n, differenceInDays: T } = C(s, o);
19
- if (!o && a && u.includes(r))
19
+ if (!o && a && _.includes(r))
20
20
  return {
21
21
  icon: /* @__PURE__ */ e(
22
22
  E,
@@ -117,7 +117,7 @@ const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
117
117
  icon: void 0
118
118
  };
119
119
  }
120
- }, x = (r) => {
120
+ }, y = (r) => {
121
121
  switch (r) {
122
122
  case "LEVEL2":
123
123
  case "LEVEL3":
@@ -186,7 +186,7 @@ const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
186
186
  }
187
187
  };
188
188
  export {
189
- x as getNodeCardBasedIcon,
190
- U as getNodeStateBasedTagInfo
189
+ y as getNodeCardBasedIcon,
190
+ x as getNodeStateBasedTagInfo
191
191
  };
192
192
  //# sourceMappingURL=node-card-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED', 'IN_PROGRESS'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
1
+ {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  import { jsx as i, jsxs as g, Fragment as m } from "react/jsx-runtime";
2
2
  import L from "../../../../node_modules/lodash.throttle/index.js";
3
- import { useState as O, useEffect as $, useMemo as p } from "react";
4
- import { useTheme as R } from "styled-components";
3
+ import { useState as a, useEffect as O, useMemo as p } from "react";
4
+ import { useTheme as $ } from "styled-components";
5
5
  import c from "../../../ui/arrow-tooltip/arrow-tooltip.js";
6
- import a from "../../../ui/nudge/nudge.js";
7
- import { EDeviceType as A } from "../../../ui/theme/constants.js";
6
+ import R from "../../../ui/nudge/nudge.js";
7
+ import A from "../../../ui/portal/portal.js";
8
+ import { EDeviceType as X } from "../../../ui/theme/constants.js";
8
9
  import { IndicatorType as u } from "../../use-journey/constants.js";
9
- import { CoachmarkBody as X, ClonedElementWrapper as h } from "./coachmark-styled.js";
10
- import { getTooltipXCoordinates as Y } from "./coachmark-utils.js";
11
- const V = ({
10
+ import { CoachmarkBody as Y, ClonedElementWrapper as h } from "./coachmark-styled.js";
11
+ import { getTooltipXCoordinates as x } from "./coachmark-utils.js";
12
+ const S = ({
12
13
  coachmark: e,
13
14
  isInsideScrollView: T
14
15
  }) => {
15
- const t = e.originalElementToHighlightRef.current, { device: C, zIndex: I } = R(), [v, E] = O(() => {
16
+ const t = e.originalElementToHighlightRef.current, { device: C, zIndex: I } = $(), [P, v] = a(() => {
16
17
  const o = t == null ? void 0 : t.getBoundingClientRect();
17
18
  return {
18
19
  top: ((o == null ? void 0 : o.top) ?? 0) + window.scrollY,
@@ -20,32 +21,32 @@ const V = ({
20
21
  width: (o == null ? void 0 : o.width) ?? 0,
21
22
  height: (o == null ? void 0 : o.height) ?? 0
22
23
  };
23
- }), n = L(() => {
24
+ }), r = L(() => {
24
25
  const o = t == null ? void 0 : t.getBoundingClientRect();
25
- o && E({
26
+ o && v({
26
27
  top: o.top + window.scrollY,
27
28
  left: o.left + window.scrollX,
28
29
  width: o.width,
29
30
  height: o.height
30
31
  });
31
32
  }, 100), {
32
- top: r = 0,
33
+ top: n = 0,
33
34
  left: l = 0,
34
- height: P = 0,
35
+ height: E = 0,
35
36
  width: b = 0
36
- } = T ? v : (t == null ? void 0 : t.getBoundingClientRect()) ?? {};
37
- $(() => (window.addEventListener("resize", n), window.addEventListener("scroll", n), () => {
38
- window.removeEventListener("resize", n), window.removeEventListener("scroll", n);
39
- }), [n, t]);
40
- const w = C === A.MOBILE, d = I.JOURNEY_OVERLAY, s = p(() => t ? window.getComputedStyle(t).position === "absolute" : !1, [t]), f = p(() => {
37
+ } = T ? P : (t == null ? void 0 : t.getBoundingClientRect()) ?? {};
38
+ O(() => (window.addEventListener("resize", r), window.addEventListener("scroll", r), () => {
39
+ window.removeEventListener("resize", r), window.removeEventListener("scroll", r);
40
+ }), [r, t]);
41
+ const f = C === X.MOBILE, d = I.JOURNEY_OVERLAY, s = p(() => t ? window.getComputedStyle(t).position === "absolute" : !1, [t]), w = p(() => {
41
42
  const o = e.indicator;
42
43
  return {
43
- width: w ? 246 : 264,
44
+ width: f ? 246 : 264,
44
45
  // Can be over ridden
45
- tooltipXCoOrdinates: Y(o),
46
+ tooltipXCoOrdinates: x(o),
46
47
  zIndex: d + 1,
47
48
  ...o,
48
- tooltipItem: /* @__PURE__ */ i(X, { children: o.tooltipItem }),
49
+ tooltipItem: /* @__PURE__ */ i(Y, { children: o.tooltipItem }),
49
50
  alwaysVisible: !0,
50
51
  renderAs: "primary",
51
52
  // Deprecate this
@@ -55,31 +56,31 @@ const V = ({
55
56
  type: u.TOOLTIP,
56
57
  isAnimated: !0
57
58
  };
58
- }, [d, e.indicator, w]), y = p(() => {
59
+ }, [d, e.indicator, f]), y = p(() => {
59
60
  const o = e.indicator;
60
61
  return {
61
62
  ...o,
62
63
  nudgePointerX: l + (o.nudgePointerX ?? 0),
63
- nudgePointerY: r + (o.nudgePointerY ?? 0)
64
+ nudgePointerY: n + (o.nudgePointerY ?? 0)
64
65
  };
65
- }, [e.indicator, l, r]);
66
+ }, [e.indicator, l, n]);
66
67
  return !t || !e.isActive ? null : e.type === u.TOOLTIP ? s ? /* @__PURE__ */ g(m, { children: [
67
68
  e.elementToHighlight,
68
- /* @__PURE__ */ i(h, { $position: "absolute", $top: r, $left: l, children: /* @__PURE__ */ i(c, { ...f, children: /* @__PURE__ */ i("div", { style: { height: P, width: b } }) }) })
69
- ] }) : /* @__PURE__ */ i(h, { $position: "absolute", $top: r, $left: l, children: /* @__PURE__ */ i(c, { ...f, children: e.elementToHighlight }) }) : e.type === u.NUDGE ? /* @__PURE__ */ g(m, { children: [
69
+ /* @__PURE__ */ i(h, { $position: "absolute", $top: n, $left: l, children: /* @__PURE__ */ i(c, { ...w, children: /* @__PURE__ */ i("div", { style: { height: E, width: b } }) }) })
70
+ ] }) : /* @__PURE__ */ i(h, { $position: "absolute", $top: n, $left: l, children: /* @__PURE__ */ i(c, { ...w, children: e.elementToHighlight }) }) : e.type === u.NUDGE ? /* @__PURE__ */ g(m, { children: [
70
71
  /* @__PURE__ */ i(
71
72
  h,
72
73
  {
73
- $top: s ? 0 : r,
74
+ $top: s ? 0 : n,
74
75
  $left: s ? 0 : l,
75
76
  $position: s ? "relative" : "absolute",
76
77
  children: e.elementToHighlight
77
78
  }
78
79
  ),
79
- /* @__PURE__ */ i(a, { zIndex: d + 1, ...y })
80
+ /* @__PURE__ */ i(A, { portalId: "tooltip-root", children: /* @__PURE__ */ i(R, { zIndex: d + 1, ...y }) })
80
81
  ] }) : null;
81
82
  };
82
83
  export {
83
- V as Coachmark
84
+ S as Coachmark
84
85
  };
85
86
  //# sourceMappingURL=coachmark.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coachmark.js","sources":["../../../../../src/features/journey/comps/coachmark/coachmark.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../ui/nudge/nudge-types';\nimport type { ICoachmarkProps } from '../../use-journey/journey-context-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Nudge from '../../../ui/nudge/nudge';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport { IndicatorType } from '../../use-journey/constants';\nimport * as S from './coachmark-styled';\nimport { getTooltipXCoordinates } from './coachmark-utils';\n\nexport const Coachmark: React.FC<{ coachmark: ICoachmarkProps; isInsideScrollView: boolean }> = ({\n coachmark,\n isInsideScrollView,\n}) => {\n const targetElement = coachmark.originalElementToHighlightRef.current;\n const { device, zIndex } = useTheme();\n\n const [position, setPosition] = useState(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n return {\n top: (rect?.top ?? 0) + window.scrollY,\n left: rect?.left ?? 0 + window.scrollX,\n width: rect?.width ?? 0,\n height: rect?.height ?? 0,\n };\n });\n\n const handlePositionChange = throttle(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n if (rect) {\n setPosition({\n top: rect.top + window.scrollY,\n left: rect.left + window.scrollX,\n width: rect.width,\n height: rect.height,\n });\n }\n }, 100);\n\n const {\n top = 0,\n left = 0,\n height = 0,\n width = 0,\n } = isInsideScrollView ? position : targetElement?.getBoundingClientRect() ?? {};\n\n useEffect(() => {\n window.addEventListener('resize', handlePositionChange);\n window.addEventListener('scroll', handlePositionChange);\n\n return () => {\n window.removeEventListener('resize', handlePositionChange);\n window.removeEventListener('scroll', handlePositionChange);\n };\n }, [handlePositionChange, targetElement]);\n\n const isMobile = device === EDeviceType.MOBILE;\n\n const BLUR_OVERLAY_Z_INDEX = zIndex.JOURNEY_OVERLAY;\n\n const isAbsolute = useMemo(() => {\n if (!targetElement) return false;\n\n return window.getComputedStyle(targetElement).position === 'absolute';\n }, [targetElement]);\n\n const tooltipProps = useMemo(() => {\n const arrowToolTipProps = coachmark.indicator as IArrowTooltipProps;\n\n return {\n width: isMobile ? 246 : 264, // Can be over ridden\n tooltipXCoOrdinates: getTooltipXCoordinates(arrowToolTipProps),\n zIndex: BLUR_OVERLAY_Z_INDEX + 1,\n ...arrowToolTipProps,\n tooltipItem: <S.CoachmarkBody>{arrowToolTipProps.tooltipItem}</S.CoachmarkBody>,\n alwaysVisible: true,\n renderAs: 'primary', // Deprecate this\n borderWidth: 1,\n arrowColor: arrowToolTipProps.arrowColor || 'WHITE',\n borderColor: arrowToolTipProps.borderColor || 'WHITE',\n type: IndicatorType.TOOLTIP,\n isAnimated: true,\n } as IArrowTooltipProps;\n }, [BLUR_OVERLAY_Z_INDEX, coachmark.indicator, isMobile]);\n\n const nudgeProps = useMemo(() => {\n const props: INudgeProps = coachmark.indicator as INudgeProps;\n\n return {\n ...props,\n nudgePointerX: left + (props.nudgePointerX ?? 0),\n nudgePointerY: top + (props.nudgePointerY ?? 0),\n };\n }, [coachmark.indicator, left, top]);\n\n if (!targetElement || !coachmark.isActive) {\n return null;\n }\n\n if (coachmark.type === IndicatorType.TOOLTIP) {\n if (isAbsolute) {\n return (\n <>\n {coachmark.elementToHighlight}\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>\n <div style={{ height, width }} />\n </ArrowTooltip>\n </S.ClonedElementWrapper>\n </>\n );\n }\n\n return (\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>{coachmark.elementToHighlight}</ArrowTooltip>\n </S.ClonedElementWrapper>\n );\n }\n\n if (coachmark.type === IndicatorType.NUDGE) {\n return (\n <>\n <S.ClonedElementWrapper\n $top={isAbsolute ? 0 : top}\n $left={isAbsolute ? 0 : left}\n $position={isAbsolute ? 'relative' : 'absolute'}\n >\n {coachmark.elementToHighlight}\n </S.ClonedElementWrapper>\n <Nudge zIndex={BLUR_OVERLAY_Z_INDEX + 1} {...nudgeProps} />\n </>\n );\n }\n\n return null;\n};\n"],"names":["Coachmark","coachmark","isInsideScrollView","targetElement","device","zIndex","useTheme","position","setPosition","useState","rect","handlePositionChange","throttle","top","left","height","width","useEffect","isMobile","EDeviceType","BLUR_OVERLAY_Z_INDEX","isAbsolute","useMemo","tooltipProps","arrowToolTipProps","getTooltipXCoordinates","jsx","S.CoachmarkBody","IndicatorType","nudgeProps","props","jsxs","Fragment","S.ClonedElementWrapper","ArrowTooltip","Nudge"],"mappings":"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"}
1
+ {"version":3,"file":"coachmark.js","sources":["../../../../../src/features/journey/comps/coachmark/coachmark.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../ui/nudge/nudge-types';\nimport type { ICoachmarkProps } from '../../use-journey/journey-context-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Nudge from '../../../ui/nudge/nudge';\nimport Portal from '../../../ui/portal/portal';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport { IndicatorType } from '../../use-journey/constants';\nimport * as S from './coachmark-styled';\nimport { getTooltipXCoordinates } from './coachmark-utils';\n\nexport const Coachmark: React.FC<{ coachmark: ICoachmarkProps; isInsideScrollView: boolean }> = ({\n coachmark,\n isInsideScrollView,\n}) => {\n const targetElement = coachmark.originalElementToHighlightRef.current;\n const { device, zIndex } = useTheme();\n\n const [position, setPosition] = useState(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n return {\n top: (rect?.top ?? 0) + window.scrollY,\n left: rect?.left ?? 0 + window.scrollX,\n width: rect?.width ?? 0,\n height: rect?.height ?? 0,\n };\n });\n\n const handlePositionChange = throttle(() => {\n const rect = targetElement?.getBoundingClientRect();\n\n if (rect) {\n setPosition({\n top: rect.top + window.scrollY,\n left: rect.left + window.scrollX,\n width: rect.width,\n height: rect.height,\n });\n }\n }, 100);\n\n const {\n top = 0,\n left = 0,\n height = 0,\n width = 0,\n } = isInsideScrollView ? position : targetElement?.getBoundingClientRect() ?? {};\n\n useEffect(() => {\n window.addEventListener('resize', handlePositionChange);\n window.addEventListener('scroll', handlePositionChange);\n\n return () => {\n window.removeEventListener('resize', handlePositionChange);\n window.removeEventListener('scroll', handlePositionChange);\n };\n }, [handlePositionChange, targetElement]);\n\n const isMobile = device === EDeviceType.MOBILE;\n\n const BLUR_OVERLAY_Z_INDEX = zIndex.JOURNEY_OVERLAY;\n\n const isAbsolute = useMemo(() => {\n if (!targetElement) return false;\n\n return window.getComputedStyle(targetElement).position === 'absolute';\n }, [targetElement]);\n\n const tooltipProps = useMemo(() => {\n const arrowToolTipProps = coachmark.indicator as IArrowTooltipProps;\n\n return {\n width: isMobile ? 246 : 264, // Can be over ridden\n tooltipXCoOrdinates: getTooltipXCoordinates(arrowToolTipProps),\n zIndex: BLUR_OVERLAY_Z_INDEX + 1,\n ...arrowToolTipProps,\n tooltipItem: <S.CoachmarkBody>{arrowToolTipProps.tooltipItem}</S.CoachmarkBody>,\n alwaysVisible: true,\n renderAs: 'primary', // Deprecate this\n borderWidth: 1,\n arrowColor: arrowToolTipProps.arrowColor || 'WHITE',\n borderColor: arrowToolTipProps.borderColor || 'WHITE',\n type: IndicatorType.TOOLTIP,\n isAnimated: true,\n } as IArrowTooltipProps;\n }, [BLUR_OVERLAY_Z_INDEX, coachmark.indicator, isMobile]);\n\n const nudgeProps = useMemo(() => {\n const props: INudgeProps = coachmark.indicator as INudgeProps;\n\n return {\n ...props,\n nudgePointerX: left + (props.nudgePointerX ?? 0),\n nudgePointerY: top + (props.nudgePointerY ?? 0),\n };\n }, [coachmark.indicator, left, top]);\n\n if (!targetElement || !coachmark.isActive) {\n return null;\n }\n\n if (coachmark.type === IndicatorType.TOOLTIP) {\n if (isAbsolute) {\n return (\n <>\n {coachmark.elementToHighlight}\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>\n <div style={{ height, width }} />\n </ArrowTooltip>\n </S.ClonedElementWrapper>\n </>\n );\n }\n\n return (\n <S.ClonedElementWrapper $position=\"absolute\" $top={top} $left={left}>\n <ArrowTooltip {...tooltipProps}>{coachmark.elementToHighlight}</ArrowTooltip>\n </S.ClonedElementWrapper>\n );\n }\n\n if (coachmark.type === IndicatorType.NUDGE) {\n return (\n <>\n <S.ClonedElementWrapper\n $top={isAbsolute ? 0 : top}\n $left={isAbsolute ? 0 : left}\n $position={isAbsolute ? 'relative' : 'absolute'}\n >\n {coachmark.elementToHighlight}\n </S.ClonedElementWrapper>\n <Portal portalId=\"tooltip-root\">\n <Nudge zIndex={BLUR_OVERLAY_Z_INDEX + 1} {...nudgeProps} />\n </Portal>\n </>\n );\n }\n\n return null;\n};\n"],"names":["Coachmark","coachmark","isInsideScrollView","targetElement","device","zIndex","useTheme","position","setPosition","useState","rect","handlePositionChange","throttle","top","left","height","width","useEffect","isMobile","EDeviceType","BLUR_OVERLAY_Z_INDEX","isAbsolute","useMemo","tooltipProps","arrowToolTipProps","getTooltipXCoordinates","jsx","S.CoachmarkBody","IndicatorType","nudgeProps","props","jsxs","Fragment","S.ClonedElementWrapper","ArrowTooltip","Portal","Nudge"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- var E = /* @__PURE__ */ ((R) => (R.CIRCLE_ACTIVITIES_INTRO_JOURNEY = "CIRCLE_ACTIVITIES_INTRO_JOURNEY", R.CIRCLE_LEADERBOARD_INTRO_JOURNEY = "CIRCLE_LEADERBOARD_INTRO_JOURNEY", R.CIRCLE_POINTS_REWARD_JOURNEY = "CIRCLE_POINTS_REWARD_JOURNEY", R.CIRCLE_STREAK_UPDATE_JOURNEY = "CIRCLE_STREAK_UPDATE_JOURNEY", R.CIRCLE_TUTORIAL_JOURNEY = "CIRCLE_TUTORIAL_JOURNEY", R.CIRCLE_TABLES_INTRO_JOURNEY = "CIRCLE_TABLES_INTRO_JOURNEY", R.CIRCLE_TABLES_INFINTE_JOURNEY = "CIRCLE_TABLES_INFINITE_JOURNEY", R.CIRCLE_LESSONS_K_1_INTRO_JOURNEY = "CIRCLE_LESSONS_K_1_INTRO_JOURNEY", R.CIRCLE_STREAK_REDUCTION_JOURNEY = "CIRCLE_STREAK_REDUCTION_JOURNEY", R.HOMEPAGE_JOURNEY = "HOMEPAGE_JOURNEY", R.CHAPTER_PAGE_JOURNEY = "CHAPTER_PAGE_JOURNEY", R.CHALLENGE_ARENA_JOURNEY = "CHALLENGE_ARENA_JOURNEY", R))(E || {});
1
+ var R = /* @__PURE__ */ ((E) => (E.CIRCLE_ACTIVITIES_INTRO_JOURNEY = "CIRCLE_ACTIVITIES_INTRO_JOURNEY", E.CIRCLE_LEADERBOARD_INTRO_JOURNEY = "CIRCLE_LEADERBOARD_INTRO_JOURNEY", E.CIRCLE_POINTS_REWARD_JOURNEY = "CIRCLE_POINTS_REWARD_JOURNEY", E.CIRCLE_STREAK_UPDATE_JOURNEY = "CIRCLE_STREAK_UPDATE_JOURNEY", E.CIRCLE_TUTORIAL_JOURNEY = "CIRCLE_TUTORIAL_JOURNEY", E.CIRCLE_TABLES_INTRO_JOURNEY = "CIRCLE_TABLES_INTRO_JOURNEY", E.CIRCLE_TABLES_INFINTE_JOURNEY = "CIRCLE_TABLES_INFINITE_JOURNEY", E.CIRCLE_LESSONS_K_1_INTRO_JOURNEY = "CIRCLE_LESSONS_K_1_INTRO_JOURNEY", E.HOMEPAGE_JOURNEY = "HOMEPAGE_JOURNEY", E.CHAPTER_PAGE_JOURNEY = "CHAPTER_PAGE_JOURNEY", E.CHALLENGE_ARENA_JOURNEY = "CHALLENGE_ARENA_JOURNEY", E))(R || {});
2
2
  export {
3
- E as JOURNEY_ID_STUDENT
3
+ R as JOURNEY_ID_STUDENT
4
4
  };
5
5
  //# sourceMappingURL=journey-id-student.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"journey-id-student.js","sources":["../../../../src/features/journey/journey-id/journey-id-student.ts"],"sourcesContent":["export enum JOURNEY_ID_STUDENT {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY = 'CIRCLE_ACTIVITIES_INTRO_JOURNEY',\n CIRCLE_LEADERBOARD_INTRO_JOURNEY = 'CIRCLE_LEADERBOARD_INTRO_JOURNEY',\n CIRCLE_POINTS_REWARD_JOURNEY = 'CIRCLE_POINTS_REWARD_JOURNEY',\n CIRCLE_STREAK_UPDATE_JOURNEY = 'CIRCLE_STREAK_UPDATE_JOURNEY',\n CIRCLE_TUTORIAL_JOURNEY = 'CIRCLE_TUTORIAL_JOURNEY',\n CIRCLE_TABLES_INTRO_JOURNEY = 'CIRCLE_TABLES_INTRO_JOURNEY',\n CIRCLE_TABLES_INFINTE_JOURNEY = 'CIRCLE_TABLES_INFINITE_JOURNEY',\n CIRCLE_LESSONS_K_1_INTRO_JOURNEY = 'CIRCLE_LESSONS_K_1_INTRO_JOURNEY',\n\n // TODO: Deprecate bottom journeys, they are not actually journeys\n CIRCLE_STREAK_REDUCTION_JOURNEY = 'CIRCLE_STREAK_REDUCTION_JOURNEY',\n HOMEPAGE_JOURNEY = 'HOMEPAGE_JOURNEY',\n CHAPTER_PAGE_JOURNEY = 'CHAPTER_PAGE_JOURNEY',\n CHALLENGE_ARENA_JOURNEY = 'CHALLENGE_ARENA_JOURNEY',\n}\n"],"names":["JOURNEY_ID_STUDENT"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,kCAAkC,mCAClCA,EAAA,mCAAmC,oCACnCA,EAAA,+BAA+B,gCAC/BA,EAAA,+BAA+B,gCAC/BA,EAAA,0BAA0B,2BAC1BA,EAAA,8BAA8B,+BAC9BA,EAAA,gCAAgC,kCAChCA,EAAA,mCAAmC,oCAGnCA,EAAA,kCAAkC,mCAClCA,EAAA,mBAAmB,oBACnBA,EAAA,uBAAuB,wBACvBA,EAAA,0BAA0B,2BAdhBA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"journey-id-student.js","sources":["../../../../src/features/journey/journey-id/journey-id-student.ts"],"sourcesContent":["export enum JOURNEY_ID_STUDENT {\n CIRCLE_ACTIVITIES_INTRO_JOURNEY = 'CIRCLE_ACTIVITIES_INTRO_JOURNEY',\n CIRCLE_LEADERBOARD_INTRO_JOURNEY = 'CIRCLE_LEADERBOARD_INTRO_JOURNEY',\n CIRCLE_POINTS_REWARD_JOURNEY = 'CIRCLE_POINTS_REWARD_JOURNEY',\n CIRCLE_STREAK_UPDATE_JOURNEY = 'CIRCLE_STREAK_UPDATE_JOURNEY',\n CIRCLE_TUTORIAL_JOURNEY = 'CIRCLE_TUTORIAL_JOURNEY',\n CIRCLE_TABLES_INTRO_JOURNEY = 'CIRCLE_TABLES_INTRO_JOURNEY',\n CIRCLE_TABLES_INFINTE_JOURNEY = 'CIRCLE_TABLES_INFINITE_JOURNEY',\n CIRCLE_LESSONS_K_1_INTRO_JOURNEY = 'CIRCLE_LESSONS_K_1_INTRO_JOURNEY',\n\n // TODO: Deprecate bottom journeys, they are not actually journeys\n HOMEPAGE_JOURNEY = 'HOMEPAGE_JOURNEY',\n CHAPTER_PAGE_JOURNEY = 'CHAPTER_PAGE_JOURNEY',\n CHALLENGE_ARENA_JOURNEY = 'CHALLENGE_ARENA_JOURNEY',\n}\n"],"names":["JOURNEY_ID_STUDENT"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,kCAAkC,mCAClCA,EAAA,mCAAmC,oCACnCA,EAAA,+BAA+B,gCAC/BA,EAAA,+BAA+B,gCAC/BA,EAAA,0BAA0B,2BAC1BA,EAAA,8BAA8B,+BAC9BA,EAAA,gCAAgC,kCAChCA,EAAA,mCAAmC,oCAGnCA,EAAA,mBAAmB,oBACnBA,EAAA,uBAAuB,wBACvBA,EAAA,0BAA0B,2BAbhBA,IAAAA,KAAA,CAAA,CAAA;"}