@tipp/ui 2.3.11 → 2.3.13

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 (203) hide show
  1. package/dist/app/index.cjs +42 -39
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +89 -89
  4. package/dist/app/platform/coach-question-list.js +31 -31
  5. package/dist/app/platform/contents-card.js +31 -31
  6. package/dist/app/platform/curriculum-card.js +5 -5
  7. package/dist/app/platform/edit-coaching-time.cjs +15 -12
  8. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  9. package/dist/app/platform/edit-coaching-time.js +71 -71
  10. package/dist/app/platform/edit-service-type.cjs +10 -7
  11. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  12. package/dist/app/platform/edit-service-type.js +72 -72
  13. package/dist/app/platform/goal-manage-card-edit.cjs +12 -9
  14. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  15. package/dist/app/platform/goal-manage-card-edit.js +71 -71
  16. package/dist/app/platform/goal-manage-card-read.js +31 -31
  17. package/dist/app/platform/on-offline-radio-card.cjs +34 -31
  18. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  19. package/dist/app/platform/on-offline-radio-card.js +71 -71
  20. package/dist/app/platform/report-card.js +31 -31
  21. package/dist/app/platform/reservation-card.cjs +17 -14
  22. package/dist/app/platform/reservation-card.cjs.map +1 -1
  23. package/dist/app/platform/reservation-card.js +72 -72
  24. package/dist/app/platform/session-card.cjs +21 -18
  25. package/dist/app/platform/session-card.cjs.map +1 -1
  26. package/dist/app/platform/session-card.js +74 -74
  27. package/dist/app/platform/session-review-simple-read.js +31 -31
  28. package/dist/app/platform/userInfos/coaching-customer-info/index.js +36 -36
  29. package/dist/app/platform/userInfos/coaching-customer-info/large.js +31 -31
  30. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +31 -31
  31. package/dist/app/platform/userInfos/coaching-customer-info/small.js +31 -31
  32. package/dist/app/platform/userInfos/session-user-info-detail.js +31 -31
  33. package/dist/app/platform/userInfos/utils.js +30 -30
  34. package/dist/atoms/bullet-text.js +2 -2
  35. package/dist/atoms/dialog.js +2 -2
  36. package/dist/atoms/field-error-wrapper.js +2 -2
  37. package/dist/atoms/index.js +62 -62
  38. package/dist/atoms/list.js +2 -2
  39. package/dist/atoms/pagination.js +3 -3
  40. package/dist/chunk-2QFLNAGL.js +100 -0
  41. package/dist/chunk-2QFLNAGL.js.map +1 -0
  42. package/dist/chunk-3FKAH2RB.js +105 -0
  43. package/dist/chunk-3FKAH2RB.js.map +1 -0
  44. package/dist/chunk-3OCAVV5Z.js +151 -0
  45. package/dist/chunk-3OCAVV5Z.js.map +1 -0
  46. package/dist/chunk-3PE6OFB3.js +70 -0
  47. package/dist/chunk-3PE6OFB3.js.map +1 -0
  48. package/dist/chunk-3QNIJCKK.js +98 -0
  49. package/dist/chunk-3QNIJCKK.js.map +1 -0
  50. package/dist/chunk-4OFVNWKB.js +100 -0
  51. package/dist/chunk-4OFVNWKB.js.map +1 -0
  52. package/dist/chunk-4SSWZQPC.js +89 -0
  53. package/dist/chunk-4SSWZQPC.js.map +1 -0
  54. package/dist/chunk-5JUYOJVM.js +77 -0
  55. package/dist/chunk-5JUYOJVM.js.map +1 -0
  56. package/dist/chunk-5SECMWKA.js +196 -0
  57. package/dist/chunk-5SECMWKA.js.map +1 -0
  58. package/dist/chunk-65FJZWXV.js +49 -0
  59. package/dist/chunk-65FJZWXV.js.map +1 -0
  60. package/dist/chunk-6MQMVYEP.js +30 -0
  61. package/dist/chunk-6MQMVYEP.js.map +1 -0
  62. package/dist/chunk-7UUHYDMJ.js +43 -0
  63. package/dist/chunk-7UUHYDMJ.js.map +1 -0
  64. package/dist/chunk-B5W5HY62.js +196 -0
  65. package/dist/chunk-B5W5HY62.js.map +1 -0
  66. package/dist/chunk-B63TOIOA.js +29 -0
  67. package/dist/chunk-B63TOIOA.js.map +1 -0
  68. package/dist/chunk-BXD634IB.js +196 -0
  69. package/dist/chunk-BXD634IB.js.map +1 -0
  70. package/dist/chunk-DTUYT5S2.js +98 -0
  71. package/dist/chunk-DTUYT5S2.js.map +1 -0
  72. package/dist/chunk-EI232M7E.js +196 -0
  73. package/dist/chunk-EI232M7E.js.map +1 -0
  74. package/dist/chunk-EVZDBCE5.js +196 -0
  75. package/dist/chunk-EVZDBCE5.js.map +1 -0
  76. package/dist/chunk-FDJPEXOU.js +222 -0
  77. package/dist/chunk-FDJPEXOU.js.map +1 -0
  78. package/dist/chunk-FGBFER5X.js +196 -0
  79. package/dist/chunk-FGBFER5X.js.map +1 -0
  80. package/dist/chunk-FNRYQLCC.js +64 -0
  81. package/dist/chunk-FNRYQLCC.js.map +1 -0
  82. package/dist/chunk-G7EN5QQR.js +64 -0
  83. package/dist/chunk-G7EN5QQR.js.map +1 -0
  84. package/dist/chunk-GDCDEPJO.js +64 -0
  85. package/dist/chunk-GDCDEPJO.js.map +1 -0
  86. package/dist/chunk-I4OEBZDH.js +64 -0
  87. package/dist/chunk-I4OEBZDH.js.map +1 -0
  88. package/dist/chunk-I5NKMQOT.js +64 -0
  89. package/dist/chunk-I5NKMQOT.js.map +1 -0
  90. package/dist/chunk-J5IKAPJM.js +69 -0
  91. package/dist/chunk-J5IKAPJM.js.map +1 -0
  92. package/dist/chunk-JJQM3MW3.js +98 -0
  93. package/dist/chunk-JJQM3MW3.js.map +1 -0
  94. package/dist/chunk-JKJUBJ65.js +70 -0
  95. package/dist/chunk-JKJUBJ65.js.map +1 -0
  96. package/dist/chunk-KLIEFXWN.js +100 -0
  97. package/dist/chunk-KLIEFXWN.js.map +1 -0
  98. package/dist/chunk-LVZSTDXB.js +64 -0
  99. package/dist/chunk-LVZSTDXB.js.map +1 -0
  100. package/dist/chunk-NDC72OWR.js +37 -0
  101. package/dist/chunk-NDC72OWR.js.map +1 -0
  102. package/dist/chunk-NMGLSEZ3.js +152 -0
  103. package/dist/chunk-NMGLSEZ3.js.map +1 -0
  104. package/dist/chunk-NMKIFFKE.js +63 -0
  105. package/dist/chunk-NMKIFFKE.js.map +1 -0
  106. package/dist/chunk-OX4OPOPI.js +82 -0
  107. package/dist/chunk-OX4OPOPI.js.map +1 -0
  108. package/dist/chunk-POFUBAXM.js +77 -0
  109. package/dist/chunk-POFUBAXM.js.map +1 -0
  110. package/dist/chunk-PSDF4NMN.js +89 -0
  111. package/dist/chunk-PSDF4NMN.js.map +1 -0
  112. package/dist/chunk-QBBF5V24.js +70 -0
  113. package/dist/chunk-QBBF5V24.js.map +1 -0
  114. package/dist/chunk-QPTWBPAQ.js +87 -0
  115. package/dist/chunk-QPTWBPAQ.js.map +1 -0
  116. package/dist/chunk-R7NTFLYB.js +98 -0
  117. package/dist/chunk-R7NTFLYB.js.map +1 -0
  118. package/dist/chunk-RAK5LEBO.js +70 -0
  119. package/dist/chunk-RAK5LEBO.js.map +1 -0
  120. package/dist/chunk-RWXNQPE7.js +151 -0
  121. package/dist/chunk-RWXNQPE7.js.map +1 -0
  122. package/dist/chunk-SGJFPJMV.js +100 -0
  123. package/dist/chunk-SGJFPJMV.js.map +1 -0
  124. package/dist/chunk-SYUWHIFX.js +98 -0
  125. package/dist/chunk-SYUWHIFX.js.map +1 -0
  126. package/dist/chunk-TDBCQSTJ.js +61 -0
  127. package/dist/chunk-TDBCQSTJ.js.map +1 -0
  128. package/dist/chunk-TGCLWLPY.js +51 -0
  129. package/dist/chunk-TGCLWLPY.js.map +1 -0
  130. package/dist/chunk-U7MPO7V5.js +64 -0
  131. package/dist/chunk-U7MPO7V5.js.map +1 -0
  132. package/dist/chunk-UFWZAT6E.js +89 -0
  133. package/dist/chunk-UFWZAT6E.js.map +1 -0
  134. package/dist/chunk-VN7IU4XW.js +64 -0
  135. package/dist/chunk-VN7IU4XW.js.map +1 -0
  136. package/dist/chunk-W3NTNHA4.js +196 -0
  137. package/dist/chunk-W3NTNHA4.js.map +1 -0
  138. package/dist/chunk-XDPRIBTV.js +101 -0
  139. package/dist/chunk-XDPRIBTV.js.map +1 -0
  140. package/dist/chunk-XU7H43IG.js +196 -0
  141. package/dist/chunk-XU7H43IG.js.map +1 -0
  142. package/dist/chunk-ZFWZAZPG.js +153 -0
  143. package/dist/chunk-ZFWZAZPG.js.map +1 -0
  144. package/dist/context/index.js +5 -5
  145. package/dist/index.cjs +136 -89
  146. package/dist/index.cjs.map +1 -1
  147. package/dist/index.css +5 -3
  148. package/dist/index.js +144 -144
  149. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +18 -18
  150. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +4 -4
  151. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +11 -11
  152. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +2 -2
  153. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +3 -3
  154. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +2 -2
  155. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +6 -6
  156. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +5 -5
  157. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +5 -5
  158. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +5 -5
  159. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +4 -4
  160. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +21 -21
  161. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +6 -6
  162. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
  163. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +4 -4
  164. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
  165. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +24 -24
  166. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
  167. package/dist/molecules/curriculumV2/CurriculumContents/index.js +28 -28
  168. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +2 -2
  169. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +4 -4
  170. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs +54 -17
  171. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
  172. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +8 -8
  173. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +5 -5
  174. package/dist/molecules/curriculumV2/curriculum-context.cjs +29 -21
  175. package/dist/molecules/curriculumV2/curriculum-context.cjs.map +1 -1
  176. package/dist/molecules/curriculumV2/curriculum-context.d.cts +7 -1
  177. package/dist/molecules/curriculumV2/curriculum-context.d.ts +7 -1
  178. package/dist/molecules/curriculumV2/curriculum-context.js +1 -1
  179. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
  180. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +5 -5
  181. package/dist/molecules/curriculumV2/curriculum-v2-layout.js +2 -2
  182. package/dist/molecules/curriculumV2/index.cjs +85 -38
  183. package/dist/molecules/curriculumV2/index.cjs.map +1 -1
  184. package/dist/molecules/curriculumV2/index.js +35 -35
  185. package/dist/molecules/date-picker/date-picker-button.js +6 -6
  186. package/dist/molecules/date-picker/index.js +5 -5
  187. package/dist/molecules/download-card.js +2 -2
  188. package/dist/molecules/dynamic-field.js +5 -5
  189. package/dist/molecules/dynamic-form.js +6 -6
  190. package/dist/molecules/expand-table/index.js +5 -5
  191. package/dist/molecules/force-refresh.js +2 -2
  192. package/dist/molecules/ghost-post.js +4 -4
  193. package/dist/molecules/index.cjs +115 -68
  194. package/dist/molecules/index.cjs.map +1 -1
  195. package/dist/molecules/index.js +75 -75
  196. package/dist/molecules/learning-post.js +6 -6
  197. package/dist/molecules/navigation.js +3 -3
  198. package/dist/molecules/one-on-one-guide-list.js +3 -3
  199. package/dist/molecules/stepper.js +4 -4
  200. package/dist/molecules/tag-selector.js +5 -5
  201. package/package.json +1 -1
  202. package/src/molecules/curriculumV2/CurriculumSidebar/index.tsx +47 -13
  203. package/src/molecules/curriculumV2/curriculum-context.tsx +62 -39
