@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.
Files changed (52) hide show
  1. package/board/Board.d.ts +7 -0
  2. package/board/Board.js +9 -0
  3. package/board/CanvasBoard.d.ts +7 -0
  4. package/board/CanvasBoard.js +11 -0
  5. package/board/Header.d.ts +6 -0
  6. package/board/Header.js +12 -0
  7. package/board/ListBoard.d.ts +7 -0
  8. package/board/ListBoard.js +7 -0
  9. package/board/index.d.ts +2 -18
  10. package/board/index.js +2 -33
  11. package/card/Card.d.ts +9 -8
  12. package/card/Card.js +26 -15
  13. package/card/ChartCard.d.ts +20 -0
  14. package/card/ChartCard.js +7 -0
  15. package/card/ProfileCard.js +1 -1
  16. package/card/TableCard.d.ts +12 -0
  17. package/card/TableCard.js +13 -0
  18. package/card/TrumpCard.d.ts +19 -0
  19. package/card/TrumpCard.js +19 -0
  20. package/card/index.d.ts +3 -0
  21. package/card/index.js +3 -0
  22. package/deck/Deck.d.ts +15 -0
  23. package/deck/Deck.js +14 -0
  24. package/deck/index.d.ts +1 -18
  25. package/deck/index.js +1 -16
  26. package/index.d.ts +9 -0
  27. package/index.js +9 -0
  28. package/layout/dashboard/Header.js +11 -7
  29. package/layout/dashboard/index.d.ts +3 -1
  30. package/layout/dashboard/index.js +5 -3
  31. package/modal/Modal.d.ts +8 -0
  32. package/modal/Modal.js +21 -0
  33. package/modal/index.d.ts +1 -9
  34. package/modal/index.js +1 -23
  35. package/navigation/Navigation.d.ts +5 -0
  36. package/navigation/Navigation.js +26 -0
  37. package/navigation/index.d.ts +1 -6
  38. package/navigation/index.js +1 -16
  39. package/package.json +3 -1
  40. package/shelf/Shelf.d.ts +4 -0
  41. package/shelf/Shelf.js +4 -0
  42. package/shelf/index.d.ts +1 -0
  43. package/shelf/index.js +1 -0
  44. package/text/LineBreaks.d.ts +4 -0
  45. package/text/LineBreaks.js +5 -0
  46. package/text/index.d.ts +1 -5
  47. package/text/index.js +1 -6
  48. package/util/colors.js +1 -1
  49. package/version.txt +1 -1
  50. package/header/index.d.ts +0 -1
  51. package/header/index.js +0 -1
  52. package/tailwind.config.js +0 -334
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare function Board({ children, options, }: {
3
+ children: React.ReactNode;
4
+ options: {
5
+ height?: number;
6
+ };
7
+ }): import("react/jsx-runtime").JSX.Element;
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,7 @@
1
+ /// <reference types="react" />
2
+ export declare function CanvasBoard({ children, options, }: {
3
+ children: React.ReactNode;
4
+ options?: {
5
+ height?: number;
6
+ };
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare function Header({ title, colors, childrens, }: {
3
+ title: string;
4
+ colors?: [string, string];
5
+ childrens?: React.ReactNode[];
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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
+ /// <reference types="react" />
2
+ export declare function ListBoard({ children, options, }: {
3
+ children: React.ReactNode;
4
+ options?: {
5
+ height?: number;
6
+ };
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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 declare function CanvasBoard({ children, options, }: {
4
- children: React.ReactNode;
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
- import { center, between } from "../util";
4
- function Header({ title, colors, childrens, }) {
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 declare function Card<T extends string | number>({ children, header, options, }: {
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?: number;
12
- width?: T;
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, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import "../globals.css";
3
- import { center, between } from "../util";
4
- function Header({ title, bgColor, childrens, }) {
5
- const headerClassNames = [
6
- center.row + between.row,
7
- `${bgColor || "bg-white-off"}`,
8
- "w-full h-12 px-12",
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
- return (_jsxs("div", { className: headerClassNames, children: [_jsx("div", { className: "text-xl font-bold", children: title }), _jsx("div", { className: "flex", children: childrens?.map((children) => children) })] }));
11
- }
12
- export function Card({ children, header, options, }) {
13
- const { height, width } = options ?? {};
14
- const classNames = [
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 (_jsxs("div", { className: classNames, children: [header ? _jsx(Header, { ...header }) : null, _jsx("div", { className: "h-full", children: children })] }));
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
+ }
@@ -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: 84 }, 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] : "" })] })] })] }) }));
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
@@ -1 +1,4 @@
1
1
  export * from "./ProfileCard";
