@edu-tosel/design 1.0.323 → 1.0.325

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.
@@ -2,5 +2,6 @@ import { Button } from "../../../interface";
2
2
  export default function ShortcutBanner({ shortcuts, }: {
3
3
  shortcuts: (Button & {
4
4
  icon: string;
5
+ background?: string;
5
6
  })[];
6
7
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,15 +1,39 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { toSelectOption } from "../../../interface";
2
3
  import { cn } from "../../../util";
4
+ import { useResponsive } from "../../../hook";
5
+ import { useState } from "react";
3
6
  export default function ShortcutBanner({ shortcuts, }) {
7
+ const isXS = useResponsive("xs");
8
+ const [isExpanded, setIsExpanded] = useState(false);
4
9
  const container = {
5
- displays: "flex justify-center items-center",
6
- spacings: "px-5 pt-16 pb-24",
10
+ displays: "flex flex-col justify-start justify-start xs:justify-center xs:items-center",
11
+ spacings: "pt-10 pb-15",
7
12
  };
8
- const buttonWrapper = {
9
- displays: "flex justify-center items-center flex-wrap",
10
- sizes: "max-w-70 h-fit sm:max-w-full sm:w-full",
11
- spacings: "gap-x-6 gap-y-4 xxxs:gap-x-10 sm:gap-x-6 md:gap-x-10",
13
+ return (_jsxs("div", { className: cn(container), children: [_jsx("div", { className: "w-full flex justify-center items-center mb-5", children: _jsx(ModeToggle, { state: [isExpanded, setIsExpanded], selectOptions: [
14
+ [true, "스크롤"],
15
+ [false, "그리드"],
16
+ ] }) }), !isExpanded ? (_jsx(ScrollMode, { shortcuts: shortcuts })) : (_jsx(GridMode, { shortcuts: shortcuts }))] }));
17
+ }
18
+ function ScrollMode({ shortcuts, }) {
19
+ const scrollWrapper = {
20
+ displays: "flex justify-start items-center overflow-x-scroll scrollbar-hidden",
21
+ sizes: "w-full h-fit",
22
+ spacings: "px-5 pb-10",
12
23
  graphics: "antialiased",
24
+ boundaries: "border-b-1 border-gray-200",
25
+ };
26
+ const buttonWrapper = {
27
+ displays: "flex justify-center items-center",
28
+ sizes: "min-w-fit h-fit",
29
+ spacings: "gap-x-4 xs:gap-x-10 mx-auto py-2 px-0 xs:px-5 md:pl-18",
30
+ };
31
+ const headerButton = {
32
+ displays: "flex flex-col justify-center items-center",
33
+ sizes: "h-fit w-fit shrink-0",
34
+ spacings: "gap-2 px-4 py-2 rounded-lg",
35
+ backgrounds: "bg-gray-50",
36
+ textStyles: "font-bold text-gray-600",
13
37
  };
14
38
  const buttonSet = {
15
39
  displays: "group flex flex-col justify-center items-center",
@@ -23,10 +47,87 @@ export default function ShortcutBanner({ shortcuts, }) {
23
47
  animation: "duration-100",
24
48
  };
25
49
  const iconContainer = {
26
- sizes: "w-16 h-16 rounded-lg overflow-hidden",
27
- shadows: "shadow-icon-default",
50
+ sizes: "size-14 xs:size-16 rounded-lg overflow-hidden",
51
+ shadows: "shadow-none",
28
52
  animation: "duration-100",
29
- hoveraction: "group-hover:shadow-icon-hover group-hover:scale-105",
53
+ hoveraction: "group-hover:shadow-icon-hover group-hover:scale-103",
54
+ };
55
+ return (_jsx("div", { className: cn(scrollWrapper), children: _jsxs("div", { className: cn(buttonWrapper), children: [_jsxs("div", { className: cn(headerButton), children: [_jsx("div", { children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "size-6", children: _jsx("path", { "fill-rule": "evenodd", d: "M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z", "clip-rule": "evenodd" }) }) }), _jsx("div", { className: "font-bold text-sm xs:text-base", children: "\uBE60\uB978 \uBA54\uB274" })] }), shortcuts.map((shortcut) => (_jsxs("button", { onClick: shortcut.onClick, className: cn(buttonSet), children: [_jsx("div", { className: cn(iconContainer, shortcut.background ?? "bg-gray-100"), children: _jsx("img", { src: shortcut.icon, alt: shortcut.title }) }), _jsx("div", { className: cn(tagBox), children: shortcut.title })] }, shortcut.title)))] }) }));
56
+ }
57
+ function GridMode({ shortcuts, }) {
58
+ const container = {
59
+ displays: "flex flex-col justify-center items-center",
60
+ spacings: "gap-y-10 mt-5",
61
+ sizes: "w-full h-fit",
62
+ };
63
+ const gridWrapper = {
64
+ displays: "grid grid-cols-3 xxxs:grid-cols-4 justify-items-center",
65
+ sizes: "w-full max-w-140",
66
+ spacings: "gap-y-5",
67
+ };
68
+ const titleBox = {
69
+ displays: "flex flex-row gap-2",
70
+ spacings: "px-5 py-2 rounded-lg",
71
+ textStyles: "font-bold text-base text-gray-700",
72
+ backgrounds: "bg-gray-100",
73
+ };
74
+ const buttonSet = {
75
+ displays: "group flex flex-col justify-center items-center",
76
+ sizes: "w-16",
77
+ spacings: "gap-2",
78
+ };
79
+ const tagBox = {
80
+ displays: "flex justify-center items-center",
81
+ sizes: "w-full h-6.25 ",
82
+ fonts: "text-xs md:text-sm font-pretendard-var font-medium text-gray-dark group-hover:text-green-dark",
83
+ animation: "duration-100",
84
+ };
85
+ const iconContainer = {
86
+ sizes: "size-14 xs:size-16 rounded-lg overflow-hidden",
87
+ shadows: "shadow-none",
88
+ animation: "duration-100",
89
+ hoveraction: "group-hover:shadow-icon-hover group-hover:scale-103",
90
+ };
91
+ return (_jsx("div", { className: cn(container), children: _jsx("div", { className: cn(gridWrapper), children: shortcuts.map((shortcut) => (_jsxs("button", { onClick: shortcut.onClick, className: cn(buttonSet), children: [_jsx("div", { className: cn(iconContainer, shortcut.background ?? "bg-gray-100"), children: _jsx("img", { src: shortcut.icon, alt: shortcut.title }) }), _jsx("div", { className: cn(tagBox), children: shortcut.title })] }, shortcut.title))) }) }));
92
+ }
93
+ function ModeToggle({ state, selectOptions: selectOptionsInput, option, }) {
94
+ const selectOptions = selectOptionsInput?.map(toSelectOption);
95
+ const [value, setValue] = state;
96
+ const isOff = value === selectOptions[0].value;
97
+ const toggle = () => {
98
+ if (state[0] === selectOptions[0].value)
99
+ return setValue(selectOptions[1].value);
100
+ return setValue(selectOptions[0].value);
101
+ };
102
+ const container = {
103
+ displays: "relative flex flex-row",
104
+ spacings: "p-1",
105
+ sizes: "rounded-full w-fit",
106
+ backgrounds: "bg-gray-100",
107
+ textStyles: "text-sm font-medium",
108
+ };
109
+ const activeButton = {
110
+ displays: "flex flex-row gap-1 justify-center items-center z-10",
111
+ sizes: "w-24",
112
+ spacings: "rounded-full py-1",
113
+ textStyles: "text-green-dark font-bold leading-none",
114
+ scale: "scale-110",
115
+ duration: "duration-300",
116
+ };
117
+ const inactiveButton = {
118
+ displays: "flex flex-row gap-1 justify-center items-center z-10",
119
+ sizes: "w-24",
120
+ spacings: "rounded-full py-1",
121
+ textStyles: "text-gray-500 font-medium leading-none",
122
+ duration: "duration-300",
123
+ };
124
+ const clearKnob = {
125
+ displays: "absolute",
126
+ locations: !isOff ? "left-1" : "left-[calc(100%-6.25rem)]",
127
+ sizes: "h-[calc(100%-8px)] w-24 z-1",
128
+ backgrounds: "bg-white/30 shadow-main",
129
+ boundaries: "rounded-full",
130
+ animations: "duration-200",
30
131
  };
31
- return (_jsx("div", { className: cn(container), children: _jsx("div", { className: cn(buttonWrapper), children: shortcuts.map((shortcut) => (_jsxs("button", { onClick: shortcut.onClick, className: cn(buttonSet), children: [_jsx("div", { className: cn(iconContainer), children: _jsx("img", { src: shortcut.icon, alt: shortcut.title }) }), _jsx("div", { className: cn(tagBox), children: shortcut.title })] }, shortcut.title))) }) }));
132
+ return (_jsxs("div", { className: cn(container), children: [_jsx("div", { className: cn(clearKnob) }), _jsxs("button", { onClick: toggle, className: cn(selectOptions[1].value === value ? activeButton : inactiveButton), children: [selectOptions[0].title, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "size-5", children: _jsx("path", { "fill-rule": "evenodd", d: "M3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Zm14.25 6a.75.75 0 0 1-.22.53l-2.25 2.25a.75.75 0 1 1-1.06-1.06L15.44 12l-1.72-1.72a.75.75 0 1 1 1.06-1.06l2.25 2.25c.141.14.22.331.22.53Zm-10.28-.53a.75.75 0 0 0 0 1.06l2.25 2.25a.75.75 0 1 0 1.06-1.06L8.56 12l1.72-1.72a.75.75 0 1 0-1.06-1.06l-2.25 2.25Z", "clip-rule": "evenodd" }) })] }), _jsxs("button", { onClick: toggle, className: cn(selectOptions[0].value === value ? activeButton : inactiveButton), children: [selectOptions[1].title, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "size-5", children: _jsx("path", { "fill-rule": "evenodd", d: "M3 6a3 3 0 0 1 3-3h2.25a3 3 0 0 1 3 3v2.25a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Zm9.75 0a3 3 0 0 1 3-3H18a3 3 0 0 1 3 3v2.25a3 3 0 0 1-3 3h-2.25a3 3 0 0 1-3-3V6ZM3 15.75a3 3 0 0 1 3-3h2.25a3 3 0 0 1 3 3V18a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-2.25Zm9.75 0a3 3 0 0 1 3-3H18a3 3 0 0 1 3 3V18a3 3 0 0 1-3 3h-2.25a3 3 0 0 1-3-3v-2.25Z", "clip-rule": "evenodd" }) })] })] }));
32
133
  }
