@jbpark/ui-kit 1.1.3

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.
@@ -0,0 +1,235 @@
1
+ import { ChevronDown } from "lucide-react";
2
+ import { cn } from "@repo/ui/utils";
3
+ import { createElement, useEffect, useRef, useState } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { AnimatePresence, motion } from "motion/react";
6
+ import { Typography } from "@repo/ui";
7
+
8
+ //#region src/components/molecules/Menu/index.tsx
9
+ const MENU_CLASSNAMES = [
10
+ "p-0",
11
+ "bg-white",
12
+ "shadow-md",
13
+ "rounded-md"
14
+ ];
15
+ const OPEN_CLASSNAMES = ["underline", "underline-offset-8"];
16
+ const HOVER_CLASSNAMES = ["hover:underline", "hover:underline-offset-8"];
17
+ const OFFSET = [8, 8];
18
+ const INLINE_OFFSET = 16;
19
+ function findKey(menu, targetKeys) {
20
+ if (targetKeys.includes(menu.key)) return true;
21
+ if (menu.children && Array.isArray(menu.children)) {
22
+ for (const child of menu.children) if (findKey(child, targetKeys)) return true;
23
+ }
24
+ return false;
25
+ }
26
+ const Label = ({ children, level = 4, className, ...props }) => {
27
+ if (typeof children === "string") return /* @__PURE__ */ jsx(Typography.Text, {
28
+ level,
29
+ className: cn(className),
30
+ ...props,
31
+ children
32
+ });
33
+ return children;
34
+ };
35
+ const Item = ({ itemKey = "", keyPath = [], root = false, mode, label, children, selectedKeys = [], fullSize, classNames, styles, offset = OFFSET, inlineOffset = INLINE_OFFSET, onClick, ...props }) => {
36
+ const [open, setOpen] = useState(false);
37
+ const [position, setPosition] = useState({
38
+ top: 0,
39
+ left: 0
40
+ });
41
+ const itemRef = useRef(null);
42
+ const isHorizontal = mode === "horizontal";
43
+ const isInline = mode === "inline";
44
+ const [left, top] = offset;
45
+ const item = {
46
+ ...props,
47
+ label,
48
+ key: itemKey,
49
+ children
50
+ };
51
+ const itemClassNames = cn("px-4 py-2", "cursor-pointer", "whitespace-nowrap", root && isHorizontal ? "inline-flex" : "flex", ...root ? [
52
+ "h-full",
53
+ "rounded-none border-transparent",
54
+ !!children?.length && "hover:border-current",
55
+ isHorizontal ? "border-b-2" : "border-r-2",
56
+ isInline && "border-none",
57
+ classNames?.rootItem
58
+ ] : [
59
+ "rounded-md",
60
+ ...HOVER_CLASSNAMES,
61
+ classNames?.item
62
+ ]);
63
+ const childrenContainerClassNames = cn(isInline ? "relative overflow-hidden" : "absolute min-w-[200px]", !isInline && root && isHorizontal ? "left-0 top-full pt-2 pl-0" : !isInline ? "left-full top-0 pl-2 pt-0" : "pl-4", ...fullSize ? [
64
+ ...MENU_CLASSNAMES,
65
+ "fixed flex justify-center items-start",
66
+ isHorizontal ? "inset-x-0 w-screen" : "inset-y-0 h-screen"
67
+ ] : []);
68
+ const childrenContainerStyle = fullSize ? isHorizontal ? {
69
+ top: position.top,
70
+ marginTop: top
71
+ } : {
72
+ left: position.left,
73
+ marginLeft: left
74
+ } : isInline ? { paddingLeft: inlineOffset } : root && isHorizontal ? { paddingTop: top } : { paddingLeft: left };
75
+ useEffect(() => {
76
+ if (!itemRef.current) return;
77
+ const $item = itemRef.current;
78
+ const onResize = () => {
79
+ setPosition({
80
+ top: $item.offsetTop + $item.offsetHeight,
81
+ left: $item.offsetLeft + $item.offsetWidth
82
+ });
83
+ };
84
+ onResize();
85
+ window.addEventListener("resize", onResize);
86
+ return () => window.removeEventListener("resize", onResize);
87
+ }, []);
88
+ if (!root && fullSize) return /* @__PURE__ */ jsxs("li", {
89
+ className: cn("basis-1/6", "min-w-[180px]"),
90
+ children: [/* @__PURE__ */ jsx("div", {
91
+ className: cn(itemClassNames, "justify-center"),
92
+ onClick: (e) => {
93
+ e.stopPropagation();
94
+ onClick?.({
95
+ domEvent: e,
96
+ key: itemKey,
97
+ keyPath,
98
+ item
99
+ });
100
+ },
101
+ children: /* @__PURE__ */ jsx(Label, {
102
+ className: "font-semibold",
103
+ children: label
104
+ })
105
+ }), /* @__PURE__ */ jsx("ul", { children: children?.map((child) => /* @__PURE__ */ jsx("li", {
106
+ className: cn(itemClassNames, "justify-center", ...findKey(child, selectedKeys) ? [...OPEN_CLASSNAMES, ...HOVER_CLASSNAMES] : []),
107
+ onClick: (e) => {
108
+ e.stopPropagation();
109
+ onClick?.({
110
+ domEvent: e,
111
+ key: child.key,
112
+ keyPath: [...keyPath, child.key],
113
+ item: child
114
+ });
115
+ },
116
+ children: /* @__PURE__ */ jsx(Label, {
117
+ level: 5,
118
+ className: "text-center text-wrap",
119
+ children: child.label
120
+ })
121
+ }, child.key)) })]
122
+ });
123
+ return /* @__PURE__ */ jsxs("li", {
124
+ ref: itemRef,
125
+ className: cn("group", "relative", root && isHorizontal ? "inline-block" : "block"),
126
+ onMouseEnter: () => {
127
+ if (isInline) return;
128
+ setOpen(true);
129
+ },
130
+ onMouseLeave: () => {
131
+ if (isInline) return;
132
+ setOpen(false);
133
+ },
134
+ children: [/* @__PURE__ */ jsx("div", {
135
+ className: cn(itemClassNames, ...findKey(item, selectedKeys) ? root ? ["border-current"] : [...OPEN_CLASSNAMES, ...HOVER_CLASSNAMES] : root && !!children?.length ? ["group-hover:border-current"] : []),
136
+ style: root ? styles?.rootItem : styles?.item,
137
+ onClick: (e) => {
138
+ e.stopPropagation();
139
+ if (isInline) setOpen(!open);
140
+ onClick?.({
141
+ domEvent: e,
142
+ key: itemKey,
143
+ keyPath,
144
+ item
145
+ });
146
+ },
147
+ children: /* @__PURE__ */ jsxs("div", {
148
+ className: cn("w-full", "inline-flex items-center justify-between"),
149
+ children: [
150
+ /* @__PURE__ */ jsx(Label, {
151
+ className: cn(classNames?.label, root && classNames?.rootItem, ...findKey(item, selectedKeys) ? root ? [] : [...OPEN_CLASSNAMES, ...HOVER_CLASSNAMES] : []),
152
+ style: styles?.label,
153
+ children: label
154
+ }),
155
+ !root && !isInline && !!children?.length && /* @__PURE__ */ jsx(ChevronDown, { className: cn("-rotate-90") }),
156
+ isInline && !!children?.length && /* @__PURE__ */ jsx(ChevronDown, { className: cn("transition-all", open ? "-rotate-180" : "rotate-0") })
157
+ ]
158
+ })
159
+ }), /* @__PURE__ */ jsx(AnimatePresence, { children: !!children?.length && open && /* @__PURE__ */ jsx(motion.div, {
160
+ className: cn(childrenContainerClassNames),
161
+ style: childrenContainerStyle,
162
+ initial: isInline ? {
163
+ height: 0,
164
+ opacity: 0
165
+ } : { opacity: 0 },
166
+ animate: isInline ? {
167
+ height: "auto",
168
+ opacity: 1
169
+ } : { opacity: 1 },
170
+ exit: isInline ? {
171
+ height: 0,
172
+ opacity: 0
173
+ } : { opacity: 0 },
174
+ transition: { duration: .2 },
175
+ children: /* @__PURE__ */ jsx("ul", {
176
+ className: cn(fullSize ? [
177
+ "h-auto",
178
+ "flex flex-nowrap gap-y-4",
179
+ "p-8"
180
+ ] : MENU_CLASSNAMES, isInline && "shadow-none", classNames?.subMenu),
181
+ style: styles?.subMenu,
182
+ children: children.map((child) => /* @__PURE__ */ createElement(Item, {
183
+ ...child,
184
+ key: child.key,
185
+ itemKey: child.key,
186
+ keyPath: [...keyPath, child.key],
187
+ mode,
188
+ selectedKeys,
189
+ fullSize,
190
+ classNames,
191
+ styles,
192
+ offset,
193
+ inlineOffset,
194
+ onClick
195
+ }))
196
+ })
197
+ }) })]
198
+ });
199
+ };
200
+ const Menu = ({ items, mode = "vertical", fullSize = false, defaultSelectedKeys: _defaultSelectedKeys = [], selectedKeys: _selectedKeys = [], className, classNames, styles, offset, inlineOffset, onClick = () => {}, ...props }) => {
201
+ const [selectedKeys, setSelectedKeys] = useState(_defaultSelectedKeys);
202
+ useEffect(() => {
203
+ if (!_defaultSelectedKeys.length) return;
204
+ setSelectedKeys(_defaultSelectedKeys);
205
+ return () => setSelectedKeys([]);
206
+ }, [_defaultSelectedKeys]);
207
+ useEffect(() => {
208
+ if (!_selectedKeys.length) return;
209
+ setSelectedKeys(_selectedKeys);
210
+ return () => setSelectedKeys([]);
211
+ }, [_selectedKeys]);
212
+ return /* @__PURE__ */ jsx("ul", {
213
+ className: cn(MENU_CLASSNAMES, mode === "horizontal" ? "flex" : "inline-block", className),
214
+ ...props,
215
+ children: items?.map((item) => /* @__PURE__ */ createElement(Item, {
216
+ root: true,
217
+ ...item,
218
+ key: item.key,
219
+ itemKey: item.key,
220
+ keyPath: [item.key],
221
+ selectedKeys,
222
+ mode,
223
+ fullSize,
224
+ classNames,
225
+ styles,
226
+ offset,
227
+ inlineOffset,
228
+ onClick
229
+ }))
230
+ });
231
+ };
232
+ var Menu_default = Menu;
233
+
234
+ //#endregion
235
+ export { findKey as n, Menu_default as t };
@@ -0,0 +1,2 @@
1
+ import { a as findKey, i as MenuProps, n as Menu, r as MenuItem, t as ClickEventHandler } from "./index-Bis4UfFa.mjs";
2
+ export { ClickEventHandler, MenuItem, MenuProps, Menu as default, findKey };
package/dist/Menu.mjs ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+
3
+ import { n as findKey, t as Menu_default } from "./Menu-Du6xCBZw.mjs";
4
+
5
+ export { Menu_default as default, findKey };
@@ -0,0 +1,89 @@
1
+ import { cn } from "@repo/ui/utils";
2
+ import { Children } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { motion } from "motion/react";
5
+
6
+ //#region src/components/molecules/Reveals/Item/index.tsx
7
+ const effectVariants = {
8
+ fadeIn: {
9
+ offscreen: { opacity: 0 },
10
+ onscreen: { opacity: 1 }
11
+ },
12
+ fadeInUp: {
13
+ offscreen: {
14
+ opacity: 0,
15
+ y: 50
16
+ },
17
+ onscreen: {
18
+ opacity: 1,
19
+ y: 0
20
+ }
21
+ },
22
+ slideInUp: {
23
+ offscreen: {
24
+ opacity: 1,
25
+ y: 50
26
+ },
27
+ onscreen: {
28
+ opacity: 1,
29
+ y: 0
30
+ }
31
+ }
32
+ };
33
+ const Item = ({ effect = "fadeInUp", children, once, viewport, variants, duration, delay, transition, className, ...props }) => {
34
+ return /* @__PURE__ */ jsx(motion.div, {
35
+ initial: "offscreen",
36
+ whileInView: "onscreen",
37
+ viewport: {
38
+ once,
39
+ ...viewport
40
+ },
41
+ variants: {
42
+ offscreen: {
43
+ ...effectVariants[effect].offscreen,
44
+ ...variants?.offscreen,
45
+ transition: { duration: 0 }
46
+ },
47
+ onscreen: {
48
+ ...effectVariants[effect].onscreen,
49
+ ...variants?.onscreen,
50
+ transition: {
51
+ duration,
52
+ ease: "easeOut",
53
+ delay,
54
+ ...transition
55
+ }
56
+ }
57
+ },
58
+ className: cn("flex h-full items-center justify-center", className),
59
+ ...props,
60
+ children
61
+ });
62
+ };
63
+ var Item_default = Item;
64
+
65
+ //#endregion
66
+ //#region src/components/molecules/Reveals/index.tsx
67
+ const DURATION = .6;
68
+ const DELAY = 0;
69
+ const CASCADE = .1;
70
+ const Reveals = ({ children, className, classNames, items = [], cascade = CASCADE, duration = DURATION, delay = DELAY, ...props }) => {
71
+ const renderItems = (items$1) => items$1.map((item, index) => /* @__PURE__ */ jsx(Item_default, {
72
+ duration,
73
+ delay: delay + cascade * index,
74
+ className: cn(item.className, classNames?.item),
75
+ ...props,
76
+ ...item,
77
+ children: item.children
78
+ }, index));
79
+ return /* @__PURE__ */ jsx("div", {
80
+ className: cn("flex gap-5", className, classNames?.root),
81
+ ...props,
82
+ children: renderItems(children ? Children.toArray(children).map((child) => ({ children: child })) : items)
83
+ });
84
+ };
85
+ Reveals.Item = Item_default;
86
+ var Reveals_default = Reveals;
87
+
88
+ //#endregion
89
+ export { Item_default as a, Reveals_default as i, DELAY as n, DURATION as r, CASCADE as t };
@@ -0,0 +1,2 @@
1
+ import { a as Reveals, i as Props, n as DELAY, o as Item, r as DURATION, s as ItemProps, t as CASCADE } from "./index-BkkNNoK0.mjs";
2
+ export { CASCADE, DELAY, DURATION, Item, ItemProps, Props as RevealsProps, Reveals as default };
@@ -0,0 +1,3 @@
1
+ import { a as Item_default, i as Reveals_default, n as DELAY, r as DURATION, t as CASCADE } from "./Reveals-BC-bFyOg.mjs";
2
+
3
+ export { CASCADE, DELAY, DURATION, Item_default as Item, Reveals_default as default };
@@ -0,0 +1,72 @@
1
+ import { cn } from "@repo/ui/utils";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { TEXT_LEVELS } from "@repo/ui/enums";
4
+
5
+ //#region src/components/atoms/Typography/Link/index.tsx
6
+ const Link = ({ children, className, level, ...props }) => {
7
+ return /* @__PURE__ */ jsx("a", {
8
+ className: cn("underline-offset-1 hover:underline", level ? TEXT_LEVELS[level] : "", className),
9
+ ...props,
10
+ children
11
+ });
12
+ };
13
+ var Link_default = Link;
14
+
15
+ //#endregion
16
+ //#region src/components/atoms/Typography/Paragraph/index.tsx
17
+ const Paragraph = ({ children, className, level, ...props }) => {
18
+ return /* @__PURE__ */ jsx("p", {
19
+ ...props,
20
+ className: cn(level ? TEXT_LEVELS[level] : "", className),
21
+ children
22
+ });
23
+ };
24
+ var Paragraph_default = Paragraph;
25
+
26
+ //#endregion
27
+ //#region src/components/atoms/Typography/Text/index.tsx
28
+ const Text = ({ children, underline, strong, className, level, ...props }) => {
29
+ return /* @__PURE__ */ jsx("span", {
30
+ className: cn("text-nowrap", level ? TEXT_LEVELS[level] : "", underline && "underline", strong && "font-bold", className),
31
+ ...props,
32
+ children
33
+ });
34
+ };
35
+ var Text_default = Text;
36
+
37
+ //#endregion
38
+ //#region src/components/atoms/Typography/Title/index.tsx
39
+ const styles = {
40
+ h1: "text-6xl",
41
+ h2: "text-5xl",
42
+ h3: "text-4xl",
43
+ h4: "text-3xl",
44
+ h5: "text-2xl",
45
+ h6: "text-xl"
46
+ };
47
+ const Title = ({ children, level = 1, className, ...props }) => {
48
+ const Element = level < 1 || level > 6 ? "h1" : `h${level}`;
49
+ return /* @__PURE__ */ jsx(Element, {
50
+ className: cn("leading-snug font-bold", styles[Element], className),
51
+ ...props,
52
+ children
53
+ });
54
+ };
55
+ var Title_default = Title;
56
+
57
+ //#endregion
58
+ //#region src/components/atoms/Typography/index.tsx
59
+ const Typography = ({ children, ...props }) => {
60
+ return /* @__PURE__ */ jsx("article", {
61
+ ...props,
62
+ children
63
+ });
64
+ };
65
+ Typography.Link = Link_default;
66
+ Typography.Paragraph = Paragraph_default;
67
+ Typography.Text = Text_default;
68
+ Typography.Title = Title_default;
69
+ var Typography_default = Typography;
70
+
71
+ //#endregion
72
+ export { Link_default as a, Paragraph_default as i, Title_default as n, Text_default as r, Typography_default as t };
@@ -0,0 +1,2 @@
1
+ import { a as Paragraph, i as Text, n as TypographyProps, o as Link, r as Title, t as Typography } from "./index-03IpZ7BA.mjs";
2
+ export { Link, Paragraph, Text, Title, TypographyProps, Typography as default };
@@ -0,0 +1,3 @@
1
+ import { a as Link_default, i as Paragraph_default, n as Title_default, r as Text_default, t as Typography_default } from "./Typography-waEo2g0S.mjs";
2
+
3
+ export { Link_default as Link, Paragraph_default as Paragraph, Text_default as Text, Title_default as Title, Typography_default as default };
@@ -0,0 +1,4 @@
1
+ //#region src/lib/enums/index.d.ts
2
+ declare const TEXT_LEVELS: Record<string, string>;
3
+ //#endregion
4
+ export { TEXT_LEVELS };
package/dist/enums.mjs ADDED
@@ -0,0 +1,12 @@
1
+ //#region src/lib/enums/index.ts
2
+ const TEXT_LEVELS = {
3
+ 1: "text-2xl",
4
+ 2: "text-xl",
5
+ 3: "text-lg",
6
+ 4: "text-base",
7
+ 5: "text-sm",
8
+ 6: "text-xs"
9
+ };
10
+
11
+ //#endregion
12
+ export { TEXT_LEVELS };
@@ -0,0 +1,83 @@
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
+
3
+ //#region src/components/atoms/Typography/Link/index.d.ts
4
+ interface Props$3 extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
5
+ level?: TypographyProps['level'];
6
+ }
7
+ declare const Link: ({
8
+ children,
9
+ className,
10
+ level,
11
+ ...props
12
+ }: Props$3) => react_jsx_runtime8.JSX.Element;
13
+ //#endregion
14
+ //#region src/components/atoms/Typography/Paragraph/index.d.ts
15
+ interface Props$2 extends TypographyProps {}
16
+ declare const Paragraph: ({
17
+ children,
18
+ className,
19
+ level,
20
+ ...props
21
+ }: Props$2) => react_jsx_runtime8.JSX.Element;
22
+ //#endregion
23
+ //#region src/components/atoms/Typography/Text/index.d.ts
24
+ interface Props$1 extends TypographyProps {
25
+ underline?: boolean;
26
+ strong?: boolean;
27
+ }
28
+ declare const Text: ({
29
+ children,
30
+ underline,
31
+ strong,
32
+ className,
33
+ level,
34
+ ...props
35
+ }: Props$1) => react_jsx_runtime8.JSX.Element;
36
+ //#endregion
37
+ //#region src/components/atoms/Typography/Title/index.d.ts
38
+ interface Props extends TypographyProps {}
39
+ declare const Title: ({
40
+ children,
41
+ level,
42
+ className,
43
+ ...props
44
+ }: Props) => react_jsx_runtime8.JSX.Element;
45
+ //#endregion
46
+ //#region src/components/atoms/Typography/index.d.ts
47
+ interface TypographyProps extends React.HTMLAttributes<HTMLElement> {
48
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
49
+ }
50
+ declare const Typography: {
51
+ ({
52
+ children,
53
+ ...props
54
+ }: TypographyProps): react_jsx_runtime8.JSX.Element;
55
+ Link: ({
56
+ children,
57
+ className,
58
+ level,
59
+ ...props
60
+ }: Props$3) => react_jsx_runtime8.JSX.Element;
61
+ Paragraph: ({
62
+ children,
63
+ className,
64
+ level,
65
+ ...props
66
+ }: Props$2) => react_jsx_runtime8.JSX.Element;
67
+ Text: ({
68
+ children,
69
+ underline,
70
+ strong,
71
+ className,
72
+ level,
73
+ ...props
74
+ }: Props$1) => react_jsx_runtime8.JSX.Element;
75
+ Title: ({
76
+ children,
77
+ level,
78
+ className,
79
+ ...props
80
+ }: Props) => react_jsx_runtime8.JSX.Element;
81
+ };
82
+ //#endregion
83
+ export { Paragraph as a, Text as i, TypographyProps as n, Link as o, Title as r, Typography as t };
@@ -0,0 +1,59 @@
1
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
2
+
3
+ //#region src/components/molecules/Menu/index.d.ts
4
+ interface MenuItem {
5
+ label: React.ReactNode;
6
+ key: React.Key;
7
+ type?: string;
8
+ itemKey?: React.Key;
9
+ keyPath?: React.Key[];
10
+ path?: string;
11
+ children?: MenuItem[];
12
+ }
13
+ interface Props {
14
+ fullSize?: boolean;
15
+ mode?: 'horizontal' | 'vertical' | 'inline';
16
+ selectedKeys?: React.Key[];
17
+ defaultSelectedKeys?: React.Key[];
18
+ offset?: [number, number];
19
+ inlineOffset?: number;
20
+ classNames?: {
21
+ rootItem?: string;
22
+ subMenu?: string;
23
+ item?: string;
24
+ label?: string;
25
+ };
26
+ styles?: {
27
+ rootItem?: React.CSSProperties;
28
+ subMenu?: React.CSSProperties;
29
+ item?: React.CSSProperties;
30
+ label?: React.CSSProperties;
31
+ };
32
+ onClick?: ClickEventHandler;
33
+ }
34
+ interface MenuProps extends Props, Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
35
+ items?: MenuItem[];
36
+ }
37
+ type ClickEventHandler = (params: {
38
+ domEvent: React.MouseEvent;
39
+ key: React.Key;
40
+ keyPath: React.Key[];
41
+ item: MenuItem;
42
+ }) => void;
43
+ declare function findKey(menu: MenuItem, targetKeys: React.Key[]): boolean;
44
+ declare const Menu: ({
45
+ items,
46
+ mode,
47
+ fullSize,
48
+ defaultSelectedKeys: _defaultSelectedKeys,
49
+ selectedKeys: _selectedKeys,
50
+ className,
51
+ classNames,
52
+ styles,
53
+ offset,
54
+ inlineOffset,
55
+ onClick,
56
+ ...props
57
+ }: MenuProps) => react_jsx_runtime6.JSX.Element;
58
+ //#endregion
59
+ export { findKey as a, MenuProps as i, Menu as n, MenuItem as r, ClickEventHandler as t };
@@ -0,0 +1,97 @@
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
2
+ import { MotionProps } from "motion/react";
3
+
4
+ //#region src/components/molecules/Reveals/Item/index.d.ts
5
+ declare const effectVariants: {
6
+ fadeIn: {
7
+ offscreen: {
8
+ opacity: number;
9
+ };
10
+ onscreen: {
11
+ opacity: number;
12
+ };
13
+ };
14
+ fadeInUp: {
15
+ offscreen: {
16
+ opacity: number;
17
+ y: number;
18
+ };
19
+ onscreen: {
20
+ opacity: number;
21
+ y: number;
22
+ };
23
+ };
24
+ slideInUp: {
25
+ offscreen: {
26
+ opacity: number;
27
+ y: number;
28
+ };
29
+ onscreen: {
30
+ opacity: number;
31
+ y: number;
32
+ };
33
+ };
34
+ };
35
+ interface ItemProps {
36
+ effect?: keyof typeof effectVariants;
37
+ delay?: number;
38
+ once?: boolean;
39
+ duration?: number;
40
+ className?: string;
41
+ children?: React.ReactNode;
42
+ viewport?: MotionProps['viewport'];
43
+ variants?: MotionProps['variants'];
44
+ transition?: MotionProps['transition'];
45
+ }
46
+ declare const Item: ({
47
+ effect,
48
+ children,
49
+ once,
50
+ viewport,
51
+ variants,
52
+ duration,
53
+ delay,
54
+ transition,
55
+ className,
56
+ ...props
57
+ }: ItemProps) => react_jsx_runtime11.JSX.Element;
58
+ //#endregion
59
+ //#region src/components/molecules/Reveals/index.d.ts
60
+ interface Props extends React.HTMLAttributes<HTMLDivElement>, ItemProps {
61
+ cascade?: number;
62
+ classNames?: {
63
+ root?: string;
64
+ item?: string;
65
+ };
66
+ once?: boolean;
67
+ items?: ItemProps[];
68
+ }
69
+ declare const DURATION = 0.6;
70
+ declare const DELAY = 0;
71
+ declare const CASCADE = 0.1;
72
+ declare const Reveals: {
73
+ ({
74
+ children,
75
+ className,
76
+ classNames,
77
+ items,
78
+ cascade,
79
+ duration,
80
+ delay,
81
+ ...props
82
+ }: Props): react_jsx_runtime11.JSX.Element;
83
+ Item: ({
84
+ effect,
85
+ children,
86
+ once,
87
+ viewport,
88
+ variants,
89
+ duration,
90
+ delay,
91
+ transition,
92
+ className,
93
+ ...props
94
+ }: ItemProps) => react_jsx_runtime11.JSX.Element;
95
+ };
96
+ //#endregion
97
+ export { Reveals as a, Props as i, DELAY as n, Item as o, DURATION as r, ItemProps as s, CASCADE as t };