@edu-tosel/design 1.0.34 → 1.0.36

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 (88) hide show
  1. package/board/{widget → design}/Board.design.js +2 -2
  2. package/board/template/CanvasBoard.js +1 -1
  3. package/board/template/ManageBoard.js +4 -4
  4. package/board/template/PaperBoard.js +3 -3
  5. package/card/{widget → design}/Card.design.js +4 -3
  6. package/card/{widget → design}/InfoCard.design.d.ts +1 -1
  7. package/card/design/InfoCard.design.js +24 -0
  8. package/card/design/TableCard.design.d.ts +2 -0
  9. package/card/{widget → design}/TableCard.design.js +4 -4
  10. package/card/template/AddCard.js +2 -2
  11. package/card/template/ChartCard.js +2 -2
  12. package/card/template/InfoCard/Exam.d.ts +2 -0
  13. package/card/template/InfoCard/Exam.js +18 -0
  14. package/card/template/InfoCard/ExamData.d.ts +8 -0
  15. package/card/template/InfoCard/ExamData.js +57 -0
  16. package/card/template/InfoCard/Finance.d.ts +24 -0
  17. package/card/template/InfoCard/Finance.js +53 -0
  18. package/card/template/InfoCard/Grade.d.ts +2 -0
  19. package/card/template/InfoCard/Grade.js +29 -0
  20. package/card/template/InfoCard/Item.d.ts +2 -0
  21. package/card/template/InfoCard/Item.js +10 -0
  22. package/card/template/InfoCard/PersonalInformation.d.ts +2 -0
  23. package/card/template/InfoCard/PersonalInformation.js +29 -0
  24. package/card/template/InfoCard/Product.d.ts +2 -0
  25. package/card/template/InfoCard/Product.js +24 -0
  26. package/card/template/InfoCard/index.d.ts +19 -0
  27. package/card/template/InfoCard/index.js +17 -0
  28. package/card/template/InfoCard/static/label.d.ts +3 -0
  29. package/card/template/InfoCard/static/label.js +3 -0
  30. package/card/template/NavCard.js +1 -1
  31. package/card/template/TableCard.d.ts +2 -4
  32. package/card/template/TableCard.js +1 -1
  33. package/globals.css +17 -5
  34. package/hook/useFlag.d.ts +4 -1
  35. package/hook/useFlag.js +5 -2
  36. package/html/{widget → design}/Label.design.js +1 -1
  37. package/html/{widget → design}/Select.design.js +17 -19
  38. package/html/template/Label.js +1 -1
  39. package/html/template/Select.js +1 -1
  40. package/html/widget/CheckBox.d.ts +2 -0
  41. package/html/widget/CheckBox.js +20 -0
  42. package/html/widget/Toggle.js +1 -1
  43. package/interface/Board.d.ts +4 -11
  44. package/interface/Card.d.ts +5 -11
  45. package/interface/HTMLElement.d.ts +6 -0
  46. package/interface/Layout.d.ts +1 -0
  47. package/interface/Modal.d.ts +1 -1
  48. package/interface/Property.d.ts +19 -2
  49. package/interface/Shelf.d.ts +2 -3
  50. package/interface/Widget.d.ts +3 -6
  51. package/layout/design/Row.design.d.ts +2 -0
  52. package/layout/{widget → design}/Row.design.js +6 -2
  53. package/layout/{widget → design}/Shelf.design.d.ts +1 -1
  54. package/layout/{widget → design}/Shelf.design.js +8 -6
  55. package/layout/template/DataField.js +1 -1
  56. package/layout/template/Gallery.js +1 -1
  57. package/layout/template/Row.d.ts +9 -10
  58. package/layout/template/Row.js +12 -6
  59. package/layout/template/Shelf.d.ts +1 -1
  60. package/layout/template/Shelf.js +15 -8
  61. package/layout/widget/dashboard/Header.js +3 -3
  62. package/modal/template/Alert.js +2 -2
  63. package/modal/template/Input.js +2 -2
  64. package/overlay/widget/Overlay.design.js +1 -1
  65. package/package.json +1 -1
  66. package/store/index.d.ts +4 -2
  67. package/store/index.js +2 -0
  68. package/tailwind.config.ts +5 -0
  69. package/util/sortByOrder.d.ts +4 -3
  70. package/util/sortByOrder.js +6 -6
  71. package/version.txt +1 -1
  72. package/card/template/InfoCard.d.ts +0 -20
  73. package/card/template/InfoCard.js +0 -155
  74. package/card/widget/InfoCard.design.js +0 -23
  75. package/card/widget/TableCard.design.d.ts +0 -4
  76. package/layout/widget/Row.design.d.ts +0 -2
  77. /package/board/{widget → design}/Board.design.d.ts +0 -0
  78. /package/card/{widget → design}/Card.design.d.ts +0 -0
  79. /package/card/{widget → design}/NavCard.design.d.ts +0 -0
  80. /package/card/{widget → design}/NavCard.design.js +0 -0
  81. /package/html/{widget → design}/Label.design.d.ts +0 -0
  82. /package/html/{widget → design}/Select.design.d.ts +0 -0
  83. /package/layout/{widget → design}/DataField.design.d.ts +0 -0
  84. /package/layout/{widget → design}/DataField.design.js +0 -0
  85. /package/layout/{widget → design}/Tab.design.d.ts +0 -0
  86. /package/layout/{widget → design}/Tab.design.js +0 -0
  87. /package/modal/{widget → design}/Modal.design.d.ts +0 -0
  88. /package/modal/{widget → design}/Modal.design.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edu-tosel/design",