@@ -2,18 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState, useRef, useCallback } from "react"; // React 추가
3
3
  import { useSpring, animated, easings } from "@react-spring/web";
4
4
  import { cn } from "../../../../util";
5
- import { useEase } from "../../../../hook";
6
5
  import { LineBreaks } from "../../../../text";
7
6
  import SVG from "../../../../asset/SVG";
8
7
  import { tagString } from "../../../../interface/domain";
9
8
  import useResponsive from "../../../../hook/useResponsive";
10
9
  export default function Carousel({ contents, option, }) {
11
10
  const [index, setIndex] = useState(0);
12
- const [flag, inTime] = useEase(10000, 1000);
13
11
  const [loaded, setLoaded] = useState(false);
14
12
  const [isPlaying, setIsPlaying] = useState(true);
15
13
  const isMD = useResponsive("md");
16
14
  const isXL = useResponsive("xl");
15
+ const isXXS = useResponsive("xxs");
17
16
  const intervalRef = useRef(null);
18
17
  const { tag, titles, image } = contents[index];
19
18
  // Transition animation using react-spring
@@ -70,6 +69,10 @@ export default function Carousel({ contents, option, }) {
70
69
  setIsPlaying(!isPlaying);
71
70
  };
72
71
  // Styles definition
72
+ const spacer = {
73
+ displays: "flex flex-col justify-start items-center",
74
+ sizes: "w-full h-200",
75
+ };
73
76
  const container = {
74
77
  displays: "relative flex justify-center items-center",
75
78
  sizes: "w-full h-fit md:h-80 ml:h-100",
@@ -79,7 +82,7 @@ export default function Carousel({ contents, option, }) {
79
82
  };
80
83
  const titleWrapper = {
81
84
  displays: "static md:relative flex flex-col xxs:flex-row xxs:items-center md:items-start md:flex-col",
82
- sizes: "w-full h-fit xxs:h-full xxs:w-fit md:w-72",
85
+ sizes: "w-full h-21 md:h-full xxs:w-fit md:w-72",
83
86
  spacings: "mt-4 px-5 xxs:mt-8 xxs:gap-8 md:p-0 md:mt-0 md:gap-6 md:pl-7.5 md:pt-10 ml:pt-20",
84
87
  animations: "duration-500",
85
88
  };
@@ -128,5 +131,5 @@ export default function Carousel({ contents, option, }) {
128
131
  sizes: "w-10 h-10 rounded-full",
129
132
  background: "bg-white text-gray-dark shadow-main",
130
133
  };
131
- return (_jsx("div", { onClick: contents[index].onClick, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: cn(titleWrapper), children: [_jsxs("div", { className: cn(titleSet), children: [_jsx("div", { className: cn(tagBox), children: tagString[tag.type] }), _jsx("div", { className: "font-pretendard-bold text-xl md:text-2xl", children: titles.title })] }), _jsx(LineBreaks, { className: cn(subtitleStyles), texts: titles.subtitle }), _jsx("div", { className: cn(buttonBoxPosition), onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: cn(buttonBox), children: [_jsxs("div", { className: cn(handlePosition), children: [_jsx("button", { onClick: handlePrev, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.LessThan, { color: "text-gray-dark" }) }), _jsx("button", { onClick: handleNext, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.GreaterThan, { color: "text-gray-dark" }) })] }), _jsxs("div", { className: "flex flex-row md:gap-2 gap-4 justify-center items-center", children: [_jsx("div", { className: "text-gray-dark w-4 text-sm text-center", children: index + 1 }), _jsx("div", { className: "w-0.5 h-3 bg-gray-medium" }), _jsx("div", { className: "text-gray-dark w-4 text-sm text-center", children: contents.length })] })] }) })] }), _jsx("div", { className: "h-full overflow-hidden w-fit image-container", children: image && (_jsx(animated.img, { src: image, alt: "carousel-image", onLoad: () => setLoaded(true), className: "object-cover h-full z-0", style: transitionStyles })) }), isMD && (_jsx("div", { className: cn(playbutton), onClick: handlePlayPause, children: isPlaying ? (_jsx("svg", { width: "12", height: "14", viewBox: "0 0 12 14", fill: "none", children: _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M9.5.25A1.5 1.5 0 008 1.75v10.5a1.5 1.5 0 003 0V1.75A1.5 1.5 0 009.5.25zm-7 0A1.5 1.5 0 001 1.75v10.5a1.5 1.5 0 003 0V1.75A1.5 1.5 0 002.5.25z", clipRule: "evenodd" }) })) : (_jsx("svg", { width: "12", height: "14", viewBox: "0 0 12 14", fill: "none", children: _jsx("path", { fill: "currentColor", d: "M1.688 12.952a1 1 0 001.614.789l7.4-5.77a1 1 0 00.019-1.562L3.32.34a1 1 0 00-1.634.774v11.838z" }) })) }))] }) }));
134
+ return (_jsx("div", { onClick: contents[index].onClick, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: cn(titleWrapper), children: [_jsxs("div", { className: cn(titleSet), children: [_jsx("div", { className: cn(tagBox), children: tagString[tag.type] }), _jsx("div", { className: "font-pretendard-bold text-xl md:text-2xl", children: titles.title })] }), isXXS ? (_jsx(LineBreaks, { className: cn(subtitleStyles), texts: titles.subtitle })) : (_jsx("div", { className: cn(subtitleStyles), children: titles.subtitle })), _jsx("div", { className: cn(buttonBoxPosition), onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: cn(buttonBox), children: [_jsxs("div", { className: cn(handlePosition), children: [_jsx("button", { onClick: handlePrev, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.LessThan, { color: "text-gray-dark" }) }), _jsx("button", { onClick: handleNext, className: "w-10 md:w-6 h-full flex justify-center items-center", children: _jsx(SVG.Symbol.GreaterThan, { color: "text-gray-dark" }) })] }), _jsxs("div", { className: "flex flex-row md:gap-2 gap-4 justify-center items-center", children: [_jsx("div", { className: "text-gray-dark w-4 text-sm text-center", children: index + 1 }), _jsx("div", { className: "w-0.5 h-3 bg-gray-medium" }), _jsx("div", { className: "text-gray-dark w-4 text-sm text-center", children: contents.length })] })] }) })] }), _jsx("div", { className: "h-full overflow-hidden w-fit image-container", children: image && (_jsx(animated.img, { src: image, alt: "carousel-image", onLoad: () => setLoaded(true), className: "object-cover h-full z-0", style: transitionStyles })) }), isMD && (_jsx("div", { className: cn(playbutton), onClick: handlePlayPause, children: isPlaying ? (_jsx("svg", { width: "12", height: "14", viewBox: "0 0 12 14", fill: "none", children: _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M9.5.25A1.5 1.5 0 008 1.75v10.5a1.5 1.5 0 003 0V1.75A1.5 1.5 0 009.5.25zm-7 0A1.5 1.5 0 001 1.75v10.5a1.5 1.5 0 003 0V1.75A1.5 1.5 0 002.5.25z", clipRule: "evenodd" }) })) : (_jsx("svg", { width: "12", height: "14", viewBox: "0 0 12 14", fill: "none", children: _jsx("path", { fill: "currentColor", d: "M1.688 12.952a1 1 0 001.614.789l7.4-5.77a1 1 0 00.019-1.562L3.32.34a1 1 0 00-1.634.774v11.838z" }) })) }))] }) }));
132
135
  }
@@ -5,6 +5,6 @@ export default function Header({ logo, rightButton, contents, }: {
5
5
  node: ReactNode;
6
6
  onClick?: OnClick;
7
7
  };
8
- rightButton?: _Button;
8
+ rightButton?: React.ReactNode;
9
9
  contents: _Button[];
10
10
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useRef } from "react";
3
- import { cn, gradient } from "../../../../util";
4
- import { Label } from "../../../../widget";
3
+ import { cn } from "../../../../util";
5
4
  import { useResponsive } from "../../../../hook";
6
5
  import { gsap } from "gsap";
7
6
  export default function Header({ logo, rightButton, contents, }) {
@@ -148,15 +147,5 @@ export default function Header({ logo, rightButton, contents, }) {
148
147
  const menuButton = {
149
148
  displays: "flex justify-center items-center p-2",
150
149
  };
151
- return (_jsx("div", { ref: headerRef, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: cn(leftWrapper), children: [_jsx("div", { onClick: logo.onClick, children: logo.node }), _jsxs("div", { className: cn(essenstialsWrapper), id: "buttonArea", children: [rightButton && (_jsx(Label.Button, { title: rightButton.title, onClick: rightButton?.onClick, option: {
152
- width: "2xs",
153
- height: "xs",
154
- background: gradient.bg.greenToRed,
155
- text: "text-white",
156
- } })), _jsx("button", { onClick: toggleHeight, className: cn(menuButton), children: _jsx("div", { className: "w-6 h-6", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: [!isExpanded && (_jsx("path", { id: "menu", fill: "#B0B8C1", d: "M4.118 6.2h16a1.2 1.2 0 100-2.4h-16a1.2 1.2 0 100 2.4m16 4.6h-16a1.2 1.2 0 100 2.4h16a1.2 1.2 0 100-2.4m0 7h-16a1.2 1.2 0 100 2.4h16a1.2 1.2 0 100-2.4", "fill-rule": "evenodd" })), isExpanded && (_jsx("path", { id: "close", fill: "#B0B8C1", "fill-rule": "evenodd", d: "M13.815 12l5.651-5.651a1.2 1.2 0 00-1.697-1.698l-5.651 5.652-5.652-5.652a1.201 1.201 0 00-1.697 1.698L10.421 12l-5.652 5.651a1.202 1.202 0 00.849 2.049c.307 0 .614-.117.848-.351l5.652-5.652 5.651 5.652a1.198 1.198 0 001.697 0 1.2 1.2 0 000-1.698L13.815 12z" }))] }) }) })] })] }), _jsxs("div", { ref: menuContentRef, className: cn(rightWrapper), children: [_jsx("div", { className: cn(buttonBoxWrapper), children: contents.map((button, index) => (_jsx("button", { onClick: button.onClick, className: cn(buttonBox), children: button.title }, index))) }), _jsx("div", { className: "hidden md:block", children: rightButton && (_jsx(Label.Button, { title: rightButton.title, onClick: rightButton?.onClick, option: {
157
- width: "xs",
158
- height: "xs",
159
- background: gradient.bg.greenToRed,
160
- text: "text-white",
161
- } })) })] })] }) }));
150
+ return (_jsx("div", { ref: headerRef, className: cn(container), children: _jsxs("div", { className: cn(body), children: [_jsxs("div", { className: cn(leftWrapper), children: [_jsx("div", { onClick: logo.onClick, children: logo.node }), _jsxs("div", { className: cn(essenstialsWrapper), id: "buttonArea", children: [rightButton && rightButton, _jsx("button", { onClick: toggleHeight, className: cn(menuButton), children: _jsx("div", { className: "w-6 h-6", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: [!isExpanded && (_jsx("path", { id: "menu", fill: "#B0B8C1", d: "M4.118 6.2h16a1.2 1.2 0 100-2.4h-16a1.2 1.2 0 100 2.4m16 4.6h-16a1.2 1.2 0 100 2.4h16a1.2 1.2 0 100-2.4m0 7h-16a1.2 1.2 0 100 2.4h16a1.2 1.2 0 100-2.4", "fill-rule": "evenodd" })), isExpanded && (_jsx("path", { id: "close", fill: "#B0B8C1", "fill-rule": "evenodd", d: "M13.815 12l5.651-5.651a1.2 1.2 0 00-1.697-1.698l-5.651 5.652-5.652-5.652a1.201 1.201 0 00-1.697 1.698L10.421 12l-5.652 5.651a1.202 1.202 0 00.849 2.049c.307 0 .614-.117.848-.351l5.652-5.652 5.651 5.652a1.198 1.198 0 001.697 0 1.2 1.2 0 000-1.698L13.815 12z" }))] }) }) })] })] }), _jsxs("div", { ref: menuContentRef, className: cn(rightWrapper), children: [_jsx("div", { className: cn(buttonBoxWrapper), children: contents.map((button, index) => (_jsx("button", { onClick: button.onClick, className: cn(buttonBox), children: button.title }, index))) }), _jsx("div", { className: "hidden md:block", children: rightButton && rightButton })] })] }) }));
162
151
  }
@@ -7,7 +7,7 @@ export default function Layout({ contents, children, logo, rightButton, option,
7
7
  node: ReactNode;
8
8
  onClick?: OnClick;
9
9
  };
10
- rightButton?: Button;
10
+ rightButton?: React.ReactNode;
11
11
  option?: {
12
12
  isPulled?: boolean;
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edu-tosel/design",
3
- "version": "1.0.323",
3
+ "version": "1.0.325",
4
4
  "description": "UI components for International TOSEL Committee",
5
5
  "keywords": [
6
6
  "jsx",
package/version.txt CHANGED
@@ -1 +1 @@
1
- 1.0.323
1
+ 1.0.325