@edu-tosel/design 1.0.200 → 1.0.202
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.
- package/layout/index.d.ts +1 -1
- package/layout/index.js +1 -1
- package/layout/template/Error/Error404.d.ts +1 -0
- package/layout/template/Error/Error404.js +4 -0
- package/layout/template/Error/index.d.ts +5 -0
- package/layout/template/Error/index.js +5 -0
- package/layout/template/Ticket/Ticket.design.js +1 -1
- package/layout/template/Transcript/design/Transcript.d.ts +1 -1
- package/layout/template/Transcript/design/Transcript.design.js +14 -1
- package/layout/template/Transcript/design/Transcript.js +37 -13
- package/layout/template/Transcript/design/TranscriptAdvanced.design.d.ts +2 -2
- package/layout/template/Transcript/design/TranscriptAdvanced.design.js +31 -2
- package/layout/template/Transcript/design/atom/CardTitle.d.ts +1 -1
- package/layout/template/Transcript/design/molecule/BarGraph.d.ts +1 -1
- package/layout/template/Transcript/design/molecule/BarGraph.js +7 -1
- package/layout/template/Transcript/design/molecule/CircularGauge.d.ts +1 -1
- package/layout/template/Transcript/design/organism/BarCardCol.d.ts +7 -5
- package/layout/template/Transcript/design/organism/BarCardCol.js +9 -3
- package/layout/template/Transcript/design/organism/BarCardRow.d.ts +7 -5
- package/layout/template/Transcript/design/organism/BarCardRow.js +8 -2
- package/layout/template/Transcript/design/organism/IdCard.js +2 -2
- package/layout/template/Transcript/design/organism/ResultGaugeCard.d.ts +1 -1
- package/layout/template/Transcript/index.d.ts +1 -1
- package/layout/template/Transcript/interface.d.ts +10 -0
- package/package.json +1 -1
- package/tailwind.config.ts +5 -0
- package/text/LineBreaks.js +1 -0
- package/version.txt +1 -1
- package/layout/template/Gomito.d.ts +0 -1
- package/layout/template/Gomito.js +0 -4
- package/layout/template/Transcript/Theme.d.ts +0 -1
- /package/layout/template/Transcript/{Theme.js → interface.js} +0 -0
package/layout/index.d.ts
CHANGED
|
@@ -17,10 +17,10 @@ export { default as Shelf } from "./template/Shelf";
|
|
|
17
17
|
export { default as Tab } from "./template/Tab";
|
|
18
18
|
export { default as TextBox } from "./template/TextBox";
|
|
19
19
|
export { default as OlympiadLayout } from "./template/Olympiad/Olympiad.layout";
|
|
20
|
-
export { default as Gomito } from "./template/Gomito";
|
|
21
20
|
export { default as RegexamLayout } from "./template/Regexam/Regexam.layout";
|
|
22
21
|
export { default as BooksLayout } from "./template/Books/Books.layout";
|
|
23
22
|
export { default as LegacyLayout } from "./template/Legacy/Legacy.layout";
|
|
24
23
|
export { default as MonthlyProgressReport } from "./template/MonthlyProgressReport";
|
|
25
24
|
export { default as Transcript } from "./template/Transcript";
|
|
26
25
|
export { default as Ticket } from "./template/Ticket";
|
|
26
|
+
export { default as Error } from "./template/Error";
|
package/layout/index.js
CHANGED
|
@@ -17,10 +17,10 @@ export { default as Shelf } from "./template/Shelf";
|
|
|
17
17
|
export { default as Tab } from "./template/Tab";
|
|
18
18
|
export { default as TextBox } from "./template/TextBox";
|
|
19
19
|
export { default as OlympiadLayout } from "./template/Olympiad/Olympiad.layout";
|
|
20
|
-
export { default as Gomito } from "./template/Gomito";
|
|
21
20
|
export { default as RegexamLayout } from "./template/Regexam/Regexam.layout";
|
|
22
21
|
export { default as BooksLayout } from "./template/Books/Books.layout";
|
|
23
22
|
export { default as LegacyLayout } from "./template/Legacy/Legacy.layout";
|
|
24
23
|
export { default as MonthlyProgressReport } from "./template/MonthlyProgressReport";
|
|
25
24
|
export { default as Transcript } from "./template/Transcript";
|
|
26
25
|
export { default as Ticket } from "./template/Ticket";
|
|
26
|
+
export { default as Error } from "./template/Error";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function Error404(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export default function Error404() {
|
|
3
|
+
return (_jsx("div", { className: "flex justify-center items-center w-full h-screen", children: _jsxs("div", { className: "flex flex-col justify-center items-center", children: [_jsx("div", { className: "w-full h-fit flex justify-center items-center mb-5 text-green-dark", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", className: "md:size-10 size-6", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" }) }) }), _jsxs("div", { className: "w-full text-center text-sm md:text-base font-medium text-gray-dark", children: ["\uC694\uCCAD\uD558\uC2E0 \uD398\uC774\uC9C0\uB97C \uCC3E\uC744 \uC218\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. ", _jsx("br", {}), "\uC8FC\uC18C\uB97C \uB2E4\uC2DC \uD655\uC778\uD574\uC8FC\uC138\uC694."] }), _jsxs("div", { className: "relative flex justify-center items-center md:size-80 size-40", children: [_jsx("div", { className: "absolute flex justify-center items-center left-0 top-0 w-full h-full overflow-visible", children: _jsx("div", { className: "font-medium md:text-[200px] text-[100px] text-green-dark", children: "404" }) }), _jsx("div", { className: "absolute flex justify-center items-center left-0 top-0 w-full h-full overflow-visible", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/img-character-cocoon-main-new.png", alt: "", className: "size-40 md:size-80 z-10 hover:scale-105 duration-300" }) })] }), _jsx("div", { className: "w-full text-center text-base font-medium text-gray-dark", children: _jsx("button", { className: "font-medium text-green-dark w-fit h-fit bg-green-light px-4 py-3 rounded-lg hover:shadow-green duration-300 text-sm hover:bg-white", children: "\uC774\uC804 \uD398\uC774\uC9C0\uB85C \uB3CC\uC544\uAC00\uAE30" }) })] }) }));
|
|
4
|
+
}
|
|
@@ -73,6 +73,6 @@ function TicketDesign({ props }, ref) {
|
|
|
73
73
|
? "w-2.5 shrink-0 bg-gray-light"
|
|
74
74
|
: "w-full bg-white"}`, children: num !== null ? num : "" }, index))) })] }), _jsxs("div", { className: "font-medium text-2xs", children: ["*OMR (1)\uBC88 \uD56D\uBAA9\uC5D0 \uD574\uB2F9\uBC88\uD638\uB97C \uB530\uB77C\uC11C \uC368\uC8FC\uC138\uC694.", " "] })] }), _jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleLarge), children: "\uB808\uBCA8" }), _jsx("div", { className: cn(cellText), children: props.level })] }), _jsxs("div", { className: "flex flex-row gap-2", children: [_jsxs("div", { className: "flex flex-col gap-0 h-full w-21 border-1 border-gray-medium shrink-0", children: [typeof props.profile !== "function" ? (_jsx("div", { className: "h-full w-full bg-cover", style: {
|
|
75
75
|
backgroundImage: `url(${props.profile ?? ""})`,
|
|
76
|
-
} })) : (typeof props.profile === "function" && (_jsxs("button", { onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: props.profile, className: "w-full h-full overflow-hidden relative bg-gray-light", children: [_jsx("img", { className: "bg-cover", src: "https://tosel.cdn.ntruss.com/images/picture.png" }), transitions((styles, item) => item && (_jsxs(animated.div, { style: styles, className: cn(hoverBox), children: [_jsx(SVG.Image, {}), _jsx("div", { className: "text-white text-xs leading-none", children: "\uC0AC\uC9C4 \uBC14\uAFB8\uAE30" })] })))] }))), _jsx("div", { className: cn(cellTitleLarge, "w-full"), children: "\uC0AC\uC9C4" })] }), _jsxs("div", { className: "flex flex-col gap-2 w-full", children: [_jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uC774\uB984" }), _jsx("div", { className: cn(cellText), children: props.name })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uC0DD\uB144\uC6D4\uC77C" }), _jsx("div", { className: cn(cellText), children: props.birthday })] })] }), _jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uACE0\uC0AC\uC7A5" }), _jsx("div", { className: cn(cellText), children: hall })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uACE0\uC0AC\uC2E4" }), _jsx("div", { className: cn(cellText), children: room })] })] })] })] }), _jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC2DC\uD5D8\uC77C\uC790" }), _jsx("div", { className: cn(cellText), children: props.exam.date })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC785\uC2E4 \uC644\uB8CC\uC2DC\uAC04" }), _jsx("div", { className: cn(cellText), children: formmatedStartedAt })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC885\uB8CC\uC2DC\uAC04" }), _jsx("div", { className: cn(cellText), children: formmatedEndedAt(startedAt, props.level) })] }), _jsxs("div", { className: "flex flex-col mt-1", children: [_jsx("div", { className: "font-medium text-2xs leading-tight", children: "*\uC785\uC2E4\uC2DC\uAC04 \uC774\uD6C4\uC5D0\uB294 \uC785\uC2E4\uC774 \uC81C\uD55C\uB429\uB2C8\uB2E4." }), _jsx("div", { className: "font-medium text-2xs leading-tight", children: "*\uACE0\uC0AC\uC7A5 \uC5EC\uAC74\uC5D0 \uB530\uB77C \uD1F4\uC2E4\uC2DC\uAC04\uC740 \uC870\uAE08\uC529 \uC0C1\uC774\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4." })] })] }), _jsx("div", { className: "w-full border-b-1 border-dashed border-gray-medium" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("div", { className: "font-bold text-sm leading-tight", children: "\uC751\uC2DC\uC790 \uC720\uC758\uC0AC\uD56D" }), _jsxs("ul", { className: "list-outside list-decimal ml-4 font-medium text-2xs", children: [_jsxs("li", { className: "mb-1", children: ["\uB2E4\uC74C\uC758 \uBB3C\uD488\uC744 \uAF2D \uC900\uBE44\uD574\uC8FC\uC138\uC694:", _jsx("br", {}), " \uCEF4\uD4E8\uD130\uC6A9 \uC0AC\uC778\uD39C / \uC218\uC815 \uD14C\uC774\uD504 / \uC218\uD5D8\uD45C / \uAC80\uC815 \uBCFC\uD39C"] }), _jsxs("li", { className: "mb-1", children: ["\uACE0\uC0AC\uC7A5 \uC704\uCE58\uB97C \uBBF8\uB9AC \uD655\uC778\uD574\uC8FC\uC138\uC694:", _jsx("br", {}), " \uC218\uD5D8\uD45C\uC5D0 \uAE30\uC7AC\uB41C \uACE0\uC0AC\uC7A5, \uACE0\uC0AC\uC2E4 \uC815\uBCF4\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694."] }), _jsxs("li", { children: ["\uD559\uBD80\uBAA8 \uCD9C\uC785 \uD1B5\uC81C:", _jsx("br", {}), "\uACE0\uC0AC\uC2E4 \uB0B4\uBD80\uC5D0\uB294 \uD559\uBD80\uBAA8\uC758 \uCD9C\uC785\uC774 \uC5C4\uACA9\uD788 \uD1B5\uC81C\uB429\uB2C8\uB2E4."] })] })] })] })] }));
|
|
76
|
+
} })) : (typeof props.profile === "function" && (_jsxs("button", { onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: props.profile, className: "w-full h-full overflow-hidden relative bg-gray-light", children: [_jsx("img", { className: "bg-cover", src: "https://tosel.cdn.ntruss.com/images/picture.png" }), transitions((styles, item) => item && (_jsxs(animated.div, { style: styles, className: cn(hoverBox), children: [_jsx(SVG.Image, {}), _jsx("div", { className: "text-white text-xs leading-none", children: "\uC0AC\uC9C4 \uBC14\uAFB8\uAE30" })] })))] }))), _jsx("div", { className: cn(cellTitleLarge, "w-full"), children: "\uBCF8\uC778 \uC0AC\uC9C4" })] }), _jsxs("div", { className: "flex flex-col gap-2 w-full", children: [_jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uC774\uB984" }), _jsx("div", { className: cn(cellText), children: props.name })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uC0DD\uB144\uC6D4\uC77C" }), _jsx("div", { className: cn(cellText), children: props.birthday })] })] }), _jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uACE0\uC0AC\uC7A5" }), _jsx("div", { className: cn(cellText), children: hall })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleSmall), children: "\uACE0\uC0AC\uC2E4" }), _jsx("div", { className: cn(cellText), children: room })] })] })] })] }), _jsxs("div", { className: "flex flex-col gap-0", children: [_jsxs("div", { className: cn(cellWrapper), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC2DC\uD5D8\uC77C\uC790" }), _jsx("div", { className: cn(cellText), children: props.exam.date })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC785\uC2E4 \uC644\uB8CC\uC2DC\uAC04" }), _jsx("div", { className: cn(cellText), children: formmatedStartedAt })] }), _jsxs("div", { className: cn(cellWrapper, "border-t-0"), children: [_jsx("div", { className: cn(cellTitleLarge, "bg-green-dark/10"), children: "\uC885\uB8CC\uC2DC\uAC04" }), _jsx("div", { className: cn(cellText), children: formmatedEndedAt(startedAt, props.level) })] }), _jsxs("div", { className: "flex flex-col mt-1", children: [_jsx("div", { className: "font-medium text-2xs leading-tight", children: "*\uC785\uC2E4\uC2DC\uAC04 \uC774\uD6C4\uC5D0\uB294 \uC785\uC2E4\uC774 \uC81C\uD55C\uB429\uB2C8\uB2E4." }), _jsx("div", { className: "font-medium text-2xs leading-tight", children: "*\uACE0\uC0AC\uC7A5 \uC5EC\uAC74\uC5D0 \uB530\uB77C \uD1F4\uC2E4\uC2DC\uAC04\uC740 \uC870\uAE08\uC529 \uC0C1\uC774\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4." })] })] }), _jsx("div", { className: "w-full border-b-1 border-dashed border-gray-medium" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("div", { className: "font-bold text-sm leading-tight", children: "\uC751\uC2DC\uC790 \uC720\uC758\uC0AC\uD56D" }), _jsxs("ul", { className: "list-outside list-decimal ml-4 font-medium text-2xs", children: [_jsxs("li", { className: "mb-1", children: ["\uB2E4\uC74C\uC758 \uBB3C\uD488\uC744 \uAF2D \uC900\uBE44\uD574\uC8FC\uC138\uC694:", _jsx("br", {}), " \uCEF4\uD4E8\uD130\uC6A9 \uC0AC\uC778\uD39C / \uC218\uC815 \uD14C\uC774\uD504 / \uC218\uD5D8\uD45C / \uAC80\uC815 \uBCFC\uD39C"] }), _jsxs("li", { className: "mb-1", children: ["\uACE0\uC0AC\uC7A5 \uC704\uCE58\uB97C \uBBF8\uB9AC \uD655\uC778\uD574\uC8FC\uC138\uC694:", _jsx("br", {}), " \uC218\uD5D8\uD45C\uC5D0 \uAE30\uC7AC\uB41C \uACE0\uC0AC\uC7A5, \uACE0\uC0AC\uC2E4 \uC815\uBCF4\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694."] }), _jsxs("li", { children: ["\uD559\uBD80\uBAA8 \uCD9C\uC785 \uD1B5\uC81C:", _jsx("br", {}), "\uACE0\uC0AC\uC2E4 \uB0B4\uBD80\uC5D0\uB294 \uD559\uBD80\uBAA8\uC758 \uCD9C\uC785\uC774 \uC5C4\uACA9\uD788 \uD1B5\uC81C\uB429\uB2C8\uB2E4."] })] })] })] })] }));
|
|
77
77
|
}
|
|
78
78
|
export default forwardRef(TicketDesign);
|
|
@@ -24,6 +24,8 @@ export function getStringfromType(ExamType) {
|
|
|
24
24
|
}
|
|
25
25
|
function TranscriptDesign({ props }, ref) {
|
|
26
26
|
const { info, result, data } = props;
|
|
27
|
+
const section1Data = SectionBarGraphProps("section1", data.analysis.user.section1, 50, data.script.section1, undefined, 10, data.analysis.nationalAverage.section1);
|
|
28
|
+
const section2Data = SectionBarGraphProps("section2", data.analysis.user.section2, 50, data.script.section2, undefined, 10, data.analysis.nationalAverage.section2);
|
|
27
29
|
const container = {
|
|
28
30
|
printSize: paperSize.a4,
|
|
29
31
|
backgrounds: "print:bg-white",
|
|
@@ -36,6 +38,17 @@ function TranscriptDesign({ props }, ref) {
|
|
|
36
38
|
spacings: "px-5 py-2",
|
|
37
39
|
backgrounds: "bg-gradient-to-r from-crimson-burgundy to-green-dark",
|
|
38
40
|
};
|
|
39
|
-
return (_jsxs("div", { ref: ref, className: cn(container), children: [_jsxs("div", { className: cn(headerBox), children: [_jsx("img", { src: "images/logos/logo-tosel-white.svg", alt: "", className: "h-10" }), _jsxs("div", { className: "text-white font-bold text-base", children: [getStringfromType(info.examType), " \uC131\uC801\uD45C"] })] }), _jsx(IdCard, { info: info }), _jsxs("div", { className: "flex flex-col gap-5 xs:flex-row mt-5 items-stretch", children: [_jsx(ResultGaugeCard, { result: result, theme: "green" }), _jsx(HonorCard, { result: result })] }), _jsx(PerformanceCard, { data: data, info: info }), _jsx(ScoreCard, { data: data }), _jsx(BarCardRow, {
|
|
41
|
+
return (_jsxs("div", { ref: ref, className: cn(container), children: [_jsxs("div", { className: cn(headerBox), children: [_jsx("img", { src: "images/logos/logo-tosel-white.svg", alt: "", className: "h-10" }), _jsxs("div", { className: "text-white font-bold text-base", children: [getStringfromType(info.examType), " \uC131\uC801\uD45C"] })] }), _jsx(IdCard, { info: info }), _jsxs("div", { className: "flex flex-col gap-5 xs:flex-row mt-5 items-stretch", children: [_jsx(ResultGaugeCard, { result: result, theme: "green" }), _jsx(HonorCard, { result: result })] }), _jsx(PerformanceCard, { data: data, info: info }), _jsx(ScoreCard, { data: data }), _jsx(BarCardRow, { section1: section1Data, section2: section2Data, theme: "green" })] }));
|
|
40
42
|
}
|
|
41
43
|
export default forwardRef(TranscriptDesign);
|
|
44
|
+
function SectionBarGraphProps(title, score, total, script, subScripts, scale, subScore) {
|
|
45
|
+
return {
|
|
46
|
+
title: title,
|
|
47
|
+
score: score,
|
|
48
|
+
subScore: subScore,
|
|
49
|
+
total: total,
|
|
50
|
+
scale: scale,
|
|
51
|
+
script: script,
|
|
52
|
+
subScripts: subScripts,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
export const example = {
|
|
2
2
|
info: {
|
|
3
3
|
name: "조철봉",
|
|
4
|
-
birthday:
|
|
4
|
+
birthday: "1999-11-11",
|
|
5
5
|
code: "123456789012",
|
|
6
6
|
gender: "MAIL",
|
|
7
|
-
examDate:
|
|
7
|
+
examDate: "2024-11-06",
|
|
8
8
|
examName: "AD 정기시험",
|
|
9
9
|
examType: "REG",
|
|
10
10
|
examValidAt: "2024-11-07",
|
|
11
|
-
level: "AD"
|
|
11
|
+
level: "AD",
|
|
12
12
|
},
|
|
13
13
|
score: {
|
|
14
|
-
average: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
average: {
|
|
15
|
+
part1: 100,
|
|
16
|
+
part2: 100,
|
|
17
|
+
part3: 10,
|
|
18
|
+
part4: 1,
|
|
19
|
+
part5: 200,
|
|
20
|
+
part6: 200,
|
|
21
|
+
part7: 20,
|
|
22
|
+
part8: 2,
|
|
23
|
+
},
|
|
24
|
+
result: {
|
|
25
|
+
part1: 50,
|
|
26
|
+
part2: 120,
|
|
27
|
+
part3: 40,
|
|
28
|
+
part4: 0,
|
|
29
|
+
part5: 100,
|
|
30
|
+
part6: 220,
|
|
31
|
+
part7: 70,
|
|
32
|
+
part8: 2,
|
|
33
|
+
},
|
|
34
|
+
section1: {
|
|
35
|
+
script: "Your scaled score is between...",
|
|
36
|
+
details: ["asd", "qwe", "zxc"],
|
|
37
|
+
},
|
|
38
|
+
section2: {
|
|
39
|
+
script: "Your scaled score is between...",
|
|
40
|
+
details: ["123", "456", "789"],
|
|
18
41
|
},
|
|
19
|
-
section2: { script: "Your scaled score is between...",
|
|
20
|
-
details: ["123", '456', '789']
|
|
21
|
-
}
|
|
22
42
|
},
|
|
23
43
|
lswr: {
|
|
24
44
|
average: { listening: 55, speaking: 59, reading: 51, writing: 53 },
|
|
@@ -28,10 +48,14 @@ export const example = {
|
|
|
28
48
|
readingScript: { part7: "asd", part8: "qwe" },
|
|
29
49
|
writingScript: { part5: "asd", part6: "qwe" },
|
|
30
50
|
},
|
|
31
|
-
|
|
51
|
+
oci: [
|
|
32
52
|
{ category: "Communicative Competency (CC)", average: 0.25, result: 0.75 },
|
|
33
|
-
{ category: "Problem-Solving Competency (PS)", average: 0.35, result: 0.
|
|
34
|
-
{
|
|
53
|
+
{ category: "Problem-Solving Competency (PS)", average: 0.35, result: 0.9 },
|
|
54
|
+
{
|
|
55
|
+
category: "Interpersonal/Social Competency (IS)",
|
|
56
|
+
average: 0.45,
|
|
57
|
+
result: 0.68,
|
|
58
|
+
},
|
|
35
59
|
],
|
|
36
60
|
};
|
|
37
61
|
example.lswr.result.listening;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TranscriptAdvancedProps } from "./Transcript";
|
|
2
2
|
declare const _default: import("react").ForwardRefExoticComponent<{
|
|
3
|
-
props:
|
|
3
|
+
props: TranscriptAdvancedProps;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
5
|
export default _default;
|
|
@@ -5,7 +5,25 @@ import { cn } from "../../../../util";
|
|
|
5
5
|
import IdCard from "./organism/IdCard";
|
|
6
6
|
import { BarCardCol } from "./organism/BarCardCol";
|
|
7
7
|
function TranscriptDesign({ props }, ref) {
|
|
8
|
-
const { info,
|
|
8
|
+
const { info, score, lswr, oci } = props;
|
|
9
|
+
const section1Score = score.result.part1 +
|
|
10
|
+
score.result.part2 +
|
|
11
|
+
score.result.part3 +
|
|
12
|
+
score.result.part4;
|
|
13
|
+
const section2Score = score.result.part5 +
|
|
14
|
+
score.result.part6 +
|
|
15
|
+
score.result.part7 +
|
|
16
|
+
score.result.part8;
|
|
17
|
+
const section1Average = score.average.part1 +
|
|
18
|
+
score.average.part2 +
|
|
19
|
+
score.average.part3 +
|
|
20
|
+
score.average.part4;
|
|
21
|
+
const section2Average = score.average.part5 +
|
|
22
|
+
score.average.part6 +
|
|
23
|
+
score.average.part7 +
|
|
24
|
+
score.average.part8;
|
|
25
|
+
const section1Data = SectionBarGraphProps("Listening & Speaking", section1Score, 495, score.section1.script, score.section1.details, 100, section1Average);
|
|
26
|
+
const section2Data = SectionBarGraphProps("Reading & Writing", section2Score, 495, score.section2.script, score.section2.details, 100, section2Average);
|
|
9
27
|
const container = {
|
|
10
28
|
printSize: paperSize.a4,
|
|
11
29
|
backgrounds: "print:bg-white",
|
|
@@ -18,6 +36,17 @@ function TranscriptDesign({ props }, ref) {
|
|
|
18
36
|
spacings: "px-5 py-2",
|
|
19
37
|
backgrounds: "bg-gradient-to-r from-crimson-burgundy to-green-dark",
|
|
20
38
|
};
|
|
21
|
-
return (_jsxs("div", { ref: ref, className: cn(container), children: [_jsxs("div", { className: cn(headerBox), children: [_jsx("img", { src: "https://resource.tosel.co.kr/images/header-logo2.png", alt: "\uD1A0\uC140 \uB85C\uACE0", className: "h-10 py-1" }), _jsx("div", { className: "text-white font-bold text-base", children: "Official Score Report" })] }), _jsx(IdCard, { info: info }), _jsx(BarCardCol, {
|
|
39
|
+
return (_jsxs("div", { ref: ref, className: cn(container), children: [_jsxs("div", { className: cn(headerBox), children: [_jsx("img", { src: "https://resource.tosel.co.kr/images/header-logo2.png", alt: "\uD1A0\uC140 \uB85C\uACE0", className: "h-10 py-1" }), _jsx("div", { className: "text-white font-bold text-base", children: "Official Score Report" })] }), _jsx(IdCard, { info: info }), _jsx(BarCardCol, { section1: section1Data, section2: section2Data, theme: "red" })] }));
|
|
40
|
+
}
|
|
41
|
+
function SectionBarGraphProps(title, score, total, script, subScripts, scale, subScore) {
|
|
42
|
+
return {
|
|
43
|
+
title: title,
|
|
44
|
+
score: score,
|
|
45
|
+
subScore: subScore,
|
|
46
|
+
total: total,
|
|
47
|
+
scale: scale,
|
|
48
|
+
script: script,
|
|
49
|
+
subScripts: subScripts,
|
|
50
|
+
};
|
|
22
51
|
}
|
|
23
52
|
export default forwardRef(TranscriptDesign);
|
|
@@ -6,6 +6,9 @@ export function BarGraph({ score, subScore, total, title, scale, theme, }) {
|
|
|
6
6
|
const isLoaded = usePageLoaded();
|
|
7
7
|
const [currentWidth, setCurrentWidth] = useState(0);
|
|
8
8
|
const widthPercentage = (score / total) * 100;
|
|
9
|
+
const scalePercentage = scale && typeof scale === "number"
|
|
10
|
+
? ((Math.floor(total / scale) * scale * 100) / total).toFixed(0)
|
|
11
|
+
: undefined;
|
|
9
12
|
const subScorePercentage = subScore ? (subScore / total) * 100 : undefined;
|
|
10
13
|
useEffect(() => {
|
|
11
14
|
if (isLoaded) {
|
|
@@ -67,7 +70,10 @@ export function BarGraph({ score, subScore, total, title, scale, theme, }) {
|
|
|
67
70
|
width: `${widthPercentage}%`,
|
|
68
71
|
} }) }), _jsx("div", { className: cn(barFill, "opacity-100 print:opacity-0"), style: {
|
|
69
72
|
width: `${currentWidth}%`,
|
|
70
|
-
} }), _jsx("div", { className: cn(graphTitle), children: title })] }), _jsx("div", { className: "absolute
|
|
73
|
+
} }), _jsx("div", { className: cn(graphTitle), children: title })] }), _jsx("div", { className: "absolute -right-1 text-gray-medium font-medium text-xs", children: total }), _jsx("div", { className: cn("absolute left-0 flex flex-row h-full justify-between items-center text-sm text-gray-medium -translate-y-5 p-5"), style: {
|
|
74
|
+
width: `${scalePercentage}%`,
|
|
75
|
+
}, children: scaleTicks &&
|
|
76
|
+
scaleTicks.map((tick) => (_jsxs("div", { className: "w-0 relative text-xs", children: [tick != total && (_jsx("div", { className: "absolute left-3 -top-2", children: tick })), !(tick == 0 || tick == total) && (_jsx("div", { className: "absolute left-2 -top-1 h-4 w-[1px] bg-gray-medium/20" }))] }, tick))) }), _jsx("div", { className: "absolute flex w-full h-full justify-start items-center", style: {
|
|
71
77
|
transform: `translateX(${widthPercentage}%)`,
|
|
72
78
|
}, children: _jsx("div", { className: cn(scoreTag), children: score.toFixed(1) }) }), subScore && (_jsx("div", { className: "absolute flex w-full h-full justify-start items-center", style: {
|
|
73
79
|
transform: `translateX(${subScorePercentage}%)`,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Theme } from "../../
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { SectionBarProps, Theme } from "../../interface";
|
|
2
|
+
interface BarCardColProps {
|
|
3
|
+
section1: SectionBarProps;
|
|
4
|
+
section2: SectionBarProps;
|
|
5
5
|
theme: Theme;
|
|
6
|
-
}
|
|
6
|
+
}
|
|
7
|
+
export declare function BarCardCol({ section1, section2, theme }: BarCardColProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -3,7 +3,7 @@ import { cn } from "../../../../../util";
|
|
|
3
3
|
import CardTitle from "../atom/CardTitle";
|
|
4
4
|
import { printBoxStyles } from "../atom/PrintBoxStyles";
|
|
5
5
|
import { BarGraph } from "../molecule/BarGraph";
|
|
6
|
-
export function BarCardCol({
|
|
6
|
+
export function BarCardCol({ section1, section2, theme }) {
|
|
7
7
|
const cardWrapper = {
|
|
8
8
|
displays: "flex flex-col relative",
|
|
9
9
|
sizes: "w-full rounded-lg overflow-hidden",
|
|
@@ -16,9 +16,15 @@ export function BarCardCol({ data, theme, }) {
|
|
|
16
16
|
};
|
|
17
17
|
const ScriptStyles = {
|
|
18
18
|
displays: "flex justify-center items-center align-center",
|
|
19
|
-
spacings: "
|
|
19
|
+
spacings: "px-5",
|
|
20
20
|
sizes: "w-full h-full",
|
|
21
21
|
textStyles: "text-sm break-keep",
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const subScriptStyles = {
|
|
24
|
+
listStyles: "list-disc list-inside",
|
|
25
|
+
sizes: "w-full",
|
|
26
|
+
spacings: "p-5",
|
|
27
|
+
textStyles: "leading-tight text-xs",
|
|
28
|
+
};
|
|
29
|
+
return (_jsxs("div", { className: cn(cardWrapper, printBoxStyles), children: [_jsx(CardTitle, { title: "Grade and Average Score", theme: theme }), _jsxs("div", { className: "flex sm:flex-row flex-col sm:mt-0 mt-5", children: [_jsxs("div", { className: cn(SectionWrapper), children: [_jsx(BarGraph, { title: section1.title ? section1.title : "section1", score: section1.score, total: section1.total, subScore: section1.subScore, scale: section1.scale ? section1.scale : 10, theme: theme }), _jsx("div", { className: cn(ScriptStyles), children: section1.script }), _jsx("div", { className: cn(subScriptStyles), children: section1.subScripts?.map((text, index) => (_jsx("li", { children: text }, index))) })] }), _jsxs("div", { className: cn(SectionWrapper), children: [_jsx(BarGraph, { title: section2.title ? section2.title : "section2", score: section2.score, total: section2.total, subScore: section2.subScore, scale: section2.scale ? section2.scale : 10, theme: theme }), _jsx("div", { className: cn(ScriptStyles), children: section2.script }), _jsx("div", { className: cn(subScriptStyles), children: section2.subScripts?.map((text, index) => (_jsx("li", { children: text }, index))) })] })] })] }));
|
|
24
30
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Theme } from "../../
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { SectionBarProps, Theme } from "../../interface";
|
|
2
|
+
interface BarCardColProps {
|
|
3
|
+
section1: SectionBarProps;
|
|
4
|
+
section2: SectionBarProps;
|
|
5
5
|
theme: Theme;
|
|
6
|
-
}
|
|
6
|
+
}
|
|
7
|
+
export declare function BarCardRow({ section1, section2, theme }: BarCardColProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -3,7 +3,7 @@ import { cn } from "../../../../../util";
|
|
|
3
3
|
import CardTitle from "../atom/CardTitle";
|
|
4
4
|
import { printBoxStyles } from "../atom/PrintBoxStyles";
|
|
5
5
|
import { BarGraph } from "../molecule/BarGraph";
|
|
6
|
-
export function BarCardRow({
|
|
6
|
+
export function BarCardRow({ section1, section2, theme }) {
|
|
7
7
|
const cardWrapper = {
|
|
8
8
|
displays: "flex flex-col relative",
|
|
9
9
|
sizes: "w-full rounded-lg overflow-hidden",
|
|
@@ -20,5 +20,11 @@ export function BarCardRow({ data, theme, }) {
|
|
|
20
20
|
sizes: "w-full h-full",
|
|
21
21
|
textStyles: "text-sm break-keep",
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const subScriptStyles = {
|
|
24
|
+
listStyles: "list-disc list-inside",
|
|
25
|
+
sizes: "w-full",
|
|
26
|
+
spacings: "p-5",
|
|
27
|
+
textStyles: "leading-tight text-xs",
|
|
28
|
+
};
|
|
29
|
+
return (_jsxs("div", { className: cn(cardWrapper, printBoxStyles), children: [_jsx(CardTitle, { title: "Grade and Average Score", theme: theme }), _jsxs("div", { className: "flex flex-col sm:my-0 mt-5", children: [_jsxs("div", { className: cn(SectionWrapper), children: [_jsx(BarGraph, { title: section1.title ? section1.title : "section1", score: section1.score, total: section1.total, subScore: section1.subScore, scale: section1.scale ? section1.scale : 10, theme: theme }), _jsx("div", { className: cn(ScriptStyles), children: section1.script })] }), _jsxs("div", { className: cn(SectionWrapper), children: [_jsx(BarGraph, { title: section2.title ? section2.title : "section2", score: section2.score, total: section2.total, subScore: section2.subScore, scale: section2.scale ? section2.scale : 10, theme: theme }), _jsx("div", { className: cn(ScriptStyles), children: section2.script })] })] })] }));
|
|
24
30
|
}
|
|
@@ -26,7 +26,7 @@ export default function IdCard({ info }) {
|
|
|
26
26
|
displays: "shrink-0 hidden sm:block relative overflow-hidden",
|
|
27
27
|
sizes: "h-30 p-2 aspect-square rounded-lg",
|
|
28
28
|
textStyles: "text-jr-blue",
|
|
29
|
-
backgrounds: "print:border-2 print:border-green-dark",
|
|
29
|
+
backgrounds: info.qrSrc && "print:border-2 print:border-green-dark",
|
|
30
30
|
groupAction: info.qrSrc && "group duration-300 hover:scale-110 bg-white",
|
|
31
31
|
};
|
|
32
32
|
const copyButtonWrapper = {
|
|
@@ -53,5 +53,5 @@ export default function IdCard({ info }) {
|
|
|
53
53
|
: "rounded-md w-full h-full",
|
|
54
54
|
printOptions: "print:w-fit print:h-fit print:px-2 print:py-1",
|
|
55
55
|
};
|
|
56
|
-
return (_jsxs("div", { className: "flex flex-row w-full h-fit mt-5 gap-5", children: [_jsxs("div", { className: cn(cardWrapper), children: [_jsxs("div", { className: "flex flex-row justify-between items-center pb-1 w-full h-fit border-b-2 border-green-dark", children: [_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate font-bold text-green-dark", children: [info.name, " ", info.nickname && _jsxs("span", { children: [" \u00A0/ ", info.nickname] })] }), _jsx("div", { className: "flex flex-[1] text-sm", children: info.birthday })] }), _jsx("div", { className: "w-fit h-full xs:block hidden", children: _jsx("div", { className: cn(levelTag), children: GetStyleFromLevel(info.level, "name") }) })] }), _jsxs("div", { className: "flex flex-col xs:flex-row w-full h-fit mt-2", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC218\uD5D8\uBC88\uD638:" }), _jsx("div", { className: "flex flex-[3]", children: info.code })] }), _jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC2DC\uD5D8\uC77C:" }), _jsx("div", { className: "flex flex-[3]", children: info.examDate })] })] }), _jsxs("div", { className: "flex flex-col xs:flex-row w-full h-fit", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC720\uD6A8\uAE30\uAC04:" }), _jsx("div", { className: "flex flex-[3]", children: info.examValidAt })] }), _jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC2DC\uD5D8\uD68C\uCC28:" }), _jsx("div", { className: "flex flex-[3]", children: info.examName })] })] })] }), _jsxs("div", { className: cn(qrBox), children: [!info.qrSrc && (_jsx("div", { className: "absolute top-0 left-0 w-full h-full flex justify-center items-center", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/logo-itc-classic.png", alt: "" }) })), info.qrSrc && (_jsxs(_Fragment, { children: [_jsx(QRCode, { value: info.qrSrc, className: "w-full h-full" }), _jsx("div", { className: "absolute top-0 left-0 w-full h-full flex justify-center items-center ", children: _jsx("img", { src: "/images/img-favicon-main.png", alt: "", className: "size-8" }) }), _jsx("div", { className: cn(copyButtonWrapper), children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("div", { className: "flex justify-center items-center ", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", className: "size-6 stroke-green-dark", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" }) }) }), _jsx("div", { className: cn(copyButton), onClick: () => copyToClipboard(info.qrSrc), children: "\uACF5\uC720\uD558\uAE30" })] }) })] }))] }), _jsxs("div", { className: "flex flex-col shrink-0", children: [_jsxs("div", { className: cn(imgBox), children: [_jsx("img", { src: info.imgSrc, alt: "", className: "object-cover w-
|
|
56
|
+
return (_jsxs("div", { className: "flex flex-row w-full h-fit mt-5 gap-5", children: [_jsxs("div", { className: cn(cardWrapper), children: [_jsxs("div", { className: "flex flex-row justify-between items-center pb-1 w-full h-fit border-b-2 border-green-dark", children: [_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate font-bold text-green-dark", children: [info.name, " ", info.nickname && _jsxs("span", { children: [" \u00A0/ ", info.nickname] })] }), _jsx("div", { className: "flex flex-[1] text-sm", children: info.birthday })] }), _jsx("div", { className: "w-fit h-full xs:block hidden", children: _jsx("div", { className: cn(levelTag), children: GetStyleFromLevel(info.level, "name") }) })] }), _jsxs("div", { className: "flex flex-col xs:flex-row w-full h-fit mt-2", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC218\uD5D8\uBC88\uD638:" }), _jsx("div", { className: "flex flex-[3]", children: info.code })] }), _jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC2DC\uD5D8\uC77C:" }), _jsx("div", { className: "flex flex-[3]", children: info.examDate })] })] }), _jsxs("div", { className: "flex flex-col xs:flex-row w-full h-fit", children: [_jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC720\uD6A8\uAE30\uAC04:" }), _jsx("div", { className: "flex flex-[3]", children: info.examValidAt })] }), _jsxs("div", { className: "flex flex-[3] text-sm truncate", children: [_jsx("div", { className: "flex flex-[2] text-green-dark font-bold", children: "\uC2DC\uD5D8\uD68C\uCC28:" }), _jsx("div", { className: "flex flex-[3]", children: info.examName })] })] })] }), _jsxs("div", { className: cn(qrBox), children: [!info.qrSrc && (_jsx("div", { className: "absolute top-0 left-0 w-full h-full flex justify-center items-center", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/logo-itc-classic.png", alt: "" }) })), info.qrSrc && (_jsxs(_Fragment, { children: [_jsx(QRCode, { value: info.qrSrc, className: "w-full h-full" }), _jsx("div", { className: "absolute top-0 left-0 w-full h-full flex justify-center items-center ", children: _jsx("img", { src: "/images/img-favicon-main.png", alt: "", className: "size-8" }) }), _jsx("div", { className: cn(copyButtonWrapper), children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("div", { className: "flex justify-center items-center ", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", className: "size-6 stroke-green-dark", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" }) }) }), _jsx("div", { className: cn(copyButton), onClick: () => copyToClipboard(info.qrSrc), children: "\uACF5\uC720\uD558\uAE30" })] }) })] }))] }), _jsxs("div", { className: "flex flex-col shrink-0", children: [_jsxs("div", { className: cn(imgBox), children: [_jsx("img", { src: info.imgSrc, alt: "", className: "object-cover w-auto h-full" }), _jsx("div", { className: "absolute w-full h-full flex items-center justify-center", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", className: "size-6 stroke-jr-blue/50", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" }) }) })] }), !isXS && (_jsx("div", { className: "w-full h-full mt-3 flex", children: _jsx("div", { className: "w-full h-full block xs:hidden", children: _jsx("div", { className: cn(levelTag), children: GetStyleFromLevel(info.level, "name") }) }) }))] })] }));
|
|
57
57
|
}
|
|
@@ -5,7 +5,7 @@ declare const Transcript: {
|
|
|
5
5
|
props: import("./design/Transcript").TranscriptProps;
|
|
6
6
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
7
|
AdvancePaper: import("react").ForwardRefExoticComponent<{
|
|
8
|
-
props: import("./design/Transcript").
|
|
8
|
+
props: import("./design/Transcript").TranscriptAdvancedProps;
|
|
9
9
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
10
|
};
|
|
11
11
|
export default Transcript;
|
package/package.json
CHANGED
package/tailwind.config.ts
CHANGED
|
@@ -37,6 +37,10 @@ export default {
|
|
|
37
37
|
green: "0 0px 10px 0px rgba(16, 86, 82, 0.38)",
|
|
38
38
|
},
|
|
39
39
|
keyframes: {
|
|
40
|
+
smallBounce: {
|
|
41
|
+
"0%, 100%": { transform: "translateY(-5%)" },
|
|
42
|
+
"50%": { transform: "translateY(0)" },
|
|
43
|
+
},
|
|
40
44
|
grow: {
|
|
41
45
|
"0%": { height: "60px" },
|
|
42
46
|
"100%": { height: "120px" },
|
|
@@ -71,6 +75,7 @@ export default {
|
|
|
71
75
|
animation: {
|
|
72
76
|
grow: "grow 0.2s ease-in-out forwards",
|
|
73
77
|
shrink: "shrink 0.2s ease-in-out forwards",
|
|
78
|
+
smallBounce: "smallBounce 1s infinite",
|
|
74
79
|
},
|
|
75
80
|
|
|
76
81
|
colors: {
|
package/text/LineBreaks.js
CHANGED
package/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.202
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function Gomito(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export default function Gomito() {
|
|
3
|
-
return (_jsxs("div", { className: "max-w-[796px] bg-[#F6F6F6] p-6 m-0 h-auto w-full rounded-2xl sm:p-16 break-keep", children: [_jsxs("div", { className: "flex flex-row items-center", children: [_jsx("div", { className: "w-16", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/img-icon-KU.png", alt: "", className: "object-cover" }) }), _jsxs("div", { children: [_jsx("div", { className: "text-sm text-black break-keep", children: "\uACE0\uB824\uB300\uD559\uAD50 | \uBBF8\uB798\uAD50\uC721\uC6D0" }), _jsx("div", { className: "text-2xl text-red-800 font-bold", children: "\uD1A0\uC140 \uC804\uBB38\uAC00 \uACFC\uC815" })] })] }), _jsxs("div", { className: "flex flex-col-reverse sm:flex-row ", children: [_jsxs("div", { className: "text-base w-full h-fit mt-0 rounded-lg bg-stone-200 p-4 sm:w-80 sm:flex-none sm:mt-6", children: [_jsxs("div", { className: "flex flex-row p-1", children: [_jsx("div", { className: "text-red-800 font-bold text-sm sm:text-base", children: "\uB300\uC0C1" }), _jsx("div", { className: "ml-4 text-stone-500 font-bold text-sm sm:text-base", children: "\uD1A0\uC140 \uB7A9 \uC9C0\uC815\uAD50\uC721\uAE30\uAD00 / \uD76C\uB9DD\uAE30\uAD00 \uD559\uC6D0\uC7A5 \uBC0F \uC18C\uC18D \uAC15\uC0AC\uC9C4" })] }), _jsxs("div", { className: "flex flex-row p-1", children: [_jsx("div", { className: "text-red-800 font-bold text-sm sm:text-base", children: "\uD61C\uD0DD" }), _jsxs("div", { className: "ml-4 text-stone-500 font-bold text-sm sm:text-base", children: [_jsx("div", { children: "\uACE0\uB824\uB300\uD559\uAD50 \uCD1D\uC7A5 \uBC0F \uBBF8\uB798\uAD50\uC721\uC6D0\uC7A5 \uBA85\uC758 \uC218\uB8CC\uC99D \uBC1C\uAE09" }), _jsx("div", { children: "\uB2E4\uC591\uD55C \uAE30\uAD00 \uBC0F \uAD50\uC218\uC9C4\uACFC\uC758 \uB124\uD2B8\uC6CC\uD06C" })] })] }), _jsxs("div", { className: "flex flex-row p-1", children: [_jsx("div", { className: "text-red-800 font-bold text-sm sm:text-base", children: "\uBAA9\uC801" }), _jsx("div", { className: "ml-4 text-stone-500 font-bold text-sm sm:text-base", children: "TOSEL \uAD50\uC721\uACFC\uC815\uC744 \uAE30\uBC18\uC73C\uB85C \uD55C \uC601\uC5B4\uAD50\uC721 \uC804\uBB38\uAC00 \uC591\uC131" })] })] }), _jsx("div", { className: "w-auto block ml-4 sm:w-full", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/img-gomito-teacher.png", alt: "\uC2A4\uD53C\uD0B9\uC2DC\uB9AC\uC988\uC774\uBBF8\uC9C0" }) })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xl font-bold text-red-800 mt-8", children: "\uC65C \uD1A0\uC140\uC5D0\uC11C \uBC30\uC6CC\uC57C \uD560\uAE4C\uC694?" }), _jsx("div", { className: "text-sm font-medium text-stone-500 mt-1 sm:text-base", children: "20\uB144\uAC04 \uC601\uC5B4\uD3C9\uAC00\uC2DC\uC7A5\uC744 \uC120\uB3C4\uD574\uC628 \uD1A0\uC140\uC740 \uCD95\uC801\uB41C \uB370\uC774\uD130\uB97C \uAE30\uBC18\uC73C\uB85C \uC218\uC900 \uB192\uC740 \uC218\uC5C5\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4" }), _jsx("div", { className: "text-sm font-medium text-stone-500 mt-1 sm:text-base", children: "\uB0A8\uB2E4\uB978 \uAD00\uC810\uC73C\uB85C, \uD1A0\uC140 \uCEE8\uD150\uCE20\uB97C \uD65C\uC6A9\uD560 \uC218 \uC788\uB294 \uD655\uC2E4\uD55C \uBC29\uBC95\uC744 \uC54C\uB824\uB4DC\uB9BD\uB2C8\uB2E4" }), _jsx("div", { className: "w-full h-fit overflow-hidden rounded-xl mt-8", children: _jsx("img", { src: "https://resource.tosel.co.kr/images/img-koreauniversity.png", alt: "" }) }), _jsx("div", { className: "text-xl font-bold text-red-800 mt-8", children: "\uB0A8\uB2E4\uB978 \uD1A0\uC140\uC758 \uD61C\uD0DD" }), _jsx("div", { className: "text-sm font-medium text-stone-500 mt-1 sm:text-base", children: "\uACE0\uB824\uB300\uD559\uAD50 \uBBF8\uB798\uAD50\uC721\uC6D0\uACFC \uD568\uAED8\uD558\uB294 TOSEL \uC804\uBB38\uAC00 \uACFC\uC815" }), _jsx("div", { className: "text-sm font-medium text-stone-500 mt-1 sm:text-base", children: "\uCC38\uC5EC\uD558\uBA74 \uC774\uB7F0 \uD61C\uD0DD\uC774 \uC788\uC5B4\uC694" }), _jsxs("div", { className: "flex flex-wrap w-full gap-4 mt-4", children: [_jsxs("div", { className: "flex-1 bg-stone-200 min-w-60 h-30 p-4 rounded-lg flex flex-row border-2 border-stone-300", 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 stroke-stone-800", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418" }) }) }), _jsxs("div", { className: "flex flex-col ml-4 text-stone-500", children: [_jsx("div", { className: "font-bold text-base text-stone-800 sm:text-lg", children: "\uB2E4\uC591\uD55C \uB124\uD2B8\uC6CC\uD0B9 \uAE30\uD68C" }), _jsx("div", { className: "font-medium text-sm mt-2", children: "\uAD50\uC218\uC9C4, \uAC01 \uAE30\uAD00\uACFC\uC758 \uB124\uD2B8\uC6CC\uD0B9 \uAE30\uD68C\uAC00 \uC8FC\uC5B4\uC9D1\uB2C8\uB2E4." })] })] }), _jsxs("div", { className: "flex-1 bg-stone-200 min-w-60 h-30 p-4 rounded-lg flex flex-row border-2 border-stone-300", 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 stroke-stone-800", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M9 12.75 11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 0 1-1.043 3.296 3.745 3.745 0 0 1-3.296 1.043A3.745 3.745 0 0 1 12 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 0 1-3.296-1.043 3.745 3.745 0 0 1-1.043-3.296A3.745 3.745 0 0 1 3 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 0 1 1.043-3.296 3.746 3.746 0 0 1 3.296-1.043A3.746 3.746 0 0 1 12 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 0 1 3.296 1.043 3.746 3.746 0 0 1 1.043 3.296A3.745 3.745 0 0 1 21 12Z" }) }) }), _jsxs("div", { className: "flex flex-col ml-4 text-stone-500", children: [_jsx("div", { className: "font-bold text-base text-stone-800 sm:text-lg", children: "\uACF5\uC2E0\uB825 \uAC15\uD654" }), _jsx("div", { className: "font-medium text-sm mt-2", children: "\uACE0\uB824\uB300\uD559\uAD50 \uCD1D\uC7A5 \uBA85\uC758\uC758 \uC218\uB8CC\uC99D\uC774 \uBC1C\uAE09\uB429\uB2C8\uB2E4." })] })] }), _jsxs("div", { className: "flex-1 bg-stone-200 min-w-60 h-30 p-4 rounded-lg flex flex-row border-2 border-stone-300", 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 stroke-stone-800", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25" }) }) }), _jsxs("div", { className: "flex flex-col ml-4 text-stone-500", children: [_jsx("div", { className: "font-bold text-base text-stone-800 sm:text-lg", children: "\uC601\uC5B4 \uAD50\uC721 \uCEE4\uB9AC\uD058\uB7FC" }), _jsx("div", { className: "font-medium text-sm mt-2", children: "\uD1A0\uC140 \uCEE8\uD150\uCE20\uB97C \uD65C\uC6A9\uD560 \uC218 \uC788\uB294 \uCEE4\uB9AC\uD058\uB7FC\uC744 \uBC30\uC6B8 \uC218 \uC788\uC2B5\uB2C8\uB2E4" })] })] }), _jsxs("div", { className: "flex-1 bg-stone-200 min-w-60 h-30 p-4 rounded-lg flex flex-row border-2 border-stone-300", 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 stroke-stone-800", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5" }) }) }), _jsxs("div", { className: "flex flex-col ml-4 text-stone-500", children: [_jsx("div", { className: "font-bold text-base text-stone-800 sm:text-lg", children: "\uC804\uBB38\uC9C0\uC2DD \uC2B5\uB4DD" }), _jsx("div", { className: "font-medium text-sm mt-2", children: "\uC77C\uBC18\uC801 \uC601\uC5B4\uAD50\uC218\uBC95\uC5D0 \uB300\uD55C \uC804\uBB38\uC9C0\uC2DD\uC744 \uAC15\uD654\uD569\uB2C8\uB2E4" })] })] })] }), _jsx("div", { className: "text-xl font-bold text-red-800 mt-8", children: "\uC9C0\uAE08 \uBC14\uB85C \uC2E0\uCCAD\uD558\uC138\uC694" }), _jsx("div", { className: "text-sm font-medium text-stone-500 mt-1 sm:text-base", children: "9\uC6D4\uC5D0 \uAC1C\uAC15\uD558\uB294 \uC804\uBB38\uAC00 \uACFC\uC815\uC5D0 \uC9C0\uC6D0\uAC00\uB2A5\uD574\uC694" }), _jsxs("div", { className: "w-full h-fit p-4 bg-red-800 rounded-lg mt-4 flex flex-col gap-2", children: [_jsxs("div", { className: "flex flex-row gap-4", children: [_jsx("div", { className: "text-base text-white font-bold", children: "\uC804\uD615\uAE30\uAC04" }), _jsx("div", { className: "text-base text-white", children: "2024\uB144 8\uC6D4 24\uC77C\uAE4C\uC9C0" })] }), _jsxs("div", { className: "flex flex-row gap-4", children: [_jsx("div", { className: "text-base text-white font-bold", children: "\uC804\uD615\uBC29\uBC95" }), _jsx("div", { className: "text-base text-white", children: "\uC11C\uB958 \uBC0F \uBA74\uC811\uC804\uD615" })] }), _jsxs("div", { className: "flex flex-row gap-4", children: [_jsx("div", { className: "text-base text-white font-bold", children: "\uD569\uACA9\uC790 \uBC1C\uD45C" }), _jsx("div", { className: "text-base text-white", children: "2024\uB144 8\uC6D4 26\uC77C" })] })] }), _jsx("div", { className: "text-xs mt-1 text-red-800", children: "*\uC815\uC6D0\uCDA9\uC871\uC5D0 \uB530\uB77C \uCC28\uD6C4 \uAC1C\uAC15 \uC5EC\uBD80\uAC00 \uACB0\uC815\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4" }), _jsx("div", { className: "text-sm mt-4 text-red-800 text-center p-4 bg-stone-200 rounded-lg", children: "\uAD00\uB828\uBB38\uC758: tosel_lab@tosel.co.kr" })] })] }));
|
|
4
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type Theme = "green" | "red";
|
|
File without changes
|