@edu-tosel/design 1.0.65 → 1.0.67

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 (81) hide show
  1. package/asset/SVG.d.ts +2 -0
  2. package/asset/svg/Direction.d.ts +4 -0
  3. package/asset/svg/Direction.js +11 -0
  4. package/asset/svg/Direction.tsx +40 -0
  5. package/card/design/Card.design.js +13 -12
  6. package/card/design/CustomCard.design.d.ts +2 -0
  7. package/card/design/CustomCard.design.js +23 -0
  8. package/card/design/TableCard.design.js +7 -4
  9. package/card/index.d.ts +1 -0
  10. package/card/index.js +1 -0
  11. package/card/template/ConfirmCard/index.d.ts +3 -0
  12. package/card/template/ConfirmCard/index.js +3 -3
  13. package/card/template/CustomCard.d.ts +3 -0
  14. package/card/template/CustomCard.js +6 -0
  15. package/card/template/InfoCard/Academy.d.ts +1 -1
  16. package/card/template/InfoCard/Academy.js +4 -4
  17. package/card/template/NavCard.js +5 -1
  18. package/card/template/ProgressCard/Large.d.ts +1 -1
  19. package/card/template/ProgressCard/Large.js +4 -4
  20. package/card/template/ProgressCard/Small.d.ts +1 -1
  21. package/card/template/ProgressCard/Small.js +3 -3
  22. package/interaction/index.d.ts +1 -0
  23. package/interaction/index.js +1 -0
  24. package/interaction/template/Lock.d.ts +3 -0
  25. package/interaction/template/Lock.js +4 -0
  26. package/interface/Action.d.ts +6 -1
  27. package/interface/Board.d.ts +2 -1
  28. package/interface/Card.d.ts +9 -2
  29. package/interface/Data.d.ts +41 -0
  30. package/interface/Data.js +4 -0
  31. package/interface/Property.d.ts +8 -24
  32. package/interface/index.d.ts +2 -1
  33. package/interface/index.js +2 -1
  34. package/interface/widget/Obstacle.d.ts +10 -0
  35. package/interface/widget/Obstacle.js +1 -0
  36. package/interface/widget/Select.d.ts +23 -0
  37. package/interface/widget/Select.js +1 -0
  38. package/interface/widget/index.d.ts +1 -0
  39. package/layout/design/DataField.design.js +7 -5
  40. package/layout/design/Row.design/SelectRoll.d.ts +7 -0
  41. package/layout/design/Row.design/SelectRoll.js +39 -0
  42. package/layout/design/{Row.design.d.ts → Row.design/index.d.ts} +1 -1
  43. package/layout/design/{Row.design.js → Row.design/index.js} +13 -6
  44. package/layout/template/DataField.js +1 -1
  45. package/layout/template/Gallery.d.ts +3 -1
  46. package/layout/template/Gallery.js +4 -2
  47. package/layout/template/Row.js +1 -1
  48. package/layout/template/Tab.d.ts +1 -0
  49. package/layout/template/Tab.js +5 -3
  50. package/modal/template/Confirm/Switch.d.ts +2 -6
  51. package/modal/template/Confirm/Switch.js +2 -6
  52. package/package.json +1 -1
  53. package/tailwind.config.ts +2 -0
  54. package/version.txt +1 -1
  55. package/widget/design/Label.design.js +2 -1
  56. package/widget/design/Obstacle.design.d.ts +2 -0
  57. package/widget/design/Obstacle.design.js +13 -0
  58. package/widget/index.d.ts +2 -0
  59. package/widget/index.js +2 -0
  60. package/widget/template/Counter.d.ts +19 -0
  61. package/widget/template/Counter.js +48 -0
  62. package/widget/template/Input/Form.d.ts +1 -1
  63. package/widget/template/Input/Form.js +3 -2
  64. package/widget/template/Obstacle/index.d.ts +6 -0
  65. package/widget/template/Obstacle/index.js +13 -0
  66. package/widget/template/Pagination.d.ts +7 -0
  67. package/widget/template/Pagination.js +20 -0
  68. package/widget/template/Select/Handle.d.ts +2 -0
  69. package/widget/template/Select/Handle.js +30 -0
  70. package/widget/template/Select/Swipe.d.ts +10 -0
  71. package/widget/template/Select/Swipe.js +11 -0
  72. package/widget/template/Select/Switch.d.ts +3 -0
  73. package/widget/template/Select/Switch.js +43 -0
  74. package/widget/template/Select/Tag.d.ts +16 -0
  75. package/widget/template/Select/Tag.js +29 -0
  76. package/widget/template/Select/index.d.ts +8 -0
  77. package/widget/template/Select/index.js +5 -1
  78. package/widget/template/Switch/Switch.d.ts +17 -3
  79. package/widget/template/Switch/Switch.js +9 -10
  80. package/widget/template/Obstacle.d.ts +0 -4
  81. package/widget/template/Obstacle.js +0 -10
