@cuemath/leap 3.1.5 → 3.1.6-j1

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 (192) hide show
  1. package/dist/assets/illustrations/illustrations.js +1 -2
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/lib/lib.js +1 -1
  4. package/dist/assets/lib/lib.js.map +1 -1
  5. package/dist/assets/line-icons/icons/check.js +3 -3
  6. package/dist/assets/line-icons/icons/check.js.map +1 -1
  7. package/dist/features/auth/account-selector/account-selector-styled.js +9 -0
  8. package/dist/features/auth/account-selector/account-selector-styled.js.map +1 -0
  9. package/dist/features/auth/account-selector/account-selector.js +57 -33
  10. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  11. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styled.js +21 -0
  12. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styled.js.map +1 -0
  13. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +8 -9
  14. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  15. package/dist/features/auth/comps/auth-static-panel/auth-static-panel.js +1 -1
  16. package/dist/features/auth/comps/auth-static-panel/auth-static-panel.js.map +1 -1
  17. package/dist/features/auth/forgot-password/forgot-password-styled.js +15 -3
  18. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  19. package/dist/features/auth/forgot-password/otp-form/otp-form.js +29 -29
  20. package/dist/features/auth/forgot-password/otp-form/otp-form.js.map +1 -1
  21. package/dist/features/auth/forgot-password/reset-password-form/reset-password-form.js +14 -18
  22. package/dist/features/auth/forgot-password/reset-password-form/reset-password-form.js.map +1 -1
  23. package/dist/features/auth/forgot-password/user-identifier-form/user-identifier-form.js +23 -24
  24. package/dist/features/auth/forgot-password/user-identifier-form/user-identifier-form.js.map +1 -1
  25. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +4 -2
  26. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  27. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form.js +85 -75
  28. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form.js.map +1 -1
  29. package/dist/features/auth/login/login-styled.js +13 -0
  30. package/dist/features/auth/login/login-styled.js.map +1 -0
  31. package/dist/features/auth/login/social-account-not-found/social-account-not-found.js +27 -21
  32. package/dist/features/auth/login/social-account-not-found/social-account-not-found.js.map +1 -1
  33. package/dist/features/auth/login/social-login-methods/social-login-methods-styled.js +9 -0
  34. package/dist/features/auth/login/social-login-methods/social-login-methods-styled.js.map +1 -0
  35. package/dist/features/auth/login/social-login-methods/social-login-methods.js +43 -34
  36. package/dist/features/auth/login/social-login-methods/social-login-methods.js.map +1 -1
  37. package/dist/features/auth/login/username-password-form/username-password-form.js +22 -21
  38. package/dist/features/auth/login/username-password-form/username-password-form.js.map +1 -1
  39. package/dist/features/auth/user-list/user-item/user-item.js +33 -32
  40. package/dist/features/auth/user-list/user-item/user-item.js.map +1 -1
  41. package/dist/features/auth/user-list/user-list.js +60 -51
  42. package/dist/features/auth/user-list/user-list.js.map +1 -1
  43. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +74 -74
  44. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  45. package/dist/features/cue-canvas/constants/constants.js +3 -33
  46. package/dist/features/cue-canvas/constants/constants.js.map +1 -1
  47. package/dist/features/cue-canvas/cue-canvas-context.js +5 -8
  48. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  49. package/dist/features/cue-canvas/cue-canvas-core.js +112 -133
  50. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  51. package/dist/features/cue-canvas/cue-canvas-helpers.js +38 -48
  52. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  53. package/dist/features/cue-canvas/cue-canvas-provider.js +21 -21
  54. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  55. package/dist/features/cue-canvas/cue-canvas.js +59 -66
  56. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  57. package/dist/features/cue-canvas/cue-cavas-styled.js +47 -48
  58. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  59. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +44 -47
  60. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  61. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  62. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  63. package/dist/features/cue-canvas/toolbar/color-palette.js +33 -42
  64. package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -1
  65. package/dist/features/cue-canvas/toolbar/color-picker-menu.js +25 -28
  66. package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -1
  67. package/dist/features/cue-canvas/toolbar/grid-menu.js +13 -13
  68. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
  69. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js +35 -24
  70. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -1
  71. package/dist/features/cue-canvas/toolbar/tool.js +20 -22
  72. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  73. package/dist/features/cue-canvas/toolbar/toolbar.js +18 -17
  74. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  75. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +11 -13
  76. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -1
  77. package/dist/features/homework/hw-card-list/api/get-homeworks.js +1 -1
  78. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  79. package/dist/features/homework/hw-card-list/hw-card-list-view.js +112 -144
  80. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  81. package/dist/features/homework/styles.js +4 -5
  82. package/dist/features/homework/styles.js.map +1 -1
  83. package/dist/features/hooks/use-viewport.js +21 -0
  84. package/dist/features/hooks/use-viewport.js.map +1 -0
  85. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +262 -199
  86. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  87. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js +15 -15
  88. package/dist/features/journey/hooks/use-home-page-journey/use-home-page-journey.js.map +1 -1
  89. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +36 -38
  90. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  91. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +22 -24
  92. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  93. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +22 -23
  94. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  95. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +47 -49
  96. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  97. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +87 -94
  98. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  99. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +12 -13
  100. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  101. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +21 -23
  102. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  103. package/dist/features/milestone/create/milestone-create-helpers.js +162 -165
  104. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  105. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +47 -48
  106. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  107. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +121 -100
  108. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  109. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +14 -15
  110. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  111. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +51 -52
  112. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  113. package/dist/features/trial-session/comps/pricing/pricing.js +35 -36
  114. package/dist/features/trial-session/comps/pricing/pricing.js.map +1 -1
  115. package/dist/features/ui/buttons/button/button-styled.js +29 -29
  116. package/dist/features/ui/buttons/button/button-styled.js.map +1 -1
  117. package/dist/features/ui/stepper/stepper.js +7 -7
  118. package/dist/features/utils/media.js +16 -0
  119. package/dist/features/utils/media.js.map +1 -0
  120. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  121. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  122. package/dist/features/worksheet/worksheet/worksheet-container.js +26 -26
  123. package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
  124. package/dist/index.d.ts +35 -93
  125. package/dist/index.js +321 -323
  126. package/dist/index.js.map +1 -1
  127. package/dist/static/cuemath-app-qr-code.7205ee79.svg +1 -0
  128. package/dist/static/lib/{polypad-4.5.4.v1.js → polypad-4.5.4.js} +1 -8
  129. package/package.json +1 -1
  130. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  131. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  132. package/dist/assets/line-icons/icons/share.js +0 -48
  133. package/dist/assets/line-icons/icons/share.js.map +0 -1
  134. package/dist/assets/line-icons/icons/tile.js +0 -54
  135. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  136. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styles.js +0 -12
  137. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styles.js.map +0 -1
  138. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  139. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  140. package/dist/features/cue-canvas/hooks/use-config-updater.js +0 -12
  141. package/dist/features/cue-canvas/hooks/use-config-updater.js.map +0 -1
  142. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  143. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  144. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  145. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  146. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  147. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  148. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -68
  149. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  150. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  151. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  152. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -39
  153. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  154. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  155. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  156. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  157. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  158. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  159. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  160. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  161. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  162. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  163. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  164. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  165. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  166. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  167. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  168. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  169. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  170. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  171. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  172. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  173. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  174. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  175. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  176. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  177. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  178. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  179. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  180. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  181. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  182. package/dist/features/homework/hw-card-list/hw-card-list-utils.js +0 -8
  183. package/dist/features/homework/hw-card-list/hw-card-list-utils.js.map +0 -1
  184. package/dist/features/hooks/use-debounce.js +0 -16
  185. package/dist/features/hooks/use-debounce.js.map +0 -1
  186. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js +0 -18
  187. package/dist/features/milestone/milestone-list-container/api/get-past-milestone-count.js.map +0 -1
  188. package/dist/features/trial-session/comps/pricing/india-pricing/index.js +0 -96
  189. package/dist/features/trial-session/comps/pricing/india-pricing/index.js.map +0 -1
  190. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js +0 -59
  191. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js.map +0 -1
  192. package/dist/static/ellipse-clip.dfb25608.svg +0 -1
