@cuemath/leap 3.1.2-j3 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/assets/illustrations/illustrations.js +2 -1
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/check.js +3 -3
  4. package/dist/assets/line-icons/icons/check.js.map +1 -1
  5. package/dist/assets/line-icons/icons/puzzle-icon.js +51 -0
  6. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -0
  7. package/dist/assets/line-icons/icons/share.js +48 -0
  8. package/dist/assets/line-icons/icons/share.js.map +1 -0
  9. package/dist/assets/line-icons/icons/tile.js +54 -0
  10. package/dist/assets/line-icons/icons/tile.js.map +1 -0
  11. package/dist/features/auth/account-selector/account-selector.js +36 -56
  12. package/dist/features/auth/account-selector/account-selector.js.map +1 -1
  13. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styles.js +12 -0
  14. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styles.js.map +1 -0
  15. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +9 -8
  16. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  17. package/dist/features/auth/comps/auth-static-panel/auth-static-panel.js +1 -1
  18. package/dist/features/auth/comps/auth-static-panel/auth-static-panel.js.map +1 -1
  19. package/dist/features/auth/forgot-password/forgot-password-styled.js +3 -15
  20. package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
  21. package/dist/features/auth/forgot-password/otp-form/otp-form.js +29 -29
  22. package/dist/features/auth/forgot-password/otp-form/otp-form.js.map +1 -1
  23. package/dist/features/auth/forgot-password/reset-password-form/reset-password-form.js +18 -14
  24. package/dist/features/auth/forgot-password/reset-password-form/reset-password-form.js.map +1 -1
  25. package/dist/features/auth/forgot-password/user-identifier-form/user-identifier-form.js +24 -23
  26. package/dist/features/auth/forgot-password/user-identifier-form/user-identifier-form.js.map +1 -1
  27. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +2 -4
  28. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
  29. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form.js +75 -85
  30. package/dist/features/auth/login/identifier-otp-form/identifier-otp-form.js.map +1 -1
  31. package/dist/features/auth/login/social-account-not-found/social-account-not-found.js +21 -27
  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.js +34 -43
  34. package/dist/features/auth/login/social-login-methods/social-login-methods.js.map +1 -1
  35. package/dist/features/auth/login/username-password-form/username-password-form.js +21 -22
  36. package/dist/features/auth/login/username-password-form/username-password-form.js.map +1 -1
  37. package/dist/features/auth/user-list/user-item/user-item.js +24 -25
  38. package/dist/features/auth/user-list/user-item/user-item.js.map +1 -1
  39. package/dist/features/auth/user-list/user-list.js +51 -60
  40. package/dist/features/auth/user-list/user-list.js.map +1 -1
  41. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +74 -74
  42. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  43. package/dist/features/cue-canvas/bottombar/homework-controls.js +73 -0
  44. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -0
  45. package/dist/features/cue-canvas/cue-canvas-context.js +8 -5
  46. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  47. package/dist/features/cue-canvas/cue-canvas-core.js +84 -74
  48. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  49. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  50. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  51. package/dist/features/cue-canvas/cue-canvas-provider.js +14 -12
  52. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  53. package/dist/features/cue-canvas/cue-canvas.js +66 -59
  54. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  55. package/dist/features/cue-canvas/cue-cavas-styled.js +45 -42
  56. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  57. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +61 -54
  58. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  59. package/dist/features/cue-canvas/hooks/use-config-updater.js +12 -0
  60. package/dist/features/cue-canvas/hooks/use-config-updater.js.map +1 -0
  61. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +18 -14
  62. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  63. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  64. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  65. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  66. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  67. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  68. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  69. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +68 -0
  70. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  71. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  72. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  73. package/dist/features/cue-canvas/sidebar/homework/homework.js +39 -0
  74. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  75. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  76. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  77. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  78. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  79. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  80. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  81. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  82. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  83. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  84. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  85. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  86. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  87. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  88. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  89. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  90. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  91. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  92. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  93. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  94. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  95. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  96. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  97. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  98. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  99. package/dist/features/cue-canvas/sidebar/sidebar.js +29 -0
  100. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  101. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  102. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  103. package/dist/features/cue-canvas/toolbar/grid-menu.js +13 -13
  104. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
  105. package/dist/features/cue-canvas/toolbar/tool.js +22 -20
  106. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  107. package/dist/features/homework/styles.js +5 -4
  108. package/dist/features/homework/styles.js.map +1 -1
  109. package/dist/features/hooks/use-debounce.js +16 -0
  110. package/dist/features/hooks/use-debounce.js.map +1 -0
  111. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +38 -36
  112. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  113. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +24 -22
  114. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  115. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +23 -22
  116. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  117. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +49 -47
  118. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  119. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +94 -87
  120. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  121. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +13 -12
  122. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  123. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +23 -21
  124. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  125. package/dist/features/milestone/create/milestone-create-helpers.js +165 -162
  126. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  127. package/dist/features/trial-session/comps/pricing/india-pricing/index.js +96 -0
  128. package/dist/features/trial-session/comps/pricing/india-pricing/index.js.map +1 -0
  129. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js +59 -0
  130. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js.map +1 -0
  131. package/dist/features/trial-session/comps/pricing/pricing.js +36 -35
  132. package/dist/features/trial-session/comps/pricing/pricing.js.map +1 -1
  133. package/dist/features/ui/buttons/button/button-styled.js +29 -29
  134. package/dist/features/ui/buttons/button/button-styled.js.map +1 -1
  135. package/dist/features/ui/stepper/stepper.js +7 -7
  136. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  137. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  138. package/dist/index.d.ts +54 -24
  139. package/dist/index.js +202 -202
  140. package/dist/static/ellipse-clip.dfb25608.svg +1 -0
  141. package/package.json +1 -1
  142. package/dist/features/auth/account-selector/account-selector-styled.js +0 -9
  143. package/dist/features/auth/account-selector/account-selector-styled.js.map +0 -1
  144. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styled.js +0 -21
  145. package/dist/features/auth/comps/auth-page-layout/auth-page-layout-styled.js.map +0 -1
  146. package/dist/features/auth/login/login-styled.js +0 -13
  147. package/dist/features/auth/login/login-styled.js.map +0 -1
  148. package/dist/features/auth/login/social-login-methods/social-login-methods-styled.js +0 -9
  149. package/dist/features/auth/login/social-login-methods/social-login-methods-styled.js.map +0 -1
  150. package/dist/features/hooks/use-device-type.js +0 -25
  151. package/dist/features/hooks/use-device-type.js.map +0 -1
  152. package/dist/features/utils/media.js +0 -16
  153. package/dist/features/utils/media.js.map +0 -1
  154. package/dist/static/cuemath-app-qr-code.7205ee79.svg +0 -1
