@number-flow/react 0.4.3 → 0.4.4
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/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +24 -19
- package/dist/index.mjs +22 -19
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -37,8 +37,10 @@ declare const NumberFlow: React.ForwardRefExoticComponent<React.HTMLAttributes<N
|
|
|
37
37
|
declare function NumberFlowGroup({ children }: {
|
|
38
38
|
children: React.ReactNode;
|
|
39
39
|
}): React.JSX.Element;
|
|
40
|
+
declare const useIsSupported: () => boolean;
|
|
41
|
+
declare const usePrefersReducedMotion: () => boolean;
|
|
40
42
|
declare function useCanAnimate({ respectMotionPreference }?: {
|
|
41
43
|
respectMotionPreference?: boolean | undefined;
|
|
42
44
|
}): boolean;
|
|
43
45
|
|
|
44
|
-
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate };
|
|
46
|
+
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate, useIsSupported, usePrefersReducedMotion };
|
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,10 @@ declare const NumberFlow: React.ForwardRefExoticComponent<React.HTMLAttributes<N
|
|
|
37
37
|
declare function NumberFlowGroup({ children }: {
|
|
38
38
|
children: React.ReactNode;
|
|
39
39
|
}): React.JSX.Element;
|
|
40
|
+
declare const useIsSupported: () => boolean;
|
|
41
|
+
declare const usePrefersReducedMotion: () => boolean;
|
|
40
42
|
declare function useCanAnimate({ respectMotionPreference }?: {
|
|
41
43
|
respectMotionPreference?: boolean | undefined;
|
|
42
44
|
}): boolean;
|
|
43
45
|
|
|
44
|
-
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate };
|
|
46
|
+
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate, useIsSupported, usePrefersReducedMotion };
|
package/dist/index.js
CHANGED
|
@@ -34,7 +34,9 @@ __export(src_exports, {
|
|
|
34
34
|
NumberFlowElement: () => NumberFlowElement,
|
|
35
35
|
NumberFlowGroup: () => NumberFlowGroup,
|
|
36
36
|
default: () => src_default,
|
|
37
|
-
useCanAnimate: () => useCanAnimate
|
|
37
|
+
useCanAnimate: () => useCanAnimate,
|
|
38
|
+
useIsSupported: () => useIsSupported,
|
|
39
|
+
usePrefersReducedMotion: () => usePrefersReducedMotion
|
|
38
40
|
});
|
|
39
41
|
module.exports = __toCommonJS(src_exports);
|
|
40
42
|
var React = __toESM(require("react"));
|
|
@@ -219,28 +221,31 @@ function NumberFlowGroup({ children }) {
|
|
|
219
221
|
);
|
|
220
222
|
return /* @__PURE__ */ React.createElement(NumberFlowGroupContext.Provider, { value }, children);
|
|
221
223
|
}
|
|
224
|
+
var useIsSupported = () => React.useSyncExternalStore(
|
|
225
|
+
() => () => {
|
|
226
|
+
},
|
|
227
|
+
// this value doesn't change, but it's useful to specify a different SSR value:
|
|
228
|
+
() => import_number_flow.canAnimate,
|
|
229
|
+
() => false
|
|
230
|
+
);
|
|
231
|
+
var usePrefersReducedMotion = () => React.useSyncExternalStore(
|
|
232
|
+
(cb) => {
|
|
233
|
+
import_number_flow.prefersReducedMotion?.addEventListener("change", cb);
|
|
234
|
+
return () => import_number_flow.prefersReducedMotion?.removeEventListener("change", cb);
|
|
235
|
+
},
|
|
236
|
+
() => import_number_flow.prefersReducedMotion.matches,
|
|
237
|
+
() => false
|
|
238
|
+
);
|
|
222
239
|
function useCanAnimate({ respectMotionPreference = true } = {}) {
|
|
223
|
-
const
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
setCanAnimate(import_number_flow.canAnimate);
|
|
227
|
-
setReducedMotion(import_number_flow.prefersReducedMotion?.matches ?? false);
|
|
228
|
-
}, []);
|
|
229
|
-
React.useEffect(() => {
|
|
230
|
-
if (!respectMotionPreference) return;
|
|
231
|
-
const onChange = ({ matches }) => {
|
|
232
|
-
setReducedMotion(matches);
|
|
233
|
-
};
|
|
234
|
-
import_number_flow.prefersReducedMotion?.addEventListener("change", onChange);
|
|
235
|
-
return () => {
|
|
236
|
-
import_number_flow.prefersReducedMotion?.removeEventListener("change", onChange);
|
|
237
|
-
};
|
|
238
|
-
}, [respectMotionPreference]);
|
|
239
|
-
return canAnimate && (!respectMotionPreference || !reducedMotion);
|
|
240
|
+
const isSupported = useIsSupported();
|
|
241
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
242
|
+
return isSupported && (!respectMotionPreference || !reducedMotion);
|
|
240
243
|
}
|
|
241
244
|
// Annotate the CommonJS export names for ESM import in node:
|
|
242
245
|
0 && (module.exports = {
|
|
243
246
|
NumberFlowElement,
|
|
244
247
|
NumberFlowGroup,
|
|
245
|
-
useCanAnimate
|
|
248
|
+
useCanAnimate,
|
|
249
|
+
useIsSupported,
|
|
250
|
+
usePrefersReducedMotion
|
|
246
251
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
renderInnerHTML,
|
|
7
7
|
formatToData,
|
|
8
8
|
NumberFlowLite,
|
|
9
|
-
prefersReducedMotion,
|
|
9
|
+
prefersReducedMotion as _prefersReducedMotion,
|
|
10
10
|
canAnimate as _canAnimate,
|
|
11
11
|
define
|
|
12
12
|
} from "number-flow";
|
|
@@ -190,28 +190,31 @@ function NumberFlowGroup({ children }) {
|
|
|
190
190
|
);
|
|
191
191
|
return /* @__PURE__ */ React.createElement(NumberFlowGroupContext.Provider, { value }, children);
|
|
192
192
|
}
|
|
193
|
+
var useIsSupported = () => React.useSyncExternalStore(
|
|
194
|
+
() => () => {
|
|
195
|
+
},
|
|
196
|
+
// this value doesn't change, but it's useful to specify a different SSR value:
|
|
197
|
+
() => _canAnimate,
|
|
198
|
+
() => false
|
|
199
|
+
);
|
|
200
|
+
var usePrefersReducedMotion = () => React.useSyncExternalStore(
|
|
201
|
+
(cb) => {
|
|
202
|
+
_prefersReducedMotion?.addEventListener("change", cb);
|
|
203
|
+
return () => _prefersReducedMotion?.removeEventListener("change", cb);
|
|
204
|
+
},
|
|
205
|
+
() => _prefersReducedMotion.matches,
|
|
206
|
+
() => false
|
|
207
|
+
);
|
|
193
208
|
function useCanAnimate({ respectMotionPreference = true } = {}) {
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
setCanAnimate(_canAnimate);
|
|
198
|
-
setReducedMotion(prefersReducedMotion?.matches ?? false);
|
|
199
|
-
}, []);
|
|
200
|
-
React.useEffect(() => {
|
|
201
|
-
if (!respectMotionPreference) return;
|
|
202
|
-
const onChange = ({ matches }) => {
|
|
203
|
-
setReducedMotion(matches);
|
|
204
|
-
};
|
|
205
|
-
prefersReducedMotion?.addEventListener("change", onChange);
|
|
206
|
-
return () => {
|
|
207
|
-
prefersReducedMotion?.removeEventListener("change", onChange);
|
|
208
|
-
};
|
|
209
|
-
}, [respectMotionPreference]);
|
|
210
|
-
return canAnimate && (!respectMotionPreference || !reducedMotion);
|
|
209
|
+
const isSupported = useIsSupported();
|
|
210
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
211
|
+
return isSupported && (!respectMotionPreference || !reducedMotion);
|
|
211
212
|
}
|
|
212
213
|
export {
|
|
213
214
|
NumberFlowElement,
|
|
214
215
|
NumberFlowGroup,
|
|
215
216
|
src_default as default,
|
|
216
|
-
useCanAnimate
|
|
217
|
+
useCanAnimate,
|
|
218
|
+
useIsSupported,
|
|
219
|
+
usePrefersReducedMotion
|
|
217
220
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.4.
|
|
6
|
+
"version": "0.4.4",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Maxwell Barvian",
|
|
9
9
|
"email": "max@barvian.me",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"esm-env": "^1.1.4",
|
|
52
|
-
"number-flow": "0.4.
|
|
52
|
+
"number-flow": "0.4.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@playwright/test": "^1.48.0",
|