@xanui/core 1.3.11 → 1.3.13
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/AppRoot/AppRootProvider.cjs.map +1 -1
- package/AppRoot/AppRootProvider.js.map +1 -1
- package/AppRoot/Renderar.cjs.map +1 -1
- package/AppRoot/Renderar.js.map +1 -1
- package/AppRoot/index.cjs +2 -2
- package/AppRoot/index.cjs.map +1 -1
- package/AppRoot/index.js +2 -2
- package/AppRoot/index.js.map +1 -1
- package/Document/index.cjs.map +1 -1
- package/Document/index.js.map +1 -1
- package/Iframe/index.cjs.map +1 -1
- package/Iframe/index.js.map +1 -1
- package/Portal/index.cjs.map +1 -1
- package/Portal/index.js.map +1 -1
- package/Tag/ServerStyleTag.cjs.map +1 -1
- package/Tag/ServerStyleTag.js.map +1 -1
- package/Tag/cssPropList.cjs.map +1 -1
- package/Tag/cssPropList.js.map +1 -1
- package/Tag/index.cjs.map +1 -1
- package/Tag/index.js.map +1 -1
- package/Tag/useTagProps.cjs.map +1 -1
- package/Tag/useTagProps.js.map +1 -1
- package/Transition/index.cjs.map +1 -1
- package/Transition/index.js.map +1 -1
- package/Transition/variants.cjs.map +1 -1
- package/Transition/variants.js.map +1 -1
- package/animate/easing.cjs.map +1 -1
- package/animate/easing.js.map +1 -1
- package/animate/index.cjs.map +1 -1
- package/animate/index.js.map +1 -1
- package/breakpoint/BreakpointProvider.cjs.map +1 -1
- package/breakpoint/BreakpointProvider.js.map +1 -1
- package/breakpoint/useBreakpoint.cjs.map +1 -1
- package/breakpoint/useBreakpoint.js.map +1 -1
- package/breakpoint/useBreakpointProps.cjs.map +1 -1
- package/breakpoint/useBreakpointProps.js.map +1 -1
- package/cookie.cjs.map +1 -1
- package/cookie.js.map +1 -1
- package/css/CSSCacheProvider.cjs.map +1 -1
- package/css/CSSCacheProvider.js.map +1 -1
- package/css/aliases.cjs.map +1 -1
- package/css/aliases.js.map +1 -1
- package/css/getProps.cjs +1 -1
- package/css/getProps.cjs.map +1 -1
- package/css/getProps.js +1 -1
- package/css/getProps.js.map +1 -1
- package/css/getValue.cjs +7 -7
- package/css/getValue.cjs.map +1 -1
- package/css/getValue.js +7 -7
- package/css/getValue.js.map +1 -1
- package/css/index.cjs.map +1 -1
- package/css/index.js.map +1 -1
- package/hooks/useColorTemplate.cjs +10 -10
- package/hooks/useColorTemplate.cjs.map +1 -1
- package/hooks/useColorTemplate.js +10 -10
- package/hooks/useColorTemplate.js.map +1 -1
- package/hooks/useInView.cjs +32 -0
- package/hooks/useInView.cjs.map +1 -0
- package/hooks/useInView.d.ts +15 -0
- package/hooks/useInView.js +30 -0
- package/hooks/useInView.js.map +1 -0
- package/hooks/useInterface.cjs.map +1 -1
- package/hooks/useInterface.js.map +1 -1
- package/hooks/useMergeRefs.cjs.map +1 -1
- package/hooks/useMergeRefs.js.map +1 -1
- package/hooks/useTransition.cjs.map +1 -1
- package/hooks/useTransition.js.map +1 -1
- package/hooks/useTransitionGroup.cjs.map +1 -1
- package/hooks/useTransitionGroup.js.map +1 -1
- package/index.cjs +2 -0
- package/index.cjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +109 -109
- package/theme/ThemeCssVars.cjs +4 -4
- package/theme/ThemeCssVars.cjs.map +1 -1
- package/theme/ThemeCssVars.js +4 -4
- package/theme/ThemeCssVars.js.map +1 -1
- package/theme/ThemeDefaultOptions.cjs +2 -2
- package/theme/ThemeDefaultOptions.cjs.map +1 -1
- package/theme/ThemeDefaultOptions.js +2 -2
- package/theme/ThemeDefaultOptions.js.map +1 -1
- package/theme/ThemeProvider.cjs +5 -5
- package/theme/ThemeProvider.cjs.map +1 -1
- package/theme/ThemeProvider.js +5 -5
- package/theme/ThemeProvider.js.map +1 -1
- package/theme/core.cjs +4 -4
- package/theme/core.cjs.map +1 -1
- package/theme/core.js +4 -4
- package/theme/core.js.map +1 -1
- package/theme/index.cjs.map +1 -1
- package/theme/index.js.map +1 -1
- package/theme/oklch.cjs +89 -89
- package/theme/oklch.cjs.map +1 -1
- package/theme/oklch.js +89 -89
- package/theme/oklch.js.map +1 -1
- package/theme/types.d.ts +2 -2
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
const useColorTemplate = (color, type) => {
|
|
5
|
-
const is_def = color === "
|
|
5
|
+
const is_def = color === "default";
|
|
6
6
|
if (type === "outline") {
|
|
7
7
|
return {
|
|
8
8
|
main: {
|
|
9
9
|
bgcolor: `transparent`,
|
|
10
|
-
color: is_def ? `
|
|
10
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
11
11
|
border: "1px solid",
|
|
12
12
|
borderColor: `${color}.divider`,
|
|
13
13
|
},
|
|
14
14
|
hover: {
|
|
15
15
|
bgcolor: `transparent`,
|
|
16
|
-
color: is_def ? `
|
|
16
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
17
17
|
border: "1px solid",
|
|
18
|
-
borderColor: is_def ? "
|
|
18
|
+
borderColor: is_def ? "default.muted" : `${color}.base`,
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
else if (type === "fill") {
|
|
23
23
|
return {
|
|
24
24
|
main: {
|
|
25
|
-
bgcolor: is_def ? `
|
|
25
|
+
bgcolor: is_def ? `default.base` : `${color}`,
|
|
26
26
|
color: `${color}.contrast`,
|
|
27
27
|
border: 0,
|
|
28
28
|
borderColor: 'transparent',
|
|
29
29
|
},
|
|
30
30
|
hover: {
|
|
31
|
-
bgcolor: is_def ? `
|
|
31
|
+
bgcolor: is_def ? `default.elevated` : `${color}.surface`,
|
|
32
32
|
color: `${color}.contrast`,
|
|
33
33
|
border: 0,
|
|
34
34
|
borderColor: 'transparent',
|
|
@@ -39,13 +39,13 @@ const useColorTemplate = (color, type) => {
|
|
|
39
39
|
return {
|
|
40
40
|
main: {
|
|
41
41
|
bgcolor: "transparent",
|
|
42
|
-
color: is_def ? `
|
|
42
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
43
43
|
border: 0,
|
|
44
44
|
borderColor: `transparent`,
|
|
45
45
|
},
|
|
46
46
|
hover: {
|
|
47
47
|
bgcolor: "transparent",
|
|
48
|
-
color: is_def ? `
|
|
48
|
+
color: is_def ? `default.contrast` : `${color}.surface`,
|
|
49
49
|
border: 0,
|
|
50
50
|
borderColor: `transparent`,
|
|
51
51
|
}
|
|
@@ -55,13 +55,13 @@ const useColorTemplate = (color, type) => {
|
|
|
55
55
|
return {
|
|
56
56
|
main: {
|
|
57
57
|
bgcolor: `${color}.ghost`,
|
|
58
|
-
color: is_def ? `
|
|
58
|
+
color: is_def ? `default.contrast` : color,
|
|
59
59
|
border: 0,
|
|
60
60
|
borderColor: `transparent`,
|
|
61
61
|
},
|
|
62
62
|
hover: {
|
|
63
63
|
bgcolor: `${color}.ghost`,
|
|
64
|
-
color: is_def ? `
|
|
64
|
+
color: is_def ? `default.contrast` : `${color}.surface`,
|
|
65
65
|
border: 0,
|
|
66
66
|
borderColor: `transparent`,
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColorTemplate.cjs","sources":["../../src/hooks/useColorTemplate.ts"],"sourcesContent":["\"use client\";\n\nimport { ThemeColorKeys } from \"../theme/types\";\n\nexport type UseColorTemplateType = \"fill\" | \"outline\" | \"text\" | \"ghost\"\nexport type UseColorTemplateColor = ThemeColorKeys\n\nconst useColorTemplate = (color: UseColorTemplateColor, type: UseColorTemplateType) => {\n const is_def = color === \"
|
|
1
|
+
{"version":3,"file":"useColorTemplate.cjs","sources":["../../src/hooks/useColorTemplate.ts"],"sourcesContent":["\"use client\";\r\n\r\nimport { ThemeColorKeys } from \"../theme/types\";\r\n\r\nexport type UseColorTemplateType = \"fill\" | \"outline\" | \"text\" | \"ghost\"\r\nexport type UseColorTemplateColor = ThemeColorKeys\r\n\r\nconst useColorTemplate = (color: UseColorTemplateColor, type: UseColorTemplateType) => {\r\n const is_def = color === \"default\";\r\n\r\n if (type === \"outline\") {\r\n return {\r\n main: {\r\n bgcolor: `transparent`,\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: \"1px solid\",\r\n borderColor: `${color}.divider`,\r\n },\r\n hover: {\r\n bgcolor: `transparent`,\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: \"1px solid\",\r\n borderColor: is_def ? \"default.muted\" : `${color}.base`,\r\n }\r\n }\r\n } else if (type === \"fill\") {\r\n return {\r\n main: {\r\n bgcolor: is_def ? `default.base` : `${color}`,\r\n color: `${color}.contrast`,\r\n border: 0,\r\n borderColor: 'transparent',\r\n },\r\n hover: {\r\n bgcolor: is_def ? `default.elevated` : `${color}.surface`,\r\n color: `${color}.contrast`,\r\n border: 0,\r\n borderColor: 'transparent',\r\n }\r\n }\r\n } else if (type === \"text\") {\r\n return {\r\n main: {\r\n bgcolor: \"transparent\",\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n },\r\n hover: {\r\n bgcolor: \"transparent\",\r\n color: is_def ? `default.contrast` : `${color}.surface`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n }\r\n }\r\n } else if (type === \"ghost\") {\r\n return {\r\n main: {\r\n bgcolor: `${color}.ghost`,\r\n color: is_def ? `default.contrast` : color,\r\n border: 0,\r\n borderColor: `transparent`,\r\n },\r\n hover: {\r\n bgcolor: `${color}.ghost`,\r\n color: is_def ? `default.contrast` : `${color}.surface`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n }\r\n }\r\n }\r\n\r\n throw new Error(`useColorTemplate: Unknown type ${type}`);\r\n}\r\n\r\nexport default useColorTemplate"],"names":[],"mappings":";;;AAOA;AACI;AAEA;;AAEQ;AACI;;AAEA;;AAEH;AACD;AACI;;AAEA;;AAEH;;;AAEF;;AAEC;;;AAGI;AACA;AACH;AACD;;;AAGI;AACA;AACH;;;AAEF;;AAEC;AACI;;AAEA;AACA;AACH;AACD;AACI;;AAEA;AACA;AACH;;;AAEF;;AAEC;;;AAGI;AACA;AACH;AACD;;;AAGI;AACA;AACH;;;AAIT;AACJ;;"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
const useColorTemplate = (color, type) => {
|
|
3
|
-
const is_def = color === "
|
|
3
|
+
const is_def = color === "default";
|
|
4
4
|
if (type === "outline") {
|
|
5
5
|
return {
|
|
6
6
|
main: {
|
|
7
7
|
bgcolor: `transparent`,
|
|
8
|
-
color: is_def ? `
|
|
8
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
9
9
|
border: "1px solid",
|
|
10
10
|
borderColor: `${color}.divider`,
|
|
11
11
|
},
|
|
12
12
|
hover: {
|
|
13
13
|
bgcolor: `transparent`,
|
|
14
|
-
color: is_def ? `
|
|
14
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
15
15
|
border: "1px solid",
|
|
16
|
-
borderColor: is_def ? "
|
|
16
|
+
borderColor: is_def ? "default.muted" : `${color}.base`,
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
else if (type === "fill") {
|
|
21
21
|
return {
|
|
22
22
|
main: {
|
|
23
|
-
bgcolor: is_def ? `
|
|
23
|
+
bgcolor: is_def ? `default.base` : `${color}`,
|
|
24
24
|
color: `${color}.contrast`,
|
|
25
25
|
border: 0,
|
|
26
26
|
borderColor: 'transparent',
|
|
27
27
|
},
|
|
28
28
|
hover: {
|
|
29
|
-
bgcolor: is_def ? `
|
|
29
|
+
bgcolor: is_def ? `default.elevated` : `${color}.surface`,
|
|
30
30
|
color: `${color}.contrast`,
|
|
31
31
|
border: 0,
|
|
32
32
|
borderColor: 'transparent',
|
|
@@ -37,13 +37,13 @@ const useColorTemplate = (color, type) => {
|
|
|
37
37
|
return {
|
|
38
38
|
main: {
|
|
39
39
|
bgcolor: "transparent",
|
|
40
|
-
color: is_def ? `
|
|
40
|
+
color: is_def ? `default.contrast` : `${color}.base`,
|
|
41
41
|
border: 0,
|
|
42
42
|
borderColor: `transparent`,
|
|
43
43
|
},
|
|
44
44
|
hover: {
|
|
45
45
|
bgcolor: "transparent",
|
|
46
|
-
color: is_def ? `
|
|
46
|
+
color: is_def ? `default.contrast` : `${color}.surface`,
|
|
47
47
|
border: 0,
|
|
48
48
|
borderColor: `transparent`,
|
|
49
49
|
}
|
|
@@ -53,13 +53,13 @@ const useColorTemplate = (color, type) => {
|
|
|
53
53
|
return {
|
|
54
54
|
main: {
|
|
55
55
|
bgcolor: `${color}.ghost`,
|
|
56
|
-
color: is_def ? `
|
|
56
|
+
color: is_def ? `default.contrast` : color,
|
|
57
57
|
border: 0,
|
|
58
58
|
borderColor: `transparent`,
|
|
59
59
|
},
|
|
60
60
|
hover: {
|
|
61
61
|
bgcolor: `${color}.ghost`,
|
|
62
|
-
color: is_def ? `
|
|
62
|
+
color: is_def ? `default.contrast` : `${color}.surface`,
|
|
63
63
|
border: 0,
|
|
64
64
|
borderColor: `transparent`,
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColorTemplate.js","sources":["../../src/hooks/useColorTemplate.ts"],"sourcesContent":["\"use client\";\n\nimport { ThemeColorKeys } from \"../theme/types\";\n\nexport type UseColorTemplateType = \"fill\" | \"outline\" | \"text\" | \"ghost\"\nexport type UseColorTemplateColor = ThemeColorKeys\n\nconst useColorTemplate = (color: UseColorTemplateColor, type: UseColorTemplateType) => {\n const is_def = color === \"
|
|
1
|
+
{"version":3,"file":"useColorTemplate.js","sources":["../../src/hooks/useColorTemplate.ts"],"sourcesContent":["\"use client\";\r\n\r\nimport { ThemeColorKeys } from \"../theme/types\";\r\n\r\nexport type UseColorTemplateType = \"fill\" | \"outline\" | \"text\" | \"ghost\"\r\nexport type UseColorTemplateColor = ThemeColorKeys\r\n\r\nconst useColorTemplate = (color: UseColorTemplateColor, type: UseColorTemplateType) => {\r\n const is_def = color === \"default\";\r\n\r\n if (type === \"outline\") {\r\n return {\r\n main: {\r\n bgcolor: `transparent`,\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: \"1px solid\",\r\n borderColor: `${color}.divider`,\r\n },\r\n hover: {\r\n bgcolor: `transparent`,\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: \"1px solid\",\r\n borderColor: is_def ? \"default.muted\" : `${color}.base`,\r\n }\r\n }\r\n } else if (type === \"fill\") {\r\n return {\r\n main: {\r\n bgcolor: is_def ? `default.base` : `${color}`,\r\n color: `${color}.contrast`,\r\n border: 0,\r\n borderColor: 'transparent',\r\n },\r\n hover: {\r\n bgcolor: is_def ? `default.elevated` : `${color}.surface`,\r\n color: `${color}.contrast`,\r\n border: 0,\r\n borderColor: 'transparent',\r\n }\r\n }\r\n } else if (type === \"text\") {\r\n return {\r\n main: {\r\n bgcolor: \"transparent\",\r\n color: is_def ? `default.contrast` : `${color}.base`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n },\r\n hover: {\r\n bgcolor: \"transparent\",\r\n color: is_def ? `default.contrast` : `${color}.surface`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n }\r\n }\r\n } else if (type === \"ghost\") {\r\n return {\r\n main: {\r\n bgcolor: `${color}.ghost`,\r\n color: is_def ? `default.contrast` : color,\r\n border: 0,\r\n borderColor: `transparent`,\r\n },\r\n hover: {\r\n bgcolor: `${color}.ghost`,\r\n color: is_def ? `default.contrast` : `${color}.surface`,\r\n border: 0,\r\n borderColor: `transparent`,\r\n }\r\n }\r\n }\r\n\r\n throw new Error(`useColorTemplate: Unknown type ${type}`);\r\n}\r\n\r\nexport default useColorTemplate"],"names":[],"mappings":";AAOA;AACI;AAEA;;AAEQ;AACI;;AAEA;;AAEH;AACD;AACI;;AAEA;;AAEH;;;AAEF;;AAEC;;;AAGI;AACA;AACH;AACD;;;AAGI;AACA;AACH;;;AAEF;;AAEC;AACI;;AAEA;AACA;AACH;AACD;AACI;;AAEA;AACA;AACH;;;AAEF;;AAEC;;;AAGI;AACA;AACH;AACD;;;AAGI;AACA;AACH;;;AAIT;AACJ;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
function useInView(options = {}) {
|
|
7
|
+
const { threshold = 0.1, root = null, margin = 0, once = false } = options;
|
|
8
|
+
const ref = React.useRef(null);
|
|
9
|
+
const [inView, setInView] = React.useState(false);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
const element = ref.current;
|
|
12
|
+
if (!element)
|
|
13
|
+
return;
|
|
14
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
15
|
+
const isVisible = entry.isIntersecting;
|
|
16
|
+
setInView(isVisible);
|
|
17
|
+
if (isVisible && once) {
|
|
18
|
+
observer.disconnect();
|
|
19
|
+
}
|
|
20
|
+
}, {
|
|
21
|
+
threshold,
|
|
22
|
+
root,
|
|
23
|
+
rootMargin: `${margin * 8}px`
|
|
24
|
+
});
|
|
25
|
+
observer.observe(element);
|
|
26
|
+
return () => observer.disconnect();
|
|
27
|
+
}, [threshold, root, margin, once]);
|
|
28
|
+
return { ref, inView };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = useInView;
|
|
32
|
+
//# sourceMappingURL=useInView.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInView.cjs","sources":["../../src/hooks/useInView.ts"],"sourcesContent":["\"use client\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\n\r\nexport type UseInViewOptions = {\r\n threshold?: number;\r\n root?: Element | null;\r\n margin?: number;\r\n once?: boolean;\r\n};\r\n\r\nfunction useInView<T extends HTMLElement = HTMLElement>(options: UseInViewOptions = {}) {\r\n const {\r\n threshold = 0.1,\r\n root = null,\r\n margin = 0,\r\n once = false\r\n } = options;\r\n\r\n const ref = useRef<T | null>(null);\r\n const [inView, setInView] = useState(false);\r\n\r\n useEffect(() => {\r\n const element = ref.current;\r\n if (!element) return;\r\n\r\n const observer = new IntersectionObserver(([entry]) => {\r\n const isVisible = entry.isIntersecting;\r\n\r\n setInView(isVisible);\r\n\r\n if (isVisible && once) {\r\n observer.disconnect();\r\n }\r\n },\r\n {\r\n threshold,\r\n root,\r\n rootMargin: `${margin * 8}px`\r\n }\r\n );\r\n\r\n observer.observe(element);\r\n\r\n return () => observer.disconnect();\r\n }, [threshold, root, margin, once]);\r\n\r\n return { ref, inView };\r\n}\r\n\r\nexport default useInView"],"names":[],"mappings":";;;;;AAUA;AACG;AAOA;;;AAIG;AACA;;;AAGG;;AAIA;;;AAGH;;;AAIM;AACF;AAGJ;AAEA;;AAGH;AACH;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
type UseInViewOptions = {
|
|
4
|
+
threshold?: number;
|
|
5
|
+
root?: Element | null;
|
|
6
|
+
margin?: number;
|
|
7
|
+
once?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare function useInView<T extends HTMLElement = HTMLElement>(options?: UseInViewOptions): {
|
|
10
|
+
ref: React.RefObject<T | null>;
|
|
11
|
+
inView: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { useInView as default };
|
|
15
|
+
export type { UseInViewOptions };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useRef, useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
function useInView(options = {}) {
|
|
5
|
+
const { threshold = 0.1, root = null, margin = 0, once = false } = options;
|
|
6
|
+
const ref = useRef(null);
|
|
7
|
+
const [inView, setInView] = useState(false);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const element = ref.current;
|
|
10
|
+
if (!element)
|
|
11
|
+
return;
|
|
12
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
13
|
+
const isVisible = entry.isIntersecting;
|
|
14
|
+
setInView(isVisible);
|
|
15
|
+
if (isVisible && once) {
|
|
16
|
+
observer.disconnect();
|
|
17
|
+
}
|
|
18
|
+
}, {
|
|
19
|
+
threshold,
|
|
20
|
+
root,
|
|
21
|
+
rootMargin: `${margin * 8}px`
|
|
22
|
+
});
|
|
23
|
+
observer.observe(element);
|
|
24
|
+
return () => observer.disconnect();
|
|
25
|
+
}, [threshold, root, margin, once]);
|
|
26
|
+
return { ref, inView };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { useInView as default };
|
|
30
|
+
//# sourceMappingURL=useInView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInView.js","sources":["../../src/hooks/useInView.ts"],"sourcesContent":["\"use client\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\n\r\nexport type UseInViewOptions = {\r\n threshold?: number;\r\n root?: Element | null;\r\n margin?: number;\r\n once?: boolean;\r\n};\r\n\r\nfunction useInView<T extends HTMLElement = HTMLElement>(options: UseInViewOptions = {}) {\r\n const {\r\n threshold = 0.1,\r\n root = null,\r\n margin = 0,\r\n once = false\r\n } = options;\r\n\r\n const ref = useRef<T | null>(null);\r\n const [inView, setInView] = useState(false);\r\n\r\n useEffect(() => {\r\n const element = ref.current;\r\n if (!element) return;\r\n\r\n const observer = new IntersectionObserver(([entry]) => {\r\n const isVisible = entry.isIntersecting;\r\n\r\n setInView(isVisible);\r\n\r\n if (isVisible && once) {\r\n observer.disconnect();\r\n }\r\n },\r\n {\r\n threshold,\r\n root,\r\n rootMargin: `${margin * 8}px`\r\n }\r\n );\r\n\r\n observer.observe(element);\r\n\r\n return () => observer.disconnect();\r\n }, [threshold, root, margin, once]);\r\n\r\n return { ref, inView };\r\n}\r\n\r\nexport default useInView"],"names":[],"mappings":";;;AAUA;AACG;AAOA;;;AAIG;AACA;;;AAGG;;AAIA;;;AAGH;;;AAIM;AACF;AAGJ;AAEA;;AAGH;AACH;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInterface.cjs","sources":["../../src/hooks/useInterface.ts"],"sourcesContent":["import { useTheme } from \"../theme\"\n\nconst useInterface = <P extends object>(name: string, userPorps: P, defaultProps: P) => {\n const theme = useTheme()\n let _props = { ...defaultProps, ...userPorps } as P\n if (name in theme.interfaces) {\n return theme.interfaces[name](_props, theme)\n }\n return [_props, theme]\n}\n\nexport default useInterface"],"names":["useTheme"],"mappings":";;;;;;;;;;;;;AAEA,MAAM,YAAY,GAAG,CAAmB,IAAY,EAAE,SAAY,EAAE,YAAe,KAAI;AACnF,IAAA,MAAM,KAAK,GAAGA,aAAQ,EAAE;AACxB,IAAA,IAAI,MAAM,GAAG,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,YAAY,CAAA,EAAK,SAAS,CAAO;AACnD,IAAA,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;QAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;IAChD;AACA,IAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1B;;;;"}
|
|
1
|
+
{"version":3,"file":"useInterface.cjs","sources":["../../src/hooks/useInterface.ts"],"sourcesContent":["import { useTheme } from \"../theme\"\r\n\r\nconst useInterface = <P extends object>(name: string, userPorps: P, defaultProps: P) => {\r\n const theme = useTheme()\r\n let _props = { ...defaultProps, ...userPorps } as P\r\n if (name in theme.interfaces) {\r\n return theme.interfaces[name](_props, theme)\r\n }\r\n return [_props, theme]\r\n}\r\n\r\nexport default useInterface"],"names":["useTheme"],"mappings":";;;;;;;;;;;;;AAEA,MAAM,YAAY,GAAG,CAAmB,IAAY,EAAE,SAAY,EAAE,YAAe,KAAI;AACnF,IAAA,MAAM,KAAK,GAAGA,aAAQ,EAAE;AACxB,IAAA,IAAI,MAAM,GAAG,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,YAAY,CAAA,EAAK,SAAS,CAAO;AACnD,IAAA,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;QAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;IAChD;AACA,IAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInterface.js","sources":["../../src/hooks/useInterface.ts"],"sourcesContent":["import { useTheme } from \"../theme\"\n\nconst useInterface = <P extends object>(name: string, userPorps: P, defaultProps: P) => {\n const theme = useTheme()\n let _props = { ...defaultProps, ...userPorps } as P\n if (name in theme.interfaces) {\n return theme.interfaces[name](_props, theme)\n }\n return [_props, theme]\n}\n\nexport default useInterface"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,YAAY,GAAG,CAAmB,IAAY,EAAE,SAAY,EAAE,YAAe,KAAI;AACnF,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,IAAI,MAAM,GAAG,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,YAAY,CAAA,EAAK,SAAS,CAAO;AACnD,IAAA,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;QAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;IAChD;AACA,IAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1B;;;;"}
|
|
1
|
+
{"version":3,"file":"useInterface.js","sources":["../../src/hooks/useInterface.ts"],"sourcesContent":["import { useTheme } from \"../theme\"\r\n\r\nconst useInterface = <P extends object>(name: string, userPorps: P, defaultProps: P) => {\r\n const theme = useTheme()\r\n let _props = { ...defaultProps, ...userPorps } as P\r\n if (name in theme.interfaces) {\r\n return theme.interfaces[name](_props, theme)\r\n }\r\n return [_props, theme]\r\n}\r\n\r\nexport default useInterface"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,YAAY,GAAG,CAAmB,IAAY,EAAE,SAAY,EAAE,YAAe,KAAI;AACnF,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,IAAI,MAAM,GAAG,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,YAAY,CAAA,EAAK,SAAS,CAAO;AACnD,IAAA,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;QAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;IAChD;AACA,IAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeRefs.cjs","sources":["../../src/hooks/useMergeRefs.ts"],"sourcesContent":["\"use client\";\nimport { useCallback } from \"react\";\n\nfunction useMergeRefs<T>(\n ...refs: Array<React.Ref<T> | undefined>\n) {\n return useCallback((value: T | null) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n }, refs);\n}\n\nexport default useMergeRefs;"],"names":[],"mappings":";;;;;AAGA;AAGG;AACG;AACG;;AACA;;;;AAGI;;;;AAIb;;"}
|
|
1
|
+
{"version":3,"file":"useMergeRefs.cjs","sources":["../../src/hooks/useMergeRefs.ts"],"sourcesContent":["\"use client\";\r\nimport { useCallback } from \"react\";\r\n\r\nfunction useMergeRefs<T>(\r\n ...refs: Array<React.Ref<T> | undefined>\r\n) {\r\n return useCallback((value: T | null) => {\r\n for (const ref of refs) {\r\n if (!ref) continue;\r\n if (typeof ref === \"function\") {\r\n ref(value);\r\n } else {\r\n (ref as React.MutableRefObject<T | null>).current = value;\r\n }\r\n }\r\n }, refs);\r\n}\r\n\r\nexport default useMergeRefs;"],"names":[],"mappings":";;;;;AAGA;AAGG;AACG;AACG;;AACA;;;;AAGI;;;;AAIb;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeRefs.js","sources":["../../src/hooks/useMergeRefs.ts"],"sourcesContent":["\"use client\";\nimport { useCallback } from \"react\";\n\nfunction useMergeRefs<T>(\n ...refs: Array<React.Ref<T> | undefined>\n) {\n return useCallback((value: T | null) => {\n for (const ref of refs) {\n if (!ref) continue;\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n }, refs);\n}\n\nexport default useMergeRefs;"],"names":[],"mappings":";;;AAGA;AAGG;AACG;AACG;;AACA;;;;AAGI;;;;AAIb;;"}
|
|
1
|
+
{"version":3,"file":"useMergeRefs.js","sources":["../../src/hooks/useMergeRefs.ts"],"sourcesContent":["\"use client\";\r\nimport { useCallback } from \"react\";\r\n\r\nfunction useMergeRefs<T>(\r\n ...refs: Array<React.Ref<T> | undefined>\r\n) {\r\n return useCallback((value: T | null) => {\r\n for (const ref of refs) {\r\n if (!ref) continue;\r\n if (typeof ref === \"function\") {\r\n ref(value);\r\n } else {\r\n (ref as React.MutableRefObject<T | null>).current = value;\r\n }\r\n }\r\n }, refs);\r\n}\r\n\r\nexport default useMergeRefs;"],"names":[],"mappings":";;;AAGA;AAGG;AACG;AACG;;AACA;;;;AAGI;;;;AAIb;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransition.cjs","sources":["../../src/hooks/useTransition.ts"],"sourcesContent":["\"use client\"\nimport { useRef, useState, useCallback, useLayoutEffect } from \"react\"\nimport animate, { AnimateOptions } from \"../animate\"\n\nexport type UseTransitionStatus =\n | \"entering\"\n | \"entered\"\n | \"exiting\"\n | \"exited\"\n\nexport type UseTransitionProps<T extends Record<string, number>> = AnimateOptions<T> & {\n initialStatus?: \"entered\" | \"exited\"\n onEnter?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExited?: () => void\n}\n\nconst useTransition = <T extends Record<string, number>>(props: UseTransitionProps<T>) => {\n const {\n initialStatus = \"exited\",\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...options\n } = props\n\n const resolve = (val: T | (() => T)): T =>\n typeof val === \"function\" ? (val as () => T)() : val\n\n const [open, setOpen] = useState(initialStatus === \"entered\")\n const [status, setStatus] = useState<UseTransitionStatus>(initialStatus)\n\n const stateRef = useRef<T | null>(null)\n const readyRef = useRef(false)\n\n const animating = useRef<null | (() => void)>(null)\n\n useLayoutEffect(() => {\n const from = resolve(options.from)\n const to = resolve(options.to)\n stateRef.current = initialStatus === \"entered\" ? to : from\n readyRef.current = true\n }, [])\n\n const run = useCallback(\n (nextOpen: boolean, withAnimation = true) => {\n if (!readyRef.current || !stateRef.current) return\n\n animating.current?.()\n\n const resolvedFrom = resolve(options.from)\n const resolvedTo = resolve(options.to)\n const from = stateRef.current\n const to = nextOpen ? resolvedTo : resolvedFrom\n\n if (nextOpen) {\n setStatus(\"entering\")\n onEnter?.()\n } else {\n setStatus(\"exiting\")\n onExit?.()\n }\n\n if (!withAnimation) {\n stateRef.current = to\n options.onUpdate?.(to, 1)\n\n if (nextOpen) {\n setStatus(\"entered\")\n onEntered?.()\n } else {\n setStatus(\"exited\")\n onExited?.()\n }\n\n options.onDone?.(stateRef.current)\n return\n }\n\n animating.current = animate({\n ...options,\n from,\n to,\n duration: options.duration ?? 400,\n onUpdate: (value: T, progress: number) => {\n stateRef.current = value\n options.onUpdate?.(value, progress)\n },\n onDone: (value) => {\n if (nextOpen) {\n setStatus(\"entered\")\n onEntered?.()\n } else {\n setStatus(\"exited\")\n onExited?.()\n }\n options.onDone?.(value)\n },\n })\n },\n [options, onEnter, onEntered, onExit, onExited]\n )\n\n const enter = useCallback((withAnimation = true) => {\n setOpen(true)\n run(true, withAnimation)\n }, [run])\n\n const exit = useCallback((withAnimation = true) => {\n setOpen(false)\n run(false, withAnimation)\n }, [run])\n\n const toggle = useCallback((withAnimation = true) => {\n setOpen((prev) => {\n const next = !prev\n run(next, withAnimation)\n return next\n })\n }, [run])\n\n return {\n isEntered: open,\n status,\n state: stateRef,\n enter,\n exit,\n toggle,\n isReady: readyRef.current\n }\n}\n\nexport default useTransition"],"names":[],"mappings":";;;;;;;AAkBA;;;AAaG;;AAGA;AACA;AAEA;;;;AAKG;AACA;;;;;;AAOG;;;AAIA;;;;AAKG;;;;AAGA;;;AAIA;;;;AAKG;;;;AAGA;;;;;AAON;AAGG;;AAGG;;AAEH;;;;AAIM;;;;AAGA;;AAEH;AACH;AAEN;;;AAMA;AACH;;;AAIG;AACH;;AAGG;AACG;AACA;AACA;AACH;AACH;;AAGG;;AAEA;;;;;;AAMN;;"}
|
|
1
|
+
{"version":3,"file":"useTransition.cjs","sources":["../../src/hooks/useTransition.ts"],"sourcesContent":["\"use client\"\r\nimport { useRef, useState, useCallback, useLayoutEffect } from \"react\"\r\nimport animate, { AnimateOptions } from \"../animate\"\r\n\r\nexport type UseTransitionStatus =\r\n | \"entering\"\r\n | \"entered\"\r\n | \"exiting\"\r\n | \"exited\"\r\n\r\nexport type UseTransitionProps<T extends Record<string, number>> = AnimateOptions<T> & {\r\n initialStatus?: \"entered\" | \"exited\"\r\n onEnter?: () => void\r\n onEntered?: () => void\r\n onExit?: () => void\r\n onExited?: () => void\r\n}\r\n\r\nconst useTransition = <T extends Record<string, number>>(props: UseTransitionProps<T>) => {\r\n const {\r\n initialStatus = \"exited\",\r\n onEnter,\r\n onEntered,\r\n onExit,\r\n onExited,\r\n ...options\r\n } = props\r\n\r\n const resolve = (val: T | (() => T)): T =>\r\n typeof val === \"function\" ? (val as () => T)() : val\r\n\r\n const [open, setOpen] = useState(initialStatus === \"entered\")\r\n const [status, setStatus] = useState<UseTransitionStatus>(initialStatus)\r\n\r\n const stateRef = useRef<T | null>(null)\r\n const readyRef = useRef(false)\r\n\r\n const animating = useRef<null | (() => void)>(null)\r\n\r\n useLayoutEffect(() => {\r\n const from = resolve(options.from)\r\n const to = resolve(options.to)\r\n stateRef.current = initialStatus === \"entered\" ? to : from\r\n readyRef.current = true\r\n }, [])\r\n\r\n const run = useCallback(\r\n (nextOpen: boolean, withAnimation = true) => {\r\n if (!readyRef.current || !stateRef.current) return\r\n\r\n animating.current?.()\r\n\r\n const resolvedFrom = resolve(options.from)\r\n const resolvedTo = resolve(options.to)\r\n const from = stateRef.current\r\n const to = nextOpen ? resolvedTo : resolvedFrom\r\n\r\n if (nextOpen) {\r\n setStatus(\"entering\")\r\n onEnter?.()\r\n } else {\r\n setStatus(\"exiting\")\r\n onExit?.()\r\n }\r\n\r\n if (!withAnimation) {\r\n stateRef.current = to\r\n options.onUpdate?.(to, 1)\r\n\r\n if (nextOpen) {\r\n setStatus(\"entered\")\r\n onEntered?.()\r\n } else {\r\n setStatus(\"exited\")\r\n onExited?.()\r\n }\r\n\r\n options.onDone?.(stateRef.current)\r\n return\r\n }\r\n\r\n animating.current = animate({\r\n ...options,\r\n from,\r\n to,\r\n duration: options.duration ?? 400,\r\n onUpdate: (value: T, progress: number) => {\r\n stateRef.current = value\r\n options.onUpdate?.(value, progress)\r\n },\r\n onDone: (value) => {\r\n if (nextOpen) {\r\n setStatus(\"entered\")\r\n onEntered?.()\r\n } else {\r\n setStatus(\"exited\")\r\n onExited?.()\r\n }\r\n options.onDone?.(value)\r\n },\r\n })\r\n },\r\n [options, onEnter, onEntered, onExit, onExited]\r\n )\r\n\r\n const enter = useCallback((withAnimation = true) => {\r\n setOpen(true)\r\n run(true, withAnimation)\r\n }, [run])\r\n\r\n const exit = useCallback((withAnimation = true) => {\r\n setOpen(false)\r\n run(false, withAnimation)\r\n }, [run])\r\n\r\n const toggle = useCallback((withAnimation = true) => {\r\n setOpen((prev) => {\r\n const next = !prev\r\n run(next, withAnimation)\r\n return next\r\n })\r\n }, [run])\r\n\r\n return {\r\n isEntered: open,\r\n status,\r\n state: stateRef,\r\n enter,\r\n exit,\r\n toggle,\r\n isReady: readyRef.current\r\n }\r\n}\r\n\r\nexport default useTransition"],"names":[],"mappings":";;;;;;;AAkBA;;;AAaG;;AAGA;AACA;AAEA;;;;AAKG;AACA;;;;;;AAOG;;;AAIA;;;;AAKG;;;;AAGA;;;AAIA;;;;AAKG;;;;AAGA;;;;;AAON;AAGG;;AAGG;;AAEH;;;;AAIM;;;;AAGA;;AAEH;AACH;AAEN;;;AAMA;AACH;;;AAIG;AACH;;AAGG;AACG;AACA;AACA;AACH;AACH;;AAGG;;AAEA;;;;;;AAMN;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransition.js","sources":["../../src/hooks/useTransition.ts"],"sourcesContent":["\"use client\"\nimport { useRef, useState, useCallback, useLayoutEffect } from \"react\"\nimport animate, { AnimateOptions } from \"../animate\"\n\nexport type UseTransitionStatus =\n | \"entering\"\n | \"entered\"\n | \"exiting\"\n | \"exited\"\n\nexport type UseTransitionProps<T extends Record<string, number>> = AnimateOptions<T> & {\n initialStatus?: \"entered\" | \"exited\"\n onEnter?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExited?: () => void\n}\n\nconst useTransition = <T extends Record<string, number>>(props: UseTransitionProps<T>) => {\n const {\n initialStatus = \"exited\",\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...options\n } = props\n\n const resolve = (val: T | (() => T)): T =>\n typeof val === \"function\" ? (val as () => T)() : val\n\n const [open, setOpen] = useState(initialStatus === \"entered\")\n const [status, setStatus] = useState<UseTransitionStatus>(initialStatus)\n\n const stateRef = useRef<T | null>(null)\n const readyRef = useRef(false)\n\n const animating = useRef<null | (() => void)>(null)\n\n useLayoutEffect(() => {\n const from = resolve(options.from)\n const to = resolve(options.to)\n stateRef.current = initialStatus === \"entered\" ? to : from\n readyRef.current = true\n }, [])\n\n const run = useCallback(\n (nextOpen: boolean, withAnimation = true) => {\n if (!readyRef.current || !stateRef.current) return\n\n animating.current?.()\n\n const resolvedFrom = resolve(options.from)\n const resolvedTo = resolve(options.to)\n const from = stateRef.current\n const to = nextOpen ? resolvedTo : resolvedFrom\n\n if (nextOpen) {\n setStatus(\"entering\")\n onEnter?.()\n } else {\n setStatus(\"exiting\")\n onExit?.()\n }\n\n if (!withAnimation) {\n stateRef.current = to\n options.onUpdate?.(to, 1)\n\n if (nextOpen) {\n setStatus(\"entered\")\n onEntered?.()\n } else {\n setStatus(\"exited\")\n onExited?.()\n }\n\n options.onDone?.(stateRef.current)\n return\n }\n\n animating.current = animate({\n ...options,\n from,\n to,\n duration: options.duration ?? 400,\n onUpdate: (value: T, progress: number) => {\n stateRef.current = value\n options.onUpdate?.(value, progress)\n },\n onDone: (value) => {\n if (nextOpen) {\n setStatus(\"entered\")\n onEntered?.()\n } else {\n setStatus(\"exited\")\n onExited?.()\n }\n options.onDone?.(value)\n },\n })\n },\n [options, onEnter, onEntered, onExit, onExited]\n )\n\n const enter = useCallback((withAnimation = true) => {\n setOpen(true)\n run(true, withAnimation)\n }, [run])\n\n const exit = useCallback((withAnimation = true) => {\n setOpen(false)\n run(false, withAnimation)\n }, [run])\n\n const toggle = useCallback((withAnimation = true) => {\n setOpen((prev) => {\n const next = !prev\n run(next, withAnimation)\n return next\n })\n }, [run])\n\n return {\n isEntered: open,\n status,\n state: stateRef,\n enter,\n exit,\n toggle,\n isReady: readyRef.current\n }\n}\n\nexport default useTransition"],"names":[],"mappings":";;;;;AAkBA;;;AAaG;;AAGA;AACA;AAEA;;;;AAKG;AACA;;;;;;AAOG;;;AAIA;;;;AAKG;;;;AAGA;;;AAIA;;;;AAKG;;;;AAGA;;;;;AAON;AAGG;;AAGG;;AAEH;;;;AAIM;;;;AAGA;;AAEH;AACH;AAEN;;;AAMA;AACH;;;AAIG;AACH;;AAGG;AACG;AACA;AACA;AACH;AACH;;AAGG;;AAEA;;;;;;AAMN;;"}
|
|
1
|
+
{"version":3,"file":"useTransition.js","sources":["../../src/hooks/useTransition.ts"],"sourcesContent":["\"use client\"\r\nimport { useRef, useState, useCallback, useLayoutEffect } from \"react\"\r\nimport animate, { AnimateOptions } from \"../animate\"\r\n\r\nexport type UseTransitionStatus =\r\n | \"entering\"\r\n | \"entered\"\r\n | \"exiting\"\r\n | \"exited\"\r\n\r\nexport type UseTransitionProps<T extends Record<string, number>> = AnimateOptions<T> & {\r\n initialStatus?: \"entered\" | \"exited\"\r\n onEnter?: () => void\r\n onEntered?: () => void\r\n onExit?: () => void\r\n onExited?: () => void\r\n}\r\n\r\nconst useTransition = <T extends Record<string, number>>(props: UseTransitionProps<T>) => {\r\n const {\r\n initialStatus = \"exited\",\r\n onEnter,\r\n onEntered,\r\n onExit,\r\n onExited,\r\n ...options\r\n } = props\r\n\r\n const resolve = (val: T | (() => T)): T =>\r\n typeof val === \"function\" ? (val as () => T)() : val\r\n\r\n const [open, setOpen] = useState(initialStatus === \"entered\")\r\n const [status, setStatus] = useState<UseTransitionStatus>(initialStatus)\r\n\r\n const stateRef = useRef<T | null>(null)\r\n const readyRef = useRef(false)\r\n\r\n const animating = useRef<null | (() => void)>(null)\r\n\r\n useLayoutEffect(() => {\r\n const from = resolve(options.from)\r\n const to = resolve(options.to)\r\n stateRef.current = initialStatus === \"entered\" ? to : from\r\n readyRef.current = true\r\n }, [])\r\n\r\n const run = useCallback(\r\n (nextOpen: boolean, withAnimation = true) => {\r\n if (!readyRef.current || !stateRef.current) return\r\n\r\n animating.current?.()\r\n\r\n const resolvedFrom = resolve(options.from)\r\n const resolvedTo = resolve(options.to)\r\n const from = stateRef.current\r\n const to = nextOpen ? resolvedTo : resolvedFrom\r\n\r\n if (nextOpen) {\r\n setStatus(\"entering\")\r\n onEnter?.()\r\n } else {\r\n setStatus(\"exiting\")\r\n onExit?.()\r\n }\r\n\r\n if (!withAnimation) {\r\n stateRef.current = to\r\n options.onUpdate?.(to, 1)\r\n\r\n if (nextOpen) {\r\n setStatus(\"entered\")\r\n onEntered?.()\r\n } else {\r\n setStatus(\"exited\")\r\n onExited?.()\r\n }\r\n\r\n options.onDone?.(stateRef.current)\r\n return\r\n }\r\n\r\n animating.current = animate({\r\n ...options,\r\n from,\r\n to,\r\n duration: options.duration ?? 400,\r\n onUpdate: (value: T, progress: number) => {\r\n stateRef.current = value\r\n options.onUpdate?.(value, progress)\r\n },\r\n onDone: (value) => {\r\n if (nextOpen) {\r\n setStatus(\"entered\")\r\n onEntered?.()\r\n } else {\r\n setStatus(\"exited\")\r\n onExited?.()\r\n }\r\n options.onDone?.(value)\r\n },\r\n })\r\n },\r\n [options, onEnter, onEntered, onExit, onExited]\r\n )\r\n\r\n const enter = useCallback((withAnimation = true) => {\r\n setOpen(true)\r\n run(true, withAnimation)\r\n }, [run])\r\n\r\n const exit = useCallback((withAnimation = true) => {\r\n setOpen(false)\r\n run(false, withAnimation)\r\n }, [run])\r\n\r\n const toggle = useCallback((withAnimation = true) => {\r\n setOpen((prev) => {\r\n const next = !prev\r\n run(next, withAnimation)\r\n return next\r\n })\r\n }, [run])\r\n\r\n return {\r\n isEntered: open,\r\n status,\r\n state: stateRef,\r\n enter,\r\n exit,\r\n toggle,\r\n isReady: readyRef.current\r\n }\r\n}\r\n\r\nexport default useTransition"],"names":[],"mappings":";;;;;AAkBA;;;AAaG;;AAGA;AACA;AAEA;;;;AAKG;AACA;;;;;;AAOG;;;AAIA;;;;AAKG;;;;AAGA;;;AAIA;;;;AAKG;;;;AAGA;;;;;AAON;AAGG;;AAGG;;AAEH;;;;AAIM;;;;AAGA;;AAEH;AACH;AAEN;;;AAMA;AACH;;;AAIG;AACH;;AAGG;AACG;AACA;AACA;AACH;AACH;;AAGG;;AAEA;;;;;;AAMN;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransitionGroup.cjs","sources":["../../src/hooks/useTransitionGroup.ts"],"sourcesContent":["\"use client\"\nimport { useRef, useState, useCallback } from \"react\"\nimport animate from \"../animate\"\nimport { UseTransitionStatus } from \"./useTransition\"\n\nexport type UseTransitionGroupItem<T extends Record<string, number>> = {\n key: string | number\n from: T\n to: T\n}\n\nexport type UseTransitionGroupProps<T extends Record<string, number>> = {\n items: UseTransitionGroupItem<T>[]\n duration?: number\n stagger?: number // delay between items in ms\n mountOnEnter?: boolean\n unmountOnExit?: boolean\n onUpdate?: (value: T, key: string | number, progress: number) => void\n onEnter?: (key: string | number) => void\n onEntered?: (key: string | number) => void\n onExit?: (key: string | number) => void\n onExited?: (key: string | number) => void\n}\n\n/**\n * useTransitionGroup - staggered animations for multiple items\n */\nfunction useTransitionGroup<T extends Record<string, number>>(\n options: UseTransitionGroupProps<T>\n) {\n // status of each item\n const [statuses, setStatuses] = useState<\n Record<string | number, UseTransitionStatus>\n >(\n () =>\n Object.fromEntries(\n options.items.map((item) => [\n item.key,\n options.mountOnEnter ? \"exited\" : \"entered\",\n ])\n )\n )\n\n // refs to cancel per-item animations\n const animatingRefs = useRef<Record<string | number, (() => void) | null>>({})\n\n // track mounted items (for mount/unmount)\n const [mounted, setMounted] = useState<Record<string | number, boolean>>(\n () =>\n Object.fromEntries(\n options.items.map((item) => [\n item.key,\n !options.mountOnEnter,\n ])\n )\n )\n\n // animate a single item\n const animateItem = useCallback(\n (item: UseTransitionGroupItem<T>, entering: boolean, delay = 0) => {\n // cancel previous\n animatingRefs.current[item.key]?.()\n\n if (entering) setStatuses((s: any) => ({ ...s, [item.key]: \"entering\" }))\n else setStatuses((s: any) => ({ ...s, [item.key]: \"exiting\" }))\n\n if (entering && options.mountOnEnter) {\n setMounted((m) => ({ ...m, [item.key]: true }))\n }\n\n // start animation after delay\n const timeout = setTimeout(() => {\n if (entering) options.onEnter?.(item.key)\n else options.onExit?.(item.key)\n\n animatingRefs.current[item.key] = animate({\n from: entering ? item.from : item.to,\n to: entering ? item.to : item.from,\n duration: options.duration ?? 400,\n onUpdate: (value, progress) =>\n options.onUpdate?.(value, item.key, progress),\n onDone: () => {\n if (entering) {\n setStatuses((s: any) => ({ ...s, [item.key]: \"entered\" }))\n options.onEntered?.(item.key)\n } else {\n setStatuses((s: any) => ({ ...s, [item.key]: \"exited\" }))\n options.onExited?.(item.key)\n if (options.unmountOnExit) {\n setMounted((m) => ({ ...m, [item.key]: false }))\n }\n }\n },\n })\n }, delay)\n\n return () => clearTimeout(timeout)\n },\n [options]\n )\n\n // run staggered animation on array of items\n const run = useCallback(\n (entering: boolean) => {\n options.items.forEach((item, index) => {\n const delay = (options.stagger ?? 100) * index\n const status = statuses[item.key]\n\n // skip if already animating in same direction\n if (entering && (status === \"entering\" || status === \"entered\")) return\n if (!entering && (status === \"exiting\" || status === \"exited\")) return\n\n animateItem(item, entering, delay)\n })\n },\n [options.items, options.stagger, animateItem, statuses]\n )\n\n const enter = useCallback(() => run(true), [run])\n const exit = useCallback(() => run(false), [run])\n const toggle = useCallback(() => {\n const anyEntered = Object.values(statuses).some(\n (s) => s === \"entering\" || s === \"entered\"\n )\n run(!anyEntered)\n }, [run, statuses])\n\n return {\n statuses,\n mounted,\n enter,\n exit,\n toggle,\n }\n}\n\nexport default useTransitionGroup"],"names":[],"mappings":";;;;;;AAwBA;;AAEG;AACH;;;AAUe;;;;AAOZ;;;AAOY;;;;AAOZ;;;;AAKM;AAAc;;AACT;AAEL;AACG;;;AAIH;;AACG;;;;;AAIG;AACA;AACA;;;;;AAKM;;;;AAGA;;AAEA;AACG;;;;AAIX;;AAGJ;AACH;;AAKH;;;AAGS;;;;;;;AAOA;AACH;AACH;AAIH;AACA;AACA;;AAIG;AACH;;;;;;;;AASH;;"}
|
|
1
|
+
{"version":3,"file":"useTransitionGroup.cjs","sources":["../../src/hooks/useTransitionGroup.ts"],"sourcesContent":["\"use client\"\r\nimport { useRef, useState, useCallback } from \"react\"\r\nimport animate from \"../animate\"\r\nimport { UseTransitionStatus } from \"./useTransition\"\r\n\r\nexport type UseTransitionGroupItem<T extends Record<string, number>> = {\r\n key: string | number\r\n from: T\r\n to: T\r\n}\r\n\r\nexport type UseTransitionGroupProps<T extends Record<string, number>> = {\r\n items: UseTransitionGroupItem<T>[]\r\n duration?: number\r\n stagger?: number // delay between items in ms\r\n mountOnEnter?: boolean\r\n unmountOnExit?: boolean\r\n onUpdate?: (value: T, key: string | number, progress: number) => void\r\n onEnter?: (key: string | number) => void\r\n onEntered?: (key: string | number) => void\r\n onExit?: (key: string | number) => void\r\n onExited?: (key: string | number) => void\r\n}\r\n\r\n/**\r\n * useTransitionGroup - staggered animations for multiple items\r\n */\r\nfunction useTransitionGroup<T extends Record<string, number>>(\r\n options: UseTransitionGroupProps<T>\r\n) {\r\n // status of each item\r\n const [statuses, setStatuses] = useState<\r\n Record<string | number, UseTransitionStatus>\r\n >(\r\n () =>\r\n Object.fromEntries(\r\n options.items.map((item) => [\r\n item.key,\r\n options.mountOnEnter ? \"exited\" : \"entered\",\r\n ])\r\n )\r\n )\r\n\r\n // refs to cancel per-item animations\r\n const animatingRefs = useRef<Record<string | number, (() => void) | null>>({})\r\n\r\n // track mounted items (for mount/unmount)\r\n const [mounted, setMounted] = useState<Record<string | number, boolean>>(\r\n () =>\r\n Object.fromEntries(\r\n options.items.map((item) => [\r\n item.key,\r\n !options.mountOnEnter,\r\n ])\r\n )\r\n )\r\n\r\n // animate a single item\r\n const animateItem = useCallback(\r\n (item: UseTransitionGroupItem<T>, entering: boolean, delay = 0) => {\r\n // cancel previous\r\n animatingRefs.current[item.key]?.()\r\n\r\n if (entering) setStatuses((s: any) => ({ ...s, [item.key]: \"entering\" }))\r\n else setStatuses((s: any) => ({ ...s, [item.key]: \"exiting\" }))\r\n\r\n if (entering && options.mountOnEnter) {\r\n setMounted((m) => ({ ...m, [item.key]: true }))\r\n }\r\n\r\n // start animation after delay\r\n const timeout = setTimeout(() => {\r\n if (entering) options.onEnter?.(item.key)\r\n else options.onExit?.(item.key)\r\n\r\n animatingRefs.current[item.key] = animate({\r\n from: entering ? item.from : item.to,\r\n to: entering ? item.to : item.from,\r\n duration: options.duration ?? 400,\r\n onUpdate: (value, progress) =>\r\n options.onUpdate?.(value, item.key, progress),\r\n onDone: () => {\r\n if (entering) {\r\n setStatuses((s: any) => ({ ...s, [item.key]: \"entered\" }))\r\n options.onEntered?.(item.key)\r\n } else {\r\n setStatuses((s: any) => ({ ...s, [item.key]: \"exited\" }))\r\n options.onExited?.(item.key)\r\n if (options.unmountOnExit) {\r\n setMounted((m) => ({ ...m, [item.key]: false }))\r\n }\r\n }\r\n },\r\n })\r\n }, delay)\r\n\r\n return () => clearTimeout(timeout)\r\n },\r\n [options]\r\n )\r\n\r\n // run staggered animation on array of items\r\n const run = useCallback(\r\n (entering: boolean) => {\r\n options.items.forEach((item, index) => {\r\n const delay = (options.stagger ?? 100) * index\r\n const status = statuses[item.key]\r\n\r\n // skip if already animating in same direction\r\n if (entering && (status === \"entering\" || status === \"entered\")) return\r\n if (!entering && (status === \"exiting\" || status === \"exited\")) return\r\n\r\n animateItem(item, entering, delay)\r\n })\r\n },\r\n [options.items, options.stagger, animateItem, statuses]\r\n )\r\n\r\n const enter = useCallback(() => run(true), [run])\r\n const exit = useCallback(() => run(false), [run])\r\n const toggle = useCallback(() => {\r\n const anyEntered = Object.values(statuses).some(\r\n (s) => s === \"entering\" || s === \"entered\"\r\n )\r\n run(!anyEntered)\r\n }, [run, statuses])\r\n\r\n return {\r\n statuses,\r\n mounted,\r\n enter,\r\n exit,\r\n toggle,\r\n }\r\n}\r\n\r\nexport default useTransitionGroup"],"names":[],"mappings":";;;;;;AAwBA;;AAEG;AACH;;;AAUe;;;;AAOZ;;;AAOY;;;;AAOZ;;;;AAKM;AAAc;;AACT;AAEL;AACG;;;AAIH;;AACG;;;;;AAIG;AACA;AACA;;;;;AAKM;;;;AAGA;;AAEA;AACG;;;;AAIX;;AAGJ;AACH;;AAKH;;;AAGS;;;;;;;AAOA;AACH;AACH;AAIH;AACA;AACA;;AAIG;AACH;;;;;;;;AASH;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransitionGroup.js","sources":["../../src/hooks/useTransitionGroup.ts"],"sourcesContent":["\"use client\"\nimport { useRef, useState, useCallback } from \"react\"\nimport animate from \"../animate\"\nimport { UseTransitionStatus } from \"./useTransition\"\n\nexport type UseTransitionGroupItem<T extends Record<string, number>> = {\n key: string | number\n from: T\n to: T\n}\n\nexport type UseTransitionGroupProps<T extends Record<string, number>> = {\n items: UseTransitionGroupItem<T>[]\n duration?: number\n stagger?: number // delay between items in ms\n mountOnEnter?: boolean\n unmountOnExit?: boolean\n onUpdate?: (value: T, key: string | number, progress: number) => void\n onEnter?: (key: string | number) => void\n onEntered?: (key: string | number) => void\n onExit?: (key: string | number) => void\n onExited?: (key: string | number) => void\n}\n\n/**\n * useTransitionGroup - staggered animations for multiple items\n */\nfunction useTransitionGroup<T extends Record<string, number>>(\n options: UseTransitionGroupProps<T>\n) {\n // status of each item\n const [statuses, setStatuses] = useState<\n Record<string | number, UseTransitionStatus>\n >(\n () =>\n Object.fromEntries(\n options.items.map((item) => [\n item.key,\n options.mountOnEnter ? \"exited\" : \"entered\",\n ])\n )\n )\n\n // refs to cancel per-item animations\n const animatingRefs = useRef<Record<string | number, (() => void) | null>>({})\n\n // track mounted items (for mount/unmount)\n const [mounted, setMounted] = useState<Record<string | number, boolean>>(\n () =>\n Object.fromEntries(\n options.items.map((item) => [\n item.key,\n !options.mountOnEnter,\n ])\n )\n )\n\n // animate a single item\n const animateItem = useCallback(\n (item: UseTransitionGroupItem<T>, entering: boolean, delay = 0) => {\n // cancel previous\n animatingRefs.current[item.key]?.()\n\n if (entering) setStatuses((s: any) => ({ ...s, [item.key]: \"entering\" }))\n else setStatuses((s: any) => ({ ...s, [item.key]: \"exiting\" }))\n\n if (entering && options.mountOnEnter) {\n setMounted((m) => ({ ...m, [item.key]: true }))\n }\n\n // start animation after delay\n const timeout = setTimeout(() => {\n if (entering) options.onEnter?.(item.key)\n else options.onExit?.(item.key)\n\n animatingRefs.current[item.key] = animate({\n from: entering ? item.from : item.to,\n to: entering ? item.to : item.from,\n duration: options.duration ?? 400,\n onUpdate: (value, progress) =>\n options.onUpdate?.(value, item.key, progress),\n onDone: () => {\n if (entering) {\n setStatuses((s: any) => ({ ...s, [item.key]: \"entered\" }))\n options.onEntered?.(item.key)\n } else {\n setStatuses((s: any) => ({ ...s, [item.key]: \"exited\" }))\n options.onExited?.(item.key)\n if (options.unmountOnExit) {\n setMounted((m) => ({ ...m, [item.key]: false }))\n }\n }\n },\n })\n }, delay)\n\n return () => clearTimeout(timeout)\n },\n [options]\n )\n\n // run staggered animation on array of items\n const run = useCallback(\n (entering: boolean) => {\n options.items.forEach((item, index) => {\n const delay = (options.stagger ?? 100) * index\n const status = statuses[item.key]\n\n // skip if already animating in same direction\n if (entering && (status === \"entering\" || status === \"entered\")) return\n if (!entering && (status === \"exiting\" || status === \"exited\")) return\n\n animateItem(item, entering, delay)\n })\n },\n [options.items, options.stagger, animateItem, statuses]\n )\n\n const enter = useCallback(() => run(true), [run])\n const exit = useCallback(() => run(false), [run])\n const toggle = useCallback(() => {\n const anyEntered = Object.values(statuses).some(\n (s) => s === \"entering\" || s === \"entered\"\n )\n run(!anyEntered)\n }, [run, statuses])\n\n return {\n statuses,\n mounted,\n enter,\n exit,\n toggle,\n }\n}\n\nexport default useTransitionGroup"],"names":[],"mappings":";;;;AAwBA;;AAEG;AACH;;;AAUe;;;;AAOZ;;;AAOY;;;;AAOZ;;;;AAKM;AAAc;;AACT;AAEL;AACG;;;AAIH;;AACG;;;;;AAIG;AACA;AACA;;;;;AAKM;;;;AAGA;;AAEA;AACG;;;;AAIX;;AAGJ;AACH;;AAKH;;;AAGS;;;;;;;AAOA;AACH;AACH;AAIH;AACA;AACA;;AAIG;AACH;;;;;;;;AASH;;"}
|
|
1
|
+
{"version":3,"file":"useTransitionGroup.js","sources":["../../src/hooks/useTransitionGroup.ts"],"sourcesContent":["\"use client\"\r\nimport { useRef, useState, useCallback } from \"react\"\r\nimport animate from \"../animate\"\r\nimport { UseTransitionStatus } from \"./useTransition\"\r\n\r\nexport type UseTransitionGroupItem<T extends Record<string, number>> = {\r\n key: string | number\r\n from: T\r\n to: T\r\n}\r\n\r\nexport type UseTransitionGroupProps<T extends Record<string, number>> = {\r\n items: UseTransitionGroupItem<T>[]\r\n duration?: number\r\n stagger?: number // delay between items in ms\r\n mountOnEnter?: boolean\r\n unmountOnExit?: boolean\r\n onUpdate?: (value: T, key: string | number, progress: number) => void\r\n onEnter?: (key: string | number) => void\r\n onEntered?: (key: string | number) => void\r\n onExit?: (key: string | number) => void\r\n onExited?: (key: string | number) => void\r\n}\r\n\r\n/**\r\n * useTransitionGroup - staggered animations for multiple items\r\n */\r\nfunction useTransitionGroup<T extends Record<string, number>>(\r\n options: UseTransitionGroupProps<T>\r\n) {\r\n // status of each item\r\n const [statuses, setStatuses] = useState<\r\n Record<string | number, UseTransitionStatus>\r\n >(\r\n () =>\r\n Object.fromEntries(\r\n options.items.map((item) => [\r\n item.key,\r\n options.mountOnEnter ? \"exited\" : \"entered\",\r\n ])\r\n )\r\n )\r\n\r\n // refs to cancel per-item animations\r\n const animatingRefs = useRef<Record<string | number, (() => void) | null>>({})\r\n\r\n // track mounted items (for mount/unmount)\r\n const [mounted, setMounted] = useState<Record<string | number, boolean>>(\r\n () =>\r\n Object.fromEntries(\r\n options.items.map((item) => [\r\n item.key,\r\n !options.mountOnEnter,\r\n ])\r\n )\r\n )\r\n\r\n // animate a single item\r\n const animateItem = useCallback(\r\n (item: UseTransitionGroupItem<T>, entering: boolean, delay = 0) => {\r\n // cancel previous\r\n animatingRefs.current[item.key]?.()\r\n\r\n if (entering) setStatuses((s: any) => ({ ...s, [item.key]: \"entering\" }))\r\n else setStatuses((s: any) => ({ ...s, [item.key]: \"exiting\" }))\r\n\r\n if (entering && options.mountOnEnter) {\r\n setMounted((m) => ({ ...m, [item.key]: true }))\r\n }\r\n\r\n // start animation after delay\r\n const timeout = setTimeout(() => {\r\n if (entering) options.onEnter?.(item.key)\r\n else options.onExit?.(item.key)\r\n\r\n animatingRefs.current[item.key] = animate({\r\n from: entering ? item.from : item.to,\r\n to: entering ? item.to : item.from,\r\n duration: options.duration ?? 400,\r\n onUpdate: (value, progress) =>\r\n options.onUpdate?.(value, item.key, progress),\r\n onDone: () => {\r\n if (entering) {\r\n setStatuses((s: any) => ({ ...s, [item.key]: \"entered\" }))\r\n options.onEntered?.(item.key)\r\n } else {\r\n setStatuses((s: any) => ({ ...s, [item.key]: \"exited\" }))\r\n options.onExited?.(item.key)\r\n if (options.unmountOnExit) {\r\n setMounted((m) => ({ ...m, [item.key]: false }))\r\n }\r\n }\r\n },\r\n })\r\n }, delay)\r\n\r\n return () => clearTimeout(timeout)\r\n },\r\n [options]\r\n )\r\n\r\n // run staggered animation on array of items\r\n const run = useCallback(\r\n (entering: boolean) => {\r\n options.items.forEach((item, index) => {\r\n const delay = (options.stagger ?? 100) * index\r\n const status = statuses[item.key]\r\n\r\n // skip if already animating in same direction\r\n if (entering && (status === \"entering\" || status === \"entered\")) return\r\n if (!entering && (status === \"exiting\" || status === \"exited\")) return\r\n\r\n animateItem(item, entering, delay)\r\n })\r\n },\r\n [options.items, options.stagger, animateItem, statuses]\r\n )\r\n\r\n const enter = useCallback(() => run(true), [run])\r\n const exit = useCallback(() => run(false), [run])\r\n const toggle = useCallback(() => {\r\n const anyEntered = Object.values(statuses).some(\r\n (s) => s === \"entering\" || s === \"entered\"\r\n )\r\n run(!anyEntered)\r\n }, [run, statuses])\r\n\r\n return {\r\n statuses,\r\n mounted,\r\n enter,\r\n exit,\r\n toggle,\r\n }\r\n}\r\n\r\nexport default useTransitionGroup"],"names":[],"mappings":";;;;AAwBA;;AAEG;AACH;;;AAUe;;;;AAOZ;;;AAOY;;;;AAOZ;;;;AAKM;AAAc;;AACT;AAEL;AACG;;;AAIH;;AACG;;;;;AAIG;AACA;AACA;;;;;AAKM;;;;AAGA;;AAEA;AACG;;;;AAIX;;AAGJ;AACH;;AAKH;;;AAGS;;;;;;;AAOA;AACH;AACH;AAIH;AACA;AACA;;AAIG;AACH;;;;;;;;AASH;;"}
|
package/index.cjs
CHANGED
|
@@ -18,6 +18,7 @@ var index$1 = require('./Iframe/index.cjs');
|
|
|
18
18
|
var index$6 = require('./animate/index.cjs');
|
|
19
19
|
var useTransition = require('./hooks/useTransition.cjs');
|
|
20
20
|
var useTransitionGroup = require('./hooks/useTransitionGroup.cjs');
|
|
21
|
+
var useInView = require('./hooks/useInView.cjs');
|
|
21
22
|
var index$7 = require('./css/index.cjs');
|
|
22
23
|
var index$8 = require('./theme/index.cjs');
|
|
23
24
|
var getValue = require('./css/getValue.cjs');
|
|
@@ -49,6 +50,7 @@ exports.Iframe = index$1;
|
|
|
49
50
|
exports.animate = index$6.default;
|
|
50
51
|
exports.useTransition = useTransition;
|
|
51
52
|
exports.useTransitionGroup = useTransitionGroup;
|
|
53
|
+
exports.useInView = useInView;
|
|
52
54
|
exports.breakpoints = index$7.breakpoints;
|
|
53
55
|
exports.css = index$7.css;
|
|
54
56
|
exports.themeRootClass = index$8.themeRootClass;
|
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { default as Iframe, IframeProps } from './Iframe/index.js';
|
|
|
16
16
|
export { AnimateOptions, default as animate } from './animate/index.js';
|
|
17
17
|
export { UseTransitionProps, UseTransitionStatus, default as useTransition } from './hooks/useTransition.js';
|
|
18
18
|
export { UseTransitionGroupItem, UseTransitionGroupProps, default as useTransitionGroup } from './hooks/useTransitionGroup.js';
|
|
19
|
+
export { UseInViewOptions, default as useInView } from './hooks/useInView.js';
|
|
19
20
|
export { breakpoints, css } from './css/index.js';
|
|
20
21
|
export { themeRootClass } from './theme/index.js';
|
|
21
22
|
export { Aliases, BreakpointKeys, CSSBreakpointType, CSSOptionProps, CSSProps, CSSValueType, FN, GlobalCSS } from './css/types.js';
|
package/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export { default as Iframe } from './Iframe/index.js';
|
|
|
16
16
|
export { default as animate } from './animate/index.js';
|
|
17
17
|
export { default as useTransition } from './hooks/useTransition.js';
|
|
18
18
|
export { default as useTransitionGroup } from './hooks/useTransitionGroup.js';
|
|
19
|
+
export { default as useInView } from './hooks/useInView.js';
|
|
19
20
|
export { breakpoints, css } from './css/index.js';
|
|
20
21
|
export { themeRootClass } from './theme/index.js';
|
|
21
22
|
export { default as getValue } from './css/getValue.js';
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|