2
+ export * from "./TrumpCard";
3
+ export * from "./ChartCard";
4
+ export * from "./TableCard";
package/card/index.js CHANGED
@@ -1 +1,4 @@
1
1
  export * from "./ProfileCard";
2
+ export * from "./TrumpCard";
3
+ export * from "./ChartCard";
4
+ export * from "./TableCard";
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
- /// <reference types="react" />
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
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
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
@@ -0,0 +1,9 @@
1
+ import "./globals.css";
2
+ export * from "./board";
3
+ export * from "./card";
4
+ export * from "./deck";
5
+ export * from "./layout";
6
+ export * from "./modal";
7
+ export * from "./navigation";
8
+ export * from "./shelf";
9
+ export * from "./text";
package/index.js ADDED
@@ -0,0 +1,9 @@
1
+ import "./globals.css";
2
+ export * from "./board";
3
+ export * from "./card";
4
+ export * from "./deck";
5
+ export * from "./layout";
6
+ export * from "./modal";
7
+ export * from "./navigation";
8
+ export * from "./shelf";
9
+ export * from "./text";
@@ -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 { circle } from "../../util";
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 (_jsxs("div", { className: "relative flex h-20 w-full items-center justify-between bg-white px-19 shadow-black/10 shadow-b-md", children: [_jsxs("div", { className: "flex h-12 items-center gap-9", children: [src && href ? (_jsx("a", { href: href, children: _jsx("img", { src: src, alt: "logo", className: "h-12" }) })) : (_jsx("div", { children: "TOSEL Lab" })), _jsx("div", { className: "text-3xl font-bold", children: title })] }), _jsxs("div", { className: "relative", children: [_jsx("button", { onClick: () => setIsOpen(!isOpen), className: circle(9) + "border-2", children: "+" }), isOpen ? _jsx(Menu, {}) : null] })] }));
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 classNames = [
12
- "absolute -left-24 z-40 h-80 w-48 border-2 bg-white ",
13
- ].join(" ");
14
- return (_jsxs("div", { className: classNames + " fade-in-100 animate-in", children: [_jsx("div", { children: "\u314E\u3147" }), _jsx("div", { children: "\u314E\u3147" })] }));
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
- export function DashboardLayout({ navigations, children, }) {
7
- return (_jsxs("div", { className: gradient.lab + "min-h-screen font-pretendard-medium", children: [_jsx(Header, { title: "dashboard", image: ["/images/tosel-blue-lab-spiral.png", "https://lab.tosel.co.kr"] }), _jsxs("div", { className: "flex gap-12 px-9 pt-16", children: [_jsx(NavigationContainer, { children: navigations.map((nav, index) => (_jsx(Fragment, { children: nav }, index))) }), children] })] }));
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
  }
@@ -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
- /// <reference types="react" />
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
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
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
+ }
@@ -1,6 +1 @@
1
- /// <reference types="react" />
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";
@@ -1,16 +1 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
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.5",
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
  },
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function Shelf({ children }: {
3
+ children: React.ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
package/shelf/Shelf.js ADDED
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function Shelf({ children }) {
3
+ return (_jsx("div", { className: "inline-flex flex-col gap-12 w-full xl:w-auto", children: children }));
4
+ }
@@ -0,0 +1 @@
1
+ export * from "./Shelf";
package/shelf/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./Shelf";
@@ -0,0 +1,4 @@
1
+ export declare function LineBreaks({ texts, gap }: {
2
+ texts: string[];
3
+ gap?: number;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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
@@ -1,5 +1 @@
1
- import "../globals.css";
2
- export declare function LineBreaks({ texts, gap }: {
3
- texts: string[];
4
- gap?: number;
5
- }): import("react/jsx-runtime").JSX.Element;
1
+ export * from "./LineBreaks";
package/text/index.js CHANGED
@@ -1,6 +1 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
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
@@ -6,5 +6,5 @@ export const colorsByLevel = {
6
6
  HJ: "hj-blue",
7
7
  };
8
8
  export const gradient = {
9
- lab: "bg-gradient-to-br from-violet-light/20 to-blue-sky/40 ",
9
+ lab: "gradient-to-br from-violet-light/20 to-blue-sky/40 ",
10
10
  };
package/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.5
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";
@@ -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
- };