@edu-tosel/design 1.0.265 → 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 (171) 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/board/template/CanvasBoard.js +1 -1
  13. package/globals.css +14 -2
  14. package/interface/Board.d.ts +11 -1
  15. package/interface/Shelf.d.ts +1 -0
  16. package/interface/domain/Tag.d.ts +1 -1
  17. package/interface/domain/Tag.js +2 -1
  18. package/interface/widget/Carousel.d.ts +1 -1
  19. package/layout/design/Shelf.design.js +2 -2
  20. package/layout/index.d.ts +0 -9
  21. package/layout/index.js +0 -9
  22. package/layout/template/Ticket/Extension.js +2 -2
  23. package/layout/template/home/Promotion.js +1 -0
  24. package/layout/template/home/Service.js +1 -0
  25. package/layout/template/home/layout/Carousel.js +27 -8
  26. package/layout/template/home/layout/Navigation.js +117 -22
  27. package/package.json +2 -2
  28. package/util/createSearch.d.ts +5 -0
  29. package/util/createSearch.js +235 -0
  30. package/util/handlePrint.d.ts +1 -1
  31. package/util/handlePrint.js +1 -1
  32. package/util/index.d.ts +1 -0
  33. package/util/index.js +1 -0
  34. package/version.txt +1 -1
  35. package/widget/template/Input/index.js +8 -0
  36. package/layout/template/About/SectionA.d.ts +0 -1
  37. package/layout/template/About/SectionA.js +0 -51
  38. package/layout/template/About/SectionB.d.ts +0 -2
  39. package/layout/template/About/SectionB.js +0 -55
  40. package/layout/template/About/SectionC.d.ts +0 -1
  41. package/layout/template/About/SectionC.js +0 -35
  42. package/layout/template/About/SectionCCards.d.ts +0 -13
  43. package/layout/template/About/SectionCCards.js +0 -13
  44. package/layout/template/About/SectionCD.d.ts +0 -1
  45. package/layout/template/About/SectionCD.js +0 -15
  46. package/layout/template/About/SectionCLeaf.d.ts +0 -15
  47. package/layout/template/About/SectionCLeaf.js +0 -104
  48. package/layout/template/About/SectionD.d.ts +0 -1
  49. package/layout/template/About/SectionD.js +0 -131
  50. package/layout/template/About/SectionE.d.ts +0 -1
  51. package/layout/template/About/SectionE.js +0 -7
  52. package/layout/template/About/SectionECards.d.ts +0 -1
  53. package/layout/template/About/SectionECards.js +0 -79
  54. package/layout/template/About/SectionF.d.ts +0 -1
  55. package/layout/template/About/SectionF.js +0 -4
  56. package/layout/template/About/SectionG.d.ts +0 -10
  57. package/layout/template/About/SectionG.js +0 -27
  58. package/layout/template/About/index.d.ts +0 -19
  59. package/layout/template/About/index.js +0 -19
  60. package/layout/template/Books/Books.layout.d.ts +0 -1
  61. package/layout/template/Books/Books.layout.js +0 -13
  62. package/layout/template/Books/SectionA.d.ts +0 -2
  63. package/layout/template/Books/SectionA.js +0 -430
  64. package/layout/template/Books/index.d.ts +0 -5
  65. package/layout/template/Books/index.js +0 -5
  66. package/layout/template/MonthlyProgressReport/Layout.d.ts +0 -4
  67. package/layout/template/MonthlyProgressReport/Layout.js +0 -52
  68. package/layout/template/MonthlyProgressReport/Report.d.ts +0 -46
  69. package/layout/template/MonthlyProgressReport/Report.js +0 -124
  70. package/layout/template/MonthlyProgressReport/index.d.ts +0 -8
  71. package/layout/template/MonthlyProgressReport/index.js +0 -7
  72. package/layout/template/Olympiad/Banner.d.ts +0 -1
  73. package/layout/template/Olympiad/Banner.js +0 -31
  74. package/layout/template/Olympiad/Conditions.d.ts +0 -1
  75. package/layout/template/Olympiad/Conditions.js +0 -168
  76. package/layout/template/Olympiad/Features.d.ts +0 -1
  77. package/layout/template/Olympiad/Features.js +0 -44
  78. package/layout/template/Olympiad/Olympiad.layout.d.ts +0 -1
  79. package/layout/template/Olympiad/Olympiad.layout.js +0 -19
  80. package/layout/template/Olympiad/Prizes.d.ts +0 -1
  81. package/layout/template/Olympiad/Prizes.js +0 -49
  82. package/layout/template/Olympiad/Sponsors.d.ts +0 -1
  83. package/layout/template/Olympiad/Sponsors.js +0 -31
  84. package/layout/template/Olympiad/Videoset.d.ts +0 -1
  85. package/layout/template/Olympiad/Videoset.js +0 -71
  86. package/layout/template/Olympiad/index.d.ts +0 -15
  87. package/layout/template/Olympiad/index.js +0 -15
  88. package/layout/template/Regexam/Banner.d.ts +0 -1
  89. package/layout/template/Regexam/Banner.js +0 -183
  90. package/layout/template/Regexam/Evaluation.d.ts +0 -3
  91. package/layout/template/Regexam/Evaluation.js +0 -132
  92. package/layout/template/Regexam/OfflineExam.d.ts +0 -4
  93. package/layout/template/Regexam/OfflineExam.js +0 -204
  94. package/layout/template/Regexam/Regexam.layout.d.ts +0 -1
  95. package/layout/template/Regexam/Regexam.layout.js +0 -13
  96. package/layout/template/Regexam/Types.d.ts +0 -1
  97. package/layout/template/Regexam/Types.js +0 -294
  98. package/layout/template/Regexam/index.d.ts +0 -11
  99. package/layout/template/Regexam/index.js +0 -11
  100. package/layout/template/Transcript/Layout.d.ts +0 -6
  101. package/layout/template/Transcript/Layout.js +0 -52
  102. package/layout/template/Transcript/design/Transcript.d.ts +0 -228
  103. package/layout/template/Transcript/design/Transcript.design.d.ts +0 -13
  104. package/layout/template/Transcript/design/Transcript.design.js +0 -58
  105. package/layout/template/Transcript/design/Transcript.js +0 -181
  106. package/layout/template/Transcript/design/TranscriptAdvanced.design.d.ts +0 -5
  107. package/layout/template/Transcript/design/TranscriptAdvanced.design.js +0 -55
  108. package/layout/template/Transcript/design/atom/CardTitle.d.ts +0 -5
  109. package/layout/template/Transcript/design/atom/CardTitle.js +0 -13
  110. package/layout/template/Transcript/design/atom/CardTitleDivided.d.ts +0 -0
  111. package/layout/template/Transcript/design/atom/CardTitleDivided.js +0 -1
  112. package/layout/template/Transcript/design/atom/GetPartDescriptionFromLevel.d.ts +0 -3
  113. package/layout/template/Transcript/design/atom/GetPartDescriptionFromLevel.js +0 -4
  114. package/layout/template/Transcript/design/atom/GetPartTitleFromLevel.d.ts +0 -3
  115. package/layout/template/Transcript/design/atom/GetPartTitleFromLevel.js +0 -4
  116. package/layout/template/Transcript/design/atom/GetStyleFromLevel.d.ts +0 -2
  117. package/layout/template/Transcript/design/atom/GetStyleFromLevel.js +0 -4
  118. package/layout/template/Transcript/design/atom/LevelToPartDescriptionMap.d.ts +0 -6
  119. package/layout/template/Transcript/design/atom/LevelToPartDescriptionMap.js +0 -95
  120. package/layout/template/Transcript/design/atom/LevelToPartTitleMap.d.ts +0 -6
  121. package/layout/template/Transcript/design/atom/LevelToPartTitleMap.js +0 -95
  122. package/layout/template/Transcript/design/atom/LevelToStyleMap.d.ts +0 -6
  123. package/layout/template/Transcript/design/atom/LevelToStyleMap.js +0 -42
  124. package/layout/template/Transcript/design/atom/PrintBoxStyles.d.ts +0 -4
  125. package/layout/template/Transcript/design/atom/PrintBoxStyles.js +0 -4
  126. package/layout/template/Transcript/design/molecule/BarGraph.d.ts +0 -11
  127. package/layout/template/Transcript/design/molecule/BarGraph.js +0 -81
  128. package/layout/template/Transcript/design/molecule/BarGraphDuo.d.ts +0 -10
  129. package/layout/template/Transcript/design/molecule/BarGraphDuo.js +0 -6
  130. package/layout/template/Transcript/design/molecule/BarGraphMulti.d.ts +0 -11
  131. package/layout/template/Transcript/design/molecule/BarGraphMulti.js +0 -9
  132. package/layout/template/Transcript/design/molecule/CircularGauge.d.ts +0 -10
  133. package/layout/template/Transcript/design/molecule/CircularGauge.js +0 -68
  134. package/layout/template/Transcript/design/molecule/LSWRChart.d.ts +0 -11
  135. package/layout/template/Transcript/design/molecule/LSWRChart.js +0 -44
  136. package/layout/template/Transcript/design/molecule/LevelIndex.d.ts +0 -3
  137. package/layout/template/Transcript/design/molecule/LevelIndex.js +0 -14
  138. package/layout/template/Transcript/design/molecule/MIChart.d.ts +0 -1
  139. package/layout/template/Transcript/design/molecule/MIChart.js +0 -51
  140. package/layout/template/Transcript/design/molecule/OCIChart.d.ts +0 -1
  141. package/layout/template/Transcript/design/molecule/OCIChart.js +0 -60
  142. package/layout/template/Transcript/design/molecule/RadarGraph.d.ts +0 -10
  143. package/layout/template/Transcript/design/molecule/RadarGraph.js +0 -5
  144. package/layout/template/Transcript/design/organism/BarCardCol.d.ts +0 -8
  145. package/layout/template/Transcript/design/organism/BarCardCol.js +0 -30
  146. package/layout/template/Transcript/design/organism/BarCardRow.d.ts +0 -8
  147. package/layout/template/Transcript/design/organism/BarCardRow.js +0 -30
  148. package/layout/template/Transcript/design/organism/HonorCard.d.ts +0 -4
  149. package/layout/template/Transcript/design/organism/HonorCard.js +0 -16
  150. package/layout/template/Transcript/design/organism/IdCard.d.ts +0 -8
  151. package/layout/template/Transcript/design/organism/IdCard.js +0 -64
  152. package/layout/template/Transcript/design/organism/IntelligenceCard.d.ts +0 -12
  153. package/layout/template/Transcript/design/organism/IntelligenceCard.js +0 -39
  154. package/layout/template/Transcript/design/organism/NationalPositionCard.d.ts +0 -4
  155. package/layout/template/Transcript/design/organism/NationalPositionCard.js +0 -14
  156. package/layout/template/Transcript/design/organism/OCICard.d.ts +0 -4
  157. package/layout/template/Transcript/design/organism/OCICard.js +0 -17
  158. package/layout/template/Transcript/design/organism/PerformanceCard.d.ts +0 -5
  159. package/layout/template/Transcript/design/organism/PerformanceCard.js +0 -25
  160. package/layout/template/Transcript/design/organism/RadarCard.d.ts +0 -7
  161. package/layout/template/Transcript/design/organism/RadarCard.js +0 -54
  162. package/layout/template/Transcript/design/organism/ResultGaugeCard.d.ts +0 -7
  163. package/layout/template/Transcript/design/organism/ResultGaugeCard.js +0 -19
  164. package/layout/template/Transcript/design/organism/ScoreCard.d.ts +0 -4
  165. package/layout/template/Transcript/design/organism/ScoreCard.js +0 -11
  166. package/layout/template/Transcript/design/organism/SectionRadarCard.d.ts +0 -8
  167. package/layout/template/Transcript/design/organism/SectionRadarCard.js +0 -42
  168. package/layout/template/Transcript/index.d.ts +0 -11
  169. package/layout/template/Transcript/index.js +0 -9
  170. package/layout/template/Transcript/interface.d.ts +0 -50
  171. package/layout/template/Transcript/interface.js +0 -1