@@ -1,169 +1,137 @@
1
- import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
- import { memo as O, useState as y, useRef as Q, useMemo as S, useCallback as d, useEffect as B } from "react";
3
- import V from "../../../assets/line-icons/icons/chevron-left.js";
4
- import F from "../../../assets/line-icons/icons/chevron-right.js";
5
- import u from "../../ui/layout/flex-view.js";
6
- import g from "../../ui/text/text.js";
7
- import E from "../homework-card.js";
8
- import { ContentWrapper as q, ScrollButton as W, ScrollContainer as Y, QueueWrapper as z, QueueText as J } from "./hw-card-list-styled.js";
9
- import { getWaitForReviewSheetsCount as P } from "./hw-card-list-utils.js";
10
- const Z = ({
11
- userType: C,
12
- studentId: _,
13
- isHwProcessing: K,
14
- hwDetails: s,
15
- onTestStart: k,
16
- onNodeAttempt: v,
1
+ import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
+ import { memo as V, useState as p, useRef as G, useMemo as M, useCallback as l, useEffect as a } from "react";
3
+ import Q from "../../../assets/line-icons/icons/chevron-left.js";
4
+ import X from "../../../assets/line-icons/icons/chevron-right.js";
5
+ import d from "../../ui/layout/flex-view.js";
6
+ import $ from "../../ui/text/text.js";
7
+ import F from "../homework-card.js";
8
+ import { ContentWrapper as O, ScrollButton as g, ScrollContainer as P, QueueWrapper as Y, QueueText as q } from "./hw-card-list-styled.js";
9
+ const z = ({
10
+ userType: h,
11
+ studentId: v,
12
+ isHwProcessing: C,
13
+ hwDetails: e,
14
+ onTestStart: L,
15
+ onNodeAttempt: _,
17
16
  onTestPreview: b,
18
- onNodeView: x,
19
- onTestReview: H,
20
- onNodeReview: L,
21
- onNodeUnassign: A
17
+ onNodeView: k,
18
+ onTestReview: x,
19
+ onNodeReview: A,
20
+ onNodeUnassign: H
22
21
  }) => {
23
- const [T, a] = y(!1), [j, I] = y(!1), t = Q(null), { assigned_homeworks: h = [], queued_homeworks: f = [] } = s || {}, R = S(
24
- () => h.length + f.length,
25
- [h, f]
26
- ), D = S(() => P(s), [s]), o = d(() => {
27
- if (t.current) {
28
- const { scrollLeft: e, scrollWidth: i, clientWidth: c } = t.current;
29
- e > 1 && a(!0), e < i - c - 1 && I(!0);
22
+ const [I, u] = p(!1), [R, m] = p(!1), o = G(null), E = M(
23
+ () => ((e == null ? void 0 : e.filter((r) => r.state === "WAIT_FOR_REVIEW")) || []).length,
24
+ [e]
25
+ ), t = l(() => {
26
+ if (o.current) {
27
+ const { scrollLeft: r, scrollWidth: i, clientWidth: s } = o.current;
28
+ r > 1 && u(!0), r < i - s - 1 && m(!0);
30
29
  }
31
- }, []), G = d(() => {
32
- t.current && o();
33
- }, [o]), M = d(() => {
34
- a(!1), I(!1);
35
- }, []), N = d(() => {
36
- t.current && (t.current.scrollBy({ left: -200, behavior: "smooth" }), o());
37
- }, [o]), X = d(() => {
38
- t.current && (t.current.scrollBy({ left: 200, behavior: "smooth" }), o());
39
- }, [o]);
40
- return B(() => {
41
- if (s && t.current) {
42
- const { scrollLeft: e } = t.current;
43
- e > 1 && a(!0);
30
+ }, []), T = l(() => {
31
+ o.current && t();
32
+ }, [t]), y = l(() => {
33
+ u(!1), m(!1);
34
+ }, []), B = l(() => {
35
+ o.current && (o.current.scrollBy({ left: -200, behavior: "smooth" }), t());
36
+ }, [t]), S = l(() => {
37
+ o.current && (o.current.scrollBy({ left: 200, behavior: "smooth" }), t());
38
+ }, [t]);
39
+ return a(() => {
40
+ if (e && (e == null ? void 0 : e.length) > 3 && o.current) {
41
+ const { scrollLeft: r } = o.current;
42
+ r > 1 && u(!0);
44
43
  }
45
- }, [s]), B(() => {
46
- const e = t.current;
47
- if (e)
48
- return e.addEventListener("scroll", o), () => {
49
- e.removeEventListener("scroll", o);
44
+ }, [e]), a(() => {
45
+ const r = o.current;
46
+ if (r)
47
+ return r.addEventListener("scroll", t), () => {
48
+ r.removeEventListener("scroll", t);
50
49
  };
51
- }, [o]), R === 0 ? /* @__PURE__ */ l(u, { $flexRowGapX: 1, children: [
52
- /* @__PURE__ */ r(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
53
- /* @__PURE__ */ r(g, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
54
- ] }) : /* @__PURE__ */ l(q, { $flexRowGapX: 1, $disablePointerEvents: K, children: [
55
- /* @__PURE__ */ l(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
50
+ }, [t]), e && e.length === 0 ? /* @__PURE__ */ c(d, { $flexRowGapX: 1, children: [
51
+ /* @__PURE__ */ c($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
56
52
  "Homework (",
57
- D,
53
+ e == null ? void 0 : e.length,
54
+ ")"
55
+ ] }),
56
+ /* @__PURE__ */ n($, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
57
+ ] }) : /* @__PURE__ */ c(O, { $flexRowGapX: 1, $disablePointerEvents: C, children: [
58
+ /* @__PURE__ */ c($, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: [
59
+ "Homework (",
60
+ E,
58
61
  "/",
59
- R,
62
+ e == null ? void 0 : e.length,
60
63
  ")"
61
64
  ] }),
62
- /* @__PURE__ */ l(
63
- u,
65
+ /* @__PURE__ */ c(
66
+ d,
64
67
  {
65
68
  $position: "relative",
66
- onMouseEnter: G,
67
- onMouseLeave: M,
69
+ onMouseEnter: T,
70
+ onMouseLeave: y,
68
71
  children: [
69
- /* @__PURE__ */ r(
70
- W,
72
+ /* @__PURE__ */ n(
73
+ g,
71
74
  {
72
75
  $position: "absolute",
73
76
  $background: "BLACK_T_60",
74
77
  $justifyContent: "center",
75
78
  $alignItems: "center",
76
79
  $height: "100%",
77
- onClick: N,
78
- $visible: T,
80
+ onClick: B,
81
+ $visible: I,
79
82
  left: "0px",
80
83
  right: "auto",
81
- children: /* @__PURE__ */ r(V, { width: 24, height: 24 })
84
+ children: /* @__PURE__ */ n(Q, { width: 24, height: 24 })
82
85
  }
83
86
  ),
84
- /* @__PURE__ */ r(Y, { ref: t, children: /* @__PURE__ */ l(u, { $flexDirection: "row", $flexGapX: 1, children: [
85
- h.map((e, i) => {
86
- const {
87
- node_id: c,
88
- worksheet_id: m,
89
- node_type: $,
90
- title: p,
91
- subtext: w
92
- } = e, n = $ === "DYNAMIC";
93
- return /* @__PURE__ */ r(
94
- u,
95
- {
96
- $flexDirection: "row",
97
- $flexGapX: 1,
98
- children: /* @__PURE__ */ r(
99
- E,
87
+ /* @__PURE__ */ n(P, { ref: o, children: /* @__PURE__ */ n(d, { $flexDirection: "row", $flexGapX: 1, children: e == null ? void 0 : e.map((r, i) => {
88
+ const {
89
+ node_id: s,
90
+ worksheet_id: W,
91
+ node_type: K,
92
+ title: j,
93
+ subtext: N
94
+ } = r, f = K === "DYNAMIC";
95
+ return /* @__PURE__ */ c(
96
+ d,
97
+ {
98
+ $flexDirection: "row",
99
+ $flexGapX: 1,
100
+ children: [
101
+ e.length > 10 && i === 10 && /* @__PURE__ */ n(
102
+ Y,
103
+ {
104
+ $background: "BLACK_4",
105
+ $justifyContent: "center",
106
+ $gutter: 4,
107
+ $gap: 8,
108
+ children: /* @__PURE__ */ n(q, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
109
+ }
110
+ ),
111
+ /* @__PURE__ */ n(
112
+ F,
100
113
  {
101
- userType: C,
102
- header: p,
103
- subHeader: w || "",
104
- nodeData: e,
114
+ isInQueue: e.length > 10 && i > 9,
115
+ userType: h,
116
+ header: j,
117
+ subHeader: N || "",
118
+ nodeData: r,
105
119
  renderAs: "homework",
106
- studentId: _,
107
- onNodeAttempt: n ? k : v,
120
+ studentId: v,
121
+ onNodeAttempt: f ? L : _,
108
122
  shouldOpenOnRight: !0,
109
- onNodeView: n ? b : x,
110
- onNodeReview: n ? H : L,
111
- onNodeUnassign: A
123
+ onNodeView: f ? b : k,
124
+ onNodeReview: f ? x : A,
125
+ onNodeUnassign: H
112
126
  }
113
127
  )
114
- },
115
- `${m}_${c}_${i}`
116
- );
117
- }),
118
- f.map((e, i) => {
119
- const {
120
- node_id: c,
121
- worksheet_id: m,
122
- node_type: $,
123
- title: p,
124
- subtext: w
125
- } = e, n = $ === "DYNAMIC";
126
- return /* @__PURE__ */ l(
127
- u,
128
- {
129
- $flexDirection: "row",
130
- $flexGapX: 1,
131
- children: [
132
- i === 0 && /* @__PURE__ */ r(
133
- z,
134
- {
135
- $background: "BLACK_4",
136
- $justifyContent: "center",
137
- $gutter: 4,
138
- $gap: 8,
139
- children: /* @__PURE__ */ r(J, { $renderAs: "ac3", $color: "WHITE", children: "In Queue" })
140
- }
141
- ),
142
- /* @__PURE__ */ r(
143
- E,
144
- {
145
- isInQueue: !0,
146
- userType: C,
147
- header: p,
148
- subHeader: w || "",
149
- nodeData: e,
150
- renderAs: "homework",
151
- studentId: _,
152
- onNodeAttempt: n ? k : v,
153
- shouldOpenOnRight: !0,
154
- onNodeView: n ? b : x,
155
- onNodeReview: n ? H : L,
156
- onNodeUnassign: A
157
- }
158
- )
159
- ]
160
- },
161
- `${m}_${c}_${i}`
162
- );
163
- })
164
- ] }) }),
165
- /* @__PURE__ */ r(
166
- W,
128
+ ]
129
+ },
130
+ `${W}_${s}_${i}`
131
+ );
132
+ }) }) }),
133
+ /* @__PURE__ */ n(
134
+ g,
167
135
  {
168
136
  $position: "absolute",
169
137
  $width: "60px",
@@ -171,19 +139,19 @@ const Z = ({
171
139
  $background: "BLACK_T_60",
172
140
  $justifyContent: "center",
173
141
  $alignItems: "center",
174
- onClick: X,
175
- $visible: j,
142
+ onClick: S,
143
+ $visible: R,
176
144
  left: "auto",
177
145
  right: "0px",
178
- children: /* @__PURE__ */ r(F, { width: 24, height: 24 })
146
+ children: /* @__PURE__ */ n(X, { width: 24, height: 24 })
179
147
  }
180
148
  )
181
149
  ]
182
150
  }
183
151
  )
184
152
  ] });
185
- }, ce = O(Z);
153
+ }, ne = V(z);
186
154
  export {
187
- ce as default
155
+ ne as default
188
156
  };
189
157
  //# sourceMappingURL=hw-card-list-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IHomeworkDetails } from './api/get-homeworks';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport * as Styled from './hw-card-list-styled';\nimport { getWaitForReviewSheetsCount } from './hw-card-list-utils';\n\ninterface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: IHomeworkDetails;\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n}\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const { assigned_homeworks: assignedHomeworks = [], queued_homeworks: queuedHomeworks = [] } =\n hwDetails || {};\n\n const totalHWSheetsCount = useMemo(\n () => assignedHomeworks.length + queuedHomeworks.length,\n [assignedHomeworks, queuedHomeworks],\n );\n const waitForReviewSheets = useMemo(() => getWaitForReviewSheetsCount(hwDetails), [hwDetails]);\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n if (hwDetails && scrollRef.current) {\n const { scrollLeft } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n }\n }, [hwDetails]);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n if (totalHWSheetsCount === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework (0)\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{totalHWSheetsCount})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {assignedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n <HomeworkCard\n userType={userType}\n header={title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </FlexView>\n );\n })}\n\n {queuedHomeworks.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {idx === 0 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n <HomeworkCard\n isInQueue\n userType={userType}\n header={title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","assignedHomeworks","queuedHomeworks","totalHWSheetsCount","useMemo","waitForReviewSheets","getWaitForReviewSheetsCount","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleHoverEnter","handleHoverLeave","handleScrollLeft","handleScrollRight","useEffect","scrollElement","jsxs","FlexView","jsx","Text","Styled.ContentWrapper","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","sheet","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","HomeworkCard","Styled.QueueWrapper","Styled.QueueText","ChevronRightIcon","HwCardListView$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"hw-card-list-view.js","sources":["../../../../src/features/homework/hw-card-list/hw-card-list-view.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../../ui/types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport ChevronLeftIcon from '../../../assets/line-icons/icons/chevron-left';\nimport ChevronRightIcon from '../../../assets/line-icons/icons/chevron-right';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport HomeworkCard from '../homework-card';\nimport * as Styled from './hw-card-list-styled';\n\ninterface IHwCardListView extends INodeCardCallbacks {\n userType: TUserTypes;\n studentId: string;\n isHwProcessing: boolean;\n hwDetails?: INodeDataProps[];\n onTestPreview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n onTestStart?: (sheetData: INodeDataProps, homeworkId?: string) => void;\n onTestReview?: (sheetData: INodeDataProps, milestoneId?: string) => void;\n}\n\nconst HwCardListView: FC<IHwCardListView> = ({\n userType,\n studentId,\n isHwProcessing,\n hwDetails,\n onTestStart,\n onNodeAttempt,\n onTestPreview,\n onNodeView,\n onTestReview,\n onNodeReview,\n onNodeUnassign,\n}) => {\n const [isLeftHovered, setIsLeftHovered] = useState(false);\n const [isRightHovered, setIsRightHovered] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const waitForReviewSheets = useMemo(\n () => (hwDetails?.filter(sheet => sheet.state === 'WAIT_FOR_REVIEW') || []).length,\n [hwDetails],\n );\n\n const updatedCanScroll = useCallback(() => {\n if (scrollRef.current) {\n const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n\n if (scrollLeft < scrollWidth - clientWidth - 1) {\n setIsRightHovered(true);\n }\n }\n }, []);\n const handleHoverEnter = useCallback(() => {\n if (!scrollRef.current) return;\n\n updatedCanScroll();\n }, [updatedCanScroll]);\n\n const handleHoverLeave = useCallback(() => {\n setIsLeftHovered(false);\n setIsRightHovered(false);\n }, []);\n\n const handleScrollLeft = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n const handleScrollRight = useCallback(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n updatedCanScroll();\n }\n }, [updatedCanScroll]);\n\n useEffect(() => {\n if (hwDetails && hwDetails?.length > 3 && scrollRef.current) {\n const { scrollLeft } = scrollRef.current;\n\n if (scrollLeft > 1) {\n setIsLeftHovered(true);\n }\n }\n }, [hwDetails]);\n\n useEffect(() => {\n const scrollElement = scrollRef.current;\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', updatedCanScroll);\n\n return () => {\n scrollElement.removeEventListener('scroll', updatedCanScroll);\n };\n }\n }, [updatedCanScroll]);\n\n if (hwDetails && hwDetails.length === 0) {\n return (\n <FlexView $flexRowGapX={1}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({hwDetails?.length})\n </Text>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n No Homework assigned yet\n </Text>\n </FlexView>\n );\n }\n\n return (\n <Styled.ContentWrapper $flexRowGapX={1} $disablePointerEvents={isHwProcessing}>\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Homework ({waitForReviewSheets}/{hwDetails?.length})\n </Text>\n <FlexView\n $position=\"relative\"\n onMouseEnter={handleHoverEnter}\n onMouseLeave={handleHoverLeave}\n >\n <Styled.ScrollButton\n $position=\"absolute\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $height=\"100%\"\n onClick={handleScrollLeft}\n $visible={isLeftHovered}\n left=\"0px\"\n right=\"auto\"\n >\n <ChevronLeftIcon width={24} height={24} />\n </Styled.ScrollButton>\n\n <Styled.ScrollContainer ref={scrollRef}>\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n {hwDetails?.map((sheet, idx) => {\n const {\n node_id: nodeId,\n worksheet_id: worksheetId,\n node_type: nodeType,\n title,\n subtext,\n } = sheet;\n const isDynamicSheet = nodeType === 'DYNAMIC';\n\n return (\n <FlexView\n key={`${worksheetId}_${nodeId}_${idx}`}\n $flexDirection=\"row\"\n $flexGapX={1}\n >\n {hwDetails.length > 10 && idx === 10 && (\n <Styled.QueueWrapper\n $background=\"BLACK_4\"\n $justifyContent=\"center\"\n $gutter={4}\n $gap={8}\n >\n <Styled.QueueText $renderAs=\"ac3\" $color=\"WHITE\">\n In Queue\n </Styled.QueueText>\n </Styled.QueueWrapper>\n )}\n <HomeworkCard\n isInQueue={hwDetails.length > 10 && idx > 9}\n userType={userType}\n header={title}\n subHeader={subtext || ''}\n nodeData={sheet}\n renderAs=\"homework\"\n studentId={studentId}\n onNodeAttempt={isDynamicSheet ? onTestStart : onNodeAttempt}\n shouldOpenOnRight={true}\n onNodeView={isDynamicSheet ? onTestPreview : onNodeView}\n onNodeReview={isDynamicSheet ? onTestReview : onNodeReview}\n onNodeUnassign={onNodeUnassign}\n />\n </FlexView>\n );\n })}\n </FlexView>\n </Styled.ScrollContainer>\n <Styled.ScrollButton\n $position=\"absolute\"\n $width=\"60px\"\n $height=\"100%\"\n $background=\"BLACK_T_60\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n onClick={handleScrollRight}\n $visible={isRightHovered}\n left=\"auto\"\n right=\"0px\"\n >\n <ChevronRightIcon width={24} height={24} />\n </Styled.ScrollButton>\n </FlexView>\n </Styled.ContentWrapper>\n );\n};\n\nexport default memo(HwCardListView);\n"],"names":["HwCardListView","userType","studentId","isHwProcessing","hwDetails","onTestStart","onNodeAttempt","onTestPreview","onNodeView","onTestReview","onNodeReview","onNodeUnassign","isLeftHovered","setIsLeftHovered","useState","isRightHovered","setIsRightHovered","scrollRef","useRef","waitForReviewSheets","useMemo","sheet","updatedCanScroll","useCallback","scrollLeft","scrollWidth","clientWidth","handleHoverEnter","handleHoverLeave","handleScrollLeft","handleScrollRight","useEffect","scrollElement","jsxs","FlexView","Text","Styled.ContentWrapper","jsx","Styled.ScrollButton","ChevronLeftIcon","Styled.ScrollContainer","idx","nodeId","worksheetId","nodeType","title","subtext","isDynamicSheet","Styled.QueueWrapper","Styled.QueueText","HomeworkCard","ChevronRightIcon","HwCardListView$1","memo"],"mappings":";;;;;;;;AA0BA,MAAMA,IAAsC,CAAC;AAAA,EAC3C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,MAAM;AACJ,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClD,CAACC,GAAgBC,CAAiB,IAAIF,EAAS,EAAK,GACpDG,IAAYC,EAAuB,IAAI,GAEvCC,IAAsBC;AAAA,IAC1B,QAAOhB,KAAA,gBAAAA,EAAW,OAAO,CAAAiB,MAASA,EAAM,UAAU,uBAAsB,CAAA,GAAI;AAAA,IAC5E,CAACjB,CAAS;AAAA,EAAA,GAGNkB,IAAmBC,EAAY,MAAM;AACzC,QAAIN,EAAU,SAAS;AACrB,YAAM,EAAE,YAAAO,GAAY,aAAAC,GAAa,aAAAC,EAAA,IAAgBT,EAAU;AAE3D,MAAIO,IAAa,KACfX,EAAiB,EAAI,GAGnBW,IAAaC,IAAcC,IAAc,KAC3CV,EAAkB,EAAI;AAAA,IAE1B;AAAA,EACF,GAAG,CAAE,CAAA,GACCW,IAAmBJ,EAAY,MAAM;AACrC,IAACN,EAAU,WAEEK;EAAA,GAChB,CAACA,CAAgB,CAAC,GAEfM,IAAmBL,EAAY,MAAM;AACzC,IAAAV,EAAiB,EAAK,GACtBG,EAAkB,EAAK;AAAA,EACzB,GAAG,CAAE,CAAA,GAECa,IAAmBN,EAAY,MAAM;AACzC,IAAIN,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,UAAU,UAAU,GAC5CK;EACnB,GACC,CAACA,CAAgB,CAAC,GAEfQ,IAAoBP,EAAY,MAAM;AAC1C,IAAIN,EAAU,YACZA,EAAU,QAAQ,SAAS,EAAE,MAAM,KAAK,UAAU,UAAU,GAC3CK;EACnB,GACC,CAACA,CAAgB,CAAC;AAwBjB,SAtBJS,EAAU,MAAM;AACd,QAAI3B,MAAaA,KAAA,gBAAAA,EAAW,UAAS,KAAKa,EAAU,SAAS;AACrD,YAAA,EAAE,YAAAO,EAAW,IAAIP,EAAU;AAEjC,MAAIO,IAAa,KACfX,EAAiB,EAAI;AAAA,IAEzB;AAAA,EAAA,GACC,CAACT,CAAS,CAAC,GAEd2B,EAAU,MAAM;AACd,UAAMC,IAAgBf,EAAU;AAEhC,QAAIe;AACY,aAAAA,EAAA,iBAAiB,UAAUV,CAAgB,GAElD,MAAM;AACG,QAAAU,EAAA,oBAAoB,UAAUV,CAAgB;AAAA,MAAA;AAAA,EAEhE,GACC,CAACA,CAAgB,CAAC,GAEjBlB,KAAaA,EAAU,WAAW,IAElC,gBAAA6B,EAACC,GAAS,EAAA,cAAc,GACtB,UAAA;AAAA,IAAA,gBAAAD,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnC/B,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GAC/B;AAAA,sBACC+B,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,4BAAA;AAAA,EACF,EAAA,CAAA,sBAKDC,GAAA,EAAsB,cAAc,GAAG,uBAAuBjC,GAC7D,UAAA;AAAA,IAAA,gBAAA8B,EAACE,GAAK,EAAA,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,MAAA;AAAA,MACnChB;AAAA,MAAoB;AAAA,MAAEf,KAAA,gBAAAA,EAAW;AAAA,MAAO;AAAA,IAAA,GACrD;AAAA,IACA,gBAAA6B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAcP;AAAA,QACd,cAAcC;AAAA,QAEd,UAAA;AAAA,UAAA,gBAAAS;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,SAAST;AAAA,cACT,UAAUjB;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAAyB,EAAAE,GAAA,EAAgB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC1C;AAAA,4BAECC,GAAA,EAAuB,KAAKvB,GAC3B,UAAC,gBAAAoB,EAAAH,GAAA,EAAS,gBAAe,OAAM,WAAW,GACvC,UAAA9B,KAAA,gBAAAA,EAAW,IAAI,CAACiB,GAAOoB,MAAQ;AACxB,kBAAA;AAAA,cACJ,SAASC;AAAA,cACT,cAAcC;AAAA,cACd,WAAWC;AAAA,cACX,OAAAC;AAAA,cACA,SAAAC;AAAA,YACE,IAAAzB,GACE0B,IAAiBH,MAAa;AAGlC,mBAAA,gBAAAX;AAAA,cAACC;AAAA,cAAA;AAAA,gBAEC,gBAAe;AAAA,gBACf,WAAW;AAAA,gBAEV,UAAA;AAAA,kBAAU9B,EAAA,SAAS,MAAMqC,MAAQ,MAChC,gBAAAJ;AAAA,oBAACW;AAAAA,oBAAA;AAAA,sBACC,aAAY;AAAA,sBACZ,iBAAgB;AAAA,sBAChB,SAAS;AAAA,sBACT,MAAM;AAAA,sBAEN,UAAA,gBAAAX,EAACY,GAAA,EAAiB,WAAU,OAAM,QAAO,SAAQ,UAEjD,YAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,kBAEF,gBAAAZ;AAAA,oBAACa;AAAA,oBAAA;AAAA,sBACC,WAAW9C,EAAU,SAAS,MAAMqC,IAAM;AAAA,sBAC1C,UAAAxC;AAAA,sBACA,QAAQ4C;AAAA,sBACR,WAAWC,KAAW;AAAA,sBACtB,UAAUzB;AAAA,sBACV,UAAS;AAAA,sBACT,WAAAnB;AAAA,sBACA,eAAe6C,IAAiB1C,IAAcC;AAAA,sBAC9C,mBAAmB;AAAA,sBACnB,YAAYyC,IAAiBxC,IAAgBC;AAAA,sBAC7C,cAAcuC,IAAiBtC,IAAeC;AAAA,sBAC9C,gBAAAC;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cA7BK,GAAGgC,CAAW,IAAID,CAAM,IAAID,CAAG;AAAA,YAAA;AAAA,UA8BtC,IAGN,EACF,CAAA;AAAA,UACA,gBAAAJ;AAAA,YAACC;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,aAAY;AAAA,cACZ,SAASR;AAAA,cACT,UAAUf;AAAA,cACV,MAAK;AAAA,cACL,OAAM;AAAA,cAEN,UAAC,gBAAAsB,EAAAc,GAAA,EAAiB,OAAO,IAAI,QAAQ,IAAI;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ,GAEeC,KAAAC,EAAKrD,CAAc;"}
@@ -18,7 +18,7 @@ const c = r(e)(({ theme: o }) => `
18
18
  -webkit-box-orient: vertical;
19
19
  overflow: hidden;
20
20
  text-overflow: ellipsis;
21
- `, x = r(e)(({
21
+ `, u = r(e)(({
22
22
  $shouldopenonright: o,
23
23
  $visible: t
24
24
  }) => `
@@ -33,9 +33,8 @@ const c = r(e)(({ theme: o }) => `
33
33
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
34
34
  box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
35
35
  z-index: 10;
36
- `), u = r(e)`
36
+ `), x = r(e)`
37
37
  border: 1px solid ${({ theme: o }) => o.colors.BLACK_T_15};
38
- border-top-width: 2px;
39
38
  &:hover {
40
39
  border: 1px solid ${({ theme: o }) => o.colors.BLACK};
41
40
  border-top-width: 2px;
@@ -118,9 +117,9 @@ export {
118
117
  w as BannerImageWrapper,
119
118
  v as BlurContainer,
120
119
  $ as BlurFlexView,
121
- u as CardContainer,
120
+ x as CardContainer,
122
121
  c as CardKebabMenuWrapper,
123
- x as CardMenuOptionsWrapper,
122
+ u as CardMenuOptionsWrapper,
124
123
  b as CardWrapper,
125
124
  m as HeaderText,
126
125
  h as IconWrapper,
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n border-top-width: 2px;\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n border-top-width: 2px;\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: break-spaces;\n`;\n\ninterface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\ninterface ICardOptionsProps {\n $top: number;\n $left: number;\n}\n\nexport const CardOptions = styled(FlexView)<ICardOptionsProps>``;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n z-index: 6;\n top: calc(100% - 36px);\n right: 12px;\n transform-origin: top;\n transform: scaleY(1);\n`;\n\nexport const BlurContainer = styled(FlexView)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n`;\n\nexport const BlurFlexView = styled(FlexView)`\n position: absolute;\n right: 42px;\n top: 24px;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$shouldopenonright","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","$disabled","MenuWrapper","BlurContainer","BlurFlexView"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,oBAAAK;AAAA,EACA,UAAAC;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA,aAKID,IAAqB,IAAI,MAAM;AAAA;AAAA,wBAEpBC,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,GAK9B,GAEYC,IAAgBR,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA;AAAA,wBAGpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA,GAK5CO,IAAcT,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAS,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BW,IAAqBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCY,IAAcb,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAY,EAAO,IAAIZ,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCY,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBf,EAAOgB,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAd,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCe,IAAajB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBVJ,EAAOC,CAAQ;AAETD,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAgB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBhB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC;AAEyBF,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAMxB,MAAAe,IAAcnB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS7BmB,IAAgBpB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS/BoB,IAAerB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n border-top-width: 2px;\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: break-spaces;\n`;\n\ninterface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\ninterface ICardOptionsProps {\n $top: number;\n $left: number;\n}\n\nexport const CardOptions = styled(FlexView)<ICardOptionsProps>``;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n z-index: 6;\n top: calc(100% - 36px);\n right: 12px;\n transform-origin: top;\n transform: scaleY(1);\n`;\n\nexport const BlurContainer = styled(FlexView)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n`;\n\nexport const BlurFlexView = styled(FlexView)`\n position: absolute;\n right: 42px;\n top: 24px;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$shouldopenonright","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","$disabled","MenuWrapper","BlurContainer","BlurFlexView"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,oBAAAK;AAAA,EACA,UAAAC;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA,aAKID,IAAqB,IAAI,MAAM;AAAA;AAAA,wBAEpBC,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,GAK9B,GAEYC,IAAgBR,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA,wBAEpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA,GAK5CO,IAAcT,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAS,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BW,IAAqBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCY,IAAcb,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAY,EAAO,IAAIZ,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCY,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBf,EAAOgB,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAd,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCe,IAAajB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBVJ,EAAOC,CAAQ;AAETD,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAgB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBhB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC;AAEyBF,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAMxB,MAAAe,IAAcnB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS7BmB,IAAgBpB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS/BoB,IAAerB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,21 @@
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";
12
+ return {
13
+ isMobile: t,
14
+ isCompact: t || e === "tablet",
15
+ isDesktop: e === "desktop" || e === "large" || e === "xl"
16
+ };
17
+ }, f = d;
18
+ export {
19
+ f as default
20
+ };
21
+ //# sourceMappingURL=use-viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-viewport.js","sources":["../../../src/features/hooks/use-viewport.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { getDeviceType } from '../utils/media';\n\ninterface IUseViewportReturn {\n isCompact: boolean;\n isMobile: boolean;\n isDesktop: boolean;\n}\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":";;AAUA,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;"}