3
- "version": "1.0.34",
3
+ "version": "1.0.36",
4
4
  "description": "UI components for International TOSEL Committee",
5
5
  "keywords": [
6
6
  "jsx",
package/store/index.d.ts CHANGED
@@ -14,8 +14,10 @@ interface WidgetProps {
14
14
  clearTempData: () => void;
15
15
  flag: boolean;
16
16
  setFlag: () => void;
17
- isOwn: boolean;
18
- setIsOwn: (prop: boolean) => void;
17
+ isOwn: boolean | string;
18
+ setIsOwn: (prop: boolean | string) => void;
19
+ isOwnId: string;
20
+ setIsOwnId: (prop: string) => void;
19
21
  isDark: boolean;
20
22
  setDark: () => void;
21
23
  }
package/store/index.js CHANGED
@@ -62,6 +62,8 @@ export const useWidgetStore = create((set) => ({
62
62
  setFlag: () => set((state) => ({ flag: !state.flag })),
63
63
  isOwn: false,
64
64
  setIsOwn: (prop) => set({ isOwn: prop }),
65
+ isOwnId: "",
66
+ setIsOwnId: (prop) => set({ isOwnId: prop }),
65
67
  isDark: false,
66
68
  setDark: () => set((state) => ({ isDark: !state.isDark })),
67
69
  }));
@@ -56,6 +56,7 @@ export default {
56
56
  "red-crimson": "#760023",
57
57
  "red-velvet": "#AC647A",
58
58
  "green-dark": "#105652",
59
+ "green-light": "#DFE6E5",
59
60
  "blue-sky": "#44C5F3",
60
61
  "blue-navy": "#173A8B",
61
62
  "blue-pastel": "#CED6E6",
@@ -119,6 +120,7 @@ export default {
119
120
  14.125: "3.53125rem",
120
121
  14.5: "3.625rem",
121
122
  15: "3.75rem",
123
+ 15.5: "3.875rem",
122
124
  16: "4rem",
123
125
  18: "4.5rem",
124
126
  18.5: "4.625rem",
@@ -138,6 +140,7 @@ export default {
138
140
  25: "6.25rem",
139
141
  26: "6.5rem",
140
142
  27: "6.75rem",
143
+ 27.5: "6.875rem",
141
144
  28.78: "7.195rem",
142
145
  29: "7.25rem",
143
146
  30: "7.5rem",
@@ -146,6 +149,7 @@ export default {
146
149
  36.5: "9.125rem",
147
150
  36.75: "9.1875rem",
148
151
  38: "9.5rem",
152
+ 39.5: "9.875rem",
149
153
  40: "10rem",
150
154
  41: "10.25rem",
151
155
  42: "10.5rem",
@@ -191,6 +195,7 @@ export default {
191
195
  122: "30.5rem",
192
196
  124: "31rem",
193
197
  125: "31.25rem",
198
+ 125.5: "31.375rem",
194
199
  126: "31.5rem",
195
200
  127.5: "31.875rem",
196
201
  128: "32rem",
@@ -1,4 +1,5 @@
1
1
  import { Order } from "../interface";
2
- export default function sortOrder<K extends string, T extends {
3
- [p in K]: any;
4
- }>(args: T[], order: Order[]): T[];
2
+ export default function sortOrder<T>({ items, orders, }: {
3
+ items?: T[];
4
+ orders: Order[];
5
+ }): T[];
@@ -1,10 +1,10 @@
1
- export default function sortOrder(args, order) {
2
- const allEmpty = order.every(({ orderHow }) => orderHow === "");
1
+ export default function sortOrder({ items, orders, }) {
2
+ const allEmpty = orders.every(({ orderHow }) => orderHow === "");
3
3
  const sortedData = allEmpty
4
- ? [...args]
5
- : [...args].sort((aValue, bValue) => {
6
- for (let i = 0; i < order.length; i++) {
7
- const { orderBy, orderHow } = order[i];
4
+ ? [...items]
5
+ : [...items].sort((aValue, bValue) => {
6
+ for (let i = 0; i < orders.length; i++) {
7
+ const { orderBy, orderHow } = orders[i];
8
8
  if (orderHow === "")
9
9
  continue;
10
10
  const a = aValue[orderBy];
package/version.txt CHANGED
@@ -1 +1 @@
1
- 1.0.34
1
+ 1.0.36
@@ -1,20 +0,0 @@
1
- import { InfoCardPersonalInformationProps, InfoCardExamProps, InfoCardGradeProps, InfoCardItemProps, InfoCardProductProps, InfoCardExamDataREGProps, InfoCardExamDataOLYProps } from "../../interface";
2
- declare function PersonalInformation({ titles, data, }: InfoCardPersonalInformationProps): import("react/jsx-runtime").JSX.Element;
3
- declare function Exam({ titles, data }: InfoCardExamProps): import("react/jsx-runtime").JSX.Element;
4
- declare function ExamDataREG({ titles, data }: InfoCardExamDataREGProps): import("react/jsx-runtime").JSX.Element;
5
- declare function ExamDataOLY({ titles, data }: InfoCardExamDataOLYProps): import("react/jsx-runtime").JSX.Element;
6
- declare function Product({ titles, data }: InfoCardProductProps): import("react/jsx-runtime").JSX.Element;
7
- declare function Item({ titles, data }: InfoCardItemProps): import("react/jsx-runtime").JSX.Element;
8
- declare function Grade({ titles, data }: InfoCardGradeProps): import("react/jsx-runtime").JSX.Element;
9
- declare const InfoCard: {
10
- PersonalInformation: typeof PersonalInformation;
11
- Exam: typeof Exam;
12
- ExamData: {
13
- REG: typeof ExamDataREG;
14
- OLY: typeof ExamDataOLY;
15
- };
16
- Product: typeof Product;
17
- Item: typeof Item;
18
- Grade: typeof Grade;
19
- };
20
- export default InfoCard;
@@ -1,155 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { InfoCardDesign } from "../widget/InfoCard.design";
3
- import { Events, Label, NoData } from "../..";
4
- import { cn, gradient } from "../../util";
5
- const label = {
6
- positions: "absolute bottom-5 right-5",
7
- };
8
- function PersonalInformation({ titles, data, }) {
9
- const body = {
10
- container: "flex flex-col pt-5.75",
11
- belong: "text-crimson-burgundy",
12
- username: "text-gray-dim font-pretendard-bold",
13
- name: "text-xl font-pretendard-bold text-crimson-burgundy",
14
- subInfo: {
15
- displays: "flex flex-col mt-7.5",
16
- fonts: "text-xs text-gray-dim",
17
- },
18
- };
19
- return (_jsx(InfoCardDesign, { titles: titles, options: {
20
- titleBorder: "border-crimson-burgundy",
21
- width: "md",
22
- height: "md",
23
- background: gradient.bg.greenToRedSoft,
24
- boundary: "border-3 border-crimson-burgundy/30",
25
- }, children: _jsxs(_Fragment, { children: [_jsxs("div", { className: cn(body.container), children: [_jsxs("div", { className: cn(body.belong), children: [data.school, "/", data.academy] }), _jsx("div", { className: cn(body.username), children: data.username }), _jsx("div", { className: cn(body.name), children: data.name }), _jsxs("div", { className: cn(body.subInfo), children: [_jsx("div", { children: data.email }), _jsx("div", { children: data.phone })] })] }), _jsx(Label.Button, { title: "\uD559\uC6D0 \uB4F1\uB85D\uD558\uAE30", onClick: () => { }, options: {
26
- width: "md",
27
- background: "bg-crimson-burgundy",
28
- text: "text-white",
29
- className: cn(label),
30
- } })] }) }));
31
- }
32
- function Exam({ titles, data }) {
33
- const { status, isPublic, manager, examDate, endDate } = data;
34
- const container = {
35
- positions: "relative",
36
- displays: "flex flex-col justify-between mt-2.5",
37
- sizes: "h-19.25 w-full",
38
- };
39
- return (_jsx(InfoCardDesign, { titles: titles, options: {
40
- titleBorder: "border-red-crimson",
41
- width: "sm",
42
- height: "xs",
43
- }, children: _jsxs(_Fragment, { children: [_jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex gap-4 font-pretendard-bold ", children: [manager, " / ", isPublic ? "공개시험" : "비공개시험"] }), _jsxs("div", { children: [_jsxs("div", { className: "text-xs", children: ["\uC811\uC218\uB9C8\uAC10: ", endDate] }), _jsxs("div", { className: "text-xs", children: ["\uC2DC\uD5D8\uC77C: ", examDate] })] })] }), _jsx(Label.Button, { title: status, onClick: () => { }, options: { width: "sm", height: "xs", className: cn(label) } })] }) }));
44
- }
45
- function ExamDataREG({ titles, data }) {
46
- const container = {
47
- positions: "relative",
48
- displays: "flex flex-col gap-5",
49
- sizes: "h-36.75 w-50 pt-5",
50
- };
51
- const dataBox = {
52
- container: "flex justify-between",
53
- rightBox: "flex items-end",
54
- score: "text-4xl font-pretendard-bold leading-none",
55
- };
56
- const arr = [
57
- ["part 1", data && data?.scores[0], "text-crimson-burgundy"],
58
- ["part 2", data && data?.scores[1], "text-crimson-burgundy"],
59
- [
60
- "total",
61
- data && data?.scores[0] + data?.scores[1],
62
- "text-gray-dim border-t border-dashed border-gray-dim pt-1",
63
- ],
64
- ];
65
- return (_jsx(InfoCardDesign, { titles: titles, options: {
66
- width: "xs",
67
- height: "md",
68
- titleBorder: "border-crimson-burgundy",
69
- }, children: _jsx(Events.Replace, { widgets: [
70
- [
71
- !data,
72
- _jsx(NoData.Sign, { script: "\uC774\uC804 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.", color: "#910023", className: "text-[#910023] mt-12" }),
73
- ],
74
- ], children: _jsx("div", { className: cn(container), children: arr.map(([part, score, styles]) => (_jsxs("div", { className: cn(dataBox.container, styles), children: [_jsx("div", { children: part }), _jsxs("div", { className: cn(dataBox.rightBox), children: [_jsx("div", { className: "text-4xl font-pretendard-bold leading-none", children: score }), _jsx("div", { children: "\uC810" })] })] }))) }) }) }));
75
- }
76
- function ExamDataOLY({ titles, data }) {
77
- const container = {
78
- displays: "flex justify-center",
79
- sizes: "w-full",
80
- margins: "mt-11.375",
81
- };
82
- const body = {
83
- displays: "flex flex-col justify-between items-center",
84
- sizes: "h-20",
85
- };
86
- return (_jsx(InfoCardDesign, { titles: titles, options: { width: "xs", height: "md", titleBorder: "border-green-dark" }, children: _jsx(Events.Replace, { widgets: [
87
- [
88
- !data,
89
- _jsx(NoData.Sign, { script: "\uC774\uC804 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.", color: "#105652", className: "text-[#105652] mt-12" }),
90
- ],
91
- ], children: _jsx("div", { className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: "flex items-end text-green-dark", children: [_jsx("div", { className: "text-4xl font-pretendard-bold leading-none ", children: data?.score }), _jsx("div", { children: "\uC810" })] }), _jsxs("div", { className: "text-gray-dim", children: [data?.prize, "\uC744 \uC218\uC0C1\uD558\uC600\uC2B5\uB2C8\uB2E4."] })] }) }) }) }));
92
- }
93
- function Product({ titles, data }) {
94
- const { date, status, receiver, requester } = data;
95
- const container = {
96
- positions: "relative",
97
- displays: "flex flex-col mt-2.5",
98
- sizes: "h-19.25 w-full",
99
- };
100
- return (_jsx(InfoCardDesign, { titles: titles, options: {
101
- titleBorder: "border-jr-blue",
102
- width: "sm",
103
- height: "xs",
104
- }, children: _jsxs(_Fragment, { children: [_jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "text-sm", children: ["\uC77C\uC2DC: ", date] }), _jsxs("div", { className: "text-sm", children: ["\uC694\uCCAD\uC790: ", requester ?? "No Data"] }), _jsxs("div", { className: "text-sm", children: ["\uC218\uC2E0\uC790: ", receiver ?? "No Data"] })] }), _jsx(Label.Button, { title: status ?? "", onClick: () => console.log("click"), options: {
105
- width: "sm",
106
- height: "xs",
107
- className: cn(label),
108
- background: "bg-gray-light hover:bg-blue-sky",
109
- text: "hover:text-white",
110
- } })] }) }));
111
- }
112
- function Item({ titles, data }) {
113
- const { item } = data;
114
- return (_jsx(InfoCardDesign, { titles: titles, options: {
115
- titleBorder: "border-blue-navy",
116
- width: "xs",
117
- height: "xs",
118
- }, children: _jsx("div", { children: item }) }));
119
- }
120
- function Grade({ titles, data }) {
121
- const container = {
122
- positions: "relative",
123
- displays: "flex flex-col justify-between mt-2.5",
124
- sizes: "h-19.5 w-full",
125
- };
126
- const levelBox = {
127
- displays: "flex justify-center items-center ",
128
- sizes: "w-22.5 h-6.4",
129
- styles: "bg-white-off text-sm rounded-md",
130
- text: data.levelColor,
131
- };
132
- return (_jsx(InfoCardDesign, { titles: titles, options: {
133
- titleBorder: "border-blue-navy",
134
- width: "sm",
135
- height: "xs",
136
- }, children: _jsxs(_Fragment, { children: [_jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex items-center gap-5", children: [_jsx("div", { className: cn(levelBox), children: data.levelString }), _jsx("span", { className: "text-sm", children: "\uD559\uC6D0\uC0DD, 23\uC138" })] }), _jsxs("div", { className: "absolute bottom-0 left-0 flex items-end gap-8 text-blue-navy", children: [_jsxs("div", { className: "w-20 h-12 flex justify-end items-end", children: [_jsx("div", { className: "leading-none text-4xl font-pretendard-bold", children: data.score }), _jsx("div", { children: "\uC810" })] }), _jsxs("div", { className: "w-14 h-12 flex justify-end items-end", children: [_jsx("div", { className: "leading-none text-4xl font-pretendard-bold", children: data.grade }), _jsx("div", { children: "\uB4F1\uAE09" })] })] })] }), _jsx(Label.Button, { title: "\uC0C1\uC138\uBCF4\uAE30", onClick: () => { }, options: {
137
- width: "sm",
138
- height: "xs",
139
- text: "text-white hover:text-blue-navy",
140
- background: "bg-blue-navy hover:bg-gray-light",
141
- className: cn(label),
142
- } }), _jsx("div", { className: "absolute right-5 top-5 w-22.5 h-22.5", children: _jsx("div", { className: "relative h-full w-full rounded-md overflow-hidden", children: _jsx("img", { className: "bg-cover rounded-md ", src: data.profileImage }) }) })] }) }));
143
- }
144
- const InfoCard = {
145
- PersonalInformation,
146
- Exam,
147
- ExamData: {
148
- REG: ExamDataREG,
149
- OLY: ExamDataOLY,
150
- },
151
- Product,
152
- Item,
153
- Grade,
154
- };
155
- export default InfoCard;
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../../util";
3
- import Card from "./Card.design";
4
- export function InfoCardDesign({ titles: { title, subtitle }, debug, options, children, }) {
5
- const { titleBorder, text } = options ?? {};
6
- const container = {
7
- paddings: "pt-5 px-5",
8
- };
9
- const topBox = {
10
- container: {
11
- displays: "flex justify-between",
12
- sizes: "w-full h-13.25",
13
- styles: `${titleBorder} border-b-2 pb-2.5`,
14
- },
15
- titleText: "h-6 font-pretendard-bold text-xl w-52 truncate",
16
- subtitleText: "h-7 text-base font-extralight flex items-center",
17
- right: {
18
- fontColor: `${text ?? "text-black"}`,
19
- displays: "flex flex-col-reverse",
20
- },
21
- };
22
- return (_jsxs(Card, { options: { ...options, classNames: cn(container) }, debug: debug, children: [_jsx("div", { className: cn(topBox.container), children: _jsxs("div", { className: "text-gray-dim ", children: [_jsx("div", { className: cn(topBox.titleText), children: title }), _jsx("div", { className: cn(topBox.subtitleText), children: subtitle ?? "" })] }) }), children] }));
23
- }
@@ -1,4 +0,0 @@
1
- import { TableCardProps } from "../../interface";
2
- export default function TableCardDesign<K extends string, T extends {
3
- [p in K]: any;
4
- }>({ dataSet, dataField, options }: TableCardProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import { RowProps } from "../../interface";
2
- export default function RowDesign<T extends Record<string, any>>({ item, dataField, options, onClick, buttons, }: RowProps<T>): import("react/jsx-runtime").JSX.Element;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes