@cuemath/leap 3.2.34-mbz2 → 3.2.34-mbz3

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.
@@ -1,50 +1,50 @@
1
- import { jsx as e, jsxs as o } from "react/jsx-runtime";
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
2
  import { memo as W, useState as p, useCallback as s, useMemo as $, useRef as w, useEffect as Y } from "react";
3
3
  import M from "../../../stickers/sticker-selector/sticker-selector.js";
4
4
  import m from "../../../ui/buttons/clickable/clickable.js";
5
- import i from "../../../ui/layout/flex-view.js";
6
- import O from "../../../ui/separator/separator.js";
5
+ import o from "../../../ui/layout/flex-view.js";
6
+ import R from "../../../ui/separator/separator.js";
7
7
  import d from "../../../ui/text/text.js";
8
- import R from "../../constants/events.js";
8
+ import A from "../../constants/events.js";
9
9
  import { StickersIcon as q, GuideContainer as z, HintIcon as U, SolIcon as D, Pointer as F, SectionContainer as Q, Section as J, CloseIcon as Z, Guide as ee } from "./worksheet-sidebar-styled.js";
10
10
  const ae = W(
11
11
  ({
12
- questionWidth: C,
13
- questions: A,
14
- activeQuestionIndex: G,
15
- learnosity: b,
12
+ questionWidth: b,
13
+ questions: G,
14
+ activeQuestionIndex: O,
15
+ learnosity: C,
16
16
  actionbarHeight: I,
17
17
  loggerRef: a,
18
18
  enableStickers: L,
19
19
  handleStickerSend: E
20
20
  }) => {
21
21
  var _;
22
- const [t, h] = p(), [X, v] = p({
22
+ const [t, h] = p(), [v, y] = p({
23
23
  top: 0,
24
24
  left: 0
25
- }), [g, y] = p(!1), { top: T, left: k } = X, B = s(() => {
26
- h("HINT"), a.current(R.WORKSHEET_V3_HINT_SEEN);
25
+ }), [g, B] = p(!1), { top: T, left: k } = v, X = s(() => {
26
+ h("HINT"), a.current(A.WORKSHEET_V3_HINT_SEEN);
27
27
  }, [a]), j = s(() => {
28
- h("SOL"), a.current(R.WORKSHEET_V3_SOLUTION_SEEN);
28
+ h("SOL"), a.current(A.WORKSHEET_V3_SOLUTION_SEEN);
29
29
  }, [a]), x = s(() => {
30
30
  h(() => {
31
31
  });
32
32
  }, []), f = s(() => {
33
- y((c) => !c);
34
- }, []), { hints: n, solution: u } = ((_ = A[G]) == null ? void 0 : _.metadata) || {}, r = $(() => t === void 0 ? void 0 : t === "HINT" ? n : u, [t, n, u]), H = w(null), N = w(null), S = s((c) => {
33
+ B((c) => !c);
34
+ }, []), { hints: n, solution: u } = ((_ = G[O]) == null ? void 0 : _.metadata) || {}, r = $(() => t === void 0 ? void 0 : t === "HINT" ? n : u, [t, n, u]), H = w(null), N = w(null), S = s((c) => {
35
35
  if (c.current) {
36
36
  const l = c.current.getBoundingClientRect();
37
- v({
37
+ y({
38
38
  top: l.top + l.height / 2 - 8,
39
39
  left: l.right - 78
40
40
  // 52px (sidebar width) + 16px (gutter) + 10px
41
41
  });
42
42
  }
43
43
  }, []), K = $(
44
- () => /* @__PURE__ */ e(m, { label: "teacher-badges", onClick: f, children: /* @__PURE__ */ o(i, { $alignItems: "center", $justifyContent: "center", children: [
44
+ () => /* @__PURE__ */ e(m, { label: "teacher-badges", onClick: f, children: /* @__PURE__ */ i(o, { $alignItems: "center", $justifyContent: "center", children: [
45
45
  /* @__PURE__ */ e(q, { width: 32, height: 32, $disabled: !g }),
46
46
  /* @__PURE__ */ e(d, { $renderAs: "eyebrow2", $color: g ? "BLACK" : "GREY_4", children: "STICKERS" }),
47
- /* @__PURE__ */ e(i, { $gap: 8, $alignItems: "center", children: /* @__PURE__ */ e(O, { width: 24, height: 1, background: "GREY_2" }) })
47
+ /* @__PURE__ */ e(o, { $gap: 8, $alignItems: "center", children: /* @__PURE__ */ e(R, { width: 24, height: 1, background: "GREY_2" }) })
48
48
  ] }) }),
49
49
  [g, f]
50
50
  ), P = $(
@@ -57,15 +57,15 @@ const ae = W(
57
57
  ), V = $(
58
58
  () => ({
59
59
  position: "left",
60
- zIndex: 1e3,
61
- arrowXCoOrdinates: 87.5,
62
- tooltipXCoOrdinates: "-62.5%"
60
+ zIndex: 1e3
61
+ // arrowXCoOrdinates: 87.5,
62
+ // tooltipXCoOrdinates: '-62.5%',
63
63
  }),
64
64
  []
65
65
  );
66
- return t && r && b && b.renderMath("mathjax"), Y(() => {
66
+ return t && r && C && C.renderMath("mathjax"), Y(() => {
67
67
  t === "HINT" ? S(N) : t === "SOL" ? S(H) : r || h(void 0);
68
- }, [t, S, r]), /* @__PURE__ */ o(z, { $background: "WHITE", children: [
68
+ }, [t, S, r]), /* @__PURE__ */ i(z, { $background: "WHITE", children: [
69
69
  L && E && /* @__PURE__ */ e(
70
70
  M,
71
71
  {
@@ -77,12 +77,12 @@ const ae = W(
77
77
  onToggle: f
78
78
  }
79
79
  ),
80
- /* @__PURE__ */ e(m, { label: "hints", onClick: B, disabled: !n, children: /* @__PURE__ */ o(i, { $alignItems: "center", $justifyContent: "center", ref: N, children: [
80
+ /* @__PURE__ */ e(m, { label: "hints", onClick: X, disabled: !n, children: /* @__PURE__ */ i(o, { $alignItems: "center", $justifyContent: "center", ref: N, children: [
81
81
  /* @__PURE__ */ e(U, { width: 32, height: 32, $disabled: !n }),
82
82
  /* @__PURE__ */ e(d, { $renderAs: "eyebrow2", $color: n ? "BLACK" : "GREY_4", children: "HINT" }),
83
- /* @__PURE__ */ e(i, { $gap: 8, $alignItems: "center", children: /* @__PURE__ */ e(O, { width: 24, height: 1, background: "GREY_2" }) })
83
+ /* @__PURE__ */ e(o, { $gap: 8, $alignItems: "center", children: /* @__PURE__ */ e(R, { width: 24, height: 1, background: "GREY_2" }) })
84
84
  ] }) }),
85
- /* @__PURE__ */ e(m, { label: "solution", onClick: j, disabled: !u, children: /* @__PURE__ */ o(i, { $alignItems: "center", $justifyContent: "center", ref: H, children: [
85
+ /* @__PURE__ */ e(m, { label: "solution", onClick: j, disabled: !u, children: /* @__PURE__ */ i(o, { $alignItems: "center", $justifyContent: "center", ref: H, children: [
86
86
  /* @__PURE__ */ e(D, { width: 32, height: 32, $disabled: !u }),
87
87
  /* @__PURE__ */ e(d, { $renderAs: "eyebrow2", $color: n ? "BLACK" : "GREY_4", children: "SOL" })
88
88
  ] }) }),
@@ -91,21 +91,21 @@ const ae = W(
91
91
  Q,
92
92
  {
93
93
  $background: "WHITE",
94
- $questionWidth: C,
94
+ $questionWidth: b,
95
95
  $actionbarHeight: I,
96
96
  $borderRadius: 10,
97
- children: /* @__PURE__ */ o(
97
+ children: /* @__PURE__ */ i(
98
98
  J,
99
99
  {
100
100
  $gutterX: 1,
101
101
  $gapX: 1,
102
- $questionWidth: C,
102
+ $questionWidth: b,
103
103
  $actionbarHeight: I,
104
104
  children: [
105
105
  /* @__PURE__ */ e(m, { label: "close", onClick: x, children: /* @__PURE__ */ e(Z, {}) }),
106
- /* @__PURE__ */ e(i, { $gutterX: 0.5, children: /* @__PURE__ */ e(d, { $renderAs: "eyebrow2", $color: "ORANGE_5", $marginBottomX: 0.25, children: t === "HINT" ? "HINTS:" : "SOLUTION:" }) }),
107
- r && r.map((c, l) => /* @__PURE__ */ o(i, { $gutterX: 0.5, $gapX: 0.5, children: [
108
- r.length > 1 && /* @__PURE__ */ o(d, { $renderAs: "eyebrow2", $color: "ORANGE_5", $marginBottomX: 0.25, children: [
106
+ /* @__PURE__ */ e(o, { $gutterX: 0.5, children: /* @__PURE__ */ e(d, { $renderAs: "eyebrow2", $color: "ORANGE_5", $marginBottomX: 0.25, children: t === "HINT" ? "HINTS:" : "SOLUTION:" }) }),
107
+ r && r.map((c, l) => /* @__PURE__ */ i(o, { $gutterX: 0.5, $gapX: 0.5, children: [
108
+ r.length > 1 && /* @__PURE__ */ i(d, { $renderAs: "eyebrow2", $color: "ORANGE_5", $marginBottomX: 0.25, children: [
109
109
  t,
110
110
  " ",
111
111
  l + 1,
@@ -1 +1 @@
1
- {"version":3,"file":"question-guide.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/question-guide.tsx"],"sourcesContent":["import type { IStickerData } from '../../../stickers/sticker-selector/sticker-selector-types';\nimport type { TPositionProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { ILearnosity, IWorksheetProps, IWorksheetQuestion } from '../worksheet-types';\n\nimport React, { memo, useCallback, useEffect, useMemo, useState, useRef } from 'react';\n\nimport StickerSelector from '../../../stickers/sticker-selector/sticker-selector';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport EVENTS from '../../constants/events';\nimport {\n Section,\n GuideContainer,\n CloseIcon,\n SolIcon,\n HintIcon,\n StickersIcon,\n SectionContainer,\n Guide,\n Pointer,\n} from './worksheet-sidebar-styled';\n\ntype TSections = 'HINT' | 'SOL';\n\ninterface IQuestionGuideProps extends Pick<IWorksheetProps, 'loggerRef'> {\n questionWidth: number;\n questions: IWorksheetQuestion[];\n activeQuestionIndex: number;\n learnosity: ILearnosity;\n actionbarHeight: number;\n enableStickers?: boolean;\n handleStickerSend?: (sticker: IStickerData) => void;\n}\n\nconst QuestionGuide: React.FC<IQuestionGuideProps> = memo(\n ({\n questionWidth,\n questions,\n activeQuestionIndex,\n learnosity,\n actionbarHeight,\n loggerRef,\n enableStickers,\n handleStickerSend,\n }) => {\n const [activeSection, setActiveSection] = useState<TSections | undefined>();\n const [pointerPosition, setPointerPosition] = useState({\n top: 0,\n left: 0,\n });\n const [showStickers, setShowStickers] = useState(false);\n const { top, left } = pointerPosition;\n\n const handleHintClick = useCallback(() => {\n setActiveSection('HINT');\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n }, [loggerRef]);\n const handleSolClick = useCallback(() => {\n setActiveSection('SOL');\n loggerRef.current(EVENTS.WORKSHEET_V3_SOLUTION_SEEN);\n }, [loggerRef]);\n const handleClose = useCallback(() => {\n setActiveSection(() => undefined);\n }, []);\n const handleBadgeToggle = useCallback(() => {\n setShowStickers(prev => !prev);\n }, []);\n\n const { hints, solution } = questions[activeQuestionIndex]?.metadata || {};\n\n const activeSectionData = useMemo(() => {\n return activeSection === undefined ? undefined : activeSection === 'HINT' ? hints : solution;\n }, [activeSection, hints, solution]);\n\n const sqlRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const hintRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const updatePointerPosition = useCallback((ref: React.RefObject<HTMLDivElement>) => {\n if (ref.current) {\n const rect = ref.current.getBoundingClientRect();\n\n setPointerPosition({\n top: rect.top + rect.height / 2 - 8,\n left: rect.right - 78, // 52px (sidebar width) + 16px (gutter) + 10px\n });\n }\n }, []);\n\n const stickerTrigger = useMemo(\n () => (\n <Clickable label=\"teacher-badges\" onClick={handleBadgeToggle}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\">\n <StickersIcon width={32} height={32} $disabled={!showStickers} />\n <Text $renderAs=\"eyebrow2\" $color={!showStickers ? 'GREY_4' : 'BLACK'}>\n STICKERS\n </Text>\n <FlexView $gap={8} $alignItems=\"center\">\n <Separator width={24} height={1} background=\"GREY_2\" />\n </FlexView>\n </FlexView>\n </Clickable>\n ),\n [showStickers, handleBadgeToggle],\n );\n\n const stickerGridConfig = useMemo(\n () => ({\n stickerSize: 48,\n columns: 4,\n gap: 8,\n }),\n [],\n );\n\n const stickerTooltipConfig = useMemo(\n () => ({\n position: 'left' as TPositionProps,\n zIndex: 1000,\n arrowXCoOrdinates: 87.5,\n tooltipXCoOrdinates: '-62.5%',\n }),\n [],\n );\n\n if (activeSection && activeSectionData && learnosity) {\n learnosity.renderMath('mathjax');\n }\n\n useEffect(() => {\n if (activeSection === 'HINT') {\n updatePointerPosition(hintRef);\n } else if (activeSection === 'SOL') {\n updatePointerPosition(sqlRef);\n } else if (!activeSectionData) {\n setActiveSection(undefined);\n }\n }, [activeSection, updatePointerPosition, activeSectionData]);\n\n return (\n <GuideContainer $background=\"WHITE\">\n {enableStickers && handleStickerSend && (\n <StickerSelector\n triggerNode={stickerTrigger}\n onStickerSend={handleStickerSend}\n gridConfig={stickerGridConfig}\n tooltipConfig={stickerTooltipConfig}\n visible={showStickers}\n onToggle={handleBadgeToggle}\n />\n )}\n <Clickable label=\"hints\" onClick={handleHintClick} disabled={!hints}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" ref={hintRef}>\n <HintIcon width={32} height={32} $disabled={!hints} />\n <Text $renderAs=\"eyebrow2\" $color={!hints ? 'GREY_4' : 'BLACK'}>\n HINT\n </Text>\n <FlexView $gap={8} $alignItems=\"center\">\n <Separator width={24} height={1} background=\"GREY_2\" />\n </FlexView>\n </FlexView>\n </Clickable>\n <Clickable label=\"solution\" onClick={handleSolClick} disabled={!solution}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" ref={sqlRef}>\n <SolIcon width={32} height={32} $disabled={!solution} />\n <Text $renderAs=\"eyebrow2\" $color={!hints ? 'GREY_4' : 'BLACK'}>\n SOL\n </Text>\n </FlexView>\n </Clickable>\n {activeSection && top && left && <Pointer topValue={top} leftValue={left} />}\n {activeSection && (\n <SectionContainer\n $background=\"WHITE\"\n $questionWidth={questionWidth}\n $actionbarHeight={actionbarHeight}\n $borderRadius={10}\n >\n <Section\n $gutterX={1}\n $gapX={1}\n $questionWidth={questionWidth}\n $actionbarHeight={actionbarHeight}\n >\n <Clickable label=\"close\" onClick={handleClose}>\n <CloseIcon />\n </Clickable>\n <FlexView $gutterX={0.5}>\n <Text $renderAs=\"eyebrow2\" $color=\"ORANGE_5\" $marginBottomX={0.25}>\n {activeSection === 'HINT' ? 'HINTS:' : 'SOLUTION:'}\n </Text>\n </FlexView>\n {activeSectionData &&\n activeSectionData.map((item, index) => (\n <FlexView $gutterX={0.5} $gapX={0.5} key={index.toString()}>\n {activeSectionData.length > 1 && (\n <Text $renderAs=\"eyebrow2\" $color=\"ORANGE_5\" $marginBottomX={0.25}>\n {activeSection} {index + 1}:\n </Text>\n )}\n <Guide\n dangerouslySetInnerHTML={{\n __html: item,\n }}\n />\n </FlexView>\n ))}\n </Section>\n </SectionContainer>\n )}\n </GuideContainer>\n );\n },\n);\n\nexport default QuestionGuide;\n"],"names":["QuestionGuide","memo","questionWidth","questions","activeQuestionIndex","learnosity","actionbarHeight","loggerRef","enableStickers","handleStickerSend","activeSection","setActiveSection","useState","pointerPosition","setPointerPosition","showStickers","setShowStickers","top","left","handleHintClick","useCallback","EVENTS","handleSolClick","handleClose","handleBadgeToggle","prev","hints","solution","_a","activeSectionData","useMemo","sqlRef","useRef","hintRef","updatePointerPosition","ref","rect","stickerTrigger","jsx","Clickable","jsxs","FlexView","StickersIcon","Text","Separator","stickerGridConfig","stickerTooltipConfig","useEffect","GuideContainer","StickerSelector","HintIcon","SolIcon","Pointer","SectionContainer","Section","CloseIcon","item","index","Guide"],"mappings":"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"}
1
+ {"version":3,"file":"question-guide.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-sidebar/question-guide.tsx"],"sourcesContent":["import type { IStickerData } from '../../../stickers/sticker-selector/sticker-selector-types';\nimport type { TPositionProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { ILearnosity, IWorksheetProps, IWorksheetQuestion } from '../worksheet-types';\n\nimport React, { memo, useCallback, useEffect, useMemo, useState, useRef } from 'react';\n\nimport StickerSelector from '../../../stickers/sticker-selector/sticker-selector';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport EVENTS from '../../constants/events';\nimport {\n Section,\n GuideContainer,\n CloseIcon,\n SolIcon,\n HintIcon,\n StickersIcon,\n SectionContainer,\n Guide,\n Pointer,\n} from './worksheet-sidebar-styled';\n\ntype TSections = 'HINT' | 'SOL';\n\ninterface IQuestionGuideProps extends Pick<IWorksheetProps, 'loggerRef'> {\n questionWidth: number;\n questions: IWorksheetQuestion[];\n activeQuestionIndex: number;\n learnosity: ILearnosity;\n actionbarHeight: number;\n enableStickers?: boolean;\n handleStickerSend?: (sticker: IStickerData) => void;\n}\n\nconst QuestionGuide: React.FC<IQuestionGuideProps> = memo(\n ({\n questionWidth,\n questions,\n activeQuestionIndex,\n learnosity,\n actionbarHeight,\n loggerRef,\n enableStickers,\n handleStickerSend,\n }) => {\n const [activeSection, setActiveSection] = useState<TSections | undefined>();\n const [pointerPosition, setPointerPosition] = useState({\n top: 0,\n left: 0,\n });\n const [showStickers, setShowStickers] = useState(false);\n const { top, left } = pointerPosition;\n\n const handleHintClick = useCallback(() => {\n setActiveSection('HINT');\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n }, [loggerRef]);\n const handleSolClick = useCallback(() => {\n setActiveSection('SOL');\n loggerRef.current(EVENTS.WORKSHEET_V3_SOLUTION_SEEN);\n }, [loggerRef]);\n const handleClose = useCallback(() => {\n setActiveSection(() => undefined);\n }, []);\n const handleBadgeToggle = useCallback(() => {\n setShowStickers(prev => !prev);\n }, []);\n\n const { hints, solution } = questions[activeQuestionIndex]?.metadata || {};\n\n const activeSectionData = useMemo(() => {\n return activeSection === undefined ? undefined : activeSection === 'HINT' ? hints : solution;\n }, [activeSection, hints, solution]);\n\n const sqlRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const hintRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const updatePointerPosition = useCallback((ref: React.RefObject<HTMLDivElement>) => {\n if (ref.current) {\n const rect = ref.current.getBoundingClientRect();\n\n setPointerPosition({\n top: rect.top + rect.height / 2 - 8,\n left: rect.right - 78, // 52px (sidebar width) + 16px (gutter) + 10px\n });\n }\n }, []);\n\n const stickerTrigger = useMemo(\n () => (\n <Clickable label=\"teacher-badges\" onClick={handleBadgeToggle}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\">\n <StickersIcon width={32} height={32} $disabled={!showStickers} />\n <Text $renderAs=\"eyebrow2\" $color={!showStickers ? 'GREY_4' : 'BLACK'}>\n STICKERS\n </Text>\n <FlexView $gap={8} $alignItems=\"center\">\n <Separator width={24} height={1} background=\"GREY_2\" />\n </FlexView>\n </FlexView>\n </Clickable>\n ),\n [showStickers, handleBadgeToggle],\n );\n\n const stickerGridConfig = useMemo(\n () => ({\n stickerSize: 48,\n columns: 4,\n gap: 8,\n }),\n [],\n );\n\n const stickerTooltipConfig = useMemo(\n () => ({\n position: 'left' as TPositionProps,\n zIndex: 1000,\n // arrowXCoOrdinates: 87.5,\n // tooltipXCoOrdinates: '-62.5%',\n }),\n [],\n );\n\n if (activeSection && activeSectionData && learnosity) {\n learnosity.renderMath('mathjax');\n }\n\n useEffect(() => {\n if (activeSection === 'HINT') {\n updatePointerPosition(hintRef);\n } else if (activeSection === 'SOL') {\n updatePointerPosition(sqlRef);\n } else if (!activeSectionData) {\n setActiveSection(undefined);\n }\n }, [activeSection, updatePointerPosition, activeSectionData]);\n\n return (\n <GuideContainer $background=\"WHITE\">\n {enableStickers && handleStickerSend && (\n <StickerSelector\n triggerNode={stickerTrigger}\n onStickerSend={handleStickerSend}\n gridConfig={stickerGridConfig}\n tooltipConfig={stickerTooltipConfig}\n visible={showStickers}\n onToggle={handleBadgeToggle}\n />\n )}\n <Clickable label=\"hints\" onClick={handleHintClick} disabled={!hints}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" ref={hintRef}>\n <HintIcon width={32} height={32} $disabled={!hints} />\n <Text $renderAs=\"eyebrow2\" $color={!hints ? 'GREY_4' : 'BLACK'}>\n HINT\n </Text>\n <FlexView $gap={8} $alignItems=\"center\">\n <Separator width={24} height={1} background=\"GREY_2\" />\n </FlexView>\n </FlexView>\n </Clickable>\n <Clickable label=\"solution\" onClick={handleSolClick} disabled={!solution}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" ref={sqlRef}>\n <SolIcon width={32} height={32} $disabled={!solution} />\n <Text $renderAs=\"eyebrow2\" $color={!hints ? 'GREY_4' : 'BLACK'}>\n SOL\n </Text>\n </FlexView>\n </Clickable>\n {activeSection && top && left && <Pointer topValue={top} leftValue={left} />}\n {activeSection && (\n <SectionContainer\n $background=\"WHITE\"\n $questionWidth={questionWidth}\n $actionbarHeight={actionbarHeight}\n $borderRadius={10}\n >\n <Section\n $gutterX={1}\n $gapX={1}\n $questionWidth={questionWidth}\n $actionbarHeight={actionbarHeight}\n >\n <Clickable label=\"close\" onClick={handleClose}>\n <CloseIcon />\n </Clickable>\n <FlexView $gutterX={0.5}>\n <Text $renderAs=\"eyebrow2\" $color=\"ORANGE_5\" $marginBottomX={0.25}>\n {activeSection === 'HINT' ? 'HINTS:' : 'SOLUTION:'}\n </Text>\n </FlexView>\n {activeSectionData &&\n activeSectionData.map((item, index) => (\n <FlexView $gutterX={0.5} $gapX={0.5} key={index.toString()}>\n {activeSectionData.length > 1 && (\n <Text $renderAs=\"eyebrow2\" $color=\"ORANGE_5\" $marginBottomX={0.25}>\n {activeSection} {index + 1}:\n </Text>\n )}\n <Guide\n dangerouslySetInnerHTML={{\n __html: item,\n }}\n />\n </FlexView>\n ))}\n </Section>\n </SectionContainer>\n )}\n </GuideContainer>\n );\n },\n);\n\nexport default QuestionGuide;\n"],"names":["QuestionGuide","memo","questionWidth","questions","activeQuestionIndex","learnosity","actionbarHeight","loggerRef","enableStickers","handleStickerSend","activeSection","setActiveSection","useState","pointerPosition","setPointerPosition","showStickers","setShowStickers","top","left","handleHintClick","useCallback","EVENTS","handleSolClick","handleClose","handleBadgeToggle","prev","hints","solution","_a","activeSectionData","useMemo","sqlRef","useRef","hintRef","updatePointerPosition","ref","rect","stickerTrigger","jsx","Clickable","jsxs","FlexView","StickersIcon","Text","Separator","stickerGridConfig","stickerTooltipConfig","useEffect","GuideContainer","StickerSelector","HintIcon","SolIcon","Pointer","SectionContainer","Section","CloseIcon","item","index","Guide"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.2.34-mbz2",
3
+ "version": "3.2.34-mbz3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"