package/asset/SVG.d.ts CHANGED
@@ -14,6 +14,8 @@ declare const SVG: {
14
14
  Close: typeof Close;
15
15
  Direction: {
16
16
  Right: ({ className }: Direction) => import("react/jsx-runtime").JSX.Element;
17
+ Asc: () => import("react/jsx-runtime").JSX.Element;
18
+ Desc: () => import("react/jsx-runtime").JSX.Element;
17
19
  };
18
20
  Email: typeof Email;
19
21
  Icon: {
@@ -2,7 +2,11 @@ interface Direction {
2
2
  className?: string;
3
3
  }
4
4
  declare function Right({ className }: Direction): import("react/jsx-runtime").JSX.Element;
5
+ declare function Asc(): import("react/jsx-runtime").JSX.Element;
6
+ declare function Desc(): import("react/jsx-runtime").JSX.Element;
5
7
  declare const Direction: {
6
8
  Right: typeof Right;
9
+ Asc: typeof Asc;
10
+ Desc: typeof Desc;
7
11
  };
8
12
  export default Direction;
@@ -1,8 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  function Right({ className }) {
3
4
  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
  }
6
+ function Asc() {
7
+ const id = useId();
8
+ return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M7.15859 15.0437C6.7079 15.9134 7.27152 17 8.17239 17H15.8279C16.7282 17 17.2919 15.9134 16.8417 15.0437L13.0145 7.65229C12.5638 6.78257 11.4365 6.78257 10.9858 7.65229L7.15859 15.0437Z", fill: "#105652" }) }, id));
9
+ }
10
+ function Desc() {
11
+ const id = useId();
12
+ return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M16.8414 8.95628C17.2921 8.08657 16.7285 7 15.8276 7L8.1721 7C7.27176 7 6.70813 8.08657 7.15831 8.95628L10.9855 16.3477C11.4362 17.2174 12.5635 17.2174 13.0142 16.3477L16.8414 8.95628Z", fill: "#105652" }) }, id));
13
+ }
5
14
  const Direction = {
6
15
  Right,
16
+ Asc,
17
+ Desc,
7
18
  };
8
19
  export default Direction;
@@ -1,3 +1,4 @@
1
+ import { useId } from "react";
1
2
  interface Direction {
2
3
  className?: string;
3
4
  }
@@ -30,7 +31,46 @@ function Right({ className }: Direction) {
30
31
  );
31
32
  }
32
33
 
34
+ function Asc() {
35
+ const id = useId();
36
+ return (
37
+ <svg
38
+ key={id}
39
+ width="24"
40
+ height="24"
41
+ viewBox="0 0 24 24"
42
+ fill="none"
43
+ xmlns="http://www.w3.org/2000/svg"
44
+ >
45
+ <path
46
+ d="M7.15859 15.0437C6.7079 15.9134 7.27152 17 8.17239 17H15.8279C16.7282 17 17.2919 15.9134 16.8417 15.0437L13.0145 7.65229C12.5638 6.78257 11.4365 6.78257 10.9858 7.65229L7.15859 15.0437Z"
47
+ fill="#105652"
48
+ />
49
+ </svg>
50
+ );
51
+ }
52
+ function Desc() {
53
+ const id = useId();
54
+ return (
55
+ <svg
56
+ key={id}
57
+ width="24"
58
+ height="24"
59
+ viewBox="0 0 24 24"
60
+ fill="none"
61
+ xmlns="http://www.w3.org/2000/svg"
62
+ >
63
+ <path
64
+ d="M16.8414 8.95628C17.2921 8.08657 16.7285 7 15.8276 7L8.1721 7C7.27176 7 6.70813 8.08657 7.15831 8.95628L10.9855 16.3477C11.4362 17.2174 12.5635 17.2174 13.0142 16.3477L16.8414 8.95628Z"
65
+ fill="#105652"
66
+ />
67
+ </svg>
68
+ );
69
+ }
70
+
33
71
  const Direction = {
34
72
  Right,
73
+ Asc,
74
+ Desc,
35
75
  };
36
76
  export default Direction;
@@ -15,18 +15,19 @@ const widthSize = {
15
15
  auto: "w-auto",
16
16
  };
17
17
  const heightSize = {
18
- "4xs": "h-21",
19
- "3xs": "h-30",
20
- "2xs": "h-40",
21
- xs: "h-45",
22
- sm: "h-52.5",
23
- md: "h-67.5",
24
- lg: "h-112.5",
25
- xl: "h-125.5",
26
- "2xl": "h-127.5",
27
- "3xl": "h-138.5",
28
- full: "h-full",
29
- auto: "h-auto min-h-80",
18
+ "5xs": "h-21", // 84px
19
+ "4xs": "h-30", // 120px
20
+ "3xs": "h-40", // 160px
21
+ "2xs": "h-45", // 180px
22
+ xs: "h-50", // 200px
23
+ sm: "h-52.5", // 210px
24
+ md: "h-67.5", // 270px
25
+ lg: "h-112.5", // 450px
26
+ xl: "h-125.5", // 502px
27
+ "2xl": "h-127.5", // 510px
28
+ "3xl": "h-138.5", // 554px
29
+ full: "h-full", // 100%
30
+ auto: "h-auto min-h-80", // 100%
30
31
  };
31
32
  export default function CardDesign({ header, children, option, debug, }) {
32
33
  const { setIsOwn } = useActionStore();
@@ -0,0 +1,2 @@
1
+ import { CustomCardProps } from "../../interface";
2
+ export default function CustomCardDesign({ titles, option, children, }: CustomCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../util";
3
+ import CardDesign from "./Card.design";
4
+ export default function CustomCardDesign({ titles, option, children, }) {
5
+ const titleBox = {
6
+ positions: "relative z-10",
7
+ displays: "flex flex-col gap-3",
8
+ };
9
+ const titleStyle = {
10
+ fonts: "font-pretendard-bold leading-tight text-[16px]",
11
+ styles: titles.titleColor,
12
+ };
13
+ const subtitleStyle = {
14
+ fonts: "font-pretendard-medium leading-tight text-[12px]",
15
+ styles: titles.subtitleColor,
16
+ };
17
+ return (_jsxs(CardDesign, { option: {
18
+ ...option,
19
+ width: option?.width ?? "lg",
20
+ height: option?.height ?? "4xs",
21
+ className: option?.className ?? "p-5",
22
+ }, children: [_jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: cn(titleStyle), children: titles.title }), _jsx("div", { className: cn(subtitleStyle), children: titles.subtitle })] }), children ?? null] }));
23
+ }
@@ -1,11 +1,12 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
3
  import { useActionStore } from "../../store";
