@cuemath/leap 3.1.44-beta-0.2 → 3.1.44-hg2

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 (51) hide show
  1. package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -14
  2. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  3. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +7 -7
  4. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  5. package/dist/features/auth/login/login-styled.js +9 -9
  6. package/dist/features/auth/login/login-styled.js.map +1 -1
  7. package/dist/features/hooks/use-viewport/use-viewport.js +8 -16
  8. package/dist/features/hooks/use-viewport/use-viewport.js.map +1 -1
  9. package/dist/features/ui/theme/constants.js +11 -0
  10. package/dist/features/ui/theme/constants.js.map +1 -0
  11. package/dist/features/ui/theme/get-device.js +6 -0
  12. package/dist/features/ui/theme/get-device.js.map +1 -0
  13. package/dist/features/ui/theme/get-theme.js +23 -21
  14. package/dist/features/ui/theme/get-theme.js.map +1 -1
  15. package/dist/features/ui/theme/layout.js +5 -3
  16. package/dist/features/ui/theme/layout.js.map +1 -1
  17. package/dist/features/ui/theme/media-queries.js +11 -0
  18. package/dist/features/ui/theme/media-queries.js.map +1 -0
  19. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +43 -45
  20. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  21. package/dist/features/worksheet/worksheet/worksheet-helpers.js +84 -98
  22. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  23. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +66 -66
  24. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  25. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +75 -78
  26. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  27. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +202 -268
  28. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  29. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +20 -21
  30. package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -1
  31. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  32. package/dist/features/worksheet/worksheet/worksheet.js +354 -378
  33. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  34. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +18 -20
  35. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  36. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +25 -33
  37. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  38. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js +15 -22
  39. package/dist/features/worksheet/worksheet-preview/worksheet-preview-styled.js.map +1 -1
  40. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +66 -85
  41. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  42. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +32 -51
  43. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  44. package/dist/index.d.ts +7 -26
  45. package/dist/index.js +32 -34
  46. package/dist/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/features/ui/theme/device.js +0 -5
  49. package/dist/features/ui/theme/device.js.map +0 -1
  50. package/dist/features/utils/media.js +0 -16
  51. package/dist/features/utils/media.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { styled as t } from "styled-components";
2
- import i from "../../ui/buttons/button/button.js";
3
- import p from "../../ui/layout/flex-view.js";
4
- import { media as o } from "../../utils/media.js";
5
- const x = t.form`
2
+ import p from "../../ui/buttons/button/button.js";
3
+ import o from "../../ui/layout/flex-view.js";
4
+ import { mediaQueries as i } from "../../ui/theme/media-queries.js";
5
+ const h = t.form`
6
6
  display: flex;
7
7
  flex: 1;
8
8
  margin-top: 0;
@@ -11,28 +11,28 @@ const x = t.form`
11
11
  max-width: 336px;
12
12
  width: 100%;
13
13
  height: 308px;
14
- ${o.minDesktop} {
14
+ ${i.minWidthDesktop} {
15
15
  margin-top: 8px;
16
16
  }
17
- `, a = t(p)`
17
+ `, x = t(o)`
18
18
  margin-top: 0;
19
19
  max-width: 336px;
20
20
  width: 100%;
21
- ${o.minDesktop} {
21
+ ${i.minWidthDesktop} {
22
22
  margin-top: 8px;
23
23
  }
24
- `, h = t(p)`
24
+ `, a = t(o)`
25
25
  min-height: 300px;
26
- ${o.minDesktop} {
26
+ ${i.minWidthDesktop} {
27
27
  height: 308px;
28
28
  }
29
- `, s = t(i)`
29
+ `, d = t(p)`
30
30
  width: 100%;
31
31
  `;
32
32
  export {
33
- s as ButtonWrapper,
34
- h as Container,
35
- x as FormWrapper,
36
- a as OtpFormWrapper
33
+ d as ButtonWrapper,
34
+ a as Container,
35
+ h as FormWrapper,
36
+ x as OtpFormWrapper
37
37
  };
38
38
  //# sourceMappingURL=forgot-password-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forgot-password-styled.js","sources":["../../../../src/features/auth/forgot-password/forgot-password-styled.tsx"],"sourcesContent":["import { styled } from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport { media } from '../../utils/media';\n\nexport const FormWrapper = styled.form`\n display: flex;\n flex: 1;\n margin-top: 0;\n flex-direction: column;\n justify-content: space-between;\n max-width: 336px;\n width: 100%;\n height: 308px;\n ${media.minDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const OtpFormWrapper = styled(FlexView)`\n margin-top: 0;\n max-width: 336px;\n width: 100%;\n ${media.minDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const Container = styled(FlexView)`\n min-height: 300px;\n ${media.minDesktop} {\n height: 308px;\n }\n`;\n\nexport const ButtonWrapper = styled(Button)`\n width: 100%;\n`;\n"],"names":["FormWrapper","styled","media","OtpFormWrapper","FlexView","Container","ButtonWrapper","Button"],"mappings":";;;;AAMO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAS9BC,EAAM,UAAU;AAAA;AAAA;AAAA,GAKPC,IAAiBF,EAAOG,CAAQ;AAAA;AAAA;AAAA;AAAA,IAIzCF,EAAM,UAAU;AAAA;AAAA;AAAA,GAKPG,IAAYJ,EAAOG,CAAQ;AAAA;AAAA,IAEpCF,EAAM,UAAU;AAAA;AAAA;AAAA,GAKPI,IAAgBL,EAAOM,CAAM;AAAA;AAAA;"}
1
+ {"version":3,"file":"forgot-password-styled.js","sources":["../../../../src/features/auth/forgot-password/forgot-password-styled.tsx"],"sourcesContent":["import { styled } from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport { mediaQueries } from '../../ui/theme/media-queries';\n\nexport const FormWrapper = styled.form`\n display: flex;\n flex: 1;\n margin-top: 0;\n flex-direction: column;\n justify-content: space-between;\n max-width: 336px;\n width: 100%;\n height: 308px;\n ${mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const OtpFormWrapper = styled(FlexView)`\n margin-top: 0;\n max-width: 336px;\n width: 100%;\n ${mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const Container = styled(FlexView)`\n min-height: 300px;\n ${mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport const ButtonWrapper = styled(Button)`\n width: 100%;\n`;\n"],"names":["FormWrapper","styled","mediaQueries","OtpFormWrapper","FlexView","Container","ButtonWrapper","Button"],"mappings":";;;;AAMO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAS9BC,EAAa,eAAe;AAAA;AAAA;AAAA,GAKnBC,IAAiBF,EAAOG,CAAQ;AAAA;AAAA;AAAA;AAAA,IAIzCF,EAAa,eAAe;AAAA;AAAA;AAAA,GAKnBG,IAAYJ,EAAOG,CAAQ;AAAA;AAAA,IAEpCF,EAAa,eAAe;AAAA;AAAA;AAAA,GAKnBI,IAAgBL,EAAOM,CAAM;AAAA;AAAA;"}
@@ -1,7 +1,7 @@
1
1
  import t from "styled-components";
