@edu-tosel/design 1.0.266 → 1.0.267

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 (163) hide show
  1. package/asset/SVG.d.ts +4 -0
  2. package/asset/SVG.js +4 -0
  3. package/asset/SVG.tsx +4 -0
  4. package/asset/svg/MiniClose.d.ts +4 -0
  5. package/asset/svg/MiniClose.js +4 -0
  6. package/asset/svg/MiniClose.tsx +19 -0
  7. package/asset/svg/Search.d.ts +1 -0
  8. package/asset/svg/Search.js +4 -0
  9. package/asset/svg/Search.tsx +24 -0
  10. package/board/design/Header.design.d.ts +1 -1
  11. package/board/design/Header.design.js +12 -3
  12. package/globals.css +7 -2
  13. package/interface/Board.d.ts +11 -1
  14. package/layout/design/Shelf.design.js +2 -2
  15. package/layout/index.d.ts +0 -9
  16. package/layout/index.js +0 -9
  17. package/layout/template/home/Promotion.js +1 -0
  18. package/layout/template/home/Service.js +1 -0
  19. package/layout/template/home/layout/Carousel.js +27 -8
  20. package/layout/template/home/layout/Navigation.js +86 -12
  21. package/package.json +2 -2
  22. package/util/createSearch.d.ts +4 -7
  23. package/util/createSearch.js +208 -24
  24. package/util/index.d.ts +1 -1
  25. package/util/index.js +1 -1
  26. package/version.txt +1 -1
  27. package/widget/template/Input/index.js +8 -0
  28. package/layout/template/About/SectionA.d.ts +0 -1
  29. package/layout/template/About/SectionA.js +0 -51
  30. package/layout/template/About/SectionB.d.ts +0 -2
  31. package/layout/template/About/SectionB.js +0 -55
  32. package/layout/template/About/SectionC.d.ts +0 -1
  33. package/layout/template/About/SectionC.js +0 -35
  34. package/layout/template/About/SectionCCards.d.ts +0 -13
  35. package/layout/template/About/SectionCCards.js +0 -13
  36. package/layout/template/About/SectionCD.d.ts +0 -1
  37. package/layout/template/About/SectionCD.js +0 -15
  38. package/layout/template/About/SectionCLeaf.d.ts +0 -15
  39. package/layout/template/About/SectionCLeaf.js +0 -104
  40. package/layout/template/About/SectionD.d.ts +0 -1
  41. package/layout/template/About/SectionD.js +0 -131
  42. package/layout/template/About/SectionE.d.ts +0 -1
  43. package/layout/template/About/SectionE.js +0 -7
  44. package/layout/template/About/SectionECards.d.ts +0 -1
  45. package/layout/template/About/SectionECards.js +0 -79
  46. package/layout/template/About/SectionF.d.ts +0 -1
  47. package/layout/template/About/SectionF.js +0 -4
  48. package/layout/template/About/SectionG.d.ts +0 -10
  49. package/layout/template/About/SectionG.js +0 -27
  50. package/layout/template/About/index.d.ts +0 -19
  51. package/layout/template/About/index.js +0 -19
  52. package/layout/template/Books/Books.layout.d.ts +0 -1
  53. package/layout/template/Books/Books.layout.js +0 -13
  54. package/layout/template/Books/SectionA.d.ts +0 -2
  55. package/layout/template/Books/SectionA.js +0 -430
  56. package/layout/template/Books/index.d.ts +0 -5
  57. package/layout/template/Books/index.js +0 -5
  58. package/layout/template/MonthlyProgressReport/Layout.d.ts +0 -4
  59. package/layout/template/MonthlyProgressReport/Layout.js +0 -52
  60. package/layout/template/MonthlyProgressReport/Report.d.ts +0 -46
  61. package/layout/template/MonthlyProgressReport/Report.js +0 -124
  62. package/layout/template/MonthlyProgressReport/index.d.ts +0 -8
  63. package/layout/template/MonthlyProgressReport/index.js +0 -7
  64. package/layout/template/Olympiad/Banner.d.ts +0 -1
  65. package/layout/template/Olympiad/Banner.js +0 -31
  66. package/layout/template/Olympiad/Conditions.d.ts +0 -1
  67. package/layout/template/Olympiad/Conditions.js +0 -168
  68. package/layout/template/Olympiad/Features.d.ts +0 -1
  69. package/layout/template/Olympiad/Features.js +0 -44
  70. package/layout/template/Olympiad/Olympiad.layout.d.ts +0 -1
  71. package/layout/template/Olympiad/Olympiad.layout.js +0 -19
  72. package/layout/template/Olympiad/Prizes.d.ts +0 -1
  73. package/layout/template/Olympiad/Prizes.js +0 -49
  74. package/layout/template/Olympiad/Sponsors.d.ts +0 -1
  75. package/layout/template/Olympiad/Sponsors.js +0 -31
  76. package/layout/template/Olympiad/Videoset.d.ts +0 -1
  77. package/layout/template/Olympiad/Videoset.js +0 -71
  78. package/layout/template/Olympiad/index.d.ts +0 -15
  79. package/layout/template/Olympiad/index.js +0 -15
  80. package/layout/template/Regexam/Banner.d.ts +0 -1
  81. package/layout/template/Regexam/Banner.js +0 -183
  82. package/layout/template/Regexam/Evaluation.d.ts +0 -3
  83. package/layout/template/Regexam/Evaluation.js +0 -132
  84. package/layout/template/Regexam/OfflineExam.d.ts +0 -4
  85. package/layout/template/Regexam/OfflineExam.js +0 -204
  86. package/layout/template/Regexam/Regexam.layout.d.ts +0 -1
  87. package/layout/template/Regexam/Regexam.layout.js +0 -13
  88. package/layout/template/Regexam/Types.d.ts +0 -1
  89. package/layout/template/Regexam/Types.js +0 -294
  90. package/layout/template/Regexam/index.d.ts +0 -11
  91. package/layout/template/Regexam/index.js +0 -11
  92. package/layout/template/Transcript/Layout.d.ts +0 -6
  93. package/layout/template/Transcript/Layout.js +0 -52
  94. package/layout/template/Transcript/design/Transcript.d.ts +0 -228
  95. package/layout/template/Transcript/design/Transcript.design.d.ts +0 -13
  96. package/layout/template/Transcript/design/Transcript.design.js +0 -58
  97. package/layout/template/Transcript/design/Transcript.js +0 -181
  98. package/layout/template/Transcript/design/TranscriptAdvanced.design.d.ts +0 -5
  99. package/layout/template/Transcript/design/TranscriptAdvanced.design.js +0 -55
  100. package/layout/template/Transcript/design/atom/CardTitle.d.ts +0 -5
  101. package/layout/template/Transcript/design/atom/CardTitle.js +0 -13
  102. package/layout/template/Transcript/design/atom/CardTitleDivided.d.ts +0 -0
  103. package/layout/template/Transcript/design/atom/CardTitleDivided.js +0 -1
  104. package/layout/template/Transcript/design/atom/GetPartDescriptionFromLevel.d.ts +0 -3
  105. package/layout/template/Transcript/design/atom/GetPartDescriptionFromLevel.js +0 -4
  106. package/layout/template/Transcript/design/atom/GetPartTitleFromLevel.d.ts +0 -3
  107. package/layout/template/Transcript/design/atom/GetPartTitleFromLevel.js +0 -4
  108. package/layout/template/Transcript/design/atom/GetStyleFromLevel.d.ts +0 -2
  109. package/layout/template/Transcript/design/atom/GetStyleFromLevel.js +0 -4
  110. package/layout/template/Transcript/design/atom/LevelToPartDescriptionMap.d.ts +0 -6
  111. package/layout/template/Transcript/design/atom/LevelToPartDescriptionMap.js +0 -95
  112. package/layout/template/Transcript/design/atom/LevelToPartTitleMap.d.ts +0 -6
  113. package/layout/template/Transcript/design/atom/LevelToPartTitleMap.js +0 -95
  114. package/layout/template/Transcript/design/atom/LevelToStyleMap.d.ts +0 -6
  115. package/layout/template/Transcript/design/atom/LevelToStyleMap.js +0 -42
  116. package/layout/template/Transcript/design/atom/PrintBoxStyles.d.ts +0 -4
  117. package/layout/template/Transcript/design/atom/PrintBoxStyles.js +0 -4
  118. package/layout/template/Transcript/design/molecule/BarGraph.d.ts +0 -11
  119. package/layout/template/Transcript/design/molecule/BarGraph.js +0 -81
  120. package/layout/template/Transcript/design/molecule/BarGraphDuo.d.ts +0 -10
  121. package/layout/template/Transcript/design/molecule/BarGraphDuo.js +0 -6
  122. package/layout/template/Transcript/design/molecule/BarGraphMulti.d.ts +0 -11
  123. package/layout/template/Transcript/design/molecule/BarGraphMulti.js +0 -9
  124. package/layout/template/Transcript/design/molecule/CircularGauge.d.ts +0 -10
  125. package/layout/template/Transcript/design/molecule/CircularGauge.js +0 -68
  126. package/layout/template/Transcript/design/molecule/LSWRChart.d.ts +0 -11
  127. package/layout/template/Transcript/design/molecule/LSWRChart.js +0 -44
  128. package/layout/template/Transcript/design/molecule/LevelIndex.d.ts +0 -3
  129. package/layout/template/Transcript/design/molecule/LevelIndex.js +0 -14
  130. package/layout/template/Transcript/design/molecule/MIChart.d.ts +0 -1
  131. package/layout/template/Transcript/design/molecule/MIChart.js +0 -51
  132. package/layout/template/Transcript/design/molecule/OCIChart.d.ts +0 -1
  133. package/layout/template/Transcript/design/molecule/OCIChart.js +0 -60
  134. package/layout/template/Transcript/design/molecule/RadarGraph.d.ts +0 -10
  135. package/layout/template/Transcript/design/molecule/RadarGraph.js +0 -5
  136. package/layout/template/Transcript/design/organism/BarCardCol.d.ts +0 -8
  137. package/layout/template/Transcript/design/organism/BarCardCol.js +0 -30
  138. package/layout/template/Transcript/design/organism/BarCardRow.d.ts +0 -8
  139. package/layout/template/Transcript/design/organism/BarCardRow.js +0 -30
  140. package/layout/template/Transcript/design/organism/HonorCard.d.ts +0 -4
  141. package/layout/template/Transcript/design/organism/HonorCard.js +0 -16
  142. package/layout/template/Transcript/design/organism/IdCard.d.ts +0 -8
  143. package/layout/template/Transcript/design/organism/IdCard.js +0 -64
  144. package/layout/template/Transcript/design/organism/IntelligenceCard.d.ts +0 -12
  145. package/layout/template/Transcript/design/organism/IntelligenceCard.js +0 -39
  146. package/layout/template/Transcript/design/organism/NationalPositionCard.d.ts +0 -4
  147. package/layout/template/Transcript/design/organism/NationalPositionCard.js +0 -14
  148. package/layout/template/Transcript/design/organism/OCICard.d.ts +0 -4
  149. package/layout/template/Transcript/design/organism/OCICard.js +0 -17
  150. package/layout/template/Transcript/design/organism/PerformanceCard.d.ts +0 -5
  151. package/layout/template/Transcript/design/organism/PerformanceCard.js +0 -25
  152. package/layout/template/Transcript/design/organism/RadarCard.d.ts +0 -7
  153. package/layout/template/Transcript/design/organism/RadarCard.js +0 -54
  154. package/layout/template/Transcript/design/organism/ResultGaugeCard.d.ts +0 -7
  155. package/layout/template/Transcript/design/organism/ResultGaugeCard.js +0 -19
  156. package/layout/template/Transcript/design/organism/ScoreCard.d.ts +0 -4
  157. package/layout/template/Transcript/design/organism/ScoreCard.js +0 -11
  158. package/layout/template/Transcript/design/organism/SectionRadarCard.d.ts +0 -8
  159. package/layout/template/Transcript/design/organism/SectionRadarCard.js +0 -42
  160. package/layout/template/Transcript/index.d.ts +0 -11
  161. package/layout/template/Transcript/index.js +0 -9
  162. package/layout/template/Transcript/interface.d.ts +0 -50
  163. package/layout/template/Transcript/interface.js +0 -1
