@usels/core 0.0.1
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 +21 -0
- package/dist/browser/useEventListener/index.d.mts +56 -0
- package/dist/browser/useEventListener/index.d.ts +56 -0
- package/dist/browser/useEventListener/index.js +112 -0
- package/dist/browser/useEventListener/index.js.map +1 -0
- package/dist/browser/useEventListener/index.mjs +88 -0
- package/dist/browser/useEventListener/index.mjs.map +1 -0
- package/dist/browser/useMediaQuery/demo.d.mts +5 -0
- package/dist/browser/useMediaQuery/demo.d.ts +5 -0
- package/dist/browser/useMediaQuery/demo.js +83 -0
- package/dist/browser/useMediaQuery/demo.js.map +1 -0
- package/dist/browser/useMediaQuery/demo.mjs +63 -0
- package/dist/browser/useMediaQuery/demo.mjs.map +1 -0
- package/dist/browser/useMediaQuery/index.d.mts +11 -0
- package/dist/browser/useMediaQuery/index.d.ts +11 -0
- package/dist/browser/useMediaQuery/index.js +89 -0
- package/dist/browser/useMediaQuery/index.js.map +1 -0
- package/dist/browser/useMediaQuery/index.mjs +64 -0
- package/dist/browser/useMediaQuery/index.mjs.map +1 -0
- package/dist/components/Auto/index.d.mts +33 -0
- package/dist/components/Auto/index.d.ts +33 -0
- package/dist/components/Auto/index.js +66 -0
- package/dist/components/Auto/index.js.map +1 -0
- package/dist/components/Auto/index.mjs +34 -0
- package/dist/components/Auto/index.mjs.map +1 -0
- package/dist/elements/useDocumentVisibility/demo.d.mts +5 -0
- package/dist/elements/useDocumentVisibility/demo.d.ts +5 -0
- package/dist/elements/useDocumentVisibility/demo.js +130 -0
- package/dist/elements/useDocumentVisibility/demo.js.map +1 -0
- package/dist/elements/useDocumentVisibility/demo.mjs +114 -0
- package/dist/elements/useDocumentVisibility/demo.mjs.map +1 -0
- package/dist/elements/useDocumentVisibility/index.d.mts +5 -0
- package/dist/elements/useDocumentVisibility/index.d.ts +5 -0
- package/dist/elements/useDocumentVisibility/index.js +45 -0
- package/dist/elements/useDocumentVisibility/index.js.map +1 -0
- package/dist/elements/useDocumentVisibility/index.mjs +21 -0
- package/dist/elements/useDocumentVisibility/index.mjs.map +1 -0
- package/dist/elements/useElementBounding/demo.d.mts +5 -0
- package/dist/elements/useElementBounding/demo.d.ts +5 -0
- package/dist/elements/useElementBounding/demo.js +87 -0
- package/dist/elements/useElementBounding/demo.js.map +1 -0
- package/dist/elements/useElementBounding/demo.mjs +67 -0
- package/dist/elements/useElementBounding/demo.mjs.map +1 -0
- package/dist/elements/useElementBounding/index.d.mts +46 -0
- package/dist/elements/useElementBounding/index.d.ts +46 -0
- package/dist/elements/useElementBounding/index.js +122 -0
- package/dist/elements/useElementBounding/index.js.map +1 -0
- package/dist/elements/useElementBounding/index.mjs +98 -0
- package/dist/elements/useElementBounding/index.mjs.map +1 -0
- package/dist/elements/useElementSize/demo.d.mts +5 -0
- package/dist/elements/useElementSize/demo.d.ts +5 -0
- package/dist/elements/useElementSize/demo.js +83 -0
- package/dist/elements/useElementSize/demo.js.map +1 -0
- package/dist/elements/useElementSize/demo.mjs +63 -0
- package/dist/elements/useElementSize/demo.mjs.map +1 -0
- package/dist/elements/useElementSize/index.d.mts +34 -0
- package/dist/elements/useElementSize/index.d.ts +34 -0
- package/dist/elements/useElementSize/index.js +85 -0
- package/dist/elements/useElementSize/index.js.map +1 -0
- package/dist/elements/useElementSize/index.mjs +61 -0
- package/dist/elements/useElementSize/index.mjs.map +1 -0
- package/dist/elements/useElementVisibility/demo.d.mts +5 -0
- package/dist/elements/useElementVisibility/demo.d.ts +5 -0
- package/dist/elements/useElementVisibility/demo.js +110 -0
- package/dist/elements/useElementVisibility/demo.js.map +1 -0
- package/dist/elements/useElementVisibility/demo.mjs +90 -0
- package/dist/elements/useElementVisibility/demo.mjs.map +1 -0
- package/dist/elements/useElementVisibility/index.d.mts +43 -0
- package/dist/elements/useElementVisibility/index.d.ts +43 -0
- package/dist/elements/useElementVisibility/index.js +58 -0
- package/dist/elements/useElementVisibility/index.js.map +1 -0
- package/dist/elements/useElementVisibility/index.mjs +34 -0
- package/dist/elements/useElementVisibility/index.mjs.map +1 -0
- package/dist/elements/useIntersectionObserver/demo.d.mts +5 -0
- package/dist/elements/useIntersectionObserver/demo.d.ts +5 -0
- package/dist/elements/useIntersectionObserver/demo.js +173 -0
- package/dist/elements/useIntersectionObserver/demo.js.map +1 -0
- package/dist/elements/useIntersectionObserver/demo.mjs +153 -0
- package/dist/elements/useIntersectionObserver/demo.mjs.map +1 -0
- package/dist/elements/useIntersectionObserver/index.d.mts +47 -0
- package/dist/elements/useIntersectionObserver/index.d.ts +47 -0
- package/dist/elements/useIntersectionObserver/index.js +111 -0
- package/dist/elements/useIntersectionObserver/index.js.map +1 -0
- package/dist/elements/useIntersectionObserver/index.mjs +87 -0
- package/dist/elements/useIntersectionObserver/index.mjs.map +1 -0
- package/dist/elements/useMouseInElement/demo.d.mts +5 -0
- package/dist/elements/useMouseInElement/demo.d.ts +5 -0
- package/dist/elements/useMouseInElement/demo.js +104 -0
- package/dist/elements/useMouseInElement/demo.js.map +1 -0
- package/dist/elements/useMouseInElement/demo.mjs +84 -0
- package/dist/elements/useMouseInElement/demo.mjs.map +1 -0
- package/dist/elements/useMouseInElement/index.d.mts +56 -0
- package/dist/elements/useMouseInElement/index.d.ts +56 -0
- package/dist/elements/useMouseInElement/index.js +148 -0
- package/dist/elements/useMouseInElement/index.js.map +1 -0
- package/dist/elements/useMouseInElement/index.mjs +124 -0
- package/dist/elements/useMouseInElement/index.mjs.map +1 -0
- package/dist/elements/useMutationObserver/demo.d.mts +5 -0
- package/dist/elements/useMutationObserver/demo.d.ts +5 -0
- package/dist/elements/useMutationObserver/demo.js +240 -0
- package/dist/elements/useMutationObserver/demo.js.map +1 -0
- package/dist/elements/useMutationObserver/demo.mjs +220 -0
- package/dist/elements/useMutationObserver/demo.mjs.map +1 -0
- package/dist/elements/useMutationObserver/index.d.mts +15 -0
- package/dist/elements/useMutationObserver/index.d.ts +15 -0
- package/dist/elements/useMutationObserver/index.js +69 -0
- package/dist/elements/useMutationObserver/index.js.map +1 -0
- package/dist/elements/useMutationObserver/index.mjs +45 -0
- package/dist/elements/useMutationObserver/index.mjs.map +1 -0
- package/dist/elements/useParentElement/demo.d.mts +5 -0
- package/dist/elements/useParentElement/demo.d.ts +5 -0
- package/dist/elements/useParentElement/demo.js +132 -0
- package/dist/elements/useParentElement/demo.js.map +1 -0
- package/dist/elements/useParentElement/demo.mjs +112 -0
- package/dist/elements/useParentElement/demo.mjs.map +1 -0
- package/dist/elements/useParentElement/index.d.mts +7 -0
- package/dist/elements/useParentElement/index.d.ts +7 -0
- package/dist/elements/useParentElement/index.js +47 -0
- package/dist/elements/useParentElement/index.js.map +1 -0
- package/dist/elements/useParentElement/index.mjs +23 -0
- package/dist/elements/useParentElement/index.mjs.map +1 -0
- package/dist/elements/useRef$/index.js +89 -0
- package/dist/elements/useRef$/index.js.map +1 -0
- package/dist/elements/useRef$/index.mjs +62 -0
- package/dist/elements/useRef$/index.mjs.map +1 -0
- package/dist/elements/useRef_/index.d.mts +60 -0
- package/dist/elements/useRef_/index.d.ts +60 -0
- package/dist/elements/useResizeObserver/demo.d.mts +5 -0
- package/dist/elements/useResizeObserver/demo.d.ts +5 -0
- package/dist/elements/useResizeObserver/demo.js +90 -0
- package/dist/elements/useResizeObserver/demo.js.map +1 -0
- package/dist/elements/useResizeObserver/demo.mjs +70 -0
- package/dist/elements/useResizeObserver/demo.mjs.map +1 -0
- package/dist/elements/useResizeObserver/index.d.mts +36 -0
- package/dist/elements/useResizeObserver/index.d.ts +36 -0
- package/dist/elements/useResizeObserver/index.js +74 -0
- package/dist/elements/useResizeObserver/index.js.map +1 -0
- package/dist/elements/useResizeObserver/index.mjs +49 -0
- package/dist/elements/useResizeObserver/index.mjs.map +1 -0
- package/dist/elements/useWindowFocus/demo.d.mts +5 -0
- package/dist/elements/useWindowFocus/demo.d.ts +5 -0
- package/dist/elements/useWindowFocus/demo.js +104 -0
- package/dist/elements/useWindowFocus/demo.js.map +1 -0
- package/dist/elements/useWindowFocus/demo.mjs +84 -0
- package/dist/elements/useWindowFocus/demo.mjs.map +1 -0
- package/dist/elements/useWindowFocus/index.d.mts +5 -0
- package/dist/elements/useWindowFocus/index.d.ts +5 -0
- package/dist/elements/useWindowFocus/index.js +42 -0
- package/dist/elements/useWindowFocus/index.js.map +1 -0
- package/dist/elements/useWindowFocus/index.mjs +18 -0
- package/dist/elements/useWindowFocus/index.mjs.map +1 -0
- package/dist/elements/useWindowSize/demo.d.mts +5 -0
- package/dist/elements/useWindowSize/demo.d.ts +5 -0
- package/dist/elements/useWindowSize/demo.js +79 -0
- package/dist/elements/useWindowSize/demo.js.map +1 -0
- package/dist/elements/useWindowSize/demo.mjs +59 -0
- package/dist/elements/useWindowSize/demo.mjs.map +1 -0
- package/dist/elements/useWindowSize/index.d.mts +17 -0
- package/dist/elements/useWindowSize/index.d.ts +17 -0
- package/dist/elements/useWindowSize/index.js +96 -0
- package/dist/elements/useWindowSize/index.js.map +1 -0
- package/dist/elements/useWindowSize/index.mjs +76 -0
- package/dist/elements/useWindowSize/index.mjs.map +1 -0
- package/dist/function/get/index.d.mts +45 -0
- package/dist/function/get/index.d.ts +45 -0
- package/dist/function/get/index.js +39 -0
- package/dist/function/get/index.js.map +1 -0
- package/dist/function/get/index.mjs +15 -0
- package/dist/function/get/index.mjs.map +1 -0
- package/dist/function/peek/index.d.mts +46 -0
- package/dist/function/peek/index.d.ts +46 -0
- package/dist/function/peek/index.js +39 -0
- package/dist/function/peek/index.js.map +1 -0
- package/dist/function/peek/index.mjs +15 -0
- package/dist/function/peek/index.mjs.map +1 -0
- package/dist/function/useMayObservableOptions/index.d.mts +59 -0
- package/dist/function/useMayObservableOptions/index.d.ts +59 -0
- package/dist/function/useMayObservableOptions/index.js +109 -0
- package/dist/function/useMayObservableOptions/index.js.map +1 -0
- package/dist/function/useMayObservableOptions/index.mjs +88 -0
- package/dist/function/useMayObservableOptions/index.mjs.map +1 -0
- package/dist/function/useSupported/index.d.mts +6 -0
- package/dist/function/useSupported/index.d.ts +6 -0
- package/dist/function/useSupported/index.js +37 -0
- package/dist/function/useSupported/index.js.map +1 -0
- package/dist/function/useSupported/index.mjs +13 -0
- package/dist/function/useSupported/index.mjs.map +1 -0
- package/dist/function/useWhenMounted/index.d.mts +6 -0
- package/dist/function/useWhenMounted/index.d.ts +6 -0
- package/dist/function/useWhenMounted/index.js +37 -0
- package/dist/function/useWhenMounted/index.js.map +1 -0
- package/dist/function/useWhenMounted/index.mjs +13 -0
- package/dist/function/useWhenMounted/index.mjs.map +1 -0
- package/dist/index.d.mts +24 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +22 -0
- package/dist/index.mjs.map +1 -0
- package/dist/sensors/useScroll/demo.d.mts +5 -0
- package/dist/sensors/useScroll/demo.d.ts +5 -0
- package/dist/sensors/useScroll/demo.js +122 -0
- package/dist/sensors/useScroll/demo.js.map +1 -0
- package/dist/sensors/useScroll/demo.mjs +102 -0
- package/dist/sensors/useScroll/demo.mjs.map +1 -0
- package/dist/sensors/useScroll/index.d.mts +42 -0
- package/dist/sensors/useScroll/index.d.ts +42 -0
- package/dist/sensors/useScroll/index.js +149 -0
- package/dist/sensors/useScroll/index.js.map +1 -0
- package/dist/sensors/useScroll/index.mjs +125 -0
- package/dist/sensors/useScroll/index.mjs.map +1 -0
- package/dist/sensors/useWindowScroll/demo.d.mts +5 -0
- package/dist/sensors/useWindowScroll/demo.d.ts +5 -0
- package/dist/sensors/useWindowScroll/demo.js +85 -0
- package/dist/sensors/useWindowScroll/demo.js.map +1 -0
- package/dist/sensors/useWindowScroll/demo.mjs +65 -0
- package/dist/sensors/useWindowScroll/demo.mjs.map +1 -0
- package/dist/sensors/useWindowScroll/index.d.mts +9 -0
- package/dist/sensors/useWindowScroll/index.d.ts +9 -0
- package/dist/sensors/useWindowScroll/index.js +36 -0
- package/dist/sensors/useWindowScroll/index.js.map +1 -0
- package/dist/sensors/useWindowScroll/index.mjs +12 -0
- package/dist/sensors/useWindowScroll/index.mjs.map +1 -0
- package/dist/shared/configurable.d.mts +21 -0
- package/dist/shared/configurable.d.ts +21 -0
- package/dist/shared/configurable.js +39 -0
- package/dist/shared/configurable.js.map +1 -0
- package/dist/shared/configurable.mjs +12 -0
- package/dist/shared/configurable.mjs.map +1 -0
- package/dist/shared/index.d.mts +4 -0
- package/dist/shared/index.d.ts +4 -0
- package/dist/shared/index.js +31 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/index.mjs +7 -0
- package/dist/shared/index.mjs.map +1 -0
- package/dist/shared/normalizeTargets/index.d.mts +21 -0
- package/dist/shared/normalizeTargets/index.d.ts +21 -0
- package/dist/shared/normalizeTargets/index.js +36 -0
- package/dist/shared/normalizeTargets/index.js.map +1 -0
- package/dist/shared/normalizeTargets/index.mjs +12 -0
- package/dist/shared/normalizeTargets/index.mjs.map +1 -0
- package/dist/shared/utils.d.mts +15 -0
- package/dist/shared/utils.d.ts +15 -0
- package/dist/shared/utils.js +87 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/shared/utils.mjs +52 -0
- package/dist/shared/utils.mjs.map +1 -0
- package/dist/types.d.mts +52 -0
- package/dist/types.d.ts +52 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +54 -0
- package/src/browser/useEventListener/index.md +109 -0
- package/src/browser/useEventListener/index.spec.ts +611 -0
- package/src/browser/useEventListener/index.ts +242 -0
- package/src/browser/useMediaQuery/demo.tsx +63 -0
- package/src/browser/useMediaQuery/index.md +43 -0
- package/src/browser/useMediaQuery/index.spec.ts +267 -0
- package/src/browser/useMediaQuery/index.ts +96 -0
- package/src/components/Auto/index.tsx +65 -0
- package/src/elements/useDocumentVisibility/demo.tsx +111 -0
- package/src/elements/useDocumentVisibility/index.md +54 -0
- package/src/elements/useDocumentVisibility/index.spec.ts +114 -0
- package/src/elements/useDocumentVisibility/index.ts +26 -0
- package/src/elements/useElementBounding/demo.tsx +68 -0
- package/src/elements/useElementBounding/index.md +64 -0
- package/src/elements/useElementBounding/index.ts +159 -0
- package/src/elements/useElementSize/demo.tsx +53 -0
- package/src/elements/useElementSize/index.md +65 -0
- package/src/elements/useElementSize/index.spec.ts +295 -0
- package/src/elements/useElementSize/index.ts +100 -0
- package/src/elements/useElementVisibility/deep-observable-pattern.spec.ts +453 -0
- package/src/elements/useElementVisibility/demo.tsx +97 -0
- package/src/elements/useElementVisibility/index.md +98 -0
- package/src/elements/useElementVisibility/index.spec.ts +227 -0
- package/src/elements/useElementVisibility/index.ts +78 -0
- package/src/elements/useIntersectionObserver/demo.tsx +180 -0
- package/src/elements/useIntersectionObserver/index.md +99 -0
- package/src/elements/useIntersectionObserver/index.spec.ts +482 -0
- package/src/elements/useIntersectionObserver/index.ts +149 -0
- package/src/elements/useMouseInElement/demo.tsx +88 -0
- package/src/elements/useMouseInElement/index.md +76 -0
- package/src/elements/useMouseInElement/index.spec.ts +398 -0
- package/src/elements/useMouseInElement/index.ts +209 -0
- package/src/elements/useMutationObserver/demo.tsx +270 -0
- package/src/elements/useMutationObserver/index.md +99 -0
- package/src/elements/useMutationObserver/index.spec.ts +421 -0
- package/src/elements/useMutationObserver/index.ts +66 -0
- package/src/elements/useParentElement/demo.tsx +120 -0
- package/src/elements/useParentElement/index.md +67 -0
- package/src/elements/useParentElement/index.spec.ts +208 -0
- package/src/elements/useParentElement/index.ts +35 -0
- package/src/elements/useRef$/index.md +62 -0
- package/src/elements/useRef$/index.spec.ts +205 -0
- package/src/elements/useRef$/index.ts +137 -0
- package/src/elements/useRef$/useImperativeHandle.spec.ts +339 -0
- package/src/elements/useResizeObserver/demo.tsx +62 -0
- package/src/elements/useResizeObserver/index.md +51 -0
- package/src/elements/useResizeObserver/index.spec.ts +312 -0
- package/src/elements/useResizeObserver/index.ts +106 -0
- package/src/elements/useWindowFocus/demo.tsx +79 -0
- package/src/elements/useWindowFocus/index.md +38 -0
- package/src/elements/useWindowFocus/index.spec.ts +103 -0
- package/src/elements/useWindowFocus/index.ts +21 -0
- package/src/elements/useWindowSize/demo.tsx +51 -0
- package/src/elements/useWindowSize/index.md +55 -0
- package/src/elements/useWindowSize/index.spec.ts +310 -0
- package/src/elements/useWindowSize/index.ts +107 -0
- package/src/function/get/index.md +25 -0
- package/src/function/get/index.spec.ts +87 -0
- package/src/function/get/index.ts +70 -0
- package/src/function/peek/index.spec.ts +97 -0
- package/src/function/peek/index.ts +69 -0
- package/src/function/useMayObservableOptions/index.spec.ts +521 -0
- package/src/function/useMayObservableOptions/index.ts +173 -0
- package/src/function/useSupported/index.md +43 -0
- package/src/function/useSupported/index.spec.ts +116 -0
- package/src/function/useSupported/index.ts +14 -0
- package/src/function/useWhenMounted/index.md +25 -0
- package/src/function/useWhenMounted/index.spec.ts +120 -0
- package/src/function/useWhenMounted/index.ts +16 -0
- package/src/index.ts +25 -0
- package/src/sensors/useScroll/demo.tsx +103 -0
- package/src/sensors/useScroll/index.md +117 -0
- package/src/sensors/useScroll/index.spec.ts +678 -0
- package/src/sensors/useScroll/index.ts +201 -0
- package/src/sensors/useWindowScroll/demo.tsx +78 -0
- package/src/sensors/useWindowScroll/index.md +98 -0
- package/src/sensors/useWindowScroll/index.spec.ts +69 -0
- package/src/sensors/useWindowScroll/index.ts +11 -0
- package/src/shared/configurable.ts +35 -0
- package/src/shared/index.ts +4 -0
- package/src/shared/normalizeTargets/index.spec.ts +76 -0
- package/src/shared/normalizeTargets/index.ts +27 -0
- package/src/shared/utils.ts +67 -0
- package/src/types.ts +56 -0
- package/tsconfig.json +9 -0
- package/tsup.config.ts +10 -0
- package/vitest.config.ts +22 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var demo_exports = {};
|
|
20
|
+
__export(demo_exports, {
|
|
21
|
+
default: () => UseWindowSizeDemo
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(demo_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import__ = require(".");
|
|
26
|
+
var import_react = require("@legendapp/state/react");
|
|
27
|
+
const row = {
|
|
28
|
+
display: "flex",
|
|
29
|
+
alignItems: "center",
|
|
30
|
+
padding: "8px 14px",
|
|
31
|
+
borderRadius: "6px",
|
|
32
|
+
border: "1px solid var(--sl-color-gray-5, #e2e8f0)",
|
|
33
|
+
background: "var(--sl-color-gray-6, #f1f5f9)",
|
|
34
|
+
// borderRadius: "6px",
|
|
35
|
+
gap: "24px",
|
|
36
|
+
color: "white"
|
|
37
|
+
};
|
|
38
|
+
function UseWindowSizeDemo() {
|
|
39
|
+
const { width: width$, height: height$ } = (0, import__.useWindowSize)();
|
|
40
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
style: {
|
|
44
|
+
display: "flex",
|
|
45
|
+
flexDirection: "column",
|
|
46
|
+
gap: "8px",
|
|
47
|
+
fontFamily: "monospace",
|
|
48
|
+
fontSize: "14px",
|
|
49
|
+
background: "var(--sl-color-gray-6, #f1f5f9)"
|
|
50
|
+
},
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Computed, { children: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: row, children: [
|
|
53
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
54
|
+
"width: ",
|
|
55
|
+
width$.get(),
|
|
56
|
+
"px"
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
59
|
+
"height: ",
|
|
60
|
+
height$.get(),
|
|
61
|
+
"px"
|
|
62
|
+
] })
|
|
63
|
+
] }) }),
|
|
64
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
65
|
+
"p",
|
|
66
|
+
{
|
|
67
|
+
style: {
|
|
68
|
+
margin: 5,
|
|
69
|
+
fontSize: "11px",
|
|
70
|
+
color: "var(--sl-color-gray-3, #94a3b8)"
|
|
71
|
+
},
|
|
72
|
+
children: "Resize the browser window to see the values update."
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/useWindowSize/demo.tsx"],"sourcesContent":["import { useWindowSize } from \".\";\nimport { Computed } from \"@legendapp/state/react\";\n\nconst row: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"8px 14px\",\n borderRadius: \"6px\",\n border: \"1px solid var(--sl-color-gray-5, #e2e8f0)\",\n\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n // borderRadius: \"6px\",\n gap: \"24px\",\n color: \"white\",\n};\n\nexport default function UseWindowSizeDemo() {\n const { width: width$, height: height$ } = useWindowSize();\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n fontFamily: \"monospace\",\n fontSize: \"14px\",\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n }}\n >\n <Computed>\n {() => (\n <div style={row}>\n <span>width: {width$.get()}px</span>\n <span>height: {height$.get()}px</span>\n </div>\n )}\n </Computed>\n\n <p\n style={{\n margin: 5,\n fontSize: \"11px\",\n color: \"var(--sl-color-gray-3, #94a3b8)\",\n }}\n >\n Resize the browser window to see the values update.\n </p>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BM;AA9BN,eAA8B;AAC9B,mBAAyB;AAEzB,MAAM,MAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EAER,YAAY;AAAA;AAAA,EAEZ,KAAK;AAAA,EACL,OAAO;AACT;AAEe,SAAR,oBAAqC;AAC1C,QAAM,EAAE,OAAO,QAAQ,QAAQ,QAAQ,QAAI,wBAAc;AAEzD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,QACf,KAAK;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,MAEA;AAAA,oDAAC,yBACE,gBACC,6CAAC,SAAI,OAAO,KACV;AAAA,uDAAC,UAAK;AAAA;AAAA,YAAQ,OAAO,IAAI;AAAA,YAAE;AAAA,aAAE;AAAA,UAC7B,6CAAC,UAAK;AAAA;AAAA,YAAS,QAAQ,IAAI;AAAA,YAAE;AAAA,aAAE;AAAA,WACjC,GAEJ;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,UAAU;AAAA,cACV,OAAO;AAAA,YACT;AAAA,YACD;AAAA;AAAA,QAED;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useWindowSize } from ".";
|
|
3
|
+
import { Computed } from "@legendapp/state/react";
|
|
4
|
+
const row = {
|
|
5
|
+
display: "flex",
|
|
6
|
+
alignItems: "center",
|
|
7
|
+
padding: "8px 14px",
|
|
8
|
+
borderRadius: "6px",
|
|
9
|
+
border: "1px solid var(--sl-color-gray-5, #e2e8f0)",
|
|
10
|
+
background: "var(--sl-color-gray-6, #f1f5f9)",
|
|
11
|
+
// borderRadius: "6px",
|
|
12
|
+
gap: "24px",
|
|
13
|
+
color: "white"
|
|
14
|
+
};
|
|
15
|
+
function UseWindowSizeDemo() {
|
|
16
|
+
const { width: width$, height: height$ } = useWindowSize();
|
|
17
|
+
return /* @__PURE__ */ jsxs(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
style: {
|
|
21
|
+
display: "flex",
|
|
22
|
+
flexDirection: "column",
|
|
23
|
+
gap: "8px",
|
|
24
|
+
fontFamily: "monospace",
|
|
25
|
+
fontSize: "14px",
|
|
26
|
+
background: "var(--sl-color-gray-6, #f1f5f9)"
|
|
27
|
+
},
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx(Computed, { children: () => /* @__PURE__ */ jsxs("div", { style: row, children: [
|
|
30
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
31
|
+
"width: ",
|
|
32
|
+
width$.get(),
|
|
33
|
+
"px"
|
|
34
|
+
] }),
|
|
35
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
36
|
+
"height: ",
|
|
37
|
+
height$.get(),
|
|
38
|
+
"px"
|
|
39
|
+
] })
|
|
40
|
+
] }) }),
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
"p",
|
|
43
|
+
{
|
|
44
|
+
style: {
|
|
45
|
+
margin: 5,
|
|
46
|
+
fontSize: "11px",
|
|
47
|
+
color: "var(--sl-color-gray-3, #94a3b8)"
|
|
48
|
+
},
|
|
49
|
+
children: "Resize the browser window to see the values update."
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
UseWindowSizeDemo as default
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=demo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/useWindowSize/demo.tsx"],"sourcesContent":["import { useWindowSize } from \".\";\nimport { Computed } from \"@legendapp/state/react\";\n\nconst row: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"8px 14px\",\n borderRadius: \"6px\",\n border: \"1px solid var(--sl-color-gray-5, #e2e8f0)\",\n\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n // borderRadius: \"6px\",\n gap: \"24px\",\n color: \"white\",\n};\n\nexport default function UseWindowSizeDemo() {\n const { width: width$, height: height$ } = useWindowSize();\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n fontFamily: \"monospace\",\n fontSize: \"14px\",\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n }}\n >\n <Computed>\n {() => (\n <div style={row}>\n <span>width: {width$.get()}px</span>\n <span>height: {height$.get()}px</span>\n </div>\n )}\n </Computed>\n\n <p\n style={{\n margin: 5,\n fontSize: \"11px\",\n color: \"var(--sl-color-gray-3, #94a3b8)\",\n }}\n >\n Resize the browser window to see the values update.\n </p>\n </div>\n );\n}\n"],"mappings":"AA8BM,cAGM,YAHN;AA9BN,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAEzB,MAAM,MAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EAER,YAAY;AAAA;AAAA,EAEZ,KAAK;AAAA,EACL,OAAO;AACT;AAEe,SAAR,oBAAqC;AAC1C,QAAM,EAAE,OAAO,QAAQ,QAAQ,QAAQ,IAAI,cAAc;AAEzD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,QACf,KAAK;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,MAEA;AAAA,4BAAC,YACE,gBACC,qBAAC,SAAI,OAAO,KACV;AAAA,+BAAC,UAAK;AAAA;AAAA,YAAQ,OAAO,IAAI;AAAA,YAAE;AAAA,aAAE;AAAA,UAC7B,qBAAC,UAAK;AAAA;AAAA,YAAS,QAAQ,IAAI;AAAA,YAAE;AAAA,aAAE;AAAA,WACjC,GAEJ;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,UAAU;AAAA,cACV,OAAO;AAAA,YACT;AAAA,YACD;AAAA;AAAA,QAED;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Observable } from '@legendapp/state';
|
|
2
|
+
import { DeepMaybeObservable } from '../../types.mjs';
|
|
3
|
+
|
|
4
|
+
interface UseWindowSizeOptions {
|
|
5
|
+
initialWidth?: number;
|
|
6
|
+
initialHeight?: number;
|
|
7
|
+
listenOrientation?: boolean;
|
|
8
|
+
includeScrollbar?: boolean;
|
|
9
|
+
type?: "inner" | "outer" | "visual";
|
|
10
|
+
}
|
|
11
|
+
type UseWindowSizeReturn = Observable<{
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}>;
|
|
15
|
+
declare function useWindowSize(options?: DeepMaybeObservable<UseWindowSizeOptions>): UseWindowSizeReturn;
|
|
16
|
+
|
|
17
|
+
export { type UseWindowSizeOptions, type UseWindowSizeReturn, useWindowSize };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Observable } from '@legendapp/state';
|
|
2
|
+
import { DeepMaybeObservable } from '../../types.js';
|
|
3
|
+
|
|
4
|
+
interface UseWindowSizeOptions {
|
|
5
|
+
initialWidth?: number;
|
|
6
|
+
initialHeight?: number;
|
|
7
|
+
listenOrientation?: boolean;
|
|
8
|
+
includeScrollbar?: boolean;
|
|
9
|
+
type?: "inner" | "outer" | "visual";
|
|
10
|
+
}
|
|
11
|
+
type UseWindowSizeReturn = Observable<{
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}>;
|
|
15
|
+
declare function useWindowSize(options?: DeepMaybeObservable<UseWindowSizeOptions>): UseWindowSizeReturn;
|
|
16
|
+
|
|
17
|
+
export { type UseWindowSizeOptions, type UseWindowSizeReturn, useWindowSize };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var useWindowSize_exports = {};
|
|
21
|
+
__export(useWindowSize_exports, {
|
|
22
|
+
useWindowSize: () => useWindowSize
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(useWindowSize_exports);
|
|
25
|
+
var import_react = require("@legendapp/state/react");
|
|
26
|
+
var import_useEventListener = require("../../browser/useEventListener");
|
|
27
|
+
var import_useMediaQuery = require("../../browser/useMediaQuery");
|
|
28
|
+
var import_useMayObservableOptions = require("../../function/useMayObservableOptions");
|
|
29
|
+
var import_useWhenMounted = require("../../function/useWhenMounted");
|
|
30
|
+
// @__NO_SIDE_EFFECTS__
|
|
31
|
+
function useWindowSize(options) {
|
|
32
|
+
const opts$ = (0, import_useMayObservableOptions.useMayObservableOptions)(options, {
|
|
33
|
+
initialWidth: "peek",
|
|
34
|
+
initialHeight: "peek"
|
|
35
|
+
});
|
|
36
|
+
const size$ = (0, import_react.useObservable)({
|
|
37
|
+
width: opts$.initialWidth.peek() ?? 0,
|
|
38
|
+
height: opts$.initialHeight.peek() ?? 0
|
|
39
|
+
});
|
|
40
|
+
const update = () => {
|
|
41
|
+
if (typeof window === "undefined") return;
|
|
42
|
+
const type = opts$.type.peek() ?? "inner";
|
|
43
|
+
const includeScrollbar = opts$.includeScrollbar.peek() !== false;
|
|
44
|
+
let width;
|
|
45
|
+
let height;
|
|
46
|
+
if (type === "outer") {
|
|
47
|
+
width = window.outerWidth;
|
|
48
|
+
height = window.outerHeight;
|
|
49
|
+
} else if (type === "visual") {
|
|
50
|
+
const vp = window.visualViewport;
|
|
51
|
+
if (vp) {
|
|
52
|
+
width = vp.width * vp.scale;
|
|
53
|
+
height = vp.height * vp.scale;
|
|
54
|
+
} else {
|
|
55
|
+
width = window.innerWidth;
|
|
56
|
+
height = window.innerHeight;
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
if (includeScrollbar) {
|
|
60
|
+
width = window.innerWidth;
|
|
61
|
+
height = window.innerHeight;
|
|
62
|
+
} else {
|
|
63
|
+
width = document.documentElement.clientWidth;
|
|
64
|
+
height = document.documentElement.clientHeight;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
size$.assign({ width, height });
|
|
68
|
+
};
|
|
69
|
+
(0, import_react.useMount)(update);
|
|
70
|
+
(0, import_useEventListener.useEventListener)("resize", update, { passive: true });
|
|
71
|
+
const vp$ = (0, import_useWhenMounted.useWhenMounted)(
|
|
72
|
+
() => opts$.type.peek() === "visual" ? window.visualViewport : null
|
|
73
|
+
);
|
|
74
|
+
(0, import_useEventListener.useEventListener)(vp$, "resize", update);
|
|
75
|
+
(0, import_react.useObserveEffect)((e) => {
|
|
76
|
+
opts$.type.get();
|
|
77
|
+
opts$.includeScrollbar.get();
|
|
78
|
+
if (e.num > 0) update();
|
|
79
|
+
});
|
|
80
|
+
const matches$ = (0, import_useMediaQuery.useMediaQuery)("(orientation: portrait)");
|
|
81
|
+
(0, import_react.useObserveEffect)(
|
|
82
|
+
matches$,
|
|
83
|
+
() => {
|
|
84
|
+
if (opts$.listenOrientation.get() !== false) {
|
|
85
|
+
update();
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{ immediate: false }
|
|
89
|
+
);
|
|
90
|
+
return size$;
|
|
91
|
+
}
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
useWindowSize
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/useWindowSize/index.ts"],"sourcesContent":["\"use client\";\nimport type { Observable } from \"@legendapp/state\";\nimport {\n useObservable,\n useMount,\n useObserveEffect,\n} from \"@legendapp/state/react\";\nimport { useEventListener } from \"../../browser/useEventListener\";\nimport { useMediaQuery } from \"../../browser/useMediaQuery\";\nimport { useMayObservableOptions } from \"../../function/useMayObservableOptions\";\nimport { useWhenMounted } from \"../../function/useWhenMounted\";\nimport type { DeepMaybeObservable } from \"../../types\";\n\nexport interface UseWindowSizeOptions {\n initialWidth?: number;\n initialHeight?: number;\n listenOrientation?: boolean;\n includeScrollbar?: boolean;\n type?: \"inner\" | \"outer\" | \"visual\";\n}\n\nexport type UseWindowSizeReturn = Observable<{\n width: number;\n height: number;\n}>;\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function useWindowSize(\n options?: DeepMaybeObservable<UseWindowSizeOptions>,\n): UseWindowSizeReturn {\n // Standard Pattern: normalize DeepMaybeObservable<Options> into a stable computed Observable.\n const opts$ = useMayObservableOptions<UseWindowSizeOptions>(options, {\n initialWidth: \"peek\",\n initialHeight: \"peek\",\n });\n\n const size$ = useObservable({\n width: opts$.initialWidth.peek() ?? 0,\n height: opts$.initialHeight.peek() ?? 0,\n });\n\n const update = () => {\n if (typeof window === \"undefined\") return;\n\n const type = opts$.type.peek() ?? \"inner\";\n const includeScrollbar = opts$.includeScrollbar.peek() !== false;\n\n let width: number;\n let height: number;\n\n if (type === \"outer\") {\n width = window.outerWidth;\n height = window.outerHeight;\n } else if (type === \"visual\") {\n const vp = window.visualViewport;\n if (vp) {\n width = vp.width * vp.scale;\n height = vp.height * vp.scale;\n } else {\n width = window.innerWidth;\n height = window.innerHeight;\n }\n } else {\n if (includeScrollbar) {\n width = window.innerWidth;\n height = window.innerHeight;\n } else {\n width = document.documentElement.clientWidth;\n height = document.documentElement.clientHeight;\n }\n }\n\n size$.assign({ width, height });\n };\n\n useMount(update);\n\n useEventListener(\"resize\", update, { passive: true });\n\n const vp$ = useWhenMounted(() =>\n opts$.type.peek() === \"visual\" ? window.visualViewport : null,\n );\n\n useEventListener(vp$, \"resize\", update);\n\n // type 또는 includeScrollbar가 변경되면 즉시 재측정\n // 단일 함수 형태: opts$.type.get()/opts$.includeScrollbar.get()으로 dep 등록,\n // update()는 .peek()만 사용하므로 추가 dep을 등록하지 않음.\n useObserveEffect((e) => {\n opts$.type.get();\n opts$.includeScrollbar.get();\n if (e.num > 0) update();\n });\n\n const matches$ = useMediaQuery(\"(orientation: portrait)\");\n useObserveEffect(\n matches$,\n () => {\n if (opts$.listenOrientation.get() !== false) {\n update();\n }\n },\n { immediate: false },\n );\n\n return size$;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAIO;AACP,8BAAiC;AACjC,2BAA8B;AAC9B,qCAAwC;AACxC,4BAA+B;AAAA;AAiBxB,SAAS,cACd,SACqB;AAErB,QAAM,YAAQ,wDAA8C,SAAS;AAAA,IACnE,cAAc;AAAA,IACd,eAAe;AAAA,EACjB,CAAC;AAED,QAAM,YAAQ,4BAAc;AAAA,IAC1B,OAAO,MAAM,aAAa,KAAK,KAAK;AAAA,IACpC,QAAQ,MAAM,cAAc,KAAK,KAAK;AAAA,EACxC,CAAC;AAED,QAAM,SAAS,MAAM;AACnB,QAAI,OAAO,WAAW,YAAa;AAEnC,UAAM,OAAO,MAAM,KAAK,KAAK,KAAK;AAClC,UAAM,mBAAmB,MAAM,iBAAiB,KAAK,MAAM;AAE3D,QAAI;AACJ,QAAI;AAEJ,QAAI,SAAS,SAAS;AACpB,cAAQ,OAAO;AACf,eAAS,OAAO;AAAA,IAClB,WAAW,SAAS,UAAU;AAC5B,YAAM,KAAK,OAAO;AAClB,UAAI,IAAI;AACN,gBAAQ,GAAG,QAAQ,GAAG;AACtB,iBAAS,GAAG,SAAS,GAAG;AAAA,MAC1B,OAAO;AACL,gBAAQ,OAAO;AACf,iBAAS,OAAO;AAAA,MAClB;AAAA,IACF,OAAO;AACL,UAAI,kBAAkB;AACpB,gBAAQ,OAAO;AACf,iBAAS,OAAO;AAAA,MAClB,OAAO;AACL,gBAAQ,SAAS,gBAAgB;AACjC,iBAAS,SAAS,gBAAgB;AAAA,MACpC;AAAA,IACF;AAEA,UAAM,OAAO,EAAE,OAAO,OAAO,CAAC;AAAA,EAChC;AAEA,6BAAS,MAAM;AAEf,gDAAiB,UAAU,QAAQ,EAAE,SAAS,KAAK,CAAC;AAEpD,QAAM,UAAM;AAAA,IAAe,MACzB,MAAM,KAAK,KAAK,MAAM,WAAW,OAAO,iBAAiB;AAAA,EAC3D;AAEA,gDAAiB,KAAK,UAAU,MAAM;AAKtC,qCAAiB,CAAC,MAAM;AACtB,UAAM,KAAK,IAAI;AACf,UAAM,iBAAiB,IAAI;AAC3B,QAAI,EAAE,MAAM,EAAG,QAAO;AAAA,EACxB,CAAC;AAED,QAAM,eAAW,oCAAc,yBAAyB;AACxD;AAAA,IACE;AAAA,IACA,MAAM;AACJ,UAAI,MAAM,kBAAkB,IAAI,MAAM,OAAO;AAC3C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,EAAE,WAAW,MAAM;AAAA,EACrB;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
useObservable,
|
|
4
|
+
useMount,
|
|
5
|
+
useObserveEffect
|
|
6
|
+
} from "@legendapp/state/react";
|
|
7
|
+
import { useEventListener } from "../../browser/useEventListener";
|
|
8
|
+
import { useMediaQuery } from "../../browser/useMediaQuery";
|
|
9
|
+
import { useMayObservableOptions } from "../../function/useMayObservableOptions";
|
|
10
|
+
import { useWhenMounted } from "../../function/useWhenMounted";
|
|
11
|
+
// @__NO_SIDE_EFFECTS__
|
|
12
|
+
function useWindowSize(options) {
|
|
13
|
+
const opts$ = useMayObservableOptions(options, {
|
|
14
|
+
initialWidth: "peek",
|
|
15
|
+
initialHeight: "peek"
|
|
16
|
+
});
|
|
17
|
+
const size$ = useObservable({
|
|
18
|
+
width: opts$.initialWidth.peek() ?? 0,
|
|
19
|
+
height: opts$.initialHeight.peek() ?? 0
|
|
20
|
+
});
|
|
21
|
+
const update = () => {
|
|
22
|
+
if (typeof window === "undefined") return;
|
|
23
|
+
const type = opts$.type.peek() ?? "inner";
|
|
24
|
+
const includeScrollbar = opts$.includeScrollbar.peek() !== false;
|
|
25
|
+
let width;
|
|
26
|
+
let height;
|
|
27
|
+
if (type === "outer") {
|
|
28
|
+
width = window.outerWidth;
|
|
29
|
+
height = window.outerHeight;
|
|
30
|
+
} else if (type === "visual") {
|
|
31
|
+
const vp = window.visualViewport;
|
|
32
|
+
if (vp) {
|
|
33
|
+
width = vp.width * vp.scale;
|
|
34
|
+
height = vp.height * vp.scale;
|
|
35
|
+
} else {
|
|
36
|
+
width = window.innerWidth;
|
|
37
|
+
height = window.innerHeight;
|
|
38
|
+
}
|
|
39
|
+
} else {
|
|
40
|
+
if (includeScrollbar) {
|
|
41
|
+
width = window.innerWidth;
|
|
42
|
+
height = window.innerHeight;
|
|
43
|
+
} else {
|
|
44
|
+
width = document.documentElement.clientWidth;
|
|
45
|
+
height = document.documentElement.clientHeight;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
size$.assign({ width, height });
|
|
49
|
+
};
|
|
50
|
+
useMount(update);
|
|
51
|
+
useEventListener("resize", update, { passive: true });
|
|
52
|
+
const vp$ = useWhenMounted(
|
|
53
|
+
() => opts$.type.peek() === "visual" ? window.visualViewport : null
|
|
54
|
+
);
|
|
55
|
+
useEventListener(vp$, "resize", update);
|
|
56
|
+
useObserveEffect((e) => {
|
|
57
|
+
opts$.type.get();
|
|
58
|
+
opts$.includeScrollbar.get();
|
|
59
|
+
if (e.num > 0) update();
|
|
60
|
+
});
|
|
61
|
+
const matches$ = useMediaQuery("(orientation: portrait)");
|
|
62
|
+
useObserveEffect(
|
|
63
|
+
matches$,
|
|
64
|
+
() => {
|
|
65
|
+
if (opts$.listenOrientation.get() !== false) {
|
|
66
|
+
update();
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{ immediate: false }
|
|
70
|
+
);
|
|
71
|
+
return size$;
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
useWindowSize
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/useWindowSize/index.ts"],"sourcesContent":["\"use client\";\nimport type { Observable } from \"@legendapp/state\";\nimport {\n useObservable,\n useMount,\n useObserveEffect,\n} from \"@legendapp/state/react\";\nimport { useEventListener } from \"../../browser/useEventListener\";\nimport { useMediaQuery } from \"../../browser/useMediaQuery\";\nimport { useMayObservableOptions } from \"../../function/useMayObservableOptions\";\nimport { useWhenMounted } from \"../../function/useWhenMounted\";\nimport type { DeepMaybeObservable } from \"../../types\";\n\nexport interface UseWindowSizeOptions {\n initialWidth?: number;\n initialHeight?: number;\n listenOrientation?: boolean;\n includeScrollbar?: boolean;\n type?: \"inner\" | \"outer\" | \"visual\";\n}\n\nexport type UseWindowSizeReturn = Observable<{\n width: number;\n height: number;\n}>;\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function useWindowSize(\n options?: DeepMaybeObservable<UseWindowSizeOptions>,\n): UseWindowSizeReturn {\n // Standard Pattern: normalize DeepMaybeObservable<Options> into a stable computed Observable.\n const opts$ = useMayObservableOptions<UseWindowSizeOptions>(options, {\n initialWidth: \"peek\",\n initialHeight: \"peek\",\n });\n\n const size$ = useObservable({\n width: opts$.initialWidth.peek() ?? 0,\n height: opts$.initialHeight.peek() ?? 0,\n });\n\n const update = () => {\n if (typeof window === \"undefined\") return;\n\n const type = opts$.type.peek() ?? \"inner\";\n const includeScrollbar = opts$.includeScrollbar.peek() !== false;\n\n let width: number;\n let height: number;\n\n if (type === \"outer\") {\n width = window.outerWidth;\n height = window.outerHeight;\n } else if (type === \"visual\") {\n const vp = window.visualViewport;\n if (vp) {\n width = vp.width * vp.scale;\n height = vp.height * vp.scale;\n } else {\n width = window.innerWidth;\n height = window.innerHeight;\n }\n } else {\n if (includeScrollbar) {\n width = window.innerWidth;\n height = window.innerHeight;\n } else {\n width = document.documentElement.clientWidth;\n height = document.documentElement.clientHeight;\n }\n }\n\n size$.assign({ width, height });\n };\n\n useMount(update);\n\n useEventListener(\"resize\", update, { passive: true });\n\n const vp$ = useWhenMounted(() =>\n opts$.type.peek() === \"visual\" ? window.visualViewport : null,\n );\n\n useEventListener(vp$, \"resize\", update);\n\n // type 또는 includeScrollbar가 변경되면 즉시 재측정\n // 단일 함수 형태: opts$.type.get()/opts$.includeScrollbar.get()으로 dep 등록,\n // update()는 .peek()만 사용하므로 추가 dep을 등록하지 않음.\n useObserveEffect((e) => {\n opts$.type.get();\n opts$.includeScrollbar.get();\n if (e.num > 0) update();\n });\n\n const matches$ = useMediaQuery(\"(orientation: portrait)\");\n useObserveEffect(\n matches$,\n () => {\n if (opts$.listenOrientation.get() !== false) {\n update();\n }\n },\n { immediate: false },\n );\n\n return size$;\n}\n"],"mappings":";AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,+BAA+B;AACxC,SAAS,sBAAsB;AAAA;AAiBxB,SAAS,cACd,SACqB;AAErB,QAAM,QAAQ,wBAA8C,SAAS;AAAA,IACnE,cAAc;AAAA,IACd,eAAe;AAAA,EACjB,CAAC;AAED,QAAM,QAAQ,cAAc;AAAA,IAC1B,OAAO,MAAM,aAAa,KAAK,KAAK;AAAA,IACpC,QAAQ,MAAM,cAAc,KAAK,KAAK;AAAA,EACxC,CAAC;AAED,QAAM,SAAS,MAAM;AACnB,QAAI,OAAO,WAAW,YAAa;AAEnC,UAAM,OAAO,MAAM,KAAK,KAAK,KAAK;AAClC,UAAM,mBAAmB,MAAM,iBAAiB,KAAK,MAAM;AAE3D,QAAI;AACJ,QAAI;AAEJ,QAAI,SAAS,SAAS;AACpB,cAAQ,OAAO;AACf,eAAS,OAAO;AAAA,IAClB,WAAW,SAAS,UAAU;AAC5B,YAAM,KAAK,OAAO;AAClB,UAAI,IAAI;AACN,gBAAQ,GAAG,QAAQ,GAAG;AACtB,iBAAS,GAAG,SAAS,GAAG;AAAA,MAC1B,OAAO;AACL,gBAAQ,OAAO;AACf,iBAAS,OAAO;AAAA,MAClB;AAAA,IACF,OAAO;AACL,UAAI,kBAAkB;AACpB,gBAAQ,OAAO;AACf,iBAAS,OAAO;AAAA,MAClB,OAAO;AACL,gBAAQ,SAAS,gBAAgB;AACjC,iBAAS,SAAS,gBAAgB;AAAA,MACpC;AAAA,IACF;AAEA,UAAM,OAAO,EAAE,OAAO,OAAO,CAAC;AAAA,EAChC;AAEA,WAAS,MAAM;AAEf,mBAAiB,UAAU,QAAQ,EAAE,SAAS,KAAK,CAAC;AAEpD,QAAM,MAAM;AAAA,IAAe,MACzB,MAAM,KAAK,KAAK,MAAM,WAAW,OAAO,iBAAiB;AAAA,EAC3D;AAEA,mBAAiB,KAAK,UAAU,MAAM;AAKtC,mBAAiB,CAAC,MAAM;AACtB,UAAM,KAAK,IAAI;AACf,UAAM,iBAAiB,IAAI;AAC3B,QAAI,EAAE,MAAM,EAAG,QAAO;AAAA,EACxB,CAAC;AAED,QAAM,WAAW,cAAc,yBAAyB;AACxD;AAAA,IACE;AAAA,IACA,MAAM;AACJ,UAAI,MAAM,kBAAkB,IAAI,MAAM,OAAO;AAC3C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,EAAE,WAAW,MAAM;AAAA,EACrB;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { MaybeObservable } from '../../types.mjs';
|
|
2
|
+
import '@legendapp/state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the value from a MaybeObservable
|
|
6
|
+
* If the value is an Observable, calls .get() to extract it
|
|
7
|
+
* Otherwise returns the value as-is
|
|
8
|
+
*
|
|
9
|
+
* @param maybeObservable - A value that might be an Observable
|
|
10
|
+
* @returns The extracted value
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { observable } from '@legendapp/state'
|
|
15
|
+
* import { get } from '@usels/core'
|
|
16
|
+
*
|
|
17
|
+
* const value = get('hello') // 'hello'
|
|
18
|
+
* const obsValue = get(observable(42)) // 42
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare function get<T>(maybeObservable: MaybeObservable<T>): T;
|
|
22
|
+
declare function get<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Extracts a property value from a MaybeObservable object
|
|
25
|
+
*
|
|
26
|
+
* @param maybeObservable - A value that might be an Observable
|
|
27
|
+
* @param key - The property key to extract
|
|
28
|
+
* @returns The property value, or undefined if not found
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { observable } from '@legendapp/state'
|
|
33
|
+
* import { get } from '@usels/core'
|
|
34
|
+
*
|
|
35
|
+
* const obj = { name: 'John' }
|
|
36
|
+
* const obs$ = observable({ name: 'Jane' })
|
|
37
|
+
*
|
|
38
|
+
* get(obj, 'name') // 'John'
|
|
39
|
+
* get(obs$, 'name') // 'Jane'
|
|
40
|
+
* get(obs$, 'age') // undefined
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
declare function get<T, K extends keyof T>(maybeObservable: MaybeObservable<T>, key: K): T[K] | undefined;
|
|
44
|
+
|
|
45
|
+
export { get };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { MaybeObservable } from '../../types.js';
|
|
2
|
+
import '@legendapp/state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the value from a MaybeObservable
|
|
6
|
+
* If the value is an Observable, calls .get() to extract it
|
|
7
|
+
* Otherwise returns the value as-is
|
|
8
|
+
*
|
|
9
|
+
* @param maybeObservable - A value that might be an Observable
|
|
10
|
+
* @returns The extracted value
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { observable } from '@legendapp/state'
|
|
15
|
+
* import { get } from '@usels/core'
|
|
16
|
+
*
|
|
17
|
+
* const value = get('hello') // 'hello'
|
|
18
|
+
* const obsValue = get(observable(42)) // 42
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare function get<T>(maybeObservable: MaybeObservable<T>): T;
|
|
22
|
+
declare function get<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Extracts a property value from a MaybeObservable object
|
|
25
|
+
*
|
|
26
|
+
* @param maybeObservable - A value that might be an Observable
|
|
27
|
+
* @param key - The property key to extract
|
|
28
|
+
* @returns The property value, or undefined if not found
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { observable } from '@legendapp/state'
|
|
33
|
+
* import { get } from '@usels/core'
|
|
34
|
+
*
|
|
35
|
+
* const obj = { name: 'John' }
|
|
36
|
+
* const obs$ = observable({ name: 'Jane' })
|
|
37
|
+
*
|
|
38
|
+
* get(obj, 'name') // 'John'
|
|
39
|
+
* get(obs$, 'name') // 'Jane'
|
|
40
|
+
* get(obs$, 'age') // undefined
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
declare function get<T, K extends keyof T>(maybeObservable: MaybeObservable<T>, key: K): T[K] | undefined;
|
|
44
|
+
|
|
45
|
+
export { get };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var get_exports = {};
|
|
20
|
+
__export(get_exports, {
|
|
21
|
+
get: () => get
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(get_exports);
|
|
24
|
+
var import_state = require("@legendapp/state");
|
|
25
|
+
function get(maybeObservable, key) {
|
|
26
|
+
const value = (0, import_state.isObservable)(maybeObservable) ? maybeObservable.get() : maybeObservable;
|
|
27
|
+
if (key === void 0) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
if (value !== null && value !== void 0 && typeof value === "object") {
|
|
31
|
+
return value[key];
|
|
32
|
+
}
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
get
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/function/get/index.ts"],"sourcesContent":["import { isObservable } from \"@legendapp/state\";\nimport { MaybeObservable } from \"../../types\";\n\n/**\n * Extracts the value from a MaybeObservable\n * If the value is an Observable, calls .get() to extract it\n * Otherwise returns the value as-is\n *\n * @param maybeObservable - A value that might be an Observable\n * @returns The extracted value\n *\n * @example\n * ```ts\n * import { observable } from '@legendapp/state'\n * import { get } from '@usels/core'\n *\n * const value = get('hello') // 'hello'\n * const obsValue = get(observable(42)) // 42\n * ```\n */\nexport function get<T>(maybeObservable: MaybeObservable<T>): T;\nexport function get<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;\n\n/**\n * Extracts a property value from a MaybeObservable object\n *\n * @param maybeObservable - A value that might be an Observable\n * @param key - The property key to extract\n * @returns The property value, or undefined if not found\n *\n * @example\n * ```ts\n * import { observable } from '@legendapp/state'\n * import { get } from '@usels/core'\n *\n * const obj = { name: 'John' }\n * const obs$ = observable({ name: 'Jane' })\n *\n * get(obj, 'name') // 'John'\n * get(obs$, 'name') // 'Jane'\n * get(obs$, 'age') // undefined\n * ```\n */\nexport function get<T, K extends keyof T>(\n maybeObservable: MaybeObservable<T>,\n key: K,\n): T[K] | undefined;\n\n// Implementation\nexport function get<T>(\n maybeObservable: MaybeObservable<T>,\n key?: keyof T,\n): any {\n // Extract the base value\n const value = isObservable(maybeObservable)\n ? maybeObservable.get()\n : maybeObservable;\n\n // If no key provided, return the value (single-arg overload)\n if (key === undefined) {\n return value;\n }\n\n // If key provided, extract property (two-arg overload)\n if (value !== null && value !== undefined && typeof value === \"object\") {\n return (value as any)[key];\n }\n\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6B;AAiDtB,SAAS,IACd,iBACA,KACK;AAEL,QAAM,YAAQ,2BAAa,eAAe,IACtC,gBAAgB,IAAI,IACpB;AAGJ,MAAI,QAAQ,QAAW;AACrB,WAAO;AAAA,EACT;AAGA,MAAI,UAAU,QAAQ,UAAU,UAAa,OAAO,UAAU,UAAU;AACtE,WAAQ,MAAc,GAAG;AAAA,EAC3B;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isObservable } from "@legendapp/state";
|
|
2
|
+
function get(maybeObservable, key) {
|
|
3
|
+
const value = isObservable(maybeObservable) ? maybeObservable.get() : maybeObservable;
|
|
4
|
+
if (key === void 0) {
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
if (value !== null && value !== void 0 && typeof value === "object") {
|
|
8
|
+
return value[key];
|
|
9
|
+
}
|
|
10
|
+
return void 0;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
get
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/function/get/index.ts"],"sourcesContent":["import { isObservable } from \"@legendapp/state\";\nimport { MaybeObservable } from \"../../types\";\n\n/**\n * Extracts the value from a MaybeObservable\n * If the value is an Observable, calls .get() to extract it\n * Otherwise returns the value as-is\n *\n * @param maybeObservable - A value that might be an Observable\n * @returns The extracted value\n *\n * @example\n * ```ts\n * import { observable } from '@legendapp/state'\n * import { get } from '@usels/core'\n *\n * const value = get('hello') // 'hello'\n * const obsValue = get(observable(42)) // 42\n * ```\n */\nexport function get<T>(maybeObservable: MaybeObservable<T>): T;\nexport function get<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;\n\n/**\n * Extracts a property value from a MaybeObservable object\n *\n * @param maybeObservable - A value that might be an Observable\n * @param key - The property key to extract\n * @returns The property value, or undefined if not found\n *\n * @example\n * ```ts\n * import { observable } from '@legendapp/state'\n * import { get } from '@usels/core'\n *\n * const obj = { name: 'John' }\n * const obs$ = observable({ name: 'Jane' })\n *\n * get(obj, 'name') // 'John'\n * get(obs$, 'name') // 'Jane'\n * get(obs$, 'age') // undefined\n * ```\n */\nexport function get<T, K extends keyof T>(\n maybeObservable: MaybeObservable<T>,\n key: K,\n): T[K] | undefined;\n\n// Implementation\nexport function get<T>(\n maybeObservable: MaybeObservable<T>,\n key?: keyof T,\n): any {\n // Extract the base value\n const value = isObservable(maybeObservable)\n ? maybeObservable.get()\n : maybeObservable;\n\n // If no key provided, return the value (single-arg overload)\n if (key === undefined) {\n return value;\n }\n\n // If key provided, extract property (two-arg overload)\n if (value !== null && value !== undefined && typeof value === \"object\") {\n return (value as any)[key];\n }\n\n return undefined;\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAiDtB,SAAS,IACd,iBACA,KACK;AAEL,QAAM,QAAQ,aAAa,eAAe,IACtC,gBAAgB,IAAI,IACpB;AAGJ,MAAI,QAAQ,QAAW;AACrB,WAAO;AAAA,EACT;AAGA,MAAI,UAAU,QAAQ,UAAU,UAAa,OAAO,UAAU,UAAU;AACtE,WAAQ,MAAc,GAAG;AAAA,EAC3B;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { MaybeObservable } from '../../types.mjs';
|
|
2
|
+
import '@legendapp/state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the value from a MaybeObservable **without** registering a tracking dependency.
|
|
6
|
+
* If the value is an Observable, calls `.peek()` to extract it non-reactively.
|
|
7
|
+
* Otherwise returns the value as-is.
|
|
8
|
+
*
|
|
9
|
+
* Use this for mount-time-only options that should not trigger re-runs when changed.
|
|
10
|
+
* Prefer `get()` inside reactive contexts (`useObserve`, `useObservable`) when reactivity is needed.
|
|
11
|
+
*
|
|
12
|
+
* @param maybeObservable - A value that might be an Observable
|
|
13
|
+
* @returns The extracted value (no tracking dependency registered)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { observable } from '@legendapp/state'
|
|
18
|
+
* import { peek } from '@usels/core'
|
|
19
|
+
*
|
|
20
|
+
* const value = peek('hello') // 'hello'
|
|
21
|
+
* const obsValue = peek(observable(42)) // 42 — no dep registered
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare function peek<T>(maybeObservable: MaybeObservable<T>): T;
|
|
25
|
+
declare function peek<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Extracts a property value from a MaybeObservable object **without** registering a tracking dependency.
|
|
28
|
+
*
|
|
29
|
+
* @param maybeObservable - A value that might be an Observable
|
|
30
|
+
* @param key - The property key to extract
|
|
31
|
+
* @returns The property value, or undefined if not found
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { observable } from '@legendapp/state'
|
|
36
|
+
* import { peek } from '@usels/core'
|
|
37
|
+
*
|
|
38
|
+
* const obs$ = observable({ initialValue: true, rootMargin: '0px' })
|
|
39
|
+
*
|
|
40
|
+
* peek(obs$, 'initialValue') // true — no dep registered (mount-time-only read)
|
|
41
|
+
* peek(obs$, 'rootMargin') // '0px' — no dep registered
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
declare function peek<T, K extends keyof T>(maybeObservable: MaybeObservable<T>, key: K): T[K] | undefined;
|
|
45
|
+
|
|
46
|
+
export { peek };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { MaybeObservable } from '../../types.js';
|
|
2
|
+
import '@legendapp/state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the value from a MaybeObservable **without** registering a tracking dependency.
|
|
6
|
+
* If the value is an Observable, calls `.peek()` to extract it non-reactively.
|
|
7
|
+
* Otherwise returns the value as-is.
|
|
8
|
+
*
|
|
9
|
+
* Use this for mount-time-only options that should not trigger re-runs when changed.
|
|
10
|
+
* Prefer `get()` inside reactive contexts (`useObserve`, `useObservable`) when reactivity is needed.
|
|
11
|
+
*
|
|
12
|
+
* @param maybeObservable - A value that might be an Observable
|
|
13
|
+
* @returns The extracted value (no tracking dependency registered)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { observable } from '@legendapp/state'
|
|
18
|
+
* import { peek } from '@usels/core'
|
|
19
|
+
*
|
|
20
|
+
* const value = peek('hello') // 'hello'
|
|
21
|
+
* const obsValue = peek(observable(42)) // 42 — no dep registered
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare function peek<T>(maybeObservable: MaybeObservable<T>): T;
|
|
25
|
+
declare function peek<T>(maybeObservable: MaybeObservable<T> | undefined): T | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Extracts a property value from a MaybeObservable object **without** registering a tracking dependency.
|
|
28
|
+
*
|
|
29
|
+
* @param maybeObservable - A value that might be an Observable
|
|
30
|
+
* @param key - The property key to extract
|
|
31
|
+
* @returns The property value, or undefined if not found
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { observable } from '@legendapp/state'
|
|
36
|
+
* import { peek } from '@usels/core'
|
|
37
|
+
*
|
|
38
|
+
* const obs$ = observable({ initialValue: true, rootMargin: '0px' })
|
|
39
|
+
*
|
|
40
|
+
* peek(obs$, 'initialValue') // true — no dep registered (mount-time-only read)
|
|
41
|
+
* peek(obs$, 'rootMargin') // '0px' — no dep registered
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
declare function peek<T, K extends keyof T>(maybeObservable: MaybeObservable<T>, key: K): T[K] | undefined;
|
|
45
|
+
|
|
46
|
+
export { peek };
|