2
- import o from "../../../ui/layout/flex-view.js";
3
- import { media as e } from "../../../utils/media.js";
4
- const r = t.form`
2
+ import i from "../../../ui/layout/flex-view.js";
3
+ import { mediaQueries as e } from "../../../ui/theme/media-queries.js";
4
+ const m = t.form`
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  justify-content: space-between;
@@ -9,17 +9,17 @@ const r = t.form`
9
9
  flex: 1;
10
10
  width: 100%;
11
11
  max-width: 336px;
12
- ${e.minDesktop} {
12
+ ${e.minWidthDesktop} {
13
13
  margin-top: 8px;
14
14
  }
15
- `, n = t(o)`
15
+ `, n = t(i)`
16
16
  height: 300px;
17
- ${e.minDesktop} {
17
+ ${e.minWidthDesktop} {
18
18
  height: 308px;
19
19
  }
20
20
  `;
21
21
  export {
22
22
  n as Container,
23
- r as FormWrapper
23
+ m as FormWrapper
24
24
  };
25
25
  //# sourceMappingURL=identifier-otp-form-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identifier-otp-form-styled.js","sources":["../../../../../src/features/auth/login/identifier-otp-form/identifier-otp-form-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { media } from '../../../utils/media';\n\nconst FormWrapper = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 0;\n flex: 1;\n width: 100%;\n max-width: 336px;\n ${media.minDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst Container = styled(FlexView)`\n height: 300px;\n ${media.minDesktop} {\n height: 308px;\n }\n`;\n\nexport { FormWrapper, Container };\n"],"names":["FormWrapper","styled","media","Container","FlexView"],"mappings":";;;AAKA,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQvBC,EAAM,UAAU;AAAA;AAAA;AAAA,GAKdC,IAAYF,EAAOG,CAAQ;AAAA;AAAA,IAE7BF,EAAM,UAAU;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"identifier-otp-form-styled.js","sources":["../../../../../src/features/auth/login/identifier-otp-form/identifier-otp-form-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { mediaQueries } from '../../../ui/theme/media-queries';\n\nconst FormWrapper = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 0;\n flex: 1;\n width: 100%;\n max-width: 336px;\n ${mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst Container = styled(FlexView)`\n height: 300px;\n ${mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport { FormWrapper, Container };\n"],"names":["FormWrapper","styled","mediaQueries","Container","FlexView"],"mappings":";;;AAKA,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQvBC,EAAa,eAAe;AAAA;AAAA;AAAA,GAK1BC,IAAYF,EAAOG,CAAQ;AAAA;AAAA,IAE7BF,EAAa,eAAe;AAAA;AAAA;AAAA;"}
@@ -1,26 +1,26 @@
1
1
  import t from "styled-components";
2
- import i from "../../ui/buttons/button/button.js";
2
+ import o from "../../ui/buttons/button/button.js";
3
3
  import m from "../../ui/layout/flex-view.js";
4
- import { media as o } from "../../utils/media.js";
5
- const x = t.form`
4
+ import { mediaQueries as i } from "../../ui/theme/media-queries.js";
5
+ const h = t.form`
6
6
  max-width: 336px;
7
7
  width: 100%;
8
8
  margin-top: 0;