package/asset/SVG.d.ts CHANGED
@@ -10,6 +10,8 @@ import TOSEL from "./svg/TOSEL";
10
10
  import HallofFame from "./svg/HallofFame";
11
11
  import Print from "./svg/Print";
12
12
  import User from "./svg/User";
13
+ import Search from "./svg/Search";
14
+ import MiniClose from "./svg/MiniClose";
13
15
  declare const SVG: {
14
16
  TOSEL: typeof TOSEL;
15
17
  Close: typeof Close;
@@ -63,5 +65,7 @@ declare const SVG: {
63
65
  };
64
66
  HallofFame: typeof HallofFame;
65
67
  User: typeof User;
68
+ Search: typeof Search;
69
+ MiniClose: typeof MiniClose;
66
70
  };
67
71
  export default SVG;
package/asset/SVG.js CHANGED
@@ -15,6 +15,8 @@ import Collab from "./svg/Collab";
15
15
  import HallofFame from "./svg/HallofFame";
16
16
  import Print from "./svg/Print";
17
17
  import User from "./svg/User";
18
+ import Search from "./svg/Search";
19
+ import MiniClose from "./svg/MiniClose";
18
20
  const SVG = {
19
21
  TOSEL,
20
22
  Close,
@@ -33,5 +35,7 @@ const SVG = {
33
35
  Collab,
34
36
  HallofFame,
35
37
  User,
38
+ Search,
39
+ MiniClose,
36
40
  };
37
41
  export default SVG;
package/asset/SVG.tsx CHANGED
@@ -15,6 +15,8 @@ import Collab from "./svg/Collab";
15
15
  import HallofFame from "./svg/HallofFame";
16
16
  import Print from "./svg/Print";
17
17
  import User from "./svg/User";
18
+ import Search from "./svg/Search";
19
+ import MiniClose from "./svg/MiniClose";
18
20
 
19
21
  const SVG = {
20
22
  TOSEL,
@@ -34,6 +36,8 @@ const SVG = {
34
36
  Collab,
35
37
  HallofFame,
36
38
  User,
39
+ Search,
40
+ MiniClose,
37
41
  };
38
42
 
39
43
  export default SVG;
@@ -0,0 +1,4 @@
1
+ import { OnClick } from "../../interface";
2
+ export default function MiniClose({ onClick }: {
3
+ onClick?: OnClick;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export default function MiniClose({ onClick }) {
3
+ return (_jsx("svg", { onClick: onClick, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", className: "size-5", children: _jsx("path", { "fill-rule": "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z", "clip-rule": "evenodd" }) }));
4
+ }
@@ -0,0 +1,19 @@
1
+ import { OnClick } from "../../interface";
2
+
3
+ export default function MiniClose({ onClick }: { onClick?: OnClick }) {
4
+ return (
5
+ <svg
6
+ onClick={onClick}
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ viewBox="0 0 20 20"
9
+ fill="currentColor"
10
+ className="size-5"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ d="M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z"
15
+ clip-rule="evenodd"
16
+ />
17
+ </svg>
18
+ );
19
+ }
@@ -0,0 +1 @@
1
+ export default function Search(): 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 Search() {
3
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", children: [_jsx("path", { "vector-effect": "non-scaling-stroke", d: "m19 19-3.5-3.5", stroke: "#475569", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), _jsx("circle", { "vector-effect": "non-scaling-stroke", cx: "11", cy: "11", r: "6", stroke: "#475569", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })] }));
4
+ }
@@ -0,0 +1,24 @@
1
+ export default function Search() {
2
+ return (
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
4
+ <path
5
+ vector-effect="non-scaling-stroke"
6
+ d="m19 19-3.5-3.5"
7
+ stroke="#475569"
8
+ stroke-width="2"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ />
12
+ <circle
13
+ vector-effect="non-scaling-stroke"
14
+ cx="11"
15
+ cy="11"
16
+ r="6"
17
+ stroke="#475569"
18
+ stroke-width="2"
19
+ stroke-linecap="round"
20
+ stroke-linejoin="round"
21
+ />
22
+ </svg>
23
+ );
24
+ }
@@ -1,2 +1,2 @@
1
1
  import { BoardHeaderProps } from "../../interface/Board";
2
- export default function BoardHeader<B>({ titles, tag, option, }: BoardHeaderProps<B>): import("react/jsx-runtime").JSX.Element;
2
+ export default function BoardHeader<B>({ titles, tag, widgets, option, }: BoardHeaderProps<B>): import("react/jsx-runtime").JSX.Element;
@@ -1,18 +1,27 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { cn } from "../../util";
3
3
  import { Input, Select } from "../../widget";
4
- export default function BoardHeader({ titles, tag, option, }) {
4
+ export default function BoardHeader({ titles, tag, widgets, option, }) {
5
5
  const { title, icon, titleColor } = titles ?? {};
6
6
  const { selects, inputs } = tag ?? {};
7
7
  const { background, text, boundary } = option ?? {};
8
8
  const container = {
9
9
  positions: "top-0 left-0 z-30 relative flex items-center",
10
- paddings: "px-7.5",
10
+ paddings: "px-3.5 md:px-7.5",
11
11
  backgrounds: background ?? "bg-white",
12
12
  texts: text ?? "text-black",
13
13
  sizes: "w-full h-15",
14
14
  boundary: boundary ?? "border-b-2 border-green-dark ",
15
15
  rounded: "xl:rounded-t-xl",
16
16
  };
17
- return (_jsx(_Fragment, { children: _jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex items-center gap-2.5", children: [icon && _jsx("img", { src: icon, className: "fill-blue-500" }), _jsx("div", { className: `text-2xl font-pretendard-bold ${titleColor}`, children: title })] }), _jsxs("div", { className: "relative flex items-center ml-auto gap-4", children: [selects?.map(({ selectOptions, option, state }) => (_jsx(Select, { option: option, selectOptions: selectOptions, state: state }, title))), inputs?.map((prop, index) => (_jsx(Input, { ...prop }, index)))] })] }) }));
17
+ return (_jsx(_Fragment, { children: _jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex items-center gap-2.5", children: [icon && _jsx("img", { src: icon, className: "fill-blue-500" }), _jsx("div", { className: `text-2xl font-pretendard-bold ${titleColor}`, children: title })] }), _jsxs("div", { className: "relative flex items-center ml-auto gap-4", children: [widgets?.map((Widget, index) => (_jsx(HeaderWidgetRender, { ...Widget }, index))), selects?.map(({ selectOptions, option, state }) => (_jsx(Select, { option: option, selectOptions: selectOptions, state: state }, title))), inputs?.map((prop, index) => (_jsx(Input, { ...prop }, index)))] })] }) }));
18
+ }
19
+ function HeaderWidgetRender(props) {
20
+ if (props.type === "input") {
21
+ return _jsx(Input, { ...props.data });
22
+ }
23
+ if (props.type === "select") {
24
+ return _jsx(Select, { ...props.data });
25
+ }
26
+ return null;
18
27
  }
@@ -11,7 +11,7 @@ export default function CanvasBoard({ header, children, action, buttons, option,
11
11
  displays: "flex flex-col lg:flex-row lg:flex-wrap gap-7.5",
12
12
  sizes: header ? "h-[calc(100%-60px)]" : "h-full",
13
13
  paddings: `${header ? "pb-5" : "pb-36 xl:pb-6"} px-2 xs:px-4 xl:px-7.5 pt-2 xs:pt-4 xl:pt-7.5`,
14
- scrollStyles: "overflow-y-scroll scrollbar-hidden",
14
+ scrollStyles: "overflow-scroll scrollbar-hidden ",
15
15
  classNames: option?.className,
16
16
  };
17
17
  return (_jsxs(Board, { action: action, buttons: buttons, option: { ...option, className: "", isRounded: true }, children: [header && _jsx(BoardHeader, { ...header }), _jsx(Action.Replace, { actions: action?.replaces, children: _jsx("div", { className: cn(body), children: children }) })] }));
package/globals.css CHANGED
@@ -82,8 +82,6 @@ input[type="date"]::-webkit-calendar-picker-indicator {
82
82
  .box-shadow-sm {
83
83
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
84
84
  }
85
- .border-gradient-green-to-red {
86
- }
87
85
 
88
86
  .x-shape {
89
87
  position: relative;
@@ -267,3 +265,17 @@ input[type="date"]::-webkit-calendar-picker-indicator {
267
265
  -webkit-background-clip: text;
268
266
  -webkit-text-fill-color: transparent;
269
267
  }
268
+
269
+ /* related to font rendering in safari engine */
270
+ * {
271
+ font-synthesis: none !important;
272
+ -webkit-font-smoothing: antialiased;
273
+ -moz-osx-font-smoothing: grayscale;
274
+ }
275
+
276
+ .stacking-context {
277
+ -webkit-mask-image: -webkit-radial-gradient(white, black);
278
+ mask-image: radial-gradient(white, black);
279
+ -webkit-mask-composite: destination-in;
280
+ mask-composite: intersect;
281
+ }
@@ -21,8 +21,17 @@ export interface BoardProps<B> {
21
21
  option?: BoardOption;
22
22
  debug?: string;
23
23
  buttons?: LabelWidget[];
24
- isUnderGallery?: Boolean;
24
+ isUnderGallery?: boolean;
25
25
  }
26
+ interface HeaderInputWidget {
27
+ type: "input";
28
+ data: InputWidget;
29
+ }
30
+ interface HeaderSelectWidget<B> {
31
+ type: "select";
32
+ data: SelectWidget<B>;
33
+ }
34
+ export type HeaderWidgetType<B> = HeaderInputWidget | HeaderSelectWidget<B>;
26
35
  export interface BoardHeaderProps<B> {
27
36
  titles?: Omit<Titles, "subtitle"> & {
28
37
  icon?: string;
@@ -31,6 +40,7 @@ export interface BoardHeaderProps<B> {
31
40
  selects?: SelectWidget<B>[];
32
41
  inputs?: InputWidget[];
33
42
  };
43
+ widgets?: HeaderWidgetType<B>[];
34
44
  option?: {
35
45
  background?: string;
36
46
  text?: string;
@@ -4,6 +4,7 @@ interface Option {
4
4
  titleSize?: string;
5
5
  subtitleSize?: string;
6
6
  overflowScroll?: boolean;
7
+ display?: string;
7
8
  width?: string;
8
9
  height?: string;
9
10
  gap?: "xy" | "x" | "y" | "none";
@@ -1,3 +1,3 @@
1
- type Tag = "NEW" | "REG" | "RCU";
1
+ type Tag = "NEW" | "REG" | "RCU" | "UDT";
2
2
  export declare const tagString: Record<Tag, string>;
3
3
  export type { Tag };
@@ -1,5 +1,6 @@
1
1
  export const tagString = {
2
2
  NEW: "신규론칭",
3
3
  REG: "정기시험",
4
- RCU: "모집 중"
4
+ RCU: "모집 중",
5
+ UDT: "새소식",
5
6
  };
@@ -1,6 +1,6 @@
1
1
  import { OnClick, Titles } from "../Property";
2
2
  export type { CarouselContent };
3
- type Tag = "NEW" | "REG" | "RCU";
3
+ type Tag = "NEW" | "REG" | "RCU" | "UDT";
4
4
  interface Option {
5
5
  background: string;
6
6
  text: string;
@@ -6,8 +6,8 @@ export default function Shelf({ children, className, option, titles, debug, }) {
6
6
  const { titleSize, subtitleSize, isSize, width, height } = option ?? {};
7
7
  const container = {
8
8
  displays: "flex flex-col gap-6",
9
- optionHeight: width ?? "w-full",
10
- optionWidth: height ?? "h-fit",
9
+ optionWidth: width ?? "w-full xl:w-auto",
10
+ optionHeight: height ?? "h-fit",
11
11
  sizes: isSize && "w-full h-fit",
12
12
  debug: debug && isDebug(`border-2 ${debug}`),
13
13
  };
package/layout/index.d.ts CHANGED
@@ -1,13 +1,9 @@
1
1
  export { default as Action } from "./template/Action";
2
- export { default as About } from "./template/About";
3
2
  export { default as Announcement } from "./template/Announcement";
4
3
  export { default as Archive } from "./template/Archive";
5
- export { default as Books } from "./template/Books";
6
4
  export { default as Home } from "./template/home";
7
5
  export * from "./template/dashboard";
8
6
  export { default as Event } from "./template/Event";
9
- export { default as Olympiad } from "./template/Olympiad";
10
- export { default as Regexam } from "./template/Regexam";
11
7
  export { default as Legacy } from "./template/Legacy";
12
8
  export { default as Sign } from "./template/Sign";
13
9
  export { default as DataField } from "./template/DataField";
@@ -16,10 +12,5 @@ export { default as Row } from "./template/Row";
16
12
  export { default as Shelf } from "./template/Shelf";
17
13
  export { default as Tab } from "./template/Tab";
18
14
  export { default as TextBox } from "./template/TextBox";
19
- export { default as OlympiadLayout } from "./template/Olympiad/Olympiad.layout";
20
- export { default as RegexamLayout } from "./template/Regexam/Regexam.layout";
21
- export { default as BooksLayout } from "./template/Books/Books.layout";
22
15
  export { default as LegacyLayout } from "./template/Legacy/Legacy.layout";
23
- export { default as MonthlyProgressReport } from "./template/MonthlyProgressReport";
24
- export { default as Transcript } from "./template/Transcript";
25
16
  export { default as Ticket } from "./template/Ticket";
package/layout/index.js CHANGED
@@ -1,13 +1,9 @@
1
1
  export { default as Action } from "./template/Action";
2
- export { default as About } from "./template/About";
3
2
  export { default as Announcement } from "./template/Announcement";
4
3
  export { default as Archive } from "./template/Archive";
5
- export { default as Books } from "./template/Books";
6
4
  export { default as Home } from "./template/home";
7
5
  export * from "./template/dashboard";
8
6
  export { default as Event } from "./template/Event";
9
- export { default as Olympiad } from "./template/Olympiad";
10
- export { default as Regexam } from "./template/Regexam";
11
7
  export { default as Legacy } from "./template/Legacy";
12
8
  export { default as Sign } from "./template/Sign";
13
9
  export { default as DataField } from "./template/DataField";
@@ -16,10 +12,5 @@ export { default as Row } from "./template/Row";
16
12
  export { default as Shelf } from "./template/Shelf";
17
13
  export { default as Tab } from "./template/Tab";
18
14
  export { default as TextBox } from "./template/TextBox";
19
- export { default as OlympiadLayout } from "./template/Olympiad/Olympiad.layout";
20
- export { default as RegexamLayout } from "./template/Regexam/Regexam.layout";
21
- export { default as BooksLayout } from "./template/Books/Books.layout";
22
15
  export { default as LegacyLayout } from "./template/Legacy/Legacy.layout";
23
- export { default as MonthlyProgressReport } from "./template/MonthlyProgressReport";
24
- export { default as Transcript } from "./template/Transcript";
25
16
  export { default as Ticket } from "./template/Ticket";
@@ -17,9 +17,9 @@ export default function TicketExtension({ props, option }) {
17
17
  };
18
18
  const ref = useRef(null);
19
19
  const handlePrint = useReactToPrint({
20
- content: () => ref.current,
20
+ contentRef: ref,
21
21
  });
22
- return (_jsxs("div", { className: cn(body), children: [_jsx(Ticket, { ref: ref, props: props }), _jsxs("div", { className: "relative w-48 flex flex-row md:flex-col md:h-[700px] gap-4 h-full justify-start mt-5 items-center", children: [!noPrint && (_jsx("div", { className: "md:flex hidden", children: _jsx(Label.Button, { title: "\uC218\uD5D8\uD45C \uCD9C\uB825\uD558\uAE30", onClick: handlePrint, option: {
22
+ return (_jsxs("div", { className: cn(body), children: [_jsx(Ticket, { ref: ref, props: props }), _jsxs("div", { className: "relative w-48 flex flex-row md:flex-col md:h-[700px] gap-4 h-full justify-start mt-5 items-center", children: [!noPrint && (_jsx("div", { className: "md:flex hidden", children: _jsx(Label.Button, { title: "\uC218\uD5D8\uD45C \uCD9C\uB825\uD558\uAE30", onClick: () => handlePrint(), option: {
23
23
  width: "md",
24
24
  height: "sm",
25
25
  background: "bg-white shadow-main",
@@ -87,6 +87,7 @@ function Banner({ onClick, image, option }) {
87
87
  displays: "absolute",
88
88
  positions: "bottom-0 left-0",
89
89
  background: `bg-cover bg-center`,
90
+ boundaries: "rounded-xl md:rounded-2xl",
90
91
  };
91
92
  return (_jsx("div", { className: cn(ghostCard), children: _jsx("div", { className: cn(card), onClick: onClick, children: _jsx("div", { className: cn(imageWrapper), style: { backgroundImage: `url(${image?.src})` } }) }) }));
92
93
  }
@@ -101,6 +101,7 @@ function Banner({ titles, onClick, image, option }) {
101
101
  displays: "absolute",
102
102
  positions: "bottom-0 left-0",
103
103
  background: `bg-cover bg-center`,
104
+ boundaries: "rounded-xl md:rounded-2xl",
104
105
  };
105
106
  return (_jsx("div", { className: cn(ghostCard), children: _jsxs("div", { className: cn(card), onClick: onClick, children: [_jsx("div", { className: cn(imageWrapper), style: { backgroundImage: `url(${image?.src})` } }), _jsxs("div", { className: cn(titleBox.container), children: [_jsx("div", { className: cn(titleBox.subtitle), children: titles.subtitle }), _jsx("div", { className: cn(titleBox.title), children: titles.title })] })] }) }));
106
107
  }
@@ -62,9 +62,23 @@ export default function Carousel({ contents, }) {
62
62
  background,
63
63
  animations: "duration-300",
64
64
  };
65
+ const titleWrapper = {
66
+ displays: "flex flex-col xxs:flex-row xxs:items-center md:items-start md:flex-col",
67
+ sizes: "w-full h-fit xxs:w-fit md:w-72",
68
+ spacings: "mt-4 px-5 xxs:mt-8 xxs:gap-8 md:p-0 md:mt-0 md:gap-6 md:pl-7.5",
69
+ animations: "duration-500",
70
+ //debug: "border-red-500 border-2",
71
+ };
65
72
  const titleSet = {
66
- displays: "flex items-center lex gap-4 flex-row xxs:gap-4 xxs:items-start xxs:flex-col md:gap-2",
73
+ displays: "flex flex gap-4 flex-row justify-start xxs:justify-center xxs:gap-4 xxs:items-start xxs:flex-col xxs:shrink-0 md:gap-2",
67
74
  sizes: "w-fit md:w-full h-fit",
75
+ //debug: "border-2 border-green-500",
76
+ };
77
+ const subtitleStyles = {
78
+ displays: "flex flex-col justify-center",
79
+ sizes: "w-full h-10 xxs:w-fit xxs:h-fit",
80
+ spacings: "my-2 xxs:mt-0",
81
+ textStyles: "text-sm md:text-base break-keep",
68
82
  };
69
83
  const body = {
70
84
  displays: "flex flex-none flex-col items-center justify-center md:flex-row",
@@ -73,21 +87,26 @@ export default function Carousel({ contents, }) {
73
87
  animations: "duration-500",
74
88
  };
75
89
  const tagBox = {
76
- displays: "flex justify-center items-center",
90
+ displays: "flex justify-center items-center shrink-0",
77
91
  sizes: "w-fit h-fit px-2 py-1 md:px-2.5 md:py-1.5",
78
92
  background: tag.background,
79
93
  fonts: "text-white font-pretendard-medium text-sm md:text-base leading-none",
80
94
  styles: "rounded-md",
81
95
  };
96
+ const buttonBoxPosition = {
97
+ display: "absolute flex justify-center items-center md:static md:justify-start",
98
+ sizes: "w-full h-fit left-0 bottom-0 z-10",
99
+ spacings: "ml-0 md:ml-10 xm:ml-0",
100
+ };
82
101
  const buttonBox = {
102
+ displays: "relative justify-center items-center gap-1 flex z-10",
83
103
  animations: "duration-500",
84
- displays: "justify-center items-center gap-1 flex z-10",
85
- sizes: "w-30 h-10 md:h-6.25 md:w-23.25 bg-gray-dark rounded-full",
104
+ sizes: "w-34 h-10 md:h-6.25 md:w-26 bg-gray-dark rounded-full",
86
105
  paddings: "px-1.5 mt-0 mb-5 md:mt-12 ",
87
106
  };
88
- const buttonBoxPosition = {
89
- display: "absolute flex justify-center items-center md:static md:justify-start ",
90
- sizes: "w-full h-fit left-0 bottom-0 z-10",
107
+ const handlePosition = {
108
+ displays: "absolute flex justify-between items-center",
109
+ sizes: "w-full h-full",
91
110
  };
92
- return (_jsx("div", { onClick: contents[index].onClick, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: "duration-500 w-fit h-fit flex flex-col mt-4 xxs:mt-8 xxs:flex-row xxs:gap-8 md:flex-col md:flex-none md:w-72 md:pl-7.5 md:gap-6 md:mt-0", children: [_jsxs("div", { className: cn(titleSet), children: [_jsx("div", { className: cn(tagBox), children: tagString[tag.type] }), _jsx("div", { className: "font-pretendard-bold text-xl md:text-2xl", children: titles.title })] }), _jsx(LineBreaks, { className: "w-fit flex flex-col justify-center text-sm my-2 xxs:mt-0 md:text-base", texts: titles.subtitle }), _jsx("div", { className: cn(buttonBoxPosition), onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: cn(buttonBox), children: [_jsx("button", { onClick: handlePrev, className: "w-5 h-5 flex justify-center items-center", children: _jsx(SVG.Symbol.LessThan, {}) }), _jsxs("div", { className: "flex flex-row md:gap-2 gap-4 justify-center items-center", children: [_jsx("div", { className: "text-white w-2 text-sm", children: index + 1 }), _jsx("div", { className: "w-0.5 h-3 bg-gray-medium" }), _jsx("div", { className: "text-white w-2 text-sm", children: contents.length })] }), _jsx("button", { onClick: handleNext, className: "w-5 h-5 flex justify-center items-center", children: _jsx(SVG.Symbol.GreaterThan, {}) })] }) })] }), _jsx("div", { className: "h-full overflow-hidden w-fit image-container", children: image && (_jsx(animated.img, { src: image, alt: "carousel-image", onLoad: () => setLoaded(true), className: "object-cover h-full z-0", style: transitionStyles })) })] }) }));
111
+ return (_jsx("div", { onClick: contents[index].onClick, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: cn(titleWrapper), children: [_jsxs("div", { className: cn(titleSet), children: [_jsx("div", { className: cn(tagBox), children: tagString[tag.type] }), _jsx("div", { className: "font-pretendard-bold text-xl md:text-2xl", children: titles.title })] }), _jsx(LineBreaks, { className: cn(subtitleStyles), texts: titles.subtitle }), _jsx("div", { className: cn(buttonBoxPosition), onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: cn(buttonBox), children: [_jsxs("div", { className: cn(handlePosition), children: [_jsx("button", { onClick: handlePrev, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.LessThan, {}) }), _jsx("button", { onClick: handleNext, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.GreaterThan, {}) })] }), _jsxs("div", { className: "flex flex-row md:gap-2 gap-4 justify-center items-center", children: [_jsx("div", { className: "text-white w-4 text-sm text-center", children: index + 1 }), _jsx("div", { className: "w-0.5 h-3 bg-gray-medium" }), _jsx("div", { className: "text-white w-4 text-sm text-center", children: contents.length })] })] }) })] }), _jsx("div", { className: "h-full overflow-hidden w-fit image-container", children: image && (_jsx(animated.img, { src: image, alt: "carousel-image", onLoad: () => setLoaded(true), className: "object-cover h-full z-0", style: transitionStyles })) })] }) }));
93
112
  }