@cuemath/leap 3.2.11-mb → 3.2.11

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 (104) hide show
  1. package/dist/assets/lottie/lottie.js +1 -1
  2. package/dist/assets/lottie/lottie.js.map +1 -1
  3. package/dist/features/auth/account-selector/account-selector.js +26 -25
  4. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  5. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +15 -14
  6. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  7. package/dist/features/auth/comps/user-list/user-item/user-item.js +30 -31
  8. package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
  9. package/dist/features/auth/comps/user-list/user-list.js +35 -34
  10. package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
  11. package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -15
  12. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  13. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +6 -7
  14. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  15. package/dist/features/auth/login/login-styled.js +8 -9
  16. package/dist/features/auth/login/login-styled.js.map +1 -1
  17. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +121 -98
  18. package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
  19. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +29 -28
  20. package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
  21. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +43 -42
  22. package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
  23. package/dist/features/circle-games/games/tutorial/tutorial.js +43 -35
  24. package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
  25. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js +2 -2
  26. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
  27. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js +1 -1
  28. package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
  29. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js +26 -24
  30. package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
  31. package/dist/features/circle-games/sign-up/constants.js +3 -1
  32. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  33. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +42 -42
  34. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  35. package/dist/features/journey/comps/coachmark/coachmark.js +29 -27
  36. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  37. package/dist/features/journey/journey-id/journey-id-student.js +2 -2
  38. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  39. package/dist/features/journey/use-journey/journey-context-provider.js +73 -72
  40. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  41. package/dist/features/journey/use-journey/journey-styled.js +6 -4
  42. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  43. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js +6 -0
  44. package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js.map +1 -0
  45. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +12 -60
  46. package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
  47. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +72 -77
  48. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  49. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js +63 -0
  50. package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -0
  51. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js +21 -0
  52. package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -0
  53. package/dist/features/ui/error/error.js +65 -27
  54. package/dist/features/ui/error/error.js.map +1 -1
  55. package/dist/features/ui/modals/modal-styled.js +35 -28
  56. package/dist/features/ui/modals/modal-styled.js.map +1 -1
  57. package/dist/features/ui/modals/modal.js +40 -14
  58. package/dist/features/ui/modals/modal.js.map +1 -1
  59. package/dist/features/ui/nudge/nudge-styled.js +14 -7
  60. package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
  61. package/dist/features/ui/nudge/nudge.js +13 -12
  62. package/dist/features/ui/nudge/nudge.js.map +1 -1
  63. package/dist/features/ui/sticker-grid/sticker-grid-styles.js +86 -0
  64. package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
  65. package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
  66. package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
  67. package/dist/features/ui/sticker-grid/sticker.js +57 -0
  68. package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
  69. package/dist/features/ui/stickers/constants.js +6 -0
  70. package/dist/features/ui/stickers/constants.js.map +1 -0
  71. package/dist/features/ui/stickers/stickers-effects.js +64 -0
  72. package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
  73. package/dist/features/ui/stickers/stickers-styled.js +29 -0
  74. package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
  75. package/dist/features/ui/stickers/stickers-utils.js +91 -0
  76. package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
  77. package/dist/features/ui/stickers/stickers.js +40 -0
  78. package/dist/features/ui/stickers/stickers.js.map +1 -0
  79. package/dist/features/ui/streak-icon/streak-icon-styled.js +13 -13
  80. package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
  81. package/dist/features/ui/streak-icon/streak-icon.js +17 -15
  82. package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
  83. package/dist/features/ui/text/text.js +40 -36
  84. package/dist/features/ui/text/text.js.map +1 -1
  85. package/dist/features/ui/theme/constants.js +4 -2
  86. package/dist/features/ui/theme/constants.js.map +1 -1
  87. package/dist/features/ui/theme/get-device.js +3 -3
  88. package/dist/features/ui/theme/get-device.js.map +1 -1
  89. package/dist/features/worksheet/worksheet/constants.js +12 -13
  90. package/dist/features/worksheet/worksheet/constants.js.map +1 -1
  91. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +246 -260
  92. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  93. package/dist/features/worksheet/worksheet/worksheet-styled.js +37 -28
  94. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  95. package/dist/features/worksheet/worksheet/worksheet.js +166 -164
  96. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  97. package/dist/index.d.ts +48 -16
  98. package/dist/index.js +353 -349
  99. package/dist/index.js.map +1 -1
  100. package/dist/static/nudge-tap.0591aef4.json +1 -0
  101. package/package.json +1 -1
  102. package/dist/features/hooks/use-viewport/use-viewport.js +0 -22
  103. package/dist/features/hooks/use-viewport/use-viewport.js.map +0 -1
  104. package/dist/static/nudge-tap.5cb30093.json +0 -1057
@@ -1,98 +1,106 @@
1
- import { jsx as t, Fragment as G } from "react/jsx-runtime";
2
- import { useRef as H, useCallback as m, useMemo as pe, useEffect as _e } from "react";
1
+ import { jsx as t, Fragment as B } from "react/jsx-runtime";
2
+ import { useRef as U, useCallback as h, useMemo as _e, useEffect as Ie } from "react";
3
+ import { useTheme as Ce } from "styled-components";
3
4
  import ae from "../../../../../assets/line-icons/icons/carat-right.js";
4
- import { PLATFORM_EVENTS_STUDENT as ce } from "../../../../analytics-events/platform-events-student.js";
5
- import { JOURNEY_ID_STUDENT as U } from "../../../../journey/journey-id/journey-id-student.js";
5
+ import { PLATFORM_EVENTS_STUDENT as de } from "../../../../analytics-events/platform-events-student.js";
6
+ import { JOURNEY_ID_STUDENT as Y } from "../../../../journey/journey-id/journey-id-student.js";
6
7
  import { IndicatorType as d } from "../../../../journey/use-journey/constants.js";
7
- import { useJourney as Ie } from "../../../../journey/use-journey/use-journey.js";
8
- import de from "../../../../ui/buttons/icon-button/icon-button.js";
9
- import { useUIContext as Ce } from "../../../../ui/context/context.js";
10
- import B from "../../../../ui/layout/flex-view.js";
8
+ import { useJourney as Ae } from "../../../../journey/use-journey/use-journey.js";
9
+ import Te from "../../../../ui/buttons/icon-button/icon-button.js";
10
+ import { useUIContext as fe } from "../../../../ui/context/context.js";
11
+ import k from "../../../../ui/layout/flex-view.js";
11
12
  import T from "../../../../ui/text/text.js";
12
- import { getTheme as fe } from "../../../../ui/theme/get-theme.js";
13
+ import { EDeviceType as Le } from "../../../../ui/theme/constants.js";
13
14
  import { CIRCLE_ONBOARDING_ANALYTICS_STEPS as s } from "../../../enum/circle-onboarding-steps.js";
14
- import { useCircleSounds as Ae } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
15
- import { SegmentedGameCard as Te } from "../../comps/segmented-game-card/segmented-game-card.js";
15
+ import { useCircleSounds as Oe } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
16
+ import { SegmentedGameCard as me } from "../../comps/segmented-game-card/segmented-game-card.js";
16
17
  import { GAME_LAUNCHER_ANALYTICS_EVENTS as he } from "../../game-launcher-analytics-events.js";