4
4
  import { cn, sortByOrder } from "../../util";
5
5
  import Card from "./Card.design";
6
- import { DataField, Action, Row } from "../..";
6
+ import { DataField, Action, Row, Lock } from "../..";
7
+ import { Obstacle } from "../..";
7
8
  export default function TableCardDesign({ dataSet, dataField, option, }) {
8
- const { width, height, padding, boundary } = option ?? {};
9
+ const { width, height, padding, boundary, isDisabled, disabledScript } = option ?? {};
9
10
  const { order } = useActionStore();
10
11
  const id = useId();
11
12
  const orders = order[id] ?? [];
@@ -20,5 +21,7 @@ export default function TableCardDesign({ dataSet, dataField, option, }) {
20
21
  height: height ?? "3xl",
21
22
  overflow: "overflow-y-scroll overflow-x-hidden",
22
23
  noPadding: true,
23
- }, children: _jsx(Action.Replace, { actions: dataSet?.replaces, children: sortByOrder({ items: dataSet?.items, orders }).map((item, index) => dataSet.renderItem ? (dataSet.renderItem(item)) : (_jsx(Row.Card, { item: item, onClick: () => dataSet.onClick?.(item), dataField: dataField, height: option?.rowHeight, noHover: option?.noHover, noPadding: option?.noRowPadding }, id + index))) }) }));
24
+ }, children: _jsxs(Action.Replace, { actions: dataSet?.replaces, children: [sortByOrder({ items: dataSet?.items, orders }).map((item, index) => dataSet.renderItem ? (dataSet.renderItem(item)) : (_jsx(Row.Card, { item: item, onClick: () => dataSet.onClick?.(item), dataField: dataField, height: option?.rowHeight, noHover: option?.noHover, noPadding: option?.noRowPadding }, id + index))), _jsx(Obstacle, { disabled: isDisabled }), _jsx(Obstacle.Blur, { disabled: isDisabled, option: {
25
+ position: "top-10",
26
+ }, children: _jsx(Lock, { script: disabledScript }) })] }) }));
24
27
  }
package/card/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as AddCard } from "./template/AddCard";
2
2
  export { default as ChartCard } from "./template/ChartCard";
