@edu-tosel/design 0.1.5 → 0.1.7
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/board/Board.d.ts +7 -0
- package/board/Board.js +9 -0
- package/board/CanvasBoard.d.ts +7 -0
- package/board/CanvasBoard.js +11 -0
- package/board/Header.d.ts +6 -0
- package/board/Header.js +12 -0
- package/board/ListBoard.d.ts +7 -0
- package/board/ListBoard.js +7 -0
- package/board/index.d.ts +2 -18
- package/board/index.js +2 -33
- package/card/Card.d.ts +9 -8
- package/card/Card.js +26 -15
- package/card/ChartCard.d.ts +20 -0
- package/card/ChartCard.js +7 -0
- package/card/ProfileCard.js +1 -1
- package/card/TableCard.d.ts +12 -0
- package/card/TableCard.js +13 -0
- package/card/TrumpCard.d.ts +19 -0
- package/card/TrumpCard.js +19 -0
- package/card/index.d.ts +3 -0
- package/card/index.js +3 -0
- package/deck/Deck.d.ts +15 -0
- package/deck/Deck.js +14 -0
- package/deck/index.d.ts +1 -18
- package/deck/index.js +1 -16
- package/index.d.ts +9 -0
- package/index.js +9 -0
- package/layout/dashboard/Header.js +11 -7
- package/layout/dashboard/index.d.ts +3 -1
- package/layout/dashboard/index.js +5 -3
- package/modal/Modal.d.ts +8 -0
- package/modal/Modal.js +21 -0
- package/modal/index.d.ts +1 -9
- package/modal/index.js +1 -23
- package/navigation/Navigation.d.ts +5 -0
- package/navigation/Navigation.js +26 -0
- package/navigation/index.d.ts +1 -6
- package/navigation/index.js +1 -16
- package/package.json +3 -1
- package/shelf/Shelf.d.ts +4 -0
- package/shelf/Shelf.js +4 -0
- package/shelf/index.d.ts +1 -0
- package/shelf/index.js +1 -0
- package/text/LineBreaks.d.ts +4 -0
- package/text/LineBreaks.js +5 -0
- package/text/index.d.ts +1 -5
- package/text/index.js +1 -6
- package/util/colors.js +1 -1
- package/version.txt +1 -1
- package/header/index.d.ts +0 -1
- package/header/index.js +0 -1
- package/tailwind.config.js +0 -334
package/board/Board.d.ts
ADDED
package/board/Board.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function Board({ children, options, }) {
|
|
3
|
+
const { height } = options ?? {};
|
|
4
|
+
const classNames = [
|
|
5
|
+
`min-h-screen xl:min-h-0 xl:h-186 `,
|
|
6
|
+
"xl:rounded-xl bg-white/80 relative w-full ",
|
|
7
|
+
].join(" ");
|
|
8
|
+
return _jsx("div", { className: classNames + "", children: children });
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../util";
|
|
3
|
+
import { Board } from "./Board";
|
|
4
|
+
export function CanvasBoard({ children, options, }) {
|
|
5
|
+
const { height } = options ?? {};
|
|
6
|
+
const layouts = "flex flex-wrap gap-12 ";
|
|
7
|
+
const sizes = "h-full ";
|
|
8
|
+
const paddings = "pb-36 xl:pb-12 px-2 xs:px-4 xl:pl-10 xl:pr-2 pt-2 xs:pt-4 xl:pt-8";
|
|
9
|
+
const styles = "xl:overflow-y-scroll ";
|
|
10
|
+
return (_jsx(Board, { options: { height }, children: _jsx("div", { className: cn(layouts, sizes, paddings, styles), children: children }) }));
|
|
11
|
+
}
|
package/board/Header.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { between, center } from "../util";
|
|
3
|
+
export function Header({ title, colors, childrens, }) {
|
|
4
|
+
const [bgColor, textColor] = colors ?? ["bg", "text"];
|
|
5
|
+
const headerClassNames = [
|
|
6
|
+
center.row + between.row,
|
|
7
|
+
`bg-${bgColor || "white-off"}`,
|
|
8
|
+
`text-${textColor || "black"}`,
|
|
9
|
+
"w-full h-22 px-12 ",
|
|
10
|
+
].join(" ");
|
|
11
|
+
return (_jsxs("div", { className: headerClassNames, children: [_jsx("div", { className: "text-xl font-bold", children: title }), _jsx("div", { className: "flex", children: childrens?.map((children) => children) })] }));
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Board } from "./Board";
|
|
3
|
+
export function ListBoard({ children, options, }) {
|
|
4
|
+
const { height } = options ?? {};
|
|
5
|
+
const classNames = ["pt-8 px-12 overflow-y-scroll h-full pb-32"].join(" ");
|
|
6
|
+
return (_jsx(Board, { options: { height }, children: _jsx("div", { className: classNames, children: children }) }));
|
|
7
|
+
}
|
package/board/index.d.ts
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import "../globals.css";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
options?: {
|
|
6
|
-
height?: number;
|
|
7
|
-
};
|
|
8
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare function ListBoard({ children, header, options, }: {
|
|
10
|
-
children: React.ReactNode;
|
|
11
|
-
header: {
|
|
12
|
-
title: string;
|
|
13
|
-
colors?: [string, string];
|
|
14
|
-
childrens?: React.ReactNode[];
|
|
15
|
-
};
|
|
16
|
-
options?: {
|
|
17
|
-
height?: number;
|
|
18
|
-
};
|
|
19
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export * from "./CanvasBoard";
|
|
3
|
+
export * from "./ListBoard";
|
package/board/index.js
CHANGED
|
@@ -1,34 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
1
|
import "../globals.css";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const [bgColor, textColor] = colors ?? ["bg", "text"];
|
|
6
|
-
const headerClassNames = [
|
|
7
|
-
center.row + between.row,
|
|
8
|
-
`bg-${bgColor || "white-off"}`,
|
|
9
|
-
`text-${textColor || "black"}`,
|
|
10
|
-
"w-full h-22 px-12",
|
|
11
|
-
].join(" ");
|
|
12
|
-
return (_jsxs("div", { className: headerClassNames, children: [_jsx("div", { className: "text-xl font-bold", children: title }), _jsx("div", { className: "flex", children: childrens?.map((children) => children) })] }));
|
|
13
|
-
}
|
|
14
|
-
function Board({ children, header, options, }) {
|
|
15
|
-
const { height } = options ?? {};
|
|
16
|
-
const classNames = [
|
|
17
|
-
`h-${height ?? 186} ${header ? "" : "pt-8"}`,
|
|
18
|
-
"rounded-xl bg-white/80 overflow-hidden relative w-full",
|
|
19
|
-
].join(" ");
|
|
20
|
-
return (_jsxs("div", { className: classNames, children: [header ? _jsx(Header, { ...header }) : null, _jsx("div", { className: "h-full", children: children })] }));
|
|
21
|
-
}
|
|
22
|
-
export function CanvasBoard({ children, options, }) {
|
|
23
|
-
const { height } = options ?? {};
|
|
24
|
-
const classNames = ["px-12"].join(" ");
|
|
25
|
-
return (_jsx(Board, { options: { height }, children: _jsx("div", { className: classNames, children: children }) }));
|
|
26
|
-
}
|
|
27
|
-
export function ListBoard({ children, header, options, }) {
|
|
28
|
-
const { title, colors, childrens } = header;
|
|
29
|
-
const { height } = options ?? {};
|
|
30
|
-
const classNames = [
|
|
31
|
-
"scrollbar pt-8 px-12 overflow-y-scroll h-full pb-32",
|
|
32
|
-
].join(" ");
|
|
33
|
-
return (_jsx(Board, { header: { title, colors, childrens }, options: { height }, children: _jsx("div", { className: classNames, children: children }) }));
|
|
34
|
-
}
|
|
2
|
+
export * from "./CanvasBoard";
|
|
3
|
+
export * from "./ListBoard";
|
package/card/Card.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import "../globals.css";
|
|
3
|
-
export
|
|
3
|
+
export type Size = "small" | "medium" | "large" | "xLarge";
|
|
4
|
+
export declare function Card({ children, options, }: {
|
|
4
5
|
children: React.ReactNode;
|
|
5
|
-
header?: {
|
|
6
|
-
title: string;
|
|
7
|
-
bgColor?: string;
|
|
8
|
-
childrens?: React.ReactNode[];
|
|
9
|
-
};
|
|
10
6
|
options?: {
|
|
11
|
-
height?:
|
|
12
|
-
width?:
|
|
7
|
+
height?: Size;
|
|
8
|
+
width?: Size;
|
|
9
|
+
text?: {
|
|
10
|
+
size?: string;
|
|
11
|
+
color?: string;
|
|
12
|
+
};
|
|
13
|
+
onClick?: () => unknown | (() => Promise<unknown>);
|
|
13
14
|
};
|
|
14
15
|
}): import("react/jsx-runtime").JSX.Element;
|
package/card/Card.js
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import "../globals.css";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
import { cn } from "../util";
|
|
4
|
+
const widthSize = {
|
|
5
|
+
small: "md:w-60",
|
|
6
|
+
medium: "md:w-90",
|
|
7
|
+
large: "md:w-135",
|
|
8
|
+
xLarge: "md:w-225",
|
|
9
|
+
};
|
|
10
|
+
const heightSize = {
|
|
11
|
+
small: "h-72 sm:h-48",
|
|
12
|
+
medium: "h-72 sm:h-48",
|
|
13
|
+
large: "h-80",
|
|
14
|
+
xLarge: "h-80",
|
|
15
|
+
};
|
|
16
|
+
export function Card({ children, options, }) {
|
|
17
|
+
const { height, width, text, onClick } = options ?? {};
|
|
18
|
+
const { size: textSize, color: textColor } = text ?? {};
|
|
19
|
+
const sizes = [
|
|
20
|
+
`${heightSize[height ?? "small"]}`,
|
|
21
|
+
`w-full ${widthSize[width ?? "small"]}`,
|
|
9
22
|
].join(" ");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
`h-${height ?? 48} w-${width ?? "full"} p-4 max-w-232 `,
|
|
16
|
-
"rounded-xl bg-white/80 overflow-hidden relative box-shadow duration-500",
|
|
23
|
+
const positions = "relative";
|
|
24
|
+
const styles = [
|
|
25
|
+
`${onClick ? "cursor-pointer" : ""}`,
|
|
26
|
+
`text-${textSize ?? "base"}`,
|
|
27
|
+
`rounded-xl bg-white/80 overflow-hidden box-shadow duration-500`,
|
|
17
28
|
].join(" ");
|
|
18
|
-
return (
|
|
29
|
+
return (_jsx("div", { onClick: onClick, className: cn(sizes, positions, styles), children: children }));
|
|
19
30
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "../globals.css";
|
|
2
|
+
interface ChartCardProps {
|
|
3
|
+
data: Record<string, string | number>[];
|
|
4
|
+
xAxis: string;
|
|
5
|
+
yAxis: string;
|
|
6
|
+
lines?: {
|
|
7
|
+
dataKey: string;
|
|
8
|
+
stroke: string;
|
|
9
|
+
}[];
|
|
10
|
+
bars?: {
|
|
11
|
+
dataKey: string;
|
|
12
|
+
fill: string;
|
|
13
|
+
}[];
|
|
14
|
+
areas?: {
|
|
15
|
+
dataKey: string;
|
|
16
|
+
fill: string;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
export declare function ChartCard({ data, xAxis, yAxis, lines, bars, areas, }: ChartCardProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import "../globals.css";
|
|
3
|
+
import { Area, Bar, ComposedChart, Line, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts";
|
|
4
|
+
import { Card } from "./Card";
|
|
5
|
+
export function ChartCard({ data, xAxis, yAxis, lines, bars, areas, }) {
|
|
6
|
+
return (_jsx(Card, { options: { width: "xLarge", height: "large", text: { size: "xs" } }, children: _jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(ComposedChart, { data: data, children: [_jsx(XAxis, { dataKey: xAxis }), _jsx(YAxis, { dataKey: yAxis }), _jsx(Tooltip, {}), lines?.map((line) => (_jsx(Line, { ...line }, line.dataKey))), bars?.map((bar) => (_jsx(Bar, { ...bar }, bar.dataKey))), areas?.map((area) => (_jsx(Area, { ...area }, area.dataKey)))] }) }) }));
|
|
7
|
+
}
|
package/card/ProfileCard.js
CHANGED
|
@@ -4,5 +4,5 @@ import { colorsByLevel } from "../util";
|
|
|
4
4
|
export function ProfileCard({ info, gradeData, }) {
|
|
5
5
|
const { name, birthday, image } = info;
|
|
6
6
|
const { level, score, grade } = gradeData ?? {};
|
|
7
|
-
return (_jsx(Card, { options: { width:
|
|
7
|
+
return (_jsx(Card, { options: { width: "small" }, children: _jsxs("div", { className: "flex", children: [_jsx("img", { src: image, alt: "profile", className: "h-20 w-20 overflow-hidden rounded-full object-cover " }), _jsxs("div", { className: "ml-auto flex flex-col gap-4", children: [_jsxs("div", { className: "flex w-52 items-end gap-2 border-b-2 border-blue-navy pb-2", children: [_jsx("div", { className: "text-xl font-bold", children: name }), _jsx("div", { children: birthday })] }), _jsxs("div", { children: [_jsx("div", { children: "\uD559\uC6D0\uC0DD" }), _jsx("div", { children: level ? colorsByLevel[level] : "" })] })] })] }) }));
|
|
8
8
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "../globals.css";
|
|
2
|
+
export declare function TableCard({ data, fields, sizes, options, }: {
|
|
3
|
+
data: Record<string, string | number>[];
|
|
4
|
+
fields: Record<string, string>;
|
|
5
|
+
sizes: Record<string, string>;
|
|
6
|
+
options?: {
|
|
7
|
+
color?: {
|
|
8
|
+
background: string;
|
|
9
|
+
text: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import "../globals.css";
|
|
3
|
+
import { Card } from "./Card";
|
|
4
|
+
export function TableCard({ data, fields, sizes, options, }) {
|
|
5
|
+
const { color } = options ?? {};
|
|
6
|
+
const { background: bgColor, text: textColor } = color ?? {};
|
|
7
|
+
const keys = Object.keys(fields);
|
|
8
|
+
const fieldsClassNames = [
|
|
9
|
+
`flex h-11 items-center font-bold pl-4`,
|
|
10
|
+
`bg-${bgColor ?? "gray-300"} text-${textColor ?? "black"}`,
|
|
11
|
+
].join(" ");
|
|
12
|
+
return (_jsx(Card, { options: { width: "large", height: "large" }, children: _jsxs("div", { className: "overflow-hidden text-xs xs:text-sm sm:text-base", children: [_jsx("div", { className: fieldsClassNames, children: keys.map((key) => (_jsx("div", { className: `w-${sizes[key]}`, children: fields[key] }, key))) }), data.map((row, index) => (_jsx("div", { className: "flex items-center pl-4 h-11 ", children: keys.map((key) => (_jsx("div", { className: `truncate w-${sizes[key] ?? "auto"}`, children: row[key] }, key))) }, index)))] }) }));
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Size } from "./Card";
|
|
2
|
+
type ImageSize = "sub" | "full";
|
|
3
|
+
export declare function TrumpCard({ titles, options, }: {
|
|
4
|
+
titles: {
|
|
5
|
+
title: string;
|
|
6
|
+
subTitle?: string[];
|
|
7
|
+
color?: string;
|
|
8
|
+
};
|
|
9
|
+
options?: {
|
|
10
|
+
width?: Size;
|
|
11
|
+
image?: {
|
|
12
|
+
path: string;
|
|
13
|
+
size?: ImageSize;
|
|
14
|
+
};
|
|
15
|
+
onClick?: () => unknown | (() => Promise<unknown>);
|
|
16
|
+
subButton?: [string, string, () => unknown | (() => Promise<unknown>)];
|
|
17
|
+
};
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { LineBreaks } from "../text";
|
|
3
|
+
import { Card } from "./Card";
|
|
4
|
+
export function TrumpCard({ titles, options, }) {
|
|
5
|
+
const { title, subTitle, color: titleColor } = titles;
|
|
6
|
+
const { onClick, width, image, subButton } = options ?? {};
|
|
7
|
+
const [buttonText, buttonBgColor, buttonAction] = subButton ?? [
|
|
8
|
+
null,
|
|
9
|
+
"red-crimson",
|
|
10
|
+
() => { },
|
|
11
|
+
];
|
|
12
|
+
const { path, size } = image ?? { size: "sub" };
|
|
13
|
+
const imageClassNames = () => {
|
|
14
|
+
if (size === "full")
|
|
15
|
+
return "w-full h-full object-cover";
|
|
16
|
+
return "absolute bottom-0 right-0 w-full xs:w-auto max-w-120 z-0 max-h-44 object-contain";
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs(Card, { options: { width: width, onClick: onClick }, children: [_jsxs("div", { className: `absolute top-8 left-8 w-48 flex flex-col gap-2 z-10 text-${titleColor}`, children: [_jsx("div", { className: "text-xl font-bold", children: title }), _jsx(LineBreaks, { gap: 0, texts: subTitle ?? [""] }), subButton ? (_jsx("button", { className: `text-white rounded-md bg-${buttonBgColor} w-45 h-11 flex justify-center items-center`, onClick: buttonAction, children: buttonText })) : null] }), path ? (_jsx("img", { src: path, alt: "trump-image", loading: "lazy", className: imageClassNames() })) : null] }));
|
|
19
|
+
}
|
package/card/index.d.ts
CHANGED
package/card/index.js
CHANGED
package/deck/Deck.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare function Deck<T extends string | number>({ children, titles, options, }: {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
titles?: {
|
|
5
|
+
title: string;
|
|
6
|
+
subTitle?: string;
|
|
7
|
+
gapTitle?: number;
|
|
8
|
+
};
|
|
9
|
+
options?: {
|
|
10
|
+
width?: T;
|
|
11
|
+
height?: number;
|
|
12
|
+
gapX?: number;
|
|
13
|
+
gapY?: number;
|
|
14
|
+
};
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
package/deck/Deck.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function Deck({ children, titles, options, }) {
|
|
3
|
+
const { title, subTitle, gapTitle } = titles ?? {};
|
|
4
|
+
const { height, gapX, gapY } = options ?? {};
|
|
5
|
+
const containerClassNames = [
|
|
6
|
+
`flex flex-col h-${height ?? "auto"} gap-${gapTitle ?? 4} `,
|
|
7
|
+
].join(" ");
|
|
8
|
+
const bodyClassNames = [
|
|
9
|
+
`flex flex-col sm:flex-row `,
|
|
10
|
+
`gap-x-${gapX ?? 5} gap-y-${gapY ?? 5}`,
|
|
11
|
+
"duration-500",
|
|
12
|
+
].join(" ");
|
|
13
|
+
return (_jsxs("div", { className: containerClassNames, children: [_jsxs("div", { className: "pl-1", children: [_jsx("div", { className: "text-xl xl:text-2xl font-bold", children: title }), _jsx("div", { className: "", children: subTitle })] }), _jsx("div", { className: bodyClassNames, children: children })] }));
|
|
14
|
+
}
|
package/deck/index.d.ts
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
export declare function Deck<T extends string | number>({ children, titles, options, }: {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
titles?: {
|
|
6
|
-
title: string;
|
|
7
|
-
subTitle?: string;
|
|
8
|
-
gapTitle?: number;
|
|
9
|
-
};
|
|
10
|
-
options?: {
|
|
11
|
-
direction?: "row" | "col" | "wrap";
|
|
12
|
-
justify?: "start" | "end" | "center" | "between" | "around" | "evenly";
|
|
13
|
-
width?: T;
|
|
14
|
-
height?: number;
|
|
15
|
-
gapX?: number;
|
|
16
|
-
gapY?: number;
|
|
17
|
-
};
|
|
18
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
export * from "./Deck";
|
package/deck/index.js
CHANGED
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
export function Deck({ children, titles, options, }) {
|
|
4
|
-
const { title, subTitle, gapTitle } = titles ?? {};
|
|
5
|
-
const { direction, height, width, gapX, gapY, justify } = options ?? {};
|
|
6
|
-
const classNames = [
|
|
7
|
-
"flex flex-col",
|
|
8
|
-
`h-${height ?? "auto"} w-${width ?? "full"} gap-${gapTitle ?? 4} `,
|
|
9
|
-
].join(" ");
|
|
10
|
-
const bodyClassNames = [
|
|
11
|
-
`flex-${direction ?? "row"} justify-${justify ?? "start"}`,
|
|
12
|
-
`gap-x-${gapX ?? 5} gap-y-${gapY ?? 5}`,
|
|
13
|
-
"flex w-full duration-500",
|
|
14
|
-
].join(" ");
|
|
15
|
-
return (_jsxs("div", { className: classNames, children: [_jsxs("div", { className: "pl-1", children: [_jsx("div", { className: "text-2xl font-bold", children: title }), _jsx("div", { className: "", children: subTitle })] }), _jsx("div", { className: bodyClassNames, children: children })] }));
|
|
16
|
-
}
|
|
1
|
+
export * from "./Deck";
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import "../../globals.css";
|
|
3
3
|
import { useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { cn } from "../../util";
|
|
5
5
|
export function Header({ title, image, }) {
|
|
6
6
|
const [isOpen, setIsOpen] = useState(false);
|
|
7
7
|
const [src, href] = image ?? [];
|
|
8
|
-
return (
|
|
8
|
+
return (_jsx("div", { className: "fixed top-0 left-0 xl:relative flex h-20 w-full items-center justify-between bg-white px-9 shadow-black/10 shadow-b-md z-40", children: _jsxs("div", { className: "flex h-12 items-center gap-12", children: [src && href ? (_jsx("a", { href: href, children: _jsx("img", { src: src, alt: "logo", className: "h-12 w-50" }) })) : (_jsx("div", { className: "text-2xl", children: "TOSEL" })), _jsx("div", { className: "text-3xl font-bold ", children: title })] }) }));
|
|
9
9
|
}
|
|
10
|
-
function Menu() {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
function Menu({ flag }) {
|
|
11
|
+
const positions = "absolute right-0 z-40 ";
|
|
12
|
+
const layouts = "w-48 overflow-hidden";
|
|
13
|
+
const styles = "shadow-md bg-white";
|
|
14
|
+
const animations = () => {
|
|
15
|
+
const height = flag ? "h-80" : "h-0";
|
|
16
|
+
return [height, "duration-500"].join(" ");
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: cn(positions, layouts, styles, animations()), children: [_jsx("div", { children: "\u314E\u3147" }), _jsx("div", { children: "\u314E\u3147" })] }));
|
|
15
19
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare function DashboardLayout({ navigations, children, }: {
|
|
2
|
+
export declare function DashboardLayout({ subject, colors, navigations, children, }: {
|
|
3
|
+
subject: [string, string, string];
|
|
4
|
+
colors?: [string, string];
|
|
3
5
|
navigations: React.ReactNode[];
|
|
4
6
|
children: React.ReactNode;
|
|
5
7
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment } from "react";
|
|
3
3
|
import { NavigationContainer } from "../../navigation";
|
|
4
|
-
import { gradient } from "../../util";
|
|
5
4
|
import { Header } from "./Header";
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { cn } from "../../util";
|
|
6
|
+
export function DashboardLayout({ subject, colors, navigations, children, }) {
|
|
7
|
+
const [title, image, imageUrl] = subject ?? ["", "", ""];
|
|
8
|
+
const [bgColor, textColor] = colors ?? ["white", "black"];
|
|
9
|
+
return (_jsxs("div", { className: cn(`bg-${bgColor}`, `text-${textColor}`, `min-h-screen font-pretendard-medium`), children: [_jsx(Header, { title: title, image: [image, imageUrl] }), _jsxs("div", { className: "flex gap-12 xl:px-9 xl:pt-12 mt-20 xl:m-0", children: [_jsx(NavigationContainer, { children: navigations.map((nav, index) => (_jsx(Fragment, { children: nav }, index))) }), children] })] }));
|
|
8
10
|
}
|
package/modal/Modal.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare function NoticeModal({ titles, children, buttons, close, }: {
|
|
3
|
+
titles?: string[];
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
buttons?: [string, () => unknown | (() => Promise<unknown>)][];
|
|
6
|
+
close: () => void;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function AlertModal(): import("react/jsx-runtime").JSX.Element;
|
package/modal/Modal.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { col, absolute } from "../util";
|
|
3
|
+
function Modal({ children }) {
|
|
4
|
+
const classNames = [
|
|
5
|
+
"z-50 flex min-h-screen w-full items-center justify-center bg-black/10 backdrop-blur-sm fixed top-0 left-0",
|
|
6
|
+
].join(" ");
|
|
7
|
+
const modalClassNames = [
|
|
8
|
+
"h-100 w-2/3 min-w-76 max-w-176 rounded-xl bg-white relative",
|
|
9
|
+
].join(" ");
|
|
10
|
+
return (_jsx("div", { className: classNames, children: _jsx("div", { className: modalClassNames, children: children }) }));
|
|
11
|
+
}
|
|
12
|
+
export function NoticeModal({ titles, children, buttons, close, }) {
|
|
13
|
+
const [title, subTitle] = titles || ["", ""];
|
|
14
|
+
const buttonClassNames = [
|
|
15
|
+
"rounded-2xl bg-black px-8 py-2 text-lg font-bold text-white",
|
|
16
|
+
].join(" ");
|
|
17
|
+
return (_jsxs(Modal, { children: [_jsxs("div", { className: col(3) + "px-25 pt-18 h-full pb-12", children: [_jsxs("div", { className: col(6), children: [_jsx("div", { className: "text-3xl font-bold", children: title }), _jsx("div", { className: "h-2 w-14 rounded-full bg-pale-lavender" }), _jsx("div", { className: "text-xl font-bold", children: subTitle })] }), _jsx("div", { children: children }), buttons ? (_jsx("div", { className: "mt-auto flex justify-end gap-4", children: buttons.map(([text, onClick]) => (_jsx("button", { className: buttonClassNames, onClick: onClick, children: text }, text))) })) : null] }), _jsx("button", { className: absolute.tl(5, 7) + "bg-black rounded-full h-9 w-9", onClick: close })] }));
|
|
18
|
+
}
|
|
19
|
+
export function AlertModal() {
|
|
20
|
+
return (_jsx("div", { children: _jsx("div", {}) }));
|
|
21
|
+
}
|
package/modal/index.d.ts
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
export declare function NoticeModal({ titles, children, buttons, close, }: {
|
|
4
|
-
titles?: string[];
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
buttons?: [string, () => unknown | (() => Promise<unknown>)][];
|
|
7
|
-
close?: () => void;
|
|
8
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare function AlertModal(): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
export * from "./Modal";
|
package/modal/index.js
CHANGED
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
import { col, absolute } from "../util";
|
|
4
|
-
function Modal({ children }) {
|
|
5
|
-
const classNames = [
|
|
6
|
-
absolute.tl() +
|
|
7
|
-
"z-50 flex min-h-screen w-full items-center justify-center bg-black/10 backdrop-blur-sm",
|
|
8
|
-
].join(" ");
|
|
9
|
-
const modalClassNames = [
|
|
10
|
-
"h-100 w-2/3 min-w-76 max-w-176 rounded-xl bg-white relative",
|
|
11
|
-
].join(" ");
|
|
12
|
-
return (_jsx("div", { className: classNames, children: _jsx("div", { className: modalClassNames, children: children }) }));
|
|
13
|
-
}
|
|
14
|
-
export function NoticeModal({ titles, children, buttons, close, }) {
|
|
15
|
-
const [title, subTitle] = titles || ["", ""];
|
|
16
|
-
const buttonClassNames = [
|
|
17
|
-
"rounded-2xl bg-black px-8 py-2 text-lg font-bold text-white",
|
|
18
|
-
].join(" ");
|
|
19
|
-
return (_jsxs(Modal, { children: [_jsxs("div", { className: col(3) + "px-25 pt-18 h-full pb-12", children: [_jsxs("div", { className: col(6), children: [_jsx("div", { className: "text-3xl font-bold", children: title }), _jsx("div", { className: "h-2 w-14 rounded-full bg-pale-lavender" }), _jsx("div", { className: "text-xl font-bold", children: subTitle })] }), _jsx("div", { children: children }), buttons ? (_jsx("div", { className: "mt-auto flex justify-end gap-4", children: buttons.map(([text, onClick]) => (_jsx("button", { className: buttonClassNames, onClick: onClick, children: text }, text))) })) : null] }), _jsx("button", { className: absolute.tl(5, 7) + "bg-black rounded-full h-9 w-9", onClick: close })] }));
|
|
20
|
-
}
|
|
21
|
-
export function AlertModal() {
|
|
22
|
-
return (_jsx("div", { children: _jsx("div", {}) }));
|
|
23
|
-
}
|
|
1
|
+
export * from "./Modal";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const buttonClassNames: (href: string, nowPath: string, color?: [string, string]) => string;
|
|
3
|
+
export declare function NavigationContainer({ children, }: {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { center, cn } from "../util";
|
|
3
|
+
export const buttonClassNames = (href, nowPath, color) => {
|
|
4
|
+
const [text, bg] = color ?? ["black", "white"];
|
|
5
|
+
const classNames = [
|
|
6
|
+
center.row(6),
|
|
7
|
+
`text-${text}`,
|
|
8
|
+
"font-bold w-full xl:w-50 h-11 xl:rounded-2xl flex justify-center xl:justify-start xl:pl-5",
|
|
9
|
+
].join(" ");
|
|
10
|
+
const checkPathMatch = (href, nowPath) => {
|
|
11
|
+
if (href === "")
|
|
12
|
+
return !nowPath.slice(1).includes("/");
|
|
13
|
+
return nowPath.includes(href);
|
|
14
|
+
};
|
|
15
|
+
const toggle = checkPathMatch(href, nowPath)
|
|
16
|
+
? `bg-${bg}`
|
|
17
|
+
: "bg-gray-500 xl:bg-transparent";
|
|
18
|
+
return [classNames, toggle].join(" ");
|
|
19
|
+
};
|
|
20
|
+
export function NavigationContainer({ children, }) {
|
|
21
|
+
const layouts = "flex flex-row xl:flex-col z-40";
|
|
22
|
+
const positions = "fixed bottom-0 left-0 xl:static";
|
|
23
|
+
const sizes = "w-full xl:w-auto";
|
|
24
|
+
const styles = "";
|
|
25
|
+
return (_jsx("div", { className: cn(layouts, positions, sizes, styles), children: children }));
|
|
26
|
+
}
|
package/navigation/index.d.ts
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
export declare const buttonClassNames: (href: string, nowPath: string, color?: [string, string]) => string;
|
|
4
|
-
export declare function NavigationContainer({ children, }: {
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
export * from "./Navigation";
|
package/navigation/index.js
CHANGED
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
import { center } from "../util";
|
|
4
|
-
export const buttonClassNames = (href, nowPath, color) => {
|
|
5
|
-
const [text, bg] = color ?? ["black", "white"];
|
|
6
|
-
const classNames = [
|
|
7
|
-
center.row(6),
|
|
8
|
-
`text-${text}`,
|
|
9
|
-
"font-bold w-50 h-11 rounded-2xl pl-5",
|
|
10
|
-
].join(" ");
|
|
11
|
-
const toggle = nowPath === href ? `bg-${bg}` : "bg-transparent";
|
|
12
|
-
return [classNames, toggle].join(" ");
|
|
13
|
-
};
|
|
14
|
-
export function NavigationContainer({ children, }) {
|
|
15
|
-
return _jsx("div", { className: center.col() + "w-54", children: children });
|
|
16
|
-
}
|
|
1
|
+
export * from "./Navigation";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edu-tosel/design",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "UI components for International TOSEL Committee",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jsx",
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
"react": "^18.2.0",
|
|
16
16
|
"react-dom": "^18.2.0",
|
|
17
17
|
"react-router-dom": "^6.21.3",
|
|
18
|
+
"recharts": "^2.11.0",
|
|
19
|
+
"tailwind-scrollbar-hide": "^1.1.7",
|
|
18
20
|
"tailwindcss-animate": "^1.0.7",
|
|
19
21
|
"typescript": "^5.2.2"
|
|
20
22
|
},
|
package/shelf/Shelf.d.ts
ADDED
package/shelf/Shelf.js
ADDED
package/shelf/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Shelf";
|
package/shelf/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Shelf";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { col } from "../util";
|
|
3
|
+
export function LineBreaks({ texts, gap }) {
|
|
4
|
+
return (_jsx("div", { className: col(gap), children: texts.map((text, index) => (_jsx("div", { className: "leading-tight", children: text }, index))) }));
|
|
5
|
+
}
|
package/text/index.d.ts
CHANGED
package/text/index.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import "../globals.css";
|
|
3
|
-
import { col } from "../util";
|
|
4
|
-
export function LineBreaks({ texts, gap }) {
|
|
5
|
-
return (_jsx("div", { className: col(gap), children: texts.map((text, index) => (_jsx("div", { children: text }, index))) }));
|
|
6
|
-
}
|
|
1
|
+
export * from "./LineBreaks";
|
package/util/colors.js
CHANGED
package/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.7
|
package/header/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../globals.css";
|
package/header/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../globals.css";
|
package/tailwind.config.js
DELETED
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
import tailwindcss from "tailwindcss";
|
|
2
|
-
// import tailwindScrollbarHide from "tailwind-scrollbar-hide";
|
|
3
|
-
import tailwindcssAnimate from "tailwindcss-animate";
|
|
4
|
-
// import twElements from "tw-elements/dist/plugin";
|
|
5
|
-
// import tailwindcssDirectionalShadows from "tailwindcss-directional-shadows";
|
|
6
|
-
|
|
7
|
-
/** @type {import('tailwindcss').Config} */
|
|
8
|
-
export default {
|
|
9
|
-
content: [
|
|
10
|
-
// "./node_modules/tw-elements/dist/js/**/*.js",
|
|
11
|
-
"./index.html",
|
|
12
|
-
"./src/**/*.{js,jsx,ts,tsx}",
|
|
13
|
-
],
|
|
14
|
-
theme: {
|
|
15
|
-
extend: {
|
|
16
|
-
fontFamily: {
|
|
17
|
-
"pretendard-medium": ["pretendard-medium"],
|
|
18
|
-
kostar: ["kostar"],
|
|
19
|
-
nicomoji: ["nicomoji"],
|
|
20
|
-
megrim: ["megrim"],
|
|
21
|
-
},
|
|
22
|
-
backgroundImage: {
|
|
23
|
-
"image-space": "url('/images/home/space.png')",
|
|
24
|
-
},
|
|
25
|
-
keyframes: {
|
|
26
|
-
slideBackground: {
|
|
27
|
-
"0%, 100%": { backgroundPosition: "left center" },
|
|
28
|
-
"50%": { backgroundPosition: "right center" },
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
colors: {
|
|
32
|
-
"white-off": "#F5F5F5",
|
|
33
|
-
"red-burgundy": "#933652",
|
|
34
|
-
"red-crimson": "#760023",
|
|
35
|
-
"red-velvet": "#AC647A",
|
|
36
|
-
"green-dark": "#105652",
|
|
37
|
-
"blue-sky": "#44C5F3",
|
|
38
|
-
"blue-navy": "#173A8B",
|
|
39
|
-
"blue-pastel": "#CED6E6",
|
|
40
|
-
"violet-light": "#9979F6",
|
|
41
|
-
"gray-light": "#F0F0F0",
|
|
42
|
-
"gray-medium": "#7F7F7F",
|
|
43
|
-
"gray-dim": "#4C4C4C",
|
|
44
|
-
"silver-lavender": "#E7E9F2",
|
|
45
|
-
"silver-latte": "#FBF3E4",
|
|
46
|
-
"silver-pale": "#DFD8CA",
|
|
47
|
-
|
|
48
|
-
// Brand Colors
|
|
49
|
-
"ps-pink": "#E3006E",
|
|
50
|
-
"ps-pink-light": "#FFBADB",
|
|
51
|
-
"st-orange": "#ED6A00",
|
|
52
|
-
"st-orange-light": "#F5D2B6",
|
|
53
|
-
"ba-yellow": "#FCCE30",
|
|
54
|
-
"ba-yellow-light": "#FFEFB7",
|
|
55
|
-
"jr-blue": "#52A2DA",
|
|
56
|
-
"jr-blue-light": "#D6EEFF",
|
|
57
|
-
"hj-blue": "#385EAB",
|
|
58
|
-
"hj-blue-light": "#A8BFE5",
|
|
59
|
-
},
|
|
60
|
-
inset: {
|
|
61
|
-
"1/20": "5%",
|
|
62
|
-
"1/10": "10%",
|
|
63
|
-
"2/10": "5%",
|
|
64
|
-
"1/5": "20%",
|
|
65
|
-
"2/5": "40%",
|
|
66
|
-
"1/4": "25%",
|
|
67
|
-
"1/3": "33.3333333%",
|
|
68
|
-
"5/100": "5%",
|
|
69
|
-
"10/100": "10%",
|
|
70
|
-
"15/100": "15%",
|
|
71
|
-
"43/100": "43%",
|
|
72
|
-
"46/100": "46%",
|
|
73
|
-
},
|
|
74
|
-
width: {
|
|
75
|
-
"2/3": "66.6666667%",
|
|
76
|
-
"1/7": "14.2857143%",
|
|
77
|
-
"2/7": "28.5714286%",
|
|
78
|
-
"3/7": "42.8571429%",
|
|
79
|
-
"4/7": "57.1428571%",
|
|
80
|
-
"1/8": "12.5%",
|
|
81
|
-
"3/10": "30%",
|
|
82
|
-
"1/10": "10%",
|
|
83
|
-
"4/10": "40%",
|
|
84
|
-
"6/10": "60%",
|
|
85
|
-
"7/10": "70%",
|
|
86
|
-
"9/10": "90%",
|
|
87
|
-
"10/100": "10%",
|
|
88
|
-
"12/100": "12%",
|
|
89
|
-
"15/100": "15%",
|
|
90
|
-
"35/100": "35%",
|
|
91
|
-
"45/100": "45%",
|
|
92
|
-
"55/100": "55%",
|
|
93
|
-
"65/100": "65%",
|
|
94
|
-
"85/100": "85%",
|
|
95
|
-
176: "44rem",
|
|
96
|
-
478: "478px",
|
|
97
|
-
},
|
|
98
|
-
height: {
|
|
99
|
-
"4/7": "57.1428571%",
|
|
100
|
-
"3/7": "42.8571429%",
|
|
101
|
-
"5/12": "41.6666667%",
|
|
102
|
-
"1/10": "10%",
|
|
103
|
-
"3/10": "30%",
|
|
104
|
-
"4/10": "40%",
|
|
105
|
-
"6/10": "60%",
|
|
106
|
-
"7/10": "70%",
|
|
107
|
-
"9/10": "90%",
|
|
108
|
-
},
|
|
109
|
-
spacing: {
|
|
110
|
-
"sun-calc": "calc(50% - 6rem)",
|
|
111
|
-
1: "0.25rem",
|
|
112
|
-
7: "1.75rem",
|
|
113
|
-
11: "2.75rem",
|
|
114
|
-
12: "3rem",
|
|
115
|
-
15: "3.75rem",
|
|
116
|
-
18: "4.5rem",
|
|
117
|
-
19: "4.75rem",
|
|
118
|
-
22: "5.5rem",
|
|
119
|
-
25: "6.25rem",
|
|
120
|
-
26: "6.5rem",
|
|
121
|
-
27: "6.75rem",
|
|
122
|
-
30: "7.5rem",
|
|
123
|
-
34: "8.5rem",
|
|
124
|
-
38: "9.5rem",
|
|
125
|
-
40: "10rem",
|
|
126
|
-
42: "10.5rem",
|
|
127
|
-
49: "12.25rem",
|
|
128
|
-
50: "12.5rem",
|
|
129
|
-
52: "13rem",
|
|
130
|
-
56: "14rem",
|
|
131
|
-
62: "15.5rem",
|
|
132
|
-
64: "16rem",
|
|
133
|
-
68: "17rem",
|
|
134
|
-
69: "17.25rem",
|
|
135
|
-
70: "17.5rem",
|
|
136
|
-
72: "18rem",
|
|
137
|
-
73: "18.25rem",
|
|
138
|
-
75: "18.75rem",
|
|
139
|
-
76: "19rem",
|
|
140
|
-
78: "20rem",
|
|
141
|
-
84: "21rem",
|
|
142
|
-
85: "21.25rem",
|
|
143
|
-
88: "22rem",
|
|
144
|
-
90: "22.5rem",
|
|
145
|
-
92: "23rem",
|
|
146
|
-
96: "24rem",
|
|
147
|
-
98: "24.5rem",
|
|
148
|
-
100: "25rem",
|
|
149
|
-
104: "26rem",
|
|
150
|
-
106: "26.5rem",
|
|
151
|
-
108: "27rem",
|
|
152
|
-
110: "27.5rem",
|
|
153
|
-
112: "28rem",
|
|
154
|
-
116: "29rem",
|
|
155
|
-
120: "30rem",
|
|
156
|
-
122: "30.5rem",
|
|
157
|
-
124: "31rem",
|
|
158
|
-
126: "31.5rem",
|
|
159
|
-
128: "32rem",
|
|
160
|
-
132: "33rem",
|
|
161
|
-
136: "34rem",
|
|
162
|
-
140: "35rem",
|
|
163
|
-
144: "36rem",
|
|
164
|
-
148: "37rem",
|
|
165
|
-
160: "40rem",
|
|
166
|
-
164: "41rem",
|
|
167
|
-
168: "42rem",
|
|
168
|
-
172: "43rem",
|
|
169
|
-
176: "44rem",
|
|
170
|
-
180: "45rem",
|
|
171
|
-
182: "45.5rem",
|
|
172
|
-
186: "46.5rem",
|
|
173
|
-
200: "50rem",
|
|
174
|
-
216: "54rem",
|
|
175
|
-
220: "55rem",
|
|
176
|
-
228: "57rem",
|
|
177
|
-
232: "58rem",
|
|
178
|
-
240: "60rem",
|
|
179
|
-
248: "62rem",
|
|
180
|
-
255: "63.75rem",
|
|
181
|
-
256: "64rem",
|
|
182
|
-
260: "65rem",
|
|
183
|
-
272: "68rem",
|
|
184
|
-
280: "70rem",
|
|
185
|
-
288: "72rem",
|
|
186
|
-
300: "75rem",
|
|
187
|
-
312: "78rem",
|
|
188
|
-
320: "80rem",
|
|
189
|
-
360: "90rem",
|
|
190
|
-
386: "96.5rem",
|
|
191
|
-
480: "120rem",
|
|
192
|
-
500: "125rem",
|
|
193
|
-
520: "140rem",
|
|
194
|
-
},
|
|
195
|
-
backgroundSize: {
|
|
196
|
-
auto: "auto",
|
|
197
|
-
cover: "cover",
|
|
198
|
-
contain: "contain",
|
|
199
|
-
16: "4rem",
|
|
200
|
-
64: "16rem",
|
|
201
|
-
80: "20rem",
|
|
202
|
-
88: "22rem",
|
|
203
|
-
92: "23rem",
|
|
204
|
-
96: "24rem",
|
|
205
|
-
100: "25rem",
|
|
206
|
-
128: "32rem",
|
|
207
|
-
},
|
|
208
|
-
transitionDelay: {
|
|
209
|
-
750: "750ms",
|
|
210
|
-
900: "900ms",
|
|
211
|
-
1000: "1000ms",
|
|
212
|
-
1250: "1250ms",
|
|
213
|
-
1350: "1200ms",
|
|
214
|
-
1500: "1500ms",
|
|
215
|
-
1600: "1600ms",
|
|
216
|
-
1750: "1750ms",
|
|
217
|
-
1800: "1800ms",
|
|
218
|
-
2000: "2000ms",
|
|
219
|
-
2100: "2100ms",
|
|
220
|
-
2250: "2250ms",
|
|
221
|
-
2500: "2500ms",
|
|
222
|
-
2700: "2700ms",
|
|
223
|
-
3000: "3000ms",
|
|
224
|
-
4000: "4000ms",
|
|
225
|
-
5000: "5000ms",
|
|
226
|
-
},
|
|
227
|
-
transitionDuration: {
|
|
228
|
-
2000: "2000ms",
|
|
229
|
-
60000: "60000ms",
|
|
230
|
-
300000: "300000ms",
|
|
231
|
-
},
|
|
232
|
-
opacity: {
|
|
233
|
-
32: ".32",
|
|
234
|
-
},
|
|
235
|
-
scale: {
|
|
236
|
-
101: "1.01",
|
|
237
|
-
110: "1.1",
|
|
238
|
-
120: "1.2",
|
|
239
|
-
200: "2",
|
|
240
|
-
},
|
|
241
|
-
skew: {
|
|
242
|
-
20: "20deg",
|
|
243
|
-
30: "30deg",
|
|
244
|
-
39: "39deg",
|
|
245
|
-
45: "45deg",
|
|
246
|
-
60: "60deg",
|
|
247
|
-
},
|
|
248
|
-
brightness: {
|
|
249
|
-
10: ".1",
|
|
250
|
-
20: ".2",
|
|
251
|
-
30: ".3",
|
|
252
|
-
40: ".4",
|
|
253
|
-
},
|
|
254
|
-
screens: {
|
|
255
|
-
xxxs: "332px",
|
|
256
|
-
xxs: "393px",
|
|
257
|
-
xs: "480px",
|
|
258
|
-
sm: "640px",
|
|
259
|
-
md: "768px", // IPad Mini
|
|
260
|
-
ml: "964px", // IPad Air, IPad Pro 11.
|
|
261
|
-
lg: "1024px", // IPad Mini Horizontal Viewport
|
|
262
|
-
xl: "1280px",
|
|
263
|
-
"2xl": "1536px",
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
},
|
|
267
|
-
safelist: [
|
|
268
|
-
{
|
|
269
|
-
pattern: /overflow-*./,
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
pattern: /col-.*/,
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
pattern: /row-.*/,
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
pattern: /flex-.*/,
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
pattern: /justify-.*/,
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
pattern: /items-.*/,
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
pattern: /grid-.*/,
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
pattern: /gap-.*/,
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
pattern: /border-.*/,
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
pattern: /min-.*/,
|
|
297
|
-
},
|
|
298
|
-
{ pattern: /w-.*/ },
|
|
299
|
-
{ pattern: /h-.*/ },
|
|
300
|
-
{
|
|
301
|
-
pattern: /top-.*/,
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
pattern: /-top-.*/,
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
pattern: /bottom*.*/,
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
pattern: /left-.*/,
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
pattern: /right*.*/,
|
|
314
|
-
},
|
|
315
|
-
{ pattern: /bg-.*/ },
|
|
316
|
-
{ pattern: /text-.*/ },
|
|
317
|
-
{
|
|
318
|
-
pattern: /p-.*/,
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
pattern: /from-.*/,
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
pattern: /to-.*/,
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
pattern: /via-.*/,
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
pattern: /delay-.*/,
|
|
331
|
-
},
|
|
332
|
-
],
|
|
333
|
-
plugins: [tailwindcss(), tailwindcssAnimate],
|
|
334
|
-
};
|