@@ -0,0 +1,96 @@
1
+ import { jsx as n, Fragment as A, jsxs as r } from "react/jsx-runtime";
2
+ import { useMemo as x } from "react";
3
+ import { ILLUSTRATIONS as I } from "../../../../../assets/illustrations/illustrations.js";
4
+ import c from "../../../../ui/layout/flex-view.js";
5
+ import s from "../../../../ui/separator/separator.js";
6
+ import i from "../../../../ui/text/text.js";
7
+ import { CardContainer as L, CardBoard as P, ClipImage as T, BoardHole as w, CardBoardContent as D, DiscountTag as M } from "./india-pricing-styled.js";
8
+ const $ = (o) => "duration" in o && "class_ratio" in o, O = (o, a) => a === 1 ? `YELLOW_${o + 1}` : `GREEN_${o + 1}`, k = (o) => {
9
+ const { plans: a } = o, { oneVsOnePlan: f, oneVsTowPlan: m } = x(
10
+ () => ({
11
+ oneVsOnePlan: a.filter(
12
+ (e) => $(e) && e.class_ratio === 1
13
+ ).sort((e, t) => e.duration - t.duration),
14
+ oneVsTowPlan: a.filter(
15
+ (e) => $(e) && e.class_ratio === 2
16
+ ).sort((e, t) => e.duration - t.duration)
17
+ }),
18
+ [a]
19
+ );
20
+ return /* @__PURE__ */ n(A, { children: [f, m].map((e, t) => /* @__PURE__ */ r(L, { children: [
21
+ /* @__PURE__ */ n(s, { height: 12 }),
22
+ /* @__PURE__ */ r(P, { children: [
23
+ /* @__PURE__ */ n(T, { src: I.ELLIPSE_CLIP }),
24
+ /* @__PURE__ */ n(
25
+ w,
26
+ {
27
+ $height: 10,
28
+ $width: 10,
29
+ $borderRadius: 5,
30
+ $background: "BLACK_1",
31
+ $position: "absolute"
32
+ }
33
+ )
34
+ ] }),
35
+ /* @__PURE__ */ r(D, { children: [
36
+ /* @__PURE__ */ n(s, { height: 10 }),
37
+ /* @__PURE__ */ r(i, { $renderAs: "ac1", $align: "center", children: [
38
+ "1:",
39
+ t + 1
40
+ ] }),
41
+ /* @__PURE__ */ n(s, { height: 5 }),
42
+ e.map((g, p) => {
43
+ const {
44
+ amount: l,
45
+ duration: u,
46
+ class_ratio: _,
47
+ no_of_classes: b,
48
+ currency_symbol: d,
49
+ amount_after_coupon: h,
50
+ fee_per_class_after_discount: C
51
+ } = g;
52
+ return /* @__PURE__ */ r(
53
+ c,
54
+ {
55
+ $gap: 14,
56
+ $gutter: 40,
57
+ $background: O(p, _),
58
+ children: [
59
+ /* @__PURE__ */ r(c, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
60
+ /* @__PURE__ */ r(i, { $renderAs: "ac3-black", children: [
61
+ u,
62
+ " MONTHS"
63
+ ] }),
64
+ /* @__PURE__ */ r(M, { $renderAs: "ub3-bold", children: [
65
+ Math.round((l - h) / l * 100),
66
+ "% off"
67
+ ] })
68
+ ] }),
69
+ /* @__PURE__ */ n(s, { height: 4 }),
70
+ /* @__PURE__ */ r(c, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
71
+ /* @__PURE__ */ n(i, { $renderAs: "ab2", $color: "BLACK_T_60", $textDecoration: "line-through", children: d + Math.round(l) }),
72
+ /* @__PURE__ */ n(i, { $renderAs: "ab1-bold", children: d + Math.round(h) })
73
+ ] }),
74
+ /* @__PURE__ */ r(c, { $flexDirection: "row", $flexGap: 2, $alignItems: "center", children: [
75
+ /* @__PURE__ */ r(i, { $renderAs: "ub2", children: [
76
+ b,
77
+ " classes @"
78
+ ] }),
79
+ /* @__PURE__ */ r(i, { $renderAs: "ub2-bold", children: [
80
+ d + Math.round(C),
81
+ "/class"
82
+ ] })
83
+ ] }),
84
+ /* @__PURE__ */ n(s, { height: 4 })
85
+ ]
86
+ },
87
+ `ind-pricing-${u}`
88
+ );
89
+ })
90
+ ] })
91
+ ] }, `plan-${t}`)) });
92
+ };
93
+ export {
94
+ k as default
95
+ };
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/features/trial-session/comps/pricing/india-pricing/index.tsx"],"sourcesContent":["import type { TColorNames } from '../../../../ui/types';\nimport type {\n IPricingIndiaProps,\n TPricingDetails,\n TLowIntentPricingDetails,\n} from '../pricing-typed';\n\nimport React, { useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './india-pricing-styled';\n\nconst isPricingDetails = (\n plan: TPricingDetails | TLowIntentPricingDetails,\n): plan is TPricingDetails => {\n return 'duration' in plan && 'class_ratio' in plan;\n};\n\nconst getColorIndex = (index: number, ratio?: 1 | 2): TColorNames => {\n if (ratio === 1) return `YELLOW_${(index + 1) as 1 | 2 | 3 | 4 | 5 | 6}`;\n\n return `GREEN_${(index + 1) as 1 | 2 | 3 | 4 | 5 | 6}`;\n};\n\nconst PricingIndia: React.FC<IPricingIndiaProps> = props => {\n const { plans } = props;\n const { oneVsOnePlan, oneVsTowPlan } = useMemo(\n () => ({\n oneVsOnePlan: plans\n .filter(\n (element): element is TPricingDetails =>\n isPricingDetails(element) && element.class_ratio === 1,\n )\n .sort((a, b) => a.duration - b.duration),\n oneVsTowPlan: plans\n .filter(\n (element): element is TPricingDetails =>\n isPricingDetails(element) && element.class_ratio === 2,\n )\n .sort((a, b) => a.duration - b.duration),\n }),\n [plans],\n );\n\n return (\n <>\n {[oneVsOnePlan, oneVsTowPlan].map((plan, planIndex) => (\n <Styled.CardContainer key={`plan-${planIndex}`}>\n <Separator height={12} />\n <Styled.CardBoard>\n <Styled.ClipImage src={ILLUSTRATIONS.ELLIPSE_CLIP} />\n <Styled.BoardHole\n $height={10}\n $width={10}\n $borderRadius={5}\n $background=\"BLACK_1\"\n $position=\"absolute\"\n />\n </Styled.CardBoard>\n <Styled.CardBoardContent>\n <Separator height={10} />\n <Text $renderAs=\"ac1\" $align=\"center\">\n 1:{planIndex + 1}\n </Text>\n <Separator height={5} />\n {plan.map((planConfig, index) => {\n const {\n amount,\n duration,\n class_ratio: classRatio,\n no_of_classes: noOfClasses,\n currency_symbol: currencySymbol,\n amount_after_coupon: amountAfterCoupon,\n fee_per_class_after_discount: feePerClassAfterDiscount,\n } = planConfig;\n\n return (\n <FlexView\n key={`ind-pricing-${duration}`}\n $gap={14}\n $gutter={40}\n $background={getColorIndex(index, classRatio)}\n >\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n <Text $renderAs=\"ac3-black\">{duration} MONTHS</Text>\n <Styled.DiscountTag $renderAs=\"ub3-bold\">\n {Math.round(((amount - amountAfterCoupon) / amount) * 100)}% off\n </Styled.DiscountTag>\n </FlexView>\n <Separator height={4} />\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\" $textDecoration=\"line-through\">\n {currencySymbol + Math.round(amount)}\n </Text>\n <Text $renderAs=\"ab1-bold\">\n {currencySymbol + Math.round(amountAfterCoupon)}\n </Text>\n </FlexView>\n <FlexView $flexDirection=\"row\" $flexGap={2} $alignItems=\"center\">\n <Text $renderAs=\"ub2\">{noOfClasses} classes @</Text>\n <Text $renderAs=\"ub2-bold\">\n {currencySymbol + Math.round(feePerClassAfterDiscount)}/class\n </Text>\n </FlexView>\n <Separator height={4} />\n </FlexView>\n );\n })}\n </Styled.CardBoardContent>\n </Styled.CardContainer>\n ))}\n </>\n );\n};\n\nexport default PricingIndia;\n"],"names":["isPricingDetails","plan","getColorIndex","index","ratio","PricingIndia","props","plans","oneVsOnePlan","oneVsTowPlan","useMemo","element","a","b","jsx","Fragment","planIndex","jsxs","Styled.CardContainer","Separator","Styled.CardBoard","Styled.ClipImage","ILLUSTRATIONS","Styled.BoardHole","Styled.CardBoardContent","Text","planConfig","amount","duration","classRatio","noOfClasses","currencySymbol","amountAfterCoupon","feePerClassAfterDiscount","FlexView","Styled.DiscountTag"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import t from "styled-components";
2
+ import r from "../../../../ui/layout/flex-view.js";
3
+ import i from "../../../../ui/text/text.js";
4
+ const n = t.div`
5
+ max-width: 290px;
6
+ `, s = t.div(
7
+ ({ theme: o }) => `
8
+ width: 0;
9
+ height: 0;
10
+ border-left: 145px solid transparent;
11
+ border-right: 145px solid transparent;
12
+ border-bottom: 30px solid ${o.colors.BLACK_1};
13
+ position: relative;
14
+ &::after {
15
+ content: '';
16
+ position: absolute;
17
+ top: 1px;
18
+ left: -145px;
19
+ width: 0;
20
+ height: 0;
21
+ border-left: 145px solid transparent;
22
+ border-right: 145px solid transparent;
23
+ border-bottom: 30px solid ${o.colors.WHITE_1};
24
+ }
25
+ `
26
+ ), a = t.div(
27
+ ({ theme: o }) => `
28
+ border: 1px solid ${o.colors.BLACK_1};
29
+ background: ${o.colors.WHITE_1};
30
+ border-top: none;
31
+ `
32
+ ), l = t(i)(
33
+ ({ theme: o }) => `
34
+ background-color: ${o.colors.WHITE_T_60};
35
+ padding: 2px 4px;
36
+ `
37
+ ), x = t.img`
38
+ position: absolute;
39
+ z-index: 1;
40
+ top: -10px;
41
+ left: 50%;
42
+ transform: translateX(-50%);
43
+ overflow: auto;
44
+ height: 34px;
45
+ width: 16.381px;
46
+ `, c = t(r)`
47
+ z-index: 2;
48
+ top: 15px;
49
+ left: -5px;
50
+ `;
51
+ export {
52
+ c as BoardHole,
53
+ s as CardBoard,
54
+ a as CardBoardContent,
55
+ n as CardContainer,
56
+ x as ClipImage,
57
+ l as DiscountTag
58
+ };
59
+ //# sourceMappingURL=india-pricing-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"india-pricing-styled.js","sources":["../../../../../../src/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\n\nconst CardContainer = styled.div`\n max-width: 290px;\n`;\n\nconst CardBoard = styled.div(\n ({ theme }) => `\n width: 0;\n height: 0;\n border-left: 145px solid transparent;\n border-right: 145px solid transparent;\n border-bottom: 30px solid ${theme.colors.BLACK_1};\n position: relative;\n &::after {\n content: '';\n position: absolute;\n top: 1px;\n left: -145px;\n width: 0;\n height: 0;\n border-left: 145px solid transparent;\n border-right: 145px solid transparent;\n border-bottom: 30px solid ${theme.colors.WHITE_1};\n }\n `,\n);\n\nconst CardBoardContent = styled.div(\n ({ theme }) => `\n border: 1px solid ${theme.colors.BLACK_1};\n background: ${theme.colors.WHITE_1};\n border-top: none;\n `,\n);\n\nconst DiscountTag = styled(Text)(\n ({ theme }) => `\n background-color: ${theme.colors.WHITE_T_60};\n padding: 2px 4px;\n`,\n);\n\nconst ClipImage = styled.img`\n position: absolute;\n z-index: 1;\n top: -10px;\n left: 50%;\n transform: translateX(-50%);\n overflow: auto;\n height: 34px;\n width: 16.381px;\n`;\n\nconst BoardHole = styled(FlexView)`\n z-index: 2;\n top: 15px;\n left: -5px;\n`;\n\nexport { CardContainer, CardBoard, CardBoardContent, DiscountTag, ClipImage, BoardHole };\n"],"names":["CardContainer","styled","CardBoard","theme","CardBoardContent","DiscountTag","Text","ClipImage","BoardHole","FlexView"],"mappings":";;;AAKA,MAAMA,IAAgBC,EAAO;AAAA;AAAA,GAIvBC,IAAYD,EAAO;AAAA,EACvB,CAAC,EAAE,OAAAE,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA,gCAKeA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAWpBA,EAAM,OAAO,OAAO;AAAA;AAAA;AAGpD,GAEMC,IAAmBH,EAAO;AAAA,EAC9B,CAAC,EAAE,OAAAE,EAAA,MAAY;AAAA,uBACMA,EAAM,OAAO,OAAO;AAAA,kBACzBA,EAAM,OAAO,OAAO;AAAA;AAAA;AAGtC,GAEME,IAAcJ,EAAOK,CAAI;AAAA,EAC7B,CAAC,EAAE,OAAAH,EAAA,MAAY;AAAA,wBACOA,EAAM,OAAO,UAAU;AAAA;AAAA;AAG/C,GAEMI,IAAYN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWnBO,IAAYP,EAAOQ,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,37 +1,38 @@
1
1
  import { jsx as r, jsxs as a } from "react/jsx-runtime";
2
- import { memo as P, useCallback as x, useEffect as m } from "react";
2
+ import { memo as x, useCallback as I, useEffect as l } from "react";
3
3
  import { ILLUSTRATIONS as T } from "../../../../assets/illustrations/illustrations.js";
4
- import v from "../../../ui/error/error.js";
5
- import y from "../../../ui/image/image.js";
4
+ import y from "../../../ui/error/error.js";
5
+ import v from "../../../ui/image/image.js";
6
6
  import C from "../../../ui/layout/flex-view.js";
7
- import I from "../../../ui/loader/app-loader/app-loader.js";
7
+ import L from "../../../ui/loader/app-loader/app-loader.js";
8
8
  import d from "../../../ui/separator/separator.js";
9
- import L from "../../../ui/text/text.js";
10
- import { useGetTrialPricing as S } from "../../api/trial-pricing.js";
11
- import { useTrialSessionContext as $ } from "../../context/use-trial-session-context.js";
12
- import w from "../slide-header/index.js";
13
- import A from "./pricing-cards.js";
14
- import { Container as b, PricingWrapper as D, PolicyWrapper as E, RefundImageWrapper as W } from "./pricing-styled.js";
15
- const z = P(() => {
16
- const { isTeacher: f, studentId: i, updateButtonState: s } = $(), {
9
+ import S from "../../../ui/text/text.js";
10
+ import { useGetTrialPricing as $ } from "../../api/trial-pricing.js";
11
+ import { useTrialSessionContext as w } from "../../context/use-trial-session-context.js";
12
+ import A from "../slide-header/index.js";
13
+ import b from "./india-pricing/index.js";
14
+ import D from "./pricing-cards.js";
15
+ import { Container as E, PricingWrapper as W, PolicyWrapper as _, RefundImageWrapper as N } from "./pricing-styled.js";
16
+ const M = x(() => {
17
+ const { isTeacher: f, studentId: i, updateButtonState: s } = w(), {
17
18
  data: g,
18
19
  get: p,
19
- isProcessed: e,
20
- isProcessing: t,
20
+ isProcessed: t,
21
+ isProcessing: o,
21
22
  isProcessingFailed: h
22
- } = S("trial-v3-pricing", {
23
+ } = $("trial-v3-pricing", {
23
24
  student_id: i
24
- }), { plans: o, intent_level: c } = g || {}, n = x(() => {
25
- i && !e && p("trial-v3-pricing", { student_id: i });
26
- }, [p, e, i]);
27
- return m(() => {
25
+ }), { plans: e, intent_level: c, country: u } = g || {}, n = I(() => {
26
+ i && !t && p("trial-v3-pricing", { student_id: i });
27
+ }, [p, t, i]);
28
+ return l(() => {
28
29
  n();
29
- }, [n]), m(() => {
30
- s("right", { isDisabled: t, isLoading: !1 });
31
- }, [t, f, s]), t ? /* @__PURE__ */ r(I, { height: "100vh" }) : h ? /* @__PURE__ */ r(v, { height: "100vh", onTryAgain: n }) : e ? /* @__PURE__ */ a(b, { children: [
30
+ }, [n]), l(() => {
31
+ s("right", { isDisabled: o, isLoading: !1 });
32
+ }, [o, f, s]), o ? /* @__PURE__ */ r(L, { height: "100vh" }) : h ? /* @__PURE__ */ r(y, { height: "100vh", onTryAgain: n }) : t ? /* @__PURE__ */ a(E, { children: [
32
33
  /* @__PURE__ */ r(d, { height: 60 }),
33
- /* @__PURE__ */ r(w, { marginBottom: 38 }),
34
- /* @__PURE__ */ a(D, { children: [
34
+ /* @__PURE__ */ r(A, { marginBottom: 38 }),
35
+ /* @__PURE__ */ a(W, { children: [
35
36
  /* @__PURE__ */ r(
36
37
  C,
37
38
  {
@@ -40,22 +41,22 @@ const z = P(() => {
40
41
  $justifyContent: "space-between",
41
42
  $flexGap: 20,
42
43
  $flexWrap: !0,
43
- children: c && o && Array.isArray(o) && o.map((u, l) => /* @__PURE__ */ r(
44
- A,
44
+ children: e && Array.isArray(e) && (u === "IN" ? /* @__PURE__ */ r(b, { plans: e }) : c && e.map((P, m) => /* @__PURE__ */ r(
45
+ D,
45
46
  {
46
- colorIndex: l,
47
+ colorIndex: m,
47
48
  intentType: c,
48
- pricingConfig: u
49
+ pricingConfig: P
49
50
  },
50
- l
51
- ))
51
+ m
52
+ )))
52
53
  }
53
54
  ),
54
55
  /* @__PURE__ */ r(d, { height: 50 }),
55
- /* @__PURE__ */ a(E, { children: [
56
- /* @__PURE__ */ r(L, { $renderAs: "ab1-bold", $color: "GREEN_6", children: "We have a no-questions-asked refund policy" }),
57
- /* @__PURE__ */ r(W, { children: /* @__PURE__ */ r(
58
- y,
56
+ /* @__PURE__ */ a(_, { children: [
57
+ /* @__PURE__ */ r(S, { $renderAs: "ab1-bold", $color: "GREEN_6", children: "We have a no-questions-asked refund policy" }),
58
+ /* @__PURE__ */ r(N, { children: /* @__PURE__ */ r(
59
+ v,
59
60
  {
60
61
  src: T.REFUND_POLICY,
61
62
  width: 168,
@@ -68,6 +69,6 @@ const z = P(() => {
68
69
  ] }) : null;
69
70
  });
70
71
  export {
71
- z as default
72
+ M as default
72
73
  };
73
74
  //# sourceMappingURL=pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sources":["../../../../../src/features/trial-session/comps/pricing/pricing.tsx"],"sourcesContent":["import { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetTrialPricing } from '../../api/trial-pricing';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport PricingCards from './pricing-cards';\nimport * as Styled from './pricing-styled';\n\nconst SessionPricing = memo(() => {\n const { isTeacher, studentId, updateButtonState } = useTrialSessionContext();\n\n const {\n data: pricingData,\n get: getTrialPricing,\n isProcessed,\n isProcessing,\n isProcessingFailed,\n } = useGetTrialPricing('trial-v3-pricing', {\n student_id: studentId,\n });\n\n const { plans: pricingPlans, intent_level: intentLevel } = pricingData || {};\n const fetchData = useCallback(() => {\n if (studentId && !isProcessed) {\n getTrialPricing('trial-v3-pricing', { student_id: studentId });\n }\n }, [getTrialPricing, isProcessed, studentId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, isTeacher, updateButtonState]);\n\n if (isProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error height=\"100vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessed) {\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={38} />\n <Styled.PricingWrapper>\n <FlexView\n $width=\"100%\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $flexGap={20}\n $flexWrap\n >\n {intentLevel &&\n pricingPlans &&\n Array.isArray(pricingPlans) &&\n pricingPlans.map((pricing, index) => {\n return (\n <PricingCards\n key={index}\n colorIndex={index}\n intentType={intentLevel}\n pricingConfig={pricing}\n />\n );\n })}\n </FlexView>\n <Separator height={50} />\n <Styled.PolicyWrapper>\n <Text $renderAs=\"ab1-bold\" $color=\"GREEN_6\">\n We have a no-questions-asked refund policy\n </Text>\n <Styled.RefundImageWrapper>\n <Image\n src={ILLUSTRATIONS.REFUND_POLICY}\n width={168}\n height={100}\n withLoader={false}\n />\n </Styled.RefundImageWrapper>\n </Styled.PolicyWrapper>\n </Styled.PricingWrapper>\n </Styled.Container>\n );\n }\n\n return null;\n});\n\nexport default SessionPricing;\n"],"names":["SessionPricing","memo","isTeacher","studentId","updateButtonState","useTrialSessionContext","pricingData","getTrialPricing","isProcessed","isProcessing","isProcessingFailed","useGetTrialPricing","pricingPlans","intentLevel","fetchData","useCallback","useEffect","jsx","AppLoader","Error","jsxs","Styled.Container","Separator","SlideHeader","Styled.PricingWrapper","FlexView","pricing","index","PricingCards","Styled.PolicyWrapper","Text","Styled.RefundImageWrapper","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;;;;;;;AAeM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,WAAAC,GAAW,WAAAC,GAAW,mBAAAC,MAAsBC,EAAuB,GAErE;AAAA,IACJ,MAAMC;AAAA,IACN,KAAKC;AAAA,IACL,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEC,EAAmB,oBAAoB;AAAA,IACzC,YAAYR;AAAA,EAAA,CACb,GAEK,EAAE,OAAOS,GAAc,cAAcC,EAAY,IAAIP,KAAe,IACpEQ,IAAYC,EAAY,MAAM;AAC9B,IAAAZ,KAAa,CAACK,KAChBD,EAAgB,oBAAoB,EAAE,YAAYJ,EAAW,CAAA;AAAA,EAE9D,GAAA,CAACI,GAAiBC,GAAaL,CAAS,CAAC;AAU5C,SARAa,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEdE,EAAU,MAAM;AACd,IAAAZ,EAAkB,SAAS,EAAE,YAAYK,GAAc,WAAW,IAAO;AAAA,EACxE,GAAA,CAACA,GAAcP,GAAWE,CAAiB,CAAC,GAE3CK,IACK,gBAAAQ,EAACC,GAAU,EAAA,QAAO,QAAQ,CAAA,IAG/BR,IACM,gBAAAO,EAAAE,GAAA,EAAM,QAAO,SAAQ,YAAYL,EAAW,CAAA,IAGlDN,IAEA,gBAAAY,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAL,EAACM,GAAY,EAAA,cAAc,GAAI,CAAA;AAAA,IAC/B,gBAAAH,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,QAAO;AAAA,UACP,gBAAe;AAAA,UACf,iBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,WAAS;AAAA,UAER,UAAAZ,KACCD,KACA,MAAM,QAAQA,CAAY,KAC1BA,EAAa,IAAI,CAACc,GAASC,MAEvB,gBAAAV;AAAA,YAACW;AAAA,YAAA;AAAA,cAEC,YAAYD;AAAA,cACZ,YAAYd;AAAA,cACZ,eAAea;AAAA,YAAA;AAAA,YAHVC;AAAA,UAAA,CAMV;AAAA,QAAA;AAAA,MACL;AAAA,MACA,gBAAAV,EAACK,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,MACvB,gBAAAF,EAACS,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAZ,EAACa,GAAK,EAAA,WAAU,YAAW,QAAO,WAAU,UAE5C,8CAAA;AAAA,QACA,gBAAAb,EAACc,GAAA,EACC,UAAA,gBAAAd;AAAA,UAACe;AAAA,UAAA;AAAA,YACC,KAAKC,EAAc;AAAA,YACnB,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA,IAIG;AACT,CAAC;"}
1
+ {"version":3,"file":"pricing.js","sources":["../../../../../src/features/trial-session/comps/pricing/pricing.tsx"],"sourcesContent":["import { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetTrialPricing } from '../../api/trial-pricing';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport PricingIndia from './india-pricing';\nimport PricingCards from './pricing-cards';\nimport * as Styled from './pricing-styled';\n\nconst SessionPricing = memo(() => {\n const { isTeacher, studentId, updateButtonState } = useTrialSessionContext();\n\n const {\n data: pricingData,\n get: getTrialPricing,\n isProcessed,\n isProcessing,\n isProcessingFailed,\n } = useGetTrialPricing('trial-v3-pricing', {\n student_id: studentId,\n });\n\n const { plans: pricingPlans, intent_level: intentLevel, country } = pricingData || {};\n const fetchData = useCallback(() => {\n if (studentId && !isProcessed) {\n getTrialPricing('trial-v3-pricing', { student_id: studentId });\n }\n }, [getTrialPricing, isProcessed, studentId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, isTeacher, updateButtonState]);\n\n if (isProcessing) {\n return <AppLoader height=\"100vh\" />;\n }\n\n if (isProcessingFailed) {\n return <Error height=\"100vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessed) {\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={38} />\n <Styled.PricingWrapper>\n <FlexView\n $width=\"100%\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $flexGap={20}\n $flexWrap\n >\n {pricingPlans &&\n Array.isArray(pricingPlans) &&\n (country === 'IN' ? (\n <PricingIndia plans={pricingPlans} />\n ) : (\n intentLevel &&\n pricingPlans.map((pricing, index) => {\n return (\n <PricingCards\n key={index}\n colorIndex={index}\n intentType={intentLevel}\n pricingConfig={pricing}\n />\n );\n })\n ))}\n </FlexView>\n <Separator height={50} />\n <Styled.PolicyWrapper>\n <Text $renderAs=\"ab1-bold\" $color=\"GREEN_6\">\n We have a no-questions-asked refund policy\n </Text>\n <Styled.RefundImageWrapper>\n <Image\n src={ILLUSTRATIONS.REFUND_POLICY}\n width={168}\n height={100}\n withLoader={false}\n />\n </Styled.RefundImageWrapper>\n </Styled.PolicyWrapper>\n </Styled.PricingWrapper>\n </Styled.Container>\n );\n }\n\n return null;\n});\n\nexport default SessionPricing;\n"],"names":["SessionPricing","memo","isTeacher","studentId","updateButtonState","useTrialSessionContext","pricingData","getTrialPricing","isProcessed","isProcessing","isProcessingFailed","useGetTrialPricing","pricingPlans","intentLevel","country","fetchData","useCallback","useEffect","jsx","AppLoader","Error","jsxs","Styled.Container","Separator","SlideHeader","Styled.PricingWrapper","FlexView","PricingIndia","pricing","index","PricingCards","Styled.PolicyWrapper","Text","Styled.RefundImageWrapper","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;;;;;;;;AAgBM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,WAAAC,GAAW,WAAAC,GAAW,mBAAAC,MAAsBC,EAAuB,GAErE;AAAA,IACJ,MAAMC;AAAA,IACN,KAAKC;AAAA,IACL,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACEC,EAAmB,oBAAoB;AAAA,IACzC,YAAYR;AAAA,EAAA,CACb,GAEK,EAAE,OAAOS,GAAc,cAAcC,GAAa,SAAAC,EAAQ,IAAIR,KAAe,IAC7ES,IAAYC,EAAY,MAAM;AAC9B,IAAAb,KAAa,CAACK,KAChBD,EAAgB,oBAAoB,EAAE,YAAYJ,EAAW,CAAA;AAAA,EAE9D,GAAA,CAACI,GAAiBC,GAAaL,CAAS,CAAC;AAU5C,SARAc,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEdE,EAAU,MAAM;AACd,IAAAb,EAAkB,SAAS,EAAE,YAAYK,GAAc,WAAW,IAAO;AAAA,EACxE,GAAA,CAACA,GAAcP,GAAWE,CAAiB,CAAC,GAE3CK,IACK,gBAAAS,EAACC,GAAU,EAAA,QAAO,QAAQ,CAAA,IAG/BT,IACM,gBAAAQ,EAAAE,GAAA,EAAM,QAAO,SAAQ,YAAYL,EAAW,CAAA,IAGlDP,IAEA,gBAAAa,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,IACvB,gBAAAL,EAACM,GAAY,EAAA,cAAc,GAAI,CAAA;AAAA,IAC/B,gBAAAH,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,QAAO;AAAA,UACP,gBAAe;AAAA,UACf,iBAAgB;AAAA,UAChB,UAAU;AAAA,UACV,WAAS;AAAA,UAER,eACC,MAAM,QAAQd,CAAY,MACzBE,MAAY,OACX,gBAAAI,EAACS,GAAa,EAAA,OAAOf,EAAc,CAAA,IAEnCC,KACAD,EAAa,IAAI,CAACgB,GAASC,MAEvB,gBAAAX;AAAA,YAACY;AAAA,YAAA;AAAA,cAEC,YAAYD;AAAA,cACZ,YAAYhB;AAAA,cACZ,eAAee;AAAA,YAAA;AAAA,YAHVC;AAAA,UAAA,CAMV;AAAA,QAAA;AAAA,MAEP;AAAA,MACA,gBAAAX,EAACK,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,MACvB,gBAAAF,EAACU,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAb,EAACc,GAAK,EAAA,WAAU,YAAW,QAAO,WAAU,UAE5C,8CAAA;AAAA,QACA,gBAAAd,EAACe,GAAA,EACC,UAAA,gBAAAf;AAAA,UAACgB;AAAA,UAAA;AAAA,YACC,KAAKC,EAAc;AAAA,YACnB,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA,IAIG;AACT,CAAC;"}
@@ -1,16 +1,16 @@
1
1
  import u from "styled-components";
2
2
  import x from "../../text/text.js";
3
- const s = u.button(
4
- ({ theme: c, $width: t, $widthX: i, $alignSelf: o, $justifyContent: e, $renderAs: a, $size: n, $shape: $ }) => {
5
- const { button: b, colors: r, layout: p } = c, { backgroundColorName: d, borderColorName: l } = b.variants[a], { height: v, paddingHorizontal: g, borderWidth: h } = b.sizes[n];
3
+ const d = u.button(
4
+ ({ theme: c, $width: e, $widthX: i, $alignSelf: o, $justifyContent: t, $renderAs: a, $size: n, $shape: $ }) => {
5
+ const { button: b, colors: r, layout: p } = c, { backgroundColorName: s, borderColorName: l } = b.variants[a], { height: v, paddingHorizontal: g, borderWidth: h } = b.sizes[n];
6
6
  return `
7
7
  position: relative;
8
8
  display: flex;
9
- justify-content: ${e};
9
+ justify-content: ${t};
10
10
  align-items: center;
11
11
  ${o ? `align-self: ${o};` : ""}
12
12
 
13
- width: ${t ? `${t}` : "auto"}${typeof t == "number" ? "px" : ""};
13
+ width: ${e ? `${e}px` : "auto"};
14
14
  ${i ? `width: ${i * p.gutter}px;` : ""}
15
15
  height: ${v}px;
16
16
  padding: 0 ${g}px;
@@ -19,56 +19,56 @@ const s = u.button(
19
19
  border-radius: ${$ === "curved" ? v / 2 : 0}px;
20
20
  outline: none;
21
21
 
22
- background-color: ${r[d.inactive]};
22
+ background-color: ${r[s.inactive]};
23
23
  border-color: ${r[l.inactive]};
24
24
 
25
25
  transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
26
26
  cursor: pointer;
27
27
 
28
28
  &:hover {
29
- background-color: ${r[d.active]};
29
+ background-color: ${r[s.active]};
30
30
  border-color: ${r[l.active]};
31
31
  }
32
32
 
33
33
  &:active {
34
- background: ${r[d.inactive]};
34
+ background: ${r[s.inactive]};
35
35
  border-color: ${r[l.inactive]};
36
36
  }
37
37
 
38
38
  &[data-busy="true"] {
39
39
  cursor: wait;
40
- background-color: ${r[d.active]};
40
+ background-color: ${r[s.active]};
41
41
  border-color: ${r[l.active]};
42
42
  }
43
43
 
44
44
  &:disabled {
45
- background-color: ${r[d.disabled]};
45
+ background-color: ${r[s.disabled]};
46
46
  border-color: ${r[l.disabled]};
47
47
  cursor: not-allowed;
48
48
  }
49
49
  `;
50
50
  }
51
- ), f = u(x)(({ theme: c, $buttonRenderAs: t }) => {
52
- const { button: i, colors: o } = c, { colorName: e } = i.variants[t];
51
+ ), k = u(x)(({ theme: c, $buttonRenderAs: e }) => {
52
+ const { button: i, colors: o } = c, { colorName: t } = i.variants[e];
53
53
  return `
54
- color: ${o[e.inactive]};
54
+ color: ${o[t.inactive]};
55
55
  transition: color 0.2s ease-in-out;
56
56
 
57
- ${s}:hover & {
58
- color: ${o[e.active]};
57
+ ${d}:hover & {
58
+ color: ${o[t.active]};
59
59
  }
60
60
 
61
- ${s}:active & {
62
- color: ${o[e.inactive]};
61
+ ${d}:active & {
62
+ color: ${o[t.inactive]};
63
63
  }
64
64
 
65
- ${s}:disabled & {
66
- color: ${o[e.disabled]};
65
+ ${d}:disabled & {
66
+ color: ${o[t.disabled]};
67
67
  opacity: 0.5;
68
68
  }
69
69
  `;
70
- }), k = u.div(({ theme: c, $buttonRenderAs: t, $size: i, $iconPosition: o }) => {
71
- const { button: e, colors: a } = c, { colorName: n } = e.variants[t], { iconSize: $, iconPadding: b } = e.sizes[i];
70
+ }), f = u.div(({ theme: c, $buttonRenderAs: e, $size: i, $iconPosition: o }) => {
71
+ const { button: t, colors: a } = c, { colorName: n } = t.variants[e], { iconSize: $, iconPadding: b } = t.sizes[i];
72
72
  return `
73
73
  ${o === "left" ? "padding-right" : "padding-left"}: ${b}px;
74
74
  order: ${o === "left" ? -1 : 1};
@@ -80,31 +80,31 @@ const s = u.button(
80
80
  color: ${a[n.inactive]};
81
81
  transition: color 0.2s ease-in-out;
82
82
 
83
- ${s}:hover & {
83
+ ${d}:hover & {
84
84
  color: ${a[n.active]};
85
85
  }
86
86
 
87
- ${s}:active & {
87
+ ${d}:active & {
88
88
  color: ${a[n.inactive]};
89
89
  }
90
90
 
91
- ${s}:disabled & {
91
+ ${d}:disabled & {
92
92
  color: ${a[n.disabled]};
93
93
  opacity: 0.5;
94
94
  }
95
95
  }
96
96
  `;
97
- }), z = u.img(({ theme: c, $size: t }) => {
98
- const { button: i } = c, { loaderSize: o } = i.sizes[t];
97
+ }), z = u.img(({ theme: c, $size: e }) => {
98
+ const { button: i } = c, { loaderSize: o } = i.sizes[e];
99
99
  return `
100
100
  width: ${o}px;
101
101
  height: ${o}px;
102
102
  `;
103
103
  });
104
104
  export {
105
- s as Button,
106
- k as Icon,
107
- f as Label,
105
+ d as Button,
106
+ f as Icon,
107
+ k as Label,
108
108
  z as Loader
109
109
  };
110
110
  //# sourceMappingURL=button-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-styled.js","sources":["../../../../../src/features/ui/buttons/button/button-styled.tsx"],"sourcesContent":["import type { IButtonProps } from './button-types';\n\nimport styled from 'styled-components';\n\nimport Text from '../../text/text';\n\ninterface IStyledButtonProps {\n $width: IButtonProps['width'];\n $widthX: IButtonProps['widthX'];\n $alignSelf: IButtonProps['alignSelf'];\n $renderAs: IButtonProps['renderAs'];\n $size: Required<IButtonProps>['size'];\n $shape: Required<IButtonProps>['shape'];\n $justifyContent: IButtonProps['justifyContent'];\n}\n\nconst Button = styled.button<IStyledButtonProps>(\n ({ theme, $width, $widthX, $alignSelf, $justifyContent, $renderAs, $size, $shape }) => {\n const { button, colors, layout } = theme;\n const { backgroundColorName, borderColorName } = button.variants[$renderAs];\n const { height, paddingHorizontal, borderWidth } = button.sizes[$size];\n\n return `\n position: relative;\n display: flex;\n justify-content: ${$justifyContent};\n align-items: center;\n ${$alignSelf ? `align-self: ${$alignSelf};` : ''}\n \n width: ${$width ? `${$width}` : 'auto'}${typeof $width === 'number' ? 'px' : ''};\n ${$widthX ? `width: ${$widthX * layout.gutter}px;` : ''}\n height: ${height}px;\n padding: 0 ${paddingHorizontal}px;\n border-width: ${borderWidth}px;\n border-style: solid;\n border-radius: ${$shape === 'curved' ? height / 2 : 0}px;\n outline: none;\n\n background-color: ${colors[backgroundColorName.inactive]};\n border-color: ${colors[borderColorName.inactive]};\n \n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n background-color: ${colors[backgroundColorName.active]};\n border-color: ${colors[borderColorName.active]};\n }\n\n &:active {\n background: ${colors[backgroundColorName.inactive]};\n border-color: ${colors[borderColorName.inactive]};\n }\n\n &[data-busy=\"true\"] {\n cursor: wait;\n background-color: ${colors[backgroundColorName.active]};\n border-color: ${colors[borderColorName.active]};\n }\n\n &:disabled {\n background-color: ${colors[backgroundColorName.disabled]};\n border-color: ${colors[borderColorName.disabled]};\n cursor: not-allowed;\n }\n `;\n },\n);\n\ninterface IStyledTextProps {\n $buttonRenderAs: IButtonProps['renderAs'];\n}\n\nconst Label = styled(Text)<IStyledTextProps>(({ theme, $buttonRenderAs }) => {\n const { button, colors } = theme;\n const { colorName } = button.variants[$buttonRenderAs];\n\n return `\n color: ${colors[colorName.inactive]};\n transition: color 0.2s ease-in-out;\n\n ${Button}:hover & {\n color: ${colors[colorName.active]};\n }\n \n ${Button}:active & {\n color: ${colors[colorName.inactive]};\n }\n\n ${Button}:disabled & {\n color: ${colors[colorName.disabled]};\n opacity: 0.5;\n }\n `;\n});\n\ninterface IStyledIconProps {\n $size: NonNullable<IButtonProps['size']>;\n $iconPosition: NonNullable<IButtonProps['iconPosition']>;\n $buttonRenderAs: IButtonProps['renderAs'];\n}\n\nconst Icon = styled.div<IStyledIconProps>(({ theme, $buttonRenderAs, $size, $iconPosition }) => {\n const { button, colors } = theme;\n const { colorName } = button.variants[$buttonRenderAs];\n const { iconSize, iconPadding } = button.sizes[$size];\n\n return `\n ${$iconPosition === 'left' ? 'padding-right' : 'padding-left'}: ${iconPadding}px;\n order: ${$iconPosition === 'left' ? -1 : 1};\n \n & svg {\n display: block;\n width: ${iconSize}px;\n height: ${iconSize}px;\n color: ${colors[colorName.inactive]};\n transition: color 0.2s ease-in-out;\n\n ${Button}:hover & {\n color: ${colors[colorName.active]};\n }\n\n ${Button}:active & {\n color: ${colors[colorName.inactive]};\n }\n\n ${Button}:disabled & {\n color: ${colors[colorName.disabled]};\n opacity: 0.5;\n }\n }\n `;\n});\n\ninterface IStyledLoaderProps {\n $size: Required<IButtonProps>['size'];\n}\n\nconst Loader = styled.img<IStyledLoaderProps>(({ theme, $size }) => {\n const { button } = theme;\n const { loaderSize } = button.sizes[$size];\n\n return `\n width: ${loaderSize}px;\n height: ${loaderSize}px;\n `;\n});\n\nexport { Button, Label, Icon, Loader };\n"],"names":["Button","styled","theme","$width","$widthX","$alignSelf","$justifyContent","$renderAs","$size","$shape","button","colors","layout","backgroundColorName","borderColorName","height","paddingHorizontal","borderWidth","Label","Text","$buttonRenderAs","colorName","Icon","$iconPosition","iconSize","iconPadding","Loader","loaderSize"],"mappings":"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"}
1
+ {"version":3,"file":"button-styled.js","sources":["../../../../../src/features/ui/buttons/button/button-styled.tsx"],"sourcesContent":["import type { IButtonProps } from './button-types';\n\nimport styled from 'styled-components';\n\nimport Text from '../../text/text';\n\ninterface IStyledButtonProps {\n $width: IButtonProps['width'];\n $widthX: IButtonProps['widthX'];\n $alignSelf: IButtonProps['alignSelf'];\n $renderAs: IButtonProps['renderAs'];\n $size: Required<IButtonProps>['size'];\n $shape: Required<IButtonProps>['shape'];\n $justifyContent: IButtonProps['justifyContent'];\n}\n\nconst Button = styled.button<IStyledButtonProps>(\n ({ theme, $width, $widthX, $alignSelf, $justifyContent, $renderAs, $size, $shape }) => {\n const { button, colors, layout } = theme;\n const { backgroundColorName, borderColorName } = button.variants[$renderAs];\n const { height, paddingHorizontal, borderWidth } = button.sizes[$size];\n\n return `\n position: relative;\n display: flex;\n justify-content: ${$justifyContent};\n align-items: center;\n ${$alignSelf ? `align-self: ${$alignSelf};` : ''}\n \n width: ${$width ? `${$width}px` : 'auto'};\n ${$widthX ? `width: ${$widthX * layout.gutter}px;` : ''}\n height: ${height}px;\n padding: 0 ${paddingHorizontal}px;\n border-width: ${borderWidth}px;\n border-style: solid;\n border-radius: ${$shape === 'curved' ? height / 2 : 0}px;\n outline: none;\n\n background-color: ${colors[backgroundColorName.inactive]};\n border-color: ${colors[borderColorName.inactive]};\n \n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n background-color: ${colors[backgroundColorName.active]};\n border-color: ${colors[borderColorName.active]};\n }\n\n &:active {\n background: ${colors[backgroundColorName.inactive]};\n border-color: ${colors[borderColorName.inactive]};\n }\n\n &[data-busy=\"true\"] {\n cursor: wait;\n background-color: ${colors[backgroundColorName.active]};\n border-color: ${colors[borderColorName.active]};\n }\n\n &:disabled {\n background-color: ${colors[backgroundColorName.disabled]};\n border-color: ${colors[borderColorName.disabled]};\n cursor: not-allowed;\n }\n `;\n },\n);\n\ninterface IStyledTextProps {\n $buttonRenderAs: IButtonProps['renderAs'];\n}\n\nconst Label = styled(Text)<IStyledTextProps>(({ theme, $buttonRenderAs }) => {\n const { button, colors } = theme;\n const { colorName } = button.variants[$buttonRenderAs];\n\n return `\n color: ${colors[colorName.inactive]};\n transition: color 0.2s ease-in-out;\n\n ${Button}:hover & {\n color: ${colors[colorName.active]};\n }\n \n ${Button}:active & {\n color: ${colors[colorName.inactive]};\n }\n\n ${Button}:disabled & {\n color: ${colors[colorName.disabled]};\n opacity: 0.5;\n }\n `;\n});\n\ninterface IStyledIconProps {\n $size: NonNullable<IButtonProps['size']>;\n $iconPosition: NonNullable<IButtonProps['iconPosition']>;\n $buttonRenderAs: IButtonProps['renderAs'];\n}\n\nconst Icon = styled.div<IStyledIconProps>(({ theme, $buttonRenderAs, $size, $iconPosition }) => {\n const { button, colors } = theme;\n const { colorName } = button.variants[$buttonRenderAs];\n const { iconSize, iconPadding } = button.sizes[$size];\n\n return `\n ${$iconPosition === 'left' ? 'padding-right' : 'padding-left'}: ${iconPadding}px;\n order: ${$iconPosition === 'left' ? -1 : 1};\n \n & svg {\n display: block;\n width: ${iconSize}px;\n height: ${iconSize}px;\n color: ${colors[colorName.inactive]};\n transition: color 0.2s ease-in-out;\n\n ${Button}:hover & {\n color: ${colors[colorName.active]};\n }\n\n ${Button}:active & {\n color: ${colors[colorName.inactive]};\n }\n\n ${Button}:disabled & {\n color: ${colors[colorName.disabled]};\n opacity: 0.5;\n }\n }\n `;\n});\n\ninterface IStyledLoaderProps {\n $size: Required<IButtonProps>['size'];\n}\n\nconst Loader = styled.img<IStyledLoaderProps>(({ theme, $size }) => {\n const { button } = theme;\n const { loaderSize } = button.sizes[$size];\n\n return `\n width: ${loaderSize}px;\n height: ${loaderSize}px;\n `;\n});\n\nexport { Button, Label, Icon, Loader };\n"],"names":["Button","styled","theme","$width","$widthX","$alignSelf","$justifyContent","$renderAs","$size","$shape","button","colors","layout","backgroundColorName","borderColorName","height","paddingHorizontal","borderWidth","Label","Text","$buttonRenderAs","colorName","Icon","$iconPosition","iconSize","iconPadding","Loader","loaderSize"],"mappings":";;AAgBA,MAAMA,IAASC,EAAO;AAAA,EACpB,CAAC,EAAE,OAAAC,GAAO,QAAAC,GAAQ,SAAAC,GAAS,YAAAC,GAAY,iBAAAC,GAAiB,WAAAC,GAAW,OAAAC,GAAO,QAAAC,QAAa;AACrF,UAAM,EAAE,QAAAC,GAAQ,QAAAC,GAAQ,QAAAC,EAAA,IAAWV,GAC7B,EAAE,qBAAAW,GAAqB,iBAAAC,EAAA,IAAoBJ,EAAO,SAASH,CAAS,GACpE,EAAE,QAAAQ,GAAQ,mBAAAC,GAAmB,aAAAC,EAAgB,IAAAP,EAAO,MAAMF,CAAK;AAE9D,WAAA;AAAA;AAAA;AAAA,yBAGcF,CAAe;AAAA;AAAA,QAEhCD,IAAa,eAAeA,CAAU,MAAM,EAAE;AAAA;AAAA,eAEvCF,IAAS,GAAGA,CAAM,OAAO,MAAM;AAAA,QACtCC,IAAU,UAAUA,IAAUQ,EAAO,MAAM,QAAQ,EAAE;AAAA,gBAC7CG,CAAM;AAAA,mBACHC,CAAiB;AAAA,sBACdC,CAAW;AAAA;AAAA,uBAEVR,MAAW,WAAWM,IAAS,IAAI,CAAC;AAAA;AAAA;AAAA,0BAGjCJ,EAAOE,EAAoB,QAAQ,CAAC;AAAA,sBACxCF,EAAOG,EAAgB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAM1BH,EAAOE,EAAoB,MAAM,CAAC;AAAA,wBACtCF,EAAOG,EAAgB,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,sBAIhCH,EAAOE,EAAoB,QAAQ,CAAC;AAAA,wBAClCF,EAAOG,EAAgB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,4BAK5BH,EAAOE,EAAoB,MAAM,CAAC;AAAA,wBACtCF,EAAOG,EAAgB,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,4BAI1BH,EAAOE,EAAoB,QAAQ,CAAC;AAAA,wBACxCF,EAAOG,EAAgB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAItD;AACF,GAMMI,IAAQjB,EAAOkB,CAAI,EAAoB,CAAC,EAAE,OAAAjB,GAAO,iBAAAkB,QAAsB;AACrE,QAAA,EAAE,QAAAV,GAAQ,QAAAC,EAAW,IAAAT,GACrB,EAAE,WAAAmB,EAAc,IAAAX,EAAO,SAASU,CAAe;AAE9C,SAAA;AAAA,eACMT,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA,QAGjCrB,CAAM;AAAA,iBACGW,EAAOU,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA,QAGjCrB,CAAM;AAAA,iBACGW,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA,QAGnCrB,CAAM;AAAA,iBACGW,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA;AAI3C,CAAC,GAQKC,IAAOrB,EAAO,IAAsB,CAAC,EAAE,OAAAC,GAAO,iBAAAkB,GAAiB,OAAAZ,GAAO,eAAAe,QAAoB;AACxF,QAAA,EAAE,QAAAb,GAAQ,QAAAC,EAAW,IAAAT,GACrB,EAAE,WAAAmB,EAAc,IAAAX,EAAO,SAASU,CAAe,GAC/C,EAAE,UAAAI,GAAU,aAAAC,EAAA,IAAgBf,EAAO,MAAMF,CAAK;AAE7C,SAAA;AAAA,QACDe,MAAkB,SAAS,kBAAkB,cAAc,KAAKE,CAAW;AAAA,eACpEF,MAAkB,SAAS,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,iBAI/BC,CAAQ;AAAA,kBACPA,CAAQ;AAAA,iBACTb,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA,UAGjCrB,CAAM;AAAA,mBACGW,EAAOU,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA,UAGjCrB,CAAM;AAAA,mBACGW,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA,UAGnCrB,CAAM;AAAA,mBACGW,EAAOU,EAAU,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAK7C,CAAC,GAMKK,IAASzB,EAAO,IAAwB,CAAC,EAAE,OAAAC,GAAO,OAAAM,QAAY;AAC5D,QAAA,EAAE,QAAAE,EAAW,IAAAR,GACb,EAAE,YAAAyB,EAAe,IAAAjB,EAAO,MAAMF,CAAK;AAElC,SAAA;AAAA,aACImB,CAAU;AAAA,cACTA,CAAU;AAAA;AAExB,CAAC;"}
@@ -1,14 +1,14 @@
1
1
  import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
- import m from "../../../assets/line-icons/icons/check.js";
3
- import h from "../text/text.js";
2
+ import l from "../../../assets/line-icons/icons/check.js";
3
+ import m from "../text/text.js";
4
4
  import { getTheme as p } from "../theme/get-theme.js";
5
5
  import { MainWrapper as a, HorizontalLine as d, Wrapper as g, NumberWrapper as f, StyledText as s } from "./stepper-styled.js";
6
6
  const { layout: u } = p(), { gutter: i } = u;
7
- function j({ stepsInfo: n = [], currentStep: e = 2 }) {
7
+ function W({ stepsInfo: n = [], currentStep: e = 2 }) {
8
8
  const c = n.length && e >= 1 ? (e - 1) / n.length * 100 : 0;
9
9
  return /* @__PURE__ */ o(a, { $flexDirection: "row", $width: "fit-content", $gutterX: 0.625, $gapX: 0.625, children: [
10
10
  /* @__PURE__ */ t(d, { $percentageCompleted: c, $height: 1 }),
11
- n.map(({ id: $, label: l }, r) => /* @__PURE__ */ o(
11
+ n.map(({ id: $, label: h }, r) => /* @__PURE__ */ o(
12
12
  g,
13
13
  {
14
14
  $flexDirection: "row",
@@ -25,10 +25,10 @@ function j({ stepsInfo: n = [], currentStep: e = 2 }) {
25
25
  $justifyContent: "center",
26
26
  $heightX: 1.25,
27
27
  $widthX: 1.25,
28
- children: r + 1 < e ? /* @__PURE__ */ t(m, { height: i, width: i }) : /* @__PURE__ */ t(h, { $renderAs: "body3", $color: "WHITE", children: $ })
28
+ children: r + 1 < e ? /* @__PURE__ */ t(l, { height: i, width: i }) : /* @__PURE__ */ t(m, { $renderAs: "body3", $color: "WHITE", children: $ })
29
29
  }
30
30
  ),
31
- r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: l })
31
+ r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: h })
32
32
  ]
33
33
  },
34
34
  r
@@ -36,6 +36,6 @@ function j({ stepsInfo: n = [], currentStep: e = 2 }) {
36
36
  ] });
37
37
  }
38
38
  export {
39
- j as default
39
+ W as default
40
40
  };
41
41
  //# sourceMappingURL=stepper.js.map
@@ -1,33 +1,36 @@
1
- import { useEffect as g, useCallback as w } from "react";
2
- import { useAwsSignedKey as S } from "../api/subjective-review.js";
3
- import h from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
- const A = (c) => {
5
- const { studentId: t, query: o } = c, { data: a, get: s } = S();
6
- return g(() => {
7
- s(t, o);
8
- }, [o, s, t]), w(
9
- async ({ images: d, onSuccess: i, onError: l, fileKey: u, fileName: m }) => {
1
+ import { useRef as h, useEffect as f, useCallback as k } from "react";
2
+ import { useAwsSignedKey as I } from "../api/subjective-review.js";
3
+ import S from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
+ const C = (y) => {
5
+ const { studentId: t, query: o, enabled: r = !0 } = y, { data: s, get: d } = I(), c = h(s);
6
+ return f(() => {
7
+ c.current = s;
8
+ }, [s]), f(() => {
9
+ r && t && d(t, o);
10
+ }, [o, d, t, r]), k(
11
+ async ({ images: g, onSuccess: n, onError: p, fileKey: w, fileName: K }) => {
12
+ const a = c.current;
10
13
  if (!a) return;
11
- const r = `https://${a.bucketName}.s3.amazonaws.com/`;
14
+ const i = `https://${a.bucketName}.s3.amazonaws.com/`;
12
15
  try {
13
- const n = d.map(async (f) => {
14
- const e = new FormData(), p = `${u}${m ?? h()}`;
15
- if (e.append("key", p), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", f.file), !(await fetch(r, {
16
+ const l = g.map(async (b) => {
17
+ const e = new FormData(), m = `${w}${K ?? S()}`;
18
+ if (e.append("key", m), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", b.file), !(await fetch(i, {
16
19
  method: "POST",
17
20
  body: e
18
21
  })).ok)
19
22
  throw new Error("Upload failed");
20
- return `${r}${p}`;
21
- }), y = await Promise.all(n);
22
- i(y);
23
+ return `${i}${m}`;
24
+ }), u = await Promise.all(l);
25
+ return n == null || n(u), u;
23
26
  } catch {
24
- l();
27
+ p == null || p();
25
28
  }
26
29
  },
27
- [a]
30
+ []
28
31
  );
29
32
  };
30
33
  export {
31
- A as default
34
+ C as default
32
35
  };
33
36
  //# sourceMappingURL=use-s3-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helper {\n (params: {\n studentId: string;\n query: {\n type: string;\n };\n }): (props: IUploadImageProps) => void;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess: (urls: string[]) => void;\n onError: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper: IUseS3helper = props => {\n const { studentId, query } = props;\n const { data: awsSignedKey, get: getAwsSignedKey } = useAwsSignedKey();\n\n useEffect(() => {\n getAwsSignedKey(studentId, query);\n }, [query, getAwsSignedKey, studentId]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess(uploadedUrls);\n } catch (error) {\n onError();\n }\n },\n [awsSignedKey],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","awsSignedKey","getAwsSignedKey","useAwsSignedKey","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAwBA,MAAMA,IAAuC,CAASC,MAAA;AAC9C,QAAA,EAAE,WAAAC,GAAW,OAAAC,EAAU,IAAAF,GACvB,EAAE,MAAMG,GAAc,KAAKC,EAAA,IAAoBC;AAErD,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAgBH,GAAWC,CAAK;AAAA,EAC/B,GAAA,CAACA,GAAOE,GAAiBH,CAAS,CAAC,GAEbM;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,UAAI,CAACT,EAAc;AAEb,YAAAU,IAAM,WAAWV,EAAa,UAAU;AAE1C,UAAA;AACF,cAAMW,IAAiBN,EAAO,IAAI,OAAOO,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGN,CAAO,GAAGC,KAAYM,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBb,EAAa,MAAM,GAC5Ca,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUb,EAAa,MAAM,GACpCa,EAAA,OAAO,aAAab,EAAa,SAAS,GAC1Ca,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,QAAAL,EAAUU,CAAY;AAAA,cACR;AACN,QAAAT;MACV;AAAA,IACF;AAAA,IACA,CAACP,CAAY;AAAA,EAAA;AAIjB;"}
1
+ {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helperProps {\n studentId: string;\n query: {\n type: string;\n };\n enabled?: boolean;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess?: (urls: string[]) => void;\n onError?: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper = (props: IUseS3helperProps) => {\n const { studentId, query, enabled = true } = props;\n const { data, get: getAwsSignedKey } = useAwsSignedKey();\n const awsSignedKeyRef = useRef(data);\n\n useEffect(() => {\n awsSignedKeyRef.current = data;\n }, [data]);\n\n useEffect(() => {\n if (enabled && studentId) {\n getAwsSignedKey(studentId, query);\n }\n }, [query, getAwsSignedKey, studentId, enabled]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n const awsSignedKey = awsSignedKeyRef.current;\n\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess?.(uploadedUrls);\n\n return uploadedUrls;\n } catch (error) {\n onError?.();\n }\n },\n [],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","enabled","data","getAwsSignedKey","useAwsSignedKey","awsSignedKeyRef","useRef","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","awsSignedKey","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAuBM,MAAAA,IAAyB,CAACC,MAA6B;AAC3D,QAAM,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,IAAU,OAASH,GACvC,EAAE,MAAAI,GAAM,KAAKC,MAAoBC,EAAgB,GACjDC,IAAkBC,EAAOJ,CAAI;AAEnC,SAAAK,EAAU,MAAM;AACd,IAAAF,EAAgB,UAAUH;AAAA,EAAA,GACzB,CAACA,CAAI,CAAC,GAETK,EAAU,MAAM;AACd,IAAIN,KAAWF,KACbI,EAAgBJ,GAAWC,CAAK;AAAA,KAEjC,CAACA,GAAOG,GAAiBJ,GAAWE,CAAO,CAAC,GAEtBO;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,YAAMC,IAAeT,EAAgB;AAErC,UAAI,CAACS,EAAc;AAEb,YAAAC,IAAM,WAAWD,EAAa,UAAU;AAE1C,UAAA;AACF,cAAME,IAAiBP,EAAO,IAAI,OAAOQ,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGP,CAAO,GAAGC,KAAYO,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBJ,EAAa,MAAM,GAC5CI,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUJ,EAAa,MAAM,GACpCI,EAAA,OAAO,aAAaJ,EAAa,SAAS,GAC1CI,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,eAAAN,KAAA,QAAAA,EAAYW,IAELA;AAAA,cACO;AACJ,QAAAV,KAAA,QAAAA;AAAA,MACZ;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EAAA;AAIL;"}