3
3
  export { default as ConfirmCard } from "./template/ConfirmCard";
4
+ export { default as CustomCard } from "./template/CustomCard";
4
5
  export { default as InfoCard } from "./template/InfoCard";
5
6
  export { default as NavCard } from "./template/NavCard";
6
7
  export { default as ProgressCard } from "./template/ProgressCard";
package/card/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as AddCard } from "./template/AddCard";
2
2
  export { default as ChartCard } from "./template/ChartCard";
3
3
  export { default as ConfirmCard } from "./template/ConfirmCard";
4
+ export { default as CustomCard } from "./template/CustomCard";
4
5
  export { default as InfoCard } from "./template/InfoCard";
5
6
  export { default as NavCard } from "./template/NavCard";
6
7
  export { default as ProgressCard } from "./template/ProgressCard";
@@ -4,6 +4,9 @@ interface ConfirmCardProps {
4
4
  action?: Omit<ActionProps, "shows">;
5
5
  children?: React.ReactNode;
6
6
  buttons: [LabelWidget, LabelWidget];
7
+ option?: {
8
+ className?: string;
9
+ };
7
10
  }
8
11
  export default function ConfirmCard(props: ConfirmCardProps): import("react/jsx-runtime").JSX.Element;
9
12
  export {};
@@ -3,17 +3,17 @@ import { cn } from "../../../util";
3
3
  import { LineBreaks, Action, Label } from "../../..";
4
4
  import CardDesign from "../../design/Card.design";
5
5
  export default function ConfirmCard(props) {
6
- const { action } = props ?? {};
6
+ const { action, option } = props ?? {};
7
7
  return (_jsxs(CardDesign, { option: {
8
8
  width: "md",
9
9
  height: "lg",
10
10
  className: "p-5",
11
- }, children: [_jsx(Header, { titles: props.titles }), _jsx(Action.Replace, { actions: action?.replaces, children: props.children }), _jsx("div", { className: "absolute bottom-5 left-5 flex justify-between gap-2.5", children: props.buttons.map(({ title, onClick, option }) => (_jsx(Label.Button, { title: title, onClick: onClick, option: { ...option, width: "lg", height: "sm" } }, title))) })] }));
11
+ }, children: [_jsx(Header, { titles: props.titles }), _jsx("div", { className: option?.className, children: _jsx(Action.Replace, { actions: action?.replaces, children: props.children }) }), _jsx("div", { className: "absolute bottom-5 left-5 flex justify-between gap-2.5", children: props.buttons.map(({ title, onClick, option }) => (_jsx(Label.Button, { title: title, onClick: onClick, option: { ...option, width: "lg", height: "sm" } }, title))) })] }));
12
12
  }
13
13
  function Header({ titles }) {
14
14
  const titleBox = {
15
15
  displays: "flex flex-col items-end",
16
16
  sizes: "w-full",
17
17
  };
18
- return (_jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: "text-xl leading-none font-pretendard-bold", children: titles.title }), _jsx("div", { className: "bg-gray-light w-13.75 h-2 mt-3" }), _jsx(LineBreaks, { texts: titles.subtitle, className: "mt-5 text-base leading-none text-end font-pretendard-bold" })] }));
18
+ return (_jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: "text-xl leading-none font-pretendard-bold", children: titles.title }), _jsx("div", { className: "bg-gray-light w-13.75 h-2 mt-3" }), _jsx(LineBreaks, { texts: titles.subtitle, className: "mt-5 text-base leading-none text-end font-pretendard-medium" })] }));
19
19
  }
@@ -0,0 +1,3 @@
1
+ import { CustomCardProps } from "./../../interface";
2
+ declare function CustomCard(props: CustomCardProps): import("react/jsx-runtime").JSX.Element;
3
+ export default CustomCard;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import CustomCardDesign from "../design/CustomCard.design";
3
+ function CustomCard(props) {
4
+ return _jsx(CustomCardDesign, { ...props });
5
+ }
6
+ export default CustomCard;
@@ -13,7 +13,7 @@ interface StudentCardProps extends Omit<InfoCardProps, "titles" | "children"> {
13
13
  createdAt: string;
14
14
  };
15
15
  }
16
- declare function Academy({ titles, data, buttons }: AcademyCardProps): import("react/jsx-runtime").JSX.Element;
16
+ declare function Academy({ titles, data, buttons, option }: AcademyCardProps): import("react/jsx-runtime").JSX.Element;
17
17
  declare namespace Academy {
18
18
  var Digital: ({ image, data }: StudentCardProps) => import("react/jsx-runtime").JSX.Element;
19
19
  }
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { InfoCardDesign } from "../../design/InfoCard.design";
3
3
  import SVG from "../../../asset/SVG";