17
- import { GO_TO_NEXT_SLIDE_AFTER_MS as Le, SHOW_LABEL_HIGHLIGHT_AFTER_MS as Re, SHOW_NUDGE_AFTER_MS as ge, SLIDE_TO_LESSON_MS as Oe } from "./constants.js";
18
- import { ProjectType as me } from "../../../games/web-view/enums/project-type-enum.js";
19
- const $e = ({
18
+ import { GO_TO_NEXT_SLIDE_AFTER_MS as Re, SHOW_LABEL_HIGHLIGHT_AFTER_MS as Ne, SHOW_NUDGE_AFTER_MS as se, SLIDE_TO_LESSON_MS as be } from "./constants.js";
19
+ import { ProjectType as ge } from "../../../games/web-view/enums/project-type-enum.js";
20
+ const Fe = ({
20
21
  carouselRefs: i,
21
- onSegmentClick: f,
22
- onJourneyComplete: A
22
+ onSegmentClick: A,
23
+ onJourneyComplete: f
23
24
  }) => {
24
- const { device: se } = fe(), h = se === "mobile", L = h ? "ab3-bold" : "ab2-bold", n = H(null), l = H(null), a = H(null), u = H([]), { playButtonSound: k } = Ae(), { nextCoachmark: g, setJourney: Y, endJourney: R } = Ie(), { onEvent: O } = Ce(), w = m(
25
+ const { device: ue } = Ce(), g = ue < Le.TABLET, L = "ab3-bold", O = "ab2-bold", n = U(null), l = U(null), c = U(null), u = U([]), { playButtonSound: w } = Oe(), { nextCoachmark: m, setJourney: V, endJourney: R } = Ae(), { onEvent: N } = fe(), x = h(
25
26
  (e) => {
26
- O(ce.ONBOARDING_STEP_VIEWED, {
27
+ N(de.ONBOARDING_STEP_VIEWED, {
27
28
  step: e
28
29
  });
29
30
  },
30
- [O]
31
- ), N = m(
31
+ [N]
32
+ ), b = h(
32
33
  (e) => {
33
- O(ce.ONBOARDING_STEP_COMPLETED, {
34
+ N(de.ONBOARDING_STEP_COMPLETED, {
34
35
  step: e
35
36
  });
36
37
  },
37
- [O]
38
- ), E = m(
39
- (e, r, c, S = !1, b) => {
38
+ [N]
39
+ ), E = h(
40
+ (e, r, a, S = !1, P) => {
40
41
  var _, I;
41
- S || (k(), (I = i.current) == null || I.goToIndex(((_ = i.current) == null ? void 0 : _.currentIndex) + 1), g(b, !1, Le)), w(e);
42
+ S || (w(), (I = i.current) == null || I.goToIndex(((_ = i.current) == null ? void 0 : _.currentIndex) + 1), m(P, !1, Re)), x(e);
42
43
  const p = setTimeout(() => {
43
- clearTimeout(p), r.startLabelAnimation(c);
44
- }, Re);
45
- u.current.push(p), g(b, !0, ge);
44
+ clearTimeout(p), r.startLabelAnimation(a);
45
+ }, Ne);
46
+ u.current.push(p), m(P, !0, se);
46
47
  },
47
- [i, g, k, w]
48
- ), x = m(
48
+ [i, m, w, x]
49
+ ), v = h(
49
50
  (e, r) => {
50
- f(e, me.PUZZLE), N(s.PUZZLE_ACTIVITY), R(r), A(r);
51
+ A(e, ge.PUZZLE), b(s.PUZZLE_ACTIVITY), R(r), f(r);
51
52
  },
52
- [R, A, f, N]
53
- ), v = m(
53
+ [R, f, A, b]
54
+ ), y = h(
54
55
  (e, r) => {
55
- f(e, me.LESSON), N(s.SKILL_ACTIVITY), R(r), A(r);
56
+ A(e, ge.LESSON), b(s.SKILL_ACTIVITY), R(r), f(r);
56
57
  },
57
- [R, A, f, N]
58
- ), y = m(
59
- (e, r, c) => {
60
- var M, W, $, D, X, F, Z, K, q, Q, z, j, ee, te, re, ne, ie, oe, le;
61
- const S = !!c, b = !!r;
62
- if (!((M = n == null ? void 0 : n.current) != null && M.segmentedCardWrapperRef.current) || (!((W = i == null ? void 0 : i.current) != null && W.nextBtnRef.current) || !(($ = l == null ? void 0 : l.current) != null && $.labelRef.current) || !((D = a == null ? void 0 : a.current) != null && D.labelRef.current) || !r) && e === U.CIRCLE_ACTIVITIES_INTRO_JOURNEY)
58
+ [R, f, A, b]
59
+ ), M = h(
60
+ (e, r, a) => {
61
+ var D, J, W, X, F, Z, K, q, Q, z, j, ee, te, re, ne, ie, oe, le, ce;
62
+ const S = !!a, P = !!r;
63
+ if (!((D = n == null ? void 0 : n.current) != null && D.segmentedCardWrapperRef.current) || (!((J = i == null ? void 0 : i.current) != null && J.nextBtnRef.current) || !((W = l == null ? void 0 : l.current) != null && W.labelRef.current) || !((X = c == null ? void 0 : c.current) != null && X.labelRef.current) || !r) && e === Y.CIRCLE_ACTIVITIES_INTRO_JOURNEY)
63
64
  return;
64
- const p = ((Z = (F = (X = n.current) == null ? void 0 : X.labelRef) == null ? void 0 : F.current) == null ? void 0 : Z.getBoundingClientRect()) || {
65
+ const p = ((K = (Z = (F = n.current) == null ? void 0 : F.labelRef) == null ? void 0 : Z.current) == null ? void 0 : K.getBoundingClientRect()) || {
65
66
  height: 0,
66
67
  width: 0
67
- }, _ = ((Q = (q = (K = l.current) == null ? void 0 : K.labelRef) == null ? void 0 : q.current) == null ? void 0 : Q.getBoundingClientRect()) || {
68
+ }, _ = ((z = (Q = (q = l.current) == null ? void 0 : q.labelRef) == null ? void 0 : Q.current) == null ? void 0 : z.getBoundingClientRect()) || {
68
69
  height: 0,
69
70
  width: 0
70
- }, I = ((ee = (j = (z = a.current) == null ? void 0 : z.labelRef) == null ? void 0 : j.current) == null ? void 0 : ee.getBoundingClientRect()) || {
71
+ }, I = ((te = (ee = (j = c.current) == null ? void 0 : j.labelRef) == null ? void 0 : ee.current) == null ? void 0 : te.getBoundingClientRect()) || {
71
72
  height: 0,
72
73
  width: 0
73
- }, P = ((ne = (re = (te = n.current) == null ? void 0 : te.segmentedCardWrapperRef) == null ? void 0 : re.current) == null ? void 0 : ne.getBoundingClientRect()) || {
74
+ }, H = ((ie = (ne = (re = n.current) == null ? void 0 : re.segmentedCardWrapperRef) == null ? void 0 : ne.current) == null ? void 0 : ie.getBoundingClientRect()) || {
74
75
  height: 0,
75
76
  width: 0
76
77
  };
77
- let V = [];
78
- if (S && n.current && (V = [
78
+ let G = [];
79
+ if (S && n.current && (G = [
79
80
  {
80
81
  originalElementToHighlightRef: n.current.labelRef,
81
82
  type: d.TOOLTIP,
82
- elementToHighlight: /* @__PURE__ */ t(G, {}),
83
+ elementToHighlight: /* @__PURE__ */ t(B, {}),
83
84
  indicator: {
84
85
  position: "top",
85
86
  backgroundColor: "BLUE_4",
86
- tooltipItem: /* @__PURE__ */ t(B, { children: /* @__PURE__ */ t(T, { $renderAs: L, children: "Get faster & stay ahead in school. Practice 3 new skills everyday." }) }),
87
+ tooltipItem: /* @__PURE__ */ t(k, { children: /* @__PURE__ */ t(
88
+ T,
89
+ {
90
+ $renderOnMobileAs: L,
91
+ $renderAs: O,
92
+ children: "Get faster & stay ahead in school. Practice 3 new skills everyday."
93
+ }
94
+ ) }),
87
95
  tooltipXCoOrdinates: p.width / 2,
88
96
  tooltipYCoOrdinates: p.height + 10
89
97
  }
90
98
  },
91
- e === U.CIRCLE_ACTIVITIES_INTRO_JOURNEY ? {
92
- originalElementToHighlightRef: (ie = i.current) == null ? void 0 : ie.nextBtnRef,
99
+ e === Y.CIRCLE_ACTIVITIES_INTRO_JOURNEY ? {
100
+ originalElementToHighlightRef: (oe = i.current) == null ? void 0 : oe.nextBtnRef,
93
101
  type: d.NUDGE,
94
102
  elementToHighlight: /* @__PURE__ */ t(
95
- de,
103
+ Te,
96
104
  {
97
105
  renderAs: "secondary",
98
106
  Icon: ae,
@@ -108,7 +116,7 @@ const $e = ({
108
116
  ),
109
117
  indicator: {
110
118
  nudge: "click",
111
- content: !h && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
119
+ content: !g && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
112
120
  nudgePointerX: 0,
113
121
  nudgePointerY: 0
114
122
  }
@@ -116,38 +124,45 @@ const $e = ({
116
124
  originalElementToHighlightRef: n.current.segmentedCardWrapperRef,
117
125
  type: d.NUDGE,
118
126
  elementToHighlight: /* @__PURE__ */ t(
119
- Te,
127
+ me,
120
128
  {
121
129
  label: "",
122
- value: c.data.filter((o) => o.status === "pending").length,
123
- maxValue: c.data.length,
124
- initialValue: c.initialProgressValue,
125
- data: c.data.map((o) => ({
130
+ value: a.data.filter((o) => o.status === "completed").length,
131
+ maxValue: a.data.length,
132
+ initialValue: a.initialProgressValue,
133
+ data: a.data.map((o) => ({
126
134
  card: o.cardLottie,
127
135
  name: "",
128
136
  // We dont want to show the name of the puzzle in onboarding
129
137
  isCompleted: o.status === "completed",
130
- onPress: () => v(o, e)
138
+ onPress: () => y(o, e)
131
139
  }))
132
140
  }
133
141
  ),
134
142
  indicator: {
135
143
  nudge: "click",
136
- content: !h && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Tap here to get started" }),
137
- nudgePointerX: P.width * 0.6,
138
- nudgePointerY: P.height * 0.4
144
+ content: !g && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Tap here to get started" }),
145
+ nudgePointerX: H.width * 0.6,
146
+ nudgePointerY: H.height * 0.4
139
147
  }
140
148
  }
141
- ]), e === U.CIRCLE_ACTIVITIES_INTRO_JOURNEY && l.current && a.current && b) {
149
+ ]), e === Y.CIRCLE_ACTIVITIES_INTRO_JOURNEY && l.current && c.current && P) {
142
150
  const o = [
143
151
  {
144
152
  originalElementToHighlightRef: l.current.labelRef,
145
153
  type: d.TOOLTIP,
146
- elementToHighlight: /* @__PURE__ */ t(G, {}),
154
+ elementToHighlight: /* @__PURE__ */ t(B, {}),
147
155
  indicator: {
148
156
  position: "top",
149
157
  backgroundColor: "ORANGE_4",
150
- tooltipItem: /* @__PURE__ */ t(B, { children: /* @__PURE__ */ t(T, { $renderAs: L, children: "Train to think deeper & plan ahead. Play 3 new games everyday." }) }),
158
+ tooltipItem: /* @__PURE__ */ t(k, { children: /* @__PURE__ */ t(
159
+ T,
160
+ {
161
+ $renderOnMobileAs: L,
162
+ $renderAs: O,
163
+ children: "Train to think deeper & plan ahead. Play 3 new games everyday."
164
+ }
165
+ ) }),
151
166
  tooltipXCoOrdinates: _.width / 2,
152
167
  tooltipYCoOrdinates: _.height + 10
153
168
  }
@@ -156,13 +171,13 @@ const $e = ({
156
171
  originalElementToHighlightRef: i.current.nextBtnRef,
157
172
  type: d.NUDGE,
158
173
  elementToHighlight: /* @__PURE__ */ t(
159
- de,
174
+ Te,
160
175
  {
161
176
  renderAs: "secondary",
162
177
  Icon: ae,
163
178
  onClick: () => E(
164
179
  s.PUZZLE_ACTIVITY,
165
- a.current,
180
+ c.current,
166
181
  "PURPLE_4",
167
182
  !1,
168
183
  e
@@ -172,29 +187,36 @@ const $e = ({
172
187
  ),
173
188
  indicator: {
174
189
  nudge: "click",
175
- content: !h && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
190
+ content: !g && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to proceed" }),
176
191
  nudgePointerX: 0,
177
192
  nudgePointerY: 0
178
193
  }
179
194
  }
180
- ], Ee = [
195
+ ], pe = [
181
196
  {
182
- originalElementToHighlightRef: a.current.labelRef,
197
+ originalElementToHighlightRef: c.current.labelRef,
183
198
  type: d.TOOLTIP,
184
- elementToHighlight: /* @__PURE__ */ t(G, {}),
199
+ elementToHighlight: /* @__PURE__ */ t(B, {}),
185
200
  indicator: {
186
201
  position: "top",
187
202
  backgroundColor: "PURPLE_4",
188
- tooltipItem: /* @__PURE__ */ t(B, { children: /* @__PURE__ */ t(T, { $renderAs: L, children: "Think in new ways & stay sharp. Solve 3 new puzzles everyday." }) }),
203
+ tooltipItem: /* @__PURE__ */ t(k, { children: /* @__PURE__ */ t(
204
+ T,
205
+ {
206
+ $renderOnMobileAs: L,
207
+ $renderAs: O,
208
+ children: "Think in new ways & stay sharp. Solve 3 new puzzles everyday."
209
+ }
210
+ ) }),
189
211
  tooltipXCoOrdinates: I.width / 2,
190
212
  tooltipYCoOrdinates: I.height + 10
191
213
  }
192
214
  },
193
215
  {
194
- originalElementToHighlightRef: a.current.segmentedCardWrapperRef,
216
+ originalElementToHighlightRef: c.current.segmentedCardWrapperRef,
195
217
  type: d.NUDGE,
196
218
  elementToHighlight: /* @__PURE__ */ t(
197
- Te,
219
+ me,
198
220
  {
199
221
  label: "",
200
222
  value: r.data.filter((C) => C.solved).length,
@@ -205,59 +227,60 @@ const $e = ({
205
227
  name: "",
206
228
  // We dont want to show the name of the puzzle in onboarding
207
229
  isCompleted: C.solved,
208
- onPress: () => x(C, e)
230
+ onPress: () => v(C, e)
209
231
  }))
210
232
  }
211
233
  ),
212
234
  indicator: {
213
235
  nudge: "click",
214
- content: !h && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to solve a puzzle" }),
215
- nudgePointerX: P.width * 0.6,
216
- nudgePointerY: P.height * 0.4
236
+ content: !g && /* @__PURE__ */ t(T, { $renderAs: "ab1", $color: "WHITE", children: "Click to solve a puzzle" }),
237
+ nudgePointerX: H.width * 0.6,
238
+ nudgePointerY: H.height * 0.4
217
239
  }
218
240
  }
219
241
  ];
220
- Y(e, [...V, ...o, ...Ee]);
242
+ V(e, [...G, ...o, ...pe]);
221
243
  } else
222
- Y(e, V);
223
- (oe = i.current) == null || oe.goToIndex(0);
224
- const J = setTimeout(() => {
225
- clearTimeout(J), g(e);
226
- }, Oe);
227
- if (u.current.push(J), e === U.CIRCLE_ACTIVITIES_INTRO_JOURNEY)
244
+ V(e, G);
245
+ (le = i.current) == null || le.goToIndex(0);
246
+ const $ = setTimeout(() => {
247
+ clearTimeout($), m(e);
248
+ }, be);
249
+ if (u.current.push($), e === Y.CIRCLE_ACTIVITIES_INTRO_JOURNEY)
228
250
  S && n.current ? E(s.SKILL_ACTIVITY, n.current, "BLUE_4", !0, e) : E(s.GAMES_ACTIVITY, l.current, "ORANGE_4", !0, e);
229
251
  else {
230
- (le = n.current) == null || le.startLabelAnimation("BLUE_4");
252
+ (ce = n.current) == null || ce.startLabelAnimation("BLUE_4");
231
253
  const o = setTimeout(() => {
232
- clearTimeout(o), g(e, !0);
233
- }, ge);
254
+ clearTimeout(o), m(e, !0);
255
+ }, se);
234
256
  u.current.push(o);
235
257
  }
236
258
  },
237
259
  [
238
260
  i,
239
261
  L,
240
- h,
241
- Y,
262
+ O,
263
+ g,
264
+ V,
242
265
  E,
266
+ y,
243
267
  v,
244
- x,
245
- g
268
+ m
246
269
  ]
247
- ), ue = pe(
270
+ ), Ee = _e(
248
271
  () => ({
249
272
  gameRefs: l,
250
273
  lessonRefs: n,
251
- puzzleRefs: a,
252
- startJourney: y
274
+ puzzleRefs: c,
275
+ startJourney: M
253
276
  }),
254
- [y]
277
+ [M]
255
278
  );
256
- return _e(() => () => {
279
+ return Ie(() => () => {
257
280
  u.current.forEach((e) => clearTimeout(e)), u.current = [];
258
- }, [i]), ue;
281
+ }, [i]), Ee;
259
282
  };
260
283
  export {
261
- $e as useGameLauncherJourney
284
+ Fe as useGameLauncherJourney
262
285
  };
263
286
  //# sourceMappingURL=use-game-launcher-journey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-game-launcher-journey.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.tsx"],"sourcesContent":["import type { TCoachmarkJourneyProps } from '../../../../journey/use-journey/journey-context-types';\nimport type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../../ui/nudge/nudge-types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type { ISegmentedGameCardRefs } from '../../comps/segmented-game-card/segmented-game-card-types';\nimport type {\n IProject,\n Lesson,\n Puzzle,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IUseGameLauncherJourneyProps } from './use-game-launcher-journey-types';\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport CaratRightIcon from '../../../../../assets/line-icons/icons/carat-right';\nimport { PLATFORM_EVENTS_STUDENT as AnalyticsLabel } from '../../../../analytics-events/platform-events-student';\nimport { JOURNEY_ID_STUDENT } from '../../../../journey/journey-id/journey-id-student';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { getTheme } from '../../../../ui/theme/get-theme';\nimport { CIRCLE_ONBOARDING_ANALYTICS_STEPS as ActionEvent } from '../../../enum/circle-onboarding-steps';\nimport { ProjectType } from '../../../games/web-view/enums';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { SegmentedGameCard } from '../../comps/segmented-game-card/segmented-game-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport {\n GO_TO_NEXT_SLIDE_AFTER_MS,\n SHOW_LABEL_HIGHLIGHT_AFTER_MS,\n SHOW_NUDGE_AFTER_MS,\n SLIDE_TO_LESSON_MS,\n} from './constants';\n\nexport const useGameLauncherJourney = ({\n carouselRefs,\n onSegmentClick,\n onJourneyComplete,\n}: IUseGameLauncherJourneyProps) => {\n const { device } = getTheme();\n const isMobile = device === 'mobile';\n const tooltipTextRenderAs = isMobile ? 'ab3-bold' : 'ab2-bold';\n\n const lessonRefs = useRef<ISegmentedGameCardRefs>(null);\n const gameRefs = useRef<ISegmentedGameCardRefs>(null);\n const puzzleRefs = useRef<ISegmentedGameCardRefs>(null);\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const { playButtonSound } = useCircleSounds();\n const { nextCoachmark, setJourney, endJourney } = useJourney();\n const { onEvent: trackAnalytics } = useUIContext();\n\n const trackEventViewed = useCallback(\n (step: ActionEvent) => {\n trackAnalytics(AnalyticsLabel.ONBOARDING_STEP_VIEWED, {\n step,\n });\n },\n [trackAnalytics],\n );\n const trackEventCompleted = useCallback(\n (step: ActionEvent) => {\n trackAnalytics(AnalyticsLabel.ONBOARDING_STEP_COMPLETED, {\n step,\n });\n },\n [trackAnalytics],\n );\n\n const goToNextCard = useCallback(\n (\n analyticsLabelViewed: ActionEvent,\n refOfNextSlide: ISegmentedGameCardRefs,\n color: TColorNames,\n isFirstSlide: boolean = false,\n journeyId: JOURNEY_ID_STUDENT,\n ) => {\n if (!isFirstSlide) {\n playButtonSound();\n carouselRefs.current?.goToIndex(carouselRefs.current?.currentIndex + 1);\n nextCoachmark(journeyId, false, GO_TO_NEXT_SLIDE_AFTER_MS);\n }\n\n trackEventViewed(analyticsLabelViewed);\n\n const animateLabelTimer = setTimeout(() => {\n clearTimeout(animateLabelTimer);\n refOfNextSlide.startLabelAnimation(color);\n }, SHOW_LABEL_HIGHLIGHT_AFTER_MS);\n\n timerRefs.current.push(animateLabelTimer); // Store to cleanup later\n\n nextCoachmark(journeyId, true, SHOW_NUDGE_AFTER_MS);\n },\n [carouselRefs, nextCoachmark, playButtonSound, trackEventViewed],\n );\n\n const handleEndJourneyForPuzzle = useCallback(\n (puzzlesData: Puzzle, journeyId: JOURNEY_ID_STUDENT) => {\n onSegmentClick(puzzlesData, ProjectType.PUZZLE);\n trackEventCompleted(ActionEvent.PUZZLE_ACTIVITY);\n endJourney(journeyId);\n onJourneyComplete(journeyId);\n },\n [endJourney, onJourneyComplete, onSegmentClick, trackEventCompleted],\n );\n\n const handleEndJourneyForLesson = useCallback(\n (lessonsData: Lesson, journeyId: JOURNEY_ID_STUDENT) => {\n onSegmentClick(lessonsData, ProjectType.LESSON);\n trackEventCompleted(ActionEvent.SKILL_ACTIVITY);\n endJourney(journeyId);\n onJourneyComplete(journeyId);\n },\n [endJourney, onJourneyComplete, onSegmentClick, trackEventCompleted],\n );\n\n const startJourney = useCallback(\n (\n journeyId: JOURNEY_ID_STUDENT,\n puzzlesData?: IProject<Puzzle>,\n lessonsData?: IProject<Lesson>,\n ) => {\n // If element refs are not available return, this is just for type safety\n const isLessonAvailable = !!lessonsData;\n const isPuzzleAvailable = !!puzzlesData;\n\n if (!lessonRefs?.current?.segmentedCardWrapperRef.current) return;\n\n if (\n (!carouselRefs?.current?.nextBtnRef.current ||\n !gameRefs?.current?.labelRef.current ||\n !puzzleRefs?.current?.labelRef.current ||\n !puzzlesData) &&\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY\n ) {\n return;\n }\n\n const lessonLabelDims = lessonRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n const gameLabelDims = gameRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n const puzzleLabelDims = puzzleRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n const launcherDims =\n lessonRefs.current?.segmentedCardWrapperRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n let lessonSteps: TCoachmarkJourneyProps[] = [];\n\n if (isLessonAvailable && lessonRefs.current) {\n lessonSteps = [\n {\n originalElementToHighlightRef: lessonRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'BLUE_4',\n tooltipItem: (\n <FlexView>\n <Text $renderAs={tooltipTextRenderAs}>\n Get faster & stay ahead in school. Practice 3 new skills everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: lessonLabelDims.width / 2,\n tooltipYCoOrdinates: lessonLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY\n ? {\n originalElementToHighlightRef: carouselRefs.current?.nextBtnRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={() =>\n goToNextCard(\n ActionEvent.GAMES_ACTIVITY,\n gameRefs.current as ISegmentedGameCardRefs,\n 'ORANGE_4',\n false,\n journeyId,\n )\n }\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n }\n : {\n originalElementToHighlightRef: lessonRefs.current.segmentedCardWrapperRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <SegmentedGameCard\n label={''} // This is intentionally left blank to avoid showing the label\n value={lessonsData.data.filter(lesson => lesson.status === 'pending').length}\n maxValue={lessonsData.data.length}\n initialValue={lessonsData.initialProgressValue}\n data={lessonsData.data.map(lesson => ({\n card: lesson.cardLottie,\n name: '', // We dont want to show the name of the puzzle in onboarding\n isCompleted: lesson.status === 'completed',\n onPress: () => handleEndJourneyForLesson(lesson, journeyId),\n }))}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Tap here to get started\n </Text>\n ),\n nudgePointerX: launcherDims.width * 0.6,\n nudgePointerY: launcherDims.height * 0.4,\n } as INudgeProps,\n },\n ];\n }\n\n if (\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY &&\n gameRefs.current &&\n puzzleRefs.current &&\n isPuzzleAvailable\n ) {\n const gameSteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: gameRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'ORANGE_4',\n tooltipItem: (\n <FlexView>\n <Text $renderAs={tooltipTextRenderAs}>\n Train to think deeper & plan ahead. Play 3 new games everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: gameLabelDims.width / 2,\n tooltipYCoOrdinates: gameLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n {\n originalElementToHighlightRef: carouselRefs.current.nextBtnRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={() =>\n goToNextCard(\n ActionEvent.PUZZLE_ACTIVITY,\n puzzleRefs.current as ISegmentedGameCardRefs,\n 'PURPLE_4',\n false,\n journeyId,\n )\n }\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n },\n ];\n\n const puzzleSteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: puzzleRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'PURPLE_4',\n tooltipItem: (\n <FlexView>\n <Text $renderAs={tooltipTextRenderAs}>\n Think in new ways & stay sharp. Solve 3 new puzzles everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: puzzleLabelDims.width / 2,\n tooltipYCoOrdinates: puzzleLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n {\n originalElementToHighlightRef: puzzleRefs.current.segmentedCardWrapperRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <SegmentedGameCard\n label={''} // This is intentionally left blank to avoid showing the label\n value={puzzlesData.data.filter(puzzle => puzzle.solved).length}\n maxValue={puzzlesData.data.length}\n initialValue={puzzlesData.initialProgressValue}\n data={puzzlesData.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: '', // We dont want to show the name of the puzzle in onboarding\n isCompleted: puzzle.solved,\n onPress: () => handleEndJourneyForPuzzle(puzzle, journeyId),\n }))}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to solve a puzzle\n </Text>\n ),\n nudgePointerX: launcherDims.width * 0.6,\n nudgePointerY: launcherDims.height * 0.4,\n } as INudgeProps,\n },\n ];\n\n setJourney(journeyId, [...lessonSteps, ...gameSteps, ...puzzleSteps]);\n } else {\n setJourney(journeyId, lessonSteps);\n }\n carouselRefs.current?.goToIndex(0); // Always start from 0th Index no matter what the current index is\n\n const delayBeforeStart = setTimeout(() => {\n clearTimeout(delayBeforeStart);\n nextCoachmark(journeyId);\n }, SLIDE_TO_LESSON_MS);\n\n timerRefs.current.push(delayBeforeStart); // Store to cleanup later\n\n if (journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY) {\n if (isLessonAvailable && lessonRefs.current) {\n goToNextCard(ActionEvent.SKILL_ACTIVITY, lessonRefs.current, 'BLUE_4', true, journeyId);\n } else {\n goToNextCard(ActionEvent.GAMES_ACTIVITY, gameRefs.current!, 'ORANGE_4', true, journeyId);\n }\n } else {\n lessonRefs.current?.startLabelAnimation('BLUE_4');\n const delayBeforeShowingNudge = setTimeout(() => {\n clearTimeout(delayBeforeShowingNudge);\n nextCoachmark(journeyId, true);\n }, SHOW_NUDGE_AFTER_MS);\n\n timerRefs.current.push(delayBeforeShowingNudge); // Store to cleanup later\n }\n },\n [\n carouselRefs,\n tooltipTextRenderAs,\n isMobile,\n setJourney,\n goToNextCard,\n handleEndJourneyForLesson,\n handleEndJourneyForPuzzle,\n nextCoachmark,\n ],\n );\n\n const data = useMemo(\n () => ({\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n }),\n [startJourney],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n timerRefs.current.forEach(timer => clearTimeout(timer));\n timerRefs.current = [];\n };\n }, [carouselRefs]);\n\n return data;\n};\n"],"names":["useGameLauncherJourney","carouselRefs","onSegmentClick","onJourneyComplete","device","getTheme","isMobile","tooltipTextRenderAs","lessonRefs","useRef","gameRefs","puzzleRefs","timerRefs","playButtonSound","useCircleSounds","nextCoachmark","setJourney","endJourney","useJourney","trackAnalytics","useUIContext","trackEventViewed","useCallback","step","AnalyticsLabel","trackEventCompleted","goToNextCard","analyticsLabelViewed","refOfNextSlide","color","isFirstSlide","journeyId","_b","_a","GO_TO_NEXT_SLIDE_AFTER_MS","animateLabelTimer","SHOW_LABEL_HIGHLIGHT_AFTER_MS","SHOW_NUDGE_AFTER_MS","handleEndJourneyForPuzzle","puzzlesData","ProjectType","ActionEvent","handleEndJourneyForLesson","lessonsData","startJourney","isLessonAvailable","isPuzzleAvailable","_c","_d","JOURNEY_ID_STUDENT","lessonLabelDims","_g","_f","_e","gameLabelDims","_j","_i","_h","puzzleLabelDims","_m","_l","_k","launcherDims","_p","_o","_n","lessonSteps","IndicatorType","jsx","Fragment","FlexView","Text","_q","IconButton","CaratRightIcon","GAME_LAUNCHER_ANALYTICS_EVENTS","SegmentedGameCard","lesson","gameSteps","puzzleSteps","puzzle","_r","delayBeforeStart","SLIDE_TO_LESSON_MS","_s","delayBeforeShowingNudge","data","useMemo","useEffect","timer"],"mappings":";;;;;;;;;;;;;;;;;;AAoCO,MAAMA,KAAyB,CAAC;AAAA,EACrC,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AACF,MAAoC;AAC5B,QAAA,EAAE,QAAAC,OAAWC,MACbC,IAAWF,OAAW,UACtBG,IAAsBD,IAAW,aAAa,YAE9CE,IAAaC,EAA+B,IAAI,GAChDC,IAAWD,EAA+B,IAAI,GAC9CE,IAAaF,EAA+B,IAAI,GAChDG,IAAYH,EAAwC,CAAA,CAAE,GAEtD,EAAE,iBAAAI,MAAoBC,MACtB,EAAE,eAAAC,GAAe,YAAAC,GAAY,YAAAC,MAAeC,GAAW,GACvD,EAAE,SAASC,EAAe,IAAIC,GAAa,GAE3CC,IAAmBC;AAAA,IACvB,CAACC,MAAsB;AACrB,MAAAJ,EAAeK,GAAe,wBAAwB;AAAA,QACpD,MAAAD;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACJ,CAAc;AAAA,EAAA,GAEXM,IAAsBH;AAAA,IAC1B,CAACC,MAAsB;AACrB,MAAAJ,EAAeK,GAAe,2BAA2B;AAAA,QACvD,MAAAD;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACJ,CAAc;AAAA,EAAA,GAGXO,IAAeJ;AAAA,IACnB,CACEK,GACAC,GACAC,GACAC,IAAwB,IACxBC,MACG;;AACH,MAAKD,MACajB,MAChBmB,IAAA/B,EAAa,YAAb,QAAA+B,EAAsB,YAAUC,IAAAhC,EAAa,YAAb,gBAAAgC,EAAsB,gBAAe,IACvDlB,EAAAgB,GAAW,IAAOG,EAAyB,IAG3Db,EAAiBM,CAAoB;AAE/B,YAAAQ,IAAoB,WAAW,MAAM;AACzC,qBAAaA,CAAiB,GAC9BP,EAAe,oBAAoBC,CAAK;AAAA,SACvCO,EAA6B;AAEtB,MAAAxB,EAAA,QAAQ,KAAKuB,CAAiB,GAE1BpB,EAAAgB,GAAW,IAAMM,EAAmB;AAAA,IACpD;AAAA,IACA,CAACpC,GAAcc,GAAeF,GAAiBQ,CAAgB;AAAA,EAAA,GAG3DiB,IAA4BhB;AAAA,IAChC,CAACiB,GAAqBR,MAAkC;AACvC,MAAA7B,EAAAqC,GAAaC,GAAY,MAAM,GAC9Cf,EAAoBgB,EAAY,eAAe,GAC/CxB,EAAWc,CAAS,GACpB5B,EAAkB4B,CAAS;AAAA,IAC7B;AAAA,IACA,CAACd,GAAYd,GAAmBD,GAAgBuB,CAAmB;AAAA,EAAA,GAG/DiB,IAA4BpB;AAAA,IAChC,CAACqB,GAAqBZ,MAAkC;AACvC,MAAA7B,EAAAyC,GAAaH,GAAY,MAAM,GAC9Cf,EAAoBgB,EAAY,cAAc,GAC9CxB,EAAWc,CAAS,GACpB5B,EAAkB4B,CAAS;AAAA,IAC7B;AAAA,IACA,CAACd,GAAYd,GAAmBD,GAAgBuB,CAAmB;AAAA,EAAA,GAG/DmB,IAAetB;AAAA,IACnB,CACES,GACAQ,GACAI,MACG;;AAEG,YAAAE,IAAoB,CAAC,CAACF,GACtBG,IAAoB,CAAC,CAACP;AAI5B,UAFI,GAACN,IAAAzB,KAAA,gBAAAA,EAAY,YAAZ,QAAAyB,EAAqB,wBAAwB,aAG/C,GAACD,IAAA/B,KAAA,gBAAAA,EAAc,YAAd,QAAA+B,EAAuB,WAAW,YAClC,GAACe,IAAArC,KAAA,gBAAAA,EAAU,YAAV,QAAAqC,EAAmB,SAAS,YAC7B,GAACC,IAAArC,KAAA,gBAAAA,EAAY,YAAZ,QAAAqC,EAAqB,SAAS,YAC/B,CAACT,MACHR,MAAckB,EAAmB;AAEjC;AAGF,YAAMC,MAAkBC,KAAAC,KAAAC,IAAA7C,EAAW,YAAX,gBAAA6C,EAAoB,aAApB,gBAAAD,EAA8B,YAA9B,gBAAAD,EAAuC,4BAA2B;AAAA,QACxF,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA,GAGHG,MAAgBC,KAAAC,KAAAC,IAAA/C,EAAS,YAAT,gBAAA+C,EAAkB,aAAlB,gBAAAD,EAA4B,YAA5B,gBAAAD,EAAqC,4BAA2B;AAAA,QACpF,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA,GAEHG,MAAkBC,MAAAC,KAAAC,IAAAlD,EAAW,YAAX,gBAAAkD,EAAoB,aAApB,gBAAAD,EAA8B,YAA9B,gBAAAD,GAAuC,4BAA2B;AAAA,QACxF,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA,GAGHG,MACJC,MAAAC,MAAAC,KAAAzD,EAAW,YAAX,gBAAAyD,GAAoB,4BAApB,gBAAAD,GAA6C,YAA7C,gBAAAD,GAAsD,4BAA2B;AAAA,QAC/E,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAGX,UAAIG,IAAwC,CAAA;AAoF5C,UAlFIrB,KAAqBrC,EAAW,YACpB0D,IAAA;AAAA,QACZ;AAAA,UACE,+BAA+B1D,EAAW,QAAQ;AAAA,UAClD,MAAM2D,EAAc;AAAA,UACpB,oBAAsB,gBAAAC,EAAAC,GAAA,EAAA;AAAA,UACtB,WAAW;AAAA,YACT,UAAU;AAAA,YACV,iBAAiB;AAAA,YACjB,+BACGC,GACC,EAAA,UAAA,gBAAAF,EAACG,KAAK,WAAWhE,GAAqB,gFAEtC,EACF,CAAA;AAAA,YAEF,qBAAqB2C,EAAgB,QAAQ;AAAA,YAC7C,qBAAqBA,EAAgB,SAAS;AAAA,UAChD;AAAA,QACF;AAAA,QACAnB,MAAckB,EAAmB,kCAC7B;AAAA,UACE,gCAA+BuB,KAAAvE,EAAa,YAAb,gBAAAuE,GAAsB;AAAA,UACrD,MAAML,EAAc;AAAA,UACpB,oBACE,gBAAAC;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAMC;AAAA,cACN,SAAS,MACPhD;AAAA,gBACEe,EAAY;AAAA,gBACZ/B,EAAS;AAAA,gBACT;AAAA,gBACA;AAAA,gBACAqB;AAAA,cACF;AAAA,cAEF,gBAAgB4C,GAA+B;AAAA,YAAA;AAAA,UACjD;AAAA,UAEF,WAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS,CAACrE,KACR,gBAAA8D,EAACG,KAAK,WAAU,OAAM,QAAO,SAAQ,UAErC,mBAAA,CAAA;AAAA,YAEF,eAAe;AAAA,YACf,eAAe;AAAA,UACjB;AAAA,QAAA,IAEF;AAAA,UACE,+BAA+B/D,EAAW,QAAQ;AAAA,UAClD,MAAM2D,EAAc;AAAA,UACpB,oBACE,gBAAAC;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,cACP,OAAOjC,EAAY,KAAK,OAAO,OAAUkC,EAAO,WAAW,SAAS,EAAE;AAAA,cACtE,UAAUlC,EAAY,KAAK;AAAA,cAC3B,cAAcA,EAAY;AAAA,cAC1B,MAAMA,EAAY,KAAK,IAAI,CAAWkC,OAAA;AAAA,gBACpC,MAAMA,EAAO;AAAA,gBACb,MAAM;AAAA;AAAA,gBACN,aAAaA,EAAO,WAAW;AAAA,gBAC/B,SAAS,MAAMnC,EAA0BmC,GAAQ9C,CAAS;AAAA,cAAA,EAC1D;AAAA,YAAA;AAAA,UACJ;AAAA,UAEF,WAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS,CAACzB,KACR,gBAAA8D,EAACG,KAAK,WAAU,OAAM,QAAO,SAAQ,UAErC,0BAAA,CAAA;AAAA,YAEF,eAAeT,EAAa,QAAQ;AAAA,YACpC,eAAeA,EAAa,SAAS;AAAA,UACvC;AAAA,QACF;AAAA,MAAA,IAKN/B,MAAckB,EAAmB,mCACjCvC,EAAS,WACTC,EAAW,WACXmC,GACA;AACA,cAAMgC,IAAsC;AAAA,UAC1C;AAAA,YACE,+BAA+BpE,EAAS,QAAQ;AAAA,YAChD,MAAMyD,EAAc;AAAA,YACpB,oBAAsB,gBAAAC,EAAAC,GAAA,EAAA;AAAA,YACtB,WAAW;AAAA,cACT,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,+BACGC,GACC,EAAA,UAAA,gBAAAF,EAACG,KAAK,WAAWhE,GAAqB,4EAEtC,EACF,CAAA;AAAA,cAEF,qBAAqB+C,EAAc,QAAQ;AAAA,cAC3C,qBAAqBA,EAAc,SAAS;AAAA,YAC9C;AAAA,UACF;AAAA,UACA;AAAA,YACE,+BAA+BrD,EAAa,QAAQ;AAAA,YACpD,MAAMkE,EAAc;AAAA,YACpB,oBACE,gBAAAC;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,MAAMC;AAAA,gBACN,SAAS,MACPhD;AAAA,kBACEe,EAAY;AAAA,kBACZ9B,EAAW;AAAA,kBACX;AAAA,kBACA;AAAA,kBACAoB;AAAA,gBACF;AAAA,gBAEF,gBAAgB4C,GAA+B;AAAA,cAAA;AAAA,YACjD;AAAA,YAEF,WAAW;AAAA,cACT,OAAO;AAAA,cACP,SAAS,CAACrE,KACR,gBAAA8D,EAACG,KAAK,WAAU,OAAM,QAAO,SAAQ,UAErC,mBAAA,CAAA;AAAA,cAEF,eAAe;AAAA,cACf,eAAe;AAAA,YACjB;AAAA,UACF;AAAA,QAAA,GAGIQ,KAAwC;AAAA,UAC5C;AAAA,YACE,+BAA+BpE,EAAW,QAAQ;AAAA,YAClD,MAAMwD,EAAc;AAAA,YACpB,oBAAsB,gBAAAC,EAAAC,GAAA,EAAA;AAAA,YACtB,WAAW;AAAA,cACT,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,+BACGC,GACC,EAAA,UAAA,gBAAAF,EAACG,KAAK,WAAWhE,GAAqB,2EAEtC,EACF,CAAA;AAAA,cAEF,qBAAqBmD,EAAgB,QAAQ;AAAA,cAC7C,qBAAqBA,EAAgB,SAAS;AAAA,YAChD;AAAA,UACF;AAAA,UACA;AAAA,YACE,+BAA+B/C,EAAW,QAAQ;AAAA,YAClD,MAAMwD,EAAc;AAAA,YACpB,oBACE,gBAAAC;AAAA,cAACQ;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,gBACP,OAAOrC,EAAY,KAAK,OAAO,CAAUyC,MAAAA,EAAO,MAAM,EAAE;AAAA,gBACxD,UAAUzC,EAAY,KAAK;AAAA,gBAC3B,cAAcA,EAAY;AAAA,gBAC1B,MAAMA,EAAY,KAAK,IAAI,CAAWyC,OAAA;AAAA,kBACpC,MAAMA,EAAO;AAAA,kBACb,MAAM;AAAA;AAAA,kBACN,aAAaA,EAAO;AAAA,kBACpB,SAAS,MAAM1C,EAA0B0C,GAAQjD,CAAS;AAAA,gBAAA,EAC1D;AAAA,cAAA;AAAA,YACJ;AAAA,YAEF,WAAW;AAAA,cACT,OAAO;AAAA,cACP,SAAS,CAACzB,KACR,gBAAA8D,EAACG,KAAK,WAAU,OAAM,QAAO,SAAQ,UAErC,0BAAA,CAAA;AAAA,cAEF,eAAeT,EAAa,QAAQ;AAAA,cACpC,eAAeA,EAAa,SAAS;AAAA,YACvC;AAAA,UACF;AAAA,QAAA;AAGS,QAAA9C,EAAAe,GAAW,CAAC,GAAGmC,GAAa,GAAGY,GAAW,GAAGC,EAAW,CAAC;AAAA,MAAA;AAEpE,QAAA/D,EAAWe,GAAWmC,CAAW;AAEtB,OAAAe,KAAAhF,EAAA,YAAA,QAAAgF,GAAS,UAAU;AAE1B,YAAAC,IAAmB,WAAW,MAAM;AACxC,qBAAaA,CAAgB,GAC7BnE,EAAcgB,CAAS;AAAA,SACtBoD,EAAkB;AAIjB,UAFMvE,EAAA,QAAQ,KAAKsE,CAAgB,GAEnCnD,MAAckB,EAAmB;AAC/B,QAAAJ,KAAqBrC,EAAW,UAClCkB,EAAae,EAAY,gBAAgBjC,EAAW,SAAS,UAAU,IAAMuB,CAAS,IAEtFL,EAAae,EAAY,gBAAgB/B,EAAS,SAAU,YAAY,IAAMqB,CAAS;AAAA,WAEpF;AACM,SAAAqD,KAAA5E,EAAA,YAAA,QAAA4E,GAAS,oBAAoB;AAClC,cAAAC,IAA0B,WAAW,MAAM;AAC/C,uBAAaA,CAAuB,GACpCtE,EAAcgB,GAAW,EAAI;AAAA,WAC5BM,EAAmB;AAEZ,QAAAzB,EAAA,QAAQ,KAAKyE,CAAuB;AAAA,MAChD;AAAA,IACF;AAAA,IACA;AAAA,MACEpF;AAAA,MACAM;AAAA,MACAD;AAAA,MACAU;AAAA,MACAU;AAAA,MACAgB;AAAA,MACAJ;AAAA,MACAvB;AAAA,IACF;AAAA,EAAA,GAGIuE,KAAOC;AAAA,IACX,OAAO;AAAA,MACL,UAAA7E;AAAA,MACA,YAAAF;AAAA,MACA,YAAAG;AAAA,MACA,cAAAiC;AAAA,IAAA;AAAA,IAEF,CAACA,CAAY;AAAA,EAAA;AAIf,SAAA4C,GAAU,MACD,MAAM;AACX,IAAA5E,EAAU,QAAQ,QAAQ,CAAS6E,MAAA,aAAaA,CAAK,CAAC,GACtD7E,EAAU,UAAU;EAAC,GAEtB,CAACX,CAAY,CAAC,GAEVqF;AACT;"}
1
+ {"version":3,"file":"use-game-launcher-journey.js","sources":["../../../../../../src/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.tsx"],"sourcesContent":["import type { TCoachmarkJourneyProps } from '../../../../journey/use-journey/journey-context-types';\nimport type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { INudgeProps } from '../../../../ui/nudge/nudge-types';\nimport type { TColorNames } from '../../../../ui/types';\nimport type { ISegmentedGameCardRefs } from '../../comps/segmented-game-card/segmented-game-card-types';\nimport type {\n IProject,\n Lesson,\n Puzzle,\n} from '../../dal/use-get-circle-home-details-dal/use-get-circle-home-dal-types';\nimport type { IUseGameLauncherJourneyProps } from './use-game-launcher-journey-types';\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport CaratRightIcon from '../../../../../assets/line-icons/icons/carat-right';\nimport { PLATFORM_EVENTS_STUDENT as AnalyticsLabel } from '../../../../analytics-events/platform-events-student';\nimport { JOURNEY_ID_STUDENT } from '../../../../journey/journey-id/journey-id-student';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { EDeviceType } from '../../../../ui/theme/constants';\nimport { CIRCLE_ONBOARDING_ANALYTICS_STEPS as ActionEvent } from '../../../enum/circle-onboarding-steps';\nimport { ProjectType } from '../../../games/web-view/enums';\nimport { useCircleSounds } from '../../../hooks/use-circle-sounds/use-circle-sounds';\nimport { SegmentedGameCard } from '../../comps/segmented-game-card/segmented-game-card';\nimport { GAME_LAUNCHER_ANALYTICS_EVENTS } from '../../game-launcher-analytics-events';\nimport {\n GO_TO_NEXT_SLIDE_AFTER_MS,\n SHOW_LABEL_HIGHLIGHT_AFTER_MS,\n SHOW_NUDGE_AFTER_MS,\n SLIDE_TO_LESSON_MS,\n} from './constants';\n\nexport const useGameLauncherJourney = ({\n carouselRefs,\n onSegmentClick,\n onJourneyComplete,\n}: IUseGameLauncherJourneyProps) => {\n const { device } = useTheme();\n const isMobile = device < EDeviceType.TABLET;\n const tooltipTextRenderAsOnMobile = 'ab3-bold';\n const tooltipTextRenderAs = 'ab2-bold';\n\n const lessonRefs = useRef<ISegmentedGameCardRefs>(null);\n const gameRefs = useRef<ISegmentedGameCardRefs>(null);\n const puzzleRefs = useRef<ISegmentedGameCardRefs>(null);\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const { playButtonSound } = useCircleSounds();\n const { nextCoachmark, setJourney, endJourney } = useJourney();\n const { onEvent: trackAnalytics } = useUIContext();\n\n const trackEventViewed = useCallback(\n (step: ActionEvent) => {\n trackAnalytics(AnalyticsLabel.ONBOARDING_STEP_VIEWED, {\n step,\n });\n },\n [trackAnalytics],\n );\n const trackEventCompleted = useCallback(\n (step: ActionEvent) => {\n trackAnalytics(AnalyticsLabel.ONBOARDING_STEP_COMPLETED, {\n step,\n });\n },\n [trackAnalytics],\n );\n\n const goToNextCard = useCallback(\n (\n analyticsLabelViewed: ActionEvent,\n refOfNextSlide: ISegmentedGameCardRefs,\n color: TColorNames,\n isFirstSlide: boolean = false,\n journeyId: JOURNEY_ID_STUDENT,\n ) => {\n if (!isFirstSlide) {\n playButtonSound();\n carouselRefs.current?.goToIndex(carouselRefs.current?.currentIndex + 1);\n nextCoachmark(journeyId, false, GO_TO_NEXT_SLIDE_AFTER_MS);\n }\n\n trackEventViewed(analyticsLabelViewed);\n\n const animateLabelTimer = setTimeout(() => {\n clearTimeout(animateLabelTimer);\n refOfNextSlide.startLabelAnimation(color);\n }, SHOW_LABEL_HIGHLIGHT_AFTER_MS);\n\n timerRefs.current.push(animateLabelTimer); // Store to cleanup later\n\n nextCoachmark(journeyId, true, SHOW_NUDGE_AFTER_MS);\n },\n [carouselRefs, nextCoachmark, playButtonSound, trackEventViewed],\n );\n\n const handleEndJourneyForPuzzle = useCallback(\n (puzzlesData: Puzzle, journeyId: JOURNEY_ID_STUDENT) => {\n onSegmentClick(puzzlesData, ProjectType.PUZZLE);\n trackEventCompleted(ActionEvent.PUZZLE_ACTIVITY);\n endJourney(journeyId);\n onJourneyComplete(journeyId);\n },\n [endJourney, onJourneyComplete, onSegmentClick, trackEventCompleted],\n );\n\n const handleEndJourneyForLesson = useCallback(\n (lessonsData: Lesson, journeyId: JOURNEY_ID_STUDENT) => {\n onSegmentClick(lessonsData, ProjectType.LESSON);\n trackEventCompleted(ActionEvent.SKILL_ACTIVITY);\n endJourney(journeyId);\n onJourneyComplete(journeyId);\n },\n [endJourney, onJourneyComplete, onSegmentClick, trackEventCompleted],\n );\n\n const startJourney = useCallback(\n (\n journeyId: JOURNEY_ID_STUDENT,\n puzzlesData?: IProject<Puzzle>,\n lessonsData?: IProject<Lesson>,\n ) => {\n // If element refs are not available return, this is just for type safety\n const isLessonAvailable = !!lessonsData;\n const isPuzzleAvailable = !!puzzlesData;\n\n if (!lessonRefs?.current?.segmentedCardWrapperRef.current) return;\n\n if (\n (!carouselRefs?.current?.nextBtnRef.current ||\n !gameRefs?.current?.labelRef.current ||\n !puzzleRefs?.current?.labelRef.current ||\n !puzzlesData) &&\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY\n ) {\n return;\n }\n\n const lessonLabelDims = lessonRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n const gameLabelDims = gameRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n const puzzleLabelDims = puzzleRefs.current?.labelRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n const launcherDims =\n lessonRefs.current?.segmentedCardWrapperRef?.current?.getBoundingClientRect() || {\n height: 0,\n width: 0,\n };\n\n let lessonSteps: TCoachmarkJourneyProps[] = [];\n\n if (isLessonAvailable && lessonRefs.current) {\n lessonSteps = [\n {\n originalElementToHighlightRef: lessonRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'BLUE_4',\n tooltipItem: (\n <FlexView>\n <Text\n $renderOnMobileAs={tooltipTextRenderAsOnMobile}\n $renderAs={tooltipTextRenderAs}\n >\n Get faster & stay ahead in school. Practice 3 new skills everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: lessonLabelDims.width / 2,\n tooltipYCoOrdinates: lessonLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY\n ? {\n originalElementToHighlightRef: carouselRefs.current?.nextBtnRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={() =>\n goToNextCard(\n ActionEvent.GAMES_ACTIVITY,\n gameRefs.current as ISegmentedGameCardRefs,\n 'ORANGE_4',\n false,\n journeyId,\n )\n }\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n }\n : {\n originalElementToHighlightRef: lessonRefs.current.segmentedCardWrapperRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <SegmentedGameCard\n label={''} // This is intentionally left blank to avoid showing the label\n value={lessonsData.data.filter(lesson => lesson.status === 'completed').length}\n maxValue={lessonsData.data.length}\n initialValue={lessonsData.initialProgressValue}\n data={lessonsData.data.map(lesson => ({\n card: lesson.cardLottie,\n name: '', // We dont want to show the name of the puzzle in onboarding\n isCompleted: lesson.status === 'completed',\n onPress: () => handleEndJourneyForLesson(lesson, journeyId),\n }))}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Tap here to get started\n </Text>\n ),\n nudgePointerX: launcherDims.width * 0.6,\n nudgePointerY: launcherDims.height * 0.4,\n } as INudgeProps,\n },\n ];\n }\n\n if (\n journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY &&\n gameRefs.current &&\n puzzleRefs.current &&\n isPuzzleAvailable\n ) {\n const gameSteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: gameRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'ORANGE_4',\n tooltipItem: (\n <FlexView>\n <Text\n $renderOnMobileAs={tooltipTextRenderAsOnMobile}\n $renderAs={tooltipTextRenderAs}\n >\n Train to think deeper & plan ahead. Play 3 new games everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: gameLabelDims.width / 2,\n tooltipYCoOrdinates: gameLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n {\n originalElementToHighlightRef: carouselRefs.current.nextBtnRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <IconButton\n renderAs=\"secondary\"\n Icon={CaratRightIcon}\n onClick={() =>\n goToNextCard(\n ActionEvent.PUZZLE_ACTIVITY,\n puzzleRefs.current as ISegmentedGameCardRefs,\n 'PURPLE_4',\n false,\n journeyId,\n )\n }\n analyticsLabel={GAME_LAUNCHER_ANALYTICS_EVENTS.JOURNEY_NEXT_ACTIVITY}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to proceed\n </Text>\n ),\n nudgePointerX: 0,\n nudgePointerY: 0,\n } as INudgeProps,\n },\n ];\n\n const puzzleSteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: puzzleRefs.current.labelRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: {\n position: 'top',\n backgroundColor: 'PURPLE_4',\n tooltipItem: (\n <FlexView>\n <Text\n $renderOnMobileAs={tooltipTextRenderAsOnMobile}\n $renderAs={tooltipTextRenderAs}\n >\n Think in new ways & stay sharp. Solve 3 new puzzles everyday.\n </Text>\n </FlexView>\n ),\n tooltipXCoOrdinates: puzzleLabelDims.width / 2,\n tooltipYCoOrdinates: puzzleLabelDims.height + 10,\n } as IArrowTooltipProps,\n },\n {\n originalElementToHighlightRef: puzzleRefs.current.segmentedCardWrapperRef,\n type: IndicatorType.NUDGE,\n elementToHighlight: (\n <SegmentedGameCard\n label={''} // This is intentionally left blank to avoid showing the label\n value={puzzlesData.data.filter(puzzle => puzzle.solved).length}\n maxValue={puzzlesData.data.length}\n initialValue={puzzlesData.initialProgressValue}\n data={puzzlesData.data.map(puzzle => ({\n card: puzzle.cardLottie,\n name: '', // We dont want to show the name of the puzzle in onboarding\n isCompleted: puzzle.solved,\n onPress: () => handleEndJourneyForPuzzle(puzzle, journeyId),\n }))}\n />\n ),\n indicator: {\n nudge: 'click',\n content: !isMobile && (\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n Click to solve a puzzle\n </Text>\n ),\n nudgePointerX: launcherDims.width * 0.6,\n nudgePointerY: launcherDims.height * 0.4,\n } as INudgeProps,\n },\n ];\n\n setJourney(journeyId, [...lessonSteps, ...gameSteps, ...puzzleSteps]);\n } else {\n setJourney(journeyId, lessonSteps);\n }\n carouselRefs.current?.goToIndex(0); // Always start from 0th Index no matter what the current index is\n\n const delayBeforeStart = setTimeout(() => {\n clearTimeout(delayBeforeStart);\n nextCoachmark(journeyId);\n }, SLIDE_TO_LESSON_MS);\n\n timerRefs.current.push(delayBeforeStart); // Store to cleanup later\n\n if (journeyId === JOURNEY_ID_STUDENT.CIRCLE_ACTIVITIES_INTRO_JOURNEY) {\n if (isLessonAvailable && lessonRefs.current) {\n goToNextCard(ActionEvent.SKILL_ACTIVITY, lessonRefs.current, 'BLUE_4', true, journeyId);\n } else {\n goToNextCard(ActionEvent.GAMES_ACTIVITY, gameRefs.current!, 'ORANGE_4', true, journeyId);\n }\n } else {\n lessonRefs.current?.startLabelAnimation('BLUE_4');\n const delayBeforeShowingNudge = setTimeout(() => {\n clearTimeout(delayBeforeShowingNudge);\n nextCoachmark(journeyId, true);\n }, SHOW_NUDGE_AFTER_MS);\n\n timerRefs.current.push(delayBeforeShowingNudge); // Store to cleanup later\n }\n },\n [\n carouselRefs,\n tooltipTextRenderAsOnMobile,\n tooltipTextRenderAs,\n isMobile,\n setJourney,\n goToNextCard,\n handleEndJourneyForLesson,\n handleEndJourneyForPuzzle,\n nextCoachmark,\n ],\n );\n\n const data = useMemo(\n () => ({\n gameRefs,\n lessonRefs,\n puzzleRefs,\n startJourney,\n }),\n [startJourney],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n timerRefs.current.forEach(timer => clearTimeout(timer));\n timerRefs.current = [];\n };\n }, [carouselRefs]);\n\n return data;\n};\n"],"names":["useGameLauncherJourney","carouselRefs","onSegmentClick","onJourneyComplete","device","useTheme","isMobile","EDeviceType","tooltipTextRenderAsOnMobile","tooltipTextRenderAs","lessonRefs","useRef","gameRefs","puzzleRefs","timerRefs","playButtonSound","useCircleSounds","nextCoachmark","setJourney","endJourney","useJourney","trackAnalytics","useUIContext","trackEventViewed","useCallback","step","AnalyticsLabel","trackEventCompleted","goToNextCard","analyticsLabelViewed","refOfNextSlide","color","isFirstSlide","journeyId","_b","_a","GO_TO_NEXT_SLIDE_AFTER_MS","animateLabelTimer","SHOW_LABEL_HIGHLIGHT_AFTER_MS","SHOW_NUDGE_AFTER_MS","handleEndJourneyForPuzzle","puzzlesData","ProjectType","ActionEvent","handleEndJourneyForLesson","lessonsData","startJourney","isLessonAvailable","isPuzzleAvailable","_c","_d","JOURNEY_ID_STUDENT","lessonLabelDims","_g","_f","_e","gameLabelDims","_j","_i","_h","puzzleLabelDims","_m","_l","_k","launcherDims","_p","_o","_n","lessonSteps","IndicatorType","jsx","Fragment","FlexView","Text","_q","IconButton","CaratRightIcon","GAME_LAUNCHER_ANALYTICS_EVENTS","SegmentedGameCard","lesson","gameSteps","puzzleSteps","puzzle","_r","delayBeforeStart","SLIDE_TO_LESSON_MS","_s","delayBeforeShowingNudge","data","useMemo","useEffect","timer"],"mappings":"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"}
@@ -1,32 +1,33 @@
1
- import { jsx as o, Fragment as B } from "react/jsx-runtime";
1
+ import { jsx as o, Fragment as M } from "react/jsx-runtime";
2
2
  import { useRef as Y, useCallback as E, useEffect as w } from "react";
3
- import { PLATFORM_EVENTS_STUDENT as M } from "../../../../analytics-events/platform-events-student.js";
4
- import { JOURNEY_ID_STUDENT as G } from "../../../../journey/journey-id/journey-id-student.js";
3
+ import { useTheme as G } from "styled-components";
4
+ import { PLATFORM_EVENTS_STUDENT as x } from "../../../../analytics-events/platform-events-student.js";
5
+ import { JOURNEY_ID_STUDENT as J } from "../../../../journey/journey-id/journey-id-student.js";
5
6
  import { IndicatorType as p } from "../../../../journey/use-journey/constants.js";
6
- import { useJourney as J } from "../../../../journey/use-journey/use-journey.js";
7
- import { useUIContext as b } from "../../../../ui/context/context.js";
7
+ import { useJourney as b } from "../../../../journey/use-journey/use-journey.js";
8
+ import { useUIContext as X } from "../../../../ui/context/context.js";
8
9
  import P from "../../../../ui/layout/flex-view.js";
9
10
  import R from "../../../../ui/text/text.js";
10
- import { getTheme as X } from "../../../../ui/theme/get-theme.js";
11
+ import { EDeviceType as $ } from "../../../../ui/theme/constants.js";
11
12
  import { CIRCLE_ONBOARDING_ANALYTICS_STEPS as W } from "../../../enum/circle-onboarding-steps.js";
12
- import { useCircleSounds as $ } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
13
- import { INFINITE_MODE_TEXT as v } from "../../comps/tables-card/constants.js";
14
- import V from "../../comps/tables-card/infinite-button/infinite-mode-launcher-button.js";
15
- import { TABLE_CARD_INDEX as l, GO_TO_TABLE_LAUNCHER_DURATION_MS as j, SHOW_CLICK_TABLE_NUDGE_AFTER_MS as k, LESSON_CARD_INDEX as K, SHOW_INITIAL_COACHMARK_AFTER_MS as q, SHOW_INITIAL_TOOLTIP_AFTER_MS as z } from "./constants.js";
16
- import { Indicator as Q } from "./use-table-infinite-launcher-journey-styled.js";
17
- const Z = {
13
+ import { useCircleSounds as v } from "../../../hooks/use-circle-sounds/use-circle-sounds.js";
14
+ import { INFINITE_MODE_TEXT as V } from "../../comps/tables-card/constants.js";
15
+ import j from "../../comps/tables-card/infinite-button/infinite-mode-launcher-button.js";
16
+ import { TABLE_CARD_INDEX as l, GO_TO_TABLE_LAUNCHER_DURATION_MS as K, SHOW_CLICK_TABLE_NUDGE_AFTER_MS as k, LESSON_CARD_INDEX as q, SHOW_INITIAL_COACHMARK_AFTER_MS as z, SHOW_INITIAL_TOOLTIP_AFTER_MS as Q } from "./constants.js";
17
+ import { Indicator as Z } from "./use-table-infinite-launcher-journey-styled.js";
18
+ const tt = {
18
19
  top: 6,
19
20
  left: 8,
20
21
  cursor: "pointer"
21
- }, lt = ({
22
+ }, Nt = ({
22
23
  carouselRefs: n,
23
24
  originalTableRef: t,
24
25
  onTableInfiniteModeClick: O,
25
26
  onJourneyComplete: N
26
27
  }) => {
27
- const e = G.CIRCLE_TABLES_INFINTE_JOURNEY, { device: F } = X(), I = F === "mobile" ? "ab3-bold" : "ab2-bold", _ = Y([]), { playButtonSound: C } = $(), { nextCoachmark: c, setJourney: T, addCoachmark: h, endJourney: A } = J(), { onEvent: d } = b(), L = E(() => {
28
+ const e = J.CIRCLE_TABLES_INFINTE_JOURNEY, { device: F } = G(), I = F === $.MOBILE ? "ab3-bold" : "ab2-bold", _ = Y([]), { playButtonSound: C } = v(), { nextCoachmark: c, setJourney: T, addCoachmark: h, endJourney: A } = b(), { onEvent: d } = X(), L = E(() => {
28
29
  var r;
29
- A(e), O(), d(M.ONBOARDING_STEP_COMPLETED, {
30
+ A(e), O(), d(x.ONBOARDING_STEP_COMPLETED, {
30
31
  step: W.INFINITE_MODE
31
32
  }), (r = t == null ? void 0 : t.current) == null || r.stopLabelAnimation(), N(e);
32
33
  }, [
@@ -38,30 +39,30 @@ const Z = {
38
39
  d
39
40
  ]), s = E(
40
41
  (r, u) => {
41
- c(e, !1, r), d(M.ONBOARDING_STEP_VIEWED, {
42
+ c(e, !1, r), d(x.ONBOARDING_STEP_VIEWED, {
42
43
  step: W.INFINITE_MODE
43
44
  });
44
45
  const i = setTimeout(() => {
45
46
  var m;
46
- clearTimeout(i), (m = t.current) == null || m.startLabelAnimation("YELLOW_4"), t.current && t.current.labelRef.current && (t.current.labelRef.current.innerText = v), c(e, !0);
47
+ clearTimeout(i), (m = t.current) == null || m.startLabelAnimation("YELLOW_4"), t.current && t.current.labelRef.current && (t.current.labelRef.current.innerText = V), c(e, !0);
47
48
  }, u);
48
49
  _.current.push(i);
49
50
  },
50
51
  [e, c, t, d]
51
52
  ), a = E(() => {
52
53
  var r;
53
- C(), (r = n.current) == null || r.goToIndex(l), s(j, k);
54
+ C(), (r = n.current) == null || r.goToIndex(l), s(K, k);
54
55
  }, [n, C, s]), U = E(() => {
55
- var g, f, D, S, y, H, x;
56
- const r = (g = n.current) == null ? void 0 : g.indicatorRefs, u = (f = n.current) == null ? void 0 : f.nextBtnRef, i = r == null ? void 0 : r[l];
56
+ var f, g, D, S, y, B, H;
57
+ const r = (f = n.current) == null ? void 0 : f.indicatorRefs, u = (g = n.current) == null ? void 0 : g.nextBtnRef, i = r == null ? void 0 : r[l];
57
58
  if (!((D = t.current) != null && D.segmentedCardWrapperRef.current) || !((S = t.current) != null && S.labelRef.current) || !r || !(u != null && u.current) || !i || !i.current)
58
59
  return;
59
60
  const m = (y = t.current) == null ? void 0 : y.segmentedCardWrapperRef.current.getBoundingClientRect();
60
- ((H = n.current) == null ? void 0 : H.currentIndex) === l ? (T(e, []), s(0, k)) : (T(e, [
61
+ ((B = n.current) == null ? void 0 : B.currentIndex) === l ? (T(e, []), s(0, k)) : (T(e, [
61
62
  {
62
63
  originalElementToHighlightRef: i,
63
64
  type: p.TOOLTIP,
64
- elementToHighlight: /* @__PURE__ */ o(Q, { $isActive: !1 }),
65
+ elementToHighlight: /* @__PURE__ */ o(Z, { $isActive: !1 }),
65
66
  indicator: {
66
67
  position: "bottom",
67
68
  backgroundColor: "YELLOW_4",
@@ -71,7 +72,7 @@ const Z = {
71
72
  {
72
73
  $position: "absolute",
73
74
  $flexDirection: "row",
74
- style: Z,
75
+ style: tt,
75
76
  onClick: a,
76
77
  children: /* @__PURE__ */ o(R, { $renderAs: I, children: "NEW" })
77
78
  }
@@ -88,12 +89,12 @@ const Z = {
88
89
  content: "",
89
90
  nudgePointerY: 20
90
91
  },
91
- elementToHighlight: /* @__PURE__ */ o(B, {})
92
+ elementToHighlight: /* @__PURE__ */ o(M, {})
92
93
  }
93
- ]), (x = n.current) == null || x.goToIndex(K), c(e, !1, q), c(e, !0, z)), h(e, {
94
+ ]), (H = n.current) == null || H.goToIndex(q), c(e, !1, z), c(e, !0, Q)), h(e, {
94
95
  originalElementToHighlightRef: t.current.segmentedCardWrapperRef,
95
96
  type: p.TOOLTIP,
96
- elementToHighlight: /* @__PURE__ */ o(B, {}),
97
+ elementToHighlight: /* @__PURE__ */ o(M, {}),
97
98
  indicator: {
98
99
  position: "top",
99
100
  backgroundColor: "YELLOW_4",
@@ -110,7 +111,7 @@ const Z = {
110
111
  nudgePointerX: 0,
111
112
  nudgePointerY: 10
112
113
  },
113
- elementToHighlight: /* @__PURE__ */ o(V, { onClick: L })
114
+ elementToHighlight: /* @__PURE__ */ o(j, { onClick: L })
114
115
  });
115
116
  }, [
116
117
  h,
@@ -131,6 +132,6 @@ const Z = {
131
132
  };
132
133
  };
133
134
  export {
134
- lt as useTableInfiniteLauncherJourney
135
+ Nt as useTableInfiniteLauncherJourney
135
136
  };
136
137
  //# sourceMappingURL=use-table-infinite-launcher-journey.js.map