@zentauri-ui/zentauri-components 1.1.0 → 1.2.0
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/README.md +62 -21
- package/dist/chunk-2VQJ6OIL.js +31 -0
- package/dist/chunk-2VQJ6OIL.js.map +1 -0
- package/dist/chunk-73VCO5TE.mjs +29 -0
- package/dist/chunk-73VCO5TE.mjs.map +1 -0
- package/dist/chunk-BSWYZTYK.js +31 -0
- package/dist/chunk-BSWYZTYK.js.map +1 -0
- package/dist/chunk-CY5BQKRZ.mjs +29 -0
- package/dist/chunk-CY5BQKRZ.mjs.map +1 -0
- package/dist/chunk-DFEZH7TC.mjs +27 -0
- package/dist/chunk-DFEZH7TC.mjs.map +1 -0
- package/dist/chunk-FT2LMA66.mjs +25 -0
- package/dist/chunk-FT2LMA66.mjs.map +1 -0
- package/dist/chunk-JE3PD5ZA.js +107 -0
- package/dist/chunk-JE3PD5ZA.js.map +1 -0
- package/dist/chunk-JXCTEAXD.js +38 -0
- package/dist/chunk-JXCTEAXD.js.map +1 -0
- package/dist/chunk-LIJ6BDGP.mjs +36 -0
- package/dist/chunk-LIJ6BDGP.mjs.map +1 -0
- package/dist/chunk-PMAF6FBF.mjs +37 -0
- package/dist/chunk-PMAF6FBF.mjs.map +1 -0
- package/dist/chunk-TZ2JVWTZ.mjs +104 -0
- package/dist/chunk-TZ2JVWTZ.mjs.map +1 -0
- package/dist/chunk-UIYFEP3I.js +39 -0
- package/dist/chunk-UIYFEP3I.js.map +1 -0
- package/dist/chunk-UOZYPWDZ.js +32 -0
- package/dist/chunk-UOZYPWDZ.js.map +1 -0
- package/dist/chunk-WL5I7RVS.mjs +54 -0
- package/dist/chunk-WL5I7RVS.mjs.map +1 -0
- package/dist/chunk-WP7GYBRI.js +27 -0
- package/dist/chunk-WP7GYBRI.js.map +1 -0
- package/dist/chunk-YPLVTUYL.js +56 -0
- package/dist/chunk-YPLVTUYL.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.d.mts +14 -0
- package/dist/hooks/useBodyScrollLock.d.ts +14 -0
- package/dist/hooks/useBodyScrollLock.js +13 -0
- package/dist/hooks/useBodyScrollLock.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.mjs +4 -0
- package/dist/hooks/useBodyScrollLock.mjs.map +1 -0
- package/dist/hooks/useClickOutside.d.mts +23 -0
- package/dist/hooks/useClickOutside.d.ts +23 -0
- package/dist/hooks/useClickOutside.js +13 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useClickOutside.mjs +4 -0
- package/dist/hooks/useClickOutside.mjs.map +1 -0
- package/dist/hooks/useClipboard.d.mts +22 -0
- package/dist/hooks/useClipboard.d.ts +22 -0
- package/dist/hooks/useClipboard.js +51 -0
- package/dist/hooks/useClipboard.js.map +1 -0
- package/dist/hooks/useClipboard.mjs +49 -0
- package/dist/hooks/useClipboard.mjs.map +1 -0
- package/dist/hooks/useControllableState.d.mts +22 -0
- package/dist/hooks/useControllableState.d.ts +22 -0
- package/dist/hooks/useControllableState.js +13 -0
- package/dist/hooks/useControllableState.js.map +1 -0
- package/dist/hooks/useControllableState.mjs +4 -0
- package/dist/hooks/useControllableState.mjs.map +1 -0
- package/dist/hooks/useDebouncedValue.d.mts +14 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +22 -0
- package/dist/hooks/useDebouncedValue.js.map +1 -0
- package/dist/hooks/useDebouncedValue.mjs +20 -0
- package/dist/hooks/useDebouncedValue.mjs.map +1 -0
- package/dist/hooks/useDisclosure.d.mts +25 -0
- package/dist/hooks/useDisclosure.d.ts +25 -0
- package/dist/hooks/useDisclosure.js +37 -0
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/hooks/useDisclosure.mjs +35 -0
- package/dist/hooks/useDisclosure.mjs.map +1 -0
- package/dist/hooks/useDocumentTitle.d.mts +19 -0
- package/dist/hooks/useDocumentTitle.d.ts +19 -0
- package/dist/hooks/useDocumentTitle.js +40 -0
- package/dist/hooks/useDocumentTitle.js.map +1 -0
- package/dist/hooks/useDocumentTitle.mjs +38 -0
- package/dist/hooks/useDocumentTitle.mjs.map +1 -0
- package/dist/hooks/useFocusManagement.d.mts +24 -0
- package/dist/hooks/useFocusManagement.d.ts +24 -0
- package/dist/hooks/useFocusManagement.js +14 -0
- package/dist/hooks/useFocusManagement.js.map +1 -0
- package/dist/hooks/useFocusManagement.mjs +5 -0
- package/dist/hooks/useFocusManagement.mjs.map +1 -0
- package/dist/hooks/useHover.d.mts +15 -0
- package/dist/hooks/useHover.d.ts +15 -0
- package/dist/hooks/useHover.js +37 -0
- package/dist/hooks/useHover.js.map +1 -0
- package/dist/hooks/useHover.mjs +35 -0
- package/dist/hooks/useHover.mjs.map +1 -0
- package/dist/hooks/useInView.d.mts +19 -0
- package/dist/hooks/useInView.d.ts +19 -0
- package/dist/hooks/useInView.js +15 -0
- package/dist/hooks/useInView.js.map +1 -0
- package/dist/hooks/useInView.mjs +13 -0
- package/dist/hooks/useInView.mjs.map +1 -0
- package/dist/hooks/useIntersectionObserver.d.mts +19 -0
- package/dist/hooks/useIntersectionObserver.d.ts +19 -0
- package/dist/hooks/useIntersectionObserver.js +13 -0
- package/dist/hooks/useIntersectionObserver.js.map +1 -0
- package/dist/hooks/useIntersectionObserver.mjs +4 -0
- package/dist/hooks/useIntersectionObserver.mjs.map +1 -0
- package/dist/hooks/useIsMounted.d.mts +11 -0
- package/dist/hooks/useIsMounted.d.ts +11 -0
- package/dist/hooks/useIsMounted.js +20 -0
- package/dist/hooks/useIsMounted.js.map +1 -0
- package/dist/hooks/useIsMounted.mjs +18 -0
- package/dist/hooks/useIsMounted.mjs.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.mts +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.mjs +9 -0
- package/dist/hooks/useIsomorphicLayoutEffect.mjs.map +1 -0
- package/dist/hooks/useLocalStorage.d.mts +22 -0
- package/dist/hooks/useLocalStorage.d.ts +22 -0
- package/dist/hooks/useLocalStorage.js +84 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/hooks/useLocalStorage.mjs +82 -0
- package/dist/hooks/useLocalStorage.mjs.map +1 -0
- package/dist/hooks/useMediaQuery.d.mts +13 -0
- package/dist/hooks/useMediaQuery.d.ts +13 -0
- package/dist/hooks/useMediaQuery.js +13 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks/useMediaQuery.mjs +4 -0
- package/dist/hooks/useMediaQuery.mjs.map +1 -0
- package/dist/hooks/useNetworkStatus.d.mts +10 -0
- package/dist/hooks/useNetworkStatus.d.ts +10 -0
- package/dist/hooks/useNetworkStatus.js +30 -0
- package/dist/hooks/useNetworkStatus.js.map +1 -0
- package/dist/hooks/useNetworkStatus.mjs +28 -0
- package/dist/hooks/useNetworkStatus.mjs.map +1 -0
- package/dist/hooks/usePageVisibility.d.mts +10 -0
- package/dist/hooks/usePageVisibility.d.ts +10 -0
- package/dist/hooks/usePageVisibility.js +28 -0
- package/dist/hooks/usePageVisibility.js.map +1 -0
- package/dist/hooks/usePageVisibility.mjs +26 -0
- package/dist/hooks/usePageVisibility.mjs.map +1 -0
- package/dist/hooks/usePagination.d.mts +5 -0
- package/dist/hooks/usePagination.d.ts +5 -0
- package/dist/hooks/usePagination.js +18 -0
- package/dist/hooks/usePagination.js.map +1 -0
- package/dist/hooks/usePagination.mjs +5 -0
- package/dist/hooks/usePagination.mjs.map +1 -0
- package/dist/hooks/usePrefersColorScheme.d.mts +10 -0
- package/dist/hooks/usePrefersColorScheme.d.ts +10 -0
- package/dist/hooks/usePrefersColorScheme.js +17 -0
- package/dist/hooks/usePrefersColorScheme.js.map +1 -0
- package/dist/hooks/usePrefersColorScheme.mjs +15 -0
- package/dist/hooks/usePrefersColorScheme.mjs.map +1 -0
- package/dist/hooks/usePrefersReducedMotion.d.mts +10 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +10 -0
- package/dist/hooks/usePrefersReducedMotion.js +13 -0
- package/dist/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/hooks/usePrefersReducedMotion.mjs +11 -0
- package/dist/hooks/usePrefersReducedMotion.mjs.map +1 -0
- package/dist/hooks/useResizeObserver.d.mts +23 -0
- package/dist/hooks/useResizeObserver.d.ts +23 -0
- package/dist/hooks/useResizeObserver.js +38 -0
- package/dist/hooks/useResizeObserver.js.map +1 -0
- package/dist/hooks/useResizeObserver.mjs +36 -0
- package/dist/hooks/useResizeObserver.mjs.map +1 -0
- package/dist/hooks/useSessionStorage.d.mts +22 -0
- package/dist/hooks/useSessionStorage.d.ts +22 -0
- package/dist/hooks/useSessionStorage.js +58 -0
- package/dist/hooks/useSessionStorage.js.map +1 -0
- package/dist/hooks/useSessionStorage.mjs +56 -0
- package/dist/hooks/useSessionStorage.mjs.map +1 -0
- package/dist/hooks/useThrottledCallback.d.mts +14 -0
- package/dist/hooks/useThrottledCallback.d.ts +14 -0
- package/dist/hooks/useThrottledCallback.js +27 -0
- package/dist/hooks/useThrottledCallback.js.map +1 -0
- package/dist/hooks/useThrottledCallback.mjs +25 -0
- package/dist/hooks/useThrottledCallback.mjs.map +1 -0
- package/dist/hooks/useToggle.d.mts +9 -0
- package/dist/hooks/useToggle.d.ts +9 -0
- package/dist/hooks/useToggle.js +20 -0
- package/dist/hooks/useToggle.js.map +1 -0
- package/dist/hooks/useToggle.mjs +18 -0
- package/dist/hooks/useToggle.mjs.map +1 -0
- package/dist/hooks/useWindowSize.d.mts +14 -0
- package/dist/hooks/useWindowSize.d.ts +14 -0
- package/dist/hooks/useWindowSize.js +30 -0
- package/dist/hooks/useWindowSize.js.map +1 -0
- package/dist/hooks/useWindowSize.mjs +28 -0
- package/dist/hooks/useWindowSize.mjs.map +1 -0
- package/dist/hooks/utils.d.mts +8 -0
- package/dist/hooks/utils.d.ts +8 -0
- package/dist/hooks/utils.js +24 -0
- package/dist/hooks/utils.js.map +1 -0
- package/dist/hooks/utils.mjs +3 -0
- package/dist/hooks/utils.mjs.map +1 -0
- package/dist/index-ClPu5gDp.d.ts +86 -0
- package/dist/index-D4p9fn1o.d.mts +86 -0
- package/dist/ui/accordion.js +5 -5
- package/dist/ui/accordion.mjs +1 -1
- package/dist/ui/alert.js +7 -7
- package/dist/ui/alert.mjs +1 -1
- package/dist/ui/avatar.js +6 -6
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/avatar.mjs +1 -1
- package/dist/ui/avatar.mjs.map +1 -1
- package/dist/ui/badge.js +2 -2
- package/dist/ui/badge.mjs +1 -1
- package/dist/ui/breadcrumb.js +7 -7
- package/dist/ui/breadcrumb.mjs +1 -1
- package/dist/ui/buttons.js +3 -3
- package/dist/ui/buttons.mjs +1 -1
- package/dist/ui/card.js +7 -7
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/card.mjs +1 -1
- package/dist/ui/card.mjs.map +1 -1
- package/dist/ui/divider.js +6 -6
- package/dist/ui/divider.mjs +1 -1
- package/dist/ui/drawer.js +15 -60
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/drawer.mjs +9 -54
- package/dist/ui/drawer.mjs.map +1 -1
- package/dist/ui/dropdown.js +6 -13
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +4 -11
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/empty-state.js +6 -6
- package/dist/ui/empty-state.js.map +1 -1
- package/dist/ui/empty-state.mjs +1 -1
- package/dist/ui/empty-state.mjs.map +1 -1
- package/dist/ui/file-upload.js +3 -3
- package/dist/ui/file-upload.mjs +1 -1
- package/dist/ui/inputs.js +3 -3
- package/dist/ui/inputs.mjs +1 -1
- package/dist/ui/modal.js +16 -61
- package/dist/ui/modal.js.map +1 -1
- package/dist/ui/modal.mjs +9 -54
- package/dist/ui/modal.mjs.map +1 -1
- package/dist/ui/pagination.d.mts +3 -81
- package/dist/ui/pagination.d.ts +3 -81
- package/dist/ui/pagination.js +13 -122
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +5 -114
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/progress.js +7 -10
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/progress.mjs +1 -4
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/select.js +6 -6
- package/dist/ui/select.mjs +1 -1
- package/dist/ui/skeleton.js +7 -7
- package/dist/ui/skeleton.mjs +1 -1
- package/dist/ui/slider.js +9 -9
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/slider.mjs +1 -1
- package/dist/ui/slider.mjs.map +1 -1
- package/dist/ui/spinner.js +24 -10
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/spinner.mjs +17 -3
- package/dist/ui/spinner.mjs.map +1 -1
- package/dist/ui/stepper.js +6 -6
- package/dist/ui/stepper.mjs +1 -1
- package/dist/ui/table.js +9 -9
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/table.mjs +1 -1
- package/dist/ui/table.mjs.map +1 -1
- package/dist/ui/tabs.js +5 -5
- package/dist/ui/tabs.mjs +1 -1
- package/dist/ui/toast.js +7 -7
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toast.mjs +1 -1
- package/dist/ui/toast.mjs.map +1 -1
- package/dist/ui/toggle.js +3 -3
- package/dist/ui/toggle.mjs +1 -1
- package/dist/ui/tooltip.js +2 -2
- package/dist/ui/tooltip.mjs +1 -1
- package/package.json +7 -2
- package/dist/chunk-B23TPTVG.mjs +0 -11
- package/dist/chunk-B23TPTVG.mjs.map +0 -1
- package/dist/chunk-WZ2GOU2J.js +0 -13
- package/dist/chunk-WZ2GOU2J.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribes to `window.matchMedia(query)` and returns whether the query currently matches.
|
|
3
|
+
*
|
|
4
|
+
* On the server or when `matchMedia` is missing, `defaultValue` is used for the initial render and the effect no-ops.
|
|
5
|
+
* The `change` listener keeps `matches` updated when the viewport or user settings change.
|
|
6
|
+
*
|
|
7
|
+
* @param query - A valid media query string, e.g. `"(min-width: 768px)"`.
|
|
8
|
+
* @param defaultValue - Value to use before hydration or when `matchMedia` is unavailable (default `false`).
|
|
9
|
+
* @returns Current `matches` boolean for the query.
|
|
10
|
+
*/
|
|
11
|
+
declare function useMediaQuery(query: string, defaultValue?: boolean): boolean;
|
|
12
|
+
|
|
13
|
+
export { useMediaQuery };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkWP7GYBRI_js = require('../chunk-WP7GYBRI.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "useMediaQuery", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkWP7GYBRI_js.useMediaQuery; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=useMediaQuery.js.map
|
|
13
|
+
//# sourceMappingURL=useMediaQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"useMediaQuery.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"useMediaQuery.mjs"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflects browser online/offline connectivity using `navigator.onLine` and the `window` `"online"` / `"offline"` events.
|
|
3
|
+
*
|
|
4
|
+
* Defaults to `true` during SSR when `navigator` is undefined. Does not expose `connection` quality metrics—only reachability hints.
|
|
5
|
+
*
|
|
6
|
+
* @returns `true` when the browser believes the device is online, `false` when offline.
|
|
7
|
+
*/
|
|
8
|
+
declare function useNetworkStatus(): boolean;
|
|
9
|
+
|
|
10
|
+
export { useNetworkStatus };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflects browser online/offline connectivity using `navigator.onLine` and the `window` `"online"` / `"offline"` events.
|
|
3
|
+
*
|
|
4
|
+
* Defaults to `true` during SSR when `navigator` is undefined. Does not expose `connection` quality metrics—only reachability hints.
|
|
5
|
+
*
|
|
6
|
+
* @returns `true` when the browser believes the device is online, `false` when offline.
|
|
7
|
+
*/
|
|
8
|
+
declare function useNetworkStatus(): boolean;
|
|
9
|
+
|
|
10
|
+
export { useNetworkStatus };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
// src/hooks/useNetworkStatus/useNetworkStatus.ts
|
|
7
|
+
function useNetworkStatus() {
|
|
8
|
+
const [online, setOnline] = react.useState(
|
|
9
|
+
() => typeof navigator === "undefined" ? true : navigator.onLine
|
|
10
|
+
);
|
|
11
|
+
react.useEffect(() => {
|
|
12
|
+
const onOnline = () => {
|
|
13
|
+
setOnline(true);
|
|
14
|
+
};
|
|
15
|
+
const onOffline = () => {
|
|
16
|
+
setOnline(false);
|
|
17
|
+
};
|
|
18
|
+
window.addEventListener("online", onOnline);
|
|
19
|
+
window.addEventListener("offline", onOffline);
|
|
20
|
+
return () => {
|
|
21
|
+
window.removeEventListener("online", onOnline);
|
|
22
|
+
window.removeEventListener("offline", onOffline);
|
|
23
|
+
};
|
|
24
|
+
}, []);
|
|
25
|
+
return online;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.useNetworkStatus = useNetworkStatus;
|
|
29
|
+
//# sourceMappingURL=useNetworkStatus.js.map
|
|
30
|
+
//# sourceMappingURL=useNetworkStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useNetworkStatus/useNetworkStatus.ts"],"names":["useState","useEffect"],"mappings":";;;;;AAWO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAAA;AAAA,IAAS,MACnC,OAAO,SAAA,KAAc,WAAA,GAAc,OAAO,SAAA,CAAU;AAAA,GACtD;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,IAChB,CAAA;AACA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AAC1C,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC5C,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAC7C,MAAA,MAAA,CAAO,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,IACjD,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,MAAA;AACT","file":"useNetworkStatus.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Reflects browser online/offline connectivity using `navigator.onLine` and the `window` `\"online\"` / `\"offline\"` events.\n *\n * Defaults to `true` during SSR when `navigator` is undefined. Does not expose `connection` quality metrics—only reachability hints.\n *\n * @returns `true` when the browser believes the device is online, `false` when offline.\n */\nexport function useNetworkStatus(): boolean {\n const [online, setOnline] = useState(() =>\n typeof navigator === \"undefined\" ? true : navigator.onLine,\n );\n\n useEffect(() => {\n const onOnline = () => {\n setOnline(true);\n };\n const onOffline = () => {\n setOnline(false);\n };\n window.addEventListener(\"online\", onOnline);\n window.addEventListener(\"offline\", onOffline);\n return () => {\n window.removeEventListener(\"online\", onOnline);\n window.removeEventListener(\"offline\", onOffline);\n };\n }, []);\n\n return online;\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
// src/hooks/useNetworkStatus/useNetworkStatus.ts
|
|
5
|
+
function useNetworkStatus() {
|
|
6
|
+
const [online, setOnline] = useState(
|
|
7
|
+
() => typeof navigator === "undefined" ? true : navigator.onLine
|
|
8
|
+
);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const onOnline = () => {
|
|
11
|
+
setOnline(true);
|
|
12
|
+
};
|
|
13
|
+
const onOffline = () => {
|
|
14
|
+
setOnline(false);
|
|
15
|
+
};
|
|
16
|
+
window.addEventListener("online", onOnline);
|
|
17
|
+
window.addEventListener("offline", onOffline);
|
|
18
|
+
return () => {
|
|
19
|
+
window.removeEventListener("online", onOnline);
|
|
20
|
+
window.removeEventListener("offline", onOffline);
|
|
21
|
+
};
|
|
22
|
+
}, []);
|
|
23
|
+
return online;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { useNetworkStatus };
|
|
27
|
+
//# sourceMappingURL=useNetworkStatus.mjs.map
|
|
28
|
+
//# sourceMappingURL=useNetworkStatus.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useNetworkStatus/useNetworkStatus.ts"],"names":[],"mappings":";;;AAWO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA;AAAA,IAAS,MACnC,OAAO,SAAA,KAAc,WAAA,GAAc,OAAO,SAAA,CAAU;AAAA,GACtD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,IAChB,CAAA;AACA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AAC1C,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC5C,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAC7C,MAAA,MAAA,CAAO,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,IACjD,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,MAAA;AACT","file":"useNetworkStatus.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Reflects browser online/offline connectivity using `navigator.onLine` and the `window` `\"online\"` / `\"offline\"` events.\n *\n * Defaults to `true` during SSR when `navigator` is undefined. Does not expose `connection` quality metrics—only reachability hints.\n *\n * @returns `true` when the browser believes the device is online, `false` when offline.\n */\nexport function useNetworkStatus(): boolean {\n const [online, setOnline] = useState(() =>\n typeof navigator === \"undefined\" ? true : navigator.onLine,\n );\n\n useEffect(() => {\n const onOnline = () => {\n setOnline(true);\n };\n const onOffline = () => {\n setOnline(false);\n };\n window.addEventListener(\"online\", onOnline);\n window.addEventListener(\"offline\", onOffline);\n return () => {\n window.removeEventListener(\"online\", onOnline);\n window.removeEventListener(\"offline\", onOffline);\n };\n }, []);\n\n return online;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks `document.visibilityState` (`"visible"`, `"hidden"`, or `"prerender"`) across tab visibility changes.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to `"visibilitychange"` so backgrounding a tab or switching windows updates state. SSR defaults to `"visible"`.
|
|
5
|
+
*
|
|
6
|
+
* @returns Current `DocumentVisibilityState` from the Page Visibility API.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePageVisibility(): DocumentVisibilityState;
|
|
9
|
+
|
|
10
|
+
export { usePageVisibility };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks `document.visibilityState` (`"visible"`, `"hidden"`, or `"prerender"`) across tab visibility changes.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to `"visibilitychange"` so backgrounding a tab or switching windows updates state. SSR defaults to `"visible"`.
|
|
5
|
+
*
|
|
6
|
+
* @returns Current `DocumentVisibilityState` from the Page Visibility API.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePageVisibility(): DocumentVisibilityState;
|
|
9
|
+
|
|
10
|
+
export { usePageVisibility };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
// src/hooks/usePageVisibility/usePageVisibility.ts
|
|
7
|
+
function usePageVisibility() {
|
|
8
|
+
const [state, setState] = react.useState(
|
|
9
|
+
() => typeof document === "undefined" ? "visible" : document.visibilityState
|
|
10
|
+
);
|
|
11
|
+
react.useEffect(() => {
|
|
12
|
+
if (typeof document === "undefined") {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const onChange = () => {
|
|
16
|
+
setState(document.visibilityState);
|
|
17
|
+
};
|
|
18
|
+
document.addEventListener("visibilitychange", onChange);
|
|
19
|
+
return () => {
|
|
20
|
+
document.removeEventListener("visibilitychange", onChange);
|
|
21
|
+
};
|
|
22
|
+
}, []);
|
|
23
|
+
return state;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
exports.usePageVisibility = usePageVisibility;
|
|
27
|
+
//# sourceMappingURL=usePageVisibility.js.map
|
|
28
|
+
//# sourceMappingURL=usePageVisibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePageVisibility/usePageVisibility.ts"],"names":["useState","useEffect"],"mappings":";;;;;AAWO,SAAS,iBAAA,GAA6C;AAC3D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,cAAA;AAAA,IAAkC,MAC1D,OAAO,QAAA,KAAa,WAAA,GAAc,YAAY,QAAA,CAAS;AAAA,GACzD;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,QAAA,CAAS,SAAS,eAAe,CAAA;AAAA,IACnC,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,oBAAoB,QAAQ,CAAA;AACtD,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,oBAAoB,QAAQ,CAAA;AAAA,IAC3D,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,KAAA;AACT","file":"usePageVisibility.js","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Tracks `document.visibilityState` (`\"visible\"`, `\"hidden\"`, or `\"prerender\"`) across tab visibility changes.\n *\n * Subscribes to `\"visibilitychange\"` so backgrounding a tab or switching windows updates state. SSR defaults to `\"visible\"`.\n *\n * @returns Current `DocumentVisibilityState` from the Page Visibility API.\n */\nexport function usePageVisibility(): DocumentVisibilityState {\n const [state, setState] = useState<DocumentVisibilityState>(() =>\n typeof document === \"undefined\" ? \"visible\" : document.visibilityState,\n );\n\n useEffect(() => {\n if (typeof document === \"undefined\") {\n return;\n }\n const onChange = () => {\n setState(document.visibilityState);\n };\n document.addEventListener(\"visibilitychange\", onChange);\n return () => {\n document.removeEventListener(\"visibilitychange\", onChange);\n };\n }, []);\n\n return state;\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
// src/hooks/usePageVisibility/usePageVisibility.ts
|
|
5
|
+
function usePageVisibility() {
|
|
6
|
+
const [state, setState] = useState(
|
|
7
|
+
() => typeof document === "undefined" ? "visible" : document.visibilityState
|
|
8
|
+
);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (typeof document === "undefined") {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const onChange = () => {
|
|
14
|
+
setState(document.visibilityState);
|
|
15
|
+
};
|
|
16
|
+
document.addEventListener("visibilitychange", onChange);
|
|
17
|
+
return () => {
|
|
18
|
+
document.removeEventListener("visibilitychange", onChange);
|
|
19
|
+
};
|
|
20
|
+
}, []);
|
|
21
|
+
return state;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { usePageVisibility };
|
|
25
|
+
//# sourceMappingURL=usePageVisibility.mjs.map
|
|
26
|
+
//# sourceMappingURL=usePageVisibility.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePageVisibility/usePageVisibility.ts"],"names":[],"mappings":";;;AAWO,SAAS,iBAAA,GAA6C;AAC3D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA;AAAA,IAAkC,MAC1D,OAAO,QAAA,KAAa,WAAA,GAAc,YAAY,QAAA,CAAS;AAAA,GACzD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,QAAA,CAAS,SAAS,eAAe,CAAA;AAAA,IACnC,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,oBAAoB,QAAQ,CAAA;AACtD,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,oBAAoB,QAAQ,CAAA;AAAA,IAC3D,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,KAAA;AACT","file":"usePageVisibility.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\n/**\n * Tracks `document.visibilityState` (`\"visible\"`, `\"hidden\"`, or `\"prerender\"`) across tab visibility changes.\n *\n * Subscribes to `\"visibilitychange\"` so backgrounding a tab or switching windows updates state. SSR defaults to `\"visible\"`.\n *\n * @returns Current `DocumentVisibilityState` from the Page Visibility API.\n */\nexport function usePageVisibility(): DocumentVisibilityState {\n const [state, setState] = useState<DocumentVisibilityState>(() =>\n typeof document === \"undefined\" ? \"visible\" : document.visibilityState,\n );\n\n useEffect(() => {\n if (typeof document === \"undefined\") {\n return;\n }\n const onChange = () => {\n setState(document.visibilityState);\n };\n document.addEventListener(\"visibilitychange\", onChange);\n return () => {\n document.removeEventListener(\"visibilitychange\", onChange);\n };\n }, []);\n\n return state;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { B as BuildPaginationItemsParams, a as PaginationPageItem, e as buildPaginationItems, u as usePagination } from '../index-D4p9fn1o.mjs';
|
|
2
|
+
import 'class-variance-authority';
|
|
3
|
+
import 'react';
|
|
4
|
+
import '../variants-Dd9pe-ov.mjs';
|
|
5
|
+
import 'class-variance-authority/types';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { B as BuildPaginationItemsParams, a as PaginationPageItem, e as buildPaginationItems, u as usePagination } from '../index-ClPu5gDp.js';
|
|
2
|
+
import 'class-variance-authority';
|
|
3
|
+
import 'react';
|
|
4
|
+
import '../variants-Dd9pe-ov.js';
|
|
5
|
+
import 'class-variance-authority/types';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkJE3PD5ZA_js = require('../chunk-JE3PD5ZA.js');
|
|
5
|
+
require('../chunk-UOZYPWDZ.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "buildPaginationItems", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunkJE3PD5ZA_js.buildPaginationItems; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "usePagination", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return chunkJE3PD5ZA_js.usePagination; }
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=usePagination.js.map
|
|
18
|
+
//# sourceMappingURL=usePagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"usePagination.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"usePagination.mjs"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type ColorSchemePreference = "light" | "dark";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the user’s preferred color scheme from `prefers-color-scheme: dark` via {@link useMediaQuery}.
|
|
4
|
+
*
|
|
5
|
+
* @param defaultScheme - Hydration / SSR fallback when media queries are unavailable (`"light"` or `"dark"`).
|
|
6
|
+
* @returns `"dark"` when the dark media query matches, otherwise `"light"`.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePrefersColorScheme(defaultScheme?: ColorSchemePreference): ColorSchemePreference;
|
|
9
|
+
|
|
10
|
+
export { type ColorSchemePreference, usePrefersColorScheme };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type ColorSchemePreference = "light" | "dark";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the user’s preferred color scheme from `prefers-color-scheme: dark` via {@link useMediaQuery}.
|
|
4
|
+
*
|
|
5
|
+
* @param defaultScheme - Hydration / SSR fallback when media queries are unavailable (`"light"` or `"dark"`).
|
|
6
|
+
* @returns `"dark"` when the dark media query matches, otherwise `"light"`.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePrefersColorScheme(defaultScheme?: ColorSchemePreference): ColorSchemePreference;
|
|
9
|
+
|
|
10
|
+
export { type ColorSchemePreference, usePrefersColorScheme };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkWP7GYBRI_js = require('../chunk-WP7GYBRI.js');
|
|
5
|
+
|
|
6
|
+
// src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts
|
|
7
|
+
function usePrefersColorScheme(defaultScheme = "light") {
|
|
8
|
+
const prefersDark = chunkWP7GYBRI_js.useMediaQuery(
|
|
9
|
+
"(prefers-color-scheme: dark)",
|
|
10
|
+
defaultScheme === "dark"
|
|
11
|
+
);
|
|
12
|
+
return prefersDark ? "dark" : "light";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
exports.usePrefersColorScheme = usePrefersColorScheme;
|
|
16
|
+
//# sourceMappingURL=usePrefersColorScheme.js.map
|
|
17
|
+
//# sourceMappingURL=usePrefersColorScheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts"],"names":["useMediaQuery"],"mappings":";;;;;AAYO,SAAS,qBAAA,CACd,gBAAuC,OAAA,EAChB;AACvB,EAAA,MAAM,WAAA,GAAcA,8BAAA;AAAA,IAClB,8BAAA;AAAA,IACA,aAAA,KAAkB;AAAA,GACpB;AACA,EAAA,OAAO,cAAc,MAAA,GAAS,OAAA;AAChC","file":"usePrefersColorScheme.js","sourcesContent":["\"use client\";\n\nimport { useMediaQuery } from \"../useMediaQuery\";\n\nexport type ColorSchemePreference = \"light\" | \"dark\";\n\n/**\n * Resolves the user’s preferred color scheme from `prefers-color-scheme: dark` via {@link useMediaQuery}.\n *\n * @param defaultScheme - Hydration / SSR fallback when media queries are unavailable (`\"light\"` or `\"dark\"`).\n * @returns `\"dark\"` when the dark media query matches, otherwise `\"light\"`.\n */\nexport function usePrefersColorScheme(\n defaultScheme: ColorSchemePreference = \"light\",\n): ColorSchemePreference {\n const prefersDark = useMediaQuery(\n \"(prefers-color-scheme: dark)\",\n defaultScheme === \"dark\",\n );\n return prefersDark ? \"dark\" : \"light\";\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMediaQuery } from '../chunk-FT2LMA66.mjs';
|
|
3
|
+
|
|
4
|
+
// src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts
|
|
5
|
+
function usePrefersColorScheme(defaultScheme = "light") {
|
|
6
|
+
const prefersDark = useMediaQuery(
|
|
7
|
+
"(prefers-color-scheme: dark)",
|
|
8
|
+
defaultScheme === "dark"
|
|
9
|
+
);
|
|
10
|
+
return prefersDark ? "dark" : "light";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { usePrefersColorScheme };
|
|
14
|
+
//# sourceMappingURL=usePrefersColorScheme.mjs.map
|
|
15
|
+
//# sourceMappingURL=usePrefersColorScheme.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts"],"names":[],"mappings":";;;AAYO,SAAS,qBAAA,CACd,gBAAuC,OAAA,EAChB;AACvB,EAAA,MAAM,WAAA,GAAc,aAAA;AAAA,IAClB,8BAAA;AAAA,IACA,aAAA,KAAkB;AAAA,GACpB;AACA,EAAA,OAAO,cAAc,MAAA,GAAS,OAAA;AAChC","file":"usePrefersColorScheme.mjs","sourcesContent":["\"use client\";\n\nimport { useMediaQuery } from \"../useMediaQuery\";\n\nexport type ColorSchemePreference = \"light\" | \"dark\";\n\n/**\n * Resolves the user’s preferred color scheme from `prefers-color-scheme: dark` via {@link useMediaQuery}.\n *\n * @param defaultScheme - Hydration / SSR fallback when media queries are unavailable (`\"light\"` or `\"dark\"`).\n * @returns `\"dark\"` when the dark media query matches, otherwise `\"light\"`.\n */\nexport function usePrefersColorScheme(\n defaultScheme: ColorSchemePreference = \"light\",\n): ColorSchemePreference {\n const prefersDark = useMediaQuery(\n \"(prefers-color-scheme: dark)\",\n defaultScheme === \"dark\",\n );\n return prefersDark ? \"dark\" : \"light\";\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns whether the user prefers reduced motion (`prefers-reduced-motion: reduce`).
|
|
3
|
+
*
|
|
4
|
+
* Use to disable non-essential animations or switch to instant transitions for accessibility.
|
|
5
|
+
*
|
|
6
|
+
* @returns `true` when reduced motion is requested.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
9
|
+
|
|
10
|
+
export { usePrefersReducedMotion };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns whether the user prefers reduced motion (`prefers-reduced-motion: reduce`).
|
|
3
|
+
*
|
|
4
|
+
* Use to disable non-essential animations or switch to instant transitions for accessibility.
|
|
5
|
+
*
|
|
6
|
+
* @returns `true` when reduced motion is requested.
|
|
7
|
+
*/
|
|
8
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
9
|
+
|
|
10
|
+
export { usePrefersReducedMotion };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkWP7GYBRI_js = require('../chunk-WP7GYBRI.js');
|
|
5
|
+
|
|
6
|
+
// src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.ts
|
|
7
|
+
function usePrefersReducedMotion() {
|
|
8
|
+
return chunkWP7GYBRI_js.useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
exports.usePrefersReducedMotion = usePrefersReducedMotion;
|
|
12
|
+
//# sourceMappingURL=usePrefersReducedMotion.js.map
|
|
13
|
+
//# sourceMappingURL=usePrefersReducedMotion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.ts"],"names":["useMediaQuery"],"mappings":";;;;;AAWO,SAAS,uBAAA,GAAmC;AACjD,EAAA,OAAOA,+BAAc,kCAAkC,CAAA;AACzD","file":"usePrefersReducedMotion.js","sourcesContent":["\"use client\";\n\nimport { useMediaQuery } from \"../useMediaQuery\";\n\n/**\n * Returns whether the user prefers reduced motion (`prefers-reduced-motion: reduce`).\n *\n * Use to disable non-essential animations or switch to instant transitions for accessibility.\n *\n * @returns `true` when reduced motion is requested.\n */\nexport function usePrefersReducedMotion(): boolean {\n return useMediaQuery(\"(prefers-reduced-motion: reduce)\");\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMediaQuery } from '../chunk-FT2LMA66.mjs';
|
|
3
|
+
|
|
4
|
+
// src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.ts
|
|
5
|
+
function usePrefersReducedMotion() {
|
|
6
|
+
return useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { usePrefersReducedMotion };
|
|
10
|
+
//# sourceMappingURL=usePrefersReducedMotion.mjs.map
|
|
11
|
+
//# sourceMappingURL=usePrefersReducedMotion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.ts"],"names":[],"mappings":";;;AAWO,SAAS,uBAAA,GAAmC;AACjD,EAAA,OAAO,cAAc,kCAAkC,CAAA;AACzD","file":"usePrefersReducedMotion.mjs","sourcesContent":["\"use client\";\n\nimport { useMediaQuery } from \"../useMediaQuery\";\n\n/**\n * Returns whether the user prefers reduced motion (`prefers-reduced-motion: reduce`).\n *\n * Use to disable non-essential animations or switch to instant transitions for accessibility.\n *\n * @returns `true` when reduced motion is requested.\n */\nexport function usePrefersReducedMotion(): boolean {\n return useMediaQuery(\"(prefers-reduced-motion: reduce)\");\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RefCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
type ElementSize = {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
type UseResizeObserverParams = {
|
|
8
|
+
/** When `false`, no `ResizeObserver` is attached. */
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Observes an element’s `contentRect` size via `ResizeObserver` and exposes `{ width, height }`.
|
|
13
|
+
*
|
|
14
|
+
* When `ResizeObserver` is undefined or `enabled` is false, size may remain `undefined`. Uses the first
|
|
15
|
+
* entry from the observer callback (`entries[0]`) aligned with the single observed node.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam T - Observed element type.
|
|
18
|
+
* @param params - Optional `{ enabled }` (default `true`).
|
|
19
|
+
* @returns `[setRef, size]` callback ref and latest measured size.
|
|
20
|
+
*/
|
|
21
|
+
declare function useResizeObserver<T extends Element>(params?: UseResizeObserverParams): [RefCallback<T>, ElementSize | undefined];
|
|
22
|
+
|
|
23
|
+
export { type ElementSize, useResizeObserver };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RefCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
type ElementSize = {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
type UseResizeObserverParams = {
|
|
8
|
+
/** When `false`, no `ResizeObserver` is attached. */
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Observes an element’s `contentRect` size via `ResizeObserver` and exposes `{ width, height }`.
|
|
13
|
+
*
|
|
14
|
+
* When `ResizeObserver` is undefined or `enabled` is false, size may remain `undefined`. Uses the first
|
|
15
|
+
* entry from the observer callback (`entries[0]`) aligned with the single observed node.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam T - Observed element type.
|
|
18
|
+
* @param params - Optional `{ enabled }` (default `true`).
|
|
19
|
+
* @returns `[setRef, size]` callback ref and latest measured size.
|
|
20
|
+
*/
|
|
21
|
+
declare function useResizeObserver<T extends Element>(params?: UseResizeObserverParams): [RefCallback<T>, ElementSize | undefined];
|
|
22
|
+
|
|
23
|
+
export { type ElementSize, useResizeObserver };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
// src/hooks/useResizeObserver/useResizeObserver.ts
|
|
7
|
+
function useResizeObserver(params = {}) {
|
|
8
|
+
const { enabled = true } = params;
|
|
9
|
+
const [element, setElement] = react.useState(null);
|
|
10
|
+
const [size, setSize] = react.useState(void 0);
|
|
11
|
+
const setRef = react.useCallback((node) => {
|
|
12
|
+
setElement(node);
|
|
13
|
+
}, []);
|
|
14
|
+
react.useEffect(() => {
|
|
15
|
+
if (!enabled || element == null) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (typeof ResizeObserver === "undefined") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const observer = new ResizeObserver((entries) => {
|
|
22
|
+
const { width, height } = entries[0]?.contentRect ?? {
|
|
23
|
+
width: 0,
|
|
24
|
+
height: 0
|
|
25
|
+
};
|
|
26
|
+
setSize({ width, height });
|
|
27
|
+
});
|
|
28
|
+
observer.observe(element);
|
|
29
|
+
return () => {
|
|
30
|
+
observer.disconnect();
|
|
31
|
+
};
|
|
32
|
+
}, [element, enabled]);
|
|
33
|
+
return [setRef, size];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.useResizeObserver = useResizeObserver;
|
|
37
|
+
//# sourceMappingURL=useResizeObserver.js.map
|
|
38
|
+
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useResizeObserver/useResizeObserver.ts"],"names":["useState","useCallback","useEffect"],"mappings":";;;;;AAyBO,SAAS,iBAAA,CACd,MAAA,GAAkC,EAAC,EACQ;AAC3C,EAAA,MAAM,EAAE,OAAA,GAAU,IAAA,EAAK,GAAI,MAAA;AAC3B,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAmB,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAkC,MAAS,CAAA;AAEnE,EAAA,MAAM,MAAA,GAASC,iBAAA,CAAY,CAAC,IAAA,KAAmB;AAC7C,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,IAAW,OAAA,IAAW,IAAA,EAAM;AAC/B,MAAA;AAAA,IACF;AACA,IAAA,IAAI,OAAO,mBAAmB,WAAA,EAAa;AACzC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AAC/C,MAAA,MAAM,EAAE,KAAA,EAAO,MAAA,KAAW,OAAA,CAAQ,CAAC,GAAG,WAAA,IAAe;AAAA,QACnD,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ;AAAA,OACV;AACA,MAAA,OAAA,CAAQ,EAAE,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,IAC3B,CAAC,CAAA;AACD,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AACxB,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,UAAA,EAAW;AAAA,IACtB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,OAAO,CAAC,CAAA;AAErB,EAAA,OAAO,CAAC,QAAQ,IAAI,CAAA;AACtB","file":"useResizeObserver.js","sourcesContent":["\"use client\";\n\nimport type { RefCallback } from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport type ElementSize = {\n width: number;\n height: number;\n};\n\nexport type UseResizeObserverParams = {\n /** When `false`, no `ResizeObserver` is attached. */\n enabled?: boolean;\n};\n\n/**\n * Observes an element’s `contentRect` size via `ResizeObserver` and exposes `{ width, height }`.\n *\n * When `ResizeObserver` is undefined or `enabled` is false, size may remain `undefined`. Uses the first\n * entry from the observer callback (`entries[0]`) aligned with the single observed node.\n *\n * @typeParam T - Observed element type.\n * @param params - Optional `{ enabled }` (default `true`).\n * @returns `[setRef, size]` callback ref and latest measured size.\n */\nexport function useResizeObserver<T extends Element>(\n params: UseResizeObserverParams = {},\n): [RefCallback<T>, ElementSize | undefined] {\n const { enabled = true } = params;\n const [element, setElement] = useState<T | null>(null);\n const [size, setSize] = useState<ElementSize | undefined>(undefined);\n\n const setRef = useCallback((node: T | null) => {\n setElement(node);\n }, []);\n\n useEffect(() => {\n if (!enabled || element == null) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n const { width, height } = entries[0]?.contentRect ?? {\n width: 0,\n height: 0,\n };\n setSize({ width, height });\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }, [element, enabled]);\n\n return [setRef, size];\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
// src/hooks/useResizeObserver/useResizeObserver.ts
|
|
5
|
+
function useResizeObserver(params = {}) {
|
|
6
|
+
const { enabled = true } = params;
|
|
7
|
+
const [element, setElement] = useState(null);
|
|
8
|
+
const [size, setSize] = useState(void 0);
|
|
9
|
+
const setRef = useCallback((node) => {
|
|
10
|
+
setElement(node);
|
|
11
|
+
}, []);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!enabled || element == null) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (typeof ResizeObserver === "undefined") {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const observer = new ResizeObserver((entries) => {
|
|
20
|
+
const { width, height } = entries[0]?.contentRect ?? {
|
|
21
|
+
width: 0,
|
|
22
|
+
height: 0
|
|
23
|
+
};
|
|
24
|
+
setSize({ width, height });
|
|
25
|
+
});
|
|
26
|
+
observer.observe(element);
|
|
27
|
+
return () => {
|
|
28
|
+
observer.disconnect();
|
|
29
|
+
};
|
|
30
|
+
}, [element, enabled]);
|
|
31
|
+
return [setRef, size];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { useResizeObserver };
|
|
35
|
+
//# sourceMappingURL=useResizeObserver.mjs.map
|
|
36
|
+
//# sourceMappingURL=useResizeObserver.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useResizeObserver/useResizeObserver.ts"],"names":[],"mappings":";;;AAyBO,SAAS,iBAAA,CACd,MAAA,GAAkC,EAAC,EACQ;AAC3C,EAAA,MAAM,EAAE,OAAA,GAAU,IAAA,EAAK,GAAI,MAAA;AAC3B,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAmB,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAkC,MAAS,CAAA;AAEnE,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,CAAC,IAAA,KAAmB;AAC7C,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,IAAW,OAAA,IAAW,IAAA,EAAM;AAC/B,MAAA;AAAA,IACF;AACA,IAAA,IAAI,OAAO,mBAAmB,WAAA,EAAa;AACzC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AAC/C,MAAA,MAAM,EAAE,KAAA,EAAO,MAAA,KAAW,OAAA,CAAQ,CAAC,GAAG,WAAA,IAAe;AAAA,QACnD,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ;AAAA,OACV;AACA,MAAA,OAAA,CAAQ,EAAE,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,IAC3B,CAAC,CAAA;AACD,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AACxB,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,UAAA,EAAW;AAAA,IACtB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,OAAO,CAAC,CAAA;AAErB,EAAA,OAAO,CAAC,QAAQ,IAAI,CAAA;AACtB","file":"useResizeObserver.mjs","sourcesContent":["\"use client\";\n\nimport type { RefCallback } from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport type ElementSize = {\n width: number;\n height: number;\n};\n\nexport type UseResizeObserverParams = {\n /** When `false`, no `ResizeObserver` is attached. */\n enabled?: boolean;\n};\n\n/**\n * Observes an element’s `contentRect` size via `ResizeObserver` and exposes `{ width, height }`.\n *\n * When `ResizeObserver` is undefined or `enabled` is false, size may remain `undefined`. Uses the first\n * entry from the observer callback (`entries[0]`) aligned with the single observed node.\n *\n * @typeParam T - Observed element type.\n * @param params - Optional `{ enabled }` (default `true`).\n * @returns `[setRef, size]` callback ref and latest measured size.\n */\nexport function useResizeObserver<T extends Element>(\n params: UseResizeObserverParams = {},\n): [RefCallback<T>, ElementSize | undefined] {\n const { enabled = true } = params;\n const [element, setElement] = useState<T | null>(null);\n const [size, setSize] = useState<ElementSize | undefined>(undefined);\n\n const setRef = useCallback((node: T | null) => {\n setElement(node);\n }, []);\n\n useEffect(() => {\n if (!enabled || element == null) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n const { width, height } = entries[0]?.contentRect ?? {\n width: 0,\n height: 0,\n };\n setSize({ width, height });\n });\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }, [element, enabled]);\n\n return [setRef, size];\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type UseSessionStorageResult<T> = [
|
|
2
|
+
T,
|
|
3
|
+
(value: T | ((previous: T) => T)) => void,
|
|
4
|
+
() => void
|
|
5
|
+
];
|
|
6
|
+
/**
|
|
7
|
+
* Syncs JSON-serialized state with `window.sessionStorage` for the lifetime of the browser tab.
|
|
8
|
+
*
|
|
9
|
+
* Same persistence semantics as {@link useLocalStorage} but scoped to the session: data clears when the tab closes.
|
|
10
|
+
* Unlike `useLocalStorage`, this hook does **not** subscribe to `storage` events (session storage is not shared across tabs).
|
|
11
|
+
*
|
|
12
|
+
* State is initialized from `initialValue` only so the first client render can match SSR output; the stored value is
|
|
13
|
+
* applied after mount in an effect to avoid hydration mismatches.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T - Stored value type; must round-trip through `JSON.stringify` / `parse`.
|
|
16
|
+
* @param key - `sessionStorage` key.
|
|
17
|
+
* @param initialValue - Fallback when missing, invalid JSON, or during SSR; also used for the first render before hydrate.
|
|
18
|
+
* @returns `[stored, setValue, remove]` tuple.
|
|
19
|
+
*/
|
|
20
|
+
declare function useSessionStorage<T>(key: string, initialValue: T): UseSessionStorageResult<T>;
|
|
21
|
+
|
|
22
|
+
export { type UseSessionStorageResult, useSessionStorage };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type UseSessionStorageResult<T> = [
|
|
2
|
+
T,
|
|
3
|
+
(value: T | ((previous: T) => T)) => void,
|
|
4
|
+
() => void
|
|
5
|
+
];
|
|
6
|
+
/**
|
|
7
|
+
* Syncs JSON-serialized state with `window.sessionStorage` for the lifetime of the browser tab.
|
|
8
|
+
*
|
|
9
|
+
* Same persistence semantics as {@link useLocalStorage} but scoped to the session: data clears when the tab closes.
|
|
10
|
+
* Unlike `useLocalStorage`, this hook does **not** subscribe to `storage` events (session storage is not shared across tabs).
|
|
11
|
+
*
|
|
12
|
+
* State is initialized from `initialValue` only so the first client render can match SSR output; the stored value is
|
|
13
|
+
* applied after mount in an effect to avoid hydration mismatches.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T - Stored value type; must round-trip through `JSON.stringify` / `parse`.
|
|
16
|
+
* @param key - `sessionStorage` key.
|
|
17
|
+
* @param initialValue - Fallback when missing, invalid JSON, or during SSR; also used for the first render before hydrate.
|
|
18
|
+
* @returns `[stored, setValue, remove]` tuple.
|
|
19
|
+
*/
|
|
20
|
+
declare function useSessionStorage<T>(key: string, initialValue: T): UseSessionStorageResult<T>;
|
|
21
|
+
|
|
22
|
+
export { type UseSessionStorageResult, useSessionStorage };
|