4
4
  import { Label } from "../../../widget";
5
- function Academy({ titles, data, buttons }) {
5
+ function Academy({ titles, data, buttons, option }) {
6
6
  return (_jsx(InfoCardDesign, { titles: titles, option: {
7
+ ...option,
7
8
  titleBorder: "border-green-dark",
8
9
  background: "",
9
- boundary: "",
10
- width: "xs",
11
- height: "md",
10
+ width: option?.width ?? "xs",
11
+ height: option?.height ?? "md",
12
12
  }, children: _jsxs("div", { className: "mt-2.5 flex flex-col gap-2.5", children: [_jsx("div", { className: "w-full", children: data.address }), _jsx("div", { className: "flex gap-2.5", children: buttons.map(({ title, onClick }, index) => (_jsx(Label.Button, { title: title, onClick: onClick, option: {
13
13
  background: !index ? "bg-gray-medium" : "bg-green-dark",
14
14
  text: "text-white",
@@ -1,7 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import NavCardDesign from "../design/NavCard.design";
3
3
  function Banner({ titles, option }) {
4
- return (_jsx(NavCardDesign, { titles: titles, option: { ...option, width: option?.width ?? "xl", height: "sm" } }));
4
+ return (_jsx(NavCardDesign, { titles: titles, option: {
5
+ ...option,
6
+ width: option?.width ?? "xl",
7
+ height: option?.height ?? "sm",
8
+ } }));
5
9
  }
6
10
  function _Button({ titles, onClick, option }) {
7
11
  return (_jsx(NavCardDesign, { titles: titles, option: {
@@ -1,2 +1,2 @@
1
1
  import { ProgressCardProps } from "../../../interface";
2
- export default function ProgressCardLG({ titles, steps, theme, }: ProgressCardProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function ProgressCardLG({ titles, checks, displays, theme, }: ProgressCardProps): import("react/jsx-runtime").JSX.Element;
@@ -14,7 +14,7 @@ const text = {
14
14
  green: "text-green-dark",
15
15
  blue: "text-blue-navy",
16
16
  };
17
- export default function ProgressCardLG({ titles, steps, theme, }) {
17
+ export default function ProgressCardLG({ titles, checks, displays, theme, }) {
18
18
  const progressBox = {
19
19
  positions: "absolute top-7.5 left-7.5",
20
20
  displays: "flex",
@@ -32,11 +32,11 @@ export default function ProgressCardLG({ titles, steps, theme, }) {
32
32
  displays: "flex flex-col items-end gap-y-3",
33
33
  };
34
34
  const occupied = [
35
- steps.filter(([_, value]) => !!value).length,
36
- steps.length,
35
+ checks.map((value) => !!value).length,
36
+ displays.length,
37
37
  ].join("/");
38
38
  return (_jsxs(CardDesign, { option: {
39
39
  width: "2xl",
40
40
  height: "2xs",
41
- }, children: [_jsx("div", { className: cn(progressBox), children: steps.map(([{ title }, value]) => (_jsxs("div", { className: cn(stepBox(value)), children: [_jsx("div", { children: title }), _jsx(SVG.Operation.Checked, { flag: value, size: 25, theme: theme })] }, title))) }), _jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: `text-xl leading-none font-pretendard-bold ${text[theme ?? "green"]}`, children: titles.title }), _jsx("div", { className: "text-base leading-none", children: titles.subtitle })] }), _jsx("div", { className: "absolute bottom-0 left-0 bg-gray-light w-full h-2.5", children: _jsx("div", { className: `h-full w-${occupied} ${bg[theme ?? "green"]}` }) })] }));
41
+ }, children: [_jsx("div", { className: cn(progressBox), children: displays.map(({ title }, index) => (_jsxs("div", { className: cn(stepBox(checks[index])), children: [_jsx("div", { children: title }), _jsx(SVG.Operation.Checked, { flag: checks[index], size: 25, theme: theme })] }, title))) }), _jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: `text-xl leading-none font-pretendard-bold ${text[theme ?? "green"]}`, children: titles.title }), _jsx("div", { className: "text-base leading-none", children: titles.subtitle })] }), _jsx("div", { className: "absolute bottom-0 left-0 bg-gray-light w-full h-2.5", children: _jsx("div", { className: `h-full w-${occupied} ${bg[theme ?? "green"]}` }) })] }));
42
42
  }
@@ -1,2 +1,2 @@
1
1
  import { ProgressCardProps } from "../../../interface";
2
- export default function ProgressCardSmall({ titles, steps, theme, }: ProgressCardProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function ProgressCardSmall({ titles, displays, checks, theme, }: ProgressCardProps): import("react/jsx-runtime").JSX.Element;
@@ -10,7 +10,7 @@ const text = {
10
10
  green: "text-green-dark",
11
11
  blue: "text-blue-navy",
12
12
  };
13
- export default function ProgressCardSmall({ titles, steps, theme = "green", }) {
13
+ export default function ProgressCardSmall({ titles, displays, checks, theme = "green", }) {
14
14
  const progressBox = {
15
15
  positions: "absolute top-2.5 left-2.5",
16
16
  displays: "flex",
@@ -29,6 +29,6 @@ export default function ProgressCardSmall({ titles, steps, theme = "green", }) {
29
29
  };
30
30
  return (_jsxs(CardDesign, { option: {
31
31
  width: "md",
32
- height: "4xs",
33
- }, children: [_jsx("div", { className: cn(progressBox), children: steps.map(([{ title, subtitle }, value]) => (_jsxs("div", { className: cn(stepBox(value)), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "leading-none text-[12px] font-pretendard-bold", children: title }), _jsx(SVG.Operation.Checked, { flag: value, size: 25, theme: theme })] }), _jsx("div", { className: `text-[12px] ${text[theme]}`, children: subtitle })] }, title))) }), _jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: `text-[20px] leading-none font-pretendard-bold ${text[theme]}`, children: titles.title }), _jsx("div", { className: `text-[12px] leading-none ${text[theme]}`, children: titles.subtitle })] })] }));
32
+ height: "5xs",
33
+ }, children: [_jsx("div", { className: cn(progressBox), children: displays.map(({ title, subtitle }, index) => (_jsxs("div", { className: cn(stepBox(checks[index])), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "leading-none text-[12px] font-pretendard-bold", children: title }), _jsx(SVG.Operation.Checked, { flag: checks[index], size: 25, theme: theme })] }), _jsx("div", { className: `text-[12px] ${text[theme]}`, children: subtitle })] }, title))) }), _jsxs("div", { className: cn(titleBox), children: [_jsx("div", { className: `text-[20px] leading-none font-pretendard-bold ${text[theme]}`, children: titles.title }), _jsx("div", { className: `text-[12px] leading-none ${text[theme]}`, children: titles.subtitle })] })] }));
34
34
  }
