@number-flow/react 0.4.3 → 0.5.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/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +29 -21
- package/dist/index.mjs +25 -21
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { NumberFlowLite, Value, Format, Props } from 'number-flow';
|
|
3
3
|
export { Format, NumberPartType, Trend, Value } from 'number-flow';
|
|
4
|
+
export * from 'number-flow/plugins';
|
|
4
5
|
|
|
5
6
|
declare const OBSERVED_ATTRIBUTES: readonly ["data", "digits"];
|
|
6
7
|
type ObservedAttribute = (typeof OBSERVED_ATTRIBUTES)[number];
|
|
@@ -37,8 +38,10 @@ declare const NumberFlow: React.ForwardRefExoticComponent<React.HTMLAttributes<N
|
|
|
37
38
|
declare function NumberFlowGroup({ children }: {
|
|
38
39
|
children: React.ReactNode;
|
|
39
40
|
}): React.JSX.Element;
|
|
41
|
+
declare const useIsSupported: () => boolean;
|
|
42
|
+
declare const usePrefersReducedMotion: () => boolean;
|
|
40
43
|
declare function useCanAnimate({ respectMotionPreference }?: {
|
|
41
44
|
respectMotionPreference?: boolean | undefined;
|
|
42
45
|
}): boolean;
|
|
43
46
|
|
|
44
|
-
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate };
|
|
47
|
+
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate, useIsSupported, usePrefersReducedMotion };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { NumberFlowLite, Value, Format, Props } from 'number-flow';
|
|
3
3
|
export { Format, NumberPartType, Trend, Value } from 'number-flow';
|
|
4
|
+
export * from 'number-flow/plugins';
|
|
4
5
|
|
|
5
6
|
declare const OBSERVED_ATTRIBUTES: readonly ["data", "digits"];
|
|
6
7
|
type ObservedAttribute = (typeof OBSERVED_ATTRIBUTES)[number];
|
|
@@ -37,8 +38,10 @@ declare const NumberFlow: React.ForwardRefExoticComponent<React.HTMLAttributes<N
|
|
|
37
38
|
declare function NumberFlowGroup({ children }: {
|
|
38
39
|
children: React.ReactNode;
|
|
39
40
|
}): React.JSX.Element;
|
|
41
|
+
declare const useIsSupported: () => boolean;
|
|
42
|
+
declare const usePrefersReducedMotion: () => boolean;
|
|
40
43
|
declare function useCanAnimate({ respectMotionPreference }?: {
|
|
41
44
|
respectMotionPreference?: boolean | undefined;
|
|
42
45
|
}): boolean;
|
|
43
46
|
|
|
44
|
-
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate };
|
|
47
|
+
export { NumberFlowElement, NumberFlowGroup, type NumberFlowProps, NumberFlow as default, useCanAnimate, useIsSupported, usePrefersReducedMotion };
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
}
|
|
19
19
|
return to;
|
|
20
20
|
};
|
|
21
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
21
22
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
23
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
24
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -34,12 +35,15 @@ __export(src_exports, {
|
|
|
34
35
|
NumberFlowElement: () => NumberFlowElement,
|
|
35
36
|
NumberFlowGroup: () => NumberFlowGroup,
|
|
36
37
|
default: () => src_default,
|
|
37
|
-
useCanAnimate: () => useCanAnimate
|
|
38
|
+
useCanAnimate: () => useCanAnimate,
|
|
39
|
+
useIsSupported: () => useIsSupported,
|
|
40
|
+
usePrefersReducedMotion: () => usePrefersReducedMotion
|
|
38
41
|
});
|
|
39
42
|
module.exports = __toCommonJS(src_exports);
|
|
40
43
|
var React = __toESM(require("react"));
|
|
41
44
|
var import_number_flow = require("number-flow");
|
|
42
45
|
var import_esm_env = require("esm-env");
|
|
46
|
+
__reExport(src_exports, require("number-flow/plugins"), module.exports);
|
|
43
47
|
var REACT_MAJOR = parseInt(React.version.match(/^(\d+)\./)?.[1]);
|
|
44
48
|
var isReact19 = REACT_MAJOR >= 19;
|
|
45
49
|
var OBSERVED_ATTRIBUTES = ["data", "digits"];
|
|
@@ -60,7 +64,7 @@ function splitProps(props) {
|
|
|
60
64
|
animated,
|
|
61
65
|
respectMotionPreference,
|
|
62
66
|
trend,
|
|
63
|
-
|
|
67
|
+
plugins,
|
|
64
68
|
...rest
|
|
65
69
|
} = props;
|
|
66
70
|
return [
|
|
@@ -71,7 +75,7 @@ function splitProps(props) {
|
|
|
71
75
|
animated,
|
|
72
76
|
respectMotionPreference,
|
|
73
77
|
trend,
|
|
74
|
-
|
|
78
|
+
plugins
|
|
75
79
|
},
|
|
76
80
|
rest
|
|
77
81
|
];
|
|
@@ -219,28 +223,32 @@ function NumberFlowGroup({ children }) {
|
|
|
219
223
|
);
|
|
220
224
|
return /* @__PURE__ */ React.createElement(NumberFlowGroupContext.Provider, { value }, children);
|
|
221
225
|
}
|
|
226
|
+
var useIsSupported = () => React.useSyncExternalStore(
|
|
227
|
+
() => () => {
|
|
228
|
+
},
|
|
229
|
+
// this value doesn't change, but it's useful to specify a different SSR value:
|
|
230
|
+
() => import_number_flow.canAnimate,
|
|
231
|
+
() => false
|
|
232
|
+
);
|
|
233
|
+
var usePrefersReducedMotion = () => React.useSyncExternalStore(
|
|
234
|
+
(cb) => {
|
|
235
|
+
import_number_flow.prefersReducedMotion?.addEventListener("change", cb);
|
|
236
|
+
return () => import_number_flow.prefersReducedMotion?.removeEventListener("change", cb);
|
|
237
|
+
},
|
|
238
|
+
() => import_number_flow.prefersReducedMotion.matches,
|
|
239
|
+
() => false
|
|
240
|
+
);
|
|
222
241
|
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);
|
|
242
|
+
const isSupported = useIsSupported();
|
|
243
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
244
|
+
return isSupported && (!respectMotionPreference || !reducedMotion);
|
|
240
245
|
}
|
|
241
246
|
// Annotate the CommonJS export names for ESM import in node:
|
|
242
247
|
0 && (module.exports = {
|
|
243
248
|
NumberFlowElement,
|
|
244
249
|
NumberFlowGroup,
|
|
245
|
-
useCanAnimate
|
|
250
|
+
useCanAnimate,
|
|
251
|
+
useIsSupported,
|
|
252
|
+
usePrefersReducedMotion,
|
|
253
|
+
...require("number-flow/plugins")
|
|
246
254
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -6,11 +6,12 @@ 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";
|
|
13
13
|
import { BROWSER } from "esm-env";
|
|
14
|
+
export * from "number-flow/plugins";
|
|
14
15
|
var REACT_MAJOR = parseInt(React.version.match(/^(\d+)\./)?.[1]);
|
|
15
16
|
var isReact19 = REACT_MAJOR >= 19;
|
|
16
17
|
var OBSERVED_ATTRIBUTES = ["data", "digits"];
|
|
@@ -31,7 +32,7 @@ function splitProps(props) {
|
|
|
31
32
|
animated,
|
|
32
33
|
respectMotionPreference,
|
|
33
34
|
trend,
|
|
34
|
-
|
|
35
|
+
plugins,
|
|
35
36
|
...rest
|
|
36
37
|
} = props;
|
|
37
38
|
return [
|
|
@@ -42,7 +43,7 @@ function splitProps(props) {
|
|
|
42
43
|
animated,
|
|
43
44
|
respectMotionPreference,
|
|
44
45
|
trend,
|
|
45
|
-
|
|
46
|
+
plugins
|
|
46
47
|
},
|
|
47
48
|
rest
|
|
48
49
|
];
|
|
@@ -190,28 +191,31 @@ function NumberFlowGroup({ children }) {
|
|
|
190
191
|
);
|
|
191
192
|
return /* @__PURE__ */ React.createElement(NumberFlowGroupContext.Provider, { value }, children);
|
|
192
193
|
}
|
|
194
|
+
var useIsSupported = () => React.useSyncExternalStore(
|
|
195
|
+
() => () => {
|
|
196
|
+
},
|
|
197
|
+
// this value doesn't change, but it's useful to specify a different SSR value:
|
|
198
|
+
() => _canAnimate,
|
|
199
|
+
() => false
|
|
200
|
+
);
|
|
201
|
+
var usePrefersReducedMotion = () => React.useSyncExternalStore(
|
|
202
|
+
(cb) => {
|
|
203
|
+
_prefersReducedMotion?.addEventListener("change", cb);
|
|
204
|
+
return () => _prefersReducedMotion?.removeEventListener("change", cb);
|
|
205
|
+
},
|
|
206
|
+
() => _prefersReducedMotion.matches,
|
|
207
|
+
() => false
|
|
208
|
+
);
|
|
193
209
|
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);
|
|
210
|
+
const isSupported = useIsSupported();
|
|
211
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
212
|
+
return isSupported && (!respectMotionPreference || !reducedMotion);
|
|
211
213
|
}
|
|
212
214
|
export {
|
|
213
215
|
NumberFlowElement,
|
|
214
216
|
NumberFlowGroup,
|
|
215
217
|
src_default as default,
|
|
216
|
-
useCanAnimate
|
|
218
|
+
useCanAnimate,
|
|
219
|
+
useIsSupported,
|
|
220
|
+
usePrefersReducedMotion
|
|
217
221
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.5.0",
|
|
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.
|
|
52
|
+
"number-flow": "0.5.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@playwright/test": "^1.48.0",
|