@edu-tosel/design 1.0.43 → 1.0.45
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/asset/SVG.d.ts +14 -0
- package/asset/SVG.js +12 -0
- package/asset/SVG.tsx +12 -0
- package/asset/svg/Direction.d.ts +8 -0
- package/asset/svg/Direction.js +8 -0
- package/asset/svg/Direction.tsx +36 -0
- package/asset/svg/Email.d.ts +1 -0
- package/asset/svg/Email.js +4 -0
- package/asset/svg/Email.tsx +20 -0
- package/asset/svg/Image.d.ts +6 -0
- package/asset/svg/Image.js +4 -0
- package/asset/svg/Image.tsx +24 -0
- package/asset/svg/Notification.d.ts +8 -0
- package/asset/svg/Notification.js +4 -0
- package/asset/svg/Notification.tsx +34 -0
- package/asset/svg/Phone.d.ts +1 -0
- package/asset/svg/Phone.js +4 -0
- package/asset/svg/Phone.tsx +20 -0
- package/asset/svg/Profile.d.ts +7 -0
- package/asset/svg/Profile.js +4 -0
- package/asset/svg/Profile.tsx +27 -0
- package/board/template/ManageBoard.js +1 -1
- package/html/template/Input.d.ts +3 -3
- package/html/template/Input.js +16 -6
- package/html/widget/DatePicker.d.ts +2 -2
- package/html/widget/EmailInput.d.ts +2 -2
- package/html/widget/EmailInput.js +1 -1
- package/interface/Board.d.ts +2 -2
- package/interface/HTMLElement.d.ts +4 -3
- package/interface/Layout.d.ts +21 -7
- package/interface/Property.d.ts +2 -1
- package/layout/template/Sign.d.ts +4 -2
- package/layout/template/Sign.js +4 -2
- package/layout/widget/dashboard/Header.d.ts +1 -1
- package/layout/widget/dashboard/Header.js +14 -7
- package/layout/widget/dashboard/Layout.js +2 -2
- package/layout/widget/dashboard/Menu.d.ts +2 -5
- package/layout/widget/dashboard/Menu.js +17 -8
- package/layout/widget/dashboard/Navigation.js +1 -1
- package/layout/widget/dashboard/mypage/Layout.js +1 -1
- package/layout/widget/dashboard/mypage/Profile.d.ts +4 -2
- package/layout/widget/dashboard/mypage/Profile.js +19 -4
- package/layout/widget/sign/WithTitle.d.ts +6 -0
- package/layout/widget/sign/WithTitle.js +6 -0
- package/modal/design/Modal.design.js +1 -1
- package/modal/template/ConfirmModal/Confirm.d.ts +9 -0
- package/modal/template/ConfirmModal/Confirm.js +15 -0
- package/modal/template/ConfirmModal/Input.d.ts +2 -3
- package/modal/template/ConfirmModal/Input.js +2 -2
- package/modal/template/ConfirmModal/Reimage.d.ts +10 -0
- package/modal/template/ConfirmModal/Reimage.js +34 -0
- package/modal/template/ConfirmModal/index.d.ts +6 -4
- package/modal/template/ConfirmModal/index.js +8 -3
- package/overlay/template/Info.js +1 -1
- package/overlay/template/Manage.js +2 -2
- package/package.json +1 -1
- package/tailwind.config.ts +3 -0
- package/version.txt +1 -1
- package/layout/widget/sign/Input.d.ts +0 -15
- package/layout/widget/sign/Input.js +0 -33
- /package/overlay/{widget → design}/Frame.design.d.ts +0 -0
- /package/overlay/{widget → design}/Frame.design.js +0 -0
- /package/overlay/{widget → design}/Overlay.design.d.ts +0 -0
- /package/overlay/{widget → design}/Overlay.design.js +0 -0
package/asset/SVG.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import Close from "./svg/Close";
|
|
2
|
+
import Direction from "./svg/Direction";
|
|
3
|
+
import Email from "./svg/Email";
|
|
4
|
+
import Image from "./svg/Image";
|
|
5
|
+
import Notification from "./svg/Notification";
|
|
6
|
+
import Phone from "./svg/Phone";
|
|
7
|
+
import Profile from "./svg/Profile";
|
|
2
8
|
import TOSEL from "./svg/TOSEL";
|
|
3
9
|
declare const SVG: {
|
|
4
10
|
TOSEL: typeof TOSEL;
|
|
5
11
|
Close: typeof Close;
|
|
12
|
+
Direction: {
|
|
13
|
+
Right: ({ className }: Direction) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
};
|
|
15
|
+
Email: typeof Email;
|
|
16
|
+
Image: typeof Image;
|
|
17
|
+
Notification: typeof Notification;
|
|
18
|
+
Phone: typeof Phone;
|
|
19
|
+
Profile: typeof Profile;
|
|
6
20
|
};
|
|
7
21
|
export default SVG;
|
package/asset/SVG.js
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import Close from "./svg/Close";
|
|
2
|
+
import Direction from "./svg/Direction";
|
|
3
|
+
import Email from "./svg/Email";
|
|
4
|
+
import Image from "./svg/Image";
|
|
5
|
+
import Notification from "./svg/Notification";
|
|
6
|
+
import Phone from "./svg/Phone";
|
|
7
|
+
import Profile from "./svg/Profile";
|
|
2
8
|
import TOSEL from "./svg/TOSEL";
|
|
3
9
|
const SVG = {
|
|
4
10
|
TOSEL,
|
|
5
11
|
Close,
|
|
12
|
+
Direction,
|
|
13
|
+
Email,
|
|
14
|
+
Image,
|
|
15
|
+
Notification,
|
|
16
|
+
Phone,
|
|
17
|
+
Profile,
|
|
6
18
|
};
|
|
7
19
|
export default SVG;
|
package/asset/SVG.tsx
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import Close from "./svg/Close";
|
|
2
|
+
import Direction from "./svg/Direction";
|
|
3
|
+
import Email from "./svg/Email";
|
|
4
|
+
import Image from "./svg/Image";
|
|
5
|
+
import Notification from "./svg/Notification";
|
|
6
|
+
import Phone from "./svg/Phone";
|
|
7
|
+
import Profile from "./svg/Profile";
|
|
2
8
|
import TOSEL from "./svg/TOSEL";
|
|
3
9
|
|
|
4
10
|
const SVG = {
|
|
5
11
|
TOSEL,
|
|
6
12
|
Close,
|
|
13
|
+
Direction,
|
|
14
|
+
Email,
|
|
15
|
+
Image,
|
|
16
|
+
Notification,
|
|
17
|
+
Phone,
|
|
18
|
+
Profile,
|
|
7
19
|
};
|
|
8
20
|
|
|
9
21
|
export default SVG;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function Right({ className }) {
|
|
3
|
+
return (_jsxs("svg", { className: className, xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [_jsx("path", { d: "M21 12C21 13.1819 20.7672 14.3522 20.3149 15.4442C19.8626 16.5361 19.1997 17.5282 18.364 18.364C17.5282 19.1997 16.5361 19.8626 15.4442 20.3149C14.3522 20.7672 13.1819 21 12 21C10.8181 21 9.64778 20.7672 8.55585 20.3149C7.46392 19.8626 6.47177 19.1997 5.63604 18.364C4.80031 17.5282 4.13738 16.5361 3.68508 15.4442C3.23279 14.3522 3 13.1819 3 12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12Z", fill: "#105652", stroke: "#105652", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12.75 15L15.75 12M15.75 12L12.75 9M15.75 12H8.25", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] }));
|
|
4
|
+
}
|
|
5
|
+
const Direction = {
|
|
6
|
+
Right,
|
|
7
|
+
};
|
|
8
|
+
export default Direction;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
interface Direction {
|
|
2
|
+
className?: string;
|
|
3
|
+
}
|
|
4
|
+
function Right({ className }: Direction) {
|
|
5
|
+
return (
|
|
6
|
+
<svg
|
|
7
|
+
className={className}
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
width="24"
|
|
10
|
+
height="24"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
fill="none"
|
|
13
|
+
>
|
|
14
|
+
<path
|
|
15
|
+
d="M21 12C21 13.1819 20.7672 14.3522 20.3149 15.4442C19.8626 16.5361 19.1997 17.5282 18.364 18.364C17.5282 19.1997 16.5361 19.8626 15.4442 20.3149C14.3522 20.7672 13.1819 21 12 21C10.8181 21 9.64778 20.7672 8.55585 20.3149C7.46392 19.8626 6.47177 19.1997 5.63604 18.364C4.80031 17.5282 4.13738 16.5361 3.68508 15.4442C3.23279 14.3522 3 13.1819 3 12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12Z"
|
|
16
|
+
fill="#105652"
|
|
17
|
+
stroke="#105652"
|
|
18
|
+
strokeWidth="1.5"
|
|
19
|
+
strokeLinecap="round"
|
|
20
|
+
strokeLinejoin="round"
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M12.75 15L15.75 12M15.75 12L12.75 9M15.75 12H8.25"
|
|
24
|
+
stroke="white"
|
|
25
|
+
strokeWidth="1.5"
|
|
26
|
+
strokeLinecap="round"
|
|
27
|
+
strokeLinejoin="round"
|
|
28
|
+
/>
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const Direction = {
|
|
34
|
+
Right,
|
|
35
|
+
};
|
|
36
|
+
export default Direction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function Email(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export default function Email() {
|
|
3
|
+
return (_jsx("svg", { className: "mr-3", xmlns: "http://www.w3.org/2000/svg", width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", children: _jsx("path", { d: "M22.6562 9.37501V10.3188C22.6563 10.7419 22.5417 11.1572 22.3248 11.5205C22.1078 11.8838 21.7965 12.1816 21.424 12.3823L14.676 16.0156M2.34375 9.37501V10.3188C2.34373 10.7419 2.45828 11.1572 2.67525 11.5205C2.89221 11.8838 3.20348 12.1816 3.57604 12.3823L10.324 16.0156M10.324 16.0156L11.3885 15.4427C11.7301 15.2587 12.112 15.1624 12.5 15.1624C12.888 15.1624 13.2699 15.2587 13.6115 15.4427L14.6771 16.0156L19.5312 18.6302M10.324 16.0156L5.46875 18.6302M22.6562 20.3125C22.6562 20.9341 22.4093 21.5303 21.9698 21.9698C21.5302 22.4093 20.9341 22.6563 20.3125 22.6563H4.6875C4.0659 22.6563 3.46976 22.4093 3.03022 21.9698C2.59068 21.5303 2.34375 20.9341 2.34375 20.3125V9.21251C2.34373 8.78934 2.45828 8.37407 2.67525 8.01075C2.89221 7.64744 3.20348 7.34964 3.57604 7.14897L11.3885 2.94168C11.7301 2.75769 12.112 2.66138 12.5 2.66138C12.888 2.66138 13.2699 2.75769 13.6115 2.94168L21.424 7.14897C21.7964 7.34956 22.1075 7.64719 22.3245 8.01031C22.5414 8.37342 22.6561 8.78848 22.6562 9.21147V20.3125Z", stroke: "#105652", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default function Email() {
|
|
2
|
+
return (
|
|
3
|
+
<svg
|
|
4
|
+
className="mr-3"
|
|
5
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
+
width="25"
|
|
7
|
+
height="25"
|
|
8
|
+
viewBox="0 0 25 25"
|
|
9
|
+
fill="none"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M22.6562 9.37501V10.3188C22.6563 10.7419 22.5417 11.1572 22.3248 11.5205C22.1078 11.8838 21.7965 12.1816 21.424 12.3823L14.676 16.0156M2.34375 9.37501V10.3188C2.34373 10.7419 2.45828 11.1572 2.67525 11.5205C2.89221 11.8838 3.20348 12.1816 3.57604 12.3823L10.324 16.0156M10.324 16.0156L11.3885 15.4427C11.7301 15.2587 12.112 15.1624 12.5 15.1624C12.888 15.1624 13.2699 15.2587 13.6115 15.4427L14.6771 16.0156L19.5312 18.6302M10.324 16.0156L5.46875 18.6302M22.6562 20.3125C22.6562 20.9341 22.4093 21.5303 21.9698 21.9698C21.5302 22.4093 20.9341 22.6563 20.3125 22.6563H4.6875C4.0659 22.6563 3.46976 22.4093 3.03022 21.9698C2.59068 21.5303 2.34375 20.9341 2.34375 20.3125V9.21251C2.34373 8.78934 2.45828 8.37407 2.67525 8.01075C2.89221 7.64744 3.20348 7.34964 3.57604 7.14897L11.3885 2.94168C11.7301 2.75769 12.112 2.66138 12.5 2.66138C12.888 2.66138 13.2699 2.75769 13.6115 2.94168L21.424 7.14897C21.7964 7.34956 22.1075 7.64719 22.3245 8.01031C22.5414 8.37342 22.6561 8.78848 22.6562 9.21147V20.3125Z"
|
|
13
|
+
stroke="#105652"
|
|
14
|
+
strokeWidth="1.5"
|
|
15
|
+
strokeLinecap="round"
|
|
16
|
+
strokeLinejoin="round"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export default function Image({ color, className }) {
|
|
3
|
+
return (_jsx("svg", { className: className, xmlns: "http://www.w3.org/2000/svg", width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", children: _jsx("path", { d: "M2.34375 16.4062L7.71771 11.0323C7.93535 10.8147 8.19372 10.642 8.47808 10.5242C8.76244 10.4064 9.06721 10.3458 9.375 10.3458C9.68279 10.3458 9.98756 10.4064 10.2719 10.5242C10.5563 10.642 10.8147 10.8147 11.0323 11.0323L16.4062 16.4062M14.8437 14.8437L16.3115 13.376C16.5291 13.1584 16.7875 12.9858 17.0718 12.868C17.3562 12.7502 17.661 12.6896 17.9687 12.6896C18.2765 12.6896 18.5813 12.7502 18.8657 12.868C19.15 12.9858 19.4084 13.1584 19.626 13.376L22.6562 16.4062M3.90625 20.3125H21.0937C21.5082 20.3125 21.9056 20.1479 22.1986 19.8549C22.4916 19.5618 22.6562 19.1644 22.6562 18.75V6.25C22.6562 5.8356 22.4916 5.43817 22.1986 5.14515C21.9056 4.85212 21.5082 4.6875 21.0937 4.6875H3.90625C3.49185 4.6875 3.09442 4.85212 2.8014 5.14515C2.50837 5.43817 2.34375 5.8356 2.34375 6.25V18.75C2.34375 19.1644 2.50837 19.5618 2.8014 19.8549C3.09442 20.1479 3.49185 20.3125 3.90625 20.3125ZM14.8437 8.59375H14.8521V8.60208H14.8437V8.59375ZM15.2344 8.59375C15.2344 8.69735 15.1932 8.79671 15.12 8.86996C15.0467 8.94322 14.9473 8.98437 14.8437 8.98437C14.7401 8.98437 14.6408 8.94322 14.5675 8.86996C14.4943 8.79671 14.4531 8.69735 14.4531 8.59375C14.4531 8.49015 14.4943 8.39079 14.5675 8.31754C14.6408 8.24428 14.7401 8.20312 14.8437 8.20312C14.9473 8.20312 15.0467 8.24428 15.12 8.31754C15.1932 8.39079 15.2344 8.49015 15.2344 8.59375Z", stroke: color ?? "#FFFFFF", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface ImageProps {
|
|
2
|
+
color?: string;
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
export default function Image({ color, className }: ImageProps) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
className={className}
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
width="25"
|
|
11
|
+
height="25"
|
|
12
|
+
viewBox="0 0 25 25"
|
|
13
|
+
fill="none"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M2.34375 16.4062L7.71771 11.0323C7.93535 10.8147 8.19372 10.642 8.47808 10.5242C8.76244 10.4064 9.06721 10.3458 9.375 10.3458C9.68279 10.3458 9.98756 10.4064 10.2719 10.5242C10.5563 10.642 10.8147 10.8147 11.0323 11.0323L16.4062 16.4062M14.8437 14.8437L16.3115 13.376C16.5291 13.1584 16.7875 12.9858 17.0718 12.868C17.3562 12.7502 17.661 12.6896 17.9687 12.6896C18.2765 12.6896 18.5813 12.7502 18.8657 12.868C19.15 12.9858 19.4084 13.1584 19.626 13.376L22.6562 16.4062M3.90625 20.3125H21.0937C21.5082 20.3125 21.9056 20.1479 22.1986 19.8549C22.4916 19.5618 22.6562 19.1644 22.6562 18.75V6.25C22.6562 5.8356 22.4916 5.43817 22.1986 5.14515C21.9056 4.85212 21.5082 4.6875 21.0937 4.6875H3.90625C3.49185 4.6875 3.09442 4.85212 2.8014 5.14515C2.50837 5.43817 2.34375 5.8356 2.34375 6.25V18.75C2.34375 19.1644 2.50837 19.5618 2.8014 19.8549C3.09442 20.1479 3.49185 20.3125 3.90625 20.3125ZM14.8437 8.59375H14.8521V8.60208H14.8437V8.59375ZM15.2344 8.59375C15.2344 8.69735 15.1932 8.79671 15.12 8.86996C15.0467 8.94322 14.9473 8.98437 14.8437 8.98437C14.7401 8.98437 14.6408 8.94322 14.5675 8.86996C14.4943 8.79671 14.4531 8.69735 14.4531 8.59375C14.4531 8.49015 14.4943 8.39079 14.5675 8.31754C14.6408 8.24428 14.7401 8.20312 14.8437 8.20312C14.9473 8.20312 15.0467 8.24428 15.12 8.31754C15.1932 8.39079 15.2344 8.49015 15.2344 8.59375Z"
|
|
17
|
+
stroke={color ?? "#FFFFFF"}
|
|
18
|
+
strokeWidth="1.5"
|
|
19
|
+
strokeLinecap="round"
|
|
20
|
+
strokeLinejoin="round"
|
|
21
|
+
/>
|
|
22
|
+
</svg>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export default function Notification({ onClick, color, flag }) {
|
|
3
|
+
return (_jsxs("button", { className: "relative", onClick: onClick, children: [_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", children: _jsx("path", { d: "M15.4759 17.7938C17.4168 17.564 19.3237 17.1059 21.1572 16.4292C19.6044 14.7092 18.7465 12.4734 18.7499 10.1562V9.375C18.7499 7.7174 18.0914 6.12769 16.9193 4.95558C15.7472 3.78348 14.1575 3.125 12.4999 3.125C10.8423 3.125 9.25257 3.78348 8.08047 4.95558C6.90837 6.12769 6.24989 7.7174 6.24989 9.375V10.1562C6.25303 12.4736 5.39466 14.7093 3.84155 16.4292C5.64676 17.0958 7.54989 17.5594 9.52384 17.7938M15.4759 17.7938C13.4988 18.0283 11.5009 18.0283 9.52384 17.7938M15.4759 17.7938C15.626 18.2624 15.6634 18.7598 15.5849 19.2455C15.5064 19.7313 15.3143 20.1917 15.0242 20.5891C14.7342 20.9866 14.3544 21.31 13.9157 21.5329C13.4771 21.7559 12.9919 21.8721 12.4999 21.8721C12.0078 21.8721 11.5227 21.7559 11.0841 21.5329C10.6454 21.31 10.2656 20.9866 9.97553 20.5891C9.68548 20.1917 9.49339 19.7313 9.4149 19.2455C9.33641 18.7598 9.37374 18.2624 9.52384 17.7938", stroke: color ?? "#910023", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }), flag && (_jsxs("div", { className: "absolute top-0 right-0", children: [_jsx("div", { className: "absolute w-2 h-2 rounded-full bg-red-500" }), _jsx("div", { className: " w-2 h-2 rounded-full bg-red-400 animate-ping duration-1000" })] }))] }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OnClick } from "../../interface";
|
|
2
|
+
|
|
3
|
+
interface Notification {
|
|
4
|
+
onClick: OnClick;
|
|
5
|
+
flag: boolean;
|
|
6
|
+
color?: string;
|
|
7
|
+
}
|
|
8
|
+
export default function Notification({ onClick, color, flag }: Notification) {
|
|
9
|
+
return (
|
|
10
|
+
<button className="relative" onClick={onClick}>
|
|
11
|
+
<svg
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
width="25"
|
|
14
|
+
height="25"
|
|
15
|
+
viewBox="0 0 25 25"
|
|
16
|
+
fill="none"
|
|
17
|
+
>
|
|
18
|
+
<path
|
|
19
|
+
d="M15.4759 17.7938C17.4168 17.564 19.3237 17.1059 21.1572 16.4292C19.6044 14.7092 18.7465 12.4734 18.7499 10.1562V9.375C18.7499 7.7174 18.0914 6.12769 16.9193 4.95558C15.7472 3.78348 14.1575 3.125 12.4999 3.125C10.8423 3.125 9.25257 3.78348 8.08047 4.95558C6.90837 6.12769 6.24989 7.7174 6.24989 9.375V10.1562C6.25303 12.4736 5.39466 14.7093 3.84155 16.4292C5.64676 17.0958 7.54989 17.5594 9.52384 17.7938M15.4759 17.7938C13.4988 18.0283 11.5009 18.0283 9.52384 17.7938M15.4759 17.7938C15.626 18.2624 15.6634 18.7598 15.5849 19.2455C15.5064 19.7313 15.3143 20.1917 15.0242 20.5891C14.7342 20.9866 14.3544 21.31 13.9157 21.5329C13.4771 21.7559 12.9919 21.8721 12.4999 21.8721C12.0078 21.8721 11.5227 21.7559 11.0841 21.5329C10.6454 21.31 10.2656 20.9866 9.97553 20.5891C9.68548 20.1917 9.49339 19.7313 9.4149 19.2455C9.33641 18.7598 9.37374 18.2624 9.52384 17.7938"
|
|
20
|
+
stroke={color ?? "#910023"}
|
|
21
|
+
strokeWidth="1.5"
|
|
22
|
+
strokeLinecap="round"
|
|
23
|
+
strokeLinejoin="round"
|
|
24
|
+
/>
|
|
25
|
+
</svg>
|
|
26
|
+
{flag && (
|
|
27
|
+
<div className="absolute top-0 right-0">
|
|
28
|
+
<div className="absolute w-2 h-2 rounded-full bg-red-500" />
|
|
29
|
+
<div className=" w-2 h-2 rounded-full bg-red-400 animate-ping duration-1000" />
|
|
30
|
+
</div>
|
|
31
|
+
)}
|
|
32
|
+
</button>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function Phone(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export default function Phone() {
|
|
3
|
+
return (_jsx("svg", { className: "mr-3", xmlns: "http://www.w3.org/2000/svg", width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", children: _jsx("path", { d: "M10.9375 1.5625H8.59375C7.97215 1.5625 7.37601 1.80943 6.93647 2.24897C6.49693 2.68851 6.25 3.28465 6.25 3.90625V21.0937C6.25 21.7154 6.49693 22.3115 6.93647 22.751C7.37601 23.1906 7.97215 23.4375 8.59375 23.4375H16.4062C17.0279 23.4375 17.624 23.1906 18.0635 22.751C18.5031 22.3115 18.75 21.7154 18.75 21.0937V3.90625C18.75 3.28465 18.5031 2.68851 18.0635 2.24897C17.624 1.80943 17.0279 1.5625 16.4062 1.5625H14.0625M10.9375 1.5625V3.125H14.0625V1.5625M10.9375 1.5625H14.0625M10.9375 21.0937H14.0625", stroke: "#105652", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default function Phone() {
|
|
2
|
+
return (
|
|
3
|
+
<svg
|
|
4
|
+
className="mr-3"
|
|
5
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
+
width="25"
|
|
7
|
+
height="25"
|
|
8
|
+
viewBox="0 0 25 25"
|
|
9
|
+
fill="none"
|
|
10
|
+
>
|
|
11
|
+
<path
|
|
12
|
+
d="M10.9375 1.5625H8.59375C7.97215 1.5625 7.37601 1.80943 6.93647 2.24897C6.49693 2.68851 6.25 3.28465 6.25 3.90625V21.0937C6.25 21.7154 6.49693 22.3115 6.93647 22.751C7.37601 23.1906 7.97215 23.4375 8.59375 23.4375H16.4062C17.0279 23.4375 17.624 23.1906 18.0635 22.751C18.5031 22.3115 18.75 21.7154 18.75 21.0937V3.90625C18.75 3.28465 18.5031 2.68851 18.0635 2.24897C17.624 1.80943 17.0279 1.5625 16.4062 1.5625H14.0625M10.9375 1.5625V3.125H14.0625V1.5625M10.9375 1.5625H14.0625M10.9375 21.0937H14.0625"
|
|
13
|
+
stroke="#105652"
|
|
14
|
+
strokeWidth="1.5"
|
|
15
|
+
strokeLinecap="round"
|
|
16
|
+
strokeLinejoin="round"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export default function Profile({ color, onClick }) {
|
|
3
|
+
return (_jsx("svg", { className: "cursor-pointer", onClick: onClick, xmlns: "http://www.w3.org/2000/svg", width: "25", height: "25", viewBox: "0 0 25 25", fill: "none", children: _jsx("path", { d: "M18.7313 19.5053C18.0034 18.5416 17.0618 17.7601 15.9804 17.2223C14.8991 16.6846 13.7077 16.4052 12.5 16.4063C11.2924 16.4052 10.101 16.6846 9.01964 17.2223C7.93832 17.7601 6.99664 18.5416 6.26878 19.5053M18.7313 19.5053C20.1516 18.2419 21.1533 16.5767 21.6054 14.7304C22.0576 12.884 21.9378 10.9439 21.262 9.16722C20.5862 7.39055 19.3862 5.86128 17.8213 4.78224C16.2564 3.7032 14.4004 3.12537 12.4995 3.12537C10.5986 3.12537 8.74267 3.7032 7.17775 4.78224C5.61282 5.86128 4.41288 7.39055 3.73705 9.16722C3.06122 10.9439 2.94144 12.884 3.3936 14.7304C3.84575 16.5767 4.84847 18.2419 6.26878 19.5053M18.7313 19.5053C17.0167 21.0346 14.7976 21.8783 12.5 21.8751C10.2021 21.8786 7.98361 21.0349 6.26878 19.5053M15.625 10.1563C15.625 10.9851 15.2958 11.78 14.7097 12.366C14.1237 12.9521 13.3288 13.2813 12.5 13.2813C11.6712 13.2813 10.8764 12.9521 10.2903 12.366C9.70427 11.78 9.37503 10.9851 9.37503 10.1563C9.37503 9.32751 9.70427 8.53265 10.2903 7.9466C10.8764 7.36055 11.6712 7.03131 12.5 7.03131C13.3288 7.03131 14.1237 7.36055 14.7097 7.9466C15.2958 8.53265 15.625 9.32751 15.625 10.1563Z", stroke: color ?? "#910023", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OnClick } from "../../interface";
|
|
2
|
+
|
|
3
|
+
interface Profile {
|
|
4
|
+
onClick: OnClick;
|
|
5
|
+
color?: string;
|
|
6
|
+
}
|
|
7
|
+
export default function Profile({ color, onClick }: Profile) {
|
|
8
|
+
return (
|
|
9
|
+
<svg
|
|
10
|
+
className="cursor-pointer"
|
|
11
|
+
onClick={onClick}
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
width="25"
|
|
14
|
+
height="25"
|
|
15
|
+
viewBox="0 0 25 25"
|
|
16
|
+
fill="none"
|
|
17
|
+
>
|
|
18
|
+
<path
|
|
19
|
+
d="M18.7313 19.5053C18.0034 18.5416 17.0618 17.7601 15.9804 17.2223C14.8991 16.6846 13.7077 16.4052 12.5 16.4063C11.2924 16.4052 10.101 16.6846 9.01964 17.2223C7.93832 17.7601 6.99664 18.5416 6.26878 19.5053M18.7313 19.5053C20.1516 18.2419 21.1533 16.5767 21.6054 14.7304C22.0576 12.884 21.9378 10.9439 21.262 9.16722C20.5862 7.39055 19.3862 5.86128 17.8213 4.78224C16.2564 3.7032 14.4004 3.12537 12.4995 3.12537C10.5986 3.12537 8.74267 3.7032 7.17775 4.78224C5.61282 5.86128 4.41288 7.39055 3.73705 9.16722C3.06122 10.9439 2.94144 12.884 3.3936 14.7304C3.84575 16.5767 4.84847 18.2419 6.26878 19.5053M18.7313 19.5053C17.0167 21.0346 14.7976 21.8783 12.5 21.8751C10.2021 21.8786 7.98361 21.0349 6.26878 19.5053M15.625 10.1563C15.625 10.9851 15.2958 11.78 14.7097 12.366C14.1237 12.9521 13.3288 13.2813 12.5 13.2813C11.6712 13.2813 10.8764 12.9521 10.2903 12.366C9.70427 11.78 9.37503 10.9851 9.37503 10.1563C9.37503 9.32751 9.70427 8.53265 10.2903 7.9466C10.8764 7.36055 11.6712 7.03131 12.5 7.03131C13.3288 7.03131 14.1237 7.36055 14.7097 7.9466C15.2958 8.53265 15.625 9.32751 15.625 10.1563Z"
|
|
20
|
+
stroke={color ?? "#910023"}
|
|
21
|
+
strokeWidth="1.5"
|
|
22
|
+
strokeLinecap="round"
|
|
23
|
+
strokeLinejoin="round"
|
|
24
|
+
/>
|
|
25
|
+
</svg>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -6,7 +6,7 @@ import { cn, sortByOrder } from "../../util";
|
|
|
6
6
|
import { useWidgetStore } from "../../store";
|
|
7
7
|
import { useId } from "react";
|
|
8
8
|
export default function ManageBoard({ header, dataSets, dataField, widgets, options, buttons, }) {
|
|
9
|
-
const { className, noPadding
|
|
9
|
+
const { className, noPadding } = options ?? {};
|
|
10
10
|
const { order } = useWidgetStore();
|
|
11
11
|
const id = useId();
|
|
12
12
|
const orders = order[id] ?? [];
|
package/html/template/Input.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function Input({ state, onKeyDown, placeholder, options }:
|
|
1
|
+
import { HTMLInput } from "../../interface";
|
|
2
|
+
declare function Input({ state, onKeyDown, placeholder, options }: HTMLInput): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
declare namespace Input {
|
|
4
|
-
var LG: ({ state, placeholder, flag, type }:
|
|
4
|
+
var LG: ({ state, placeholder, flag, type, label }: HTMLInput) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
}
|
|
6
6
|
export default Input;
|
package/html/template/Input.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId, useState } from "react";
|
|
3
|
-
import { cn } from "../../util";
|
|
2
|
+
import { useId, useState, useRef } from "react";
|
|
3
|
+
import { cn, gradient } from "../../util";
|
|
4
4
|
import Obstacle from "../widget/Obstacle";
|
|
5
|
+
import Label from "./Label";
|
|
5
6
|
const widthSize = {
|
|
6
7
|
xs: "w-28",
|
|
7
8
|
sm: "w-48",
|
|
@@ -13,8 +14,8 @@ const widthSize = {
|
|
|
13
14
|
};
|
|
14
15
|
function Input({ state, onKeyDown, placeholder, options }) {
|
|
15
16
|
const { width, disabled } = options ?? {};
|
|
16
|
-
const id = useId();
|
|
17
17
|
const [value, setValue] = state;
|
|
18
|
+
const id = useId();
|
|
18
19
|
const container = {
|
|
19
20
|
positions: "relative",
|
|
20
21
|
width: `${widthSize[width ?? "xs"]} h-8`,
|
|
@@ -29,9 +30,10 @@ function Input({ state, onKeyDown, placeholder, options }) {
|
|
|
29
30
|
};
|
|
30
31
|
return (_jsxs("div", { className: cn(container), children: [_jsx("input", { className: cn(body), id: id, type: "text", value: value, placeholder: placeholder ?? "입력해주세요", onKeyDown: onKeyDown, onChange: (e) => setValue(e.target.value) }), _jsx(Obstacle, { disabled: disabled })] }));
|
|
31
32
|
}
|
|
32
|
-
function LG({ state, placeholder, flag, type }) {
|
|
33
|
+
function LG({ state, placeholder, flag, type, label }) {
|
|
33
34
|
const [value, setValue] = state;
|
|
34
35
|
const [onFocus, setOnFocus] = useState(false);
|
|
36
|
+
const ref = useRef(null);
|
|
35
37
|
const container = {
|
|
36
38
|
positions: "relative",
|
|
37
39
|
};
|
|
@@ -42,7 +44,8 @@ function LG({ state, placeholder, flag, type }) {
|
|
|
42
44
|
animation: value || onFocus ? "top-2.625 text-xs" : "top-4.375 text-base",
|
|
43
45
|
};
|
|
44
46
|
const inputBox = {
|
|
45
|
-
sizes: "w-102.5 h-13.5
|
|
47
|
+
sizes: "w-102.5 h-13.5",
|
|
48
|
+
paddings: `${placeholder && "pt-3"} pl-5`,
|
|
46
49
|
fonts: "text-sm",
|
|
47
50
|
background: flag === true
|
|
48
51
|
? "bg-green-dark/10"
|
|
@@ -52,7 +55,14 @@ function LG({ state, placeholder, flag, type }) {
|
|
|
52
55
|
styles: "bg-gray-light rounded-md outline-none",
|
|
53
56
|
animation: onFocus ? "border-2 border-green-dark box-shadow" : "border-0",
|
|
54
57
|
};
|
|
55
|
-
return (_jsxs("div", { className: cn(container), children: [_jsx("div", { className: cn(placeholderBox), children: placeholder }), _jsx("input", { className: cn(inputBox), value: value, onFocus: () => setOnFocus(true), onBlur: () => setOnFocus(false), onChange: (e) => setValue(e.target.value), type: type ?? "text" })
|
|
58
|
+
return (_jsxs("div", { className: cn(container), children: [_jsx("div", { onClick: () => ref.current?.focus(), className: cn(placeholderBox), children: placeholder }), _jsx("input", { ref: ref, className: cn(inputBox), value: value, onFocus: () => setOnFocus(true), onBlur: () => setOnFocus(false), onChange: (e) => setValue(e.target.value), type: type ?? "text" }), label && (_jsx(Label.Button, { title: label.title, onClick: label.onClick, options: {
|
|
59
|
+
width: "sm",
|
|
60
|
+
height: "xs",
|
|
61
|
+
className: "absolute top-3.5 right-3.75",
|
|
62
|
+
background: label.options?.background ?? gradient.bg.greenToRed,
|
|
63
|
+
text: label.options?.text ?? "text-white",
|
|
64
|
+
...label.options,
|
|
65
|
+
} }))] }));
|
|
56
66
|
}
|
|
57
67
|
Input.LG = LG;
|
|
58
68
|
export default Input;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HTMLInput } from "../../interface";
|
|
2
2
|
import "react-datepicker/dist/react-datepicker.css";
|
|
3
|
-
export default function DatePicker({ options }:
|
|
3
|
+
export default function DatePicker({ options }: HTMLInput): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function EmailInput({ state, placeholder, options
|
|
1
|
+
import { HTMLInput } from "../../interface";
|
|
2
|
+
export default function EmailInput({ state, placeholder, options }: HTMLInput): import("react/jsx-runtime").JSX.Element;
|
|
@@ -10,7 +10,7 @@ const widthSize = {
|
|
|
10
10
|
"2xl": "w-144",
|
|
11
11
|
full: "w-full",
|
|
12
12
|
};
|
|
13
|
-
export default function EmailInput({ state, placeholder, options
|
|
13
|
+
export default function EmailInput({ state, placeholder, options }) {
|
|
14
14
|
const { width } = options ?? {};
|
|
15
15
|
const id = useId();
|
|
16
16
|
const [value, setValue] = state;
|
package/interface/Board.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataField, DataSet, Size, Titles } from "./Property";
|
|
2
2
|
import { EventsProps } from "./Widget";
|
|
3
|
-
import {
|
|
3
|
+
import { HTMLInput, HTMLLabelElement, HTMLSelectElement } from "./HTMLElement";
|
|
4
4
|
interface OptionsProps {
|
|
5
5
|
className?: string;
|
|
6
6
|
width?: Size;
|
|
@@ -26,7 +26,7 @@ export interface BoardHeaderProps<B> {
|
|
|
26
26
|
};
|
|
27
27
|
tag?: {
|
|
28
28
|
selects?: HTMLSelectElement<B>[];
|
|
29
|
-
inputs?:
|
|
29
|
+
inputs?: HTMLInput[];
|
|
30
30
|
};
|
|
31
31
|
options?: {
|
|
32
32
|
titleBorder?: string;
|
|
@@ -29,13 +29,14 @@ export interface HTMLSelectElement<T> extends HTMLElement {
|
|
|
29
29
|
selectOptions?: SelectOption<T>[];
|
|
30
30
|
placeholder?: string;
|
|
31
31
|
}
|
|
32
|
-
type
|
|
33
|
-
export interface
|
|
32
|
+
type HTMLInputType = "text" | "password" | "date" | "email" | "phone" | "number";
|
|
33
|
+
export interface HTMLInput extends HTMLElement {
|
|
34
34
|
state: State<string> | State<string | undefined>;
|
|
35
35
|
onKeyDown?: (e: React.KeyboardEvent) => void;
|
|
36
36
|
placeholder?: string;
|
|
37
37
|
flag?: boolean;
|
|
38
|
-
type?:
|
|
38
|
+
type?: HTMLInputType;
|
|
39
|
+
label?: HTMLLabelElement;
|
|
39
40
|
}
|
|
40
41
|
export interface HTMLToggleElement extends HTMLElement {
|
|
41
42
|
state: State<boolean>;
|
package/interface/Layout.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnClick } from "./Property";
|
|
1
|
+
import { OnClick, State } from "./Property";
|
|
2
2
|
import { ShowAction } from "./Widget";
|
|
3
3
|
interface Notification {
|
|
4
4
|
id: number;
|
|
@@ -9,15 +9,29 @@ interface Notification {
|
|
|
9
9
|
createdAt: Date;
|
|
10
10
|
updatedAt: Date;
|
|
11
11
|
}
|
|
12
|
+
interface NotificationProps {
|
|
13
|
+
notifications?: Partial<Notification>[];
|
|
14
|
+
flag: boolean;
|
|
15
|
+
onClick: OnClick;
|
|
16
|
+
color?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface MenuProps {
|
|
19
|
+
action?: ShowAction;
|
|
20
|
+
profile?: {
|
|
21
|
+
name: string;
|
|
22
|
+
belong: string;
|
|
23
|
+
image: string;
|
|
24
|
+
};
|
|
25
|
+
input?: {
|
|
26
|
+
password: State<string | undefined>;
|
|
27
|
+
};
|
|
28
|
+
onClick: OnClick;
|
|
29
|
+
}
|
|
12
30
|
export interface DashboardHeaderProps {
|
|
13
31
|
title: string;
|
|
14
32
|
logo?: React.ReactNode;
|
|
15
|
-
notification:
|
|
16
|
-
|
|
17
|
-
flag: boolean;
|
|
18
|
-
onClick: OnClick;
|
|
19
|
-
color?: string;
|
|
20
|
-
};
|
|
33
|
+
notification: NotificationProps;
|
|
34
|
+
menu?: MenuProps;
|
|
21
35
|
options?: {
|
|
22
36
|
background?: string;
|
|
23
37
|
text?: string;
|
package/interface/Property.d.ts
CHANGED
|
@@ -39,10 +39,11 @@ export type Size = "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" | "
|
|
|
39
39
|
export type OnClick<T = unknown> = (prop?: T) => unknown | ((prop?: T) => Promise<unknown>);
|
|
40
40
|
export interface Button extends HTMLLabelElement {
|
|
41
41
|
}
|
|
42
|
+
export type FileRead = string | ArrayBuffer | null;
|
|
42
43
|
export type Disabled = boolean | OnClick;
|
|
43
44
|
export type Scripts = {
|
|
44
45
|
script: string;
|
|
45
|
-
|
|
46
|
+
subscript?: string | string[];
|
|
46
47
|
};
|
|
47
48
|
export type Titles = {
|
|
48
49
|
title: string;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import Box from "../widget/sign/Box";
|
|
2
2
|
import Button from "../widget/sign/Button";
|
|
3
3
|
import Check from "../widget/sign/Check";
|
|
4
|
-
import Input from "../widget/sign/Input";
|
|
5
4
|
import Layout from "../widget/sign/Layout";
|
|
5
|
+
import WithTitle from "../widget/sign/WithTitle";
|
|
6
6
|
declare const Sign: {
|
|
7
7
|
Box: typeof Box;
|
|
8
8
|
Button: typeof Button;
|
|
9
9
|
Check: typeof Check;
|
|
10
|
-
Input:
|
|
10
|
+
Input: {
|
|
11
|
+
WithTitle: typeof WithTitle;
|
|
12
|
+
};
|
|
11
13
|
Layout: typeof Layout;
|
|
12
14
|
};
|
|
13
15
|
export default Sign;
|
package/layout/template/Sign.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import Box from "../widget/sign/Box";
|
|
2
2
|
import Button from "../widget/sign/Button";
|
|
3
3
|
import Check from "../widget/sign/Check";
|
|
4
|
-
import Input from "../widget/sign/Input";
|
|
5
4
|
import Layout from "../widget/sign/Layout";
|
|
5
|
+
import WithTitle from "../widget/sign/WithTitle";
|
|
6
6
|
const Sign = {
|
|
7
7
|
Box,
|
|
8
8
|
Button,
|
|
9
9
|
Check,
|
|
10
|
-
Input
|
|
10
|
+
Input: {
|
|
11
|
+
WithTitle,
|
|
12
|
+
},
|
|
11
13
|
Layout,
|
|
12
14
|
};
|
|
13
15
|
export default Sign;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DashboardHeaderProps } from "../../../interface";
|
|
2
|
-
export declare function Header({ title, logo, notification, options, }: DashboardHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function Header({ title, logo, notification, menu, options, }: DashboardHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "../../../util";
|
|
2
|
+
import { cn, gradient } from "../../../util";
|
|
3
3
|
import { useWidgetStore } from "../../../store";
|
|
4
4
|
import Menu from "./Menu";
|
|
5
5
|
import { Events } from "../..";
|
|
6
6
|
import Notification from "./Notification";
|
|
7
|
-
|
|
7
|
+
import SVG from "../../../asset/SVG";
|
|
8
|
+
import { Label } from "../../../html";
|
|
9
|
+
export function Header({ title, logo, notification, menu, options, }) {
|
|
8
10
|
const { setView, setIsOwn } = useWidgetStore();
|
|
9
11
|
const { notifications, flag, onClick, color } = notification;
|
|
10
12
|
const { text, background, className } = options ?? {};
|
|
@@ -17,15 +19,20 @@ export function Header({ title, logo, notification, options, }) {
|
|
|
17
19
|
styles: "px-5 xl:px-8 2xl:px-16 box-shadow",
|
|
18
20
|
className,
|
|
19
21
|
};
|
|
20
|
-
return (_jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex h-12 items-center gap-8 xl:gap-24 2xl:gap-26", children: [logo ? _jsx(_Fragment, { children: logo }) : _jsx("div", { className: "text-2xl", children: "TOSEL" }), _jsx("div", { className: "text-3xl font-pretendard-bold", children: title })] }), _jsx("div", { className: "relative flex gap-5.25", children: _jsxs(Events.Show, { widgets: [
|
|
22
|
+
return (_jsxs("div", { className: cn(container), children: [_jsxs("div", { className: "flex h-12 items-center gap-8 xl:gap-24 2xl:gap-26", children: [logo ? _jsx(_Fragment, { children: logo }) : _jsx("div", { className: "text-2xl", children: "TOSEL" }), _jsx("div", { className: "hidden lg:flex text-3xl font-pretendard-bold", children: title })] }), _jsx("div", { className: "relative flex gap-5.25", children: _jsxs(Events.Show, { widgets: [
|
|
21
23
|
["notification", _jsx(Notification, { notifications: notifications })],
|
|
22
|
-
["menu", _jsx(Menu, {
|
|
23
|
-
], children: [
|
|
24
|
+
[menu ? "menu" : false, menu && _jsx(Menu, { ...menu })],
|
|
25
|
+
], children: [_jsx(SVG.Notification, { flag: flag, onClick: () => {
|
|
24
26
|
setIsOwn(true);
|
|
25
27
|
onClick && onClick();
|
|
26
28
|
return setView("notification");
|
|
27
|
-
},
|
|
29
|
+
}, color: color }), menu?.profile ? (_jsx(SVG.Profile, { onClick: () => {
|
|
28
30
|
setIsOwn(true);
|
|
29
31
|
return setView("menu");
|
|
30
|
-
},
|
|
32
|
+
}, color: color })) : (_jsx(Label.Button, { title: "\uB300\uC2DC\uBCF4\uB4DC\uB85C", onClick: menu?.onClick, options: {
|
|
33
|
+
width: "sm",
|
|
34
|
+
height: "xs",
|
|
35
|
+
text: "text-white",
|
|
36
|
+
background: gradient.bg.greenToRed,
|
|
37
|
+
} }))] }) })] }));
|
|
31
38
|
}
|
|
@@ -6,7 +6,7 @@ import { useWidgetStore } from "../../../store";
|
|
|
6
6
|
import { NavigationContainer } from "./Navigation";
|
|
7
7
|
export default function Layout({ header, navigations, children, options, }) {
|
|
8
8
|
const { isDark, flag, setFlag, isOwn, setIsOwn, clearView } = useWidgetStore();
|
|
9
|
-
const { title, options: headerOptions, logo, notification } = header;
|
|
9
|
+
const { title, options: headerOptions, logo, notification, menu } = header;
|
|
10
10
|
const { background } = options ?? {};
|
|
11
11
|
useEffect(() => {
|
|
12
12
|
if (isOwn) {
|
|
@@ -25,5 +25,5 @@ export default function Layout({ header, navigations, children, options, }) {
|
|
|
25
25
|
displays: "flex gap-12 xl:gap-7.5 ",
|
|
26
26
|
paddings: "pt-15 xl:pl-2 2xl:pl-12 2xl:pr-11.25 xl:pt-7.5",
|
|
27
27
|
};
|
|
28
|
-
return (_jsxs("div", { className: cn(container), onClick: setFlag, children: [_jsx(Header, { title: title, notification: notification, options: headerOptions, logo: logo }), _jsxs("div", { className: cn(body), children: [_jsx(NavigationContainer, { children: navigations.map((nav, index) => (_jsx(Fragment, { children: nav }, index))) }), children] })] }));
|
|
28
|
+
return (_jsxs("div", { className: cn(container), onClick: setFlag, children: [_jsx(Header, { title: title, notification: notification, menu: menu, options: headerOptions, logo: logo }), _jsxs("div", { className: cn(body), children: [_jsx(NavigationContainer, { children: navigations.map((nav, index) => (_jsx(Fragment, { children: nav }, index))) }), children] })] }));
|
|
29
29
|
}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function Menu({ action,
|
|
3
|
-
action?: ShowAction;
|
|
4
|
-
image: string;
|
|
5
|
-
}): JSX.Element;
|
|
1
|
+
import { MenuProps } from "../../../interface";
|
|
2
|
+
export default function Menu({ action, profile, input, onClick }: MenuProps): JSX.Element;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useTransition, animated } from "react-spring";
|
|
3
|
-
import { cn } from "../../../util";
|
|
3
|
+
import { cn, gradient } from "../../../util";
|
|
4
4
|
import { useWidgetStore } from "../../../store";
|
|
5
|
-
|
|
5
|
+
import { Label } from "../../../html";
|
|
6
|
+
export default function Menu({ action, profile, input, onClick }) {
|
|
6
7
|
const { isVisible } = action ?? {};
|
|
7
|
-
const { setIsOwn } = useWidgetStore();
|
|
8
|
+
const { setIsOwn, removeModal } = useWidgetStore();
|
|
8
9
|
const container = {
|
|
9
|
-
displays: "flex flex-col",
|
|
10
|
-
positions: "absolute top-
|
|
11
|
-
sizes: "w-
|
|
12
|
-
styles: " bg-white box-shadow",
|
|
10
|
+
displays: "flex flex-col p-2.5",
|
|
11
|
+
positions: "absolute top-0 right-0 z-45 ",
|
|
12
|
+
sizes: "w-52.5 ",
|
|
13
|
+
styles: " bg-white box-shadow rounded-lgx",
|
|
13
14
|
};
|
|
14
15
|
const transitions = useTransition(isVisible, {
|
|
15
16
|
from: { opacity: 0 },
|
|
@@ -17,5 +18,13 @@ export default function Menu({ action, image, }) {
|
|
|
17
18
|
leave: { opacity: 0 },
|
|
18
19
|
config: { duration: 200 },
|
|
19
20
|
});
|
|
20
|
-
return transitions((styles, item) => item && (_jsxs(animated.div, { style: styles, className: cn(container), onClick: () => setIsOwn(true), children: [_jsxs("div", { className: "h-
|
|
21
|
+
return transitions((styles, item) => item && (_jsxs(animated.div, { style: styles, className: cn(container), onClick: () => setIsOwn(true), children: [_jsxs("div", { className: "h-17.75 flex gap-12 justify-center items-center text-black border-b-2 pb-2.5", children: [_jsxs("div", { children: [_jsx("div", { children: profile?.name }), _jsx("div", { className: "text-xs", children: profile?.belong })] }), _jsx("div", { className: "relative w-15 h-15 rounded-md overflow-hidden", children: _jsx("img", { className: "bg-cover rounded-md", src: profile?.image, alt: "profile-image" }) })] }), _jsxs("div", { className: "flex flex-col gap-2.5 pt-2.5", children: [_jsx("input", { className: "w-47.5 h-6.25 border-2 text-black", value: input?.password[0], onChange: (e) => input?.password[1](e.target.value), type: "password" }), _jsxs("div", { className: "flex gap-2.5", children: [_jsx(Label.Button, { title: "\uCDE8\uC18C", onClick: () => removeModal("menu"), options: {
|
|
22
|
+
width: "sm",
|
|
23
|
+
height: "xs",
|
|
24
|
+
} }), _jsx(Label.Button, { title: "\uD655\uC778", onClick: onClick, options: {
|
|
25
|
+
background: gradient.bg.greenToRed,
|
|
26
|
+
text: "text-white",
|
|
27
|
+
width: "sm",
|
|
28
|
+
height: "xs",
|
|
29
|
+
} })] })] })] })));
|
|
21
30
|
}
|
|
@@ -3,7 +3,7 @@ import { cn } from "../../../util";
|
|
|
3
3
|
export function NavigationContainer({ children, }) {
|
|
4
4
|
const container = {
|
|
5
5
|
positions: "fixed xl:static bottom-0 left-0 z-40",
|
|
6
|
-
displays: "flex flex-row xl:flex-col",
|
|
6
|
+
displays: "hidden lg:flex flex-row xl:flex-col",
|
|
7
7
|
sizes: "w-full xl:w-auto",
|
|
8
8
|
};
|
|
9
9
|
return (_jsxs("div", { className: cn(container), children: [children, _jsx(Copyright, {})] }));
|
|
@@ -26,5 +26,5 @@ export default function MyPageLayout({ header, profile, navigations, children, o
|
|
|
26
26
|
sizes: "h-full ",
|
|
27
27
|
paddings: "pt-15 xl:pl-2 2xl:px-12 xl:pt-7.5",
|
|
28
28
|
};
|
|
29
|
-
return (_jsxs("div", { className: cn(container), onClick: setFlag, children: [_jsx(Header, {
|
|
29
|
+
return (_jsxs("div", { className: cn(container), onClick: setFlag, children: [_jsx(Header, { ...header }), _jsxs("div", { className: cn(body), children: [_jsxs(NavigationContainer, { children: [_jsx(Profile.Preview, { username: profile.username, email: profile.email, image: profile.image }), navigations.map((nav, index) => (_jsx(Fragment, { children: nav }, index)))] }), children] })] }));
|
|
30
30
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Button as ButtonProp, OnClick, State, Titles } from "../../../../interface";
|
|
2
|
-
|
|
2
|
+
interface ProfileProps {
|
|
3
3
|
name: string;
|
|
4
4
|
birthday: string;
|
|
5
5
|
image: string;
|
|
6
6
|
modify: {
|
|
7
|
+
image: OnClick;
|
|
7
8
|
name: OnClick;
|
|
8
9
|
birthday: OnClick;
|
|
9
10
|
};
|
|
10
|
-
}
|
|
11
|
+
}
|
|
12
|
+
declare function Profile({ name, birthday, image, modify }: ProfileProps): import("react/jsx-runtime").JSX.Element;
|
|
11
13
|
declare namespace Profile {
|
|
12
14
|
var Detail: ({ titles, infos, toggle, }: {
|
|
13
15
|
titles: Titles;
|
|
@@ -1,15 +1,30 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId, useState } from "react";
|
|
3
|
+
import { animated, useTransition } from "react-spring";
|
|
2
4
|
import { cn, gradient } from "../../../../util";
|
|
3
5
|
import Card from "../../../../card/design/Card.design";
|
|
4
6
|
import { Label, Toggle } from "../../../../html";
|
|
5
|
-
import
|
|
6
|
-
function Profile({ name, birthday, image, modify
|
|
7
|
+
import SVG from "../../../../asset/SVG";
|
|
8
|
+
function Profile({ name, birthday, image, modify }) {
|
|
9
|
+
const [hover, setHover] = useState(false);
|
|
10
|
+
const hoverBox = {
|
|
11
|
+
positions: "absolute top-0 left-0",
|
|
12
|
+
displays: "flex flex-col gap-y-2.75 justify-center items-center",
|
|
13
|
+
sizes: "w-full h-full",
|
|
14
|
+
styles: "bg-black/50",
|
|
15
|
+
};
|
|
16
|
+
const transitions = useTransition(hover, {
|
|
17
|
+
from: { opacity: 0 },
|
|
18
|
+
enter: { opacity: 1 },
|
|
19
|
+
leave: { opacity: 0 },
|
|
20
|
+
config: { duration: 250 },
|
|
21
|
+
});
|
|
7
22
|
return (_jsxs(Card, { options: {
|
|
8
23
|
className: "flex gap-x-7.5 items-center pl-5",
|
|
9
24
|
width: "md",
|
|
10
25
|
height: "2xs",
|
|
11
26
|
boundary: "border-1 border-black",
|
|
12
|
-
}, children: [
|
|
27
|
+
}, children: [_jsxs("button", { onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: modify.image, className: "w-20 h-20 overflow-hidden rounded-md relative", children: [_jsx("img", { src: image, alt: "profile-image", className: "bg-cover" }), 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" })] })))] }), _jsxs("div", { className: "flex flex-col h-20", children: [_jsx("div", { className: "text-xl leading-none font-pretendard-bold text-gray-dark", children: name }), _jsx("div", { className: "leading-none text-gray-medium mt-1.25", children: birthday }), _jsxs("div", { className: "flex gap-3 mt-auto", children: [_jsx(Label.Button, { title: "\uC2E4\uBA85 \uC218\uC815", options: { width: "sm", height: "xs" }, onClick: modify.name }), _jsx(Label.Button, { title: "\uC0DD\uC77C \uC218\uC815", options: { width: "sm", height: "xs" }, onClick: modify.birthday })] })] })] }));
|
|
13
28
|
}
|
|
14
29
|
function Detail({ titles, infos, toggle, }) {
|
|
15
30
|
const infoBox = {
|
|
@@ -24,7 +39,7 @@ function Detail({ titles, infos, toggle, }) {
|
|
|
24
39
|
height: "xs",
|
|
25
40
|
background: gradient.bg.greenToRedSoft,
|
|
26
41
|
boundary: "",
|
|
27
|
-
}, children: [_jsxs("div", { className: "h-13.25 flex flex-col text-gray-dark border-b-1 border-crimson-burgundy", children: [_jsx("div", { className: "text-xl font-pretendard-bold h-6 leading-none", children: titles.title }), _jsx("div", { className: "h-4.75 leading-none", children: titles.subtitle })] }), _jsx("div", { className: "mt-4.25 flex flex-col gap-2.5 ", children: infos?.map(({ title, content, button }, index) => (_jsxs("div", { className: cn(infoBox), children: [title === "phone" ? (_jsx(
|
|
42
|
+
}, children: [_jsxs("div", { className: "h-13.25 flex flex-col text-gray-dark border-b-1 border-crimson-burgundy", children: [_jsx("div", { className: "text-xl font-pretendard-bold h-6 leading-none", children: titles.title }), _jsx("div", { className: "h-4.75 leading-none", children: titles.subtitle })] }), _jsx("div", { className: "mt-4.25 flex flex-col gap-2.5 ", children: infos?.map(({ title, content, button }, index) => (_jsxs("div", { className: cn(infoBox), children: [title === "phone" ? (_jsx(SVG.Phone, {})) : title === "email" ? (_jsx(SVG.Email, {})) : (_jsx("div", { className: "font-pretendard-bold mr-5 w-7", children: title })), _jsx("div", { className: "leading-none flex items-center w-60", children: content }), _jsx(Label.Button, { title: button.title, onClick: button.onClick, options: {
|
|
28
43
|
className: "ml-auto",
|
|
29
44
|
background: gradient.bg.greenToRed,
|
|
30
45
|
text: "text-white",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HTMLInput } from "../../../interface";
|
|
2
|
+
interface InputWithTitleProps extends HTMLInput {
|
|
3
|
+
title: string;
|
|
4
|
+
}
|
|
5
|
+
declare function WithTitle({ title, placeholder, state, flag, type, }: InputWithTitleProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default WithTitle;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Input } from "../../../html";
|
|
3
|
+
function WithTitle({ title, placeholder, state, flag, type, }) {
|
|
4
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("div", { className: "leading-none", children: title }), _jsx(Input.LG, { placeholder: placeholder, state: state, flag: flag, type: type })] }));
|
|
5
|
+
}
|
|
6
|
+
export default WithTitle;
|
|
@@ -10,7 +10,7 @@ import { LineBreaks } from "./../../text/LineBreaks";
|
|
|
10
10
|
const widthSize = {
|
|
11
11
|
xs: "w-2/3 min-w-76 max-w-176",
|
|
12
12
|
sm: "w-2/3 min-w-76 max-w-176",
|
|
13
|
-
md: "
|
|
13
|
+
md: "w-112.5",
|
|
14
14
|
lg: "w-full min-w-76 max-w-360",
|
|
15
15
|
xl: "w-2/3 min-w-76 max-w-360",
|
|
16
16
|
"2xl": "w-2/3 min-w-76 max-w-360",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Scripts } from "../../../interface";
|
|
2
|
+
import { ConfirmModalProps } from "../../../interface/Modal";
|
|
3
|
+
interface ConfirmProps extends Omit<ConfirmModalProps, "children"> {
|
|
4
|
+
scripts: Scripts & {
|
|
5
|
+
alert?: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export type { ConfirmProps };
|
|
9
|
+
export default function Confirm(props: ConfirmProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { LineBreaks } from "../../../text";
|
|
3
|
+
import { cn } from "../../../util";
|
|
4
|
+
import ConfirmModalDesign from "../../design/ConfirmModal.design";
|
|
5
|
+
export default function Confirm(props) {
|
|
6
|
+
const container = {
|
|
7
|
+
displays: "flex flex-col gap-3 justify-center items-center",
|
|
8
|
+
margins: "mt-2.5",
|
|
9
|
+
sizes: "w-full h-60",
|
|
10
|
+
};
|
|
11
|
+
return (_jsx(ConfirmModalDesign, { ...props, children: _jsxs("div", { className: cn(container), children: [_jsx("div", { className: "leading-none text-xl font-pretendard-bold", children: props.scripts.script }), _jsx(LineBreaks, { className: "text-center", texts: props.scripts.subscript }), _jsx("div", { className: "leading-none font-pretendard-bold text-crimson-burgundy", children: props.scripts.alert })] }), options: {
|
|
12
|
+
width: "md",
|
|
13
|
+
height: "lg",
|
|
14
|
+
} }));
|
|
15
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ConfirmModalProps } from "../../../interface/Modal";
|
|
2
|
-
import {
|
|
2
|
+
import { HTMLInput } from "../../../interface";
|
|
3
3
|
interface InputProps extends Omit<ConfirmModalProps, "children"> {
|
|
4
|
-
inputs: (
|
|
4
|
+
inputs: (HTMLInput & {
|
|
5
5
|
title: string;
|
|
6
6
|
})[];
|
|
7
|
-
data?: string;
|
|
8
7
|
}
|
|
9
8
|
export default function Input(props: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
10
9
|
export {};
|
|
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import ConfirmModal from "../../design/ConfirmModal.design";
|
|
3
3
|
import { Input as _Input } from "../../../html";
|
|
4
4
|
export default function Input(props) {
|
|
5
|
-
const {
|
|
6
|
-
return (_jsx(ConfirmModal, { ...props,
|
|
5
|
+
const { inputs } = props;
|
|
6
|
+
return (_jsx(ConfirmModal, { ...props, children: _jsx("div", { className: "flex flex-col gap-3", children: inputs.map((input, index) => (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("div", { className: "font-pretendard-bold", children: input.title }), _jsx(_Input.LG, { ...input })] }, index))) }) }));
|
|
7
7
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConfirmModalProps } from "../../../interface/Modal";
|
|
2
|
+
import { State } from "../../../interface";
|
|
3
|
+
interface ReimageProps extends Omit<ConfirmModalProps, "children"> {
|
|
4
|
+
data: {
|
|
5
|
+
image: State<string | ArrayBuffer | null>;
|
|
6
|
+
nowImage: string;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export default function Reimage(props: ReimageProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef } from "react";
|
|
3
|
+
import ConfirmModal from "../../design/ConfirmModal.design";
|
|
4
|
+
import { cn } from "../../../util";
|
|
5
|
+
import SVG from "../../../asset/SVG";
|
|
6
|
+
export default function Reimage(props) {
|
|
7
|
+
const { data } = props;
|
|
8
|
+
const [selectedImage, setSelectedImage] = data.image;
|
|
9
|
+
const ref = useRef(null);
|
|
10
|
+
const labelBox = {
|
|
11
|
+
displays: "flex items-center pl-5",
|
|
12
|
+
sizes: "w-full h-13.5",
|
|
13
|
+
styles: "bg-gray-light text-gray-dark rounded-lgx",
|
|
14
|
+
};
|
|
15
|
+
const handleImageChange = (e) => {
|
|
16
|
+
const file = e.target.files?.[0];
|
|
17
|
+
if (file) {
|
|
18
|
+
const reader = new FileReader();
|
|
19
|
+
reader.onloadend = () => {
|
|
20
|
+
setSelectedImage(reader.result);
|
|
21
|
+
};
|
|
22
|
+
reader.readAsDataURL(file);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return (_jsx(ConfirmModal, { ...props, children: _jsxs("div", { className: "flex flex-col gap-y-5.5 mt-4.5", children: [_jsx("div", { className: cn(labelBox), children: "\uC774\uBBF8\uC9C0\uB97C \uC120\uD0DD\uD574\uC8FC\uC138\uC694." }), _jsxs("div", { className: "flex w-full justify-center gap-x-12", children: [_jsx(ImageFrame, { image: data.nowImage, script: "\uD604\uC7AC \uC0AC\uC9C4" }), _jsx(SVG.Direction.Right, { className: "mt-7.5" }), _jsx(ImageFrame, { onClick: () => ref.current?.click(), image: selectedImage, script: "\uC0C8\uB85C\uC6B4 \uC0AC\uC9C4" })] }), _jsxs("div", { className: "w-full flex flex-col items-center text-xs text-gray-medium", children: [_jsx("div", { children: "\uB4F1\uB85D\uB41C \uC0AC\uC9C4\uC740 \uC218\uD5D8\uD45C \uBC1C\uAE09\uC2DC \uC790\uB3D9\uC73C\uB85C \uC0AC\uC6A9\uB429\uB2C8\uB2E4." }), _jsx("div", { children: "\uAC00\uAE09\uC801 1:1 \uBE44\uC728, 100*100px \uC774\uC0C1\uC758 \uC0AC\uC9C4\uC744 \uC0AC\uC6A9\uD574\uC8FC\uC138\uC694." })] }), _jsx("input", { ref: ref, type: "file", accept: "image/*", onChange: handleImageChange, className: "hidden" })] }) }));
|
|
26
|
+
}
|
|
27
|
+
function ImageFrame({ image, script, onClick }) {
|
|
28
|
+
const imageBox = {
|
|
29
|
+
sizes: "w-21 h-21 ",
|
|
30
|
+
styles: "overflow-hidden rounded-md",
|
|
31
|
+
cursor: onClick && "cursor-pointer",
|
|
32
|
+
};
|
|
33
|
+
return (_jsxs("div", { className: "flex flex-col gap-2 items-center", children: [_jsx("div", { onClick: onClick, className: cn(imageBox), children: _jsx("img", { src: image, alt: "now-profile-image", className: "bg-cover" }) }), _jsx("div", { className: "leading-none text-xs", children: script })] }));
|
|
34
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { ConfirmProps } from "./Confirm";
|
|
2
|
+
declare function ConfirmModal(props: ConfirmProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare namespace ConfirmModal {
|
|
4
|
+
var Input: typeof import("./Input").default;
|
|
5
|
+
var Reimage: typeof import("./Reimage").default;
|
|
6
|
+
}
|
|
5
7
|
export default ConfirmModal;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import Confirm from "./Confirm";
|
|
1
3
|
import Input from "./Input";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
4
|
+
import Reimage from "./Reimage";
|
|
5
|
+
function ConfirmModal(props) {
|
|
6
|
+
return _jsx(Confirm, { ...props });
|
|
7
|
+
}
|
|
8
|
+
ConfirmModal.Input = Input;
|
|
9
|
+
ConfirmModal.Reimage = Reimage;
|
|
5
10
|
export default ConfirmModal;
|
package/overlay/template/Info.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import OverlayDesign from "../
|
|
2
|
+
import OverlayDesign from "../design/Overlay.design";
|
|
3
3
|
export default function Info({ action }) {
|
|
4
4
|
return (_jsx(OverlayDesign, { titles: { title: "유저 관리" }, action: action, children: _jsx("div", { children: "TEST" }) }));
|
|
5
5
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Input, Label, Select, Toggle } from "../..";
|
|
3
|
-
import OverlayDesign from "../
|
|
4
|
-
import Frame from "../
|
|
3
|
+
import OverlayDesign from "../design/Overlay.design";
|
|
4
|
+
import Frame from "../design/Frame.design";
|
|
5
5
|
import { useId } from "react";
|
|
6
6
|
import { cn } from "../../util";
|
|
7
7
|
export default function Manage({ titles, action, elements, buttons, }) {
|
package/package.json
CHANGED
package/tailwind.config.ts
CHANGED
|
@@ -98,6 +98,7 @@ export default {
|
|
|
98
98
|
2.25: "0.5625rem",
|
|
99
99
|
2.5: "0.625rem",
|
|
100
100
|
2.625: "0.65625rem",
|
|
101
|
+
2.75: "0.6875rem",
|
|
101
102
|
3.5: "0.875rem",
|
|
102
103
|
3.75: "0.9375rem",
|
|
103
104
|
4.25: "1.0625rem",
|
|
@@ -137,6 +138,8 @@ export default {
|
|
|
137
138
|
15: "3.75rem",
|
|
138
139
|
15.5: "3.875rem",
|
|
139
140
|
16: "4rem",
|
|
141
|
+
17: "4.25rem",
|
|
142
|
+
17.75: "4.4375rem",
|
|
140
143
|
18: "4.5rem",
|
|
141
144
|
18.5: "4.625rem",
|
|
142
145
|
18.75: "4.6875rem",
|
package/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.45
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { State } from "../../../interface";
|
|
2
|
-
interface InputProps {
|
|
3
|
-
state: State<string | undefined>;
|
|
4
|
-
placeholder: string;
|
|
5
|
-
flag?: boolean;
|
|
6
|
-
type?: "text" | "password" | "date" | "email" | "phone" | "number";
|
|
7
|
-
}
|
|
8
|
-
interface InputWithTitleProps extends InputProps {
|
|
9
|
-
title: string;
|
|
10
|
-
}
|
|
11
|
-
declare function Input({ state, placeholder, flag, type }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
declare namespace Input {
|
|
13
|
-
var WithTitle: ({ title, placeholder, state, flag, type, }: InputWithTitleProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
}
|
|
15
|
-
export default Input;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { cn } from "../../../util";
|
|
4
|
-
function Input({ state, placeholder, flag, type }) {
|
|
5
|
-
const [value, setValue] = state;
|
|
6
|
-
const [onFocus, setOnFocus] = useState(false);
|
|
7
|
-
const container = {
|
|
8
|
-
positions: "relative",
|
|
9
|
-
};
|
|
10
|
-
const placeholderBox = {
|
|
11
|
-
positions: "absolute left-5",
|
|
12
|
-
styles: "duration-300",
|
|
13
|
-
fonts: "leading-none text-gray-medium",
|
|
14
|
-
animation: value || onFocus ? "top-2.625 text-xs" : "top-4.375 text-base",
|
|
15
|
-
};
|
|
16
|
-
const inputBox = {
|
|
17
|
-
sizes: "w-102.5 h-13.5 pl-5 pt-3",
|
|
18
|
-
fonts: "text-sm",
|
|
19
|
-
background: flag === true
|
|
20
|
-
? "bg-green-dark/10"
|
|
21
|
-
: flag === false
|
|
22
|
-
? "bg-crimson-burgundy/10 text-crimson-burgundy"
|
|
23
|
-
: "bg-gray-light",
|
|
24
|
-
styles: "bg-gray-light rounded-md outline-none",
|
|
25
|
-
animation: onFocus ? "border-2 border-green-dark box-shadow" : "border-0",
|
|
26
|
-
};
|
|
27
|
-
return (_jsxs("div", { className: cn(container), children: [_jsx("div", { className: cn(placeholderBox), children: placeholder }), _jsx("input", { className: cn(inputBox), value: value, onFocus: () => setOnFocus(true), onBlur: () => setOnFocus(false), onChange: (e) => setValue(e.target.value), type: type ?? "text" })] }));
|
|
28
|
-
}
|
|
29
|
-
function WithTitle({ title, placeholder, state, flag, type, }) {
|
|
30
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("div", { className: "leading-none", children: title }), _jsx(Input, { placeholder: placeholder, state: state, flag: flag, type: type })] }));
|
|
31
|
-
}
|
|
32
|
-
Input.WithTitle = WithTitle;
|
|
33
|
-
export default Input;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|