@@ -1,2 +1,3 @@
1
1
  export { default as Loading } from "./template/Loading";
2
2
  export { default as NoData } from "./template/NoData";
3
+ export { default as Lock } from "./template/Lock";
@@ -1,2 +1,3 @@
1
1
  export { default as Loading } from "./template/Loading";
2
2
  export { default as NoData } from "./template/NoData";
3
+ export { default as Lock } from "./template/Lock";
@@ -0,0 +1,3 @@
1
+ export default function Lock({ script }: {
2
+ script?: string;
3
+ }): 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 Lock({ script }) {
3
+ return (_jsxs("div", { className: "flex flex-col gap-y-3 items-center", children: [_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { d: "M16.5 10.5V6.75C16.5 5.55653 16.0259 4.41193 15.182 3.56802C14.3381 2.72411 13.1935 2.25 12 2.25C10.8065 2.25 9.66193 2.72411 8.81802 3.56802C7.97411 4.41193 7.5 5.55653 7.5 6.75V10.5M6.75 21.75H17.25C17.8467 21.75 18.419 21.5129 18.841 21.091C19.2629 20.669 19.5 20.0967 19.5 19.5V12.75C19.5 12.1533 19.2629 11.581 18.841 11.159C18.419 10.7371 17.8467 10.5 17.25 10.5H6.75C6.15326 10.5 5.58097 10.7371 5.15901 11.159C4.73705 11.581 4.5 12.1533 4.5 12.75V19.5C4.5 20.0967 4.73705 20.669 5.15901 21.091C5.58097 21.5129 6.15326 21.75 6.75 21.75Z", stroke: "#173A8B", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }), _jsx("div", { className: "text-xs text-blue-navy", children: script })] }));
4
+ }
@@ -1,5 +1,6 @@
1
1
  import { LabelWidget } from "./widget";
2
- import { DataField, OnClick, Size } from "./Property";
2
+ import { OnClick, Size } from "./Property";
3
+ import { DataField, DataFieldType } from "./Data";
3
4
  import { Color } from "./Color";
