@number-flow/vue 0.3.2 → 0.3.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/README.md CHANGED
@@ -1,15 +1,13 @@
1
1
  [![NumberFlow for Vue](https://number-flow.barvian.me/preview.webp)](https://number-flow.barvian.me/vue)
2
2
 
3
- # Number Flow for Vue
3
+ # NumberFlow for Vue
4
4
 
5
- A Vue component to transition & format numbers.
5
+ An animated number component.
6
6
 
7
7
  [![NPM Version](https://img.shields.io/npm/v/@number-flow/vue.svg)](https://npmjs.com/package/@number-flow/vue)
8
8
  [![Bundle size](https://badgen.net/bundlephobia/minzip/@number-flow/vue@latest)](https://bundlephobia.com/package/@number-flow/vue@latest)
9
9
  [![Follow @mbarvian](https://img.shields.io/twitter/follow/mbarvian.svg?style=social&label=Follow)](https://x.com/mbarvian)
10
10
 
11
- ---
12
-
13
11
  ## Documentation
14
12
 
15
13
  For full documentation, visit [number-flow.barvian.me/vue](https://number-flow.barvian.me/vue).
package/dist/index.js CHANGED
@@ -1 +1,100 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("number-flow"),g=require("esm-env"),c=Symbol(),v=e.defineComponent({__name:"NumberFlowGroup",setup(r){const l=new Set;let u=!1;const i=(a,s)=>{l.add(a),e.watch(s,async()=>{u||(u=!0,l.forEach(async n=>{var m;!n.value||!n.value.created||(n.value.willUpdate(),await e.nextTick(),(m=n.value)==null||m.didUpdate())}),await e.nextTick(),u=!1)}),e.onUnmounted(()=>{l.delete(a)})};return e.provide(c,i),(a,s)=>e.renderSlot(a.$slots,"default")}}),w=["aria-label","manual","trend","continuous","animated","transformTiming","spinTiming","opacityTiming","respectMotionPreference","data-will-change","digits","innerHTML","data"],b=e.defineComponent({inheritAttrs:!1,__name:"index",props:{transformTiming:{default:()=>t.NumberFlowLite.defaultProps.transformTiming},spinTiming:{default:()=>t.NumberFlowLite.defaultProps.spinTiming},opacityTiming:{default:()=>t.NumberFlowLite.defaultProps.opacityTiming},animated:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.animated},respectMotionPreference:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.respectMotionPreference},trend:{type:[Number,Function],default:()=>t.NumberFlowLite.defaultProps.trend},continuous:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.continuous},digits:{default:()=>t.NumberFlowLite.defaultProps.digits},locales:{},format:{},value:{},prefix:{},suffix:{},willChange:{type:Boolean,default:!1}},emits:["animationsstart","animationsfinish"],setup(r,{expose:l,emit:u}){const i=e.ref();l({el:i});const a=u,s=e.computed(()=>new Intl.NumberFormat(r.locales,r.format)),n=e.computed(()=>t.formatToData(r.value,s.value,r.prefix,r.suffix)),m=g.BROWSER?void 0:t.renderInnerHTML(n.value),d=e.inject(c,void 0);return d==null||d(i,n),(o,f)=>(e.openBlock(),e.createElementBlock("number-flow-vue",e.mergeProps({ref_key:"el",ref:i,"aria-label":n.value.valueAsString},o.$attrs,{role:"img",manual:!!e.unref(d),trend:o.trend,continuous:o.continuous,animated:o.animated,transformTiming:o.transformTiming,spinTiming:o.spinTiming,opacityTiming:o.opacityTiming,respectMotionPreference:o.respectMotionPreference,"data-will-change":o.willChange?"":void 0,digits:o.digits,innerHTML:e.unref(m),"data-allow-mismatch":"",onAnimationsstart:f[0]||(f[0]=p=>a("animationsstart")),onAnimationsfinish:f[1]||(f[1]=p=>a("animationsfinish")),data:n.value}),null,16,w))}});t.define("number-flow-vue",t.NumberFlowLite);function T({respectMotionPreference:r=!0}={}){const l=e.ref(!1),u=e.ref(!1);return e.onMounted(()=>{var i;l.value=t.canAnimate,u.value=((i=t.prefersReducedMotion)==null?void 0:i.matches)??!1}),e.watchEffect(i=>{var s;if(!e.toValue(r))return;const a=({matches:n})=>{u.value=n};(s=t.prefersReducedMotion)==null||s.addEventListener("change",a),i(()=>{var n;(n=t.prefersReducedMotion)==null||n.removeEventListener("change",a)})}),e.computed(()=>l.value&&(!e.toValue(r)||!u.value))}Object.defineProperty(exports,"NumberFlowElement",{enumerable:!0,get:()=>t.NumberFlowLite});exports.NumberFlowGroup=v;exports.default=b;exports.useCanAnimate=T;
1
+ import { defineComponent as h, provide as P, renderSlot as b, watch as M, nextTick as g, onUnmounted as B, ref as c, computed as p, inject as A, openBlock as E, createElementBlock as F, mergeProps as L, unref as v, onMounted as N, watchEffect as $, toValue as T } from "vue";
2
+ import { NumberFlowLite as r, formatToData as k, renderInnerHTML as C, define as S, canAnimate as G, prefersReducedMotion as f } from "number-flow";
3
+ import { NumberFlowLite as x } from "number-flow";
4
+ import { BROWSER as H } from "esm-env";
5
+ const w = Symbol(), j = /* @__PURE__ */ h({
6
+ __name: "NumberFlowGroup",
7
+ setup(a) {
8
+ const s = /* @__PURE__ */ new Set();
9
+ let i = !1;
10
+ return P(w, (t, l) => {
11
+ s.add(t), M(
12
+ l,
13
+ async () => {
14
+ i || (i = !0, s.forEach(async (e) => {
15
+ var u;
16
+ !e.value || !e.value.created || (e.value.willUpdate(), await g(), (u = e.value) == null || u.didUpdate());
17
+ }), await g(), i = !1);
18
+ }
19
+ // { flush: 'pre' } // default
20
+ ), B(() => {
21
+ s.delete(t);
22
+ });
23
+ }), (t, l) => b(t.$slots, "default");
24
+ }
25
+ }), R = ["aria-label", "manual", "trend", "continuous", "animated", "transformTiming", "spinTiming", "opacityTiming", "respectMotionPreference", "data-will-change", "digits", "innerHTML", "data"], D = /* @__PURE__ */ h({
26
+ inheritAttrs: !1,
27
+ __name: "index",
28
+ props: {
29
+ transformTiming: { default: () => r.defaultProps.transformTiming },
30
+ spinTiming: { default: () => r.defaultProps.spinTiming },
31
+ opacityTiming: { default: () => r.defaultProps.opacityTiming },
32
+ animated: { type: Boolean, default: () => r.defaultProps.animated },
33
+ respectMotionPreference: { type: Boolean, default: () => r.defaultProps.respectMotionPreference },
34
+ trend: { type: [Number, Function], default: () => r.defaultProps.trend },
35
+ continuous: { type: Boolean, default: () => r.defaultProps.continuous },
36
+ digits: { default: () => r.defaultProps.digits },
37
+ locales: {},
38
+ format: {},
39
+ value: {},
40
+ prefix: {},
41
+ suffix: {},
42
+ willChange: { type: Boolean, default: !1 }
43
+ },
44
+ emits: ["animationsstart", "animationsfinish"],
45
+ setup(a, { expose: s, emit: i }) {
46
+ const o = c();
47
+ s({ el: o });
48
+ const t = i, l = p(() => new Intl.NumberFormat(a.locales, a.format)), e = p(() => k(a.value, l.value, a.prefix, a.suffix)), u = H ? void 0 : C(e.value), m = A(w, void 0);
49
+ return m == null || m(o, e), (n, d) => (E(), F("number-flow-vue", L({
50
+ ref_key: "el",
51
+ ref: o,
52
+ "aria-label": e.value.valueAsString
53
+ }, n.$attrs, {
54
+ role: "img",
55
+ manual: !!v(m),
56
+ trend: n.trend,
57
+ continuous: n.continuous,
58
+ animated: n.animated,
59
+ transformTiming: n.transformTiming,
60
+ spinTiming: n.spinTiming,
61
+ opacityTiming: n.opacityTiming,
62
+ respectMotionPreference: n.respectMotionPreference,
63
+ "data-will-change": n.willChange ? "" : void 0,
64
+ digits: n.digits,
65
+ innerHTML: v(u),
66
+ "data-allow-mismatch": "",
67
+ onAnimationsstart: d[0] || (d[0] = (y) => t("animationsstart")),
68
+ onAnimationsfinish: d[1] || (d[1] = (y) => t("animationsfinish")),
69
+ data: e.value
70
+ }), null, 16, R));
71
+ }
72
+ });
73
+ S("number-flow-vue", r);
74
+ function O({
75
+ respectMotionPreference: a = !0
76
+ } = {}) {
77
+ const s = c(!1), i = c(!1);
78
+ return N(() => {
79
+ var o;
80
+ s.value = G, i.value = ((o = f) == null ? void 0 : o.matches) ?? !1;
81
+ }), $((o) => {
82
+ var l;
83
+ if (!T(a)) return;
84
+ const t = ({ matches: e }) => {
85
+ i.value = e;
86
+ };
87
+ (l = f) == null || l.addEventListener("change", t), o(() => {
88
+ var e;
89
+ (e = f) == null || e.removeEventListener("change", t);
90
+ });
91
+ }), p(
92
+ () => s.value && (!T(a) || !i.value)
93
+ );
94
+ }
95
+ export {
96
+ x as NumberFlowElement,
97
+ j as NumberFlowGroup,
98
+ D as default,
99
+ O as useCanAnimate
100
+ };
@@ -0,0 +1 @@
1
+ (function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("number-flow"),require("esm-env")):typeof define=="function"&&define.amd?define(["exports","vue","number-flow","esm-env"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i["number-flow-vue"]={},i.Vue,i.NumberFlow,i.Env))})(this,function(i,e,t,g){"use strict";const p=Symbol(),T=e.defineComponent({__name:"NumberFlowGroup",setup(s){const d=new Set;let l=!1;const a=(o,u)=>{d.add(o),e.watch(u,async()=>{l||(l=!0,d.forEach(async n=>{var f;!n.value||!n.value.created||(n.value.willUpdate(),await e.nextTick(),(f=n.value)==null||f.didUpdate())}),await e.nextTick(),l=!1)}),e.onUnmounted(()=>{d.delete(o)})};return e.provide(p,a),(o,u)=>e.renderSlot(o.$slots,"default")}}),h=["aria-label","manual","trend","continuous","animated","transformTiming","spinTiming","opacityTiming","respectMotionPreference","data-will-change","digits","innerHTML","data"],y=e.defineComponent({inheritAttrs:!1,__name:"index",props:{transformTiming:{default:()=>t.NumberFlowLite.defaultProps.transformTiming},spinTiming:{default:()=>t.NumberFlowLite.defaultProps.spinTiming},opacityTiming:{default:()=>t.NumberFlowLite.defaultProps.opacityTiming},animated:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.animated},respectMotionPreference:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.respectMotionPreference},trend:{type:[Number,Function],default:()=>t.NumberFlowLite.defaultProps.trend},continuous:{type:Boolean,default:()=>t.NumberFlowLite.defaultProps.continuous},digits:{default:()=>t.NumberFlowLite.defaultProps.digits},locales:{},format:{},value:{},prefix:{},suffix:{},willChange:{type:Boolean,default:!1}},emits:["animationsstart","animationsfinish"],setup(s,{expose:d,emit:l}){const a=e.ref();d({el:a});const o=l,u=e.computed(()=>new Intl.NumberFormat(s.locales,s.format)),n=e.computed(()=>t.formatToData(s.value,u.value,s.prefix,s.suffix)),f=g.BROWSER?void 0:t.renderInnerHTML(n.value),m=e.inject(p,void 0);return m==null||m(a,n),(r,c)=>(e.openBlock(),e.createElementBlock("number-flow-vue",e.mergeProps({ref_key:"el",ref:a,"aria-label":n.value.valueAsString},r.$attrs,{role:"img",manual:!!e.unref(m),trend:r.trend,continuous:r.continuous,animated:r.animated,transformTiming:r.transformTiming,spinTiming:r.spinTiming,opacityTiming:r.opacityTiming,respectMotionPreference:r.respectMotionPreference,"data-will-change":r.willChange?"":void 0,digits:r.digits,innerHTML:e.unref(f),"data-allow-mismatch":"",onAnimationsstart:c[0]||(c[0]=L=>o("animationsstart")),onAnimationsfinish:c[1]||(c[1]=L=>o("animationsfinish")),data:n.value}),null,16,h))}});t.define("number-flow-vue",t.NumberFlowLite);function N({respectMotionPreference:s=!0}={}){const d=e.ref(!1),l=e.ref(!1);return e.onMounted(()=>{var a;d.value=t.canAnimate,l.value=((a=t.prefersReducedMotion)==null?void 0:a.matches)??!1}),e.watchEffect(a=>{var u;if(!e.toValue(s))return;const o=({matches:n})=>{l.value=n};(u=t.prefersReducedMotion)==null||u.addEventListener("change",o),a(()=>{var n;(n=t.prefersReducedMotion)==null||n.removeEventListener("change",o)})}),e.computed(()=>d.value&&(!e.toValue(s)||!l.value))}Object.defineProperty(i,"NumberFlowElement",{enumerable:!0,get:()=>t.NumberFlowLite}),i.NumberFlowGroup=T,i.default=y,i.useCanAnimate=N,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@number-flow/vue",
3
+ "type": "module",
3
4
  "publishConfig": {
4
5
  "access": "public"
5
6
  },
6
- "version": "0.3.2",
7
+ "version": "0.3.4",
7
8
  "author": {
8
9
  "name": "Maxwell Barvian",
9
10
  "email": "max@barvian.me",
@@ -32,19 +33,19 @@
32
33
  "dist",
33
34
  "README.md"
34
35
  ],
35
- "main": "./dist/index.js",
36
- "module": "./dist/index.mjs",
36
+ "main": "./dist/index.umd.cjs",
37
+ "module": "./dist/index.js",
37
38
  "types": "./dist/index.d.ts",
38
39
  "exports": {
39
40
  ".": {
40
41
  "types": "./dist/index.d.ts",
41
- "import": "./dist/index.mjs",
42
- "require": "./dist/index.js"
42
+ "import": "./dist/index.js",
43
+ "require": "./dist/index.umd.cjs"
43
44
  }
44
45
  },
45
46
  "dependencies": {
46
47
  "esm-env": "^1.1.4",
47
- "number-flow": "0.4.1"
48
+ "number-flow": "0.4.2"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@playwright/test": "^1.48.0",
package/dist/index.mjs DELETED
@@ -1,100 +0,0 @@
1
- import { defineComponent as h, provide as P, renderSlot as b, watch as M, nextTick as g, onUnmounted as B, ref as c, computed as p, inject as A, openBlock as E, createElementBlock as F, mergeProps as L, unref as v, onMounted as N, watchEffect as $, toValue as T } from "vue";
2
- import { NumberFlowLite as r, formatToData as k, renderInnerHTML as C, define as S, canAnimate as G, prefersReducedMotion as f } from "number-flow";
3
- import { NumberFlowLite as x } from "number-flow";
4
- import { BROWSER as H } from "esm-env";
5
- const w = Symbol(), j = /* @__PURE__ */ h({
6
- __name: "NumberFlowGroup",
7
- setup(a) {
8
- const s = /* @__PURE__ */ new Set();
9
- let i = !1;
10
- return P(w, (t, l) => {
11
- s.add(t), M(
12
- l,
13
- async () => {
14
- i || (i = !0, s.forEach(async (e) => {
15
- var u;
16
- !e.value || !e.value.created || (e.value.willUpdate(), await g(), (u = e.value) == null || u.didUpdate());
17
- }), await g(), i = !1);
18
- }
19
- // { flush: 'pre' } // default
20
- ), B(() => {
21
- s.delete(t);
22
- });
23
- }), (t, l) => b(t.$slots, "default");
24
- }
25
- }), R = ["aria-label", "manual", "trend", "continuous", "animated", "transformTiming", "spinTiming", "opacityTiming", "respectMotionPreference", "data-will-change", "digits", "innerHTML", "data"], D = /* @__PURE__ */ h({
26
- inheritAttrs: !1,
27
- __name: "index",
28
- props: {
29
- transformTiming: { default: () => r.defaultProps.transformTiming },
30
- spinTiming: { default: () => r.defaultProps.spinTiming },
31
- opacityTiming: { default: () => r.defaultProps.opacityTiming },
32
- animated: { type: Boolean, default: () => r.defaultProps.animated },
33
- respectMotionPreference: { type: Boolean, default: () => r.defaultProps.respectMotionPreference },
34
- trend: { type: [Number, Function], default: () => r.defaultProps.trend },
35
- continuous: { type: Boolean, default: () => r.defaultProps.continuous },
36
- digits: { default: () => r.defaultProps.digits },
37
- locales: {},
38
- format: {},
39
- value: {},
40
- prefix: {},
41
- suffix: {},
42
- willChange: { type: Boolean, default: !1 }
43
- },
44
- emits: ["animationsstart", "animationsfinish"],
45
- setup(a, { expose: s, emit: i }) {
46
- const o = c();
47
- s({ el: o });
48
- const t = i, l = p(() => new Intl.NumberFormat(a.locales, a.format)), e = p(() => k(a.value, l.value, a.prefix, a.suffix)), u = H ? void 0 : C(e.value), m = A(w, void 0);
49
- return m == null || m(o, e), (n, d) => (E(), F("number-flow-vue", L({
50
- ref_key: "el",
51
- ref: o,
52
- "aria-label": e.value.valueAsString
53
- }, n.$attrs, {
54
- role: "img",
55
- manual: !!v(m),
56
- trend: n.trend,
57
- continuous: n.continuous,
58
- animated: n.animated,
59
- transformTiming: n.transformTiming,
60
- spinTiming: n.spinTiming,
61
- opacityTiming: n.opacityTiming,
62
- respectMotionPreference: n.respectMotionPreference,
63
- "data-will-change": n.willChange ? "" : void 0,
64
- digits: n.digits,
65
- innerHTML: v(u),
66
- "data-allow-mismatch": "",
67
- onAnimationsstart: d[0] || (d[0] = (y) => t("animationsstart")),
68
- onAnimationsfinish: d[1] || (d[1] = (y) => t("animationsfinish")),
69
- data: e.value
70
- }), null, 16, R));
71
- }
72
- });
73
- S("number-flow-vue", r);
74
- function O({
75
- respectMotionPreference: a = !0
76
- } = {}) {
77
- const s = c(!1), i = c(!1);
78
- return N(() => {
79
- var o;
80
- s.value = G, i.value = ((o = f) == null ? void 0 : o.matches) ?? !1;
81
- }), $((o) => {
82
- var l;
83
- if (!T(a)) return;
84
- const t = ({ matches: e }) => {
85
- i.value = e;
86
- };
87
- (l = f) == null || l.addEventListener("change", t), o(() => {
88
- var e;
89
- (e = f) == null || e.removeEventListener("change", t);
90
- });
91
- }), p(
92
- () => s.value && (!T(a) || !i.value)
93
- );
94
- }
95
- export {
96
- x as NumberFlowElement,
97
- j as NumberFlowGroup,
98
- D as default,
99
- O as useCanAnimate
100
- };