@@ -1,294 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useRef } from "react";
3
- import { cn } from "../../../util";
4
- import { useActionStore } from "../../../store";
5
- import Action from "../Action";
6
- import { ConfirmModal } from "../../../modal";
7
- import { useResponsive, useVisibilityObserver } from "../../../hook";
8
- import urlAsset from "../../../asset/url";
9
- export default function Types() {
10
- const scrollContainerRef = useRef(null);
11
- const cardWidth = 400; // card width
12
- const handleScroll = (direction) => {
13
- if (scrollContainerRef.current) {
14
- const scrollAmount = cardWidth;
15
- const currentScrollLeft = scrollContainerRef.current.scrollLeft;
16
- const newScrollLeft = direction === "left"
17
- ? Math.max(currentScrollLeft - scrollAmount, 0)
18
- : currentScrollLeft + scrollAmount;
19
- scrollContainerRef.current.scrollTo({
20
- left: newScrollLeft,
21
- behavior: "smooth",
22
- });
23
- }
24
- };
25
- const container = {
26
- positions: "relative z-10 group pt-10 md:pt-20",
27
- displays: "flex flex-col min-h-screen w-full max-w-screen",
28
- textstyles: "break-keep antialiased font-pretendard-var",
29
- backgrounds: "bg-gradient-to-tr from-crimson-burgundy to-green-dark",
30
- };
31
- const deckTitlePositioning = {
32
- displays: "flex flex-col justify-center items-start",
33
- sizes: "w-full max-w-6xl ",
34
- };
35
- const deckTitle = {
36
- textstyles: "text-center text-white font-pretendard-bold text-xl xxs:text-2xl lg:text-3xl",
37
- animations: "duration-300",
38
- };
39
- const subTitle = {
40
- textstyles: "text-xs sm:text-sm md:text-base font-pretendard-medium text-white",
41
- animations: "duration-300",
42
- spacings: "mb-10",
43
- };
44
- const cardPositioning = {
45
- displays: "flex flex-nowrap",
46
- sizes: "w-full",
47
- };
48
- const cardWrapper = {
49
- sizes: "w-full overflow-x-auto scroll-smooth scrollbar-hidden scroll-px-[20px]",
50
- display: "flex flex-nowrap vertical-top",
51
- spacings: "px-5 pt-4 md:pt-6 pb-12",
52
- snap: "snap-x snap-mandatory scroll-ms-0",
53
- };
54
- //adjust the responsive right margin of scroller
55
- const cardDeck = {
56
- displays: "inline-flex",
57
- spacings: "gap-5 mr-0 md:mr-[56px] xl:mr-[calc(100vw-1200px)]",
58
- };
59
- const buttonPositioning = {
60
- displays: "hidden flex-row md:flex",
61
- sizes: "w-full h-full",
62
- spacings: "xl:pl-[calc(50vw-600px)] md:pl-[62px] pl-2 pr-2",
63
- positions: "absolute top-0 left-0 justify-between items-center opacity-0 group-hover:opacity-100 duration-300",
64
- hovering: "group pointer-events-none",
65
- };
66
- const hoverButton = {
67
- sizes: "rounded-full w-12 h-12 scale-50 group-hover:scale-100",
68
- animation: "duration-300 ",
69
- test: "bg-gray-medium/20 hover:bg-gray-medium/50 pointer-events-auto backdrop-blur-sm fill-red-500",
70
- };
71
- return (_jsxs("div", { className: cn(container), children: [_jsx("div", { className: "flex justify-center items-center px-5", children: _jsxs("div", { className: cn(deckTitlePositioning), children: [_jsx("div", { className: cn(deckTitle), children: "\uB098\uC5D0\uAC8C \uB9DE\uB294 \uC2DC\uD5D8\uC740?" }), _jsx("div", { className: cn(subTitle), children: "\uD1A0\uC140\uC740 \uB2E4\uC591\uD55C \uBC29\uC2DD\uC73C\uB85C \uC815\uAE30\uC2DC\uD5D8\uACFC \uB3D9\uC77C\uD55C \uC218\uC900\uC758 \uC2DC\uD5D8\uC744 \uC81C\uACF5\uD558\uACE0 \uC788\uC5B4\uC694." }), _jsx("div", { className: "h-0.5 w-1/4 mb-8 bg-white rounded-lg" })] }) }), _jsx("div", { className: cn(cardPositioning), children: _jsx("div", { className: cn(cardWrapper), ref: scrollContainerRef, children: _jsx("div", { className: cn(cardDeck), children: Object.entries(examStyles).map(([key, { id, type, name, place, isHallofFame, report, certificate, majorColor, link, imgSrc, buttonText, mainPrice, subPrice, cocoonPrice, },]) => (_jsx(ExamCard, { id: id, type: type, name: name, place: place, isHallofFame: isHallofFame, report: report, certificate: certificate, majorColor: majorColor, link: link, imgSrc: imgSrc, buttonText: buttonText, mainPrice: mainPrice, subPrice: subPrice, cocoonPrice: cocoonPrice }, key))) }) }) }), _jsxs("div", { className: cn(buttonPositioning), children: [_jsx("div", { className: cn(hoverButton), onClick: () => handleScroll("left"), children: _jsx("img", { src: "images/home/handle-left.svg", alt: "" }) }), _jsx("div", { className: cn(hoverButton), onClick: () => handleScroll("right"), children: _jsx("img", { src: "images/home/handle-right.svg", alt: "" }) })] })] }));
72
- }
73
- const examStyles = {
74
- regPerOfficial: {
75
- id: "1",
76
- type: "개인접수",
77
- name: "고사장 정기시험",
78
- place: "고사장에서 진행되는 정기시험",
79
- isHallofFame: true,
80
- report: "기본제공",
81
- certificate: "3,900원",
82
- link: urlAsset.homepage("/dashboard/user/applications"),
83
- majorColor: "text-crimson-burgundy bg-crimson-burgundy",
84
- imgSrc: urlAsset.resource("/images/img-buidling-official.png"),
85
- buttonText: "개인 접수하기",
86
- mainPrice: "33,000원",
87
- subPrice: "39,000원",
88
- },
89
- regPerHome: {
90
- id: "2",
91
- type: "개인접수",
92
- name: "가정 시험",
93
- place: "집에서 보는 정기시험",
94
- isHallofFame: false,
95
- report: "기본제공",
96
- certificate: "7800원",
97
- majorColor: "text-crimson-burgundy bg-crimson-burgundy",
98
- imgSrc: "https://resource.tosel.co.kr/images/img-buidling-home.png",
99
- mainPrice: "33,000원",
100
- subPrice: "39,000원",
101
- },
102
- regGrpOfficial: {
103
- id: "3",
104
- type: "단체접수",
105
- name: "고사장 정기시험",
106
- place: "고사장에서 진행되는 정기시험",
107
- isHallofFame: true,
108
- report: "기본제공",
109
- certificate: "기본제공",
110
- link: urlAsset.homepage("/dashboard/academy/applications"),
111
- majorColor: "text-green-dark bg-green-dark",
112
- imgSrc: "https://resource.tosel.co.kr/images/img-buidling-official.png",
113
- buttonText: "단체 접수하기",
114
- mainPrice: "33,000원",
115
- subPrice: "39,000원",
116
- },
117
- regGrpOrganization: {
118
- id: "4",
119
- type: "단체접수",
120
- name: "학원 정기시험",
121
- place: "학원에서 진행되는 정기시험",
122
- isHallofFame: false,
123
- report: "기본제공",
124
- certificate: "기본제공",
125
- majorColor: "text-green-dark bg-green-dark",
126
- imgSrc: "https://resource.tosel.co.kr/images/img-buidling-academy.png",
127
- mainPrice: "33,000원",
128
- subPrice: "39,000원",
129
- },
130
- nrgGrpOrganization: {
131
- id: "5",
132
- type: "단체접수",
133
- name: "특별기관시험",
134
- place: "기관에서 비정기적으로 실시하는 시험",
135
- isHallofFame: false,
136
- report: "기본제공",
137
- certificate: "기본제공",
138
- link: urlAsset.homepage("/events/28"),
139
- majorColor: "text-green-dark bg-green-dark",
140
- imgSrc: urlAsset.resource("/images/img-buidling-academy.png"),
141
- buttonText: "특별기관시험 신청하기",
142
- mainPrice: "33,000원",
143
- subPrice: "39,000원",
144
- cocoonPrice: "29,000원",
145
- },
146
- regGrpLab: {
147
- id: "6",
148
- type: "Lab",
149
- name: "토셀 랩 특별시험",
150
- place: "지정교육기관에서 진행되는 정기시험",
151
- isHallofFame: true,
152
- report: "고도화 성적표",
153
- certificate: "기본제공",
154
- link: "https://labentry.tosel.co.kr/",
155
- imgSrc: "https://resource.tosel.co.kr/images/img-buidling-Lab.png",
156
- buttonText: "더 알아보기",
157
- mainPrice: "33,000원",
158
- subPrice: "39,000원",
159
- },
160
- };
161
- const ExamCard = ({ id, type, name, place, isHallofFame, report, certificate, majorColor, link, imgSrc, buttonText, mainPrice, subPrice, cocoonPrice, }) => {
162
- const { setModal } = useActionStore();
163
- const isMD = useResponsive("md");
164
- const { isVisible, elementRef } = useVisibilityObserver(0.1, false);
165
- const ghostCard = {
166
- displays: "flex flex-col gap-5",
167
- spacings: "ms-0 ps-0 ",
168
- scroll: "snap-start",
169
- };
170
- //adjust the responsive left margin of scroller
171
- //adjust the card size
172
- const card = {
173
- graphics: "group/card",
174
- sizes: "h-100 w-65 xxxs:w-76 md:w-100 md:h-125 rounded-xl md:rounded-2xl",
175
- hover: " hover:scale-[1.03]",
176
- position: "xl:translate-x-[calc(50vw-600px)] md:translate-x-[56px]",
177
- transition: "duration-300",
178
- displays: "relative display-block overflow-hidden",
179
- fonts: "font-pretendard-var",
180
- };
181
- const imageWrapper = {
182
- sizes: "w-full h-full p-10",
183
- displays: "absolute flex justify-center items-start",
184
- positions: "top-0 left-0",
185
- background: "bg-white",
186
- };
187
- const contentsWrapper = {
188
- sizes: "w-full h-full",
189
- displays: "relative flex flex-col gap-4 justify-between items-start",
190
- spacings: "p-4 md:p-8",
191
- };
192
- const headline = {
193
- displays: "flex flex-row justify-between",
194
- sizes: "w-full",
195
- };
196
- const typetag = {
197
- sizes: "w-fit h-fit rounded-md",
198
- displays: "flex justify-center items-center",
199
- spacings: "p-2",
200
- backgrounds: majorColor ?? "bg-blue-navy",
201
- text: "font-bold text-sm text-white",
202
- };
203
- const titleWrapper = {
204
- displays: "flex flex-col justify-center items-start gap-0",
205
- sizes: "w-full",
206
- };
207
- const title = {
208
- textStyles: "text-lg font-bold",
209
- textColor: "text-gray-dark",
210
- sizes: "w-fit h-fit rounded-md",
211
- };
212
- const subtitle = {
213
- textStyles: "text-sm font-medium",
214
- textColor: "text-gray-medium",
215
- };
216
- const bottomWrapper = {
217
- display: "flex flex-col gap-4 w-full",
218
- };
219
- const bottomBoxWrapper = {
220
- display: "flex flex-col xxxs:flex-row justify-between items-center h-fit w-full gap-4",
221
- };
222
- const bottomBox = {
223
- displays: "flex flex-row",
224
- sizes: "w-full h-fit xxxs:min-h-20 rounded-xl",
225
- backgrounds: "bg-gray-light/50",
226
- textStyle: "text-gray-medium",
227
- spacings: "p-3",
228
- };
229
- const boxContentsWrapper = {
230
- displays: "flex flex-row xxxs:flex-col gap-4 xxxs:gap-0",
231
- };
232
- const miniTitle = {
233
- textStyles: "font-bold text-sm",
234
- };
235
- const button = {
236
- displays: "flex justify-center items-center",
237
- sizes: "h-12 w-full rounded-lg ",
238
- positions: "xl:translate-x-[calc(50vw-600px)] md:translate-x-[56px]",
239
- backgrounds: majorColor ? "bg-green-light" : "bg-blue-navy-light",
240
- textColors: majorColor ? "text-green-dark" : "text-blue-navy",
241
- animations: "duration-300 hover:scale-[1.03] hover:text-white",
242
- optional: majorColor ? "hover:bg-green-dark" : "hover:bg-blue-navy",
243
- };
244
- const buttonTextStyle = {
245
- textStyles: "font-bold text-base text-center align-bottom",
246
- };
247
- const modalContentsWrapper = {
248
- displyas: "flex flex-col justify-between gap-5",
249
- sizes: "w-full h-65",
250
- };
251
- return (_jsx(Action.Show, { actions: [
252
- [
253
- id,
254
- _jsx(ConfirmModal, { titles: {
255
- title: "단체 서비스 안내",
256
- }, widgets: [
257
- {
258
- data: (_jsxs("div", { className: cn(modalContentsWrapper), children: [_jsxs("div", { className: "break-keep h-full w-full flex flex-col p-5 justify-center text-center text-base items-center bg-gray-light/50 rounded-lg", children: [_jsx("div", { className: "mb-8", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", className: "size-12 stroke-green-dark/80", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75" }) }) }), _jsxs("span", { children: ["\uB2E8\uCCB4 \uC11C\uBE44\uC2A4 \uC774\uC6A9\uC744 \uC704\uD574\uC11C\uB294", " ", _jsx("span", { className: "text-green-dark font-bold", children: "\uB2E8\uCCB4 \uB4F1\uB85D" }), "\uC774 \uD544\uC694\uD574\uC694! ", _jsx("br", {}), "\uC544\uC9C1 \uB4F1\uB85D\uD558\uC9C0 \uC54A\uC558\uB2E4\uBA74, \uC0AC\uC5C5\uC790\uB4F1\uB85D\uC99D\uC744 \uC900\uBE44\uD558\uACE0 \uB2E8\uCCB4 \uB4F1\uB85D\uC744 \uC9C4\uD589\uD574\uC8FC\uC138\uC694"] })] }), _jsxs("div", { className: "flex flex-row text-xs", children: [_jsx("div", { className: "w-full text-center", children: "\uC544\uC9C1 \uAE30\uAD00 \uB4F1\uB85D\uC744 \uC548\uD588\uB2E4\uBA74?" }), _jsx("div", { className: "w-full text-center", children: "\uC774\uBBF8 \uB2E8\uCCB4\uB4F1\uB85D\uC744 \uD588\uB2E4\uBA74?" })] })] })),
259
- },
260
- ], buttons: [
261
- {
262
- title: "등록하기",
263
- onClick: () => {
264
- window.location.href = urlAsset.homepage("/sign-up/academy");
265
- },
266
- option: {
267
- text: "font-pretendard-var font-medium text-green-dark",
268
- background: "bg-green-light",
269
- },
270
- },
271
- {
272
- title: "단체 접수하기",
273
- onClick: () => {
274
- link && (window.location.href = link);
275
- },
276
- option: {
277
- text: "font-pretendard-var font-medium text-white",
278
- background: "bg-green-dark",
279
- },
280
- },
281
- ] }),
282
- ],
283
- ], children: _jsxs("div", { className: cn(ghostCard), children: [_jsxs("div", { className: cn(card), children: [_jsx("div", { className: cn(imageWrapper), children: _jsx("div", { className: "h-20 xxxs:h-30 md:h-40 flex mt-10 md:mt-16", ref: elementRef, children: _jsx("img", { src: imgSrc, alt: "", className: cn("max-w-full h-auto transform transition-all duration-1000 delay-0 ease-in-out", isVisible
284
- ? "translate-y-0 opacity-100"
285
- : "translate-y-10 opacity-0") }) }) }), _jsxs("div", { className: cn(contentsWrapper), children: [_jsxs("div", { className: cn(headline), children: [_jsxs("div", { className: cn(titleWrapper), children: [_jsx("div", { className: cn(title), children: name }), _jsx("div", { className: cn(subtitle), children: place })] }), _jsx("div", { className: cn(typetag), children: type })] }), _jsxs("div", { className: cn(bottomWrapper), children: [_jsxs("div", { className: cn(bottomBox), children: [_jsx("div", { children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", className: "size-6", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 8.25h19.5M2.25 9h19.5m-16.5 5.25h6m-6 2.25h3m-3.75 3h15a2.25 2.25 0 0 0 2.25-2.25V6.75A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25v10.5A2.25 2.25 0 0 0 4.5 19.5Z" }) }) }), _jsxs("div", { className: cn(boxContentsWrapper, "ml-2"), children: [_jsx("div", { className: cn(miniTitle), children: "\uC751\uC2DC\uB8CC" }), _jsxs("div", { className: "flex flex-col", children: [_jsx("div", { children: cocoonPrice && (_jsxs("div", { className: "text-xs font-medium text-gray-dark", children: ["cocoon: ", cocoonPrice] })) }), _jsxs("div", { className: "text-xs font-medium text-gray-dark", children: ["Pre-Starter ~ Junior: ", mainPrice] }), _jsxs("div", { className: "text-xs font-medium text-gray-dark", children: ["High Junior: ", subPrice] })] })] })] }), _jsxs("div", { className: cn(bottomBoxWrapper), children: [_jsxs("div", { className: cn(bottomBox, isHallofFame ? "bg-green-light" : "bg-crimson-burgundy/20"), children: [_jsx("div", { children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: cn(isHallofFame
286
- ? "size-6 fill-yellow-500"
287
- : "size-6 fill-gray-medium"), children: _jsx("path", { "fill-rule": "evenodd", d: "M5.166 2.621v.858c-1.035.148-2.059.33-3.071.543a.75.75 0 0 0-.584.859 6.753 6.753 0 0 0 6.138 5.6 6.73 6.73 0 0 0 2.743 1.346A6.707 6.707 0 0 1 9.279 15H8.54c-1.036 0-1.875.84-1.875 1.875V19.5h-.75a2.25 2.25 0 0 0-2.25 2.25c0 .414.336.75.75.75h15a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-2.25-2.25h-.75v-2.625c0-1.036-.84-1.875-1.875-1.875h-.739a6.706 6.706 0 0 1-1.112-3.173 6.73 6.73 0 0 0 2.743-1.347 6.753 6.753 0 0 0 6.139-5.6.75.75 0 0 0-.585-.858 47.077 47.077 0 0 0-3.07-.543V2.62a.75.75 0 0 0-.658-.744 49.22 49.22 0 0 0-6.093-.377c-2.063 0-4.096.128-6.093.377a.75.75 0 0 0-.657.744Zm0 2.629c0 1.196.312 2.32.857 3.294A5.266 5.266 0 0 1 3.16 5.337a45.6 45.6 0 0 1 2.006-.343v.256Zm13.5 0v-.256c.674.1 1.343.214 2.006.343a5.265 5.265 0 0 1-2.863 3.207 6.72 6.72 0 0 0 .857-3.294Z", "clip-rule": "evenodd" }) }) }), _jsxs("div", { className: cn(boxContentsWrapper, "ml-2"), children: [_jsx("div", { className: cn(miniTitle), children: "\uBA85\uC608\uC758 \uC804\uB2F9" }), isHallofFame ? (_jsx("div", { className: "text-base text-green-dark font-bold", children: "\uB4F1\uC7AC \uAC00\uB2A5" })) : (_jsx("div", { className: "text-base text-crimson-burgundy font-bold", children: "\uB4F1\uC7AC \uBD88\uAC00" }))] })] }), _jsx("div", { className: cn(bottomBox), children: _jsxs("div", { className: cn(boxContentsWrapper), children: [_jsx("div", { className: cn(miniTitle), children: "\uC131\uC801\uD45C \uBC0F \uC778\uC99D\uC11C" }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "text-xs font-medium text-gray-dark", children: ["\uC131\uC801\uD45C: ", report] }), _jsxs("div", { className: "text-xs font-medium text-gray-dark", children: ["\uC778\uC99D\uC11C: ", certificate] })] })] }) })] })] })] })] }), link && (_jsx("div", { className: cn(button), onClick: () => {
288
- !isMD
289
- ? alert("모바일 환경입니다. 웹에서 접수해주세요")
290
- : "3" === id // "단체접수" === type 기관시험 접수가 구현되면 교체해주세요
291
- ? setModal(id)
292
- : (window.location.href = link);
293
- }, children: _jsx("div", { className: cn(buttonTextStyle), children: buttonText }) }))] }) }));
294
- };
@@ -1,11 +0,0 @@
1
- import Banner from "./Banner";
2
- import Evaluation from "./Evaluation";
3
- import OfflineExam from "./OfflineExam";
4
- import Types from "./Types";
5
- declare const Regexam: {
6
- Banner: typeof Banner;
7
- Evaluation: typeof Evaluation;
8
- OfflineExam: typeof OfflineExam;
9
- Types: typeof Types;
10
- };
11
- export default Regexam;
@@ -1,11 +0,0 @@
1
- import Banner from "./Banner";
2
- import Evaluation from "./Evaluation";
3
- import OfflineExam from "./OfflineExam";
4
- import Types from "./Types";
5
- const Regexam = {
6
- Banner,
7
- Evaluation,
8
- OfflineExam,
9
- Types,
10
- };
11
- export default Regexam;
@@ -1,6 +0,0 @@
1
- import { ReactNode } from "react";
2
- import { Button as _Button } from "../../../interface";
3
- export default function Layout({ children, buttons, }: {
4
- children: ReactNode;
5
- buttons?: _Button[];
6
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,52 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
3
- import { cn } from "../../../util";
4
- import SVG from "../../../asset/SVG";
5
- import gsap from "gsap";
6
- import { ScrollTrigger } from "gsap/ScrollTrigger";
7
- gsap.registerPlugin(ScrollTrigger);
8
- export default function Layout({ children, buttons, }) {
9
- const container = {
10
- sizes: "w-full min-h-screen",
11
- displays: "flex flex-col justify-start items-center relative",
12
- backgrounds: "bg-gray-light",
13
- pressures: "p-3.5",
14
- };
15
- const header = {
16
- displays: "absolute top-0 flex flex-col justify-start",
17
- sizes: "w-full h-auto",
18
- };
19
- const buttonStyles = {
20
- spacings: "px-4 py-2 rounded-full",
21
- textStyles: "text-base font-bold text-green-dark",
22
- backgrounds: "bg-white/30 backdrop-blur-sm",
23
- graphics: "shadow-main",
24
- animations: "duration-300 hover:bg-white/100 hover:shadow-green hover:scale-105",
25
- };
26
- const containerRef = useRef(null);
27
- const buttonRef = useRef(null);
28
- const [containerHeight, setContainerHeight] = useState(null);
29
- useEffect(() => {
30
- // 컨테이너 높이 읽기
31
- if (containerRef.current) {
32
- const height = containerRef.current.offsetHeight;
33
- setContainerHeight(height); // 상태에 저장
34
- console.log("Container height:", height); // 확인용 로그
35
- }
36
- // ScrollTrigger 설정
37
- if (buttonRef.current) {
38
- ScrollTrigger.create({
39
- trigger: buttonRef.current,
40
- start: "top top",
41
- end: () => `+=${containerHeight || window.innerHeight}`, // 컨테이너 높이 기반
42
- pin: true,
43
- pinSpacing: false,
44
- scrub: false,
45
- });
46
- }
47
- return () => {
48
- ScrollTrigger.getAll().forEach((trigger) => trigger.kill());
49
- };
50
- }, [containerHeight]); // containerHeight가 업데이트되면 재실행
51
- return (_jsxs("div", { className: cn(container), ref: containerRef, children: [_jsx("div", { className: "mt-20 w-full h-full flex justify-center itmes-center", children: children }), _jsx("div", { className: cn(header), ref: buttonRef, children: _jsx("div", { className: "flex w-full justify-center items-center p-6", children: buttons?.map(({ title, onClick }) => (_jsx("button", { className: cn(buttonStyles), onClick: onClick, children: _jsxs("div", { className: "flex flex-row gap-2", children: [_jsx(SVG.Print, {}), _jsx("div", { children: title })] }) }))) }) })] }));
52
- }
@@ -1,228 +0,0 @@
1
- import { ReactNode } from "react";
2
- type Level = "CO" | "PS" | "ST" | "BA" | "JR" | "HJ" | "AD";
3
- type ExamType = "REG" | "IST" | "CMP";
4
- export interface Information {
5
- name: string;
6
- nickname?: string;
7
- imgSrc?: string;
8
- qr?: ReactNode;
9
- qrSrc?: string;
10
- sharedSrc?: string;
11
- code: string;
12
- birthday: string;
13
- examName: string;
14
- examDate: string;
15
- examType: ExamType;
16
- examValidAt: string;
17
- level: Level;
18
- }
19
- export interface Result {
20
- score: number;
21
- grade: number;
22
- isHonor: boolean;
23
- percentRank: number;
24
- }
25
- export interface Data {
26
- graph: {
27
- user: {
28
- section1: {
29
- partA: number;
30
- partB: number;
31
- partC: number;
32
- partD: number;
33
- };
34
- section2: {
35
- partA: number;
36
- partB: number;
37
- partC: number;
38
- partD: number;
39
- };
40
- };
41
- average: {
42
- user: {
43
- section1: {
44
- partA: number;
45
- partB: number;
46
- partC: number;
47
- partD: number;
48
- };
49
- section2: {
50
- partA: number;
51
- partB: number;
52
- partC: number;
53
- partD: number;
54
- };
55
- };
56
- };
57
- };
58
- analysis: {
59
- total: {
60
- section1: number;
61
- section2: number;
62
- };
63
- user: {
64
- section1: number;
65
- section2: number;
66
- };
67
- nationalAverage: {
68
- section1: number;
69
- section2: number;
70
- };
71
- localAverage: {
72
- section1: number;
73
- section2: number;
74
- };
75
- ageAverage: {
76
- section1: number;
77
- section2: number;
78
- };
79
- "10percentageAverage": number;
80
- "30percentageAverage": number;
81
- };
82
- script: {
83
- performanceEvaluation: string | string[];
84
- section1: string | string[];
85
- section2: string | string[];
86
- };
87
- multipleIntelligence: MultipleIntelligenceRate;
88
- }
89
- export interface TranscriptProps {
90
- info: Information;
91
- result: Result;
92
- data: Data;
93
- option?: {
94
- noAnimation?: boolean;
95
- isAdvanced?: boolean;
96
- };
97
- }
98
- interface Score {
99
- part1: number;
100
- part2: number;
101
- part3: number;
102
- part4: number;
103
- part5: number;
104
- part6: number;
105
- part7: number;
106
- part8: number;
107
- }
108
- interface Score1 {
109
- section1: {
110
- partA: number;
111
- partB: number;
112
- partC: number;
113
- partD: number;
114
- };
115
- section2: {
116
- partA: number;
117
- partB: number;
118
- partC: number;
119
- partD: number;
120
- };
121
- total: number;
122
- }
123
- interface LSWRPercent {
124
- listening: number;
125
- speaking: number;
126
- writing: number;
127
- reading: number;
128
- }
129
- interface SectionScript {
130
- script: string;
131
- details: string[];
132
- }
133
- interface OccupationalCompetency {
134
- category: string;
135
- result: number;
136
- average: number;
137
- }
138
- export interface TranscriptAdvancedProps {
139
- info: {
140
- name: string;
141
- nickname?: string;
142
- imgSrc?: string;
143
- qrSrc?: string;
144
- sharedSrc?: string;
145
- code: string;
146
- birthday: string;
147
- examName: string;
148
- examDate: string;
149
- examType: ExamType;
150
- examValidAt: string;
151
- level: Level;
152
- gender: string;
153
- };
154
- score: {
155
- average: Score;
156
- result: Score;
157
- section1: SectionScript;
158
- section2: SectionScript;
159
- };
160
- lswr: {
161
- average: LSWRPercent;
162
- result: LSWRPercent;
163
- listeningScript: {
164
- part1: string;
165
- part3: string;
166
- part4: string;
167
- };
168
- speakingScript: {
169
- part2: string;
170
- };
171
- readingScript: {
172
- part7: string;
173
- part8: string;
174
- };
175
- writingScript: {
176
- part5: string;
177
- part6: string;
178
- };
179
- };
180
- option?: {
181
- isAdvanced?: boolean;
182
- };
183
- oci: OccupationalCompetency[];
184
- }
185
- export declare const example: TranscriptAdvancedProps;
186
- interface MultipleIntelligenceRate {
187
- musical: number;
188
- bodilyKinesthetic: number;
189
- logicalMathematical: number;
190
- linguistic: number;
191
- spatial: number;
192
- interpersonal: number;
193
- naturalist: number;
194
- intrapersonal: number;
195
- }
196
- export interface TranscriptProps1 {
197
- info: {
198
- name: string;
199
- nickname?: string;
200
- imgSrc?: string;
201
- qrSrc?: string;
202
- sharedSrc?: string;
203
- code: string;
204
- birthday: string;
205
- examName: string;
206
- examDate: string;
207
- examType: ExamType;
208
- examValidAt: string;
209
- level: Level;
210
- gender: string;
211
- };
212
- result: {
213
- score: number;
214
- grade: number;
215
- isHonor: boolean;
216
- percentRank: number;
217
- };
218
- score: {
219
- result: Score1;
220
- average: Score1;
221
- ageAverage: Score1;
222
- examHallAverage: Score1;
223
- percent10Average: Score1;
224
- percent30Average: Score1;
225
- };
226
- multipleIntelligence: MultipleIntelligenceRate;
227
- }
228
- export {};
@@ -1,13 +0,0 @@
1
- import { TranscriptProps } from "./Transcript";
2
- export declare const EXAM_TYPE: {
3
- readonly REG: "REG";
4
- readonly CMP: "CMP";
5
- readonly IST: "IST";
6
- readonly OLY: "OLY";
7
- };
8
- export type EXAM_TYPE = (typeof EXAM_TYPE)[keyof typeof EXAM_TYPE];
9
- export declare function getStringfromType(ExamType: EXAM_TYPE): string;
10
- declare const _default: import("react").ForwardRefExoticComponent<{
11
- props: TranscriptProps;
12
- } & import("react").RefAttributes<HTMLDivElement>>;
13
- export default _default;