motion 10.13.3 → 10.14.2
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/CHANGELOG.md +18 -0
- package/dist/motion.min.js +1 -1
- package/dist/motion.umd.js +254 -215
- package/dist/size-index.js +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Motion One adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [10.14.2] [2022-09-07]
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed exit animations in Solid 1.5.
|
|
10
|
+
|
|
11
|
+
## [10.14.1] [2022-08-23]
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- `createAnimate` export for creating `animate()` without the `Animation` polyfill. This is not a public API.
|
|
16
|
+
|
|
17
|
+
## [10.14.0] [2022-08-17]
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- Support for animating transforms as unit values.
|
|
22
|
+
|
|
5
23
|
## [10.13.3] [2022-08-12]
|
|
6
24
|
|
|
7
25
|
### Fixed
|
package/dist/motion.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Motion={})}(this,(function(t){"use strict";class e{setAnimation(t){this.animation=t,null==t||t.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const n=new WeakMap;function i(t){return n.has(t)||n.set(t,{transforms:[],values:new Map}),n.get(t)}function r(t,e){-1===t.indexOf(e)&&t.push(e)}function o(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const s=(t,e,n)=>Math.min(Math.max(n,t),e),a={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},c=t=>"number"==typeof t,l=t=>Array.isArray(t)&&!c(t[0]);function u(t,e){return l(t)?t[((t,e,n)=>{const i=e-t;return((n-t)%i+i)%i+t})(0,t.length,e)]:t}const f=(t,e,n)=>-n*t+n*e+t,h=()=>{},d=t=>t,g=(t,e,n)=>e-t==0?1:(n-t)/(e-t);function p(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=g(0,e,i);t.push(f(n,1,r))}}function m(t){const e=[0];return p(e,t-1),e}function y(t,e=m(t.length),n=d){const i=t.length,r=i-e.length;return r>0&&p(e,r),r=>{let o=0;for(;o<i-2&&!(r<e[o+1]);o++);let a=s(0,1,g(e[o],e[o+1],r));return a=u(n,o)(a),f(t[o],t[o+1],a)}}const v=t=>Array.isArray(t)&&c(t[0]),w=t=>"object"==typeof t&&Boolean(t.createAnimation),b=t=>"function"==typeof t,E=t=>"string"==typeof t,x=t=>1e3*t,O=t=>t/1e3;function S(t,e){return e?t*(1e3/e):0}const M=["","X","Y","Z"],T={x:"translateX",y:"translateY",z:"translateZ"},A={syntax:"<angle>",initialValue:"0deg",toDefaultUnit:t=>t+"deg"},D={translate:{syntax:"<length-percentage>",initialValue:"0px",toDefaultUnit:t=>t+"px"},rotate:A,scale:{syntax:"<number>",initialValue:1,toDefaultUnit:d},skew:A},L=new Map,k=t=>`--motion-${t}`,W=["x","y","z"];["translate","scale","rotate","skew"].forEach((t=>{M.forEach((e=>{W.push(t+e),L.set(k(t+e),D[t])}))}));const j=(t,e)=>W.indexOf(t)-W.indexOf(e),R=new Set(W),z=t=>R.has(t),B=t=>t.sort(j).reduce(P,"").trim(),P=(t,e)=>`${t} ${e}(var(${k(e)}))`,V=t=>t.startsWith("--"),$=new Set;const q=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t;function C(t,e,n,i){if(t===e&&n===i)return d;const r=e=>function(t,e,n,i,r){let o,s,a=0;do{s=e+(n-e)/2,o=q(s,i,r)-t,o>0?n=s:e=s}while(Math.abs(o)>1e-7&&++a<12);return s}(e,0,1,t,n);return t=>0===t||1===t?t:q(r(t),e,i)}const F={ease:C(.25,.1,.25,1),"ease-in":C(.42,0,1,1),"ease-in-out":C(.42,0,.58,1),"ease-out":C(0,0,.58,1)},H=/\((.*?)\)/;function I(t){if(b(t))return t;if(v(t))return C(...t);if(F[t])return F[t];if(t.startsWith("steps")){const e=H.exec(t);if(e){const t=e[1].split(",");return((t,e="end")=>n=>{const i=(n="end"===e?Math.min(n,.999):Math.max(n,.001))*t,r="end"===e?Math.floor(i):Math.ceil(i);return s(0,1,r/t)})(parseFloat(t[0]),t[1].trim())}}return d}class U{constructor(t,e=[0,1],{easing:n,duration:i=a.duration,delay:r=a.delay,endDelay:o=a.endDelay,repeat:s=a.repeat,offset:c,direction:u="normal"}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=d,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((t,e)=>{this.resolve=t,this.reject=e})),n=n||a.easing,w(n)){const t=n.createAnimation(e,(()=>"0"),!0);n=t.easing,void 0!==t.keyframes&&(e=t.keyframes),void 0!==t.duration&&(i=t.duration)}this.repeat=s,this.easing=l(n)?d:I(n),this.updateDuration(i);const f=y(e,c,l(n)?n.map(I):d);this.tick=e=>{var n;let i=0;i=void 0!==this.pauseTime?this.pauseTime:(e-this.startTime)*this.rate,this.t=i,i/=1e3,i=Math.max(i-r,0),"finished"===this.playState&&void 0===this.pauseTime&&(i=this.totalDuration);const s=i/this.duration;let a=Math.floor(s),c=s%1;!c&&s>=1&&(c=1),1===c&&a--;const l=a%2;("reverse"===u||"alternate"===u&&l||"alternate-reverse"===u&&!l)&&(c=1-c);const h=i>=this.totalDuration?1:Math.min(c,1),d=f(this.easing(h));t(d);void 0===this.pauseTime&&("finished"===this.playState||i>=this.totalDuration+o)?(this.playState="finished",null===(n=this.resolve)||void 0===n||n.call(this,d)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},this.play()}play(){const t=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var t;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(t=this.reject)||void 0===t||t.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t,this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}const _=(t,e)=>document.createElement("div").animate(t,e),N={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{_({opacity:[1]})}catch(t){return!1}return!0},finished:()=>Boolean(_({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{_({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}},G={},Z={};for(const t in N)Z[t]=()=>(void 0===G[t]&&(G[t]=N[t]()),G[t]);const K=(t,e)=>b(t)?Z.linearEasing()?`linear(${((t,e)=>{let n="";const i=Math.round(e/.015);for(let e=0;e<i;e++)n+=t(g(0,i-1,e))+", ";return n.substring(0,n.length-2)})(t,e)})`:a.easing:v(t)?X(t):t,X=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`;const Y=t=>Array.isArray(t)?t:[t];function J(t){return T[t]&&(t=T[t]),z(t)?k(t):t}const Q={get:(t,e)=>{e=J(e);let n=V(e)?t.style.getPropertyValue(e):getComputedStyle(t)[e];if(!n&&0!==n){const t=L.get(e);t&&(n=t.initialValue)}return n},set:(t,e,n)=>{e=J(e),V(e)?t.style.setProperty(e,n):t.style[e]=n}};function tt(t,e=!0){if(t&&"finished"!==t.playState)try{t.stop?t.stop():(e&&t.commitStyles(),t.cancel())}catch(t){}}function et(t,n,o,s={}){const u=window.__MOTION_DEV_TOOLS_RECORD,f=!1!==s.record&&u;let d,{duration:g=a.duration,delay:p=a.delay,endDelay:m=a.endDelay,repeat:y=a.repeat,easing:v=a.easing,direction:E,offset:O,allowWebkitAcceleration:S=!1}=s;const M=i(t),A=z(n);let D=Z.waapi();A&&((t,e)=>{T[e]&&(e=T[e]);const{transforms:n}=i(t);r(n,e),t.style.transform=B(n)})(t,n);const k=J(n),W=function(t,n){return t.has(n)||t.set(n,new e),t.get(n)}(M.values,k),j=L.get(k);return tt(W.animation,!(w(v)&&W.generator)&&!1!==s.record),()=>{const e=()=>{var e,n;return null!==(n=null!==(e=Q.get(t,k))&&void 0!==e?e:null==j?void 0:j.initialValue)&&void 0!==n?n:0};let i=function(t,e){for(let n=0;n<t.length;n++)null===t[n]&&(t[n]=n?t[n-1]:e());return t}(Y(o),e);if(w(v)){const t=v.createAnimation(i,e,A,k,W);v=t.easing,void 0!==t.keyframes&&(i=t.keyframes),void 0!==t.duration&&(g=t.duration)}if(V(k)&&(Z.cssRegisterProperty()?function(t){if(!$.has(t)){$.add(t);try{const{syntax:e,initialValue:n}=L.has(t)?L.get(t):{};CSS.registerProperty({name:t,inherits:!1,syntax:e,initialValue:n})}catch(t){}}}(k):D=!1),A&&!Z.linearEasing()&&(b(v)||l(v)&&v.some(b))&&(D=!1),D){j&&(i=i.map((t=>c(t)?j.toDefaultUnit(t):t))),1!==i.length||Z.partialKeyframes()&&!f||i.unshift(e());const n={delay:x(p),duration:x(g),endDelay:x(m),easing:l(v)?void 0:K(v,g),direction:E,iterations:y+1,fill:"both"};d=t.animate({[k]:i,offset:O,easing:l(v)?v.map((t=>K(t,g))):void 0},n),d.finished||(d.finished=new Promise(((t,e)=>{d.onfinish=t,d.oncancel=e})));const r=i[i.length-1];d.finished.then((()=>{Q.set(t,k,r),d.cancel()})).catch(h),S||(d.playbackRate=1.000001)}else if(A){i=i.map((t=>"string"==typeof t?parseFloat(t):t)),1===i.length&&i.unshift(parseFloat(e()));d=new U((e=>{j&&(e=j.toDefaultUnit(e)),Q.set(t,k,e)}),i,Object.assign(Object.assign({},s),{duration:g,easing:v}))}else{const e=i[i.length-1];Q.set(t,k,j&&c(e)?j.toDefaultUnit(e):e)}return f&&u(t,n,i,{duration:g,delay:p,easing:v,repeat:y,offset:O},"motion-one"),W.setAnimation(d),d}}const nt=(t,e)=>t[e]?Object.assign(Object.assign({},t),t[e]):Object.assign({},t);function it(t,e){var n;return"string"==typeof t?e?(null!==(n=e[t])&&void 0!==n||(e[t]=document.querySelectorAll(t)),t=e[t]):t=document.querySelectorAll(t):t instanceof Element&&(t=[t]),Array.from(t||[])}const rt=t=>t(),ot=(t,e,n=a.duration)=>new Proxy({animations:t.map(rt).filter(Boolean),duration:n,options:e},st),st={get:(t,e)=>{const n=t.animations[0];switch(e){case"duration":return t.duration;case"currentTime":return O((null==n?void 0:n[e])||0);case"playbackRate":case"playState":return null==n?void 0:n[e];case"finished":return t.finished||(t.finished=Promise.all(t.animations.map(at)).catch(h)),t.finished;case"stop":return()=>{t.animations.forEach((t=>tt(t)))};case"forEachNative":return e=>{t.animations.forEach((n=>e(n,t)))};default:return void 0===(null==n?void 0:n[e])?void 0:()=>t.animations.forEach((t=>t[e]()))}},set:(t,e,n)=>{switch(e){case"currentTime":n=x(n);case"currentTime":case"playbackRate":for(let i=0;i<t.animations.length;i++)t.animations[i][e]=n;return!0}return!1}},at=t=>t.finished;function ct(t,e,n){return b(t)?t(e,n):t}function lt(t,e,n={}){const i=(t=it(t)).length,r=[];for(let o=0;o<i;o++){const s=t[o];for(const t in e){const a=nt(n,t);a.delay=ct(a.delay,o,i);const c=et(s,t,e[t],a);r.push(c)}}return ot(r,n,n.duration)}function ut(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}function ft(t,e,n,i){var r;return c(e)?e:e.startsWith("-")||e.startsWith("+")?Math.max(0,t+parseFloat(e)):"<"===e?n:null!==(r=i.get(e))&&void 0!==r?r:t}function ht(t,e,n,i,r,s){!function(t,e,n){for(let i=0;i<t.length;i++){const r=t[i];r.at>e&&r.at<n&&(o(t,r),i--)}}(t,r,s);for(let o=0;o<e.length;o++)t.push({value:e[o],at:f(r,s,i[o]),easing:u(n,o)})}function dt(t,e){return t.at===e.at?null===t.value?1:-1:t.at-e.at}function gt(t,e){return!e.has(t)&&e.set(t,{}),e.get(t)}function pt(t,e){return e[t]||(e[t]=[]),e[t]}function mt(t,e,n){const i=Math.max(e-5,0);return S(n-t(i),e-i)}const yt=100,vt=10,wt=1;const bt=({stiffness:t=yt,damping:e=vt,mass:n=wt,from:i=0,to:r=1,velocity:o=0,restSpeed:s=2,restDistance:a=.5}={})=>{o=o?O(o):0;const c={done:!1,hasReachedTarget:!1,current:i,target:r},l=r-i,u=Math.sqrt(t/n)/1e3,f=((t=yt,e=vt,n=wt)=>e/(2*Math.sqrt(t*n)))(t,e,n);let h;if(f<1){const t=u*Math.sqrt(1-f*f);h=e=>r-Math.exp(-f*u*e)*((f*u*l-o)/t*Math.sin(t*e)+l*Math.cos(t*e))}else h=t=>r-Math.exp(-u*t)*(l+(u*l-o)*t);return t=>{c.current=h(t);const e=0===t?o:mt(h,t,c.current),n=Math.abs(e)<=s,l=Math.abs(r-c.current)<=a;var u,f,d;return c.done=n&&l,c.hasReachedTarget=(u=i,f=r,d=c.current,u<f&&d>=f||u>f&&d<=f),c}};function Et(t){const e=new WeakMap;return(n={})=>{const i=new Map,r=(e=0,r=100,o=0,s=!1)=>{const a=`${e}-${r}-${o}-${s}`;return i.has(a)||i.set(a,t(Object.assign({from:e,to:r,velocity:o,restSpeed:s?.05:2,restDistance:s?.01:.5},n))),i.get(a)},o=t=>(e.has(t)||e.set(t,function(t){let e,n=10,i=t(0);const r=[i.current];for(;!i.done&&n<1e4;)i=t(n),r.push(i.done?i.target:i.current),void 0===e&&i.hasReachedTarget&&(e=n),n+=10;const o=n-10;return 1===r.length&&r.push(i.current),{keyframes:r,duration:o/1e3,overshootDuration:(null!=e?e:o)/1e3}}(t)),e.get(t));return{createAnimation:(t,e,n,i,s)=>{var a,c;let l;const u=t.length;if(n&&u<=2&&t.every(xt)){const n=t[u-1],f=1===u?null:t[0];let h=0,d=0;const g=null==s?void 0:s.generator;if(g){const{animation:e,generatorStartTime:n}=s,i=(null==e?void 0:e.startTime)||n||0,r=(null==e?void 0:e.currentTime)||performance.now()-i,o=g(r).current;d=null!==(a=f)&&void 0!==a?a:o,(1===u||2===u&&null===t[0])&&(h=mt((t=>g(t).current),r,o))}else d=null!==(c=f)&&void 0!==c?c:parseFloat(e());const p=r(d,n,h,null==i?void 0:i.includes("scale")),m=o(p);l=Object.assign(Object.assign({},m),{easing:"linear"}),s&&(s.generator=p,s.generatorStartTime=performance.now())}else{l={easing:"ease",duration:o(r(0,100)).overshootDuration}}return l}}}}const xt=t=>"string"!=typeof t,Ot=Et(bt),St=Et((({from:t=0,velocity:e=0,power:n=.8,decay:i=.325,bounceDamping:r,bounceStiffness:o,changeTarget:s,min:a,max:c,restDistance:l=.5,restSpeed:u})=>{i=x(i);const f={hasReachedTarget:!1,done:!1,current:t,target:t},h=t=>void 0===a?c:void 0===c||Math.abs(a-t)<Math.abs(c-t)?a:c;let d=n*e;const g=t+d,p=void 0===s?g:s(g);f.target=p,p!==g&&(d=p-t);const m=t=>-d*Math.exp(-t/i),y=t=>p+m(t),v=t=>{const e=m(t),n=y(t);f.done=Math.abs(e)<=l,f.current=f.done?p:n};let w,b;const E=t=>{var e;(e=f.current,void 0!==a&&e<a||void 0!==c&&e>c)&&(w=t,b=bt({from:f.current,to:h(f.current),velocity:mt(y,t,f.current),damping:r,stiffness:o,restDistance:l,restSpeed:u}))};return E(0),t=>{let e=!1;return b||void 0!==w||(e=!0,v(t),E(t)),void 0!==w&&t>w?(f.hasReachedTarget=!0,b(t-w)):(f.hasReachedTarget=!1,!e&&v(t),f)}})),Mt={any:0,all:1};function Tt(t,e,{root:n,margin:i,amount:r="any"}={}){if("undefined"==typeof IntersectionObserver)return()=>{};const o=it(t),s=new WeakMap,a=new IntersectionObserver((t=>{t.forEach((t=>{const n=s.get(t.target);if(t.isIntersecting!==Boolean(n))if(t.isIntersecting){const n=e(t);b(n)?s.set(t.target,n):a.unobserve(t.target)}else n&&(n(t),s.delete(t.target))}))}),{root:n,rootMargin:i,threshold:"number"==typeof r?r:Mt[r]});return o.forEach((t=>a.observe(t))),()=>a.disconnect()}const At=new WeakMap;let Dt;function Lt({target:t,contentRect:e,borderBoxSize:n}){var i;null===(i=At.get(t))||void 0===i||i.forEach((i=>{i({target:t,contentSize:e,get size(){return function(t,e){if(e){const{inlineSize:t,blockSize:n}=e[0];return{width:t,height:n}}return t instanceof SVGElement&&"getBBox"in t?t.getBBox():{width:t.offsetWidth,height:t.offsetHeight}}(t,n)}})}))}function kt(t){t.forEach(Lt)}function Wt(t,e){Dt||"undefined"!=typeof ResizeObserver&&(Dt=new ResizeObserver(kt));const n=it(t);return n.forEach((t=>{let n=At.get(t);n||(n=new Set,At.set(t,n)),n.add(e),null==Dt||Dt.observe(t)})),()=>{n.forEach((t=>{const n=At.get(t);null==n||n.delete(e),(null==n?void 0:n.size)||null==Dt||Dt.unobserve(t)}))}}const jt=new Set;let Rt;function zt(t){return jt.add(t),Rt||(Rt=()=>{const t={width:window.innerWidth,height:window.innerHeight},e={target:window,size:t,contentSize:t};jt.forEach((t=>t(e)))},window.addEventListener("resize",Rt)),()=>{jt.delete(t),!jt.size&&Rt&&(Rt=void 0)}}function Bt(t,e){return b(t)?zt(t):Wt(t,e)}const Pt={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function Vt(t,e,n,i){const r=n[e],{length:o,position:s}=Pt[e],a=r.current,c=n.time;r.current=t["scroll"+s],r.scrollLength=t["scroll"+o]-t["client"+o],r.offset.length=0,r.offset[0]=0,r.offset[1]=r.scrollLength,r.progress=g(0,r.scrollLength,r.current);const l=i-c;r.velocity=l>50?0:S(r.current-a,l)}const $t={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},qt={start:0,center:.5,end:1};function Ct(t,e,n=0){let i=0;if(void 0!==qt[t]&&(t=qt[t]),E(t)){const e=parseFloat(t);t.endsWith("px")?i=e:t.endsWith("%")?t=e/100:t.endsWith("vw")?i=e/100*document.documentElement.clientWidth:t.endsWith("vh")?i=e/100*document.documentElement.clientHeight:t=e}return c(t)&&(i=e*t),n+i}const Ft=[0,0];function Ht(t,e,n,i){let r=Array.isArray(t)?t:Ft,o=0,s=0;return c(t)?r=[t,t]:E(t)&&(r=(t=t.trim()).includes(" ")?t.split(" "):[t,qt[t]?t:"0"]),o=Ct(r[0],n,i),s=Ct(r[1],e),o-s}const It={x:0,y:0};function Ut(t,e,n){let{offset:i=$t.All}=n;const{target:r=t,axis:o="y"}=n,s="y"===o?"height":"width",a=r!==t?function(t,e){let n={x:0,y:0},i=t;for(;i&&i!==e;)if(i instanceof HTMLElement)n.x+=i.offsetLeft,n.y+=i.offsetTop,i=i.offsetParent;else if(i instanceof SVGGraphicsElement&&"getBBox"in i){const{top:t,left:e}=i.getBBox();for(n.x+=e,n.y+=t;i&&"svg"!==i.tagName;)i=i.parentNode}return n}(r,t):It,c=r===t?{width:t.scrollWidth,height:t.scrollHeight}:{width:r.clientWidth,height:r.clientHeight},l={width:t.clientWidth,height:t.clientHeight};e[o].offset.length=0;let u=!e[o].interpolate;const f=i.length;for(let t=0;t<f;t++){const n=Ht(i[t],l[s],c[s],a[o]);u||n===e[o].interpolatorOffsets[t]||(u=!0),e[o].offset[t]=n}u&&(e[o].interpolate=y(m(f),e[o].offset),e[o].interpolatorOffsets=[...e[o].offset]),e[o].progress=e[o].interpolate(e[o].current)}function _t(t,e,n,i={}){const r=i.axis||"y";return{measure:()=>function(t,e=t,n){if(n.x.targetOffset=0,n.y.targetOffset=0,e!==t){let i=e;for(;i&&i!=t;)n.x.targetOffset+=i.offsetLeft,n.y.targetOffset+=i.offsetTop,i=i.offsetParent}n.x.targetLength=e===t?e.scrollWidth:e.clientWidth,n.y.targetLength=e===t?e.scrollHeight:e.clientHeight,n.x.containerLength=t.clientWidth,n.y.containerLength=t.clientHeight}(t,i.target,n),update:e=>{!function(t,e,n){Vt(t,"x",e,n),Vt(t,"y",e,n),e.time=n}(t,n,e),(i.offset||i.target)&&Ut(t,n,i)},notify:b(e)?()=>e(n):Nt(e,n[r])}}function Nt(t,e){return t.pause(),t.forEachNative(((t,{easing:e})=>{var n,i;if(t.updateDuration)e||(t.easing=d),t.updateDuration(1);else{const r={duration:1e3};e||(r.easing="linear"),null===(i=null===(n=t.effect)||void 0===n?void 0:n.updateTiming)||void 0===i||i.call(n,r)}})),()=>{t.currentTime=e.progress}}const Gt=new WeakMap,Zt=new WeakMap,Kt=new WeakMap,Xt=t=>t===document.documentElement?window:t;function Yt(t,e){return function(t){return"object"==typeof t}(t)?t:t&&e?e[t]:void 0}let Jt;function Qt(){if(!Jt)return;const t=Jt.sort(ee).map(ne);t.forEach(ie),t.forEach(ie),Jt=void 0}function te(t){Jt?r(Jt,t):(Jt=[t],requestAnimationFrame(Qt))}const ee=(t,e)=>t.getDepth()-e.getDepth(),ne=t=>t.animateUpdates(),ie=t=>t.next(),re=(t,e)=>new CustomEvent(t,{detail:{target:e}});function oe(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEvent:n}}))}function se(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEntry:n}}))}const ae=(t,e,n)=>i=>{i.pointerType&&"mouse"!==i.pointerType||(n(),oe(t,e,i))},ce={inView:{isActive:t=>Boolean(t.inView),subscribe:(t,{enable:e,disable:n},{inViewOptions:i={}})=>{const{once:r}=i,o=ut(i,["once"]);return Tt(t,(i=>{if(e(),se(t,"viewenter",i),!r)return e=>{n(),se(t,"viewleave",e)}}),o)}},hover:{isActive:t=>Boolean(t.hover),subscribe:(t,{enable:e,disable:n})=>{const i=ae(t,"hoverstart",e),r=ae(t,"hoverend",n);return t.addEventListener("pointerenter",i),t.addEventListener("pointerleave",r),()=>{t.removeEventListener("pointerenter",i),t.removeEventListener("pointerleave",r)}}},press:{isActive:t=>Boolean(t.press),subscribe:(t,{enable:e,disable:n})=>{const i=e=>{n(),oe(t,"pressend",e),window.removeEventListener("pointerup",i)},r=n=>{e(),oe(t,"pressstart",n),window.addEventListener("pointerup",i)};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r),window.removeEventListener("pointerup",i)}}}},le=["initial","animate",...Object.keys(ce),"exit"],ue=new WeakMap;function fe(t){const e={},n=[];for(let i in t){const r=t[i];z(i)&&(T[i]&&(i=T[i]),n.push(i),i=k(i));let o=Array.isArray(r)?r[0]:r;const s=L.get(i);s&&(o=c(r)?s.toDefaultUnit(r):r),e[i]=o}return n.length&&(e.transform=B(n)),e}const he=t=>`-${t.toLowerCase()}`;function de(t,e={}){return ot([()=>{const n=new U(t,[0,1],e);return n.finished.catch((()=>{})),n}],e,e.duration)}t.MotionValue=e,t.ScrollOffset=$t,t.animate=function(t,e,n){return(b(t)?de:lt)(t,e,n)},t.animateStyle=et,t.createMotionState=function(t={},e){let n,i=e?e.getDepth()+1:0;const r={initial:!0,animate:!0},s={},a={};for(const n of le)a[n]="string"==typeof t[n]?t[n]:null==e?void 0:e.getContext()[n];const c=!1===t.initial?"animate":"initial";let l=ut(Yt(t[c]||a[c],t.variants)||{},["transition"]);const u=Object.assign({},l),f=(t,e)=>()=>{r[t]=e,te(g)},d=()=>{for(const e in ce){const i=ce[e].isActive(t),r=s[e];i&&!r?s[e]=ce[e].subscribe(n,{enable:f(e,!0),disable:f(e,!1)},t):!i&&r&&(r(),delete s[e])}},g={update:e=>{n&&(t=e,d(),te(g))},setActive:(t,e)=>{n&&(r[t]=e,te(g))},animateUpdates:function*(){var e,i;const o=l;l={};const s={};for(const n of le){if(!r[n])continue;const o=Yt(t[n]);if(o)for(const n in o)"transition"!==n&&(l[n]=o[n],s[n]=nt(null!==(i=null!==(e=o.transition)&&void 0!==e?e:t.transition)&&void 0!==i?i:{},n))}const a=new Set([...Object.keys(l),...Object.keys(o)]),c=[];a.forEach((t=>{var e,i,r;void 0===l[t]&&(l[t]=u[t]),i=o[t],r=l[t],typeof i==typeof r&&(Array.isArray(i)&&Array.isArray(r)?function(t,e){const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}(i,r):i===r)||(null!==(e=u[t])&&void 0!==e||(u[t]=Q.get(n,t)),c.push(et(n,t,l[t],s[t])))})),yield;const f=c.map((t=>t())).filter(Boolean);if(!f.length)return;const d=l;n.dispatchEvent(re("motionstart",d)),Promise.all(f.map((t=>t.finished))).then((()=>{n.dispatchEvent(re("motioncomplete",d))})).catch(h)},getDepth:()=>i,getTarget:()=>l,getOptions:()=>t,getContext:()=>a,mount:t=>(n=t,ue.set(n,g),d(),()=>{ue.delete(n),function(t){Jt&&o(Jt,t)}(g);for(const t in s)s[t]()}),isMounted:()=>Boolean(n)};return g},t.createStyleString=function(t={}){const e=fe(t);let n="";for(const t in e)n+=t.startsWith("--")?t:t.replace(/[A-Z]/g,he),n+=`: ${e[t]}; `;return n},t.createStyles=fe,t.getAnimationData=i,t.getStyleName=J,t.glide=St,t.inView=Tt,t.mountedStates=ue,t.resize=Bt,t.scroll=function(t,e={}){var{container:n=document.documentElement}=e,i=ut(e,["container"]);let r=Kt.get(n);r||(r=new Set,Kt.set(n,r));const o=_t(n,t,{time:0,x:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0},y:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}},i);if(r.add(o),!Gt.has(n)){const t=()=>{const t=performance.now();for(const t of r)t.measure();for(const e of r)e.update(t);for(const t of r)t.notify()};Gt.set(n,t);const e=Xt(n);window.addEventListener("resize",t,{passive:!0}),n!==document.documentElement&&Zt.set(n,Bt(n,t)),e.addEventListener("scroll",t,{passive:!0})}const s=Gt.get(n),a=requestAnimationFrame(s);return()=>{var e;"function"!=typeof t&&t.stop(),cancelAnimationFrame(a);const i=Kt.get(n);if(!i)return;if(i.delete(o),i.size)return;const r=Gt.get(n);Gt.delete(n),r&&(Xt(n).removeEventListener("scroll",r),null===(e=Zt.get(n))||void 0===e||e(),window.removeEventListener("resize",r))}},t.spring=Ot,t.stagger=function(t=.1,{start:e=0,from:n=0,easing:i}={}){return(r,o)=>{const s=c(n)?n:function(t,e){if("first"===t)return 0;{const n=e-1;return"last"===t?n:n/2}}(n,o),a=Math.abs(s-r);let l=t*a;if(i){const e=o*t;l=I(i)(l/e)*e}return e+l}},t.style=Q,t.timeline=function(t,e={}){var n;const i=function(t,e={}){var{defaultOptions:n={}}=e,i=ut(e,["defaultOptions"]);const r=[],o=new Map,s={},c=new Map;let l=0,u=0,f=0;for(let e=0;e<t.length;e++){const i=t[e];if(E(i)){c.set(i,u);continue}if(!Array.isArray(i)){c.set(i.name,ft(u,i.at,l,c));continue}const[r,h,d={}]=i;void 0!==d.at&&(u=ft(u,d.at,l,c));let g=0;const y=it(r,s),v=y.length;for(let t=0;t<v;t++){const e=gt(y[t],o);for(const i in h){const r=pt(i,e);let o=Y(h[i]);const s=nt(d,i);let{duration:c=n.duration||a.duration,easing:l=n.easing||a.easing}=s;if(w(l)){const t=z(i);o.length;const e=l.createAnimation(o,(()=>"0"),t);l=e.easing,void 0!==e.keyframes&&(o=e.keyframes),void 0!==e.duration&&(c=e.duration)}const y=ct(d.delay,t,v)||0,b=u+y,E=b+c;let{offset:x=m(o.length)}=s;1===x.length&&0===x[0]&&(x[1]=1);const O=length-o.length;O>0&&p(x,O),1===o.length&&o.unshift(null),ht(r,o,l,x,b,E),g=Math.max(y+c,g),f=Math.max(E,f)}}l=u,u+=g}return o.forEach(((t,e)=>{for(const o in t){const s=t[o];s.sort(dt);const c=[],l=[],u=[];for(let t=0;t<s.length;t++){const{at:e,value:n,easing:i}=s[t];c.push(n),l.push(g(0,f,e)),u.push(i||a.easing)}0!==l[0]&&(l.unshift(0),c.unshift(c[0]),u.unshift("linear")),1!==l[l.length-1]&&(l.push(1),c.push(null)),r.push([e,o,c,Object.assign(Object.assign(Object.assign({},n),{duration:f,easing:u,offset:l}),i)])}})),r}(t,e),r=i.map((t=>et(...t))).filter(Boolean);return ot(r,e,null===(n=i[0])||void 0===n?void 0:n[3].duration)},t.withControls=ot,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Motion={})}(this,(function(t){"use strict";function e(t,e){-1===t.indexOf(e)&&t.push(e)}function n(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const i=(t,e,n)=>Math.min(Math.max(n,t),e),r={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},o=t=>"number"==typeof t,s=t=>Array.isArray(t)&&!o(t[0]);function a(t,e){return s(t)?t[((t,e,n)=>{const i=e-t;return((n-t)%i+i)%i+t})(0,t.length,e)]:t}const c=(t,e,n)=>-n*t+n*e+t,l=()=>{},u=t=>t,f=(t,e,n)=>e-t==0?1:(n-t)/(e-t);function h(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=f(0,e,i);t.push(c(n,1,r))}}function d(t){const e=[0];return h(e,t-1),e}function g(t,e=d(t.length),n=u){const r=t.length,o=r-e.length;return o>0&&h(e,o),o=>{let s=0;for(;s<r-2&&!(o<e[s+1]);s++);let l=i(0,1,f(e[s],e[s+1],o));return l=a(n,s)(l),c(t[s],t[s+1],l)}}const p=t=>Array.isArray(t)&&o(t[0]),m=t=>"object"==typeof t&&Boolean(t.createAnimation),y=t=>"function"==typeof t,v=t=>"string"==typeof t,w=t=>1e3*t,b=t=>t/1e3;function E(t,e){return e?t*(1e3/e):0}const x=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t;function O(t,e,n,i){if(t===e&&n===i)return u;const r=e=>function(t,e,n,i,r){let o,s,a=0;do{s=e+(n-e)/2,o=x(s,i,r)-t,o>0?n=s:e=s}while(Math.abs(o)>1e-7&&++a<12);return s}(e,0,1,t,n);return t=>0===t||1===t?t:x(r(t),e,i)}const S={ease:O(.25,.1,.25,1),"ease-in":O(.42,0,1,1),"ease-in-out":O(.42,0,.58,1),"ease-out":O(0,0,.58,1)},M=/\((.*?)\)/;function T(t){if(y(t))return t;if(p(t))return O(...t);if(S[t])return S[t];if(t.startsWith("steps")){const e=M.exec(t);if(e){const t=e[1].split(",");return((t,e="end")=>n=>{const r=(n="end"===e?Math.min(n,.999):Math.max(n,.001))*t,o="end"===e?Math.floor(r):Math.ceil(r);return i(0,1,o/t)})(parseFloat(t[0]),t[1].trim())}}return u}class A{constructor(t,e=[0,1],{easing:n,duration:i=r.duration,delay:o=r.delay,endDelay:a=r.endDelay,repeat:c=r.repeat,offset:l,direction:f="normal"}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=u,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((t,e)=>{this.resolve=t,this.reject=e})),n=n||r.easing,m(n)){const t=n.createAnimation(e);n=t.easing,e=t.keyframes||e,i=t.duration||i}this.repeat=c,this.easing=s(n)?u:T(n),this.updateDuration(i);const h=g(e,l,s(n)?n.map(T):u);this.tick=e=>{var n;let i=0;i=void 0!==this.pauseTime?this.pauseTime:(e-this.startTime)*this.rate,this.t=i,i/=1e3,i=Math.max(i-o,0),"finished"===this.playState&&void 0===this.pauseTime&&(i=this.totalDuration);const r=i/this.duration;let s=Math.floor(r),c=r%1;!c&&r>=1&&(c=1),1===c&&s--;const l=s%2;("reverse"===f||"alternate"===f&&l||"alternate-reverse"===f&&!l)&&(c=1-c);const u=i>=this.totalDuration?1:Math.min(c,1),d=h(this.easing(u));t(d);void 0===this.pauseTime&&("finished"===this.playState||i>=this.totalDuration+a)?(this.playState="finished",null===(n=this.resolve)||void 0===n||n.call(this,d)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},this.play()}play(){const t=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var t;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(t=this.reject)||void 0===t||t.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t,this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}class D{setAnimation(t){this.animation=t,null==t||t.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const L=new WeakMap;function k(t){return L.has(t)||L.set(t,{transforms:[],values:new Map}),L.get(t)}const W=["","X","Y","Z"],j={x:"translateX",y:"translateY",z:"translateZ"},R={syntax:"<angle>",initialValue:"0deg",toDefaultUnit:t=>t+"deg"},z={translate:{syntax:"<length-percentage>",initialValue:"0px",toDefaultUnit:t=>t+"px"},rotate:R,scale:{syntax:"<number>",initialValue:1,toDefaultUnit:u},skew:R},B=new Map,P=t=>`--motion-${t}`,V=["x","y","z"];["translate","scale","rotate","skew"].forEach((t=>{W.forEach((e=>{V.push(t+e),B.set(P(t+e),z[t])}))}));const $=(t,e)=>V.indexOf(t)-V.indexOf(e),q=new Set(V),C=t=>q.has(t),F=t=>t.sort($).reduce(H,"").trim(),H=(t,e)=>`${t} ${e}(var(${P(e)}))`,I=t=>t.startsWith("--"),U=new Set;const N=(t,e)=>document.createElement("div").animate(t,e),_={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{N({opacity:[1]})}catch(t){return!1}return!0},finished:()=>Boolean(N({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{N({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}},G={},Z={};for(const t in _)Z[t]=()=>(void 0===G[t]&&(G[t]=_[t]()),G[t]);const K=(t,e)=>y(t)?Z.linearEasing()?`linear(${((t,e)=>{let n="";const i=Math.round(e/.015);for(let e=0;e<i;e++)n+=t(f(0,i-1,e))+", ";return n.substring(0,n.length-2)})(t,e)})`:r.easing:p(t)?X(t):t,X=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`;const Y=t=>Array.isArray(t)?t:[t];function J(t){return j[t]&&(t=j[t]),C(t)?P(t):t}const Q={get:(t,e)=>{e=J(e);let n=I(e)?t.style.getPropertyValue(e):getComputedStyle(t)[e];if(!n&&0!==n){const t=B.get(e);t&&(n=t.initialValue)}return n},set:(t,e,n)=>{e=J(e),I(e)?t.style.setProperty(e,n):t.style[e]=n}};function tt(t,e=!0){if(t&&"finished"!==t.playState)try{t.stop?t.stop():(e&&t.commitStyles(),t.cancel())}catch(t){}}function et(t,e){var n;let i=(null==e?void 0:e.toDefaultUnit)||u;const r=t[t.length-1];if(v(r)){const t=(null===(n=r.match(/(-?[\d.]+)([a-z%]*)/))||void 0===n?void 0:n[2])||"";t&&(i=e=>e+t)}return i}function nt(t,n,i,a={},c){const u=window.__MOTION_DEV_TOOLS_RECORD,f=!1!==a.record&&u;let h,{duration:d=r.duration,delay:g=r.delay,endDelay:p=r.endDelay,repeat:v=r.repeat,easing:b=r.easing,direction:E,offset:x,allowWebkitAcceleration:O=!1}=a;const S=k(t),M=C(n);let T=Z.waapi();M&&((t,n)=>{j[n]&&(n=j[n]);const{transforms:i}=k(t);e(i,n),t.style.transform=F(i)})(t,n);const A=J(n),L=function(t,e){return t.has(e)||t.set(e,new D),t.get(e)}(S.values,A),W=B.get(A);return tt(L.animation,!(m(b)&&L.generator)&&!1!==a.record),()=>{const e=()=>{var e,n;return null!==(n=null!==(e=Q.get(t,A))&&void 0!==e?e:null==W?void 0:W.initialValue)&&void 0!==n?n:0};let r=function(t,e){for(let n=0;n<t.length;n++)null===t[n]&&(t[n]=n?t[n-1]:e());return t}(Y(i),e);const S=et(r,W);if(m(b)){const t=b.createAnimation(r,"opacity"!==n,e,A,L);b=t.easing,r=t.keyframes||r,d=t.duration||d}if(I(A)&&(Z.cssRegisterProperty()?function(t){if(!U.has(t)){U.add(t);try{const{syntax:e,initialValue:n}=B.has(t)?B.get(t):{};CSS.registerProperty({name:t,inherits:!1,syntax:e,initialValue:n})}catch(t){}}}(A):T=!1),M&&!Z.linearEasing()&&(y(b)||s(b)&&b.some(y))&&(T=!1),T){W&&(r=r.map((t=>o(t)?W.toDefaultUnit(t):t))),1!==r.length||Z.partialKeyframes()&&!f||r.unshift(e());const n={delay:w(g),duration:w(d),endDelay:w(p),easing:s(b)?void 0:K(b,d),direction:E,iterations:v+1,fill:"both"};h=t.animate({[A]:r,offset:x,easing:s(b)?b.map((t=>K(t,d))):void 0},n),h.finished||(h.finished=new Promise(((t,e)=>{h.onfinish=t,h.oncancel=e})));const i=r[r.length-1];h.finished.then((()=>{Q.set(t,A,i),h.cancel()})).catch(l),O||(h.playbackRate=1.000001)}else if(c&&M)r=r.map((t=>"string"==typeof t?parseFloat(t):t)),1===r.length&&r.unshift(parseFloat(e())),h=new c((e=>{Q.set(t,A,S?S(e):e)}),r,Object.assign(Object.assign({},a),{duration:d,easing:b}));else{const e=r[r.length-1];Q.set(t,A,W&&o(e)?W.toDefaultUnit(e):e)}return f&&u(t,n,r,{duration:d,delay:g,easing:b,repeat:v,offset:x},"motion-one"),L.setAnimation(h),h}}const it=(t,e)=>t[e]?Object.assign(Object.assign({},t),t[e]):Object.assign({},t);function rt(t,e){var n;return"string"==typeof t?e?(null!==(n=e[t])&&void 0!==n||(e[t]=document.querySelectorAll(t)),t=e[t]):t=document.querySelectorAll(t):t instanceof Element&&(t=[t]),Array.from(t||[])}const ot=t=>t(),st=(t,e,n=r.duration)=>new Proxy({animations:t.map(ot).filter(Boolean),duration:n,options:e},at),at={get:(t,e)=>{const n=t.animations[0];switch(e){case"duration":return t.duration;case"currentTime":return b((null==n?void 0:n[e])||0);case"playbackRate":case"playState":return null==n?void 0:n[e];case"finished":return t.finished||(t.finished=Promise.all(t.animations.map(ct)).catch(l)),t.finished;case"stop":return()=>{t.animations.forEach((t=>tt(t)))};case"forEachNative":return e=>{t.animations.forEach((n=>e(n,t)))};default:return void 0===(null==n?void 0:n[e])?void 0:()=>t.animations.forEach((t=>t[e]()))}},set:(t,e,n)=>{switch(e){case"currentTime":n=w(n);case"currentTime":case"playbackRate":for(let i=0;i<t.animations.length;i++)t.animations[i][e]=n;return!0}return!1}},ct=t=>t.finished;function lt(t,e,n){return y(t)?t(e,n):t}function ut(t){return function(e,n,i={}){const r=(e=rt(e)).length,o=[];for(let s=0;s<r;s++){const a=e[s];for(const e in n){const c=it(i,e);c.delay=lt(c.delay,s,r);const l=nt(a,e,n[e],c,t);o.push(l)}}return st(o,i,i.duration)}}const ft=ut(A);function ht(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}function dt(t,e,n,i){var r;return o(e)?e:e.startsWith("-")||e.startsWith("+")?Math.max(0,t+parseFloat(e)):"<"===e?n:null!==(r=i.get(e))&&void 0!==r?r:t}function gt(t,e,i,r,o,s){!function(t,e,i){for(let r=0;r<t.length;r++){const o=t[r];o.at>e&&o.at<i&&(n(t,o),r--)}}(t,o,s);for(let n=0;n<e.length;n++)t.push({value:e[n],at:c(o,s,r[n]),easing:a(i,n)})}function pt(t,e){return t.at===e.at?null===t.value?1:-1:t.at-e.at}function mt(t,e){return!e.has(t)&&e.set(t,{}),e.get(t)}function yt(t,e){return e[t]||(e[t]=[]),e[t]}function vt(t,e,n){const i=Math.max(e-5,0);return E(n-t(i),e-i)}const wt=100,bt=10,Et=1;const xt=({stiffness:t=wt,damping:e=bt,mass:n=Et,from:i=0,to:r=1,velocity:o=0,restSpeed:s=2,restDistance:a=.5}={})=>{o=o?b(o):0;const c={done:!1,hasReachedTarget:!1,current:i,target:r},l=r-i,u=Math.sqrt(t/n)/1e3,f=((t=wt,e=bt,n=Et)=>e/(2*Math.sqrt(t*n)))(t,e,n);let h;if(f<1){const t=u*Math.sqrt(1-f*f);h=e=>r-Math.exp(-f*u*e)*((f*u*l-o)/t*Math.sin(t*e)+l*Math.cos(t*e))}else h=t=>r-Math.exp(-u*t)*(l+(u*l-o)*t);return t=>{c.current=h(t);const e=0===t?o:vt(h,t,c.current),n=Math.abs(e)<=s,l=Math.abs(r-c.current)<=a;var u,f,d;return c.done=n&&l,c.hasReachedTarget=(u=i,f=r,d=c.current,u<f&&d>=f||u>f&&d<=f),c}};function Ot(t){return o(t)&&!isNaN(t)}function St(t){return v(t)?parseFloat(t):t}function Mt(t){const e=new WeakMap;return(n={})=>{const i=new Map,r=(e=0,r=100,o=0,s=!1)=>{const a=`${e}-${r}-${o}-${s}`;return i.has(a)||i.set(a,t(Object.assign({from:e,to:r,velocity:o,restSpeed:s?.05:2,restDistance:s?.01:.5},n))),i.get(a)},o=(t,n)=>(e.has(t)||e.set(t,function(t,e=u){let n,i=10,r=t(0);const o=[e(r.current)];for(;!r.done&&i<1e4;)r=t(i),o.push(e(r.done?r.target:r.current)),void 0===n&&r.hasReachedTarget&&(n=i),i+=10;const s=i-10;return 1===o.length&&o.push(r.current),{keyframes:o,duration:s/1e3,overshootDuration:(null!=n?n:s)/1e3}}(t,n)),e.get(t));return{createAnimation:(t,e=!0,n,i,s)=>{let a,c,l,f=0,h=u;const d=t.length;if(e){h=et(t,i?B.get(J(i)):void 0);if(l=St(t[d-1]),d>1&&null!==t[0])c=St(t[0]);else{const t=null==s?void 0:s.generator;if(t){const{animation:e,generatorStartTime:n}=s,i=(null==e?void 0:e.startTime)||n||0,r=(null==e?void 0:e.currentTime)||performance.now()-i,o=t(r).current;c=o,f=vt((e=>t(e).current),r,o)}else n&&(c=St(n()))}}if(Ot(c)&&Ot(l)){const t=r(c,l,f,null==i?void 0:i.includes("scale"));a=Object.assign(Object.assign({},o(t,h)),{easing:"linear"}),s&&(s.generator=t,s.generatorStartTime=performance.now())}if(!a){a={easing:"ease",duration:o(r(0,100)).overshootDuration}}return a}}}}const Tt=Mt(xt),At=Mt((({from:t=0,velocity:e=0,power:n=.8,decay:i=.325,bounceDamping:r,bounceStiffness:o,changeTarget:s,min:a,max:c,restDistance:l=.5,restSpeed:u})=>{i=w(i);const f={hasReachedTarget:!1,done:!1,current:t,target:t},h=t=>void 0===a?c:void 0===c||Math.abs(a-t)<Math.abs(c-t)?a:c;let d=n*e;const g=t+d,p=void 0===s?g:s(g);f.target=p,p!==g&&(d=p-t);const m=t=>-d*Math.exp(-t/i),y=t=>p+m(t),v=t=>{const e=m(t),n=y(t);f.done=Math.abs(e)<=l,f.current=f.done?p:n};let b,E;const x=t=>{var e;(e=f.current,void 0!==a&&e<a||void 0!==c&&e>c)&&(b=t,E=xt({from:f.current,to:h(f.current),velocity:vt(y,t,f.current),damping:r,stiffness:o,restDistance:l,restSpeed:u}))};return x(0),t=>{let e=!1;return E||void 0!==b||(e=!0,v(t),x(t)),void 0!==b&&t>b?(f.hasReachedTarget=!0,E(t-b)):(f.hasReachedTarget=!1,!e&&v(t),f)}})),Dt={any:0,all:1};function Lt(t,e,{root:n,margin:i,amount:r="any"}={}){if("undefined"==typeof IntersectionObserver)return()=>{};const o=rt(t),s=new WeakMap,a=new IntersectionObserver((t=>{t.forEach((t=>{const n=s.get(t.target);if(t.isIntersecting!==Boolean(n))if(t.isIntersecting){const n=e(t);y(n)?s.set(t.target,n):a.unobserve(t.target)}else n&&(n(t),s.delete(t.target))}))}),{root:n,rootMargin:i,threshold:"number"==typeof r?r:Dt[r]});return o.forEach((t=>a.observe(t))),()=>a.disconnect()}const kt=new WeakMap;let Wt;function jt({target:t,contentRect:e,borderBoxSize:n}){var i;null===(i=kt.get(t))||void 0===i||i.forEach((i=>{i({target:t,contentSize:e,get size(){return function(t,e){if(e){const{inlineSize:t,blockSize:n}=e[0];return{width:t,height:n}}return t instanceof SVGElement&&"getBBox"in t?t.getBBox():{width:t.offsetWidth,height:t.offsetHeight}}(t,n)}})}))}function Rt(t){t.forEach(jt)}function zt(t,e){Wt||"undefined"!=typeof ResizeObserver&&(Wt=new ResizeObserver(Rt));const n=rt(t);return n.forEach((t=>{let n=kt.get(t);n||(n=new Set,kt.set(t,n)),n.add(e),null==Wt||Wt.observe(t)})),()=>{n.forEach((t=>{const n=kt.get(t);null==n||n.delete(e),(null==n?void 0:n.size)||null==Wt||Wt.unobserve(t)}))}}const Bt=new Set;let Pt;function Vt(t){return Bt.add(t),Pt||(Pt=()=>{const t={width:window.innerWidth,height:window.innerHeight},e={target:window,size:t,contentSize:t};Bt.forEach((t=>t(e)))},window.addEventListener("resize",Pt)),()=>{Bt.delete(t),!Bt.size&&Pt&&(Pt=void 0)}}function $t(t,e){return y(t)?Vt(t):zt(t,e)}const qt={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function Ct(t,e,n,i){const r=n[e],{length:o,position:s}=qt[e],a=r.current,c=n.time;r.current=t["scroll"+s],r.scrollLength=t["scroll"+o]-t["client"+o],r.offset.length=0,r.offset[0]=0,r.offset[1]=r.scrollLength,r.progress=f(0,r.scrollLength,r.current);const l=i-c;r.velocity=l>50?0:E(r.current-a,l)}const Ft={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},Ht={start:0,center:.5,end:1};function It(t,e,n=0){let i=0;if(void 0!==Ht[t]&&(t=Ht[t]),v(t)){const e=parseFloat(t);t.endsWith("px")?i=e:t.endsWith("%")?t=e/100:t.endsWith("vw")?i=e/100*document.documentElement.clientWidth:t.endsWith("vh")?i=e/100*document.documentElement.clientHeight:t=e}return o(t)&&(i=e*t),n+i}const Ut=[0,0];function Nt(t,e,n,i){let r=Array.isArray(t)?t:Ut,s=0,a=0;return o(t)?r=[t,t]:v(t)&&(r=(t=t.trim()).includes(" ")?t.split(" "):[t,Ht[t]?t:"0"]),s=It(r[0],n,i),a=It(r[1],e),s-a}const _t={x:0,y:0};function Gt(t,e,n){let{offset:i=Ft.All}=n;const{target:r=t,axis:o="y"}=n,s="y"===o?"height":"width",a=r!==t?function(t,e){let n={x:0,y:0},i=t;for(;i&&i!==e;)if(i instanceof HTMLElement)n.x+=i.offsetLeft,n.y+=i.offsetTop,i=i.offsetParent;else if(i instanceof SVGGraphicsElement&&"getBBox"in i){const{top:t,left:e}=i.getBBox();for(n.x+=e,n.y+=t;i&&"svg"!==i.tagName;)i=i.parentNode}return n}(r,t):_t,c=r===t?{width:t.scrollWidth,height:t.scrollHeight}:{width:r.clientWidth,height:r.clientHeight},l={width:t.clientWidth,height:t.clientHeight};e[o].offset.length=0;let u=!e[o].interpolate;const f=i.length;for(let t=0;t<f;t++){const n=Nt(i[t],l[s],c[s],a[o]);u||n===e[o].interpolatorOffsets[t]||(u=!0),e[o].offset[t]=n}u&&(e[o].interpolate=g(d(f),e[o].offset),e[o].interpolatorOffsets=[...e[o].offset]),e[o].progress=e[o].interpolate(e[o].current)}function Zt(t,e,n,i={}){const r=i.axis||"y";return{measure:()=>function(t,e=t,n){if(n.x.targetOffset=0,n.y.targetOffset=0,e!==t){let i=e;for(;i&&i!=t;)n.x.targetOffset+=i.offsetLeft,n.y.targetOffset+=i.offsetTop,i=i.offsetParent}n.x.targetLength=e===t?e.scrollWidth:e.clientWidth,n.y.targetLength=e===t?e.scrollHeight:e.clientHeight,n.x.containerLength=t.clientWidth,n.y.containerLength=t.clientHeight}(t,i.target,n),update:e=>{!function(t,e,n){Ct(t,"x",e,n),Ct(t,"y",e,n),e.time=n}(t,n,e),(i.offset||i.target)&&Gt(t,n,i)},notify:y(e)?()=>e(n):Kt(e,n[r])}}function Kt(t,e){return t.pause(),t.forEachNative(((t,{easing:e})=>{var n,i;if(t.updateDuration)e||(t.easing=u),t.updateDuration(1);else{const r={duration:1e3};e||(r.easing="linear"),null===(i=null===(n=t.effect)||void 0===n?void 0:n.updateTiming)||void 0===i||i.call(n,r)}})),()=>{t.currentTime=e.progress}}const Xt=new WeakMap,Yt=new WeakMap,Jt=new WeakMap,Qt=t=>t===document.documentElement?window:t;function te(t,e){return function(t){return"object"==typeof t}(t)?t:t&&e?e[t]:void 0}let ee;function ne(){if(!ee)return;const t=ee.sort(re).map(oe);t.forEach(se),t.forEach(se),ee=void 0}function ie(t){ee?e(ee,t):(ee=[t],requestAnimationFrame(ne))}const re=(t,e)=>t.getDepth()-e.getDepth(),oe=t=>t.animateUpdates(),se=t=>t.next(),ae=(t,e)=>new CustomEvent(t,{detail:{target:e}});function ce(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEvent:n}}))}function le(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEntry:n}}))}const ue=(t,e,n)=>i=>{i.pointerType&&"mouse"!==i.pointerType||(n(),ce(t,e,i))},fe={inView:{isActive:t=>Boolean(t.inView),subscribe:(t,{enable:e,disable:n},{inViewOptions:i={}})=>{const{once:r}=i,o=ht(i,["once"]);return Lt(t,(i=>{if(e(),le(t,"viewenter",i),!r)return e=>{n(),le(t,"viewleave",e)}}),o)}},hover:{isActive:t=>Boolean(t.hover),subscribe:(t,{enable:e,disable:n})=>{const i=ue(t,"hoverstart",e),r=ue(t,"hoverend",n);return t.addEventListener("pointerenter",i),t.addEventListener("pointerleave",r),()=>{t.removeEventListener("pointerenter",i),t.removeEventListener("pointerleave",r)}}},press:{isActive:t=>Boolean(t.press),subscribe:(t,{enable:e,disable:n})=>{const i=e=>{n(),ce(t,"pressend",e),window.removeEventListener("pointerup",i)},r=n=>{e(),ce(t,"pressstart",n),window.addEventListener("pointerup",i)};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r),window.removeEventListener("pointerup",i)}}}},he=["initial","animate",...Object.keys(fe),"exit"],de=new WeakMap;function ge(t){const e={},n=[];for(let i in t){const r=t[i];C(i)&&(j[i]&&(i=j[i]),n.push(i),i=P(i));let s=Array.isArray(r)?r[0]:r;const a=B.get(i);a&&(s=o(r)?a.toDefaultUnit(r):r),e[i]=s}return n.length&&(e.transform=F(n)),e}const pe=t=>`-${t.toLowerCase()}`;function me(t,e={}){return st([()=>{const n=new A(t,[0,1],e);return n.finished.catch((()=>{})),n}],e,e.duration)}t.MotionValue=D,t.ScrollOffset=Ft,t.animate=function(t,e,n){return(y(t)?me:ft)(t,e,n)},t.animateStyle=nt,t.createAnimate=ut,t.createMotionState=function(t={},e){let i,r=e?e.getDepth()+1:0;const o={initial:!0,animate:!0},s={},a={};for(const n of he)a[n]="string"==typeof t[n]?t[n]:null==e?void 0:e.getContext()[n];const c=!1===t.initial?"animate":"initial";let u=ht(te(t[c]||a[c],t.variants)||{},["transition"]);const f=Object.assign({},u),h=(t,e)=>()=>{o[t]=e,ie(g)},d=()=>{for(const e in fe){const n=fe[e].isActive(t),r=s[e];n&&!r?s[e]=fe[e].subscribe(i,{enable:h(e,!0),disable:h(e,!1)},t):!n&&r&&(r(),delete s[e])}},g={update:e=>{i&&(t=e,d(),ie(g))},setActive:(t,e)=>{i&&(o[t]=e,ie(g))},animateUpdates:function*(){var e,n;const r=u;u={};const s={};for(const i of he){if(!o[i])continue;const r=te(t[i]);if(r)for(const i in r)"transition"!==i&&(u[i]=r[i],s[i]=it(null!==(n=null!==(e=r.transition)&&void 0!==e?e:t.transition)&&void 0!==n?n:{},i))}const a=new Set([...Object.keys(u),...Object.keys(r)]),c=[];a.forEach((t=>{var e,n,o;void 0===u[t]&&(u[t]=f[t]),n=r[t],o=u[t],typeof n==typeof o&&(Array.isArray(n)&&Array.isArray(o)?function(t,e){const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}(n,o):n===o)||(null!==(e=f[t])&&void 0!==e||(f[t]=Q.get(i,t)),c.push(nt(i,t,u[t],s[t],A)))})),yield;const h=c.map((t=>t())).filter(Boolean);if(!h.length)return;const d=u;i.dispatchEvent(ae("motionstart",d)),Promise.all(h.map((t=>t.finished))).then((()=>{i.dispatchEvent(ae("motioncomplete",d))})).catch(l)},getDepth:()=>r,getTarget:()=>u,getOptions:()=>t,getContext:()=>a,mount:t=>(i=t,de.set(i,g),d(),()=>{de.delete(i),function(t){ee&&n(ee,t)}(g);for(const t in s)s[t]()}),isMounted:()=>Boolean(i)};return g},t.createStyleString=function(t={}){const e=ge(t);let n="";for(const t in e)n+=t.startsWith("--")?t:t.replace(/[A-Z]/g,pe),n+=`: ${e[t]}; `;return n},t.createStyles=ge,t.getAnimationData=k,t.getStyleName=J,t.glide=At,t.inView=Lt,t.mountedStates=de,t.resize=$t,t.scroll=function(t,e={}){var{container:n=document.documentElement}=e,i=ht(e,["container"]);let r=Jt.get(n);r||(r=new Set,Jt.set(n,r));const o=Zt(n,t,{time:0,x:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0},y:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}},i);if(r.add(o),!Xt.has(n)){const t=()=>{const t=performance.now();for(const t of r)t.measure();for(const e of r)e.update(t);for(const t of r)t.notify()};Xt.set(n,t);const e=Qt(n);window.addEventListener("resize",t,{passive:!0}),n!==document.documentElement&&Yt.set(n,$t(n,t)),e.addEventListener("scroll",t,{passive:!0})}const s=Xt.get(n),a=requestAnimationFrame(s);return()=>{var e;"function"!=typeof t&&t.stop(),cancelAnimationFrame(a);const i=Jt.get(n);if(!i)return;if(i.delete(o),i.size)return;const r=Xt.get(n);Xt.delete(n),r&&(Qt(n).removeEventListener("scroll",r),null===(e=Yt.get(n))||void 0===e||e(),window.removeEventListener("resize",r))}},t.spring=Tt,t.stagger=function(t=.1,{start:e=0,from:n=0,easing:i}={}){return(r,s)=>{const a=o(n)?n:function(t,e){if("first"===t)return 0;{const n=e-1;return"last"===t?n:n/2}}(n,s),c=Math.abs(a-r);let l=t*c;if(i){const e=s*t;l=T(i)(l/e)*e}return e+l}},t.style=Q,t.timeline=function(t,e={}){var n;const i=function(t,e={}){var{defaultOptions:n={}}=e,i=ht(e,["defaultOptions"]);const o=[],s=new Map,a={},c=new Map;let l=0,u=0,g=0;for(let e=0;e<t.length;e++){const i=t[e];if(v(i)){c.set(i,u);continue}if(!Array.isArray(i)){c.set(i.name,dt(u,i.at,l,c));continue}const[o,f,p={}]=i;void 0!==p.at&&(u=dt(u,p.at,l,c));let y=0;const w=rt(o,a),b=w.length;for(let t=0;t<b;t++){const e=mt(w[t],s);for(const i in f){const o=yt(i,e);let s=Y(f[i]);const a=it(p,i);let{duration:c=n.duration||r.duration,easing:l=n.easing||r.easing}=a;if(m(l)){"opacity"===i||s.length;const t=l.createAnimation(s,"opacity"!==i,(()=>0),i);l=t.easing,s=t.keyframes||s,c=t.duration||c}const v=lt(p.delay,t,b)||0,w=u+v,E=w+c;let{offset:x=d(s.length)}=a;1===x.length&&0===x[0]&&(x[1]=1);const O=length-s.length;O>0&&h(x,O),1===s.length&&s.unshift(null),gt(o,s,l,x,w,E),y=Math.max(v+c,y),g=Math.max(E,g)}}l=u,u+=y}return s.forEach(((t,e)=>{for(const s in t){const a=t[s];a.sort(pt);const c=[],l=[],u=[];for(let t=0;t<a.length;t++){const{at:e,value:n,easing:i}=a[t];c.push(n),l.push(f(0,g,e)),u.push(i||r.easing)}0!==l[0]&&(l.unshift(0),c.unshift(c[0]),u.unshift("linear")),1!==l[l.length-1]&&(l.push(1),c.push(null)),o.push([e,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:g,easing:u,offset:l}),i)])}})),o}(t,e),o=i.map((t=>nt(...t,A))).filter(Boolean);return st(o,e,null===(n=i[0])||void 0===n?void 0:n[3].duration)},t.withControls=st,Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/dist/motion.umd.js
CHANGED
|
@@ -4,39 +4,6 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Motion = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* The MotionValue tracks the state of a single animatable
|
|
9
|
-
* value. Currently, updatedAt and current are unused. The
|
|
10
|
-
* long term idea is to use this to minimise the number
|
|
11
|
-
* of DOM reads, and to abstract the DOM interactions here.
|
|
12
|
-
*/
|
|
13
|
-
class MotionValue {
|
|
14
|
-
setAnimation(animation) {
|
|
15
|
-
this.animation = animation;
|
|
16
|
-
animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });
|
|
17
|
-
}
|
|
18
|
-
clearAnimation() {
|
|
19
|
-
this.animation = this.generator = undefined;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const data = new WeakMap();
|
|
24
|
-
function getAnimationData(element) {
|
|
25
|
-
if (!data.has(element)) {
|
|
26
|
-
data.set(element, {
|
|
27
|
-
transforms: [],
|
|
28
|
-
values: new Map(),
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
return data.get(element);
|
|
32
|
-
}
|
|
33
|
-
function getMotionValue(motionValues, name) {
|
|
34
|
-
if (!motionValues.has(name)) {
|
|
35
|
-
motionValues.set(name, new MotionValue());
|
|
36
|
-
}
|
|
37
|
-
return motionValues.get(name);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
7
|
function addUniqueItem(array, item) {
|
|
41
8
|
array.indexOf(item) === -1 && array.push(item);
|
|
42
9
|
}
|
|
@@ -137,99 +104,6 @@
|
|
|
137
104
|
return frameDuration ? velocity * (1000 / frameDuration) : 0;
|
|
138
105
|
}
|
|
139
106
|
|
|
140
|
-
/**
|
|
141
|
-
* A list of all transformable axes. We'll use this list to generated a version
|
|
142
|
-
* of each axes for each transform.
|
|
143
|
-
*/
|
|
144
|
-
const axes = ["", "X", "Y", "Z"];
|
|
145
|
-
/**
|
|
146
|
-
* An ordered array of each transformable value. By default, transform values
|
|
147
|
-
* will be sorted to this order.
|
|
148
|
-
*/
|
|
149
|
-
const order = ["translate", "scale", "rotate", "skew"];
|
|
150
|
-
const transformAlias = {
|
|
151
|
-
x: "translateX",
|
|
152
|
-
y: "translateY",
|
|
153
|
-
z: "translateZ",
|
|
154
|
-
};
|
|
155
|
-
const rotation = {
|
|
156
|
-
syntax: "<angle>",
|
|
157
|
-
initialValue: "0deg",
|
|
158
|
-
toDefaultUnit: (v) => v + "deg",
|
|
159
|
-
};
|
|
160
|
-
const baseTransformProperties = {
|
|
161
|
-
translate: {
|
|
162
|
-
syntax: "<length-percentage>",
|
|
163
|
-
initialValue: "0px",
|
|
164
|
-
toDefaultUnit: (v) => v + "px",
|
|
165
|
-
},
|
|
166
|
-
rotate: rotation,
|
|
167
|
-
scale: {
|
|
168
|
-
syntax: "<number>",
|
|
169
|
-
initialValue: 1,
|
|
170
|
-
toDefaultUnit: noopReturn,
|
|
171
|
-
},
|
|
172
|
-
skew: rotation,
|
|
173
|
-
};
|
|
174
|
-
const transformDefinitions = new Map();
|
|
175
|
-
const asTransformCssVar = (name) => `--motion-${name}`;
|
|
176
|
-
/**
|
|
177
|
-
* Generate a list of every possible transform key
|
|
178
|
-
*/
|
|
179
|
-
const transforms = ["x", "y", "z"];
|
|
180
|
-
order.forEach((name) => {
|
|
181
|
-
axes.forEach((axis) => {
|
|
182
|
-
transforms.push(name + axis);
|
|
183
|
-
transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
/**
|
|
187
|
-
* A function to use with Array.sort to sort transform keys by their default order.
|
|
188
|
-
*/
|
|
189
|
-
const compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);
|
|
190
|
-
/**
|
|
191
|
-
* Provide a quick way to check if a string is the name of a transform
|
|
192
|
-
*/
|
|
193
|
-
const transformLookup = new Set(transforms);
|
|
194
|
-
const isTransform = (name) => transformLookup.has(name);
|
|
195
|
-
const addTransformToElement = (element, name) => {
|
|
196
|
-
// Map x to translateX etc
|
|
197
|
-
if (transformAlias[name])
|
|
198
|
-
name = transformAlias[name];
|
|
199
|
-
const { transforms } = getAnimationData(element);
|
|
200
|
-
addUniqueItem(transforms, name);
|
|
201
|
-
/**
|
|
202
|
-
* TODO: An optimisation here could be to cache the transform in element data
|
|
203
|
-
* and only update if this has changed.
|
|
204
|
-
*/
|
|
205
|
-
element.style.transform = buildTransformTemplate(transforms);
|
|
206
|
-
};
|
|
207
|
-
const buildTransformTemplate = (transforms) => transforms
|
|
208
|
-
.sort(compareTransformOrder)
|
|
209
|
-
.reduce(transformListToString, "")
|
|
210
|
-
.trim();
|
|
211
|
-
const transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;
|
|
212
|
-
|
|
213
|
-
const isCssVar = (name) => name.startsWith("--");
|
|
214
|
-
const registeredProperties = new Set();
|
|
215
|
-
function registerCssVariable(name) {
|
|
216
|
-
if (registeredProperties.has(name))
|
|
217
|
-
return;
|
|
218
|
-
registeredProperties.add(name);
|
|
219
|
-
try {
|
|
220
|
-
const { syntax, initialValue } = transformDefinitions.has(name)
|
|
221
|
-
? transformDefinitions.get(name)
|
|
222
|
-
: {};
|
|
223
|
-
CSS.registerProperty({
|
|
224
|
-
name,
|
|
225
|
-
inherits: false,
|
|
226
|
-
syntax,
|
|
227
|
-
initialValue,
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
catch (e) { }
|
|
231
|
-
}
|
|
232
|
-
|
|
233
107
|
/*
|
|
234
108
|
Bezier function generator
|
|
235
109
|
|
|
@@ -335,12 +209,10 @@
|
|
|
335
209
|
});
|
|
336
210
|
easing = easing || defaults$1.easing;
|
|
337
211
|
if (isEasingGenerator(easing)) {
|
|
338
|
-
const custom = easing.createAnimation(keyframes
|
|
212
|
+
const custom = easing.createAnimation(keyframes);
|
|
339
213
|
easing = custom.easing;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (custom.duration !== undefined)
|
|
343
|
-
initialDuration = custom.duration;
|
|
214
|
+
keyframes = custom.keyframes || keyframes;
|
|
215
|
+
initialDuration = custom.duration || initialDuration;
|
|
344
216
|
}
|
|
345
217
|
this.repeat = repeat;
|
|
346
218
|
this.easing = isEasingList(easing) ? noopReturn : getEasingFunction(easing);
|
|
@@ -478,6 +350,132 @@
|
|
|
478
350
|
}
|
|
479
351
|
}
|
|
480
352
|
|
|
353
|
+
/**
|
|
354
|
+
* The MotionValue tracks the state of a single animatable
|
|
355
|
+
* value. Currently, updatedAt and current are unused. The
|
|
356
|
+
* long term idea is to use this to minimise the number
|
|
357
|
+
* of DOM reads, and to abstract the DOM interactions here.
|
|
358
|
+
*/
|
|
359
|
+
class MotionValue {
|
|
360
|
+
setAnimation(animation) {
|
|
361
|
+
this.animation = animation;
|
|
362
|
+
animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });
|
|
363
|
+
}
|
|
364
|
+
clearAnimation() {
|
|
365
|
+
this.animation = this.generator = undefined;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
const data = new WeakMap();
|
|
370
|
+
function getAnimationData(element) {
|
|
371
|
+
if (!data.has(element)) {
|
|
372
|
+
data.set(element, {
|
|
373
|
+
transforms: [],
|
|
374
|
+
values: new Map(),
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
return data.get(element);
|
|
378
|
+
}
|
|
379
|
+
function getMotionValue(motionValues, name) {
|
|
380
|
+
if (!motionValues.has(name)) {
|
|
381
|
+
motionValues.set(name, new MotionValue());
|
|
382
|
+
}
|
|
383
|
+
return motionValues.get(name);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* A list of all transformable axes. We'll use this list to generated a version
|
|
388
|
+
* of each axes for each transform.
|
|
389
|
+
*/
|
|
390
|
+
const axes = ["", "X", "Y", "Z"];
|
|
391
|
+
/**
|
|
392
|
+
* An ordered array of each transformable value. By default, transform values
|
|
393
|
+
* will be sorted to this order.
|
|
394
|
+
*/
|
|
395
|
+
const order = ["translate", "scale", "rotate", "skew"];
|
|
396
|
+
const transformAlias = {
|
|
397
|
+
x: "translateX",
|
|
398
|
+
y: "translateY",
|
|
399
|
+
z: "translateZ",
|
|
400
|
+
};
|
|
401
|
+
const rotation = {
|
|
402
|
+
syntax: "<angle>",
|
|
403
|
+
initialValue: "0deg",
|
|
404
|
+
toDefaultUnit: (v) => v + "deg",
|
|
405
|
+
};
|
|
406
|
+
const baseTransformProperties = {
|
|
407
|
+
translate: {
|
|
408
|
+
syntax: "<length-percentage>",
|
|
409
|
+
initialValue: "0px",
|
|
410
|
+
toDefaultUnit: (v) => v + "px",
|
|
411
|
+
},
|
|
412
|
+
rotate: rotation,
|
|
413
|
+
scale: {
|
|
414
|
+
syntax: "<number>",
|
|
415
|
+
initialValue: 1,
|
|
416
|
+
toDefaultUnit: noopReturn,
|
|
417
|
+
},
|
|
418
|
+
skew: rotation,
|
|
419
|
+
};
|
|
420
|
+
const transformDefinitions = new Map();
|
|
421
|
+
const asTransformCssVar = (name) => `--motion-${name}`;
|
|
422
|
+
/**
|
|
423
|
+
* Generate a list of every possible transform key
|
|
424
|
+
*/
|
|
425
|
+
const transforms = ["x", "y", "z"];
|
|
426
|
+
order.forEach((name) => {
|
|
427
|
+
axes.forEach((axis) => {
|
|
428
|
+
transforms.push(name + axis);
|
|
429
|
+
transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);
|
|
430
|
+
});
|
|
431
|
+
});
|
|
432
|
+
/**
|
|
433
|
+
* A function to use with Array.sort to sort transform keys by their default order.
|
|
434
|
+
*/
|
|
435
|
+
const compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);
|
|
436
|
+
/**
|
|
437
|
+
* Provide a quick way to check if a string is the name of a transform
|
|
438
|
+
*/
|
|
439
|
+
const transformLookup = new Set(transforms);
|
|
440
|
+
const isTransform = (name) => transformLookup.has(name);
|
|
441
|
+
const addTransformToElement = (element, name) => {
|
|
442
|
+
// Map x to translateX etc
|
|
443
|
+
if (transformAlias[name])
|
|
444
|
+
name = transformAlias[name];
|
|
445
|
+
const { transforms } = getAnimationData(element);
|
|
446
|
+
addUniqueItem(transforms, name);
|
|
447
|
+
/**
|
|
448
|
+
* TODO: An optimisation here could be to cache the transform in element data
|
|
449
|
+
* and only update if this has changed.
|
|
450
|
+
*/
|
|
451
|
+
element.style.transform = buildTransformTemplate(transforms);
|
|
452
|
+
};
|
|
453
|
+
const buildTransformTemplate = (transforms) => transforms
|
|
454
|
+
.sort(compareTransformOrder)
|
|
455
|
+
.reduce(transformListToString, "")
|
|
456
|
+
.trim();
|
|
457
|
+
const transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;
|
|
458
|
+
|
|
459
|
+
const isCssVar = (name) => name.startsWith("--");
|
|
460
|
+
const registeredProperties = new Set();
|
|
461
|
+
function registerCssVariable(name) {
|
|
462
|
+
if (registeredProperties.has(name))
|
|
463
|
+
return;
|
|
464
|
+
registeredProperties.add(name);
|
|
465
|
+
try {
|
|
466
|
+
const { syntax, initialValue } = transformDefinitions.has(name)
|
|
467
|
+
? transformDefinitions.get(name)
|
|
468
|
+
: {};
|
|
469
|
+
CSS.registerProperty({
|
|
470
|
+
name,
|
|
471
|
+
inherits: false,
|
|
472
|
+
syntax,
|
|
473
|
+
initialValue,
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
catch (e) { }
|
|
477
|
+
}
|
|
478
|
+
|
|
481
479
|
const testAnimation = (keyframes, options) => document.createElement("div").animate(keyframes, options);
|
|
482
480
|
const featureTests = {
|
|
483
481
|
cssRegisterProperty: () => typeof CSS !== "undefined" &&
|
|
@@ -591,10 +589,22 @@
|
|
|
591
589
|
catch (e) { }
|
|
592
590
|
}
|
|
593
591
|
|
|
592
|
+
function getUnitConverter(keyframes, definition) {
|
|
593
|
+
var _a;
|
|
594
|
+
let toUnit = (definition === null || definition === void 0 ? void 0 : definition.toDefaultUnit) || noopReturn;
|
|
595
|
+
const finalKeyframe = keyframes[keyframes.length - 1];
|
|
596
|
+
if (isString(finalKeyframe)) {
|
|
597
|
+
const unit = ((_a = finalKeyframe.match(/(-?[\d.]+)([a-z%]*)/)) === null || _a === void 0 ? void 0 : _a[2]) || "";
|
|
598
|
+
if (unit)
|
|
599
|
+
toUnit = (value) => value + unit;
|
|
600
|
+
}
|
|
601
|
+
return toUnit;
|
|
602
|
+
}
|
|
603
|
+
|
|
594
604
|
function getDevToolsRecord() {
|
|
595
605
|
return window.__MOTION_DEV_TOOLS_RECORD;
|
|
596
606
|
}
|
|
597
|
-
function animateStyle(element, key, keyframesDefinition, options = {}) {
|
|
607
|
+
function animateStyle(element, key, keyframesDefinition, options = {}, AnimationPolyfill) {
|
|
598
608
|
const record = getDevToolsRecord();
|
|
599
609
|
const isRecording = options.record !== false && record;
|
|
600
610
|
let animation;
|
|
@@ -632,13 +642,15 @@
|
|
|
632
642
|
* it from the DOM if it's the first keyframe.
|
|
633
643
|
*/
|
|
634
644
|
let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);
|
|
645
|
+
/**
|
|
646
|
+
* Detect unit type of keyframes.
|
|
647
|
+
*/
|
|
648
|
+
const toUnit = getUnitConverter(keyframes, definition);
|
|
635
649
|
if (isEasingGenerator(easing)) {
|
|
636
|
-
const custom = easing.createAnimation(keyframes,
|
|
650
|
+
const custom = easing.createAnimation(keyframes, key !== "opacity", readInitialValue, name, motionValue);
|
|
637
651
|
easing = custom.easing;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
if (custom.duration !== undefined)
|
|
641
|
-
duration = custom.duration;
|
|
652
|
+
keyframes = custom.keyframes || keyframes;
|
|
653
|
+
duration = custom.duration || duration;
|
|
642
654
|
}
|
|
643
655
|
/**
|
|
644
656
|
* If this is a CSS variable we need to register it with the browser
|
|
@@ -735,7 +747,7 @@
|
|
|
735
747
|
* polyfill for transforms.
|
|
736
748
|
*/
|
|
737
749
|
}
|
|
738
|
-
else if (valueIsTransform) {
|
|
750
|
+
else if (AnimationPolyfill && valueIsTransform) {
|
|
739
751
|
/**
|
|
740
752
|
* If any keyframe is a string (because we measured it from the DOM), we need to convert
|
|
741
753
|
* it into a number before passing to the Animation polyfill.
|
|
@@ -748,12 +760,9 @@
|
|
|
748
760
|
if (keyframes.length === 1) {
|
|
749
761
|
keyframes.unshift(parseFloat(readInitialValue()));
|
|
750
762
|
}
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
style.set(element, name, latest);
|
|
755
|
-
};
|
|
756
|
-
animation = new Animation(render, keyframes, Object.assign(Object.assign({}, options), { duration,
|
|
763
|
+
animation = new AnimationPolyfill((latest) => {
|
|
764
|
+
style.set(element, name, toUnit ? toUnit(latest) : latest);
|
|
765
|
+
}, keyframes, Object.assign(Object.assign({}, options), { duration,
|
|
757
766
|
easing }));
|
|
758
767
|
}
|
|
759
768
|
else {
|
|
@@ -894,35 +903,39 @@
|
|
|
894
903
|
return isFunction(option) ? option(i, total) : option;
|
|
895
904
|
}
|
|
896
905
|
|
|
897
|
-
function
|
|
898
|
-
elements =
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
const
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
906
|
+
function createAnimate(AnimatePolyfill) {
|
|
907
|
+
return function animate(elements, keyframes, options = {}) {
|
|
908
|
+
elements = resolveElements(elements);
|
|
909
|
+
const numElements = elements.length;
|
|
910
|
+
/**
|
|
911
|
+
* Create and start new animations
|
|
912
|
+
*/
|
|
913
|
+
const animationFactories = [];
|
|
914
|
+
for (let i = 0; i < numElements; i++) {
|
|
915
|
+
const element = elements[i];
|
|
916
|
+
for (const key in keyframes) {
|
|
917
|
+
const valueOptions = getOptions(options, key);
|
|
918
|
+
valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);
|
|
919
|
+
const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);
|
|
920
|
+
animationFactories.push(animation);
|
|
921
|
+
}
|
|
911
922
|
}
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
923
|
+
return withControls(animationFactories, options,
|
|
924
|
+
/**
|
|
925
|
+
* TODO:
|
|
926
|
+
* If easing is set to spring or glide, duration will be dynamically
|
|
927
|
+
* generated. Ideally we would dynamically generate this from
|
|
928
|
+
* animation.effect.getComputedTiming().duration but this isn't
|
|
929
|
+
* supported in iOS13 or our number polyfill. Perhaps it's possible
|
|
930
|
+
* to Proxy animations returned from animateStyle that has duration
|
|
931
|
+
* as a getter.
|
|
932
|
+
*/
|
|
933
|
+
options.duration);
|
|
934
|
+
};
|
|
924
935
|
}
|
|
925
936
|
|
|
937
|
+
const animate$1 = createAnimate(Animation);
|
|
938
|
+
|
|
926
939
|
/******************************************************************************
|
|
927
940
|
Copyright (c) Microsoft Corporation.
|
|
928
941
|
|
|
@@ -1017,7 +1030,7 @@
|
|
|
1017
1030
|
* Create and start animations
|
|
1018
1031
|
*/
|
|
1019
1032
|
const animationFactories = animationDefinitions
|
|
1020
|
-
.map((definition) => animateStyle(...definition))
|
|
1033
|
+
.map((definition) => animateStyle(...definition, Animation))
|
|
1021
1034
|
.filter(Boolean);
|
|
1022
1035
|
return withControls(animationFactories, options,
|
|
1023
1036
|
// Get the duration from the first animation definition
|
|
@@ -1078,17 +1091,11 @@
|
|
|
1078
1091
|
const valueOptions = getOptions(options, key);
|
|
1079
1092
|
let { duration = defaultOptions.duration || defaults$1.duration, easing = defaultOptions.easing || defaults$1.easing, } = valueOptions;
|
|
1080
1093
|
if (isEasingGenerator(easing)) {
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
const custom = easing.createAnimation(valueKeyframes,
|
|
1084
|
-
// TODO We currently only support explicit keyframes
|
|
1085
|
-
// so this doesn't currently read from the DOM
|
|
1086
|
-
() => "0", valueIsTransform);
|
|
1094
|
+
invariant(key === "opacity" || valueKeyframes.length > 1, "spring must be provided 2 keyframes within timeline()");
|
|
1095
|
+
const custom = easing.createAnimation(valueKeyframes, key !== "opacity", () => 0, key);
|
|
1087
1096
|
easing = custom.easing;
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
if (custom.duration !== undefined)
|
|
1091
|
-
duration = custom.duration;
|
|
1097
|
+
valueKeyframes = custom.keyframes || valueKeyframes;
|
|
1098
|
+
duration = custom.duration || duration;
|
|
1092
1099
|
}
|
|
1093
1100
|
const delay = resolveOption(options.delay, elementIndex, numElements) || 0;
|
|
1094
1101
|
const startTime = currentTime + delay;
|
|
@@ -1339,14 +1346,14 @@
|
|
|
1339
1346
|
|
|
1340
1347
|
const timeStep = 10;
|
|
1341
1348
|
const maxDuration = 10000;
|
|
1342
|
-
function pregenerateKeyframes(generator) {
|
|
1349
|
+
function pregenerateKeyframes(generator, toUnit = noopReturn) {
|
|
1343
1350
|
let overshootDuration = undefined;
|
|
1344
1351
|
let timestamp = timeStep;
|
|
1345
1352
|
let state = generator(0);
|
|
1346
|
-
const keyframes = [state.current];
|
|
1353
|
+
const keyframes = [toUnit(state.current)];
|
|
1347
1354
|
while (!state.done && timestamp < maxDuration) {
|
|
1348
1355
|
state = generator(timestamp);
|
|
1349
|
-
keyframes.push(state.done ? state.target : state.current);
|
|
1356
|
+
keyframes.push(toUnit(state.done ? state.target : state.current));
|
|
1350
1357
|
if (overshootDuration === undefined && state.hasReachedTarget) {
|
|
1351
1358
|
overshootDuration = timestamp;
|
|
1352
1359
|
}
|
|
@@ -1366,6 +1373,12 @@
|
|
|
1366
1373
|
};
|
|
1367
1374
|
}
|
|
1368
1375
|
|
|
1376
|
+
function canGenerate(value) {
|
|
1377
|
+
return isNumber(value) && !isNaN(value);
|
|
1378
|
+
}
|
|
1379
|
+
function getAsNumber(value) {
|
|
1380
|
+
return isString(value) ? parseFloat(value) : value;
|
|
1381
|
+
}
|
|
1369
1382
|
function createGeneratorEasing(createGenerator) {
|
|
1370
1383
|
const keyframesCache = new WeakMap();
|
|
1371
1384
|
return (options = {}) => {
|
|
@@ -1379,54 +1392,80 @@
|
|
|
1379
1392
|
}
|
|
1380
1393
|
return generatorCache.get(key);
|
|
1381
1394
|
};
|
|
1382
|
-
const getKeyframes = (generator) => {
|
|
1395
|
+
const getKeyframes = (generator, toUnit) => {
|
|
1383
1396
|
if (!keyframesCache.has(generator)) {
|
|
1384
|
-
keyframesCache.set(generator, pregenerateKeyframes(generator));
|
|
1397
|
+
keyframesCache.set(generator, pregenerateKeyframes(generator, toUnit));
|
|
1385
1398
|
}
|
|
1386
1399
|
return keyframesCache.get(generator);
|
|
1387
1400
|
};
|
|
1388
1401
|
return {
|
|
1389
|
-
createAnimation: (keyframes,
|
|
1390
|
-
var _a, _b;
|
|
1402
|
+
createAnimation: (keyframes, shouldGenerate = true, getOrigin, name, motionValue) => {
|
|
1391
1403
|
let settings;
|
|
1404
|
+
let origin;
|
|
1405
|
+
let target;
|
|
1406
|
+
let velocity = 0;
|
|
1407
|
+
let toUnit = noopReturn;
|
|
1392
1408
|
const numKeyframes = keyframes.length;
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
if (
|
|
1409
|
+
/**
|
|
1410
|
+
* If we should generate an animation for this value, run some preperation
|
|
1411
|
+
* like resolving target/origin, finding a unit (if any) and determine if
|
|
1412
|
+
* it is actually possible to generate.
|
|
1413
|
+
*/
|
|
1414
|
+
if (shouldGenerate) {
|
|
1415
|
+
toUnit = getUnitConverter(keyframes, name ? transformDefinitions.get(getStyleName(name)) : undefined);
|
|
1416
|
+
const targetDefinition = keyframes[numKeyframes - 1];
|
|
1417
|
+
target = getAsNumber(targetDefinition);
|
|
1418
|
+
if (numKeyframes > 1 && keyframes[0] !== null) {
|
|
1403
1419
|
/**
|
|
1404
|
-
* If we have
|
|
1405
|
-
* the animations's current value and velocity.
|
|
1420
|
+
* If we have multiple keyframes, take the initial keyframe as the origin.
|
|
1406
1421
|
*/
|
|
1407
|
-
|
|
1408
|
-
const startTime = (animation === null || animation === void 0 ? void 0 : animation.startTime) || generatorStartTime || 0;
|
|
1409
|
-
const currentTime = (animation === null || animation === void 0 ? void 0 : animation.currentTime) || performance.now() - startTime;
|
|
1410
|
-
const prevGeneratorCurrent = prevGenerator(currentTime).current;
|
|
1411
|
-
origin = (_a = unresolvedOrigin) !== null && _a !== void 0 ? _a : prevGeneratorCurrent;
|
|
1412
|
-
if (numKeyframes === 1 ||
|
|
1413
|
-
(numKeyframes === 2 && keyframes[0] === null)) {
|
|
1414
|
-
velocity = calcGeneratorVelocity((t) => prevGenerator(t).current, currentTime, prevGeneratorCurrent);
|
|
1415
|
-
}
|
|
1422
|
+
origin = getAsNumber(keyframes[0]);
|
|
1416
1423
|
}
|
|
1417
1424
|
else {
|
|
1418
|
-
|
|
1425
|
+
const prevGenerator = motionValue === null || motionValue === void 0 ? void 0 : motionValue.generator;
|
|
1426
|
+
/**
|
|
1427
|
+
* If we have an existing generator for this value we can use it to resolve
|
|
1428
|
+
* the animation's current value and velocity.
|
|
1429
|
+
*/
|
|
1430
|
+
if (prevGenerator) {
|
|
1431
|
+
/**
|
|
1432
|
+
* If we have a generator for this value we can use it to resolve
|
|
1433
|
+
* the animations's current value and velocity.
|
|
1434
|
+
*/
|
|
1435
|
+
const { animation, generatorStartTime } = motionValue;
|
|
1436
|
+
const startTime = (animation === null || animation === void 0 ? void 0 : animation.startTime) || generatorStartTime || 0;
|
|
1437
|
+
const currentTime = (animation === null || animation === void 0 ? void 0 : animation.currentTime) || performance.now() - startTime;
|
|
1438
|
+
const prevGeneratorCurrent = prevGenerator(currentTime).current;
|
|
1439
|
+
origin = prevGeneratorCurrent;
|
|
1440
|
+
velocity = calcGeneratorVelocity((t) => prevGenerator(t).current, currentTime, prevGeneratorCurrent);
|
|
1441
|
+
}
|
|
1442
|
+
else if (getOrigin) {
|
|
1443
|
+
/**
|
|
1444
|
+
* As a last resort, read the origin from the DOM.
|
|
1445
|
+
*/
|
|
1446
|
+
origin = getAsNumber(getOrigin());
|
|
1447
|
+
}
|
|
1419
1448
|
}
|
|
1449
|
+
}
|
|
1450
|
+
/**
|
|
1451
|
+
* If we've determined it is possible to generate an animation, do so.
|
|
1452
|
+
*/
|
|
1453
|
+
if (canGenerate(origin) && canGenerate(target)) {
|
|
1420
1454
|
const generator = getGenerator(origin, target, velocity, name === null || name === void 0 ? void 0 : name.includes("scale"));
|
|
1421
|
-
|
|
1422
|
-
settings = Object.assign(Object.assign({}, keyframesMetadata), { easing: "linear" });
|
|
1455
|
+
settings = Object.assign(Object.assign({}, getKeyframes(generator, toUnit)), { easing: "linear" });
|
|
1423
1456
|
// TODO Add test for this
|
|
1424
1457
|
if (motionValue) {
|
|
1425
1458
|
motionValue.generator = generator;
|
|
1426
1459
|
motionValue.generatorStartTime = performance.now();
|
|
1427
1460
|
}
|
|
1428
1461
|
}
|
|
1429
|
-
|
|
1462
|
+
/**
|
|
1463
|
+
* If by now we haven't generated a set of keyframes, create a generic generator
|
|
1464
|
+
* based on the provided props that animates from 0-100 to fetch a rough
|
|
1465
|
+
* "overshootDuration" - the moment when the generator first hits the animation target.
|
|
1466
|
+
* Then return animation settings that will run a normal animation for that duration.
|
|
1467
|
+
*/
|
|
1468
|
+
if (!settings) {
|
|
1430
1469
|
const keyframesMetadata = getKeyframes(getGenerator(0, 100));
|
|
1431
1470
|
settings = {
|
|
1432
1471
|
easing: "ease",
|
|
@@ -1438,7 +1477,6 @@
|
|
|
1438
1477
|
};
|
|
1439
1478
|
};
|
|
1440
1479
|
}
|
|
1441
|
-
const isNumberOrNull = (value) => typeof value !== "string";
|
|
1442
1480
|
|
|
1443
1481
|
const spring = createGeneratorEasing(spring$1);
|
|
1444
1482
|
|
|
@@ -2149,7 +2187,7 @@
|
|
|
2149
2187
|
}
|
|
2150
2188
|
if (hasChanged(prevTarget[key], target[key])) {
|
|
2151
2189
|
(_a = baseTarget[key]) !== null && _a !== void 0 ? _a : (baseTarget[key] = style.get(element, key));
|
|
2152
|
-
animationFactories.push(animateStyle(element, key, target[key], animationOptions[key]));
|
|
2190
|
+
animationFactories.push(animateStyle(element, key, target[key], animationOptions[key], Animation));
|
|
2153
2191
|
}
|
|
2154
2192
|
});
|
|
2155
2193
|
// Wait for all animation states to read from the DOM
|
|
@@ -2284,6 +2322,7 @@
|
|
|
2284
2322
|
exports.ScrollOffset = ScrollOffset;
|
|
2285
2323
|
exports.animate = animate;
|
|
2286
2324
|
exports.animateStyle = animateStyle;
|
|
2325
|
+
exports.createAnimate = createAnimate;
|
|
2287
2326
|
exports.createMotionState = createMotionState;
|
|
2288
2327
|
exports.createStyleString = createStyleString;
|
|
2289
2328
|
exports.createStyles = createStyles;
|
package/dist/size-index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
class t{setAnimation(t){this.animation=t,null==t||t.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const e=new WeakMap;function n(t){return e.has(t)||e.set(t,{transforms:[],values:new Map}),e.get(t)}function i(t,e){-1===t.indexOf(e)&&t.push(e)}function r(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const o=(t,e,n)=>Math.min(Math.max(n,t),e),s={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},a=t=>"number"==typeof t,c=t=>Array.isArray(t)&&!a(t[0]);function l(t,e){return c(t)?t[((t,e,n)=>{const i=e-t;return((n-t)%i+i)%i+t})(0,t.length,e)]:t}const u=(t,e,n)=>-n*t+n*e+t,f=()=>{},h=t=>t,d=(t,e,n)=>e-t==0?1:(n-t)/(e-t);function p(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=d(0,e,i);t.push(u(n,1,r))}}function g(t){const e=[0];return p(e,t-1),e}function m(t,e=g(t.length),n=h){const i=t.length,r=i-e.length;return r>0&&p(e,r),r=>{let s=0;for(;s<i-2&&!(r<e[s+1]);s++);let a=o(0,1,d(e[s],e[s+1],r));return a=l(n,s)(a),u(t[s],t[s+1],a)}}const v=t=>Array.isArray(t)&&a(t[0]),y=t=>"object"==typeof t&&Boolean(t.createAnimation),w=t=>"function"==typeof t,b=t=>"string"==typeof t,E=t=>1e3*t,O=t=>t/1e3;function x(t,e){return e?t*(1e3/e):0}const T=["","X","Y","Z"],M={x:"translateX",y:"translateY",z:"translateZ"},A={syntax:"<angle>",initialValue:"0deg",toDefaultUnit:t=>t+"deg"},S={translate:{syntax:"<length-percentage>",initialValue:"0px",toDefaultUnit:t=>t+"px"},rotate:A,scale:{syntax:"<number>",initialValue:1,toDefaultUnit:h},skew:A},D=new Map,k=t=>`--motion-${t}`,L=["x","y","z"];["translate","scale","rotate","skew"].forEach((t=>{T.forEach((e=>{L.push(t+e),D.set(k(t+e),S[t])}))}));const W=(t,e)=>L.indexOf(t)-L.indexOf(e),j=new Set(L),R=t=>j.has(t),B=t=>t.sort(W).reduce(z,"").trim(),z=(t,e)=>`${t} ${e}(var(${k(e)}))`,P=t=>t.startsWith("--"),V=new Set;const $=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t;function q(t,e,n,i){if(t===e&&n===i)return h;const r=e=>function(t,e,n,i,r){let o,s,a=0;do{s=e+(n-e)/2,o=$(s,i,r)-t,o>0?n=s:e=s}while(Math.abs(o)>1e-7&&++a<12);return s}(e,0,1,t,n);return t=>0===t||1===t?t:$(r(t),e,i)}const F={ease:q(.25,.1,.25,1),"ease-in":q(.42,0,1,1),"ease-in-out":q(.42,0,.58,1),"ease-out":q(0,0,.58,1)},C=/\((.*?)\)/;function H(t){if(w(t))return t;if(v(t))return q(...t);if(F[t])return F[t];if(t.startsWith("steps")){const e=C.exec(t);if(e){const t=e[1].split(",");return((t,e="end")=>n=>{const i=(n="end"===e?Math.min(n,.999):Math.max(n,.001))*t,r="end"===e?Math.floor(i):Math.ceil(i);return o(0,1,r/t)})(parseFloat(t[0]),t[1].trim())}}return h}class I{constructor(t,e=[0,1],{easing:n,duration:i=s.duration,delay:r=s.delay,endDelay:o=s.endDelay,repeat:a=s.repeat,offset:l,direction:u="normal"}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=h,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((t,e)=>{this.resolve=t,this.reject=e})),n=n||s.easing,y(n)){const t=n.createAnimation(e,(()=>"0"),!0);n=t.easing,void 0!==t.keyframes&&(e=t.keyframes),void 0!==t.duration&&(i=t.duration)}this.repeat=a,this.easing=c(n)?h:H(n),this.updateDuration(i);const f=m(e,l,c(n)?n.map(H):h);this.tick=e=>{var n;let i=0;i=void 0!==this.pauseTime?this.pauseTime:(e-this.startTime)*this.rate,this.t=i,i/=1e3,i=Math.max(i-r,0),"finished"===this.playState&&void 0===this.pauseTime&&(i=this.totalDuration);const s=i/this.duration;let a=Math.floor(s),c=s%1;!c&&s>=1&&(c=1),1===c&&a--;const l=a%2;("reverse"===u||"alternate"===u&&l||"alternate-reverse"===u&&!l)&&(c=1-c);const h=i>=this.totalDuration?1:Math.min(c,1),d=f(this.easing(h));t(d);void 0===this.pauseTime&&("finished"===this.playState||i>=this.totalDuration+o)?(this.playState="finished",null===(n=this.resolve)||void 0===n||n.call(this,d)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},this.play()}play(){const t=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var t;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(t=this.reject)||void 0===t||t.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t,this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}const U=(t,e)=>document.createElement("div").animate(t,e),N={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{U({opacity:[1]})}catch(t){return!1}return!0},finished:()=>Boolean(U({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{U({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}},_={},G={};for(const t in N)G[t]=()=>(void 0===_[t]&&(_[t]=N[t]()),_[t]);const Z=(t,e)=>w(t)?G.linearEasing()?`linear(${((t,e)=>{let n="";const i=Math.round(e/.015);for(let e=0;e<i;e++)n+=t(d(0,i-1,e))+", ";return n.substring(0,n.length-2)})(t,e)})`:s.easing:v(t)?K(t):t,K=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`;const X=t=>Array.isArray(t)?t:[t];function Y(t){return M[t]&&(t=M[t]),R(t)?k(t):t}const J={get:(t,e)=>{e=Y(e);let n=P(e)?t.style.getPropertyValue(e):getComputedStyle(t)[e];if(!n&&0!==n){const t=D.get(e);t&&(n=t.initialValue)}return n},set:(t,e,n)=>{e=Y(e),P(e)?t.style.setProperty(e,n):t.style[e]=n}};function Q(t,e=!0){if(t&&"finished"!==t.playState)try{t.stop?t.stop():(e&&t.commitStyles(),t.cancel())}catch(t){}}function tt(e,r,o,l={}){const u=window.__MOTION_DEV_TOOLS_RECORD,h=!1!==l.record&&u;let d,{duration:p=s.duration,delay:g=s.delay,endDelay:m=s.endDelay,repeat:v=s.repeat,easing:b=s.easing,direction:O,offset:x,allowWebkitAcceleration:T=!1}=l;const A=n(e),S=R(r);let k=G.waapi();S&&((t,e)=>{M[e]&&(e=M[e]);const{transforms:r}=n(t);i(r,e),t.style.transform=B(r)})(e,r);const L=Y(r),W=function(e,n){return e.has(n)||e.set(n,new t),e.get(n)}(A.values,L),j=D.get(L);return Q(W.animation,!(y(b)&&W.generator)&&!1!==l.record),()=>{const t=()=>{var t,n;return null!==(n=null!==(t=J.get(e,L))&&void 0!==t?t:null==j?void 0:j.initialValue)&&void 0!==n?n:0};let n=function(t,e){for(let n=0;n<t.length;n++)null===t[n]&&(t[n]=n?t[n-1]:e());return t}(X(o),t);if(y(b)){const e=b.createAnimation(n,t,S,L,W);b=e.easing,void 0!==e.keyframes&&(n=e.keyframes),void 0!==e.duration&&(p=e.duration)}if(P(L)&&(G.cssRegisterProperty()?function(t){if(!V.has(t)){V.add(t);try{const{syntax:e,initialValue:n}=D.has(t)?D.get(t):{};CSS.registerProperty({name:t,inherits:!1,syntax:e,initialValue:n})}catch(t){}}}(L):k=!1),S&&!G.linearEasing()&&(w(b)||c(b)&&b.some(w))&&(k=!1),k){j&&(n=n.map((t=>a(t)?j.toDefaultUnit(t):t))),1!==n.length||G.partialKeyframes()&&!h||n.unshift(t());const i={delay:E(g),duration:E(p),endDelay:E(m),easing:c(b)?void 0:Z(b,p),direction:O,iterations:v+1,fill:"both"};d=e.animate({[L]:n,offset:x,easing:c(b)?b.map((t=>Z(t,p))):void 0},i),d.finished||(d.finished=new Promise(((t,e)=>{d.onfinish=t,d.oncancel=e})));const r=n[n.length-1];d.finished.then((()=>{J.set(e,L,r),d.cancel()})).catch(f),T||(d.playbackRate=1.000001)}else if(S){n=n.map((t=>"string"==typeof t?parseFloat(t):t)),1===n.length&&n.unshift(parseFloat(t()));d=new I((t=>{j&&(t=j.toDefaultUnit(t)),J.set(e,L,t)}),n,Object.assign(Object.assign({},l),{duration:p,easing:b}))}else{const t=n[n.length-1];J.set(e,L,j&&a(t)?j.toDefaultUnit(t):t)}return h&&u(e,r,n,{duration:p,delay:g,easing:b,repeat:v,offset:x},"motion-one"),W.setAnimation(d),d}}const et=(t,e)=>t[e]?Object.assign(Object.assign({},t),t[e]):Object.assign({},t);function nt(t,e){var n;return"string"==typeof t?e?(null!==(n=e[t])&&void 0!==n||(e[t]=document.querySelectorAll(t)),t=e[t]):t=document.querySelectorAll(t):t instanceof Element&&(t=[t]),Array.from(t||[])}const it=t=>t(),rt=(t,e,n=s.duration)=>new Proxy({animations:t.map(it).filter(Boolean),duration:n,options:e},ot),ot={get:(t,e)=>{const n=t.animations[0];switch(e){case"duration":return t.duration;case"currentTime":return O((null==n?void 0:n[e])||0);case"playbackRate":case"playState":return null==n?void 0:n[e];case"finished":return t.finished||(t.finished=Promise.all(t.animations.map(st)).catch(f)),t.finished;case"stop":return()=>{t.animations.forEach((t=>Q(t)))};case"forEachNative":return e=>{t.animations.forEach((n=>e(n,t)))};default:return void 0===(null==n?void 0:n[e])?void 0:()=>t.animations.forEach((t=>t[e]()))}},set:(t,e,n)=>{switch(e){case"currentTime":n=E(n);case"currentTime":case"playbackRate":for(let i=0;i<t.animations.length;i++)t.animations[i][e]=n;return!0}return!1}},st=t=>t.finished;function at(t=.1,{start:e=0,from:n=0,easing:i}={}){return(r,o)=>{const s=a(n)?n:function(t,e){if("first"===t)return 0;{const n=e-1;return"last"===t?n:n/2}}(n,o),c=Math.abs(s-r);let l=t*c;if(i){const e=o*t;l=H(i)(l/e)*e}return e+l}}function ct(t,e,n){return w(t)?t(e,n):t}function lt(t,e,n={}){const i=(t=nt(t)).length,r=[];for(let o=0;o<i;o++){const s=t[o];for(const t in e){const a=et(n,t);a.delay=ct(a.delay,o,i);const c=tt(s,t,e[t],a);r.push(c)}}return rt(r,n,n.duration)}function ut(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}var ft=function(){};function ht(t,e,n,i){var r;return a(e)?e:e.startsWith("-")||e.startsWith("+")?Math.max(0,t+parseFloat(e)):"<"===e?n:null!==(r=i.get(e))&&void 0!==r?r:t}function dt(t,e,n,i,o,s){!function(t,e,n){for(let i=0;i<t.length;i++){const o=t[i];o.at>e&&o.at<n&&(r(t,o),i--)}}(t,o,s);for(let r=0;r<e.length;r++)t.push({value:e[r],at:u(o,s,i[r]),easing:l(n,r)})}function pt(t,e){return t.at===e.at?null===t.value?1:-1:t.at-e.at}function gt(t,e={}){var n;const i=function(t,e={}){var{defaultOptions:n={}}=e,i=ut(e,["defaultOptions"]);const r=[],o=new Map,a={},c=new Map;let l=0,u=0,f=0;for(let e=0;e<t.length;e++){const i=t[e];if(b(i)){c.set(i,u);continue}if(!Array.isArray(i)){c.set(i.name,ht(u,i.at,l,c));continue}const[r,h,d={}]=i;void 0!==d.at&&(u=ht(u,d.at,l,c));let m=0;const v=nt(r,a),w=v.length;for(let t=0;t<w;t++){const e=mt(v[t],o);for(const i in h){const r=vt(i,e);let o=X(h[i]);const a=et(d,i);let{duration:c=n.duration||s.duration,easing:l=n.easing||s.easing}=a;if(y(l)){const t=R(i);ft(2===o.length||!t,"spring must be provided 2 keyframes within timeline");const e=l.createAnimation(o,(()=>"0"),t);l=e.easing,void 0!==e.keyframes&&(o=e.keyframes),void 0!==e.duration&&(c=e.duration)}const v=ct(d.delay,t,w)||0,b=u+v,E=b+c;let{offset:O=g(o.length)}=a;1===O.length&&0===O[0]&&(O[1]=1);const x=length-o.length;x>0&&p(O,x),1===o.length&&o.unshift(null),dt(r,o,l,O,b,E),m=Math.max(v+c,m),f=Math.max(E,f)}}l=u,u+=m}return o.forEach(((t,e)=>{for(const o in t){const a=t[o];a.sort(pt);const c=[],l=[],u=[];for(let t=0;t<a.length;t++){const{at:e,value:n,easing:i}=a[t];c.push(n),l.push(d(0,f,e)),u.push(i||s.easing)}0!==l[0]&&(l.unshift(0),c.unshift(c[0]),u.unshift("linear")),1!==l[l.length-1]&&(l.push(1),c.push(null)),r.push([e,o,c,Object.assign(Object.assign(Object.assign({},n),{duration:f,easing:u,offset:l}),i)])}})),r}(t,e),r=i.map((t=>tt(...t))).filter(Boolean);return rt(r,e,null===(n=i[0])||void 0===n?void 0:n[3].duration)}function mt(t,e){return!e.has(t)&&e.set(t,{}),e.get(t)}function vt(t,e){return e[t]||(e[t]=[]),e[t]}"production"!==process.env.NODE_ENV&&(ft=function(t,e){if(!t)throw new Error(e)});function yt(t,e,n){const i=Math.max(e-5,0);return x(n-t(i),e-i)}const wt=100,bt=10,Et=1;const Ot=({stiffness:t=wt,damping:e=bt,mass:n=Et,from:i=0,to:r=1,velocity:o=0,restSpeed:s=2,restDistance:a=.5}={})=>{o=o?O(o):0;const c={done:!1,hasReachedTarget:!1,current:i,target:r},l=r-i,u=Math.sqrt(t/n)/1e3,f=((t=wt,e=bt,n=Et)=>e/(2*Math.sqrt(t*n)))(t,e,n);let h;if(f<1){const t=u*Math.sqrt(1-f*f);h=e=>r-Math.exp(-f*u*e)*((f*u*l-o)/t*Math.sin(t*e)+l*Math.cos(t*e))}else h=t=>r-Math.exp(-u*t)*(l+(u*l-o)*t);return t=>{c.current=h(t);const e=0===t?o:yt(h,t,c.current),n=Math.abs(e)<=s,l=Math.abs(r-c.current)<=a;var u,f,d;return c.done=n&&l,c.hasReachedTarget=(u=i,f=r,d=c.current,u<f&&d>=f||u>f&&d<=f),c}};function xt(t){const e=new WeakMap;return(n={})=>{const i=new Map,r=(e=0,r=100,o=0,s=!1)=>{const a=`${e}-${r}-${o}-${s}`;return i.has(a)||i.set(a,t(Object.assign({from:e,to:r,velocity:o,restSpeed:s?.05:2,restDistance:s?.01:.5},n))),i.get(a)},o=t=>(e.has(t)||e.set(t,function(t){let e,n=10,i=t(0);const r=[i.current];for(;!i.done&&n<1e4;)i=t(n),r.push(i.done?i.target:i.current),void 0===e&&i.hasReachedTarget&&(e=n),n+=10;const o=n-10;return 1===r.length&&r.push(i.current),{keyframes:r,duration:o/1e3,overshootDuration:(null!=e?e:o)/1e3}}(t)),e.get(t));return{createAnimation:(t,e,n,i,s)=>{var a,c;let l;const u=t.length;if(n&&u<=2&&t.every(Tt)){const n=t[u-1],f=1===u?null:t[0];let h=0,d=0;const p=null==s?void 0:s.generator;if(p){const{animation:e,generatorStartTime:n}=s,i=(null==e?void 0:e.startTime)||n||0,r=(null==e?void 0:e.currentTime)||performance.now()-i,o=p(r).current;d=null!==(a=f)&&void 0!==a?a:o,(1===u||2===u&&null===t[0])&&(h=yt((t=>p(t).current),r,o))}else d=null!==(c=f)&&void 0!==c?c:parseFloat(e());const g=r(d,n,h,null==i?void 0:i.includes("scale")),m=o(g);l=Object.assign(Object.assign({},m),{easing:"linear"}),s&&(s.generator=g,s.generatorStartTime=performance.now())}else{l={easing:"ease",duration:o(r(0,100)).overshootDuration}}return l}}}}const Tt=t=>"string"!=typeof t,Mt=xt(Ot),At=xt((({from:t=0,velocity:e=0,power:n=.8,decay:i=.325,bounceDamping:r,bounceStiffness:o,changeTarget:s,min:a,max:c,restDistance:l=.5,restSpeed:u})=>{i=E(i);const f={hasReachedTarget:!1,done:!1,current:t,target:t},h=t=>void 0===a?c:void 0===c||Math.abs(a-t)<Math.abs(c-t)?a:c;let d=n*e;const p=t+d,g=void 0===s?p:s(p);f.target=g,g!==p&&(d=g-t);const m=t=>-d*Math.exp(-t/i),v=t=>g+m(t),y=t=>{const e=m(t),n=v(t);f.done=Math.abs(e)<=l,f.current=f.done?g:n};let w,b;const O=t=>{var e;(e=f.current,void 0!==a&&e<a||void 0!==c&&e>c)&&(w=t,b=Ot({from:f.current,to:h(f.current),velocity:yt(v,t,f.current),damping:r,stiffness:o,restDistance:l,restSpeed:u}))};return O(0),t=>{let e=!1;return b||void 0!==w||(e=!0,y(t),O(t)),void 0!==w&&t>w?(f.hasReachedTarget=!0,b(t-w)):(f.hasReachedTarget=!1,!e&&y(t),f)}})),St={any:0,all:1};function Dt(t,e,{root:n,margin:i,amount:r="any"}={}){if("undefined"==typeof IntersectionObserver)return()=>{};const o=nt(t),s=new WeakMap,a=new IntersectionObserver((t=>{t.forEach((t=>{const n=s.get(t.target);if(t.isIntersecting!==Boolean(n))if(t.isIntersecting){const n=e(t);w(n)?s.set(t.target,n):a.unobserve(t.target)}else n&&(n(t),s.delete(t.target))}))}),{root:n,rootMargin:i,threshold:"number"==typeof r?r:St[r]});return o.forEach((t=>a.observe(t))),()=>a.disconnect()}const kt=new WeakMap;let Lt;function Wt({target:t,contentRect:e,borderBoxSize:n}){var i;null===(i=kt.get(t))||void 0===i||i.forEach((i=>{i({target:t,contentSize:e,get size(){return function(t,e){if(e){const{inlineSize:t,blockSize:n}=e[0];return{width:t,height:n}}return t instanceof SVGElement&&"getBBox"in t?t.getBBox():{width:t.offsetWidth,height:t.offsetHeight}}(t,n)}})}))}function jt(t){t.forEach(Wt)}function Rt(t,e){Lt||"undefined"!=typeof ResizeObserver&&(Lt=new ResizeObserver(jt));const n=nt(t);return n.forEach((t=>{let n=kt.get(t);n||(n=new Set,kt.set(t,n)),n.add(e),null==Lt||Lt.observe(t)})),()=>{n.forEach((t=>{const n=kt.get(t);null==n||n.delete(e),(null==n?void 0:n.size)||null==Lt||Lt.unobserve(t)}))}}const Bt=new Set;let zt;function Pt(t){return Bt.add(t),zt||(zt=()=>{const t={width:window.innerWidth,height:window.innerHeight},e={target:window,size:t,contentSize:t};Bt.forEach((t=>t(e)))},window.addEventListener("resize",zt)),()=>{Bt.delete(t),!Bt.size&&zt&&(zt=void 0)}}function Vt(t,e){return w(t)?Pt(t):Rt(t,e)}const $t={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function qt(t,e,n,i){const r=n[e],{length:o,position:s}=$t[e],a=r.current,c=n.time;r.current=t["scroll"+s],r.scrollLength=t["scroll"+o]-t["client"+o],r.offset.length=0,r.offset[0]=0,r.offset[1]=r.scrollLength,r.progress=d(0,r.scrollLength,r.current);const l=i-c;r.velocity=l>50?0:x(r.current-a,l)}const Ft={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},Ct={start:0,center:.5,end:1};function Ht(t,e,n=0){let i=0;if(void 0!==Ct[t]&&(t=Ct[t]),b(t)){const e=parseFloat(t);t.endsWith("px")?i=e:t.endsWith("%")?t=e/100:t.endsWith("vw")?i=e/100*document.documentElement.clientWidth:t.endsWith("vh")?i=e/100*document.documentElement.clientHeight:t=e}return a(t)&&(i=e*t),n+i}const It=[0,0];function Ut(t,e,n,i){let r=Array.isArray(t)?t:It,o=0,s=0;return a(t)?r=[t,t]:b(t)&&(r=(t=t.trim()).includes(" ")?t.split(" "):[t,Ct[t]?t:"0"]),o=Ht(r[0],n,i),s=Ht(r[1],e),o-s}const Nt={x:0,y:0};function _t(t,e,n){let{offset:i=Ft.All}=n;const{target:r=t,axis:o="y"}=n,s="y"===o?"height":"width",a=r!==t?function(t,e){let n={x:0,y:0},i=t;for(;i&&i!==e;)if(i instanceof HTMLElement)n.x+=i.offsetLeft,n.y+=i.offsetTop,i=i.offsetParent;else if(i instanceof SVGGraphicsElement&&"getBBox"in i){const{top:t,left:e}=i.getBBox();for(n.x+=e,n.y+=t;i&&"svg"!==i.tagName;)i=i.parentNode}return n}(r,t):Nt,c=r===t?{width:t.scrollWidth,height:t.scrollHeight}:{width:r.clientWidth,height:r.clientHeight},l={width:t.clientWidth,height:t.clientHeight};e[o].offset.length=0;let u=!e[o].interpolate;const f=i.length;for(let t=0;t<f;t++){const n=Ut(i[t],l[s],c[s],a[o]);u||n===e[o].interpolatorOffsets[t]||(u=!0),e[o].offset[t]=n}u&&(e[o].interpolate=m(g(f),e[o].offset),e[o].interpolatorOffsets=[...e[o].offset]),e[o].progress=e[o].interpolate(e[o].current)}function Gt(t,e,n,i={}){const r=i.axis||"y";return{measure:()=>function(t,e=t,n){if(n.x.targetOffset=0,n.y.targetOffset=0,e!==t){let i=e;for(;i&&i!=t;)n.x.targetOffset+=i.offsetLeft,n.y.targetOffset+=i.offsetTop,i=i.offsetParent}n.x.targetLength=e===t?e.scrollWidth:e.clientWidth,n.y.targetLength=e===t?e.scrollHeight:e.clientHeight,n.x.containerLength=t.clientWidth,n.y.containerLength=t.clientHeight}(t,i.target,n),update:e=>{!function(t,e,n){qt(t,"x",e,n),qt(t,"y",e,n),e.time=n}(t,n,e),(i.offset||i.target)&&_t(t,n,i)},notify:w(e)?()=>e(n):Zt(e,n[r])}}function Zt(t,e){return t.pause(),t.forEachNative(((t,{easing:e})=>{var n,i;if(t.updateDuration)e||(t.easing=h),t.updateDuration(1);else{const r={duration:1e3};e||(r.easing="linear"),null===(i=null===(n=t.effect)||void 0===n?void 0:n.updateTiming)||void 0===i||i.call(n,r)}})),()=>{t.currentTime=e.progress}}const Kt=new WeakMap,Xt=new WeakMap,Yt=new WeakMap,Jt=t=>t===document.documentElement?window:t;function Qt(t,e={}){var{container:n=document.documentElement}=e,i=ut(e,["container"]);let r=Yt.get(n);r||(r=new Set,Yt.set(n,r));const o=Gt(n,t,{time:0,x:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0},y:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}},i);if(r.add(o),!Kt.has(n)){const t=()=>{const t=performance.now();for(const t of r)t.measure();for(const e of r)e.update(t);for(const t of r)t.notify()};Kt.set(n,t);const e=Jt(n);window.addEventListener("resize",t,{passive:!0}),n!==document.documentElement&&Xt.set(n,Vt(n,t)),e.addEventListener("scroll",t,{passive:!0})}const s=Kt.get(n),a=requestAnimationFrame(s);return()=>{var e;"function"!=typeof t&&t.stop(),cancelAnimationFrame(a);const i=Yt.get(n);if(!i)return;if(i.delete(o),i.size)return;const r=Kt.get(n);Kt.delete(n),r&&(Jt(n).removeEventListener("scroll",r),null===(e=Xt.get(n))||void 0===e||e(),window.removeEventListener("resize",r))}}function te(t,e){return function(t){return"object"==typeof t}(t)?t:t&&e?e[t]:void 0}let ee;function ne(){if(!ee)return;const t=ee.sort(re).map(oe);t.forEach(se),t.forEach(se),ee=void 0}function ie(t){ee?i(ee,t):(ee=[t],requestAnimationFrame(ne))}const re=(t,e)=>t.getDepth()-e.getDepth(),oe=t=>t.animateUpdates(),se=t=>t.next(),ae=(t,e)=>new CustomEvent(t,{detail:{target:e}});function ce(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEvent:n}}))}function le(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEntry:n}}))}const ue=(t,e,n)=>i=>{i.pointerType&&"mouse"!==i.pointerType||(n(),ce(t,e,i))},fe={inView:{isActive:t=>Boolean(t.inView),subscribe:(t,{enable:e,disable:n},{inViewOptions:i={}})=>{const{once:r}=i,o=ut(i,["once"]);return Dt(t,(i=>{if(e(),le(t,"viewenter",i),!r)return e=>{n(),le(t,"viewleave",e)}}),o)}},hover:{isActive:t=>Boolean(t.hover),subscribe:(t,{enable:e,disable:n})=>{const i=ue(t,"hoverstart",e),r=ue(t,"hoverend",n);return t.addEventListener("pointerenter",i),t.addEventListener("pointerleave",r),()=>{t.removeEventListener("pointerenter",i),t.removeEventListener("pointerleave",r)}}},press:{isActive:t=>Boolean(t.press),subscribe:(t,{enable:e,disable:n})=>{const i=e=>{n(),ce(t,"pressend",e),window.removeEventListener("pointerup",i)},r=n=>{e(),ce(t,"pressstart",n),window.addEventListener("pointerup",i)};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r),window.removeEventListener("pointerup",i)}}}},he=["initial","animate",...Object.keys(fe),"exit"],de=new WeakMap;function pe(t={},e){let n,i=e?e.getDepth()+1:0;const o={initial:!0,animate:!0},s={},a={};for(const n of he)a[n]="string"==typeof t[n]?t[n]:null==e?void 0:e.getContext()[n];const c=!1===t.initial?"animate":"initial";let l=ut(te(t[c]||a[c],t.variants)||{},["transition"]);const u=Object.assign({},l);const h=(t,e)=>()=>{o[t]=e,ie(p)},d=()=>{for(const e in fe){const i=fe[e].isActive(t),r=s[e];i&&!r?s[e]=fe[e].subscribe(n,{enable:h(e,!0),disable:h(e,!1)},t):!i&&r&&(r(),delete s[e])}},p={update:e=>{n&&(t=e,d(),ie(p))},setActive:(t,e)=>{n&&(o[t]=e,ie(p))},animateUpdates:function*(){var e,i;const r=l;l={};const s={};for(const n of he){if(!o[n])continue;const r=te(t[n]);if(r)for(const n in r)"transition"!==n&&(l[n]=r[n],s[n]=et(null!==(i=null!==(e=r.transition)&&void 0!==e?e:t.transition)&&void 0!==i?i:{},n))}const a=new Set([...Object.keys(l),...Object.keys(r)]),c=[];a.forEach((t=>{var e,i,o;void 0===l[t]&&(l[t]=u[t]),i=r[t],o=l[t],typeof i==typeof o&&(Array.isArray(i)&&Array.isArray(o)?function(t,e){const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}(i,o):i===o)||(null!==(e=u[t])&&void 0!==e||(u[t]=J.get(n,t)),c.push(tt(n,t,l[t],s[t])))})),yield;const h=c.map((t=>t())).filter(Boolean);if(!h.length)return;const d=l;n.dispatchEvent(ae("motionstart",d)),Promise.all(h.map((t=>t.finished))).then((()=>{n.dispatchEvent(ae("motioncomplete",d))})).catch(f)},getDepth:()=>i,getTarget:()=>l,getOptions:()=>t,getContext:()=>a,mount:t=>(ft(Boolean(t),"Animation state must be mounted with valid Element"),n=t,de.set(n,p),d(),()=>{de.delete(n),function(t){ee&&r(ee,t)}(p);for(const t in s)s[t]()}),isMounted:()=>Boolean(n)};return p}function ge(t){const e={},n=[];for(let i in t){const r=t[i];R(i)&&(M[i]&&(i=M[i]),n.push(i),i=k(i));let o=Array.isArray(r)?r[0]:r;const s=D.get(i);s&&(o=a(r)?s.toDefaultUnit(r):r),e[i]=o}return n.length&&(e.transform=B(n)),e}const me=t=>`-${t.toLowerCase()}`;function ve(t={}){const e=ge(t);let n="";for(const t in e)n+=t.startsWith("--")?t:t.replace(/[A-Z]/g,me),n+=`: ${e[t]}; `;return n}function ye(t,e={}){return rt([()=>{const n=new I(t,[0,1],e);return n.finished.catch((()=>{})),n}],e,e.duration)}function we(t,e,n){return(w(t)?ye:lt)(t,e,n)}export{t as MotionValue,Ft as ScrollOffset,we as animate,tt as animateStyle,pe as createMotionState,ve as createStyleString,ge as createStyles,n as getAnimationData,Y as getStyleName,At as glide,Dt as inView,de as mountedStates,Vt as resize,Qt as scroll,Mt as spring,at as stagger,J as style,gt as timeline,rt as withControls};
|
|
1
|
+
function t(t,e){-1===t.indexOf(e)&&t.push(e)}function e(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const n=(t,e,n)=>Math.min(Math.max(n,t),e),i={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},r=t=>"number"==typeof t,o=t=>Array.isArray(t)&&!r(t[0]);function s(t,e){return o(t)?t[((t,e,n)=>{const i=e-t;return((n-t)%i+i)%i+t})(0,t.length,e)]:t}const a=(t,e,n)=>-n*t+n*e+t,c=()=>{},l=t=>t,u=(t,e,n)=>e-t==0?1:(n-t)/(e-t);function f(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=u(0,e,i);t.push(a(n,1,r))}}function h(t){const e=[0];return f(e,t-1),e}function d(t,e=h(t.length),i=l){const r=t.length,o=r-e.length;return o>0&&f(e,o),o=>{let c=0;for(;c<r-2&&!(o<e[c+1]);c++);let l=n(0,1,u(e[c],e[c+1],o));return l=s(i,c)(l),a(t[c],t[c+1],l)}}const p=t=>Array.isArray(t)&&r(t[0]),g=t=>"object"==typeof t&&Boolean(t.createAnimation),m=t=>"function"==typeof t,v=t=>"string"==typeof t,y=t=>1e3*t,w=t=>t/1e3;function b(t,e){return e?t*(1e3/e):0}const E=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t;function O(t,e,n,i){if(t===e&&n===i)return l;const r=e=>function(t,e,n,i,r){let o,s,a=0;do{s=e+(n-e)/2,o=E(s,i,r)-t,o>0?n=s:e=s}while(Math.abs(o)>1e-7&&++a<12);return s}(e,0,1,t,n);return t=>0===t||1===t?t:E(r(t),e,i)}const x={ease:O(.25,.1,.25,1),"ease-in":O(.42,0,1,1),"ease-in-out":O(.42,0,.58,1),"ease-out":O(0,0,.58,1)},T=/\((.*?)\)/;function M(t){if(m(t))return t;if(p(t))return O(...t);if(x[t])return x[t];if(t.startsWith("steps")){const e=T.exec(t);if(e){const t=e[1].split(",");return((t,e="end")=>i=>{const r=(i="end"===e?Math.min(i,.999):Math.max(i,.001))*t,o="end"===e?Math.floor(r):Math.ceil(r);return n(0,1,o/t)})(parseFloat(t[0]),t[1].trim())}}return l}class A{constructor(t,e=[0,1],{easing:n,duration:r=i.duration,delay:s=i.delay,endDelay:a=i.endDelay,repeat:c=i.repeat,offset:u,direction:f="normal"}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=l,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((t,e)=>{this.resolve=t,this.reject=e})),n=n||i.easing,g(n)){const t=n.createAnimation(e);n=t.easing,e=t.keyframes||e,r=t.duration||r}this.repeat=c,this.easing=o(n)?l:M(n),this.updateDuration(r);const h=d(e,u,o(n)?n.map(M):l);this.tick=e=>{var n;let i=0;i=void 0!==this.pauseTime?this.pauseTime:(e-this.startTime)*this.rate,this.t=i,i/=1e3,i=Math.max(i-s,0),"finished"===this.playState&&void 0===this.pauseTime&&(i=this.totalDuration);const r=i/this.duration;let o=Math.floor(r),c=r%1;!c&&r>=1&&(c=1),1===c&&o--;const l=o%2;("reverse"===f||"alternate"===f&&l||"alternate-reverse"===f&&!l)&&(c=1-c);const u=i>=this.totalDuration?1:Math.min(c,1),d=h(this.easing(u));t(d);void 0===this.pauseTime&&("finished"===this.playState||i>=this.totalDuration+a)?(this.playState="finished",null===(n=this.resolve)||void 0===n||n.call(this,d)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},this.play()}play(){const t=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var t;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(t=this.reject)||void 0===t||t.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t,this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}class S{setAnimation(t){this.animation=t,null==t||t.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const D=new WeakMap;function L(t){return D.has(t)||D.set(t,{transforms:[],values:new Map}),D.get(t)}const k=["","X","Y","Z"],W={x:"translateX",y:"translateY",z:"translateZ"},j={syntax:"<angle>",initialValue:"0deg",toDefaultUnit:t=>t+"deg"},R={translate:{syntax:"<length-percentage>",initialValue:"0px",toDefaultUnit:t=>t+"px"},rotate:j,scale:{syntax:"<number>",initialValue:1,toDefaultUnit:l},skew:j},B=new Map,z=t=>`--motion-${t}`,P=["x","y","z"];["translate","scale","rotate","skew"].forEach((t=>{k.forEach((e=>{P.push(t+e),B.set(z(t+e),R[t])}))}));const V=(t,e)=>P.indexOf(t)-P.indexOf(e),$=new Set(P),q=t=>$.has(t),F=t=>t.sort(V).reduce(C,"").trim(),C=(t,e)=>`${t} ${e}(var(${z(e)}))`,H=t=>t.startsWith("--"),I=new Set;const N=(t,e)=>document.createElement("div").animate(t,e),U={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{N({opacity:[1]})}catch(t){return!1}return!0},finished:()=>Boolean(N({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{N({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}},_={},G={};for(const t in U)G[t]=()=>(void 0===_[t]&&(_[t]=U[t]()),_[t]);const Z=(t,e)=>m(t)?G.linearEasing()?`linear(${((t,e)=>{let n="";const i=Math.round(e/.015);for(let e=0;e<i;e++)n+=t(u(0,i-1,e))+", ";return n.substring(0,n.length-2)})(t,e)})`:i.easing:p(t)?K(t):t,K=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`;const X=t=>Array.isArray(t)?t:[t];function Y(t){return W[t]&&(t=W[t]),q(t)?z(t):t}const J={get:(t,e)=>{e=Y(e);let n=H(e)?t.style.getPropertyValue(e):getComputedStyle(t)[e];if(!n&&0!==n){const t=B.get(e);t&&(n=t.initialValue)}return n},set:(t,e,n)=>{e=Y(e),H(e)?t.style.setProperty(e,n):t.style[e]=n}};function Q(t,e=!0){if(t&&"finished"!==t.playState)try{t.stop?t.stop():(e&&t.commitStyles(),t.cancel())}catch(t){}}function tt(t,e){var n;let i=(null==e?void 0:e.toDefaultUnit)||l;const r=t[t.length-1];if(v(r)){const t=(null===(n=r.match(/(-?[\d.]+)([a-z%]*)/))||void 0===n?void 0:n[2])||"";t&&(i=e=>e+t)}return i}function et(e,n,s,a={},l){const u=window.__MOTION_DEV_TOOLS_RECORD,f=!1!==a.record&&u;let h,{duration:d=i.duration,delay:p=i.delay,endDelay:v=i.endDelay,repeat:w=i.repeat,easing:b=i.easing,direction:E,offset:O,allowWebkitAcceleration:x=!1}=a;const T=L(e),M=q(n);let A=G.waapi();M&&((e,n)=>{W[n]&&(n=W[n]);const{transforms:i}=L(e);t(i,n),e.style.transform=F(i)})(e,n);const D=Y(n),k=function(t,e){return t.has(e)||t.set(e,new S),t.get(e)}(T.values,D),j=B.get(D);return Q(k.animation,!(g(b)&&k.generator)&&!1!==a.record),()=>{const t=()=>{var t,n;return null!==(n=null!==(t=J.get(e,D))&&void 0!==t?t:null==j?void 0:j.initialValue)&&void 0!==n?n:0};let i=function(t,e){for(let n=0;n<t.length;n++)null===t[n]&&(t[n]=n?t[n-1]:e());return t}(X(s),t);const T=tt(i,j);if(g(b)){const e=b.createAnimation(i,"opacity"!==n,t,D,k);b=e.easing,i=e.keyframes||i,d=e.duration||d}if(H(D)&&(G.cssRegisterProperty()?function(t){if(!I.has(t)){I.add(t);try{const{syntax:e,initialValue:n}=B.has(t)?B.get(t):{};CSS.registerProperty({name:t,inherits:!1,syntax:e,initialValue:n})}catch(t){}}}(D):A=!1),M&&!G.linearEasing()&&(m(b)||o(b)&&b.some(m))&&(A=!1),A){j&&(i=i.map((t=>r(t)?j.toDefaultUnit(t):t))),1!==i.length||G.partialKeyframes()&&!f||i.unshift(t());const n={delay:y(p),duration:y(d),endDelay:y(v),easing:o(b)?void 0:Z(b,d),direction:E,iterations:w+1,fill:"both"};h=e.animate({[D]:i,offset:O,easing:o(b)?b.map((t=>Z(t,d))):void 0},n),h.finished||(h.finished=new Promise(((t,e)=>{h.onfinish=t,h.oncancel=e})));const s=i[i.length-1];h.finished.then((()=>{J.set(e,D,s),h.cancel()})).catch(c),x||(h.playbackRate=1.000001)}else if(l&&M)i=i.map((t=>"string"==typeof t?parseFloat(t):t)),1===i.length&&i.unshift(parseFloat(t())),h=new l((t=>{J.set(e,D,T?T(t):t)}),i,Object.assign(Object.assign({},a),{duration:d,easing:b}));else{const t=i[i.length-1];J.set(e,D,j&&r(t)?j.toDefaultUnit(t):t)}return f&&u(e,n,i,{duration:d,delay:p,easing:b,repeat:w,offset:O},"motion-one"),k.setAnimation(h),h}}const nt=(t,e)=>t[e]?Object.assign(Object.assign({},t),t[e]):Object.assign({},t);function it(t,e){var n;return"string"==typeof t?e?(null!==(n=e[t])&&void 0!==n||(e[t]=document.querySelectorAll(t)),t=e[t]):t=document.querySelectorAll(t):t instanceof Element&&(t=[t]),Array.from(t||[])}const rt=t=>t(),ot=(t,e,n=i.duration)=>new Proxy({animations:t.map(rt).filter(Boolean),duration:n,options:e},st),st={get:(t,e)=>{const n=t.animations[0];switch(e){case"duration":return t.duration;case"currentTime":return w((null==n?void 0:n[e])||0);case"playbackRate":case"playState":return null==n?void 0:n[e];case"finished":return t.finished||(t.finished=Promise.all(t.animations.map(at)).catch(c)),t.finished;case"stop":return()=>{t.animations.forEach((t=>Q(t)))};case"forEachNative":return e=>{t.animations.forEach((n=>e(n,t)))};default:return void 0===(null==n?void 0:n[e])?void 0:()=>t.animations.forEach((t=>t[e]()))}},set:(t,e,n)=>{switch(e){case"currentTime":n=y(n);case"currentTime":case"playbackRate":for(let i=0;i<t.animations.length;i++)t.animations[i][e]=n;return!0}return!1}},at=t=>t.finished;function ct(t=.1,{start:e=0,from:n=0,easing:i}={}){return(o,s)=>{const a=r(n)?n:function(t,e){if("first"===t)return 0;{const n=e-1;return"last"===t?n:n/2}}(n,s),c=Math.abs(a-o);let l=t*c;if(i){const e=s*t;l=M(i)(l/e)*e}return e+l}}function lt(t,e,n){return m(t)?t(e,n):t}function ut(t){return function(e,n,i={}){const r=(e=it(e)).length,o=[];for(let s=0;s<r;s++){const a=e[s];for(const e in n){const c=nt(i,e);c.delay=lt(c.delay,s,r);const l=et(a,e,n[e],c,t);o.push(l)}}return ot(o,i,i.duration)}}const ft=ut(A);function ht(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]])}return n}var dt=function(){};function pt(t,e,n,i){var o;return r(e)?e:e.startsWith("-")||e.startsWith("+")?Math.max(0,t+parseFloat(e)):"<"===e?n:null!==(o=i.get(e))&&void 0!==o?o:t}function gt(t,n,i,r,o,c){!function(t,n,i){for(let r=0;r<t.length;r++){const o=t[r];o.at>n&&o.at<i&&(e(t,o),r--)}}(t,o,c);for(let e=0;e<n.length;e++)t.push({value:n[e],at:a(o,c,r[e]),easing:s(i,e)})}function mt(t,e){return t.at===e.at?null===t.value?1:-1:t.at-e.at}function vt(t,e={}){var n;const r=function(t,e={}){var{defaultOptions:n={}}=e,r=ht(e,["defaultOptions"]);const o=[],s=new Map,a={},c=new Map;let l=0,d=0,p=0;for(let e=0;e<t.length;e++){const r=t[e];if(v(r)){c.set(r,d);continue}if(!Array.isArray(r)){c.set(r.name,pt(d,r.at,l,c));continue}const[o,u,m={}]=r;void 0!==m.at&&(d=pt(d,m.at,l,c));let y=0;const w=it(o,a),b=w.length;for(let t=0;t<b;t++){const e=yt(w[t],s);for(const r in u){const o=wt(r,e);let s=X(u[r]);const a=nt(m,r);let{duration:c=n.duration||i.duration,easing:l=n.easing||i.easing}=a;if(g(l)){dt("opacity"===r||s.length>1,"spring must be provided 2 keyframes within timeline()");const t=l.createAnimation(s,"opacity"!==r,(()=>0),r);l=t.easing,s=t.keyframes||s,c=t.duration||c}const v=lt(m.delay,t,b)||0,w=d+v,E=w+c;let{offset:O=h(s.length)}=a;1===O.length&&0===O[0]&&(O[1]=1);const x=length-s.length;x>0&&f(O,x),1===s.length&&s.unshift(null),gt(o,s,l,O,w,E),y=Math.max(v+c,y),p=Math.max(E,p)}}l=d,d+=y}return s.forEach(((t,e)=>{for(const s in t){const a=t[s];a.sort(mt);const c=[],l=[],f=[];for(let t=0;t<a.length;t++){const{at:e,value:n,easing:r}=a[t];c.push(n),l.push(u(0,p,e)),f.push(r||i.easing)}0!==l[0]&&(l.unshift(0),c.unshift(c[0]),f.unshift("linear")),1!==l[l.length-1]&&(l.push(1),c.push(null)),o.push([e,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:p,easing:f,offset:l}),r)])}})),o}(t,e),o=r.map((t=>et(...t,A))).filter(Boolean);return ot(o,e,null===(n=r[0])||void 0===n?void 0:n[3].duration)}function yt(t,e){return!e.has(t)&&e.set(t,{}),e.get(t)}function wt(t,e){return e[t]||(e[t]=[]),e[t]}"production"!==process.env.NODE_ENV&&(dt=function(t,e){if(!t)throw new Error(e)});function bt(t,e,n){const i=Math.max(e-5,0);return b(n-t(i),e-i)}const Et=100,Ot=10,xt=1;const Tt=({stiffness:t=Et,damping:e=Ot,mass:n=xt,from:i=0,to:r=1,velocity:o=0,restSpeed:s=2,restDistance:a=.5}={})=>{o=o?w(o):0;const c={done:!1,hasReachedTarget:!1,current:i,target:r},l=r-i,u=Math.sqrt(t/n)/1e3,f=((t=Et,e=Ot,n=xt)=>e/(2*Math.sqrt(t*n)))(t,e,n);let h;if(f<1){const t=u*Math.sqrt(1-f*f);h=e=>r-Math.exp(-f*u*e)*((f*u*l-o)/t*Math.sin(t*e)+l*Math.cos(t*e))}else h=t=>r-Math.exp(-u*t)*(l+(u*l-o)*t);return t=>{c.current=h(t);const e=0===t?o:bt(h,t,c.current),n=Math.abs(e)<=s,l=Math.abs(r-c.current)<=a;var u,f,d;return c.done=n&&l,c.hasReachedTarget=(u=i,f=r,d=c.current,u<f&&d>=f||u>f&&d<=f),c}};function Mt(t){return r(t)&&!isNaN(t)}function At(t){return v(t)?parseFloat(t):t}function St(t){const e=new WeakMap;return(n={})=>{const i=new Map,r=(e=0,r=100,o=0,s=!1)=>{const a=`${e}-${r}-${o}-${s}`;return i.has(a)||i.set(a,t(Object.assign({from:e,to:r,velocity:o,restSpeed:s?.05:2,restDistance:s?.01:.5},n))),i.get(a)},o=(t,n)=>(e.has(t)||e.set(t,function(t,e=l){let n,i=10,r=t(0);const o=[e(r.current)];for(;!r.done&&i<1e4;)r=t(i),o.push(e(r.done?r.target:r.current)),void 0===n&&r.hasReachedTarget&&(n=i),i+=10;const s=i-10;return 1===o.length&&o.push(r.current),{keyframes:o,duration:s/1e3,overshootDuration:(null!=n?n:s)/1e3}}(t,n)),e.get(t));return{createAnimation:(t,e=!0,n,i,s)=>{let a,c,u,f=0,h=l;const d=t.length;if(e){h=tt(t,i?B.get(Y(i)):void 0);if(u=At(t[d-1]),d>1&&null!==t[0])c=At(t[0]);else{const t=null==s?void 0:s.generator;if(t){const{animation:e,generatorStartTime:n}=s,i=(null==e?void 0:e.startTime)||n||0,r=(null==e?void 0:e.currentTime)||performance.now()-i,o=t(r).current;c=o,f=bt((e=>t(e).current),r,o)}else n&&(c=At(n()))}}if(Mt(c)&&Mt(u)){const t=r(c,u,f,null==i?void 0:i.includes("scale"));a=Object.assign(Object.assign({},o(t,h)),{easing:"linear"}),s&&(s.generator=t,s.generatorStartTime=performance.now())}if(!a){a={easing:"ease",duration:o(r(0,100)).overshootDuration}}return a}}}}const Dt=St(Tt),Lt=St((({from:t=0,velocity:e=0,power:n=.8,decay:i=.325,bounceDamping:r,bounceStiffness:o,changeTarget:s,min:a,max:c,restDistance:l=.5,restSpeed:u})=>{i=y(i);const f={hasReachedTarget:!1,done:!1,current:t,target:t},h=t=>void 0===a?c:void 0===c||Math.abs(a-t)<Math.abs(c-t)?a:c;let d=n*e;const p=t+d,g=void 0===s?p:s(p);f.target=g,g!==p&&(d=g-t);const m=t=>-d*Math.exp(-t/i),v=t=>g+m(t),w=t=>{const e=m(t),n=v(t);f.done=Math.abs(e)<=l,f.current=f.done?g:n};let b,E;const O=t=>{var e;(e=f.current,void 0!==a&&e<a||void 0!==c&&e>c)&&(b=t,E=Tt({from:f.current,to:h(f.current),velocity:bt(v,t,f.current),damping:r,stiffness:o,restDistance:l,restSpeed:u}))};return O(0),t=>{let e=!1;return E||void 0!==b||(e=!0,w(t),O(t)),void 0!==b&&t>b?(f.hasReachedTarget=!0,E(t-b)):(f.hasReachedTarget=!1,!e&&w(t),f)}})),kt={any:0,all:1};function Wt(t,e,{root:n,margin:i,amount:r="any"}={}){if("undefined"==typeof IntersectionObserver)return()=>{};const o=it(t),s=new WeakMap,a=new IntersectionObserver((t=>{t.forEach((t=>{const n=s.get(t.target);if(t.isIntersecting!==Boolean(n))if(t.isIntersecting){const n=e(t);m(n)?s.set(t.target,n):a.unobserve(t.target)}else n&&(n(t),s.delete(t.target))}))}),{root:n,rootMargin:i,threshold:"number"==typeof r?r:kt[r]});return o.forEach((t=>a.observe(t))),()=>a.disconnect()}const jt=new WeakMap;let Rt;function Bt({target:t,contentRect:e,borderBoxSize:n}){var i;null===(i=jt.get(t))||void 0===i||i.forEach((i=>{i({target:t,contentSize:e,get size(){return function(t,e){if(e){const{inlineSize:t,blockSize:n}=e[0];return{width:t,height:n}}return t instanceof SVGElement&&"getBBox"in t?t.getBBox():{width:t.offsetWidth,height:t.offsetHeight}}(t,n)}})}))}function zt(t){t.forEach(Bt)}function Pt(t,e){Rt||"undefined"!=typeof ResizeObserver&&(Rt=new ResizeObserver(zt));const n=it(t);return n.forEach((t=>{let n=jt.get(t);n||(n=new Set,jt.set(t,n)),n.add(e),null==Rt||Rt.observe(t)})),()=>{n.forEach((t=>{const n=jt.get(t);null==n||n.delete(e),(null==n?void 0:n.size)||null==Rt||Rt.unobserve(t)}))}}const Vt=new Set;let $t;function qt(t){return Vt.add(t),$t||($t=()=>{const t={width:window.innerWidth,height:window.innerHeight},e={target:window,size:t,contentSize:t};Vt.forEach((t=>t(e)))},window.addEventListener("resize",$t)),()=>{Vt.delete(t),!Vt.size&&$t&&($t=void 0)}}function Ft(t,e){return m(t)?qt(t):Pt(t,e)}const Ct={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function Ht(t,e,n,i){const r=n[e],{length:o,position:s}=Ct[e],a=r.current,c=n.time;r.current=t["scroll"+s],r.scrollLength=t["scroll"+o]-t["client"+o],r.offset.length=0,r.offset[0]=0,r.offset[1]=r.scrollLength,r.progress=u(0,r.scrollLength,r.current);const l=i-c;r.velocity=l>50?0:b(r.current-a,l)}const It={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},Nt={start:0,center:.5,end:1};function Ut(t,e,n=0){let i=0;if(void 0!==Nt[t]&&(t=Nt[t]),v(t)){const e=parseFloat(t);t.endsWith("px")?i=e:t.endsWith("%")?t=e/100:t.endsWith("vw")?i=e/100*document.documentElement.clientWidth:t.endsWith("vh")?i=e/100*document.documentElement.clientHeight:t=e}return r(t)&&(i=e*t),n+i}const _t=[0,0];function Gt(t,e,n,i){let o=Array.isArray(t)?t:_t,s=0,a=0;return r(t)?o=[t,t]:v(t)&&(o=(t=t.trim()).includes(" ")?t.split(" "):[t,Nt[t]?t:"0"]),s=Ut(o[0],n,i),a=Ut(o[1],e),s-a}const Zt={x:0,y:0};function Kt(t,e,n){let{offset:i=It.All}=n;const{target:r=t,axis:o="y"}=n,s="y"===o?"height":"width",a=r!==t?function(t,e){let n={x:0,y:0},i=t;for(;i&&i!==e;)if(i instanceof HTMLElement)n.x+=i.offsetLeft,n.y+=i.offsetTop,i=i.offsetParent;else if(i instanceof SVGGraphicsElement&&"getBBox"in i){const{top:t,left:e}=i.getBBox();for(n.x+=e,n.y+=t;i&&"svg"!==i.tagName;)i=i.parentNode}return n}(r,t):Zt,c=r===t?{width:t.scrollWidth,height:t.scrollHeight}:{width:r.clientWidth,height:r.clientHeight},l={width:t.clientWidth,height:t.clientHeight};e[o].offset.length=0;let u=!e[o].interpolate;const f=i.length;for(let t=0;t<f;t++){const n=Gt(i[t],l[s],c[s],a[o]);u||n===e[o].interpolatorOffsets[t]||(u=!0),e[o].offset[t]=n}u&&(e[o].interpolate=d(h(f),e[o].offset),e[o].interpolatorOffsets=[...e[o].offset]),e[o].progress=e[o].interpolate(e[o].current)}function Xt(t,e,n,i={}){const r=i.axis||"y";return{measure:()=>function(t,e=t,n){if(n.x.targetOffset=0,n.y.targetOffset=0,e!==t){let i=e;for(;i&&i!=t;)n.x.targetOffset+=i.offsetLeft,n.y.targetOffset+=i.offsetTop,i=i.offsetParent}n.x.targetLength=e===t?e.scrollWidth:e.clientWidth,n.y.targetLength=e===t?e.scrollHeight:e.clientHeight,n.x.containerLength=t.clientWidth,n.y.containerLength=t.clientHeight}(t,i.target,n),update:e=>{!function(t,e,n){Ht(t,"x",e,n),Ht(t,"y",e,n),e.time=n}(t,n,e),(i.offset||i.target)&&Kt(t,n,i)},notify:m(e)?()=>e(n):Yt(e,n[r])}}function Yt(t,e){return t.pause(),t.forEachNative(((t,{easing:e})=>{var n,i;if(t.updateDuration)e||(t.easing=l),t.updateDuration(1);else{const r={duration:1e3};e||(r.easing="linear"),null===(i=null===(n=t.effect)||void 0===n?void 0:n.updateTiming)||void 0===i||i.call(n,r)}})),()=>{t.currentTime=e.progress}}const Jt=new WeakMap,Qt=new WeakMap,te=new WeakMap,ee=t=>t===document.documentElement?window:t;function ne(t,e={}){var{container:n=document.documentElement}=e,i=ht(e,["container"]);let r=te.get(n);r||(r=new Set,te.set(n,r));const o=Xt(n,t,{time:0,x:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0},y:{current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}},i);if(r.add(o),!Jt.has(n)){const t=()=>{const t=performance.now();for(const t of r)t.measure();for(const e of r)e.update(t);for(const t of r)t.notify()};Jt.set(n,t);const e=ee(n);window.addEventListener("resize",t,{passive:!0}),n!==document.documentElement&&Qt.set(n,Ft(n,t)),e.addEventListener("scroll",t,{passive:!0})}const s=Jt.get(n),a=requestAnimationFrame(s);return()=>{var e;"function"!=typeof t&&t.stop(),cancelAnimationFrame(a);const i=te.get(n);if(!i)return;if(i.delete(o),i.size)return;const r=Jt.get(n);Jt.delete(n),r&&(ee(n).removeEventListener("scroll",r),null===(e=Qt.get(n))||void 0===e||e(),window.removeEventListener("resize",r))}}function ie(t,e){return function(t){return"object"==typeof t}(t)?t:t&&e?e[t]:void 0}let re;function oe(){if(!re)return;const t=re.sort(ae).map(ce);t.forEach(le),t.forEach(le),re=void 0}function se(e){re?t(re,e):(re=[e],requestAnimationFrame(oe))}const ae=(t,e)=>t.getDepth()-e.getDepth(),ce=t=>t.animateUpdates(),le=t=>t.next(),ue=(t,e)=>new CustomEvent(t,{detail:{target:e}});function fe(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEvent:n}}))}function he(t,e,n){t.dispatchEvent(new CustomEvent(e,{detail:{originalEntry:n}}))}const de=(t,e,n)=>i=>{i.pointerType&&"mouse"!==i.pointerType||(n(),fe(t,e,i))},pe={inView:{isActive:t=>Boolean(t.inView),subscribe:(t,{enable:e,disable:n},{inViewOptions:i={}})=>{const{once:r}=i,o=ht(i,["once"]);return Wt(t,(i=>{if(e(),he(t,"viewenter",i),!r)return e=>{n(),he(t,"viewleave",e)}}),o)}},hover:{isActive:t=>Boolean(t.hover),subscribe:(t,{enable:e,disable:n})=>{const i=de(t,"hoverstart",e),r=de(t,"hoverend",n);return t.addEventListener("pointerenter",i),t.addEventListener("pointerleave",r),()=>{t.removeEventListener("pointerenter",i),t.removeEventListener("pointerleave",r)}}},press:{isActive:t=>Boolean(t.press),subscribe:(t,{enable:e,disable:n})=>{const i=e=>{n(),fe(t,"pressend",e),window.removeEventListener("pointerup",i)},r=n=>{e(),fe(t,"pressstart",n),window.addEventListener("pointerup",i)};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r),window.removeEventListener("pointerup",i)}}}},ge=["initial","animate",...Object.keys(pe),"exit"],me=new WeakMap;function ve(t={},n){let i,r=n?n.getDepth()+1:0;const o={initial:!0,animate:!0},s={},a={};for(const e of ge)a[e]="string"==typeof t[e]?t[e]:null==n?void 0:n.getContext()[e];const l=!1===t.initial?"animate":"initial";let u=ht(ie(t[l]||a[l],t.variants)||{},["transition"]);const f=Object.assign({},u);const h=(t,e)=>()=>{o[t]=e,se(p)},d=()=>{for(const e in pe){const n=pe[e].isActive(t),r=s[e];n&&!r?s[e]=pe[e].subscribe(i,{enable:h(e,!0),disable:h(e,!1)},t):!n&&r&&(r(),delete s[e])}},p={update:e=>{i&&(t=e,d(),se(p))},setActive:(t,e)=>{i&&(o[t]=e,se(p))},animateUpdates:function*(){var e,n;const r=u;u={};const s={};for(const i of ge){if(!o[i])continue;const r=ie(t[i]);if(r)for(const i in r)"transition"!==i&&(u[i]=r[i],s[i]=nt(null!==(n=null!==(e=r.transition)&&void 0!==e?e:t.transition)&&void 0!==n?n:{},i))}const a=new Set([...Object.keys(u),...Object.keys(r)]),l=[];a.forEach((t=>{var e,n,o;void 0===u[t]&&(u[t]=f[t]),n=r[t],o=u[t],typeof n==typeof o&&(Array.isArray(n)&&Array.isArray(o)?function(t,e){const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}(n,o):n===o)||(null!==(e=f[t])&&void 0!==e||(f[t]=J.get(i,t)),l.push(et(i,t,u[t],s[t],A)))})),yield;const h=l.map((t=>t())).filter(Boolean);if(!h.length)return;const d=u;i.dispatchEvent(ue("motionstart",d)),Promise.all(h.map((t=>t.finished))).then((()=>{i.dispatchEvent(ue("motioncomplete",d))})).catch(c)},getDepth:()=>r,getTarget:()=>u,getOptions:()=>t,getContext:()=>a,mount:t=>(dt(Boolean(t),"Animation state must be mounted with valid Element"),i=t,me.set(i,p),d(),()=>{me.delete(i),function(t){re&&e(re,t)}(p);for(const t in s)s[t]()}),isMounted:()=>Boolean(i)};return p}function ye(t){const e={},n=[];for(let i in t){const o=t[i];q(i)&&(W[i]&&(i=W[i]),n.push(i),i=z(i));let s=Array.isArray(o)?o[0]:o;const a=B.get(i);a&&(s=r(o)?a.toDefaultUnit(o):o),e[i]=s}return n.length&&(e.transform=F(n)),e}const we=t=>`-${t.toLowerCase()}`;function be(t={}){const e=ye(t);let n="";for(const t in e)n+=t.startsWith("--")?t:t.replace(/[A-Z]/g,we),n+=`: ${e[t]}; `;return n}function Ee(t,e={}){return ot([()=>{const n=new A(t,[0,1],e);return n.finished.catch((()=>{})),n}],e,e.duration)}function Oe(t,e,n){return(m(t)?Ee:ft)(t,e,n)}export{S as MotionValue,It as ScrollOffset,Oe as animate,et as animateStyle,ut as createAnimate,ve as createMotionState,be as createStyleString,ye as createStyles,L as getAnimationData,Y as getStyleName,Lt as glide,Wt as inView,me as mountedStates,Ft as resize,ne as scroll,Dt as spring,ct as stagger,J as style,vt as timeline,ot as withControls};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "motion",
|
|
3
3
|
"description": "A tiny, performant animation library for the web",
|
|
4
|
-
"version": "10.
|
|
4
|
+
"version": "10.14.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Matt Perry",
|
|
7
7
|
"main": "dist/main.cjs.js",
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"dev": "concurrently -c blue,red -n tsc,rollup --kill-others \"tsc --watch -p . --preserveWatchOutput\" \"rollup --c --watch --no-watch.clearScreen\""
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@motionone/animation": "^10.
|
|
27
|
-
"@motionone/dom": "^10.
|
|
28
|
-
"@motionone/svelte": "^10.
|
|
29
|
-
"@motionone/types": "^10.
|
|
30
|
-
"@motionone/utils": "^10.
|
|
31
|
-
"@motionone/vue": "^10.
|
|
26
|
+
"@motionone/animation": "^10.14.0",
|
|
27
|
+
"@motionone/dom": "^10.14.2",
|
|
28
|
+
"@motionone/svelte": "^10.14.2",
|
|
29
|
+
"@motionone/types": "^10.14.0",
|
|
30
|
+
"@motionone/utils": "^10.14.0",
|
|
31
|
+
"@motionone/vue": "^10.14.2"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "1e7de058e678b02fd77aff9f9fb239f84788feb5"
|
|
34
34
|
}
|