4
5
  export interface ActionEvent {
5
6
  event: string;
@@ -44,4 +45,8 @@ export interface RowProps<T> {
44
45
  className?: string;
45
46
  };
46
47
  }
48
+ export interface RowElementProps {
49
+ item: string;
50
+ data?: DataFieldType;
51
+ }
47
52
  export {};
@@ -1,4 +1,5 @@
1
- import { DataField, DataSet, Size, Titles } from "./Property";
1
+ import { Size, Titles } from "./Property";
2
+ import { DataSet, DataField } from "./Data";
2
3
  import { ActionProps } from "./Action";
3
4
  import { InputWidget, LabelWidget, SelectWidget } from "./widget";
4
5
  interface BoardOption {
@@ -1,4 +1,5 @@
1
- import { Button, DataField, DataSet, Disabled, OnClick, Size, State, Step, Titles } from "./Property";
1
+ import { Button, Disabled, OnClick, Size, State, Titles } from "./Property";
2
+ import { DataSet, DataField } from "./Data";
2
3
  import { Theme } from "./Theme";
3
4
  import { Flexify } from "./UtilityType";
4
5
  interface CardOption {
@@ -44,6 +45,9 @@ export interface ChartCardProps extends Omit<CardProps, "children"> {
44
45
  score: number;
45
46
  };
46
47
  }
48
+ export interface CustomCardProps extends Flexify<CardProps, "children"> {
49
+ titles: Titles;
50
+ }
47
51
  export interface ButtonInLay {
48
52
  title: string;
49
53
  onClick: OnClick;
@@ -122,6 +126,8 @@ export interface TableCardProps<T> extends Omit<CardProps, "children"> {
122
126
  noHover?: boolean;
123
127
  noRowPadding?: boolean;
124
128
  noHeader?: boolean;
129
+ isDisabled?: boolean;
130
+ disabledScript?: string;
125
131
  };
126
132
  }
127
133
  export interface RollCardProps extends CardProps {
@@ -134,7 +140,8 @@ export interface RollCardProps extends CardProps {
134
140
  }
135
141
  export interface ProgressCardProps {
136
142
  titles: Titles;
137
- steps: Step[];
143
+ checks: boolean[];
144
+ displays: Titles[];
138
145
  theme?: Theme;
139
146
  }
140
147
  export {};
@@ -0,0 +1,41 @@
1
+ import { Replace } from "./Action";
2
+ import { OnClick, Titles } from "./Property";
3
+ export interface DataPackage<T> {
4
+ dataField: DataField<T>;
5
+ dataSet: Omit<DataSet<T>, "renderItem">;
6
+ }
7
+ export type DataSet<T = any> = {
8
+ items?: T[];
9
+ renderItem: (item: T, index?: number) => React.ReactNode;
10
+ titles?: Titles;
11
+ interaction?: React.ReactNode;
12
+ onClick?: OnClick<T>;
13
+ replaces?: Replace[];
14
+ };
15
+ type DataFieldProps = {
16
+ title: string | number;
17
+ size: string | number;
18
+ data?: DataFieldType;
19
+ };
20
+ export type DataField<T = any> = Partial<{
21
+ [p in keyof T]: Partial<DataFieldProps>;
22
+ }>;
23
+ export type DataFieldType = DataFiledTypeText | DataSelectRoll;
24
+ type DataFiledTypeText = {
25
+ type: "text";
26
+ };
27
+ interface SelectRollOption {
28
+ key: string;
29
+ value: string;
30
+ option?: {
31
+ text?: string;
32
+ background?: string;
33
+ };
34
+ }
35
+ type DataSelectRoll = {
36
+ type: "selectRoll";
37
+ options: SelectRollOption[];
38
+ };
39
+ declare function isDataSelectRoll(obj: any): obj is DataSelectRoll;
40
+ export type { DataFiledTypeText, DataSelectRoll };
41
+ export { isDataSelectRoll };
@@ -0,0 +1,4 @@
1
+ function isDataSelectRoll(obj) {
2
+ return typeof obj === "object" && obj.type === "selectRoll";
3
+ }
4
+ export { isDataSelectRoll };
@@ -1,5 +1,4 @@
1
1
  import { Dispatch, SetStateAction } from "react";
2
- import { Replace } from "./Action";
3
2
  import { LabelWidget } from "./widget";
4
3
  /**
5
4
  * State type for the React component
@@ -18,16 +17,21 @@ export type State<T> = [T, StateAction<T>];
18
17
  * @enum {string}
19
18
  * @readonly
20
19
  * @description - Size type for the component
20
+ * @property {"5xs"} 5xs - Five extra small size
21
+ * @property {"4xs"} 4xs - Four extra small size
22
+ * @property {"3xs"} 3xs - Three extra small size
23
+ * @property {"2xs"} 2xs - Double extra small size
21
24
  * @property {"xs"} xs - Extra small size
22
25
  * @property {"sm"} sm - Small size
23
26
  * @property {"md"} md - Medium size
24
27
  * @property {"lg"} lg - Large size
25
28
  * @property {"xl"} xl - Extra large size
26
29
  * @property {"2xl"} 2xl - Double extra large size
30
+ * @property {"3xl"} 3xl - Three extra large size
31
+ * @property {"full"} full - Full size
27
32
  * @property {"full"} full - Full size
28
33
  */
29
- export type ImageSize = "sub" | "full";
30
- export type Size = "4xs" | "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "full" | "auto";
34
+ export type Size = "5xs" | "4xs" | "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "full" | "auto";
31
35
  /**
32
36
  * Image size type
33
37
  * @enum {string}
@@ -36,6 +40,7 @@ export type Size = "4xs" | "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2
36
40
  * @property {"sub"} sub - Sub size
37
41
  * @property {"full"} full - Full size
38
42
  */
43
+ export type ImageSize = "sub" | "full";
39
44
  export type OnClick<Request = unknown, Response = unknown> = (prop?: Request) => Response | ((prop?: Request) => Promise<Response>);
40
45
  export interface Button extends LabelWidget {
41
46
  }
@@ -53,26 +58,6 @@ export type Titles = {
53
58
  titleColor?: string;
54
59
  subtitleColor?: string;
55
60
  };
56
- export type DataSet<T = any> = {
57
- items?: T[];
58
- renderItem: (item: T, index?: number) => React.ReactNode;
59
- titles?: Titles;
60
- interaction?: React.ReactNode;
61
- onClick?: OnClick<T>;
62
- replaces?: Replace[];
63
- };
64
- type DataFieldType = {
65
- title: string | number;
66
- type: string;
67
- size: string | number;
68
- };
69
- export type DataField<T = any> = Partial<{
70
- [p in keyof T]: Partial<DataFieldType>;
71
- }>;
72
- export interface DataPackage<T> {
73
- dataField: DataField<T>;
74
- dataSet: Omit<DataSet<T>, "renderItem">;
75
- }
76
61
  export interface Log<K extends string, T extends string | number> {
77
62
  prints: K[];
78
63
  logs: {
@@ -84,4 +69,3 @@ export interface Order {
84
69
  orderHow: "asc" | "desc" | "";
85
70
  }
86
71
  export type Step = [Titles, boolean];
87
- export {};
@@ -1,7 +1,8 @@
1
+ export * from "./widget";
1
2
  export * from "./Action";
2
3
  export * from "./Card";
3
4
  export * from "./Color";
4
- export * from "./widget";
5
+ export * from "./Data";
5
6
  export * from "./Layout";
6
7
  export * from "./Overlay";
7
8
  export * from "./Property";
@@ -1,7 +1,8 @@
1
+ export * from "./widget";
1
2
  export * from "./Action";
2
3
  export * from "./Card";
3
4
  export * from "./Color";
4
- export * from "./widget";
5
+ export * from "./Data";
5
6
  export * from "./Layout";
6
7
  export * from "./Overlay";
7
8
  export * from "./Property";
@@ -0,0 +1,10 @@
1
+ import { Disabled } from "../Property";
2
+ export interface ObstacleProps {
3
+ disabled?: Disabled;
4
+ children?: React.ReactNode;
5
+ option?: {
6
+ position?: string;
7
+ size?: string;
8
+ background?: string;
9
+ };
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import { Size, State } from "../Property";
2
+ interface SelectOption<T> {
3
+ title: string;
4
+ value: T;
5
+ icon?: string;
6
+ }
7
+ export interface SelectSwitchProps<T> {
8
+ state: State<T>;
9
+ selectOptions: SelectOption<T>[];
10
+ option?: {
11
+ size?: Size;
12
+ text?: string;
13
+ className?: string;
14
+ };
15
+ }
16
+ export interface SelectHandleProps<T> {
17
+ state: State<T>;
18
+ options: SelectOption<T>[];
19
+ option?: {
20
+ className?: string;
21
+ };
22
+ }
23
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -41,6 +41,7 @@ export interface InputWidget extends Widget {
41
41
  type?: InputType;
42
42
  label?: LabelWidget;
43
43
  maxLength?: number;
44
+ disabled?: Disabled;
44
45
  }
45
46
  export interface CheckBoxWidget extends Widget {
46
47
  state: State<boolean>;