9
- ${o.minDesktop} {
9
+ ${i.minWidthDesktop} {
10
10
  margin-top: 8px;
11
11
  }
12
12
  `;
13
- t(i)`
13
+ t(o)`
14
14
  max-width: 160px;
15
15
  `;
16
- const a = t(m)`
16
+ const x = t(m)`
17
17
  min-height: 300px;
18
- ${o.minDesktop} {
18
+ ${i.minWidthDesktop} {
19
19
  height: 308px;
20
20
  }
21
21
  `;
22
22
  export {
23
- a as Container,
24
- x as FormContainer
23
+ x as Container,
24
+ h as FormContainer
25
25
  };
26
26
  //# sourceMappingURL=login-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-styled.js","sources":["../../../../src/features/auth/login/login-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport { media } from '../../utils/media';\n\nexport const FormContainer = styled.form`\n max-width: 336px;\n width: 100%;\n margin-top: 0;\n ${media.minDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst ButtonWrapper = styled(Button)`\n max-width: 160px;\n`;\n\nconst Container = styled(FlexView)`\n min-height: 300px;\n ${media.minDesktop} {\n height: 308px;\n }\n`;\n\nexport { ButtonWrapper, Container };\n"],"names":["FormContainer","styled","media","Button","Container","FlexView"],"mappings":";;;;AAMO,MAAMA,IAAgBC,EAAO;AAAA;AAAA;AAAA;AAAA,IAIhCC,EAAM,UAAU;AAAA;AAAA;AAAA;AAKED,EAAOE,CAAM;AAAA;AAAA;AAI7B,MAAAC,IAAYH,EAAOI,CAAQ;AAAA;AAAA,IAE7BH,EAAM,UAAU;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"login-styled.js","sources":["../../../../src/features/auth/login/login-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport { mediaQueries } from '../../ui/theme/media-queries';\n\nexport const FormContainer = styled.form`\n max-width: 336px;\n width: 100%;\n margin-top: 0;\n ${mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst ButtonWrapper = styled(Button)`\n max-width: 160px;\n`;\n\nconst Container = styled(FlexView)`\n min-height: 300px;\n ${mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport { ButtonWrapper, Container };\n"],"names":["FormContainer","styled","mediaQueries","Button","Container","FlexView"],"mappings":";;;;AAMO,MAAMA,IAAgBC,EAAO;AAAA;AAAA;AAAA;AAAA,IAIhCC,EAAa,eAAe;AAAA;AAAA;AAAA;AAKVD,EAAOE,CAAM;AAAA;AAAA;AAI7B,MAAAC,IAAYH,EAAOI,CAAQ;AAAA;AAAA,IAE7BH,EAAa,eAAe;AAAA;AAAA;AAAA;"}
@@ -1,21 +1,13 @@
1
- import { useState as n, useEffect as r } from "react";
2
- import { getDeviceType as c } from "../../utils/media.js";
3
- const d = () => {
4
- const [s, o] = n(() => window.innerWidth);
5
- r(() => {
6
- function i() {
7
- o(window.innerWidth);
8
- }
9
- return window.addEventListener("resize", i), () => window.removeEventListener("resize", i);
10
- }, []);
11
- const e = c(s), t = e === "mobile";
1
+ import { getTheme as t } from "../../ui/theme/get-theme.js";
2
+ const i = () => {
3
+ const { device: e } = t(), s = e === "mobile";
12
4
  return {
13
- isMobile: t,
14
- isCompact: t || e === "tablet",
15
- isDesktop: e === "desktop" || e === "large" || e === "xl"
5
+ isMobile: s,
6
+ isCompact: s || e === "tablet",
7
+ isDesktop: e === "desktop" || e === "large-device" || e === "xlarge-device"
16
8
  };
17
- }, f = d;
9
+ }, n = i;
18
10
  export {
19
- f as default
11
+ n as default
20
12
  };
21
13
  //# sourceMappingURL=use-viewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-viewport.js","sources":["../../../../src/features/hooks/use-viewport/use-viewport.ts"],"sourcesContent":["import type { IUseViewportReturn } from './use-viewport-types';\n\nimport { useEffect, useState } from 'react';\n\nimport { getDeviceType } from '../../utils/media';\n\nconst useViewport = (): IUseViewportReturn => {\n const [width, setWidth] = useState(() => window.innerWidth);\n\n useEffect(() => {\n function handleResize() {\n setWidth(window.innerWidth);\n }\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const deviceType = getDeviceType(width);\n const isMobile = deviceType === 'mobile';\n const isTablet = deviceType === 'tablet';\n const isDesktop = deviceType === 'desktop';\n const isLarge = deviceType === 'large';\n const isXL = deviceType === 'xl';\n\n return {\n isMobile: isMobile,\n isCompact: isMobile || isTablet,\n isDesktop: isDesktop || isLarge || isXL,\n };\n};\n\nexport default useViewport;\n"],"names":["useViewport","width","setWidth","useState","useEffect","handleResize","deviceType","getDeviceType","isMobile","useViewport$1"],"mappings":";;AAMA,MAAMA,IAAc,MAA0B;AAC5C,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAS,MAAM,OAAO,UAAU;AAE1D,EAAAC,EAAU,MAAM;AACd,aAASC,IAAe;AACtB,MAAAH,EAAS,OAAO,UAAU;AAAA,IAC5B;AAEO,kBAAA,iBAAiB,UAAUG,CAAY,GAEvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GAAG,CAAE,CAAA;AAEC,QAAAC,IAAaC,EAAcN,CAAK,GAChCO,IAAWF,MAAe;AAMzB,SAAA;AAAA,IACL,UAAAE;AAAA,IACA,WAAWA,KAPIF,MAAe;AAAA,IAQ9B,WAPgBA,MAAe,aACjBA,MAAe,WAClBA,MAAe;AAAA,EAKS;AAEvC,GAEAG,IAAeT;"}
1
+ {"version":3,"file":"use-viewport.js","sources":["../../../../src/features/hooks/use-viewport/use-viewport.ts"],"sourcesContent":["import type { IUseViewportReturn } from './use-viewport-types';\n\nimport { getTheme } from '../../ui/theme/get-theme';\n\nconst useViewport = (): IUseViewportReturn => {\n const { device: deviceType } = getTheme();\n\n const isMobile = deviceType === 'mobile';\n const isTablet = deviceType === 'tablet';\n const isDesktop = deviceType === 'desktop';\n const isLarge = deviceType === 'large-device';\n const isXL = deviceType === 'xlarge-device';\n\n return {\n isMobile: isMobile,\n isCompact: isMobile || isTablet,\n isDesktop: isDesktop || isLarge || isXL,\n };\n};\n\nexport default useViewport;\n"],"names":["useViewport","deviceType","getTheme","isMobile","useViewport$1"],"mappings":";AAIA,MAAMA,IAAc,MAA0B;AAC5C,QAAM,EAAE,QAAQC,EAAW,IAAIC,EAAS,GAElCC,IAAWF,MAAe;AAMzB,SAAA;AAAA,IACL,UAAAE;AAAA,IACA,WAAWA,KAPIF,MAAe;AAAA,IAQ9B,WAPgBA,MAAe,aACjBA,MAAe,kBAClBA,MAAe;AAAA,EAKS;AAEvC,GAEAG,IAAeJ;"}
@@ -0,0 +1,11 @@
1
+ const e = {
2
+ tablet: 760,
3
+ smallDesktop: 920,
4
+ desktop: 1072,
5
+ largeDevice: 1232,
6
+ xlargeDevice: 1424
7
+ };
8
+ export {
9
+ e as BREAKPOINTS
10
+ };
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/features/ui/theme/constants.ts"],"sourcesContent":["export const BREAKPOINTS = {\n tablet: 760,\n smallDesktop: 920,\n desktop: 1072,\n largeDevice: 1232,\n xlargeDevice: 1424,\n};\n"],"names":["BREAKPOINTS"],"mappings":"AAAO,MAAMA,IAAc;AAAA,EACzB,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAChB;"}
@@ -0,0 +1,6 @@
1
+ import { BREAKPOINTS as r } from "./constants.js";
2
+ const l = (e) => e >= r.xlargeDevice ? "xlarge-device" : e >= r.largeDevice ? "large-device" : e >= r.smallDesktop ? "small-desktop" : e >= r.desktop ? "desktop" : e >= r.tablet ? "tablet" : "mobile";
3
+ export {
4
+ l as getDevice
5
+ };
6
+ //# sourceMappingURL=get-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-device.js","sources":["../../../../src/features/ui/theme/get-device.ts"],"sourcesContent":["import type { TDeviceType } from '../types';\n\nimport { BREAKPOINTS } from './constants';\n\nexport const getDevice = (width: number): TDeviceType => {\n if (width >= BREAKPOINTS.xlargeDevice) return 'xlarge-device';\n\n if (width >= BREAKPOINTS.largeDevice) return 'large-device';\n\n if (width >= BREAKPOINTS.smallDesktop) return 'small-desktop';\n\n if (width >= BREAKPOINTS.desktop) return 'desktop';\n\n if (width >= BREAKPOINTS.tablet) return 'tablet';\n\n return 'mobile';\n};\n"],"names":["getDevice","width","BREAKPOINTS"],"mappings":";AAIa,MAAAA,IAAY,CAACC,MACpBA,KAASC,EAAY,eAAqB,kBAE1CD,KAASC,EAAY,cAAoB,iBAEzCD,KAASC,EAAY,eAAqB,kBAE1CD,KAASC,EAAY,UAAgB,YAErCD,KAASC,EAAY,SAAe,WAEjC;"}
@@ -1,32 +1,34 @@
1
1
  import r from "./arrow-tooltip.js";
2
- import e from "./button.js";
3
- import i from "./checkbox.js";
4
- import m, { hues as g } from "./clrs.js";
5
- import { getDeviceConfig as n } from "./device.js";
6
- import f from "./input.js";
7
- import p from "./layout.js";
8
- import u from "./tab.js";
2
+ import i from "./button.js";
3
+ import m from "./checkbox.js";
4
+ import g, { hues as f } from "./clrs.js";
5
+ import { getDevice as n } from "./get-device.js";
6
+ import p from "./input.js";
7
+ import u from "./layout.js";
8
+ import { mediaQueries as c } from "./media-queries.js";
9
+ import x from "./tab.js";
9
10
  import C from "./text.js";
10
- import c from "./text-button.js";
11
- import { getZIndexConfig as x } from "./z-index.js";
12
- const v = () => {
13
- const t = p(), { gutter: o } = t;
11
+ import s from "./text-button.js";
12
+ import { getZIndexConfig as T } from "./z-index.js";
13
+ const A = () => {
14
+ const t = u(), { gutter: o, deviceWidth: e } = t;
14
15
  return {
15
16
  arrowTooltip: r(),
16
- button: e(o),
17
- colors: m(),
18
- hues: g,
19
- input: f(o),
20
- checkbox: i(o),
17
+ button: i(o),
18
+ colors: g(),
19
+ hues: f,
20
+ input: p(o),
21
+ checkbox: m(o),
21
22
  layout: t,
22
- tab: u(t.gutter),
23
+ tab: x(t.gutter),
23
24
  text: C(),
24
- textButton: c(),
25
- zIndex: x(),
26
- device: n()
25
+ textButton: s(),
26
+ zIndex: T(),
27
+ device: n(e),
28
+ mediaQueries: c
27
29
  };
28
30
  };
29
31
  export {
30
- v as getTheme
32
+ A as getTheme
31
33
  };
32
34
  //# sourceMappingURL=get-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-theme.js","sources":["../../../../src/features/ui/theme/get-theme.ts"],"sourcesContent":["import type { DefaultTheme } from 'styled-components';\n\nimport getArrowTooltipConfig from './arrow-tooltip';\nimport getButtonConfig from './button';\nimport getCheckboxConfig from './checkbox';\nimport getColors, { hues } from './clrs';\nimport { getDeviceConfig } from './device';\nimport getInputConfig from './input';\nimport getLayout from './layout';\nimport getTabConfig from './tab';\nimport getTextTypes from './text';\nimport getTextButtonConfig from './text-button';\nimport { getZIndexConfig } from './z-index';\n\nconst getTheme: () => DefaultTheme = () => {\n const layout = getLayout();\n const { gutter } = layout;\n\n return {\n arrowTooltip: getArrowTooltipConfig(),\n button: getButtonConfig(gutter),\n colors: getColors(),\n hues: hues,\n input: getInputConfig(gutter),\n checkbox: getCheckboxConfig(gutter),\n layout,\n tab: getTabConfig(layout.gutter),\n text: getTextTypes(),\n textButton: getTextButtonConfig(),\n zIndex: getZIndexConfig(),\n device: getDeviceConfig(),\n };\n};\n\nexport { getTheme };\n"],"names":["getTheme","layout","getLayout","gutter","getArrowTooltipConfig","getButtonConfig","getColors","hues","getInputConfig","getCheckboxConfig","getTabConfig","getTextTypes","getTextButtonConfig","getZIndexConfig","getDeviceConfig"],"mappings":";;;;;;;;;;;AAcA,MAAMA,IAA+B,MAAM;AACzC,QAAMC,IAASC,KACT,EAAE,QAAAC,EAAW,IAAAF;AAEZ,SAAA;AAAA,IACL,cAAcG,EAAsB;AAAA,IACpC,QAAQC,EAAgBF,CAAM;AAAA,IAC9B,QAAQG,EAAU;AAAA,IAClB,MAAAC;AAAA,IACA,OAAOC,EAAeL,CAAM;AAAA,IAC5B,UAAUM,EAAkBN,CAAM;AAAA,IAClC,QAAAF;AAAA,IACA,KAAKS,EAAaT,EAAO,MAAM;AAAA,IAC/B,MAAMU,EAAa;AAAA,IACnB,YAAYC,EAAoB;AAAA,IAChC,QAAQC,EAAgB;AAAA,IACxB,QAAQC,EAAgB;AAAA,EAAA;AAE5B;"}
1
+ {"version":3,"file":"get-theme.js","sources":["../../../../src/features/ui/theme/get-theme.ts"],"sourcesContent":["import type { DefaultTheme } from 'styled-components';\n\nimport getArrowTooltipConfig from './arrow-tooltip';\nimport getButtonConfig from './button';\nimport getCheckboxConfig from './checkbox';\nimport getColors, { hues } from './clrs';\nimport { getDevice } from './get-device';\nimport getInputConfig from './input';\nimport getLayout from './layout';\nimport { mediaQueries } from './media-queries';\nimport getTabConfig from './tab';\nimport getTextTypes from './text';\nimport getTextButtonConfig from './text-button';\nimport { getZIndexConfig } from './z-index';\n\nconst getTheme: () => DefaultTheme = () => {\n const layout = getLayout();\n const { gutter, deviceWidth } = layout;\n\n return {\n arrowTooltip: getArrowTooltipConfig(),\n button: getButtonConfig(gutter),\n colors: getColors(),\n hues: hues,\n input: getInputConfig(gutter),\n checkbox: getCheckboxConfig(gutter),\n layout,\n tab: getTabConfig(layout.gutter),\n text: getTextTypes(),\n textButton: getTextButtonConfig(),\n zIndex: getZIndexConfig(),\n device: getDevice(deviceWidth),\n mediaQueries,\n };\n};\n\nexport { getTheme };\n"],"names":["getTheme","layout","getLayout","gutter","deviceWidth","getArrowTooltipConfig","getButtonConfig","getColors","hues","getInputConfig","getCheckboxConfig","getTabConfig","getTextTypes","getTextButtonConfig","getZIndexConfig","getDevice","mediaQueries"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,IAA+B,MAAM;AACzC,QAAMC,IAASC,KACT,EAAE,QAAAC,GAAQ,aAAAC,EAAgB,IAAAH;AAEzB,SAAA;AAAA,IACL,cAAcI,EAAsB;AAAA,IACpC,QAAQC,EAAgBH,CAAM;AAAA,IAC9B,QAAQI,EAAU;AAAA,IAClB,MAAAC;AAAA,IACA,OAAOC,EAAeN,CAAM;AAAA,IAC5B,UAAUO,EAAkBP,CAAM;AAAA,IAClC,QAAAF;AAAA,IACA,KAAKU,EAAaV,EAAO,MAAM;AAAA,IAC/B,MAAMW,EAAa;AAAA,IACnB,YAAYC,EAAoB;AAAA,IAChC,QAAQC,EAAgB;AAAA,IACxB,QAAQC,EAAUX,CAAW;AAAA,IAC7B,cAAAY;AAAA,EAAA;AAEJ;"}
@@ -1,9 +1,11 @@
1
- function e(t = 1) {
1
+ function i() {
2
2
  return {
3
- gutter: 16 * t
3
+ gutter: 16 * 1,
4
+ deviceWidth: window.innerWidth,
5
+ deviceHeight: window.innerHeight
4
6
  };
5
7
  }
6
8
  export {
7
- e as default
9
+ i as default
8
10
  };
9
11
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../../../src/features/ui/theme/layout.ts"],"sourcesContent":["import type { ILayout } from '../types';\n\nfunction getLayout(multiplier: number = 1): ILayout {\n return {\n gutter: 16 * multiplier,\n };\n}\n\nexport default getLayout;\n"],"names":["getLayout","multiplier"],"mappings":"AAEA,SAASA,EAAUC,IAAqB,GAAY;AAC3C,SAAA;AAAA,IACL,QAAQ,KAAKA;AAAA,EAAA;AAEjB;"}
1
+ {"version":3,"file":"layout.js","sources":["../../../../src/features/ui/theme/layout.ts"],"sourcesContent":["import type { ILayout } from '../types';\n\nfunction getLayout(): ILayout {\n const multiplier = 1;\n\n // TODO: handle multiplier logic based on the width and height\n\n return {\n gutter: 16 * multiplier,\n deviceWidth: window.innerWidth,\n deviceHeight: window.innerHeight,\n };\n}\n\nexport default getLayout;\n"],"names":["getLayout"],"mappings":"AAEA,SAASA,IAAqB;AAKrB,SAAA;AAAA,IACL,QAAQ,KAAK;AAAA,IACb,aAAa,OAAO;AAAA,IACpB,cAAc,OAAO;AAAA,EAAA;AAEzB;"}
@@ -0,0 +1,11 @@
1
+ import { BREAKPOINTS as i } from "./constants.js";
2
+ const t = {
3
+ minWidthTablet: `@media (min-width: ${i.tablet}px)`,
4
+ minWidthSmallDesktop: `@media (min-width: ${i.smallDesktop}px)`,
5
+ minWidthDesktop: `@media (min-width: ${i.desktop}px)`,
6
+ minWidthLargeDevice: `@media (min-width: ${i.largeDevice}px)`
7
+ };
8
+ export {
9
+ t as mediaQueries
10
+ };
11
+ //# sourceMappingURL=media-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-queries.js","sources":["../../../../src/features/ui/theme/media-queries.ts"],"sourcesContent":["import { BREAKPOINTS } from './constants';\n\nexport const mediaQueries = {\n minWidthTablet: `@media (min-width: ${BREAKPOINTS.tablet}px)`,\n minWidthSmallDesktop: `@media (min-width: ${BREAKPOINTS.smallDesktop}px)`,\n minWidthDesktop: `@media (min-width: ${BREAKPOINTS.desktop}px)`,\n minWidthLargeDevice: `@media (min-width: ${BREAKPOINTS.largeDevice}px)`,\n};\n"],"names":["mediaQueries","BREAKPOINTS"],"mappings":";AAEO,MAAMA,IAAe;AAAA,EAC1B,gBAAgB,sBAAsBC,EAAY,MAAM;AAAA,EACxD,sBAAsB,sBAAsBA,EAAY,YAAY;AAAA,EACpE,iBAAiB,sBAAsBA,EAAY,OAAO;AAAA,EAC1D,qBAAqB,sBAAsBA,EAAY,WAAW;AACpE;"}
@@ -1,18 +1,18 @@
1
1
  import { jsx as e, jsxs as b, Fragment as B } from "react/jsx-runtime";
2
- import { memo as M, useState as Y, useCallback as i } from "react";
3
- import Z from "../../../../assets/line-icons/icons/calculator.js";
4
- import ee from "../../../../assets/line-icons/icons/down.js";
5
- import oe from "../../../../assets/line-icons/icons/up.js";
6
- import ne from "../../../cue-canvas/toolbar/toolbar.js";
7
- import te from "../../../ui/buttons/button/button.js";
8
- import se from "../../../ui/layout/flex-view.js";
9
- import { scrollToQuestion as ie } from "../worksheet-helpers.js";
10
- import re from "../worksheet-questions-controller/scribble-switch.js";
11
- import ae from "../worksheet-questions-controller/worksheet-questions-controller.js";
12
- import le from "../worksheet-questions-summary/worksheet-questions-summary.js";
13
- import { IconContainer as me, SummaryWrapper as ce } from "../worksheet-styled.js";
14
- import ue from "../worksheet-summary-controller/worksheet-summary-controller.js";
15
- const xe = M(($) => {
2
+ import { memo as L, useState as M, useCallback as i } from "react";
3
+ import Y from "../../../../assets/line-icons/icons/calculator.js";
4
+ import Z from "../../../../assets/line-icons/icons/down.js";
5
+ import ee from "../../../../assets/line-icons/icons/up.js";
6
+ import oe from "../../../cue-canvas/toolbar/toolbar.js";
7
+ import ne from "../../../ui/buttons/button/button.js";
8
+ import te from "../../../ui/layout/flex-view.js";
9
+ import { scrollToQuestion as se } from "../worksheet-helpers.js";
10
+ import ie from "../worksheet-questions-controller/scribble-switch.js";
11
+ import re from "../worksheet-questions-controller/worksheet-questions-controller.js";
12
+ import ae from "../worksheet-questions-summary/worksheet-questions-summary.js";
13
+ import { IconContainer as le, SummaryWrapper as me } from "../worksheet-styled.js";
14
+ import ce from "../worksheet-summary-controller/worksheet-summary-controller.js";
15
+ const ve = L(($) => {
16
16
  const {
17
17
  userType: m,
18
18
  layout: f,
@@ -37,89 +37,88 @@ const xe = M(($) => {
37
37
  onItemNumberClick: C,
38
38
  onTeacherValidation: N,
39
39
  onGoToReview: I,
40
- onResponseChange: U,
41
- onHelp: D,
40
+ onResponseChange: D,
41
+ onHelp: E,
42
42
  onSubmit: a,
43
- onCalculatorOpen: E,
43
+ onCalculatorOpen: U,
44
44
  canSubmitWorksheet: g,
45
45
  loggerRef: y,
46
46
  onSkip: _,
47
- onUnassign: z,
48
- canToggleScribbling: H
49
- } = $, { navigationBar: P, questionsScrollable: w } = f, p = o[s], { response_id: l } = p ?? {}, [Q, d] = Y(!1), X = l ? W.includes(l) : !1, J = i(
47
+ canToggleScribbling: z
48
+ } = $, { navigationBar: H, questionsScrollable: w } = f, p = o[s], { response_id: l } = p ?? {}, [Q, d] = M(!1), P = l ? W.includes(l) : !1, X = i(
50
49
  (n) => {
51
50
  d(!1), C(n);
52
51
  },
53
52
  [C]
54
- ), K = i(() => {
53
+ ), J = i(() => {
55
54
  d(!1), I();
56
55
  }, [I]), v = i(() => {
57
56
  d((n) => !n);
58
- }, []), L = i(() => {
57
+ }, []), K = i(() => {
59
58
  var T;
60
59
  u(!1);
61
60
  const n = (T = o[o.length - 1]) == null ? void 0 : T.response_id;
62
- n && (w ? requestAnimationFrame(() => ie(n)) : c(n));
61
+ n && (w ? requestAnimationFrame(() => se(n)) : c(n));
63
62
  }, [o, w, c, u]), x = i(() => {
64
63
  a == null || a(t);
65
64
  }, [a, t]);
66
65
  return k ? /* @__PURE__ */ e(
67
- ue,
66
+ ce,
68
67
  {
69
- onBack: L,
68
+ onBack: K,
70
69
  behavior: r,
71
70
  onSubmit: x,
72
71
  canSubmitWorksheet: !!g
73
72
  }
74
73
  ) : /* @__PURE__ */ b(B, { children: [
75
- /* @__PURE__ */ b(se, { $flexDirection: "row", $flexGap: 12, children: [
74
+ /* @__PURE__ */ b(te, { $flexDirection: "row", $flexGap: 12, children: [
76
75
  /* @__PURE__ */ e(
77
- re,
76
+ ie,
78
77
  {
79
78
  isScribblingEnabled: S,
80
79
  setIsScribblingEnabled: O,
81
80
  isCanvasEnabled: R,
82
81
  loggerRef: y,
83
- canToggleScribbling: H
82
+ canToggleScribbling: z
84
83
  }
85
84
  ),
86
85
  r.canShowDesmosCalc && /* @__PURE__ */ e(
87
- me,
86
+ le,
88
87
  {
89
88
  $active: G,
90
89
  $alignItems: "center",
91
90
  $justifyContent: "space-between",
92
- onClick: E,
93
- children: /* @__PURE__ */ e(Z, {})
91
+ onClick: U,
92
+ children: /* @__PURE__ */ e(Y, {})
94
93
  }
95
94
  )
96
95
  ] }),
97
- S && /* @__PURE__ */ e(ne, { userType: m, renderAs: "canvas" }),
98
- P === "bottom" && /* @__PURE__ */ b(B, { children: [
99
- Q && /* @__PURE__ */ e(ce, { $alignItems: "center", children: /* @__PURE__ */ e(
100
- le,
96
+ S && /* @__PURE__ */ e(oe, { userType: m, renderAs: "canvas" }),
97
+ H === "bottom" && /* @__PURE__ */ b(B, { children: [
98
+ Q && /* @__PURE__ */ e(me, { $alignItems: "center", children: /* @__PURE__ */ e(
99
+ ae,
101
100
  {
102
101
  activeQuestionIndex: s,
103
102
  lastUnlockedQuestionIndex: h,
104
- onItemNumberClick: J,
103
+ onItemNumberClick: X,
105
104
  questions: o,
106
105
  responses: t,
107
106
  worksheetName: A,
108
107
  behavior: r,
109
108
  userType: m,
110
109
  onClose: v,
111
- onGoToReview: K,
110
+ onGoToReview: J,
112
111
  summaryVisible: k
113
112
  }
114
113
  ) }),
115
114
  /* @__PURE__ */ e(
116
- te,
115
+ ne,
117
116
  {
118
117
  renderAs: "secondary",
119
118
  widthX: 13.25,
120
119
  label: `Question ${s + 1} of ${o.length}`,
121
120
  size: "small",
122
- Icon: Q ? ee : oe,
121
+ Icon: Q ? Z : ee,
123
122
  iconPosition: "right",
124
123
  justifyContent: "space-between",
125
124
  onClick: v
@@ -127,7 +126,7 @@ const xe = M(($) => {
127
126
  )
128
127
  ] }),
129
128
  p && l && /* @__PURE__ */ e(
130
- ae,
129
+ re,
131
130
  {
132
131
  learnosity: q,
133
132
  question: p,
@@ -135,17 +134,16 @@ const xe = M(($) => {
135
134
  responses: t,
136
135
  canSubmitWorksheet: g,
137
136
  questionIndex: s,
138
- isQuestionAppended: X,
137
+ isQuestionAppended: P,
139
138
  isQuestionUnlocked: s <= h,
140
139
  response: t[l],
141
140
  behavior: r,
142
141
  userType: m,
143
142
  layout: f,
144
- onResponseChange: U,
143
+ onResponseChange: D,
145
144
  onTeacherValidation: N,
146
- onHelp: D,
145
+ onHelp: E,
147
146
  onSubmit: x,
148
- onUnassign: z,
149
147
  setActiveQuestionId: c,
150
148
  setBlocker: F,
151
149
  setSummaryVisible: u,
@@ -158,6 +156,6 @@ const xe = M(($) => {
158
156
  ] });
159
157
  });
160
158
  export {
161
- xe as default
159
+ ve as default
162
160
  };
163
161
  //# sourceMappingURL=worksheet-action-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-action-bar.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.tsx"],"sourcesContent":["import type { IWorksheetActionBarProps } from './worksheet-action-bar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CalculatorIcon from '../../../../assets/line-icons/icons/calculator';\nimport DownIcon from '../../../../assets/line-icons/icons/down';\nimport UpIcon from '../../../../assets/line-icons/icons/up';\nimport Toolbar from '../../../cue-canvas/toolbar/toolbar';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { scrollToQuestion } from '../worksheet-helpers';\nimport ScribbleSwitch from '../worksheet-questions-controller/scribble-switch';\nimport WorksheetQuestionsController from '../worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsSummary from '../worksheet-questions-summary/worksheet-questions-summary';\nimport * as Styled from '../worksheet-styled';\nimport WorksheetSummaryController from '../worksheet-summary-controller/worksheet-summary-controller';\n\nconst WorksheetActionBar: FC<IWorksheetActionBarProps> = memo(props => {\n const {\n userType,\n layout,\n behavior,\n worksheetName,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n appendedQuestionIds,\n learnosity,\n isCanvasEnabled,\n isScribblingEnabled,\n isSummaryVisible,\n setIsScribblingEnabled,\n setActiveQuestionId,\n setResponses,\n getTimeSpentOnQuestion,\n setBlocker,\n setSummaryVisible,\n showCalculator,\n onItemNumberClick,\n onTeacherValidation,\n onGoToReview,\n onResponseChange,\n onHelp,\n onSubmit,\n onCalculatorOpen,\n canSubmitWorksheet,\n loggerRef,\n onSkip,\n onUnassign,\n canToggleScribbling,\n } = props;\n const { navigationBar, questionsScrollable } = layout;\n const activeQuestion = questions[activeQuestionIndex];\n const { response_id: activeQuestionId } = activeQuestion ?? {};\n const [isSummaryOpened, setIsSummaryOpened] = useState(false);\n const isAppended = activeQuestionId ? appendedQuestionIds.includes(activeQuestionId) : false;\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setIsSummaryOpened(false);\n onItemNumberClick(questionId);\n },\n [onItemNumberClick],\n );\n\n const handleOnGoToReview = useCallback(() => {\n setIsSummaryOpened(false);\n onGoToReview();\n }, [onGoToReview]);\n\n const handleSummaryButtonClick = useCallback(() => {\n setIsSummaryOpened(prev => !prev);\n }, []);\n\n const handleBackFromSummary = useCallback(() => {\n setSummaryVisible(false);\n\n const questionId = questions[questions.length - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses);\n }, [onSubmit, responses]);\n\n if (isSummaryVisible) {\n return (\n <WorksheetSummaryController\n onBack={handleBackFromSummary}\n behavior={behavior}\n onSubmit={handleSheetSubmitButtonClick}\n canSubmitWorksheet={!!canSubmitWorksheet}\n />\n );\n }\n\n return (\n <>\n <FlexView $flexDirection=\"row\" $flexGap={12}>\n <ScribbleSwitch\n isScribblingEnabled={isScribblingEnabled}\n setIsScribblingEnabled={setIsScribblingEnabled}\n isCanvasEnabled={isCanvasEnabled}\n loggerRef={loggerRef}\n canToggleScribbling={canToggleScribbling}\n />\n {behavior.canShowDesmosCalc && (\n <Styled.IconContainer\n $active={showCalculator}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n onClick={onCalculatorOpen}\n >\n <CalculatorIcon />\n </Styled.IconContainer>\n )}\n </FlexView>\n {isScribblingEnabled && <Toolbar userType={userType} renderAs=\"canvas\" />}\n {navigationBar === 'bottom' && (\n <>\n {isSummaryOpened && (\n <Styled.SummaryWrapper $alignItems=\"center\">\n <WorksheetQuestionsSummary\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n questions={questions}\n responses={responses}\n worksheetName={worksheetName}\n behavior={behavior}\n userType={userType}\n onClose={handleSummaryButtonClick}\n onGoToReview={handleOnGoToReview}\n summaryVisible={isSummaryVisible}\n />\n </Styled.SummaryWrapper>\n )}\n <Button\n renderAs=\"secondary\"\n widthX={13.25}\n label={`Question ${activeQuestionIndex + 1} of ${questions.length}`}\n size=\"small\"\n Icon={isSummaryOpened ? DownIcon : UpIcon}\n iconPosition=\"right\"\n justifyContent=\"space-between\"\n onClick={handleSummaryButtonClick}\n />\n </>\n )}\n {activeQuestion && activeQuestionId && (\n <WorksheetQuestionsController\n learnosity={learnosity}\n question={activeQuestion}\n questions={questions}\n responses={responses}\n canSubmitWorksheet={canSubmitWorksheet}\n questionIndex={activeQuestionIndex}\n isQuestionAppended={isAppended}\n isQuestionUnlocked={activeQuestionIndex <= lastUnlockedQuestionIndex}\n response={responses[activeQuestionId]}\n behavior={behavior}\n userType={userType}\n layout={layout}\n onResponseChange={onResponseChange}\n onTeacherValidation={onTeacherValidation}\n onHelp={onHelp}\n onSubmit={handleSheetSubmitButtonClick}\n onUnassign={onUnassign}\n setActiveQuestionId={setActiveQuestionId}\n setBlocker={setBlocker}\n setSummaryVisible={setSummaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n loggerRef={loggerRef}\n onSkip={onSkip}\n />\n )}\n </>\n );\n});\n\nexport default WorksheetActionBar;\n"],"names":["WorksheetActionBar","memo","props","userType","layout","behavior","worksheetName","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","appendedQuestionIds","learnosity","isCanvasEnabled","isScribblingEnabled","isSummaryVisible","setIsScribblingEnabled","setActiveQuestionId","setResponses","getTimeSpentOnQuestion","setBlocker","setSummaryVisible","showCalculator","onItemNumberClick","onTeacherValidation","onGoToReview","onResponseChange","onHelp","onSubmit","onCalculatorOpen","canSubmitWorksheet","loggerRef","onSkip","onUnassign","canToggleScribbling","navigationBar","questionsScrollable","activeQuestion","activeQuestionId","isSummaryOpened","setIsSummaryOpened","useState","isAppended","handleItemNumberClick","useCallback","questionId","handleOnGoToReview","handleSummaryButtonClick","prev","handleBackFromSummary","_a","scrollToQuestion","handleSheetSubmitButtonClick","jsx","WorksheetSummaryController","jsxs","Fragment","FlexView","ScribbleSwitch","Styled.IconContainer","CalculatorIcon","Toolbar","Styled.SummaryWrapper","WorksheetQuestionsSummary","Button","DownIcon","UpIcon","WorksheetQuestionsController"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-action-bar.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.tsx"],"sourcesContent":["import type { IWorksheetActionBarProps } from './worksheet-action-bar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CalculatorIcon from '../../../../assets/line-icons/icons/calculator';\nimport DownIcon from '../../../../assets/line-icons/icons/down';\nimport UpIcon from '../../../../assets/line-icons/icons/up';\nimport Toolbar from '../../../cue-canvas/toolbar/toolbar';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { scrollToQuestion } from '../worksheet-helpers';\nimport ScribbleSwitch from '../worksheet-questions-controller/scribble-switch';\nimport WorksheetQuestionsController from '../worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsSummary from '../worksheet-questions-summary/worksheet-questions-summary';\nimport * as Styled from '../worksheet-styled';\nimport WorksheetSummaryController from '../worksheet-summary-controller/worksheet-summary-controller';\n\nconst WorksheetActionBar: FC<IWorksheetActionBarProps> = memo(props => {\n const {\n userType,\n layout,\n behavior,\n worksheetName,\n questions,\n responses,\n activeQuestionIndex,\n lastUnlockedQuestionIndex,\n appendedQuestionIds,\n learnosity,\n isCanvasEnabled,\n isScribblingEnabled,\n isSummaryVisible,\n setIsScribblingEnabled,\n setActiveQuestionId,\n setResponses,\n getTimeSpentOnQuestion,\n setBlocker,\n setSummaryVisible,\n showCalculator,\n onItemNumberClick,\n onTeacherValidation,\n onGoToReview,\n onResponseChange,\n onHelp,\n onSubmit,\n onCalculatorOpen,\n canSubmitWorksheet,\n loggerRef,\n onSkip,\n canToggleScribbling,\n } = props;\n const { navigationBar, questionsScrollable } = layout;\n const activeQuestion = questions[activeQuestionIndex];\n const { response_id: activeQuestionId } = activeQuestion ?? {};\n const [isSummaryOpened, setIsSummaryOpened] = useState(false);\n const isAppended = activeQuestionId ? appendedQuestionIds.includes(activeQuestionId) : false;\n\n const handleItemNumberClick = useCallback(\n (questionId: string) => {\n setIsSummaryOpened(false);\n onItemNumberClick(questionId);\n },\n [onItemNumberClick],\n );\n\n const handleOnGoToReview = useCallback(() => {\n setIsSummaryOpened(false);\n onGoToReview();\n }, [onGoToReview]);\n\n const handleSummaryButtonClick = useCallback(() => {\n setIsSummaryOpened(prev => !prev);\n }, []);\n\n const handleBackFromSummary = useCallback(() => {\n setSummaryVisible(false);\n\n const questionId = questions[questions.length - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n requestAnimationFrame(() => scrollToQuestion(questionId));\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses);\n }, [onSubmit, responses]);\n\n if (isSummaryVisible) {\n return (\n <WorksheetSummaryController\n onBack={handleBackFromSummary}\n behavior={behavior}\n onSubmit={handleSheetSubmitButtonClick}\n canSubmitWorksheet={!!canSubmitWorksheet}\n />\n );\n }\n\n return (\n <>\n <FlexView $flexDirection=\"row\" $flexGap={12}>\n <ScribbleSwitch\n isScribblingEnabled={isScribblingEnabled}\n setIsScribblingEnabled={setIsScribblingEnabled}\n isCanvasEnabled={isCanvasEnabled}\n loggerRef={loggerRef}\n canToggleScribbling={canToggleScribbling}\n />\n {behavior.canShowDesmosCalc && (\n <Styled.IconContainer\n $active={showCalculator}\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n onClick={onCalculatorOpen}\n >\n <CalculatorIcon />\n </Styled.IconContainer>\n )}\n </FlexView>\n {isScribblingEnabled && <Toolbar userType={userType} renderAs=\"canvas\" />}\n {navigationBar === 'bottom' && (\n <>\n {isSummaryOpened && (\n <Styled.SummaryWrapper $alignItems=\"center\">\n <WorksheetQuestionsSummary\n activeQuestionIndex={activeQuestionIndex}\n lastUnlockedQuestionIndex={lastUnlockedQuestionIndex}\n onItemNumberClick={handleItemNumberClick}\n questions={questions}\n responses={responses}\n worksheetName={worksheetName}\n behavior={behavior}\n userType={userType}\n onClose={handleSummaryButtonClick}\n onGoToReview={handleOnGoToReview}\n summaryVisible={isSummaryVisible}\n />\n </Styled.SummaryWrapper>\n )}\n <Button\n renderAs=\"secondary\"\n widthX={13.25}\n label={`Question ${activeQuestionIndex + 1} of ${questions.length}`}\n size=\"small\"\n Icon={isSummaryOpened ? DownIcon : UpIcon}\n iconPosition=\"right\"\n justifyContent=\"space-between\"\n onClick={handleSummaryButtonClick}\n />\n </>\n )}\n {activeQuestion && activeQuestionId && (\n <WorksheetQuestionsController\n learnosity={learnosity}\n question={activeQuestion}\n questions={questions}\n responses={responses}\n canSubmitWorksheet={canSubmitWorksheet}\n questionIndex={activeQuestionIndex}\n isQuestionAppended={isAppended}\n isQuestionUnlocked={activeQuestionIndex <= lastUnlockedQuestionIndex}\n response={responses[activeQuestionId]}\n behavior={behavior}\n userType={userType}\n layout={layout}\n onResponseChange={onResponseChange}\n onTeacherValidation={onTeacherValidation}\n onHelp={onHelp}\n onSubmit={handleSheetSubmitButtonClick}\n setActiveQuestionId={setActiveQuestionId}\n setBlocker={setBlocker}\n setSummaryVisible={setSummaryVisible}\n setResponses={setResponses}\n getTimeSpentOnQuestion={getTimeSpentOnQuestion}\n loggerRef={loggerRef}\n onSkip={onSkip}\n />\n )}\n </>\n );\n});\n\nexport default WorksheetActionBar;\n"],"names":["WorksheetActionBar","memo","props","userType","layout","behavior","worksheetName","questions","responses","activeQuestionIndex","lastUnlockedQuestionIndex","appendedQuestionIds","learnosity","isCanvasEnabled","isScribblingEnabled","isSummaryVisible","setIsScribblingEnabled","setActiveQuestionId","setResponses","getTimeSpentOnQuestion","setBlocker","setSummaryVisible","showCalculator","onItemNumberClick","onTeacherValidation","onGoToReview","onResponseChange","onHelp","onSubmit","onCalculatorOpen","canSubmitWorksheet","loggerRef","onSkip","canToggleScribbling","navigationBar","questionsScrollable","activeQuestion","activeQuestionId","isSummaryOpened","setIsSummaryOpened","useState","isAppended","handleItemNumberClick","useCallback","questionId","handleOnGoToReview","handleSummaryButtonClick","prev","handleBackFromSummary","_a","scrollToQuestion","handleSheetSubmitButtonClick","jsx","WorksheetSummaryController","jsxs","Fragment","FlexView","ScribbleSwitch","Styled.IconContainer","CalculatorIcon","Toolbar","Styled.SummaryWrapper","WorksheetQuestionsSummary","Button","DownIcon","UpIcon","WorksheetQuestionsController"],"mappings":"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"}