@@ -0,0 +1,87 @@
1
+ import {
2
+ ReviewQuestionContentHeader
3
+ } from "./chunk-7UUHYDMJ.js";
4
+ import {
5
+ TextArea
6
+ } from "./chunk-5XYPLDI5.js";
7
+ import {
8
+ Grid
9
+ } from "./chunk-EGEQY3KT.js";
10
+ import {
11
+ Box
12
+ } from "./chunk-4Y5BEXVN.js";
13
+ import {
14
+ Typo
15
+ } from "./chunk-PMJIFLDT.js";
16
+ import {
17
+ Callout
18
+ } from "./chunk-B6XJN6EC.js";
19
+ import {
20
+ Card
21
+ } from "./chunk-RP2RGCAW.js";
22
+ import {
23
+ BellIcon
24
+ } from "./chunk-W5TPOFOO.js";
25
+
26
+ // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx
27
+ import { jsx, jsxs } from "react/jsx-runtime";
28
+ function ReviewQuestionText(props) {
29
+ const { question, answer, onChange } = props;
30
+ const minLengthNotMet = question.minLength && answer.length < question.minLength;
31
+ const remainingLength = question.minLength && answer.length < question.minLength ? question.minLength - answer.length : 0;
32
+ return /* @__PURE__ */ jsx(
33
+ Card,
34
+ {
35
+ size: "2",
36
+ style: {
37
+ width: "100%",
38
+ height: "100%"
39
+ },
40
+ children: /* @__PURE__ */ jsxs(Grid, { height: "100%", rows: "1fr auto", children: [
41
+ /* @__PURE__ */ jsxs(Grid, { height: "100%", rows: "auto 1fr", width: "100%", children: [
42
+ /* @__PURE__ */ jsx(
43
+ ReviewQuestionContentHeader,
44
+ {
45
+ icon: question.icon,
46
+ question: question.question,
47
+ title: question.title,
48
+ type: question.type
49
+ }
50
+ ),
51
+ /* @__PURE__ */ jsx(
52
+ TextArea,
53
+ {
54
+ mt: "2",
55
+ onChange: (e) => {
56
+ onChange(e.target.value);
57
+ },
58
+ placeholder: question.placeholder,
59
+ value: answer
60
+ }
61
+ )
62
+ ] }),
63
+ minLengthNotMet ? /* @__PURE__ */ jsxs(Box, { mt: "2", children: [
64
+ /* @__PURE__ */ jsx(Typo, { align: "right", as: "p", color: "red", variant: "caption", children: `${remainingLength}\uC790 \uB354 \uC791\uC131\uD574\uC8FC\uC138\uC694.` }),
65
+ question.minLengthInfoMessage ? /* @__PURE__ */ jsxs(
66
+ Callout.Root,
67
+ {
68
+ color: "iris",
69
+ mt: "2",
70
+ style: { alignItems: "center" },
71
+ children: [
72
+ /* @__PURE__ */ jsx(Callout.Icon, { children: /* @__PURE__ */ jsx(BellIcon, {}) }),
73
+ /* @__PURE__ */ jsx(Callout.Text, { children: /* @__PURE__ */ jsx(Typo, { as: "p", variant: "caption", children: question.minLengthInfoMessage }) })
74
+ ]
75
+ }
76
+ ) : null
77
+ ] }) : null
78
+ ] })
79
+ }
80
+ );
81
+ }
82
+ var review_question_text_default = ReviewQuestionText;
83
+
84
+ export {
85
+ review_question_text_default
86
+ };
87
+ //# sourceMappingURL=chunk-QPTWBPAQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@/atoms/box';\nimport { Card } from '@/atoms/card';\nimport { Grid } from '@/atoms/grid';\nimport { TextArea } from '@/atoms/text-area';\nimport { Typo } from '@/atoms/typo';\nimport { BellIcon } from '@/icon';\nimport { type CurriculumReviewQuestionText } from '@/types/curriculumContents.type';\nimport { Callout } from '@/atoms/call-out';\nimport { ReviewQuestionContentHeader } from './review-comp';\n\ninterface ReviewQuestionTextProps {\n question: CurriculumReviewQuestionText;\n answer: string;\n error?: string;\n onChange: (value: string) => void;\n}\n\nfunction ReviewQuestionText(props: ReviewQuestionTextProps): React.ReactNode {\n const { question, answer, onChange } = props;\n\n const minLengthNotMet =\n question.minLength && answer.length < question.minLength;\n\n const remainingLength =\n question.minLength && answer.length < question.minLength\n ? question.minLength - answer.length\n : 0;\n\n return (\n <Card\n size=\"2\"\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n <Grid height=\"100%\" rows=\"1fr auto\">\n <Grid height=\"100%\" rows=\"auto 1fr\" width=\"100%\">\n <ReviewQuestionContentHeader\n icon={question.icon}\n question={question.question}\n title={question.title}\n type={question.type}\n />\n\n <TextArea\n mt=\"2\"\n onChange={(e) => {\n onChange(e.target.value);\n }}\n placeholder={question.placeholder}\n value={answer}\n />\n </Grid>\n {minLengthNotMet ? (\n <Box mt=\"2\">\n <Typo align=\"right\" as=\"p\" color=\"red\" variant=\"caption\">\n {`${remainingLength}자 더 작성해주세요.`}\n </Typo>\n {question.minLengthInfoMessage ? (\n <Callout.Root\n color=\"iris\"\n mt=\"2\"\n style={{ alignItems: 'center' }}\n >\n <Callout.Icon>\n <BellIcon />\n </Callout.Icon>\n <Callout.Text>\n <Typo as=\"p\" variant=\"caption\">\n {question.minLengthInfoMessage}\n </Typo>\n </Callout.Text>\n </Callout.Root>\n ) : null}\n </Box>\n ) : null}\n </Grid>\n </Card>\n );\n}\n\nexport default ReviewQuestionText;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsCQ,SACE,KADF;AApBR,SAAS,mBAAmB,OAAiD;AAC3E,QAAM,EAAE,UAAU,QAAQ,SAAS,IAAI;AAEvC,QAAM,kBACJ,SAAS,aAAa,OAAO,SAAS,SAAS;AAEjD,QAAM,kBACJ,SAAS,aAAa,OAAO,SAAS,SAAS,YAC3C,SAAS,YAAY,OAAO,SAC5B;AAEN,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MAEA,+BAAC,QAAK,QAAO,QAAO,MAAK,YACvB;AAAA,6BAAC,QAAK,QAAO,QAAO,MAAK,YAAW,OAAM,QACxC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,SAAS;AAAA,cACf,UAAU,SAAS;AAAA,cACnB,OAAO,SAAS;AAAA,cAChB,MAAM,SAAS;AAAA;AAAA,UACjB;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,UAAU,CAAC,MAAM;AACf,yBAAS,EAAE,OAAO,KAAK;AAAA,cACzB;AAAA,cACA,aAAa,SAAS;AAAA,cACtB,OAAO;AAAA;AAAA,UACT;AAAA,WACF;AAAA,QACC,kBACC,qBAAC,OAAI,IAAG,KACN;AAAA,8BAAC,QAAK,OAAM,SAAQ,IAAG,KAAI,OAAM,OAAM,SAAQ,WAC5C,aAAG,eAAe,uDACrB;AAAA,UACC,SAAS,uBACR;AAAA,YAAC,QAAQ;AAAA,YAAR;AAAA,cACC,OAAM;AAAA,cACN,IAAG;AAAA,cACH,OAAO,EAAE,YAAY,SAAS;AAAA,cAE9B;AAAA,oCAAC,QAAQ,MAAR,EACC,8BAAC,YAAS,GACZ;AAAA,gBACA,oBAAC,QAAQ,MAAR,EACC,8BAAC,QAAK,IAAG,KAAI,SAAQ,WAClB,mBAAS,sBACZ,GACF;AAAA;AAAA;AAAA,UACF,IACE;AAAA,WACN,IACE;AAAA,SACN;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,+BAAQ;","names":[]}
@@ -0,0 +1,98 @@
1
+ import {
2
+ sidebar_item_default
3
+ } from "./chunk-KTUCYAG7.js";
4
+ import {
5
+ useCurriculumContext
6
+ } from "./chunk-ZFWZAZPG.js";
7
+ import {
8
+ Tabs
9
+ } from "./chunk-5ZITU5L7.js";
10
+ import {
11
+ Grid
12
+ } from "./chunk-EGEQY3KT.js";
13
+ import {
14
+ Box
15
+ } from "./chunk-4Y5BEXVN.js";
16
+
17
+ // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
18
+ import { useMemo } from "react";
19
+ import { jsx, jsxs } from "react/jsx-runtime";
20
+ var TAB_LIST = [
21
+ {
22
+ label: "\uAC15\uC758 \uBAA9\uCC28",
23
+ value: "curriculum"
24
+ }
25
+ ];
26
+ var TABS_LIST_STYLE = {
27
+ padding: "0 var(--space-3)"
28
+ };
29
+ var TABS_CONTENT_STYLE = {
30
+ position: "absolute",
31
+ height: "100%",
32
+ width: "100%"
33
+ };
34
+ function CurriculumSidebar() {
35
+ const {
36
+ curriculum,
37
+ selectedIndex,
38
+ setSelectedIndex,
39
+ scrollAreaRef,
40
+ curriculumCompleteMap,
41
+ customTabs
42
+ } = useCurriculumContext();
43
+ const list = curriculum.contents.list;
44
+ const tabList = useMemo(() => {
45
+ return [...TAB_LIST, ...customTabs != null ? customTabs : []];
46
+ }, [customTabs]);
47
+ return /* @__PURE__ */ jsx(Tabs.Root, { asChild: true, defaultValue: TAB_LIST[0].value, children: /* @__PURE__ */ jsxs(Grid, { height: "100%", overflowY: "auto", rows: "auto 1fr ", width: "100%", children: [
48
+ /* @__PURE__ */ jsx(Tabs.List, { style: TABS_LIST_STYLE, children: tabList.map((tab) => /* @__PURE__ */ jsx(Tabs.Trigger, { value: tab.value, children: tab.label }, tab.value)) }),
49
+ /* @__PURE__ */ jsxs(
50
+ Box,
51
+ {
52
+ height: "100%",
53
+ overflowY: "auto",
54
+ position: "relative",
55
+ ref: scrollAreaRef,
56
+ width: "100%",
57
+ children: [
58
+ /* @__PURE__ */ jsxs(
59
+ Tabs.Content,
60
+ {
61
+ style: TABS_CONTENT_STYLE,
62
+ value: TAB_LIST[0].value,
63
+ children: [
64
+ list.map((item, index) => /* @__PURE__ */ jsx(
65
+ sidebar_item_default,
66
+ {
67
+ done: curriculumCompleteMap[item.uuid],
68
+ index,
69
+ item,
70
+ selectedIndex,
71
+ setSelectedIndex
72
+ },
73
+ item.uuid
74
+ )),
75
+ /* @__PURE__ */ jsx(Box, { height: "150px" })
76
+ ]
77
+ },
78
+ TAB_LIST[0].value
79
+ ),
80
+ customTabs == null ? void 0 : customTabs.map((tab) => /* @__PURE__ */ jsx(
81
+ Tabs.Content,
82
+ {
83
+ style: TABS_CONTENT_STYLE,
84
+ value: tab.value,
85
+ children: tab.content
86
+ },
87
+ tab.value
88
+ ))
89
+ ]
90
+ }
91
+ )
92
+ ] }) });
93
+ }
94
+
95
+ export {
96
+ CurriculumSidebar
97
+ };
98
+ //# sourceMappingURL=chunk-R7NTFLYB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/curriculumV2/CurriculumSidebar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Box } from '@/atoms/box';\nimport { Grid } from '@/atoms/grid';\nimport { Tabs } from '@/atoms/tabs';\nimport { useCurriculumContext } from '../curriculum-context';\nimport SidebarItem from './sidebar-item';\n\nconst TAB_LIST = [\n {\n label: '강의 목차',\n value: 'curriculum',\n },\n];\n\nconst TABS_LIST_STYLE: React.CSSProperties = {\n padding: '0 var(--space-3)',\n};\n\nconst TABS_CONTENT_STYLE: React.CSSProperties = {\n position: 'absolute',\n height: '100%',\n width: '100%',\n};\n\n\nexport function CurriculumSidebar(): React.ReactNode {\n const {\n curriculum,\n selectedIndex,\n setSelectedIndex,\n scrollAreaRef,\n curriculumCompleteMap,\n customTabs,\n } = useCurriculumContext();\n const list = curriculum.contents.list;\n\n const tabList = useMemo(() => {\n return [...TAB_LIST, ...(customTabs ?? [])];\n }, [customTabs]);\n\n return (\n <Tabs.Root asChild defaultValue={TAB_LIST[0].value}>\n <Grid height=\"100%\" overflowY=\"auto\" rows=\"auto 1fr \" width=\"100%\">\n <Tabs.List style={TABS_LIST_STYLE}>\n {tabList.map((tab) => (\n <Tabs.Trigger key={tab.value} value={tab.value}>\n {tab.label}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n <Box\n height=\"100%\"\n overflowY=\"auto\"\n position=\"relative\"\n ref={scrollAreaRef}\n width=\"100%\"\n >\n <Tabs.Content\n key={TAB_LIST[0].value}\n style={TABS_CONTENT_STYLE}\n value={TAB_LIST[0].value}\n >\n {list.map((item, index) => (\n <SidebarItem\n done={curriculumCompleteMap[item.uuid]}\n index={index}\n item={item}\n key={item.uuid}\n selectedIndex={selectedIndex}\n setSelectedIndex={setSelectedIndex}\n />\n ))}\n <Box height=\"150px\" />\n </Tabs.Content>\n {customTabs?.map((tab) => (\n <Tabs.Content\n key={tab.value}\n style={TABS_CONTENT_STYLE}\n value={tab.value}\n >\n {tab.content}\n </Tabs.Content>\n ))}\n </Box>\n </Grid>\n </Tabs.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAgB,eAAe;AA6CnB,cAYF,YAZE;AAtCZ,IAAM,WAAW;AAAA,EACf;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAEA,IAAM,kBAAuC;AAAA,EAC3C,SAAS;AACX;AAEA,IAAM,qBAA0C;AAAA,EAC9C,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AACT;AAGO,SAAS,oBAAqC;AACnD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,qBAAqB;AACzB,QAAM,OAAO,WAAW,SAAS;AAEjC,QAAM,UAAU,QAAQ,MAAM;AAC5B,WAAO,CAAC,GAAG,UAAU,GAAI,kCAAc,CAAC,CAAE;AAAA,EAC5C,GAAG,CAAC,UAAU,CAAC;AAEf,SACE,oBAAC,KAAK,MAAL,EAAU,SAAO,MAAC,cAAc,SAAS,CAAC,EAAE,OAC3C,+BAAC,QAAK,QAAO,QAAO,WAAU,QAAO,MAAK,aAAY,OAAM,QAC1D;AAAA,wBAAC,KAAK,MAAL,EAAU,OAAO,iBACf,kBAAQ,IAAI,CAAC,QACZ,oBAAC,KAAK,SAAL,EAA6B,OAAO,IAAI,OACtC,cAAI,SADY,IAAI,KAEvB,CACD,GACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,QAAO;AAAA,QACP,WAAU;AAAA,QACV,UAAS;AAAA,QACT,KAAK;AAAA,QACL,OAAM;AAAA,QAEN;AAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cAEC,OAAO;AAAA,cACP,OAAO,SAAS,CAAC,EAAE;AAAA,cAElB;AAAA,qBAAK,IAAI,CAAC,MAAM,UACf;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAM,sBAAsB,KAAK,IAAI;AAAA,oBACrC;AAAA,oBACA;AAAA,oBAEA;AAAA,oBACA;AAAA;AAAA,kBAFK,KAAK;AAAA,gBAGZ,CACD;AAAA,gBACD,oBAAC,OAAI,QAAO,SAAQ;AAAA;AAAA;AAAA,YAdf,SAAS,CAAC,EAAE;AAAA,UAenB;AAAA,UACC,yCAAY,IAAI,CAAC,QAChB;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cAEC,OAAO;AAAA,cACP,OAAO,IAAI;AAAA,cAEV,cAAI;AAAA;AAAA,YAJA,IAAI;AAAA,UAKX;AAAA;AAAA;AAAA,IAEJ;AAAA,KACF,GACF;AAEJ;","names":[]}
@@ -0,0 +1,70 @@
1
+ import {
2
+ useCurriculumContext
3
+ } from "./chunk-ZFWZAZPG.js";
4
+ import {
5
+ Flex
6
+ } from "./chunk-25HMMI7R.js";
7
+ import {
8
+ Button
9
+ } from "./chunk-ZVDAEY5Q.js";
10
+ import {
11
+ ResetIcon
12
+ } from "./chunk-W5TPOFOO.js";
13
+ import {
14
+ Typo
15
+ } from "./chunk-PMJIFLDT.js";
16
+
17
+ // src/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.tsx
18
+ import { useMemo } from "react";
19
+ import { jsx, jsxs } from "react/jsx-runtime";
20
+ function CurriculumAiTraning({
21
+ item
22
+ }) {
23
+ const { title, description, buttonTitle } = item;
24
+ const { curriculumCompleteMap, onActionButtonClick } = useCurriculumContext();
25
+ const done = useMemo(() => {
26
+ return Boolean(curriculumCompleteMap[item.uuid]);
27
+ }, [curriculumCompleteMap, item.uuid]);
28
+ const bgColor = done ? "var(--color-panel-solid)" : void 0;
29
+ return /* @__PURE__ */ jsxs(
30
+ Flex,
31
+ {
32
+ align: "center",
33
+ direction: "column",
34
+ height: "100%",
35
+ justify: "center",
36
+ style: {
37
+ backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_ai_bg.png)`,
38
+ backgroundPosition: "center",
39
+ backgroundSize: "cover",
40
+ backgroundRepeat: "no-repeat"
41
+ },
42
+ width: "100%",
43
+ children: [
44
+ /* @__PURE__ */ jsx(Typo, { color: "gray", weight: "bold", children: title }),
45
+ /* @__PURE__ */ jsx(Typo, { align: "center", as: "p", color: "gray", children: description }),
46
+ /* @__PURE__ */ jsxs(
47
+ Button,
48
+ {
49
+ mt: "3",
50
+ onClick: () => {
51
+ onActionButtonClick(item);
52
+ },
53
+ style: { minWidth: 232, backgroundColor: bgColor },
54
+ variant: done ? "outline" : "solid",
55
+ children: [
56
+ done ? "\uB2E4\uC2DC \uC5F0\uC2B5\uD558\uAE30" : buttonTitle || "\uC2DC\uC791\uD558\uAE30",
57
+ done ? /* @__PURE__ */ jsx(ResetIcon, {}) : null
58
+ ]
59
+ }
60
+ )
61
+ ]
62
+ }
63
+ );
64
+ }
65
+ var curriculum_ai_traning_default = CurriculumAiTraning;
66
+
67
+ export {
68
+ curriculum_ai_traning_default
69
+ };
70
+ //# sourceMappingURL=chunk-RAK5LEBO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport type { CurriculumAiTrainingContents } from '@/types/curriculumContents.type';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\nimport { ResetIcon } from '@/icon';\nimport { useCurriculumContext } from '../curriculum-context';\n\ninterface CurriculumAiTraningProps {\n item: CurriculumAiTrainingContents;\n}\n\nfunction CurriculumAiTraning({\n item,\n}: CurriculumAiTraningProps): React.ReactNode {\n const { title, description, buttonTitle } = item;\n const { curriculumCompleteMap, onActionButtonClick } = useCurriculumContext();\n\n const done = useMemo(() => {\n return Boolean(curriculumCompleteMap[item.uuid]);\n }, [curriculumCompleteMap, item.uuid]);\n\n const bgColor= done ? 'var(--color-panel-solid)' : undefined;\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n style={{\n backgroundImage: `url(https://tipp-coaching-live.s3.ap-northeast-2.amazonaws.com/images/curriculum_ai_bg.png)`,\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n }}\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {title}\n </Typo>\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n\n <Button\n mt=\"3\"\n onClick={() => { onActionButtonClick(item); }}\n style={{ minWidth: 232, backgroundColor: bgColor }}\n variant={done ? 'outline' : 'solid'}\n >\n {done ? '다시 연습하기' : buttonTitle || '시작하기'}\n {done ? <ResetIcon/> : null}\n </Button>\n \n </Flex>\n );\n}\n\nexport default CurriculumAiTraning;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAgB,eAAe;AAsCzB,cAOA,YAPA;AA1BN,SAAS,oBAAoB;AAAA,EAC3B;AACF,GAA8C;AAC5C,QAAM,EAAE,OAAO,aAAa,YAAY,IAAI;AAC5C,QAAM,EAAE,uBAAuB,oBAAoB,IAAI,qBAAqB;AAE5E,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO,QAAQ,sBAAsB,KAAK,IAAI,CAAC;AAAA,EACjD,GAAG,CAAC,uBAAuB,KAAK,IAAI,CAAC;AAErC,QAAM,UAAU,OAAO,6BAA6B;AAEpD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,WAAU;AAAA,MACV,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,MACpB;AAAA,MACA,OAAM;AAAA,MAEN;AAAA,4BAAC,QAAK,OAAM,QAAO,QAAO,QACvB,iBACH;AAAA,QACA,oBAAC,QAAK,OAAM,UAAS,IAAG,KAAI,OAAM,QAC/B,uBACH;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,SAAS,MAAM;AAAE,kCAAoB,IAAI;AAAA,YAAG;AAAA,YAC5C,OAAO,EAAE,UAAU,KAAK,iBAAiB,QAAQ;AAAA,YACjD,SAAS,OAAO,YAAY;AAAA,YAE3B;AAAA,qBAAO,0CAAY,eAAe;AAAA,cAClC,OAAO,oBAAC,aAAS,IAAK;AAAA;AAAA;AAAA,QACzB;AAAA;AAAA;AAAA,EAEF;AAEJ;AAEA,IAAO,gCAAQ;","names":[]}
@@ -0,0 +1,151 @@
1
+ import {
2
+ useCurriculumReviewContext
3
+ } from "./chunk-GMKRNFH5.js";
4
+ import {
5
+ getCurriculumIcon,
6
+ getCurriculumQuestionIconColor,
7
+ getCurriculumQuestionTypeDescription
8
+ } from "./chunk-3FKAH2RB.js";
9
+ import {
10
+ Separator
11
+ } from "./chunk-HYITAA4J.js";
12
+ import {
13
+ Grid
14
+ } from "./chunk-EGEQY3KT.js";
15
+ import {
16
+ Heading
17
+ } from "./chunk-BESTU2AY.js";
18
+ import {
19
+ Box
20
+ } from "./chunk-4Y5BEXVN.js";
21
+ import {
22
+ Typo
23
+ } from "./chunk-PMJIFLDT.js";
24
+ import {
25
+ Flex
26
+ } from "./chunk-25HMMI7R.js";
27
+ import {
28
+ Button
29
+ } from "./chunk-ZVDAEY5Q.js";
30
+ import {
31
+ Badge
32
+ } from "./chunk-U3BQT7ZO.js";
33
+
34
+ // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx
35
+ import { jsx, jsxs } from "react/jsx-runtime";
36
+ var renderPreviewContent = (args) => {
37
+ const { question } = args;
38
+ const Icon = getCurriculumIcon({
39
+ type: question.type,
40
+ icon: question.icon
41
+ });
42
+ const getDescription = () => {
43
+ return [
44
+ getCurriculumQuestionTypeDescription(question.type),
45
+ question.duration ? `${question.duration}\uBD84` : ""
46
+ ].filter(Boolean).join(" | ");
47
+ };
48
+ return /* @__PURE__ */ jsxs(
49
+ Grid,
50
+ {
51
+ columns: "16px 1fr",
52
+ gap: "2",
53
+ px: "4",
54
+ py: "2",
55
+ width: "100%",
56
+ children: [
57
+ /* @__PURE__ */ jsx(Box, { mt: "1", children: /* @__PURE__ */ jsx(Icon, { color: getCurriculumQuestionIconColor(question.type) }) }),
58
+ /* @__PURE__ */ jsxs(Box, { children: [
59
+ /* @__PURE__ */ jsx(Typo, { as: "p", color: "gray", weight: "bold", children: question.title }),
60
+ /* @__PURE__ */ jsx(Typo, { color: "gray", children: getDescription() })
61
+ ] })
62
+ ]
63
+ },
64
+ question.uuid
65
+ );
66
+ };
67
+ var getReviewContentValue = (question, answer) => {
68
+ var _a, _b, _c;
69
+ if (question.type === "question_satisfaction_option") {
70
+ return (_c = (_b = (_a = question.options) == null ? void 0 : _a.find((option) => option.value === Number(answer))) == null ? void 0 : _b.label) != null ? _c : "";
71
+ }
72
+ return answer;
73
+ };
74
+ var renderReviewContent = (args) => {
75
+ const { question, answer } = args;
76
+ const Icon = getCurriculumIcon({
77
+ type: question.type,
78
+ icon: question.icon
79
+ });
80
+ const color = getCurriculumQuestionIconColor(question.type);
81
+ const badgeColor = ["question_radio", "question_satisfaction_option"].includes(question.type) ? "accent" : "neutral";
82
+ const value = getReviewContentValue(question, answer);
83
+ return /* @__PURE__ */ jsxs(
84
+ Grid,
85
+ {
86
+ columns: "16px 1fr",
87
+ gap: "2",
88
+ px: "4",
89
+ py: "2",
90
+ width: "100%",
91
+ children: [
92
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Icon, { color }) }),
93
+ /* @__PURE__ */ jsxs(Box, { children: [
94
+ /* @__PURE__ */ jsx(Typo, { as: "p", color: "gray", mb: "2", weight: "bold", children: question.title }),
95
+ /* @__PURE__ */ jsx(Badge, { color: badgeColor, size: "large", style: { whiteSpace: "break-spaces", lineBreak: "anywhere" }, children: value || "(\uBBF8 \uC751\uB2F5)" })
96
+ ] })
97
+ ]
98
+ },
99
+ question.uuid
100
+ );
101
+ };
102
+ function StartReview({ onStart }) {
103
+ const { curriculum, reviewContents, sectionTitle, done, formik } = useCurriculumReviewContext();
104
+ return /* @__PURE__ */ jsx(
105
+ Flex,
106
+ {
107
+ align: "center",
108
+ direction: "column",
109
+ height: "100%",
110
+ justify: "center",
111
+ width: "100%",
112
+ children: /* @__PURE__ */ jsxs(
113
+ Flex,
114
+ {
115
+ align: "center",
116
+ direction: "column",
117
+ height: "100%",
118
+ justify: "center",
119
+ maxWidth: "650px",
120
+ pb: { initial: "6", sm: "0" },
121
+ pt: { initial: "4", sm: "0" },
122
+ px: { initial: "4", sm: "0" },
123
+ width: "100%",
124
+ children: [
125
+ /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "1", children: curriculum.title }),
126
+ /* @__PURE__ */ jsx(Heading, { variant: "heading3", children: reviewContents.title }),
127
+ /* @__PURE__ */ jsx(Separator, { my: "4", style: { width: 100 } }),
128
+ /* @__PURE__ */ jsxs(Typo, { align: "left", as: "p", color: "gray", mb: "4", children: [
129
+ /* @__PURE__ */ jsx(Typo, { as: "span", weight: "bold", children: sectionTitle }),
130
+ " ",
131
+ /* @__PURE__ */ jsx(Typo, { children: reviewContents.description })
132
+ ] }),
133
+ /* @__PURE__ */ jsx(Box, { mb: "5", overflowY: "auto", width: "100%", children: reviewContents.questions.map((question) => {
134
+ if (done) {
135
+ return renderReviewContent({ question, answer: formik.values.answers[question.uuid] });
136
+ }
137
+ return renderPreviewContent({ question });
138
+ }) }),
139
+ /* @__PURE__ */ jsx(Button, { color: "yellow", onClick: onStart, variant: done ? "outline" : "solid", children: done ? "\uB098\uC758 \uC751\uB2F5 \uC218\uC815\uD558\uAE30" : reviewContents.buttonTitle })
140
+ ]
141
+ }
142
+ )
143
+ }
144
+ );
145
+ }
146
+ var start_review_default = StartReview;
147
+
148
+ export {
149
+ start_review_default
150
+ };
151
+ //# sourceMappingURL=chunk-RWXNQPE7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx"],"sourcesContent":["import React from 'react'; \nimport type { BadgeProps } from '@/atoms/badge';\nimport { Badge } from '@/atoms/badge';\nimport { Box } from '@/atoms/box';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Grid } from '@/atoms/grid';\nimport { Heading } from '@/atoms/heading';\nimport { Separator } from '@/atoms/separator';\nimport { Typo } from '@/atoms/typo';\nimport {\n getCurriculumIcon,\n getCurriculumQuestionIconColor,\n getCurriculumQuestionTypeDescription,\n} from '@/utils/curriculum.utils';\nimport type { ReviewQuestionElement } from '@/types/curriculum.type';\nimport { useCurriculumReviewContext } from './curriculum-review-context';\n\ninterface StartReviewProps {\n onStart: () => void;\n}\n\n\nconst renderPreviewContent = (args: {\n question: ReviewQuestionElement;\n}):React.ReactElement => {\n const { question } = args;\n const Icon = getCurriculumIcon({\n type: question.type,\n icon: question.icon,\n });\n const getDescription = (): string => {\n return [\n getCurriculumQuestionTypeDescription(question.type),\n question.duration ? `${question.duration}분` : '',\n ]\n .filter(Boolean)\n .join(' | ');\n };\n\n return (\n <Grid\n columns=\"16px 1fr\"\n gap=\"2\"\n key={question.uuid}\n px=\"4\"\n py=\"2\"\n width=\"100%\"\n >\n <Box mt=\"1\">\n <Icon color={getCurriculumQuestionIconColor(question.type)} />\n </Box>\n <Box>\n <Typo as=\"p\" color=\"gray\" weight=\"bold\">\n {question.title}\n </Typo>\n <Typo color=\"gray\">{getDescription()}</Typo>\n </Box>\n </Grid>\n );\n};\n\n\nconst getReviewContentValue = (question: ReviewQuestionElement, answer: string): string => {\n if(question.type === 'question_satisfaction_option'){ \n return question.options?.find((option)=>option.value === Number(answer))?.label ?? '';\n }\n return answer\n}\n\n\nconst renderReviewContent = (args: {\n question: ReviewQuestionElement;\n answer: string;\n}):React.ReactElement => {\n const { question, answer } = args;\n const Icon = getCurriculumIcon({\n type: question.type,\n icon: question.icon,\n }); \n\n const color = getCurriculumQuestionIconColor(question.type);\n const badgeColor: BadgeProps['color'] = ['question_radio','question_satisfaction_option'].includes(question.type) ? 'accent' : 'neutral';\n const value = getReviewContentValue(question, answer);\n\n return (\n <Grid\n columns=\"16px 1fr\"\n gap=\"2\"\n key={question.uuid}\n px=\"4\"\n py=\"2\"\n width=\"100%\"\n >\n <Box>\n <Icon color={color} />\n </Box>\n\n <Box>\n <Typo as=\"p\" color=\"gray\" mb=\"2\" weight=\"bold\">{question.title}</Typo>\n <Badge color={badgeColor} size=\"large\" style={{whiteSpace: 'break-spaces', lineBreak: 'anywhere'}}>\n {value || '(미 응답)'}\n </Badge>\n </Box>\n \n </Grid>\n );\n};\n\nfunction StartReview({ onStart }: StartReviewProps): React.ReactNode {\n const { curriculum, reviewContents, sectionTitle, done,formik } =\n useCurriculumReviewContext();\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n width=\"100%\"\n >\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n maxWidth=\"650px\"\n pb={{initial: '6', sm: '0'}}\n pt={{initial: '4', sm: '0'}}\n px={{initial: '4', sm: '0'}}\n width=\"100%\"\n >\n <Typo color=\"gray\" mb=\"1\">{curriculum.title}</Typo>\n <Heading variant=\"heading3\">{reviewContents.title}</Heading>\n <Separator my=\"4\" style={{ width: 100 }} />\n\n <Typo align=\"left\" as=\"p\" color=\"gray\" mb=\"4\">\n <Typo as=\"span\" weight=\"bold\">\n {sectionTitle}\n </Typo>\n {' '}\n <Typo>{reviewContents.description}</Typo>\n </Typo>\n\n <Box mb=\"5\" overflowY=\"auto\" width=\"100%\">\n {reviewContents.questions.map((question)=>{\n if(done){\n return renderReviewContent({ question, answer: formik.values.answers[question.uuid]});\n }\n return renderPreviewContent({ question });\n })}\n </Box>\n <Button color=\"yellow\" onClick={onStart} variant={done ? 'outline' : 'solid'}>\n {done ? '나의 응답 수정하기' : reviewContents.buttonTitle}\n </Button>\n </Flex>\n </Flex>\n );\n}\n\nexport default StartReview;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,100 @@
1
+ import {
2
+ useCurriculumContext
3
+ } from "./chunk-NMGLSEZ3.js";
4
+ import {
5
+ Grid
6
+ } from "./chunk-EGEQY3KT.js";
7
+ import {
8
+ Heading
9
+ } from "./chunk-BESTU2AY.js";
10
+ import {
11
+ IconButton
12
+ } from "./chunk-XK6VEVOK.js";
13
+ import {
14
+ Box
15
+ } from "./chunk-4Y5BEXVN.js";
16
+ import {
17
+ Typo
18
+ } from "./chunk-PMJIFLDT.js";
19
+ import {
20
+ ChevronLeftIcon,
21
+ ChevronRightIcon
22
+ } from "./chunk-W5TPOFOO.js";
23
+
24
+ // src/molecules/curriculumV2/curriculum-sub-nav.tsx
25
+ import { useCallback } from "react";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
27
+ function CurriculumSubNav() {
28
+ const {
29
+ selectedItem,
30
+ selectedSectionTitle,
31
+ hasPrev,
32
+ hasNext,
33
+ selectPrev,
34
+ selectNext,
35
+ scrollNavItem
36
+ } = useCurriculumContext();
37
+ const onClickPrev = useCallback(() => {
38
+ selectPrev((moveIndex) => {
39
+ scrollNavItem(moveIndex.toString());
40
+ });
41
+ }, [selectPrev, scrollNavItem]);
42
+ const onClickNext = useCallback(() => {
43
+ selectNext((moveIndex) => {
44
+ scrollNavItem(moveIndex.toString());
45
+ });
46
+ }, [selectNext, scrollNavItem]);
47
+ return /* @__PURE__ */ jsxs(
48
+ Grid,
49
+ {
50
+ align: "center",
51
+ columns: { initial: "32px 1fr 32px", md: "48px 1fr 48px" },
52
+ pb: { initial: "2", md: "3" },
53
+ px: { initial: "1", md: "2" },
54
+ py: "2",
55
+ rows: "auto",
56
+ children: [
57
+ hasPrev ? /* @__PURE__ */ jsx(
58
+ IconButton,
59
+ {
60
+ color: "gray",
61
+ onClick: onClickPrev,
62
+ size: { initial: "medium", md: "large" },
63
+ variant: "ghost",
64
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, { height: "16px", width: "16px" })
65
+ }
66
+ ) : /* @__PURE__ */ jsx(Box, {}),
67
+ /* @__PURE__ */ jsxs(Box, { width: "100%", children: [
68
+ /* @__PURE__ */ jsx(Box, { display: { initial: "none", md: "block" }, children: /* @__PURE__ */ jsx(Heading, { style: { textOverflow: "ellipsis" }, variant: "heading5", children: selectedItem.title }) }),
69
+ /* @__PURE__ */ jsx(Box, { display: { initial: "block", md: "none" }, children: /* @__PURE__ */ jsx(Typo, { weight: "bold", children: selectedItem.title }) }),
70
+ /* @__PURE__ */ jsx(
71
+ Typo,
72
+ {
73
+ as: "p",
74
+ color: "gray",
75
+ mt: "1",
76
+ style: { textOverflow: "ellipsis" },
77
+ variant: "caption",
78
+ children: selectedSectionTitle == null ? void 0 : selectedSectionTitle.title
79
+ }
80
+ )
81
+ ] }),
82
+ hasNext ? /* @__PURE__ */ jsx(
83
+ IconButton,
84
+ {
85
+ color: "gray",
86
+ onClick: onClickNext,
87
+ size: { initial: "medium", md: "large" },
88
+ variant: "ghost",
89
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, { height: "16px", width: "16px" })
90
+ }
91
+ ) : /* @__PURE__ */ jsx(Box, {})
92
+ ]
93
+ }
94
+ );
95
+ }
96
+
97
+ export {
98
+ CurriculumSubNav
99
+ };
100
+ //# sourceMappingURL=chunk-SGJFPJMV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/curriculumV2/curriculum-sub-nav.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { Box, } from '@/atoms/box';\nimport { Grid } from '@/atoms/grid';\nimport { Heading } from '@/atoms/heading';\nimport { IconButton } from '@/atoms/icon-button';\nimport { Typo } from '@/atoms/typo';\nimport { ChevronLeftIcon, ChevronRightIcon } from '@/icon';\nimport { useCurriculumContext } from './curriculum-context';\n\nexport function CurriculumSubNav(): React.ReactNode {\n const {\n selectedItem,\n selectedSectionTitle,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n scrollNavItem,\n } = useCurriculumContext();\n\n const onClickPrev = useCallback(() => {\n selectPrev((moveIndex) => {\n scrollNavItem(moveIndex.toString());\n });\n }, [selectPrev, scrollNavItem]);\n\n const onClickNext = useCallback(() => {\n selectNext((moveIndex) => {\n scrollNavItem(moveIndex.toString());\n });\n }, [selectNext, scrollNavItem]);\n\n return (\n <Grid\n align=\"center\"\n columns={{ initial: '32px 1fr 32px', md: '48px 1fr 48px' }}\n pb={{ initial: '2', md: '3' }}\n px={{ initial: '1', md: '2' }}\n py=\"2\"\n rows=\"auto\"\n >\n {hasPrev ? (\n <IconButton\n color=\"gray\"\n onClick={onClickPrev}\n size={{ initial: 'medium', md: 'large' }}\n variant=\"ghost\"\n >\n <ChevronLeftIcon height=\"16px\" width=\"16px\" />\n </IconButton>\n ) : (\n <Box />\n )}\n <Box width=\"100%\">\n {/* 데스크탑 타이틀 */}\n <Box display={{ initial: 'none', md: 'block' }}>\n <Heading style={{ textOverflow: 'ellipsis' }} variant=\"heading5\">\n {selectedItem.title}\n </Heading>\n </Box>\n\n {/* 모바일 타이틀 */}\n <Box display={{ initial: 'block', md: 'none' }}>\n <Typo weight=\"bold\">{selectedItem.title}</Typo>\n </Box>\n\n <Typo\n as=\"p\"\n color=\"gray\"\n mt=\"1\"\n style={{ textOverflow: 'ellipsis' }}\n variant=\"caption\"\n >\n {selectedSectionTitle?.title}\n </Typo>\n </Box>\n {hasNext ? (\n <IconButton\n color=\"gray\"\n onClick={onClickNext}\n size={{ initial: 'medium', md: 'large' }}\n variant=\"ghost\"\n >\n <ChevronRightIcon height=\"16px\" width=\"16px\" />\n </IconButton>\n ) : (\n <Box />\n )}\n </Grid>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAgB,mBAAmB;AAgDzB,cAKJ,YALI;AAvCH,SAAS,mBAAoC;AAClD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,qBAAqB;AAEzB,QAAM,cAAc,YAAY,MAAM;AACpC,eAAW,CAAC,cAAc;AACxB,oBAAc,UAAU,SAAS,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,GAAG,CAAC,YAAY,aAAa,CAAC;AAE9B,QAAM,cAAc,YAAY,MAAM;AACpC,eAAW,CAAC,cAAc;AACxB,oBAAc,UAAU,SAAS,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,GAAG,CAAC,YAAY,aAAa,CAAC;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,SAAS,EAAE,SAAS,iBAAiB,IAAI,gBAAgB;AAAA,MACzD,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI;AAAA,MAC5B,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI;AAAA,MAC5B,IAAG;AAAA,MACH,MAAK;AAAA,MAEJ;AAAA,kBACC;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAS;AAAA,YACT,MAAM,EAAE,SAAS,UAAU,IAAI,QAAQ;AAAA,YACvC,SAAQ;AAAA,YAER,8BAAC,mBAAgB,QAAO,QAAO,OAAM,QAAO;AAAA;AAAA,QAC9C,IAEA,oBAAC,OAAI;AAAA,QAEP,qBAAC,OAAI,OAAM,QAET;AAAA,8BAAC,OAAI,SAAS,EAAE,SAAS,QAAQ,IAAI,QAAQ,GAC3C,8BAAC,WAAQ,OAAO,EAAE,cAAc,WAAW,GAAG,SAAQ,YACnD,uBAAa,OAChB,GACF;AAAA,UAGA,oBAAC,OAAI,SAAS,EAAE,SAAS,SAAS,IAAI,OAAO,GAC3C,8BAAC,QAAK,QAAO,QAAQ,uBAAa,OAAM,GAC1C;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,OAAM;AAAA,cACN,IAAG;AAAA,cACH,OAAO,EAAE,cAAc,WAAW;AAAA,cAClC,SAAQ;AAAA,cAEP,uEAAsB;AAAA;AAAA,UACzB;AAAA,WACF;AAAA,QACC,UACC;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAS;AAAA,YACT,MAAM,EAAE,SAAS,UAAU,IAAI,QAAQ;AAAA,YACvC,SAAQ;AAAA,YAER,8BAAC,oBAAiB,QAAO,QAAO,OAAM,QAAO;AAAA;AAAA,QAC/C,IAEA,oBAAC,OAAI;AAAA;AAAA;AAAA,EAET;AAEJ;","names":[]}
@@ -0,0 +1,98 @@
1
+ import {
2
+ sidebar_item_default
3
+ } from "./chunk-4HDV26QV.js";
4
+ import {
5
+ useCurriculumContext
6
+ } from "./chunk-3OCAVV5Z.js";
7
+ import {
8
+ Tabs
9
+ } from "./chunk-5ZITU5L7.js";
10
+ import {
11
+ Grid
12
+ } from "./chunk-EGEQY3KT.js";
13
+ import {
14
+ Box
15
+ } from "./chunk-4Y5BEXVN.js";
16
+
17
+ // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
18
+ import { useMemo } from "react";
19
+ import { jsx, jsxs } from "react/jsx-runtime";
20
+ var TAB_LIST = [
21
+ {
22
+ label: "\uAC15\uC758 \uBAA9\uCC28",
23
+ value: "curriculum"
24
+ }
25
+ ];
26
+ var TABS_LIST_STYLE = {
27
+ padding: "0 var(--space-3)"
28
+ };
29
+ var TABS_CONTENT_STYLE = {
30
+ position: "absolute",
31
+ height: "100%",
32
+ width: "100%"
33
+ };
34
+ function CurriculumSidebar() {
35
+ const {
36
+ curriculum,
37
+ selectedIndex,
38
+ setSelectedIndex,
39
+ scrollAreaRef,
40
+ curriculumCompleteMap,
41
+ customTabs
42
+ } = useCurriculumContext();
43
+ const list = curriculum.contents.list;
44
+ const tabList = useMemo(() => {
45
+ return [...TAB_LIST, ...customTabs != null ? customTabs : []];
46
+ }, [customTabs]);
47
+ return /* @__PURE__ */ jsx(Tabs.Root, { asChild: true, defaultValue: TAB_LIST[0].value, children: /* @__PURE__ */ jsxs(Grid, { height: "100%", overflowY: "auto", rows: "auto 1fr ", width: "100%", children: [
48
+ /* @__PURE__ */ jsx(Tabs.List, { style: TABS_LIST_STYLE, children: tabList.map((tab) => /* @__PURE__ */ jsx(Tabs.Trigger, { value: tab.value, children: tab.label }, tab.value)) }),
49
+ /* @__PURE__ */ jsxs(
50
+ Box,
51
+ {
52
+ height: "100%",
53
+ overflowY: "auto",
54
+ position: "relative",
55
+ ref: scrollAreaRef,
56
+ width: "100%",
57
+ children: [
58
+ /* @__PURE__ */ jsxs(
59
+ Tabs.Content,
60
+ {
61
+ style: TABS_CONTENT_STYLE,
62
+ value: TAB_LIST[0].value,
63
+ children: [
64
+ list.map((item, index) => /* @__PURE__ */ jsx(
65
+ sidebar_item_default,
66
+ {
67
+ done: curriculumCompleteMap[item.uuid],
68
+ index,
69
+ item,
70
+ selectedIndex,
71
+ setSelectedIndex
72
+ },
73
+ item.uuid
74
+ )),
75
+ /* @__PURE__ */ jsx(Box, { height: "150px" })
76
+ ]
77
+ },
78
+ TAB_LIST[0].value
79
+ ),
80
+ customTabs == null ? void 0 : customTabs.map((tab) => /* @__PURE__ */ jsx(
81
+ Tabs.Content,
82
+ {
83
+ style: TABS_CONTENT_STYLE,
84
+ value: tab.value,
85
+ children: tab.content
86
+ },
87
+ tab.value
88
+ ))
89
+ ]
90
+ }
91
+ )
92
+ ] }) });
93
+ }
94
+
95
+ export {
96
+ CurriculumSidebar
97
+ };
98
+ //# sourceMappingURL=chunk-SYUWHIFX.js.map