react-ui-animate 5.0.0-rc.6 → 5.0.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gestures/hooks/useRecognizer.d.ts +13 -0
- package/dist/hooks/index.d.ts +0 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/gestures/hooks/useLatest.d.ts +0 -1
- package/dist/hooks/useDimension.d.ts +0 -9
- package/dist/hooks/useMeasure.d.ts +0 -12
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
interface GestureInstance<E> {
|
|
3
|
+
onChange(handler: (event: E) => void): this;
|
|
4
|
+
onEnd(handler: (event: E) => void): this;
|
|
5
|
+
attach(target: Window | HTMLElement): () => void;
|
|
6
|
+
}
|
|
7
|
+
interface GestureConstructor<C, E> {
|
|
8
|
+
new (config?: C): GestureInstance<E>;
|
|
9
|
+
}
|
|
10
|
+
export declare function useRecognizer<T extends HTMLElement, C, E>(GestureClass: GestureConstructor<C, E>, refs: Window | RefObject<T> | Array<RefObject<T>>, onEvent: (e: E & {
|
|
11
|
+
index: number;
|
|
12
|
+
}) => void, config?: C): void;
|
|
13
|
+
export {};
|
package/dist/hooks/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=require("@raidipesh78/re-motion"),t=require("react"),n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)};function o(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),f=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)f.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return f}function f(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function a(e,t){return void 0===e&&(e={}),t?e:(e.onStart,e.onChange,e.onComplete,function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["onStart","onChange","onComplete"]))}function u(e){return"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type}function s(t,n){var r,i,o=n.type,f=n.to,a=n.options,u=void 0===a?{}:a;switch(o){case"spring":return e.spring(t,f,u);case"timing":return e.timing(t,f,u);case"decay":return e.decay(t,null!==(r=u.velocity)&&void 0!==r?r:0,u);case"delay":return e.delay(null!==(i=u.delay)&&void 0!==i?i:0);default:return console.warn("Unsupported animation type: ".concat(o)),{start:function(){},pause:function(){},resume:function(){},cancel:function(){},reset:function(){}}}}function c(t,n){var r=Object.entries(t).filter((function(e){var t=o(e,1)[0];return"decay"===n.type||"delay"===n.type||void 0!==n.to[t]})).map((function(e,t){var r=o(e,2),i=r[0];return s(r[1],{type:n.type,to:"decay"===n.type||"delay"===n.type?n.to:n.to[i],options:a(n.options,0===t)})}));return e.parallel(r)}function l(n){var r=t.useRef(null),f=t.useMemo((function(){return Array.isArray(n)?n.map((function(t){return new e.MotionValue(t)})):"object"==typeof n?Object.fromEntries(Object.entries(n).map((function(t){var n=o(t,2),r=n[0],i=n[1];return[r,new e.MotionValue(i)]}))):new e.MotionValue(n)}),[]);return[f,function(t){var l=null;l=Array.isArray(n)?function(t,n){var r,o;if(!u(n))return n.forEach((function(e,n){var r;null===(r=t[n])||void 0===r||r.set(e)})),null;var f=n,s=Object.fromEntries(t.map((function(e,t){return[t.toString(),e]})));switch(f.type){case"sequence":var l=f.options.animations.map((function(t){var n,r;return"delay"===t.type?e.delay(null!==(r=null===(n=t.options)||void 0===n?void 0:n.delay)&&void 0!==r?r:0):c(s,i(i({},t),{to:Array.isArray(t.to)?Object.fromEntries(t.to.map((function(e,t){return[t.toString(),e]}))):t.to}))}));return e.sequence(l,f.options);case"loop":var d=f.options.animation;if("sequence"===d.type){var v=d.options.animations.map((function(e){return c(s,i(i({},e),{to:Array.isArray(e.to)?Object.fromEntries(e.to.map((function(e,t){return[t.toString(),e]}))):e.to}))})),p=e.sequence(v,a(d.options,!0));return e.loop(p,null!==(r=f.options.iterations)&&void 0!==r?r:0,a(f.options,!0))}var h=c(s,d);return e.loop(h,null!==(o=f.options.iterations)&&void 0!==o?o:0,a(f.options,!0));default:return c(s,f)}}(f,t):"object"==typeof n?function(t,n){var r,i;if(u(n))switch(n.type){case"sequence":var f=n.options.animations.map((function(n){var r;return"delay"===n.type?e.delay(null!==(r=n.options.delay)&&void 0!==r?r:0):c(t,n)}));return e.sequence(f,n.options);case"loop":var s=n.options.animation;if("sequence"===s.type){f=s.options.animations.map((function(e){return c(t,e)}));return e.loop(e.sequence(f,a(s.options,!0)),null!==(r=n.options.iterations)&&void 0!==r?r:0,a(n.options,!0))}return e.loop(c(t,s),null!==(i=n.options.iterations)&&void 0!==i?i:0,a(n.options,!0));default:return c(t,n)}return Object.entries(n).forEach((function(e){var n,r=o(e,2),i=r[0],f=r[1];null===(n=t[i])||void 0===n||n.set(f)})),null}(f,t):function(t,n){var r,i,o,f,a,u,c,l,d;if("number"==typeof n||"string"==typeof n)return t.set(n),null;if("sequence"===n.type){var v=(null!==(i=null===(r=n.options)||void 0===r?void 0:r.animations)&&void 0!==i?i:[]).map((function(e){return s(t,e)}));return e.sequence(v,n.options)}if("loop"===n.type){var p=null===(o=n.options)||void 0===o?void 0:o.animation;if(!p)return null;if("sequence"===p.type){v=(null!==(a=null===(f=p.options)||void 0===f?void 0:f.animations)&&void 0!==a?a:[]).map((function(e){return s(t,e)}));return e.loop(e.sequence(v),null!==(c=null===(u=n.options)||void 0===u?void 0:u.iterations)&&void 0!==c?c:0,n.options)}return e.loop(s(t,p),null!==(d=null===(l=n.options)||void 0===l?void 0:l.iterations)&&void 0!==d?d:0,n.options)}return s(t,n)}(f,t),r.current=l,l&&l.start()},{start:function(){var e;return null===(e=r.current)||void 0===e?void 0:e.start()},pause:function(){var e;return null===(e=r.current)||void 0===e?void 0:e.pause()},resume:function(){var e;return null===(e=r.current)||void 0===e?void 0:e.resume()},cancel:function(){var e;return null===(e=r.current)||void 0===e?void 0:e.cancel()},reset:function(){var e;return null===(e=r.current)||void 0===e?void 0:e.reset()}}]}"function"==typeof SuppressedError&&SuppressedError;var d={Timing:{BOUNCE:{duration:500,easing:e.Easing.bounce},EASE_IN:{duration:500,easing:e.Easing.in(e.Easing.ease)},EASE_OUT:{duration:500,easing:e.Easing.out(e.Easing.ease)},EASE_IN_OUT:{duration:500,easing:e.Easing.inOut(e.Easing.ease)},POWER1:{duration:500,easing:e.Easing.bezier(.17,.42,.51,.97)},POWER2:{duration:500,easing:e.Easing.bezier(.07,.11,.13,1)},POWER3:{duration:500,easing:e.Easing.bezier(.09,.7,.16,1.04)},POWER4:{duration:500,easing:e.Easing.bezier(.05,.54,0,1.03)},LINEAR:{duration:500,easing:e.Easing.linear}},Spring:{ELASTIC:{mass:1,damping:18,stiffness:250},EASE:{mass:1,damping:20,stiffness:158},STIFF:{mass:1,damping:18,stiffness:350},WOBBLE:{mass:1,damping:8,stiffness:250}}},v=function(e,t){var n,r,i;return{type:"spring",to:e,options:{stiffness:null!==(n=null==t?void 0:t.stiffness)&&void 0!==n?n:d.Spring.EASE.stiffness,damping:null!==(r=null==t?void 0:t.damping)&&void 0!==r?r:d.Spring.EASE.damping,mass:null!==(i=null==t?void 0:t.mass)&&void 0!==i?i:d.Spring.EASE.mass,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}};var p={transparent:"#00000000",aliceblue:"#f0f8ffff",antiquewhite:"#faebd7ff",aqua:"#00ffffff",aquamarine:"#7fffd4ff",azure:"#f0ffffff",beige:"#f5f5dcff",bisque:"#ffe4c4ff",black:"#000000ff",blanchedalmond:"#ffebcdff",blue:"#0000ffff",blueviolet:"#8a2be2ff",brown:"#a52a2aff",burlywood:"#deb887ff",burntsienna:"#ea7e5dff",cadetblue:"#5f9ea0ff",chartreuse:"#7fff00ff",chocolate:"#d2691eff",coral:"#ff7f50ff",cornflowerblue:"#6495edff",cornsilk:"#fff8dcff",crimson:"#dc143cff",cyan:"#00ffffff",darkblue:"#00008bff",darkcyan:"#008b8bff",darkgoldenrod:"#b8860bff",darkgray:"#a9a9a9ff",darkgreen:"#006400ff",darkgrey:"#a9a9a9ff",darkkhaki:"#bdb76bff",darkmagenta:"#8b008bff",darkolivegreen:"#556b2fff",darkorange:"#ff8c00ff",darkorchid:"#9932ccff",darkred:"#8b0000ff",darksalmon:"#e9967aff",darkseagreen:"#8fbc8fff",darkslateblue:"#483d8bff",darkslategray:"#2f4f4fff",darkslategrey:"#2f4f4fff",darkturquoise:"#00ced1ff",darkviolet:"#9400d3ff",deeppink:"#ff1493ff",deepskyblue:"#00bfffff",dimgray:"#696969ff",dimgrey:"#696969ff",dodgerblue:"#1e90ffff",firebrick:"#b22222ff",floralwhite:"#fffaf0ff",forestgreen:"#228b22ff",fuchsia:"#ff00ffff",gainsboro:"#dcdcdcff",ghostwhite:"#f8f8ffff",gold:"#ffd700ff",goldenrod:"#daa520ff",gray:"#808080ff",green:"#008000ff",greenyellow:"#adff2fff",grey:"#808080ff",honeydew:"#f0fff0ff",hotpink:"#ff69b4ff",indianred:"#cd5c5cff",indigo:"#4b0082ff",ivory:"#fffff0ff",khaki:"#f0e68cff",lavender:"#e6e6faff",lavenderblush:"#fff0f5ff",lawngreen:"#7cfc00ff",lemonchiffon:"#fffacdff",lightblue:"#add8e6ff",lightcoral:"#f08080ff",lightcyan:"#e0ffffff",lightgoldenrodyellow:"#fafad2ff",lightgray:"#d3d3d3ff",lightgreen:"#90ee90ff",lightgrey:"#d3d3d3ff",lightpink:"#ffb6c1ff",lightsalmon:"#ffa07aff",lightseagreen:"#20b2aaff",lightskyblue:"#87cefaff",lightslategray:"#778899ff",lightslategrey:"#778899ff",lightsteelblue:"#b0c4deff",lightyellow:"#ffffe0ff",lime:"#00ff00ff",limegreen:"#32cd32ff",linen:"#faf0e6ff",magenta:"#ff00ffff",maroon:"#800000ff",mediumaquamarine:"#66cdaaff",mediumblue:"#0000cdff",mediumorchid:"#ba55d3ff",mediumpurple:"#9370dbff",mediumseagreen:"#3cb371ff",mediumslateblue:"#7b68eeff",mediumspringgreen:"#00fa9aff",mediumturquoise:"#48d1ccff",mediumvioletred:"#c71585ff",midnightblue:"#191970ff",mintcream:"#f5fffaff",mistyrose:"#ffe4e1ff",moccasin:"#ffe4b5ff",navajowhite:"#ffdeadff",navy:"#000080ff",oldlace:"#fdf5e6ff",olive:"#808000ff",olivedrab:"#6b8e23ff",orange:"#ffa500ff",orangered:"#ff4500ff",orchid:"#da70d6ff",palegoldenrod:"#eee8aaff",palegreen:"#98fb98ff",paleturquoise:"#afeeeeff",palevioletred:"#db7093ff",papayawhip:"#ffefd5ff",peachpuff:"#ffdab9ff",peru:"#cd853fff",pink:"#ffc0cbff",plum:"#dda0ddff",powderblue:"#b0e0e6ff",purple:"#800080ff",rebeccapurple:"#663399ff",red:"#ff0000ff",rosybrown:"#bc8f8fff",royalblue:"#4169e1ff",saddlebrown:"#8b4513ff",salmon:"#fa8072ff",sandybrown:"#f4a460ff",seagreen:"#2e8b57ff",seashell:"#fff5eeff",sienna:"#a0522dff",silver:"#c0c0c0ff",skyblue:"#87ceebff",slateblue:"#6a5acdff",slategray:"#708090ff",slategrey:"#708090ff",snow:"#fffafaff",springgreen:"#00ff7fff",steelblue:"#4682b4ff",tan:"#d2b48cff",teal:"#008080ff",thistle:"#d8bfd8ff",tomato:"#ff6347ff",turquoise:"#40e0d0ff",violet:"#ee82eeff",wheat:"#f5deb3ff",white:"#ffffffff",whitesmoke:"#f5f5f5ff",yellow:"#ffff00ff",yellowgreen:"#9acd32ff"},h=/-?\d+(\.\d+)?/g,m=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,y=/^rgba?\(\s*-?\d+(\.\d+)?%?(?:\s*,\s*-?\d+(\.\d+)?%?){2}(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/i,g=/^hsla?\(\s*\d+(\.\d+)?(?:\s*,\s*\d+(\.\d+)?%){2}(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/i;function E(e){var t=e.trim().toLowerCase();return m.test(t)||y.test(t)||g.test(t)||void 0!==p[t]}function b(e){var t,n,r,i,a,u,s=e.trim().toLowerCase();if(p[s]&&(s=p[s]),m.test(s)){var c=s.slice(1);3===c.length?c=c[0]+c[0]+c[1]+c[1]+c[2]+c[2]:4===c.length&&(c=c[0]+c[0]+c[1]+c[1]+c[2]+c[2]+c[3]+c[3]);var l=8===c.length,d=parseInt(c,16);return[b=d>>(l?24:16)&255,w=d>>(l?16:8)&255,x=d>>(l?8:0)&255,M=l?(255&d)/255:1]}if(y.test(s)){var v=f([],o(s.matchAll(h)),!1).map((function(e){return+e[0]})),E=o(v,4),b=E[0],w=E[1],x=E[2],T=E[3];return[b,w,x,M=void 0===T?1:T]}if(g.test(s)){v=f([],o(s.matchAll(h)),!1).map((function(e){return+e[0]}));var L=o(v,4),C=L[0],I=L[1],S=L[2],O=L[3],M=void 0===O?1:O;I/=100,S/=100;var A=(1-Math.abs(2*S-1))*I,k=A*(1-Math.abs(C/60%2-1)),P=S-A/2,Y=o([0,0,0],3),_=Y[0],q=Y[1],j=Y[2];return C<60?(_=(t=o([A,k,0],3))[0],q=t[1],j=t[2]):C<120?(_=(n=o([k,A,0],3))[0],q=n[1],j=n[2]):C<180?(_=(r=o([0,A,k],3))[0],q=r[1],j=r[2]):C<240?(_=(i=o([0,k,A],3))[0],q=i[1],j=i[2]):C<300?(_=(a=o([k,0,A],3))[0],q=a[1],j=a[2]):(_=(u=o([A,0,k],3))[0],q=u[1],j=u[2]),[Math.round(255*(_+P)),Math.round(255*(q+P)),Math.round(255*(j+P)),M]}throw new Error("Unrecognized CSS color: ".concat(e))}function w(e,t,n){var r=/^([a-zA-Z$_][\w$]*)\((-?\d*\.?\d+)([a-zA-Z%]*)\)$/,i=e.match(r),f=t.match(r);if(i&&f&&i[1]===f[1]&&i[3]===f[3]){var a=i[1],u=parseFloat(i[2]),s=parseFloat(f[2]),c=i[3],l=u+(s-u)*n;return"".concat(a,"(").concat(l.toFixed(3)).concat(c,")")}if(E(e)&&E(t)){var d=b(e),v=b(t),p=o(d,4),h=p[0],m=p[1],y=p[2],g=p[3],x=o(v,4),T=x[0],L=x[1],C=x[2],I=x[3],S=Math.round(h+(T-h)*n),O=Math.round(m+(L-m)*n),M=Math.round(y+(C-y)*n),A=g+(I-g)*n;return A<1?"rgba(".concat(S,",").concat(O,",").concat(M,",").concat(A.toFixed(3),")"):"rgb(".concat(S,",").concat(O,",").concat(M,")")}var k=e.split(/(\s+)/),P=t.split(/(\s+)/);if(k.length!==P.length)throw new Error('interpolate: template mismatch:\n "'.concat(e,'"\n vs "').concat(t,'"'));var Y=/^(-?\d+(\.\d+)?)([a-zA-Z%]*)$/;return k.map((function(e,t){var r=P[t];if(e===r&&/\s+/.test(e))return function(){return e};var i=e.match(Y),o=r.match(Y);if(i&&o&&i[3]===o[3]){var f=parseFloat(i[1]),a=parseFloat(o[1]),u=i[3];return function(){return"".concat((f+(a-f)*n).toFixed(3)).concat(u)}}if(E(e)&&E(r))return function(){return w(e,r,n)};if(e===r)return function(){return e};throw new Error('interpolate: cannot interpolate tokens "'.concat(e,'" vs "').concat(r,'"'))})).map((function(e){return e()})).join("")}function x(e,t,n){return Math.min(Math.max(e,t),n)}function T(e,t,n){return 0===t||Math.abs(t)===1/0?function(e,t){return Math.pow(e,5*t)}(e,n):e*t*n/(t+n*e)}var L=function(){function e(){this.changeListeners=new Set,this.endListeners=new Set}return e.prototype.onChange=function(e){return this.changeListeners.add(e),this},e.prototype.onEnd=function(e){return this.endListeners.add(e),this},e.prototype.emitChange=function(e){this.changeListeners.forEach((function(t){return t(e)}))},e.prototype.emitEnd=function(e){this.endListeners.forEach((function(t){return t(e)}))},e.VELOCITY_LIMIT=20,e}(),C=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.prev={x:0,y:0},n.lastTime=0,n.movement={x:0,y:0},n.velocity={x:0,y:0},n.start={x:0,y:0},n.offset={x:0,y:0},n.pointerCaptured=!1,n.activePointerId=null,n.attachedEls=new Set,n.activeEl=null,n.pointerDownPos={x:0,y:0},n.thresholdPassed=!1,n.config=t,n}return r(t,e),t.prototype.attach=function(e){var t=this;if(e===window)return function(){};var n=Array.isArray(e)?e:[e],r=this.onDown.bind(this),i=this.onMove.bind(this),o=this.onUp.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("pointerdown",r,{passive:!1})})),window.addEventListener("pointermove",i,{passive:!1}),window.addEventListener("pointerup",o),window.addEventListener("pointercancel",o),function(){n.forEach((function(e){e.removeEventListener("pointerdown",r),t.attachedEls.delete(e)})),window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",o)}},t.prototype.onDown=function(e){var t,n,r;if(0===e.button){var o=e.currentTarget;this.attachedEls.has(o)&&(this.activeEl=o,this.activePointerId=e.pointerId,this.pointerCaptured=!1,this.start=!1===this.thresholdPassed&&0===this.start.x&&0===this.start.y?null!==(r=null===(n=(t=this.config).initial)||void 0===n?void 0:n.call(t))&&void 0!==r?r:{x:0,y:0}:i({},this.offset),this.offset=i({},this.start),this.pointerDownPos={x:e.clientX,y:e.clientY},this.thresholdPassed=!1,this.prev={x:e.clientX,y:e.clientY},this.lastTime=e.timeStamp,this.emitChange({down:!0,movement:{x:0,y:0},offset:i({},this.offset),velocity:{x:0,y:0},event:e,cancel:this.cancel.bind(this)}))}},t.prototype.onMove=function(e){var t;if(this.activePointerId===e.pointerId&&this.activeEl){var n=null!==(t=this.config.threshold)&&void 0!==t?t:0;if(!this.thresholdPassed){var r=e.clientX-this.pointerDownPos.x,o=e.clientY-this.pointerDownPos.y;if(Math.hypot(r,o)<n)return;this.thresholdPassed=!0,this.activeEl.setPointerCapture(e.pointerId),this.pointerCaptured=!0}this.pointerCaptured&&e.preventDefault();var f=Math.max((e.timeStamp-this.lastTime)/1e3,1e-6);this.lastTime=e.timeStamp;var a=(e.clientX-this.prev.x)/f/1e3,u=(e.clientY-this.prev.y)/f/1e3;this.velocity={x:x(a,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(u,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)};var s={x:e.clientX-this.pointerDownPos.x,y:e.clientY-this.pointerDownPos.y};this.movement={x:"y"===this.config.axis?0:s.x,y:"x"===this.config.axis?0:s.y},this.offset={x:this.start.x+this.movement.x,y:this.start.y+this.movement.y},this.prev={x:e.clientX,y:e.clientY},this.emitChange({down:!0,movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:this.cancel.bind(this)})}},t.prototype.onUp=function(e){this.activePointerId===e.pointerId&&this.activeEl&&(this.activeEl.releasePointerCapture(e.pointerId),this.emitEnd({down:!1,movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:this.cancel.bind(this)}),this.activePointerId=null,this.pointerCaptured=!1)},t.prototype.cancel=function(){this.activeEl&&null!==this.activePointerId&&(this.activeEl.releasePointerCapture(this.activePointerId),this.activePointerId=null,this.activeEl=null)},t}(L);function I(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n}var S=function(e){function t(){var t=e.apply(this,f([],o(arguments),!1))||this;return t.attachedEls=new Set,t.prev={x:0,y:0},t.lastTime=0,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.startPos=null,t}return r(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],r=this.onMove.bind(this),i=this.onLeave.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("pointermove",r,{passive:!1}),e.addEventListener("pointerleave",i)})),function(){n.forEach((function(e){e.removeEventListener("pointermove",r),e.removeEventListener("pointerleave",i),t.attachedEls.delete(e)}))}},t.prototype.cancel=function(){},t.prototype.onMove=function(e){var t=this,n=e.timeStamp;null===this.startPos&&(this.startPos={x:e.clientX,y:e.clientY},this.prev={x:e.clientX,y:e.clientY},this.lastTime=n);var r=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var o=e.clientX-this.prev.x,f=e.clientY-this.prev.y;this.prev={x:e.clientX,y:e.clientY},this.movement={x:e.clientX-this.startPos.x,y:e.clientY-this.startPos.y};var a=e.currentTarget,u=a instanceof HTMLElement?a.getBoundingClientRect():{left:0,top:0};this.offset={x:e.clientX-u.left,y:e.clientY-u.top};var s=o/r/1e3,c=f/r/1e3;this.velocity={x:x(s,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(c,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){return t.onLeave(e)}})},t.prototype.onLeave=function(e){this.emitEnd({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){}})},t}(L);var O=function(e){function t(){var t=e.apply(this,f([],o(arguments),!1))||this;return t.attachedEls=new Set,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.prevScroll={x:0,y:0},t.lastTime=0,t}return r(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],r=this.onScroll.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("scroll",r,{passive:!0})})),function(){n.forEach((function(e){e.removeEventListener("scroll",r),t.attachedEls.delete(e)})),null!=t.endTimeout&&(clearTimeout(t.endTimeout),t.endTimeout=void 0)}},t.prototype.cancel=function(){},t.prototype.onScroll=function(e){var t=this,n=Date.now(),r=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var o=e.currentTarget,f=o instanceof HTMLElement?o.scrollLeft:window.scrollX,a=o instanceof HTMLElement?o.scrollTop:window.scrollY,u=f-this.prevScroll.x,s=a-this.prevScroll.y;this.prevScroll={x:f,y:a},this.movement={x:u,y:s},this.offset={x:f,y:a};var c=u/r/1e3,l=s/r/1e3;this.velocity={x:x(c,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(l,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){null!=t.endTimeout&&clearTimeout(t.endTimeout)}}),null!=this.endTimeout&&clearTimeout(this.endTimeout),this.endTimeout=window.setTimeout((function(){t.emitEnd({movement:i({},t.movement),offset:i({},t.offset),velocity:i({},t.velocity),event:e,cancel:function(){}})}),150)},t}(L);var M=function(e){function t(){var t=e.apply(this,f([],o(arguments),!1))||this;return t.attachedEls=new Set,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.lastTime=0,t}return r(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],r=this.onWheel.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("wheel",r,{passive:!1})})),function(){n.forEach((function(e){e.removeEventListener("wheel",r),t.attachedEls.delete(e)})),null!=t.endTimeout&&(clearTimeout(t.endTimeout),t.endTimeout=void 0)}},t.prototype.cancel=function(){},t.prototype.onWheel=function(e){var t=this;e.preventDefault();var n=e.timeStamp,r=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var o=e.deltaX,f=e.deltaY;this.movement={x:o,y:f},this.offset.x+=o,this.offset.y+=f;var a=o/r/1e3,u=f/r/1e3;this.velocity={x:x(a,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(u,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){null!=t.endTimeout&&clearTimeout(t.endTimeout)}}),null!=this.endTimeout&&clearTimeout(this.endTimeout),this.endTimeout=window.setTimeout((function(){t.emitEnd({movement:i({},t.movement),offset:i({},t.offset),velocity:i({},t.velocity),event:e,cancel:function(){}})}),150)},t}(L);Object.defineProperty(exports,"Easing",{enumerable:!0,get:function(){return e.Easing}}),Object.defineProperty(exports,"animate",{enumerable:!0,get:function(){return e.motion}}),Object.defineProperty(exports,"combine",{enumerable:!0,get:function(){return e.combine}}),Object.defineProperty(exports,"makeAnimated",{enumerable:!0,get:function(){return e.makeMotion}}),exports.AnimationConfig=d,exports.bin=function(e){return e?1:0},exports.clamp=x,exports.mix=function(e,t,n){return t*(1-e)+n*e},exports.move=function(e,t,n){var r=e[t],i=e.length,a=t-n;if(a>0)return f(f(f(f([],o(e.slice(0,n)),!1),[r],!1),o(e.slice(n,t)),!1),o(e.slice(t+1,i)),!1);if(a<0){var u=n+1;return f(f(f(f([],o(e.slice(0,t)),!1),o(e.slice(t+1,u)),!1),[r],!1),o(e.slice(u,i)),!1)}return e},exports.rubberClamp=function(e,t,n,r){return void 0===r&&(r=.15),0===r?x(e,t,n):e<t?-T(t-e,n-t,r)+t:e>n?+T(e-n,n-t,r)+n:e},exports.snapTo=function(e,t,n){var r=e+.2*t,i=function(e){return Math.abs(e-r)},a=n.map(i),u=Math.min.apply(Math,f([],o(a),!1));return n.reduce((function(e,t){return i(t)===u?t:e}))},exports.to=function(e,t,n,r){var i,o,f,a,u=t.length;if(u<2||n.length!==u)throw new Error("interpolate: inRange and outRange must be arrays of the same length >= 2");var s=null!==(o=null!==(i=null==r?void 0:r.extrapolateLeft)&&void 0!==i?i:null==r?void 0:r.extrapolate)&&void 0!==o?o:"extend",c=null!==(a=null!==(f=null==r?void 0:r.extrapolateRight)&&void 0!==f?f:null==r?void 0:r.extrapolate)&&void 0!==a?a:"extend";return function(e){var i=e;e<t[0]&&"clamp"===s?i=t[0]:e>t[u-1]&&"clamp"===c&&(i=t[u-1]);var o=0;if(i<=t[0])o=0;else if(i>=t[u-1])o=u-2;else for(var f=0;f<u-1;f++)if(i>=t[f]&&i<=t[f+1]){o=f;break}var a=t[o],l=(i-a)/(t[o+1]-a);(null==r?void 0:r.easing)&&(l=r.easing(l));var d=n[o],v=n[o+1];return"number"==typeof d&&"number"==typeof v?d+(v-d)*l:w(String(d),String(v),l)}(e)},exports.useDimension=function(e,n){void 0===n&&(n=[]);var r=t.useRef(e);t.useEffect((function(){r.current=e}),f([e],o(n),!1)),t.useEffect((function(){var e=function(){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight,i=window.innerWidth,o=window.innerHeight;r.current({width:t,height:n,innerWidth:i,innerHeight:o})},t=new ResizeObserver(e);return t.observe(document.documentElement),window.addEventListener("resize",e),e(),function(){t.disconnect(),window.removeEventListener("resize",e)}}),[])},exports.useDrag=function(e,n,r){var o=Array.isArray(e)?e:[e],f=I(n),a=I(r),u=t.useRef(o.map((function(e,t){var n=new C(a.current),r=function(e){return f.current(i(i({},e),{index:t}))};return n.onChange(r).onEnd(r),n})));t.useEffect((function(){var e=o.map((function(e,t){var n=e.current;return n?u.current[t].attach(n):null})).filter((function(e){return!!e}));return function(){e.forEach((function(e){return e()}))}}),[o]),t.useEffect((function(){return function(){u.current.forEach((function(e){return e.cancel()}))}}),[])},exports.useMeasure=function(e,n,r){void 0===r&&(r=[]);var i=t.useRef(n);t.useEffect((function(){i.current=n}),f([n],o(r),!1)),t.useEffect((function(){var t=e.map((function(e){return e.current})).filter((function(e){return null!==e}));if(0!==t.length){var n=new ResizeObserver((function(e){var n=[],r=[],o=[],f=[],a=[],u=[];t.forEach((function(t){var i=e.find((function(e){return e.target===t}));if(i){var s=i.target.getBoundingClientRect(),c=s.left,l=s.top,d=s.width,v=s.height,p=c+window.scrollX,h=l+window.scrollY;n.push(p),r.push(h),o.push(d),f.push(v),a.push(c),u.push(l)}else n.push(0),r.push(0),o.push(0),f.push(0),a.push(0),u.push(0)})),i.current({left:n,top:r,width:o,height:f,vLeft:a,vTop:u})}));return t.forEach((function(e){return n.observe(e)})),function(){n.disconnect()}}}),[e])},exports.useMount=function(e,n){var r,f,a;void 0===n&&(n={});var s=o(t.useState(e),2),c=s[0],d=s[1],p=null!==(r=n.from)&&void 0!==r?r:0,h=null!==(f=n.enter)&&void 0!==f?f:1,m=null!==(a=n.exit)&&void 0!==a?a:0,y=o(l(p),2),g=y[0],E=y[1];return t.useLayoutEffect((function(){e?(d(!0),queueMicrotask((function(){E(u(h)?h:v(h))}))):queueMicrotask((function(){E(u(m)?i(i({},m),{options:i(i({},m.options),{onComplete:function(){var e,t;null===(t=null===(e=m.options)||void 0===e?void 0:e.onComplete)||void 0===t||t.call(e),d(!1)}})}):v(m,{onComplete:function(){d(!1)}}))}))}),[e,JSON.stringify(h),JSON.stringify(m)]),function(e){return e(g,c)}},exports.useMove=function(e,n){var r=I(n);if(e!==window){var o=Array.isArray(e)?e:[e],f=t.useRef([]);f.current.length!==o.length&&(f.current=o.map((function(e,t){var n=new S,o=function(e){return r.current(i(i({},e),{index:t}))};return n.onChange(o).onEnd(o),n}))),t.useEffect((function(){var e=o.map((function(e,t){var n=e.current;return n?f.current[t].attach(n):null})).filter((function(e){return!!e}));return function(){return e.forEach((function(e){return e()}))}}),[o])}else{var a=t.useRef();if(!a.current){var u=new S,s=function(e){return r.current(i(i({},e),{index:0}))};u.onChange(s).onEnd(s),a.current=u}t.useEffect((function(){var e=a.current.attach(window);return function(){e()}}),[e])}},exports.useOutsideClick=function(e,n,r){void 0===r&&(r=[]);var i=t.useRef(n);t.useEffect((function(){i.current=n}),f([n],o(r),!1)),t.useEffect((function(){function t(t){var n=e.current,r=t.target;n&&r&&r.isConnected&&(n.contains(r)||i.current(t))}return document.addEventListener("mousedown",t),document.addEventListener("touchstart",t),function(){document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",t)}}),[e])},exports.useScroll=function(e,n){var r=I(n);if(e!==window){var o=Array.isArray(e)?e:[e],f=t.useRef([]);f.current.length!==o.length&&(f.current=o.map((function(e,t){var n=new O,o=function(e){return r.current(i(i({},e),{index:t}))};return n.onChange(o).onEnd(o),n}))),t.useEffect((function(){var e=o.map((function(e,t){var n=e.current;return n?f.current[t].attach(n):null})).filter((function(e){return!!e}));return function(){e.forEach((function(e){return e()}))}}),[o])}else{var a=t.useRef();if(!a.current){var u=new O,s=function(e){return r.current(i(i({},e),{index:0}))};u.onChange(s).onEnd(s),a.current=u}t.useEffect((function(){var e=a.current.attach(window);return function(){return e()}}),[e])}},exports.useValue=l,exports.useWheel=function(e,n){var r=I(n);if(e!==window){var o=Array.isArray(e)?e:[e],f=t.useRef([]);f.current.length!==o.length&&(f.current=o.map((function(e,t){var n=new M;return n.onChange((function(e){return r.current(i(i({},e),{index:t}))})).onEnd((function(e){return r.current(i(i({},e),{index:t}))})),n}))),t.useEffect((function(){var e=o.map((function(e,t){var n=e.current;return n?f.current[t].attach(n):null})).filter((function(e){return!!e}));return function(){e.forEach((function(e){return e()}))}}),[o])}else{var a=t.useRef();if(!a.current){var u=new M,s=function(e){return r.current(i(i({},e),{index:0}))};u.onChange(s).onEnd(s),a.current=u}t.useEffect((function(){var e=a.current.attach(window);return function(){return e()}}),[e])}},exports.withDecay=function(e,t){return{type:"decay",options:{velocity:e,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}},exports.withDelay=function(e){return{type:"delay",options:{delay:e}}},exports.withLoop=function(e,t,n){return void 0===t&&(t=1/0),{type:"loop",options:{animation:e,iterations:t,onStart:null==n?void 0:n.onStart,onComplete:null==n?void 0:n.onComplete}}},exports.withSequence=function(e,t){return{type:"sequence",options:{animations:e,onStart:null==t?void 0:t.onStart,onComplete:null==t?void 0:t.onComplete}}},exports.withSpring=v,exports.withTiming=function(e,t){return{type:"timing",to:e,options:{duration:null==t?void 0:t.duration,easing:null==t?void 0:t.easing,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}};
|
|
1
|
+
var e=require("@raidipesh78/re-motion"),t=require("react"),n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)};function r(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,i,r=n.call(e),f=[];try{for(;(void 0===t||t-- >0)&&!(o=r.next()).done;)f.push(o.value)}catch(e){i={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return f}function f(e,t,n){if(n||2===arguments.length)for(var o,i=0,r=t.length;i<r;i++)!o&&i in t||(o||(o=Array.prototype.slice.call(t,0,i)),o[i]=t[i]);return e.concat(o||Array.prototype.slice.call(t))}function a(e,t){return void 0===e&&(e={}),t?e:(e.onStart,e.onChange,e.onComplete,function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(n[o[i]]=e[o[i]])}return n}(e,["onStart","onChange","onComplete"]))}function s(e){return"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type}function l(t,n){var o,i,r=n.type,f=n.to,a=n.options,s=void 0===a?{}:a;switch(r){case"spring":return e.spring(t,f,s);case"timing":return e.timing(t,f,s);case"decay":return e.decay(t,null!==(o=s.velocity)&&void 0!==o?o:0,s);case"delay":return e.delay(null!==(i=s.delay)&&void 0!==i?i:0);default:return console.warn("Unsupported animation type: ".concat(r)),{start:function(){},pause:function(){},resume:function(){},cancel:function(){},reset:function(){}}}}function u(t,n){var o=Object.entries(t).filter((function(e){var t=r(e,1)[0];return"decay"===n.type||"delay"===n.type||void 0!==n.to[t]})).map((function(e,t){var o=r(e,2),i=o[0];return l(o[1],{type:n.type,to:"decay"===n.type||"delay"===n.type?n.to:n.to[i],options:a(n.options,0===t)})}));return e.parallel(o)}function c(n){var o=t.useRef(null),f=t.useMemo((function(){return Array.isArray(n)?n.map((function(t){return new e.MotionValue(t)})):"object"==typeof n?Object.fromEntries(Object.entries(n).map((function(t){var n=r(t,2),o=n[0],i=n[1];return[o,new e.MotionValue(i)]}))):new e.MotionValue(n)}),[]);return[f,function(t){var c=null;c=Array.isArray(n)?function(t,n){var o,r;if(!s(n))return n.forEach((function(e,n){var o;null===(o=t[n])||void 0===o||o.set(e)})),null;var f=n,l=Object.fromEntries(t.map((function(e,t){return[t.toString(),e]})));switch(f.type){case"sequence":var c=f.options.animations.map((function(t){var n,o;return"delay"===t.type?e.delay(null!==(o=null===(n=t.options)||void 0===n?void 0:n.delay)&&void 0!==o?o:0):u(l,i(i({},t),{to:Array.isArray(t.to)?Object.fromEntries(t.to.map((function(e,t){return[t.toString(),e]}))):t.to}))}));return e.sequence(c,f.options);case"loop":var d=f.options.animation;if("sequence"===d.type){var p=d.options.animations.map((function(e){return u(l,i(i({},e),{to:Array.isArray(e.to)?Object.fromEntries(e.to.map((function(e,t){return[t.toString(),e]}))):e.to}))})),v=e.sequence(p,a(d.options,!0));return e.loop(v,null!==(o=f.options.iterations)&&void 0!==o?o:0,a(f.options,!0))}var h=u(l,d);return e.loop(h,null!==(r=f.options.iterations)&&void 0!==r?r:0,a(f.options,!0));default:return u(l,f)}}(f,t):"object"==typeof n?function(t,n){var o,i;if(s(n))switch(n.type){case"sequence":var f=n.options.animations.map((function(n){var o;return"delay"===n.type?e.delay(null!==(o=n.options.delay)&&void 0!==o?o:0):u(t,n)}));return e.sequence(f,n.options);case"loop":var l=n.options.animation;if("sequence"===l.type){f=l.options.animations.map((function(e){return u(t,e)}));return e.loop(e.sequence(f,a(l.options,!0)),null!==(o=n.options.iterations)&&void 0!==o?o:0,a(n.options,!0))}return e.loop(u(t,l),null!==(i=n.options.iterations)&&void 0!==i?i:0,a(n.options,!0));default:return u(t,n)}return Object.entries(n).forEach((function(e){var n,o=r(e,2),i=o[0],f=o[1];null===(n=t[i])||void 0===n||n.set(f)})),null}(f,t):function(t,n){var o,i,r,f,a,s,u,c,d;if("number"==typeof n||"string"==typeof n)return t.set(n),null;if("sequence"===n.type){var p=(null!==(i=null===(o=n.options)||void 0===o?void 0:o.animations)&&void 0!==i?i:[]).map((function(e){return l(t,e)}));return e.sequence(p,n.options)}if("loop"===n.type){var v=null===(r=n.options)||void 0===r?void 0:r.animation;if(!v)return null;if("sequence"===v.type){p=(null!==(a=null===(f=v.options)||void 0===f?void 0:f.animations)&&void 0!==a?a:[]).map((function(e){return l(t,e)}));return e.loop(e.sequence(p),null!==(u=null===(s=n.options)||void 0===s?void 0:s.iterations)&&void 0!==u?u:0,n.options)}return e.loop(l(t,v),null!==(d=null===(c=n.options)||void 0===c?void 0:c.iterations)&&void 0!==d?d:0,n.options)}return l(t,n)}(f,t),o.current=c,c&&c.start()},{start:function(){var e;return null===(e=o.current)||void 0===e?void 0:e.start()},pause:function(){var e;return null===(e=o.current)||void 0===e?void 0:e.pause()},resume:function(){var e;return null===(e=o.current)||void 0===e?void 0:e.resume()},cancel:function(){var e;return null===(e=o.current)||void 0===e?void 0:e.cancel()},reset:function(){var e;return null===(e=o.current)||void 0===e?void 0:e.reset()}}]}"function"==typeof SuppressedError&&SuppressedError;var d={Timing:{BOUNCE:{duration:500,easing:e.Easing.bounce},EASE_IN:{duration:500,easing:e.Easing.in(e.Easing.ease)},EASE_OUT:{duration:500,easing:e.Easing.out(e.Easing.ease)},EASE_IN_OUT:{duration:500,easing:e.Easing.inOut(e.Easing.ease)},POWER1:{duration:500,easing:e.Easing.bezier(.17,.42,.51,.97)},POWER2:{duration:500,easing:e.Easing.bezier(.07,.11,.13,1)},POWER3:{duration:500,easing:e.Easing.bezier(.09,.7,.16,1.04)},POWER4:{duration:500,easing:e.Easing.bezier(.05,.54,0,1.03)},LINEAR:{duration:500,easing:e.Easing.linear}},Spring:{ELASTIC:{mass:1,damping:18,stiffness:250},EASE:{mass:1,damping:20,stiffness:158},STIFF:{mass:1,damping:18,stiffness:350},WOBBLE:{mass:1,damping:8,stiffness:250}}},p=function(e,t){var n,o,i;return{type:"spring",to:e,options:{stiffness:null!==(n=null==t?void 0:t.stiffness)&&void 0!==n?n:d.Spring.EASE.stiffness,damping:null!==(o=null==t?void 0:t.damping)&&void 0!==o?o:d.Spring.EASE.damping,mass:null!==(i=null==t?void 0:t.mass)&&void 0!==i?i:d.Spring.EASE.mass,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}};var v={transparent:"#00000000",aliceblue:"#f0f8ffff",antiquewhite:"#faebd7ff",aqua:"#00ffffff",aquamarine:"#7fffd4ff",azure:"#f0ffffff",beige:"#f5f5dcff",bisque:"#ffe4c4ff",black:"#000000ff",blanchedalmond:"#ffebcdff",blue:"#0000ffff",blueviolet:"#8a2be2ff",brown:"#a52a2aff",burlywood:"#deb887ff",burntsienna:"#ea7e5dff",cadetblue:"#5f9ea0ff",chartreuse:"#7fff00ff",chocolate:"#d2691eff",coral:"#ff7f50ff",cornflowerblue:"#6495edff",cornsilk:"#fff8dcff",crimson:"#dc143cff",cyan:"#00ffffff",darkblue:"#00008bff",darkcyan:"#008b8bff",darkgoldenrod:"#b8860bff",darkgray:"#a9a9a9ff",darkgreen:"#006400ff",darkgrey:"#a9a9a9ff",darkkhaki:"#bdb76bff",darkmagenta:"#8b008bff",darkolivegreen:"#556b2fff",darkorange:"#ff8c00ff",darkorchid:"#9932ccff",darkred:"#8b0000ff",darksalmon:"#e9967aff",darkseagreen:"#8fbc8fff",darkslateblue:"#483d8bff",darkslategray:"#2f4f4fff",darkslategrey:"#2f4f4fff",darkturquoise:"#00ced1ff",darkviolet:"#9400d3ff",deeppink:"#ff1493ff",deepskyblue:"#00bfffff",dimgray:"#696969ff",dimgrey:"#696969ff",dodgerblue:"#1e90ffff",firebrick:"#b22222ff",floralwhite:"#fffaf0ff",forestgreen:"#228b22ff",fuchsia:"#ff00ffff",gainsboro:"#dcdcdcff",ghostwhite:"#f8f8ffff",gold:"#ffd700ff",goldenrod:"#daa520ff",gray:"#808080ff",green:"#008000ff",greenyellow:"#adff2fff",grey:"#808080ff",honeydew:"#f0fff0ff",hotpink:"#ff69b4ff",indianred:"#cd5c5cff",indigo:"#4b0082ff",ivory:"#fffff0ff",khaki:"#f0e68cff",lavender:"#e6e6faff",lavenderblush:"#fff0f5ff",lawngreen:"#7cfc00ff",lemonchiffon:"#fffacdff",lightblue:"#add8e6ff",lightcoral:"#f08080ff",lightcyan:"#e0ffffff",lightgoldenrodyellow:"#fafad2ff",lightgray:"#d3d3d3ff",lightgreen:"#90ee90ff",lightgrey:"#d3d3d3ff",lightpink:"#ffb6c1ff",lightsalmon:"#ffa07aff",lightseagreen:"#20b2aaff",lightskyblue:"#87cefaff",lightslategray:"#778899ff",lightslategrey:"#778899ff",lightsteelblue:"#b0c4deff",lightyellow:"#ffffe0ff",lime:"#00ff00ff",limegreen:"#32cd32ff",linen:"#faf0e6ff",magenta:"#ff00ffff",maroon:"#800000ff",mediumaquamarine:"#66cdaaff",mediumblue:"#0000cdff",mediumorchid:"#ba55d3ff",mediumpurple:"#9370dbff",mediumseagreen:"#3cb371ff",mediumslateblue:"#7b68eeff",mediumspringgreen:"#00fa9aff",mediumturquoise:"#48d1ccff",mediumvioletred:"#c71585ff",midnightblue:"#191970ff",mintcream:"#f5fffaff",mistyrose:"#ffe4e1ff",moccasin:"#ffe4b5ff",navajowhite:"#ffdeadff",navy:"#000080ff",oldlace:"#fdf5e6ff",olive:"#808000ff",olivedrab:"#6b8e23ff",orange:"#ffa500ff",orangered:"#ff4500ff",orchid:"#da70d6ff",palegoldenrod:"#eee8aaff",palegreen:"#98fb98ff",paleturquoise:"#afeeeeff",palevioletred:"#db7093ff",papayawhip:"#ffefd5ff",peachpuff:"#ffdab9ff",peru:"#cd853fff",pink:"#ffc0cbff",plum:"#dda0ddff",powderblue:"#b0e0e6ff",purple:"#800080ff",rebeccapurple:"#663399ff",red:"#ff0000ff",rosybrown:"#bc8f8fff",royalblue:"#4169e1ff",saddlebrown:"#8b4513ff",salmon:"#fa8072ff",sandybrown:"#f4a460ff",seagreen:"#2e8b57ff",seashell:"#fff5eeff",sienna:"#a0522dff",silver:"#c0c0c0ff",skyblue:"#87ceebff",slateblue:"#6a5acdff",slategray:"#708090ff",slategrey:"#708090ff",snow:"#fffafaff",springgreen:"#00ff7fff",steelblue:"#4682b4ff",tan:"#d2b48cff",teal:"#008080ff",thistle:"#d8bfd8ff",tomato:"#ff6347ff",turquoise:"#40e0d0ff",violet:"#ee82eeff",wheat:"#f5deb3ff",white:"#ffffffff",whitesmoke:"#f5f5f5ff",yellow:"#ffff00ff",yellowgreen:"#9acd32ff"},h=/-?\d+(\.\d+)?/g,m=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,y=/^rgba?\(\s*-?\d+(\.\d+)?%?(?:\s*,\s*-?\d+(\.\d+)?%?){2}(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/i,g=/^hsla?\(\s*\d+(\.\d+)?(?:\s*,\s*\d+(\.\d+)?%){2}(?:\s*,\s*(0|1|0?\.\d+))?\s*\)$/i;function b(e){var t=e.trim().toLowerCase();return m.test(t)||y.test(t)||g.test(t)||void 0!==v[t]}function E(e){var t,n,o,i,a,s,l=e.trim().toLowerCase();if(v[l]&&(l=v[l]),m.test(l)){var u=l.slice(1);3===u.length?u=u[0]+u[0]+u[1]+u[1]+u[2]+u[2]:4===u.length&&(u=u[0]+u[0]+u[1]+u[1]+u[2]+u[2]+u[3]+u[3]);var c=8===u.length,d=parseInt(u,16);return[E=d>>(c?24:16)&255,w=d>>(c?16:8)&255,x=d>>(c?8:0)&255,M=c?(255&d)/255:1]}if(y.test(l)){var p=f([],r(l.matchAll(h)),!1).map((function(e){return+e[0]})),b=r(p,4),E=b[0],w=b[1],x=b[2],T=b[3];return[E,w,x,M=void 0===T?1:T]}if(g.test(l)){p=f([],r(l.matchAll(h)),!1).map((function(e){return+e[0]}));var L=r(p,4),I=L[0],C=L[1],S=L[2],O=L[3],M=void 0===O?1:O;C/=100,S/=100;var k=(1-Math.abs(2*S-1))*C,P=k*(1-Math.abs(I/60%2-1)),A=S-k/2,Y=r([0,0,0],3),_=Y[0],q=Y[1],j=Y[2];return I<60?(_=(t=r([k,P,0],3))[0],q=t[1],j=t[2]):I<120?(_=(n=r([P,k,0],3))[0],q=n[1],j=n[2]):I<180?(_=(o=r([0,k,P],3))[0],q=o[1],j=o[2]):I<240?(_=(i=r([0,P,k],3))[0],q=i[1],j=i[2]):I<300?(_=(a=r([P,0,k],3))[0],q=a[1],j=a[2]):(_=(s=r([k,0,P],3))[0],q=s[1],j=s[2]),[Math.round(255*(_+A)),Math.round(255*(q+A)),Math.round(255*(j+A)),M]}throw new Error("Unrecognized CSS color: ".concat(e))}function w(e,t,n){var o=/^([a-zA-Z$_][\w$]*)\((-?\d*\.?\d+)([a-zA-Z%]*)\)$/,i=e.match(o),f=t.match(o);if(i&&f&&i[1]===f[1]&&i[3]===f[3]){var a=i[1],s=parseFloat(i[2]),l=parseFloat(f[2]),u=i[3],c=s+(l-s)*n;return"".concat(a,"(").concat(c.toFixed(3)).concat(u,")")}if(b(e)&&b(t)){var d=E(e),p=E(t),v=r(d,4),h=v[0],m=v[1],y=v[2],g=v[3],x=r(p,4),T=x[0],L=x[1],I=x[2],C=x[3],S=Math.round(h+(T-h)*n),O=Math.round(m+(L-m)*n),M=Math.round(y+(I-y)*n),k=g+(C-g)*n;return k<1?"rgba(".concat(S,",").concat(O,",").concat(M,",").concat(k.toFixed(3),")"):"rgb(".concat(S,",").concat(O,",").concat(M,")")}var P=e.split(/(\s+)/),A=t.split(/(\s+)/);if(P.length!==A.length)throw new Error('interpolate: template mismatch:\n "'.concat(e,'"\n vs "').concat(t,'"'));var Y=/^(-?\d+(\.\d+)?)([a-zA-Z%]*)$/;return P.map((function(e,t){var o=A[t];if(e===o&&/\s+/.test(e))return function(){return e};var i=e.match(Y),r=o.match(Y);if(i&&r&&i[3]===r[3]){var f=parseFloat(i[1]),a=parseFloat(r[1]),s=i[3];return function(){return"".concat((f+(a-f)*n).toFixed(3)).concat(s)}}if(b(e)&&b(o))return function(){return w(e,o,n)};if(e===o)return function(){return e};throw new Error('interpolate: cannot interpolate tokens "'.concat(e,'" vs "').concat(o,'"'))})).map((function(e){return e()})).join("")}function x(e,t,n){return Math.min(Math.max(e,t),n)}function T(e,t,n){return 0===t||Math.abs(t)===1/0?function(e,t){return Math.pow(e,5*t)}(e,n):e*t*n/(t+n*e)}var L=function(){function e(){this.changeListeners=new Set,this.endListeners=new Set}return e.prototype.onChange=function(e){return this.changeListeners.add(e),this},e.prototype.onEnd=function(e){return this.endListeners.add(e),this},e.prototype.emitChange=function(e){this.changeListeners.forEach((function(t){return t(e)}))},e.prototype.emitEnd=function(e){this.endListeners.forEach((function(t){return t(e)}))},e.VELOCITY_LIMIT=20,e}(),I=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.prev={x:0,y:0},n.lastTime=0,n.movement={x:0,y:0},n.velocity={x:0,y:0},n.start={x:0,y:0},n.offset={x:0,y:0},n.pointerCaptured=!1,n.activePointerId=null,n.attachedEls=new Set,n.activeEl=null,n.pointerDownPos={x:0,y:0},n.thresholdPassed=!1,n.config=t,n}return o(t,e),t.prototype.attach=function(e){var t=this;if(e===window)return function(){};var n=Array.isArray(e)?e:[e],o=this.onDown.bind(this),i=this.onMove.bind(this),r=this.onUp.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("pointerdown",o,{passive:!1})})),window.addEventListener("pointermove",i,{passive:!1}),window.addEventListener("pointerup",r),window.addEventListener("pointercancel",r),function(){n.forEach((function(e){e.removeEventListener("pointerdown",o),t.attachedEls.delete(e)})),window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",r),window.removeEventListener("pointercancel",r)}},t.prototype.onDown=function(e){var t,n,o;if(0===e.button){var r=e.currentTarget;this.attachedEls.has(r)&&(this.activeEl=r,this.activePointerId=e.pointerId,this.pointerCaptured=!1,this.start=!1===this.thresholdPassed&&0===this.start.x&&0===this.start.y?null!==(o=null===(n=(t=this.config).initial)||void 0===n?void 0:n.call(t))&&void 0!==o?o:{x:0,y:0}:i({},this.offset),this.offset=i({},this.start),this.pointerDownPos={x:e.clientX,y:e.clientY},this.thresholdPassed=!1,this.prev={x:e.clientX,y:e.clientY},this.lastTime=e.timeStamp,this.emitChange({down:!0,movement:{x:0,y:0},offset:i({},this.offset),velocity:{x:0,y:0},event:e,cancel:this.cancel.bind(this)}))}},t.prototype.onMove=function(e){var t;if(this.activePointerId===e.pointerId&&this.activeEl){var n=null!==(t=this.config.threshold)&&void 0!==t?t:0;if(!this.thresholdPassed){var o=e.clientX-this.pointerDownPos.x,r=e.clientY-this.pointerDownPos.y;if(Math.hypot(o,r)<n)return;this.thresholdPassed=!0,this.activeEl.setPointerCapture(e.pointerId),this.pointerCaptured=!0}this.pointerCaptured&&e.preventDefault();var f=Math.max((e.timeStamp-this.lastTime)/1e3,1e-6);this.lastTime=e.timeStamp;var a=(e.clientX-this.prev.x)/f/1e3,s=(e.clientY-this.prev.y)/f/1e3;this.velocity={x:x(a,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(s,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)};var l={x:e.clientX-this.pointerDownPos.x,y:e.clientY-this.pointerDownPos.y};this.movement={x:"y"===this.config.axis?0:l.x,y:"x"===this.config.axis?0:l.y},this.offset={x:this.start.x+this.movement.x,y:this.start.y+this.movement.y},this.prev={x:e.clientX,y:e.clientY},this.emitChange({down:!0,movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:this.cancel.bind(this)})}},t.prototype.onUp=function(e){this.activePointerId===e.pointerId&&this.activeEl&&(this.activeEl.releasePointerCapture(e.pointerId),this.emitEnd({down:!1,movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:this.cancel.bind(this)}),this.activePointerId=null,this.pointerCaptured=!1)},t.prototype.cancel=function(){this.activeEl&&null!==this.activePointerId&&(this.activeEl.releasePointerCapture(this.activePointerId),this.activePointerId=null,this.activeEl=null)},t}(L);function C(e,n,o,r){var f=S(o),a=S(r);if(n!==window){var s=Array.isArray(n)?n:[n],l=t.useRef([]);l.current.length!==s.length&&(l.current=s.map((function(t,n){var o=new e(a.current),r=function(e){return f.current(i(i({},e),{index:n}))};return o.onChange(r).onEnd(r),o}))),t.useEffect((function(){var e=s.map((function(e,t){var n=e.current;return n?l.current[t].attach(n):null})).filter((function(e){return!!e}));return function(){return e.forEach((function(e){return e()}))}}),[s])}else{var u=t.useRef();if(!u.current){var c=new e(a.current),d=function(e){return f.current(i(i({},e),{index:0}))};c.onChange(d).onEnd(d),u.current=c}t.useEffect((function(){var e=u.current.attach(window);return function(){e()}}),[n])}}function S(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n}var O=function(e){function t(){var t=e.apply(this,f([],r(arguments),!1))||this;return t.attachedEls=new Set,t.prev={x:0,y:0},t.lastTime=0,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.startPos=null,t}return o(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],o=this.onMove.bind(this),i=this.onLeave.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("pointermove",o,{passive:!1}),e.addEventListener("pointerleave",i)})),function(){n.forEach((function(e){e.removeEventListener("pointermove",o),e.removeEventListener("pointerleave",i),t.attachedEls.delete(e)}))}},t.prototype.cancel=function(){},t.prototype.onMove=function(e){var t=this,n=e.timeStamp;null===this.startPos&&(this.startPos={x:e.clientX,y:e.clientY},this.prev={x:e.clientX,y:e.clientY},this.lastTime=n);var o=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var r=e.clientX-this.prev.x,f=e.clientY-this.prev.y;this.prev={x:e.clientX,y:e.clientY},this.movement={x:e.clientX-this.startPos.x,y:e.clientY-this.startPos.y};var a=e.currentTarget,s=a instanceof HTMLElement?a.getBoundingClientRect():{left:0,top:0};this.offset={x:e.clientX-s.left,y:e.clientY-s.top};var l=r/o/1e3,u=f/o/1e3;this.velocity={x:x(l,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(u,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){return t.onLeave(e)}})},t.prototype.onLeave=function(e){this.emitEnd({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){}})},t}(L);var M=function(e){function t(){var t=e.apply(this,f([],r(arguments),!1))||this;return t.attachedEls=new Set,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.prevScroll={x:0,y:0},t.lastTime=0,t}return o(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],o=this.onScroll.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("scroll",o,{passive:!0})})),function(){n.forEach((function(e){e.removeEventListener("scroll",o),t.attachedEls.delete(e)})),null!=t.endTimeout&&(clearTimeout(t.endTimeout),t.endTimeout=void 0)}},t.prototype.cancel=function(){},t.prototype.onScroll=function(e){var t=this,n=Date.now(),o=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var r=e.currentTarget,f=r instanceof HTMLElement?r.scrollLeft:window.scrollX,a=r instanceof HTMLElement?r.scrollTop:window.scrollY,s=f-this.prevScroll.x,l=a-this.prevScroll.y;this.prevScroll={x:f,y:a},this.movement={x:s,y:l},this.offset={x:f,y:a};var u=s/o/1e3,c=l/o/1e3;this.velocity={x:x(u,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(c,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){null!=t.endTimeout&&clearTimeout(t.endTimeout)}}),null!=this.endTimeout&&clearTimeout(this.endTimeout),this.endTimeout=window.setTimeout((function(){t.emitEnd({movement:i({},t.movement),offset:i({},t.offset),velocity:i({},t.velocity),event:e,cancel:function(){}})}),150)},t}(L);var k=function(e){function t(){var t=e.apply(this,f([],r(arguments),!1))||this;return t.attachedEls=new Set,t.movement={x:0,y:0},t.offset={x:0,y:0},t.velocity={x:0,y:0},t.lastTime=0,t}return o(t,e),t.prototype.attach=function(e){var t=this,n=Array.isArray(e)?e:[e],o=this.onWheel.bind(this);return n.forEach((function(e){t.attachedEls.add(e),e.addEventListener("wheel",o,{passive:!1})})),function(){n.forEach((function(e){e.removeEventListener("wheel",o),t.attachedEls.delete(e)})),null!=t.endTimeout&&(clearTimeout(t.endTimeout),t.endTimeout=void 0)}},t.prototype.cancel=function(){},t.prototype.onWheel=function(e){var t=this;e.preventDefault();var n=e.timeStamp,o=Math.max((n-this.lastTime)/1e3,1e-6);this.lastTime=n;var r=e.deltaX,f=e.deltaY;this.movement={x:r,y:f},this.offset.x+=r,this.offset.y+=f;var a=r/o/1e3,s=f/o/1e3;this.velocity={x:x(a,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT),y:x(s,-L.VELOCITY_LIMIT,L.VELOCITY_LIMIT)},this.emitChange({movement:i({},this.movement),offset:i({},this.offset),velocity:i({},this.velocity),event:e,cancel:function(){null!=t.endTimeout&&clearTimeout(t.endTimeout)}}),null!=this.endTimeout&&clearTimeout(this.endTimeout),this.endTimeout=window.setTimeout((function(){t.emitEnd({movement:i({},t.movement),offset:i({},t.offset),velocity:i({},t.velocity),event:e,cancel:function(){}})}),150)},t}(L);Object.defineProperty(exports,"Easing",{enumerable:!0,get:function(){return e.Easing}}),Object.defineProperty(exports,"animate",{enumerable:!0,get:function(){return e.motion}}),Object.defineProperty(exports,"combine",{enumerable:!0,get:function(){return e.combine}}),Object.defineProperty(exports,"makeAnimated",{enumerable:!0,get:function(){return e.makeMotion}}),exports.AnimationConfig=d,exports.bin=function(e){return e?1:0},exports.clamp=x,exports.mix=function(e,t,n){return t*(1-e)+n*e},exports.move=function(e,t,n){var o=e[t],i=e.length,a=t-n;if(a>0)return f(f(f(f([],r(e.slice(0,n)),!1),[o],!1),r(e.slice(n,t)),!1),r(e.slice(t+1,i)),!1);if(a<0){var s=n+1;return f(f(f(f([],r(e.slice(0,t)),!1),r(e.slice(t+1,s)),!1),[o],!1),r(e.slice(s,i)),!1)}return e},exports.rubberClamp=function(e,t,n,o){return void 0===o&&(o=.15),0===o?x(e,t,n):e<t?-T(t-e,n-t,o)+t:e>n?+T(e-n,n-t,o)+n:e},exports.snapTo=function(e,t,n){var o=e+.2*t,i=function(e){return Math.abs(e-o)},a=n.map(i),s=Math.min.apply(Math,f([],r(a),!1));return n.reduce((function(e,t){return i(t)===s?t:e}))},exports.to=function(e,t,n,o){var i,r,f,a,s=t.length;if(s<2||n.length!==s)throw new Error("interpolate: inRange and outRange must be arrays of the same length >= 2");var l=null!==(r=null!==(i=null==o?void 0:o.extrapolateLeft)&&void 0!==i?i:null==o?void 0:o.extrapolate)&&void 0!==r?r:"extend",u=null!==(a=null!==(f=null==o?void 0:o.extrapolateRight)&&void 0!==f?f:null==o?void 0:o.extrapolate)&&void 0!==a?a:"extend";return function(e){var i=e;e<t[0]&&"clamp"===l?i=t[0]:e>t[s-1]&&"clamp"===u&&(i=t[s-1]);var r=0;if(i<=t[0])r=0;else if(i>=t[s-1])r=s-2;else for(var f=0;f<s-1;f++)if(i>=t[f]&&i<=t[f+1]){r=f;break}var a=t[r],c=(i-a)/(t[r+1]-a);(null==o?void 0:o.easing)&&(c=o.easing(c));var d=n[r],p=n[r+1];return"number"==typeof d&&"number"==typeof p?d+(p-d)*c:w(String(d),String(p),c)}(e)},exports.useDrag=function(e,t,n){return C(I,e,t,n)},exports.useMount=function(e,n){var o,f,a;void 0===n&&(n={});var l=r(t.useState(e),2),u=l[0],d=l[1],v=null!==(o=n.from)&&void 0!==o?o:0,h=null!==(f=n.enter)&&void 0!==f?f:1,m=null!==(a=n.exit)&&void 0!==a?a:0,y=r(c(v),2),g=y[0],b=y[1];return t.useLayoutEffect((function(){e?(d(!0),queueMicrotask((function(){b(s(h)?h:p(h))}))):queueMicrotask((function(){b(s(m)?i(i({},m),{options:i(i({},m.options),{onComplete:function(){var e,t;null===(t=null===(e=m.options)||void 0===e?void 0:e.onComplete)||void 0===t||t.call(e),d(!1)}})}):p(m,{onComplete:function(){d(!1)}}))}))}),[e,JSON.stringify(h),JSON.stringify(m)]),function(e){return e(g,u)}},exports.useMove=function(e,t){return C(O,e,t)},exports.useOutsideClick=function(e,n,o){void 0===o&&(o=[]);var i=t.useRef(n);t.useEffect((function(){i.current=n}),f([n],r(o),!1)),t.useEffect((function(){function t(t){var n=e.current,o=t.target;n&&o&&o.isConnected&&(n.contains(o)||i.current(t))}return document.addEventListener("mousedown",t),document.addEventListener("touchstart",t),function(){document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",t)}}),[e])},exports.useScroll=function(e,t){return C(M,e,t)},exports.useValue=c,exports.useWheel=function(e,t){return C(k,e,t)},exports.withDecay=function(e,t){return{type:"decay",options:{velocity:e,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}},exports.withDelay=function(e){return{type:"delay",options:{delay:e}}},exports.withLoop=function(e,t,n){return void 0===t&&(t=1/0),{type:"loop",options:{animation:e,iterations:t,onStart:null==n?void 0:n.onStart,onComplete:null==n?void 0:n.onComplete}}},exports.withSequence=function(e,t){return{type:"sequence",options:{animations:e,onStart:null==t?void 0:t.onStart,onComplete:null==t?void 0:t.onComplete}}},exports.withSpring=p,exports.withTiming=function(e,t){return{type:"timing",to:e,options:{duration:null==t?void 0:t.duration,easing:null==t?void 0:t.easing,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onComplete}}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/animation/helpers.ts","../src/animation/drivers.ts","../src/animation/useValue.ts","../src/animation/AnimationConfig.ts","../src/animation/descriptors.ts","../src/animation/to.ts","../src/utils/index.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/hooks/useLatest.ts","../src/gestures/controllers/MoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/hooks/useDimension.ts","../src/gestures/hooks/useDrag.ts","../src/hooks/useMeasure.ts","../src/animation/useMount.ts","../src/gestures/hooks/useMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/gestures/hooks/useWheel.ts"],"sourcesContent":["import type { Descriptor } from './types';\n\nexport function filterCallbackOptions(\n options: Record<string, any> = {},\n attach: boolean\n) {\n if (attach) return options;\n const { onStart, onChange, onComplete, ...rest } = options;\n return rest;\n}\n\nexport function isDescriptor(x: unknown): x is Descriptor {\n return (\n typeof x === 'object' &&\n x !== null &&\n 'type' in x &&\n typeof (x as any).type === 'string'\n );\n}\n","import {\n decay,\n MotionValue,\n spring,\n timing,\n parallel,\n delay,\n} from '@raidipesh78/re-motion';\n\nimport { filterCallbackOptions } from './helpers';\nimport type { Primitive, Descriptor } from './types';\n\nexport function buildAnimation(\n mv: MotionValue<Primitive>,\n { type, to, options = {} }: Descriptor\n) {\n switch (type) {\n case 'spring':\n return spring(mv, to as Primitive, options);\n case 'timing':\n return timing(mv, to as Primitive, options);\n case 'decay':\n return decay(mv as MotionValue<number>, options.velocity ?? 0, options);\n case 'delay':\n return delay(options.delay ?? 0);\n default:\n console.warn(`Unsupported animation type: ${type}`);\n return { start() {}, pause() {}, resume() {}, cancel() {}, reset() {} };\n }\n}\n\nexport function buildParallel(\n mvMap: Record<string, MotionValue<Primitive>>,\n step: Descriptor\n) {\n const entries = Object.entries(mvMap).filter(([key]) => {\n return (\n step.type === 'decay' ||\n step.type === 'delay' ||\n (step.to as Record<string, Primitive>)[key] !== undefined\n );\n });\n\n const ctrls = entries.map(([key, mv], idx) =>\n buildAnimation(mv, {\n type: step.type,\n to:\n step.type === 'decay' || step.type === 'delay'\n ? (step.to as any)\n : (step.to as Record<string, Primitive>)[key],\n options: filterCallbackOptions(step.options, idx === 0),\n })\n );\n\n return parallel(ctrls);\n}\n","import { useMemo, useRef } from 'react';\nimport { delay, sequence, loop, MotionValue } from '@raidipesh78/re-motion';\n\nimport { buildAnimation, buildParallel } from './drivers';\nimport { filterCallbackOptions, isDescriptor } from './helpers';\nimport type { Primitive, Descriptor, Controls } from './types';\n\ntype Widen<T> = T extends number ? number : T extends string ? string : T;\n\ntype ValueReturn<T> = T extends Primitive\n ? MotionValue<Widen<T>>\n : T extends Primitive[]\n ? MotionValue<Widen<Primitive>>[]\n : { [K in keyof T]: MotionValue<Widen<T[K]>> };\n\ntype Base = Primitive | Primitive[] | Record<string, Primitive>;\n\nexport function useValue<T extends Base>(\n initial: T\n): [ValueReturn<T>, (to: Base | Descriptor) => void, Controls] {\n const controllerRef = useRef<Controls | null>(null);\n\n const value = useMemo(() => {\n if (Array.isArray(initial)) {\n return initial.map((v) => new MotionValue(v));\n }\n\n if (typeof initial === 'object') {\n return Object.fromEntries(\n Object.entries(initial).map(([k, v]) => [k, new MotionValue(v)])\n );\n }\n\n return new MotionValue(initial);\n }, []) as ValueReturn<T>;\n\n function set(to: Base | Descriptor) {\n let ctrl: Controls | null = null;\n\n if (Array.isArray(initial)) {\n ctrl = handleArray(\n value as Array<MotionValue<Primitive>>,\n to as Primitive[] | Descriptor\n );\n } else if (typeof initial === 'object') {\n ctrl = handleObject(\n value as Record<string, MotionValue<Primitive>>,\n to as Record<string, Primitive> | Descriptor\n );\n } else {\n ctrl = handlePrimitive(\n value as MotionValue<Primitive>,\n to as Primitive | Descriptor\n );\n }\n\n controllerRef.current = ctrl;\n if (ctrl) ctrl.start();\n }\n\n const controls = {\n start: () => controllerRef.current?.start(),\n pause: () => controllerRef.current?.pause(),\n resume: () => controllerRef.current?.resume(),\n cancel: () => controllerRef.current?.cancel(),\n reset: () => controllerRef.current?.reset(),\n };\n\n return [value, set, controls] as const;\n}\n\nfunction handlePrimitive(\n mv: MotionValue<Primitive>,\n to: Primitive | Descriptor\n) {\n if (typeof to === 'number' || typeof to === 'string') {\n mv.set(to);\n return null;\n }\n\n if (to.type === 'sequence') {\n const animations = to.options?.animations ?? [];\n const ctrls = animations.map((step) => buildAnimation(mv, step));\n return sequence(ctrls, to.options);\n }\n\n if (to.type === 'loop') {\n const animation = to.options?.animation;\n if (!animation) return null;\n\n if (animation.type === 'sequence') {\n const animations = animation.options?.animations ?? [];\n const ctrls = animations.map((step) => buildAnimation(mv, step));\n return loop(sequence(ctrls), to.options?.iterations ?? 0, to.options);\n }\n\n return loop(\n buildAnimation(mv, animation),\n to.options?.iterations ?? 0,\n to.options\n );\n }\n\n return buildAnimation(mv, to);\n}\n\nfunction handleArray(\n mvs: Array<MotionValue<Primitive>>,\n to: Primitive[] | Descriptor\n) {\n if (!isDescriptor(to)) {\n (to as Primitive[]).forEach((val, i) => {\n mvs[i]?.set(val);\n });\n return null;\n }\n\n const desc = to as Descriptor;\n\n const mvsRecord = Object.fromEntries(\n mvs.map((mv, idx) => [idx.toString(), mv])\n ) as Record<string, MotionValue<Primitive>>;\n\n switch (desc.type) {\n case 'sequence': {\n const ctrls = desc.options!.animations!.map((step) =>\n step.type === 'delay'\n ? delay(step.options?.delay ?? 0)\n : buildParallel(mvsRecord, {\n ...step,\n to: Array.isArray(step.to)\n ? Object.fromEntries(\n (step.to as Primitive[]).map((v, i) => [i.toString(), v])\n )\n : step.to,\n })\n );\n\n return sequence(ctrls, desc.options);\n }\n\n case 'loop': {\n const inner = desc.options!.animation!;\n\n if (inner.type === 'sequence') {\n const seqCtrls = inner.options!.animations!.map((step) =>\n buildParallel(mvsRecord, {\n ...step,\n to: Array.isArray(step.to)\n ? Object.fromEntries(\n (step.to as Primitive[]).map((v, i) => [i.toString(), v])\n )\n : step.to,\n })\n );\n\n const seq = sequence(\n seqCtrls,\n filterCallbackOptions(inner.options, true)\n );\n\n return loop(\n seq,\n desc.options!.iterations ?? 0,\n filterCallbackOptions(desc.options, true)\n );\n }\n\n const par = buildParallel(mvsRecord, inner);\n return loop(\n par,\n desc.options!.iterations ?? 0,\n filterCallbackOptions(desc.options, true)\n );\n }\n\n case 'decay':\n return buildParallel(mvsRecord, desc);\n\n default:\n return buildParallel(mvsRecord, desc);\n }\n}\n\nfunction handleObject(\n mvs: Record<string, MotionValue<Primitive>>,\n to: Record<string, Primitive> | Descriptor\n) {\n if (isDescriptor(to)) {\n switch (to.type) {\n case 'sequence': {\n const ctrls = to.options!.animations!.map((step) =>\n step.type === 'delay'\n ? delay(step.options!.delay ?? 0)\n : buildParallel(mvs, step)\n );\n return sequence(ctrls, to.options);\n }\n\n case 'loop': {\n const inner = to.options!.animation!;\n if (inner.type === 'sequence') {\n const ctrls = inner.options!.animations!.map((s) =>\n buildParallel(mvs, s)\n );\n return loop(\n sequence(ctrls, filterCallbackOptions(inner.options, true)),\n to.options!.iterations ?? 0,\n filterCallbackOptions(to.options, true)\n );\n }\n return loop(\n buildParallel(mvs, inner),\n to.options!.iterations ?? 0,\n filterCallbackOptions(to.options, true)\n );\n }\n\n case 'decay':\n return buildParallel(mvs, to);\n\n default:\n return buildParallel(mvs, to);\n }\n }\n\n Object.entries(to).forEach(([k, v]) => {\n mvs[k]?.set(v);\n });\n\n return null;\n}\n","import { Easing } from '@raidipesh78/re-motion';\n\nexport const AnimationConfig = {\n Timing: {\n BOUNCE: { duration: 500, easing: Easing.bounce },\n EASE_IN: { duration: 500, easing: Easing.in(Easing.ease) },\n EASE_OUT: { duration: 500, easing: Easing.out(Easing.ease) },\n EASE_IN_OUT: { duration: 500, easing: Easing.inOut(Easing.ease) },\n POWER1: { duration: 500, easing: Easing.bezier(0.17, 0.42, 0.51, 0.97) },\n POWER2: { duration: 500, easing: Easing.bezier(0.07, 0.11, 0.13, 1) },\n POWER3: { duration: 500, easing: Easing.bezier(0.09, 0.7, 0.16, 1.04) },\n POWER4: { duration: 500, easing: Easing.bezier(0.05, 0.54, 0, 1.03) },\n LINEAR: { duration: 500, easing: Easing.linear },\n },\n Spring: {\n ELASTIC: { mass: 1, damping: 18, stiffness: 250 },\n EASE: { mass: 1, damping: 20, stiffness: 158 },\n STIFF: { mass: 1, damping: 18, stiffness: 350 },\n WOBBLE: { mass: 1, damping: 8, stiffness: 250 },\n },\n};\n","import { AnimationConfig } from './AnimationConfig';\nimport {\n Callbacks,\n DecayOptions,\n Descriptor,\n SpringOptions,\n TimingOptions,\n} from './types';\n\nexport const withSpring = (\n to: Descriptor['to'],\n opts?: SpringOptions & Callbacks\n): Descriptor => ({\n type: 'spring',\n to,\n options: {\n stiffness: opts?.stiffness ?? AnimationConfig.Spring.EASE.stiffness,\n damping: opts?.damping ?? AnimationConfig.Spring.EASE.damping,\n mass: opts?.mass ?? AnimationConfig.Spring.EASE.mass,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withTiming = (\n to: Descriptor['to'],\n opts?: TimingOptions & Callbacks\n): Descriptor => ({\n type: 'timing',\n to,\n options: {\n duration: opts?.duration,\n easing: opts?.easing,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withDecay = (\n velocity: number,\n opts?: DecayOptions & Callbacks\n): Descriptor => ({\n type: 'decay',\n options: {\n velocity,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withDelay = (ms: number): Descriptor => ({\n type: 'delay',\n options: { delay: ms },\n});\n\nexport const withSequence = (\n animations: Descriptor[],\n opts?: Omit<Callbacks, 'onChange'>\n): Descriptor => ({\n type: 'sequence',\n options: {\n animations,\n onStart: opts?.onStart,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withLoop = (\n animation: Descriptor,\n iterations = Infinity,\n opts?: Omit<Callbacks, 'onChange'>\n): Descriptor => ({\n type: 'loop',\n options: {\n animation,\n iterations,\n onStart: opts?.onStart,\n onComplete: opts?.onComplete,\n },\n});\n","const namedColors: Record<string, string> = {\n transparent: '#00000000',\n aliceblue: '#f0f8ffff',\n antiquewhite: '#faebd7ff',\n aqua: '#00ffffff',\n aquamarine: '#7fffd4ff',\n azure: '#f0ffffff',\n beige: '#f5f5dcff',\n bisque: '#ffe4c4ff',\n black: '#000000ff',\n blanchedalmond: '#ffebcdff',\n blue: '#0000ffff',\n blueviolet: '#8a2be2ff',\n brown: '#a52a2aff',\n burlywood: '#deb887ff',\n burntsienna: '#ea7e5dff',\n cadetblue: '#5f9ea0ff',\n chartreuse: '#7fff00ff',\n chocolate: '#d2691eff',\n coral: '#ff7f50ff',\n cornflowerblue: '#6495edff',\n cornsilk: '#fff8dcff',\n crimson: '#dc143cff',\n cyan: '#00ffffff',\n darkblue: '#00008bff',\n darkcyan: '#008b8bff',\n darkgoldenrod: '#b8860bff',\n darkgray: '#a9a9a9ff',\n darkgreen: '#006400ff',\n darkgrey: '#a9a9a9ff',\n darkkhaki: '#bdb76bff',\n darkmagenta: '#8b008bff',\n darkolivegreen: '#556b2fff',\n darkorange: '#ff8c00ff',\n darkorchid: '#9932ccff',\n darkred: '#8b0000ff',\n darksalmon: '#e9967aff',\n darkseagreen: '#8fbc8fff',\n darkslateblue: '#483d8bff',\n darkslategray: '#2f4f4fff',\n darkslategrey: '#2f4f4fff',\n darkturquoise: '#00ced1ff',\n darkviolet: '#9400d3ff',\n deeppink: '#ff1493ff',\n deepskyblue: '#00bfffff',\n dimgray: '#696969ff',\n dimgrey: '#696969ff',\n dodgerblue: '#1e90ffff',\n firebrick: '#b22222ff',\n floralwhite: '#fffaf0ff',\n forestgreen: '#228b22ff',\n fuchsia: '#ff00ffff',\n gainsboro: '#dcdcdcff',\n ghostwhite: '#f8f8ffff',\n gold: '#ffd700ff',\n goldenrod: '#daa520ff',\n gray: '#808080ff',\n green: '#008000ff',\n greenyellow: '#adff2fff',\n grey: '#808080ff',\n honeydew: '#f0fff0ff',\n hotpink: '#ff69b4ff',\n indianred: '#cd5c5cff',\n indigo: '#4b0082ff',\n ivory: '#fffff0ff',\n khaki: '#f0e68cff',\n lavender: '#e6e6faff',\n lavenderblush: '#fff0f5ff',\n lawngreen: '#7cfc00ff',\n lemonchiffon: '#fffacdff',\n lightblue: '#add8e6ff',\n lightcoral: '#f08080ff',\n lightcyan: '#e0ffffff',\n lightgoldenrodyellow: '#fafad2ff',\n lightgray: '#d3d3d3ff',\n lightgreen: '#90ee90ff',\n lightgrey: '#d3d3d3ff',\n lightpink: '#ffb6c1ff',\n lightsalmon: '#ffa07aff',\n lightseagreen: '#20b2aaff',\n lightskyblue: '#87cefaff',\n lightslategray: '#778899ff',\n lightslategrey: '#778899ff',\n lightsteelblue: '#b0c4deff',\n lightyellow: '#ffffe0ff',\n lime: '#00ff00ff',\n limegreen: '#32cd32ff',\n linen: '#faf0e6ff',\n magenta: '#ff00ffff',\n maroon: '#800000ff',\n mediumaquamarine: '#66cdaaff',\n mediumblue: '#0000cdff',\n mediumorchid: '#ba55d3ff',\n mediumpurple: '#9370dbff',\n mediumseagreen: '#3cb371ff',\n mediumslateblue: '#7b68eeff',\n mediumspringgreen: '#00fa9aff',\n mediumturquoise: '#48d1ccff',\n mediumvioletred: '#c71585ff',\n midnightblue: '#191970ff',\n mintcream: '#f5fffaff',\n mistyrose: '#ffe4e1ff',\n moccasin: '#ffe4b5ff',\n navajowhite: '#ffdeadff',\n navy: '#000080ff',\n oldlace: '#fdf5e6ff',\n olive: '#808000ff',\n olivedrab: '#6b8e23ff',\n orange: '#ffa500ff',\n orangered: '#ff4500ff',\n orchid: '#da70d6ff',\n palegoldenrod: '#eee8aaff',\n palegreen: '#98fb98ff',\n paleturquoise: '#afeeeeff',\n palevioletred: '#db7093ff',\n papayawhip: '#ffefd5ff',\n peachpuff: '#ffdab9ff',\n peru: '#cd853fff',\n pink: '#ffc0cbff',\n plum: '#dda0ddff',\n powderblue: '#b0e0e6ff',\n purple: '#800080ff',\n rebeccapurple: '#663399ff',\n red: '#ff0000ff',\n rosybrown: '#bc8f8fff',\n royalblue: '#4169e1ff',\n saddlebrown: '#8b4513ff',\n salmon: '#fa8072ff',\n sandybrown: '#f4a460ff',\n seagreen: '#2e8b57ff',\n seashell: '#fff5eeff',\n sienna: '#a0522dff',\n silver: '#c0c0c0ff',\n skyblue: '#87ceebff',\n slateblue: '#6a5acdff',\n slategray: '#708090ff',\n slategrey: '#708090ff',\n snow: '#fffafaff',\n springgreen: '#00ff7fff',\n steelblue: '#4682b4ff',\n tan: '#d2b48cff',\n teal: '#008080ff',\n thistle: '#d8bfd8ff',\n tomato: '#ff6347ff',\n turquoise: '#40e0d0ff',\n violet: '#ee82eeff',\n wheat: '#f5deb3ff',\n white: '#ffffffff',\n whitesmoke: '#f5f5f5ff',\n yellow: '#ffff00ff',\n yellowgreen: '#9acd32ff',\n};\n\nconst numberRE = /-?\\d+(\\.\\d+)?/g;\nconst HEX_RE = /^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;\nconst RGB_RE =\n /^rgba?\\(\\s*-?\\d+(\\.\\d+)?%?(?:\\s*,\\s*-?\\d+(\\.\\d+)?%?){2}(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$/i;\nconst HSL_RE =\n /^hsla?\\(\\s*\\d+(\\.\\d+)?(?:\\s*,\\s*\\d+(\\.\\d+)?%){2}(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$/i;\n\nfunction isCssColorLiteral(s: string): boolean {\n const c = s.trim().toLowerCase();\n return (\n HEX_RE.test(c) ||\n RGB_RE.test(c) ||\n HSL_RE.test(c) ||\n namedColors[c] !== undefined\n );\n}\n\nfunction parseCssColor(c: string): [number, number, number, number] {\n let color = c.trim().toLowerCase();\n if (namedColors[color]) color = namedColors[color];\n\n if (HEX_RE.test(color)) {\n let hex = color.slice(1);\n if (hex.length === 3)\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n else if (hex.length === 4)\n hex =\n hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\n const hasA = hex.length === 8;\n const v = parseInt(hex, 16);\n const r = (v >> (hasA ? 24 : 16)) & 0xff;\n const g = (v >> (hasA ? 16 : 8)) & 0xff;\n const b = (v >> (hasA ? 8 : 0)) & 0xff;\n const a = hasA ? (v & 0xff) / 255 : 1;\n return [r, g, b, a];\n }\n\n if (RGB_RE.test(color)) {\n const nums = [...color.matchAll(numberRE)].map((m) => +m[0]);\n const [r, g, b, a = 1] = nums;\n return [r, g, b, a];\n }\n\n if (HSL_RE.test(color)) {\n const nums = [...color.matchAll(numberRE)].map((m) => +m[0]);\n let [h, s, l, a = 1] = nums;\n s /= 100;\n l /= 100;\n const c_ = (1 - Math.abs(2 * l - 1)) * s;\n const x = c_ * (1 - Math.abs(((h / 60) % 2) - 1));\n const m_ = l - c_ / 2;\n let [r1, g1, b1] = [0, 0, 0];\n if (h < 60) [r1, g1, b1] = [c_, x, 0];\n else if (h < 120) [r1, g1, b1] = [x, c_, 0];\n else if (h < 180) [r1, g1, b1] = [0, c_, x];\n else if (h < 240) [r1, g1, b1] = [0, x, c_];\n else if (h < 300) [r1, g1, b1] = [x, 0, c_];\n else [r1, g1, b1] = [c_, 0, x];\n return [\n Math.round((r1 + m_) * 255),\n Math.round((g1 + m_) * 255),\n Math.round((b1 + m_) * 255),\n a,\n ];\n }\n\n throw new Error(`Unrecognized CSS color: ${c}`);\n}\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ninterface ExtrapolateConfig {\n extrapolate?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n easing?: (t: number) => number;\n}\n\nfunction interpolateString(fromStr: string, toStr: string, p: number): string {\n const funcRegex = /^([a-zA-Z$_][\\w$]*)\\((-?\\d*\\.?\\d+)([a-zA-Z%]*)\\)$/;\n const m1 = fromStr.match(funcRegex);\n const m2 = toStr.match(funcRegex);\n if (m1 && m2 && m1[1] === m2[1] && m1[3] === m2[3]) {\n const name = m1[1];\n const fromN = parseFloat(m1[2]);\n const toN = parseFloat(m2[2]);\n const unit = m1[3];\n const val = fromN + (toN - fromN) * p;\n return `${name}(${val.toFixed(3)}${unit})`;\n }\n\n if (isCssColorLiteral(fromStr) && isCssColorLiteral(toStr)) {\n const c1 = parseCssColor(fromStr);\n const c2 = parseCssColor(toStr);\n const [r1, g1, b1, a1] = c1;\n const [r2, g2, b2, a2] = c2;\n const R = Math.round(r1 + (r2 - r1) * p);\n const G = Math.round(g1 + (g2 - g1) * p);\n const B = Math.round(b1 + (b2 - b1) * p);\n const A = a1 + (a2 - a1) * p;\n return A < 1\n ? `rgba(${R},${G},${B},${A.toFixed(3)})`\n : `rgb(${R},${G},${B})`;\n }\n\n const fromParts = fromStr.split(/(\\s+)/);\n const toParts = toStr.split(/(\\s+)/);\n if (fromParts.length !== toParts.length) {\n throw new Error(\n `interpolate: template mismatch:\\n \"${fromStr}\"\\n vs \"${toStr}\"`\n );\n }\n const numUnitRE = /^(-?\\d+(\\.\\d+)?)([a-zA-Z%]*)$/;\n const mappers = fromParts.map((fp, i) => {\n const tp = toParts[i];\n\n if (fp === tp && /\\s+/.test(fp)) return () => fp;\n\n const n1 = fp.match(numUnitRE);\n const n2 = tp.match(numUnitRE);\n\n if (n1 && n2 && n1[3] === n2[3]) {\n const fromN = parseFloat(n1[1]);\n const toN = parseFloat(n2[1]);\n const unit = n1[3];\n\n return () => {\n const val = fromN + (toN - fromN) * p;\n return `${val.toFixed(3)}${unit}`;\n };\n }\n\n if (isCssColorLiteral(fp) && isCssColorLiteral(tp)) {\n return () => interpolateString(fp, tp, p);\n }\n\n if (fp === tp) return () => fp;\n\n throw new Error(\n `interpolate: cannot interpolate tokens \"${fp}\" vs \"${tp}\"`\n );\n });\n return mappers.map((fn) => fn()).join('');\n}\n\nexport function to(\n input: number,\n inRange: number[],\n outRange: (number | string)[],\n config?: ExtrapolateConfig\n): number | string {\n const len = inRange.length;\n if (len < 2 || outRange.length !== len) {\n throw new Error(\n 'interpolate: inRange and outRange must be arrays of the same length >= 2'\n );\n }\n\n const extrapolateLeft: ExtrapolateType =\n config?.extrapolateLeft ?? config?.extrapolate ?? 'extend';\n const extrapolateRight: ExtrapolateType =\n config?.extrapolateRight ?? config?.extrapolate ?? 'extend';\n\n const mapValue = (tRaw: number): number | string => {\n let t = tRaw;\n if (tRaw < inRange[0] && extrapolateLeft === 'clamp') {\n t = inRange[0];\n } else if (tRaw > inRange[len - 1] && extrapolateRight === 'clamp') {\n t = inRange[len - 1];\n }\n\n let i = 0;\n if (t <= inRange[0]) {\n i = 0;\n } else if (t >= inRange[len - 1]) {\n i = len - 2;\n } else {\n for (let j = 0; j < len - 1; j++) {\n if (t >= inRange[j] && t <= inRange[j + 1]) {\n i = j;\n break;\n }\n }\n }\n\n const t0 = inRange[i];\n const t1 = inRange[i + 1];\n let p = (t - t0) / (t1 - t0);\n\n if (config?.easing) p = config.easing(p);\n\n const fromOut = outRange[i];\n const toOut = outRange[i + 1];\n\n if (typeof fromOut === 'number' && typeof toOut === 'number') {\n return fromOut + (toOut - fromOut) * p;\n }\n\n return interpolateString(String(fromOut), String(toOut), p);\n };\n\n return mapValue(input);\n}\n","export function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\nfunction rubber2(distanceFromEdge: number, constant: number) {\n return Math.pow(distanceFromEdge, constant * 5);\n}\n\nfunction rubber(distanceFromEdge: number, dimension: number, constant: number) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return rubber2(distanceFromEdge, constant);\n return (\n (distanceFromEdge * dimension * constant) /\n (dimension + constant * distanceFromEdge)\n );\n}\n\nexport function rubberClamp(\n value: number,\n lowerbound: number,\n upperbound: number,\n constant: number = 0.15\n) {\n if (constant === 0) return clamp(value, lowerbound, upperbound);\n\n if (value < lowerbound) {\n return (\n -rubber(lowerbound - value, upperbound - lowerbound, constant) +\n lowerbound\n );\n }\n\n if (value > upperbound) {\n return (\n +rubber(value - upperbound, upperbound - lowerbound, constant) +\n upperbound\n );\n }\n\n return value;\n}\n\nexport function snapTo(\n value: number,\n velocity: number,\n snapPoints: Array<number>\n): number {\n const finalValue = value + velocity * 0.2;\n const getDiff = (point: number) => Math.abs(point - finalValue);\n const deltas = snapPoints.map(getDiff);\n const minDelta = Math.min(...deltas);\n\n return snapPoints.reduce(function (acc, point) {\n if (getDiff(point) === minDelta) {\n return point;\n } else {\n return acc;\n }\n });\n}\n\nexport function move(array: Array<any>, moveIndex: number, toIndex: number) {\n const item = array[moveIndex];\n const length = array.length;\n const diff = moveIndex - toIndex;\n\n if (diff > 0) {\n return [\n ...array.slice(0, toIndex),\n item,\n ...array.slice(toIndex, moveIndex),\n ...array.slice(moveIndex + 1, length),\n ];\n } else if (diff < 0) {\n const targetIndex = toIndex + 1;\n return [\n ...array.slice(0, moveIndex),\n ...array.slice(moveIndex + 1, targetIndex),\n item,\n ...array.slice(targetIndex, length),\n ];\n }\n return array;\n}\n","type Listener<E> = (event: E) => void;\n\nexport abstract class Gesture<E> {\n public static readonly VELOCITY_LIMIT = 20;\n\n private changeListeners = new Set<Listener<E>>();\n private endListeners = new Set<Listener<E>>();\n\n onChange(listener: Listener<E>): this {\n this.changeListeners.add(listener);\n return this;\n }\n\n onEnd(listener: Listener<E>): this {\n this.endListeners.add(listener);\n return this;\n }\n\n protected emitChange(event: E): void {\n this.changeListeners.forEach((fn) => fn(event));\n }\n\n protected emitEnd(event: E): void {\n this.endListeners.forEach((fn) => fn(event));\n }\n\n abstract attach(elements: HTMLElement | HTMLElement | Window): () => void;\n\n abstract cancel(): void;\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface DragEvent {\n down: boolean;\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: PointerEvent;\n cancel: () => void;\n}\n\nexport interface DragConfig {\n threshold?: number;\n axis?: 'x' | 'y';\n initial?: () => { x: number; y: number };\n}\n\nexport class DragGesture extends Gesture<DragEvent> {\n private config: DragConfig;\n private prev = { x: 0, y: 0 };\n private lastTime = 0;\n\n private movement = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n private start = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n\n private pointerCaptured = false;\n private activePointerId: number | null = null;\n private attachedEls = new Set<HTMLElement>();\n private activeEl: HTMLElement | null = null;\n private pointerDownPos = { x: 0, y: 0 };\n private thresholdPassed = false;\n\n constructor(config: DragConfig = {}) {\n super();\n this.config = config;\n }\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n if (elements === window) return () => {};\n\n const els = Array.isArray(elements) ? elements : [elements as HTMLElement];\n const down = this.onDown.bind(this);\n const move = this.onMove.bind(this);\n const up = this.onUp.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('pointerdown', down, { passive: false });\n });\n\n window.addEventListener('pointermove', move, { passive: false });\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('pointerdown', down);\n this.attachedEls.delete(el);\n });\n\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n };\n }\n\n private onDown(e: PointerEvent) {\n if (e.button !== 0) return;\n\n const target = e.currentTarget as HTMLElement;\n if (!this.attachedEls.has(target)) return;\n\n this.activeEl = target;\n this.activePointerId = e.pointerId;\n this.pointerCaptured = false;\n\n this.start =\n this.thresholdPassed === false && this.start.x === 0 && this.start.y === 0\n ? this.config.initial?.() ?? { x: 0, y: 0 }\n : { ...this.offset };\n this.offset = { ...this.start };\n\n this.pointerDownPos = { x: e.clientX, y: e.clientY };\n this.thresholdPassed = false;\n this.prev = { x: e.clientX, y: e.clientY };\n this.lastTime = e.timeStamp;\n\n this.emitChange({\n down: true,\n movement: { x: 0, y: 0 },\n offset: { ...this.offset },\n velocity: { x: 0, y: 0 },\n event: e,\n cancel: this.cancel.bind(this),\n });\n }\n\n private onMove(e: PointerEvent) {\n if (this.activePointerId !== e.pointerId || !this.activeEl) return;\n\n const threshold = this.config.threshold ?? 0;\n if (!this.thresholdPassed) {\n const dxTotal = e.clientX - this.pointerDownPos.x;\n const dyTotal = e.clientY - this.pointerDownPos.y;\n const dist = Math.hypot(dxTotal, dyTotal);\n if (dist < threshold) return;\n this.thresholdPassed = true;\n\n this.activeEl.setPointerCapture(e.pointerId);\n this.pointerCaptured = true;\n }\n\n if (this.pointerCaptured) {\n e.preventDefault();\n }\n\n const dt = Math.max((e.timeStamp - this.lastTime) / 1000, 1e-6);\n this.lastTime = e.timeStamp;\n const dx = e.clientX - this.prev.x;\n const dy = e.clientY - this.prev.y;\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n const moveRaw = {\n x: e.clientX - this.pointerDownPos.x,\n y: e.clientY - this.pointerDownPos.y,\n };\n this.movement = {\n x: this.config.axis === 'y' ? 0 : moveRaw.x,\n y: this.config.axis === 'x' ? 0 : moveRaw.y,\n };\n\n this.offset = {\n x: this.start.x + this.movement.x,\n y: this.start.y + this.movement.y,\n };\n\n this.prev = { x: e.clientX, y: e.clientY };\n\n this.emitChange({\n down: true,\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: this.cancel.bind(this),\n });\n }\n\n private onUp(e: PointerEvent) {\n if (this.activePointerId !== e.pointerId || !this.activeEl) return;\n this.activeEl.releasePointerCapture(e.pointerId);\n\n this.emitEnd({\n down: false,\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: this.cancel.bind(this),\n });\n\n this.activePointerId = null;\n this.pointerCaptured = false;\n }\n\n cancel() {\n if (this.activeEl && this.activePointerId !== null) {\n this.activeEl.releasePointerCapture(this.activePointerId);\n this.activePointerId = null;\n this.activeEl = null;\n }\n }\n}\n","import { useEffect, useRef } from 'react';\n\nexport function useLatest<T>(value: T) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref as React.MutableRefObject<T>;\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface MoveEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: PointerEvent;\n cancel?: () => void;\n}\n\nexport class MoveGesture extends Gesture<MoveEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private prev = { x: 0, y: 0 };\n private lastTime = 0;\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n private startPos: { x: number; y: number } | null = null;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const move = this.onMove.bind(this);\n const leave = this.onLeave.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('pointermove', move, { passive: false });\n el.addEventListener('pointerleave', leave);\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n this.attachedEls.delete(el);\n });\n };\n }\n\n cancel(): void {}\n\n private onMove(e: PointerEvent) {\n const now = e.timeStamp;\n\n if (this.startPos === null) {\n this.startPos = { x: e.clientX, y: e.clientY };\n this.prev = { x: e.clientX, y: e.clientY };\n this.lastTime = now;\n }\n\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const dx = e.clientX - this.prev.x;\n const dy = e.clientY - this.prev.y;\n this.prev = { x: e.clientX, y: e.clientY };\n\n this.movement = {\n x: e.clientX - this.startPos.x,\n y: e.clientY - this.startPos.y,\n };\n\n const tgt = e.currentTarget as HTMLElement | Window;\n const rect =\n tgt instanceof HTMLElement\n ? tgt.getBoundingClientRect()\n : { left: 0, top: 0 };\n\n this.offset = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n };\n\n const rawVx = dx / dt / 1000;\n const rawVy = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawVx, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawVy, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => this.onLeave(e),\n });\n }\n\n private onLeave(e: PointerEvent) {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface ScrollEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: Event;\n cancel?: () => void;\n}\n\nexport class ScrollGesture extends Gesture<ScrollEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n\n private prevScroll = { x: 0, y: 0 };\n private lastTime = 0;\n private endTimeout?: number;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const scroll = this.onScroll.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('scroll', scroll, { passive: true });\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('scroll', scroll);\n this.attachedEls.delete(el);\n });\n\n if (this.endTimeout != null) {\n clearTimeout(this.endTimeout);\n this.endTimeout = undefined;\n }\n };\n }\n\n cancel(): void {}\n\n private onScroll(e: Event) {\n const now = Date.now();\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const tgt = e.currentTarget as HTMLElement | Window;\n const x = tgt instanceof HTMLElement ? tgt.scrollLeft : window.scrollX;\n const y = tgt instanceof HTMLElement ? tgt.scrollTop : window.scrollY;\n\n const dx = x - this.prevScroll.x;\n const dy = y - this.prevScroll.y;\n this.prevScroll = { x, y };\n\n this.movement = { x: dx, y: dy };\n this.offset = { x, y };\n\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n },\n });\n\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n this.endTimeout = window.setTimeout(() => {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }, 150);\n }\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface WheelEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: globalThis.WheelEvent;\n cancel?: () => void;\n}\n\nexport class WheelGesture extends Gesture<WheelEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n\n private lastTime = 0;\n private endTimeout?: number;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const wheel = this.onWheel.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('wheel', wheel, { passive: false });\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('wheel', wheel);\n this.attachedEls.delete(el);\n });\n\n if (this.endTimeout != null) {\n clearTimeout(this.endTimeout);\n this.endTimeout = undefined;\n }\n };\n }\n\n cancel(): void {}\n\n private onWheel(e: globalThis.WheelEvent) {\n e.preventDefault();\n\n const now = e.timeStamp;\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const dx = e.deltaX;\n const dy = e.deltaY;\n\n this.movement = { x: dx, y: dy };\n this.offset.x += dx;\n this.offset.y += dy;\n\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n },\n });\n\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n this.endTimeout = window.setTimeout(() => {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }, 150);\n }\n}\n","import { useRef, useEffect, DependencyList } from 'react';\n\ntype DimensionType = {\n width: number;\n height: number;\n innerWidth: number;\n innerHeight: number;\n};\n\nexport function useDimension(\n callback: (event: DimensionType) => void,\n deps: DependencyList = []\n) {\n const cbRef = useRef(callback);\n\n useEffect(() => {\n cbRef.current = callback;\n }, [callback, ...deps]);\n\n useEffect(() => {\n const handle = () => {\n const root = document.documentElement;\n const { clientWidth: width, clientHeight: height } = root;\n const { innerWidth, innerHeight } = window;\n cbRef.current({ width, height, innerWidth, innerHeight });\n };\n\n const observer = new ResizeObserver(handle);\n observer.observe(document.documentElement);\n\n window.addEventListener('resize', handle);\n\n handle();\n\n return () => {\n observer.disconnect();\n window.removeEventListener('resize', handle);\n };\n }, []);\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\nimport {\n type DragConfig,\n type DragEvent,\n DragGesture,\n} from '../controllers/DragGesture';\nimport { useLatest } from './useLatest';\n\nexport function useDrag<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onDrag: (e: DragEvent & { index: number }) => void,\n config?: DragConfig\n): void {\n const list = Array.isArray(refs) ? refs : [refs];\n const handlerRef = useLatest(onDrag);\n const configRef = useLatest(config);\n\n const gesturesRef = useRef<DragGesture[]>(\n list.map((_, i) => {\n const g = new DragGesture(configRef.current);\n const handler = (e: DragEvent) => handlerRef.current({ ...e, index: i });\n g.onChange(handler).onEnd(handler);\n return g;\n })\n );\n\n useEffect(() => {\n const cleanups = list\n .map((r, i) => {\n const el = r.current;\n if (!el) return null;\n return gesturesRef.current[i].attach(el);\n })\n .filter((fn): fn is () => void => !!fn);\n\n return () => {\n cleanups.forEach((fn) => fn());\n };\n }, [list]);\n\n useEffect(\n () => () => {\n gesturesRef.current.forEach((g) => g.cancel());\n },\n []\n );\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\ntype MeasurementValue = number | number[];\ninterface MeasurementType {\n left: MeasurementValue;\n top: MeasurementValue;\n width: MeasurementValue;\n height: MeasurementValue;\n vLeft: MeasurementValue;\n vTop: MeasurementValue;\n}\n\nexport function useMeasure(\n refs: RefObject<HTMLElement>[],\n callback: (m: MeasurementType) => void,\n deps: DependencyList = []\n) {\n const cbRef = useRef(callback);\n\n useEffect(() => {\n cbRef.current = callback;\n }, [callback, ...deps]);\n\n useEffect(() => {\n const els = refs\n .map((r) => r.current)\n .filter((el): el is HTMLElement => el !== null);\n\n if (els.length === 0) return;\n\n const observer = new ResizeObserver((entries) => {\n const left: number[] = [];\n const top: number[] = [];\n const width: number[] = [];\n const height: number[] = [];\n const vLeft: number[] = [];\n const vTop: number[] = [];\n\n els.forEach((el) => {\n const entry = entries.find((en) => en.target === el);\n if (!entry) {\n left.push(0);\n top.push(0);\n width.push(0);\n height.push(0);\n vLeft.push(0);\n vTop.push(0);\n } else {\n const {\n left: lx,\n top: ty,\n width: w,\n height: h,\n } = entry.target.getBoundingClientRect();\n const pageX = lx + window.scrollX;\n const pageY = ty + window.scrollY;\n\n left.push(pageX);\n top.push(pageY);\n width.push(w);\n height.push(h);\n vLeft.push(lx);\n vTop.push(ty);\n }\n });\n\n cbRef.current({ left, top, width, height, vLeft, vTop });\n });\n\n els.forEach((el) => observer.observe(el));\n\n return () => {\n observer.disconnect();\n };\n }, [refs]);\n}\n","import { useLayoutEffect, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { useValue } from './useValue';\nimport { isDescriptor } from './helpers';\nimport { withSpring } from './descriptors';\nimport type { Primitive, Descriptor } from './types';\n\ntype ConfigSingle<T extends Primitive> = {\n from?: T;\n enter?: T | Descriptor;\n exit?: T | Descriptor;\n};\n\ntype ConfigMulti<I extends Record<string, Primitive>> = {\n from: I;\n enter?: I | Descriptor;\n exit?: I | Descriptor;\n};\n\nexport function useMount<T extends Primitive = number>(\n isOpen: boolean,\n config?: ConfigSingle<T>\n): (\n fn: (value: MotionValue<T>, mounted: boolean) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount<I extends Record<string, Primitive>>(\n isOpen: boolean,\n config: ConfigMulti<I>\n): (\n fn: (\n values: { [K in keyof I]: MotionValue<I[K]> },\n mounted: boolean\n ) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount(\n isOpen: boolean,\n config: any = {}\n): (fn: (values: any, mounted: boolean) => React.ReactNode) => React.ReactNode {\n const [mounted, setMounted] = useState(isOpen);\n\n const from = config.from ?? 0;\n const enter = config.enter ?? 1;\n const exit = config.exit ?? 0;\n\n const [values, setValues] = useValue(from);\n\n useLayoutEffect(() => {\n if (isOpen) {\n setMounted(true);\n queueMicrotask(() => {\n setValues(isDescriptor(enter) ? enter : withSpring(enter));\n });\n } else {\n queueMicrotask(() => {\n setValues(\n isDescriptor(exit)\n ? {\n ...exit,\n options: {\n ...exit.options,\n onComplete: () => {\n exit.options?.onComplete?.();\n setMounted(false);\n },\n },\n }\n : withSpring(exit, {\n onComplete() {\n setMounted(false);\n },\n })\n );\n });\n }\n }, [isOpen, JSON.stringify(enter), JSON.stringify(exit)]);\n\n return (fn: (vals: any, m: boolean) => React.ReactNode) =>\n fn(values as any, mounted);\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\nimport { type MoveEvent, MoveGesture } from '../controllers/MoveGesture';\nimport { useLatest } from './useLatest';\n\nexport function useMove(\n refs: Window,\n onMove: (e: MoveEvent & { index: 0 }) => void\n): void;\n\nexport function useMove<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onMove: (e: MoveEvent & { index: number }) => void\n): void;\n\nexport function useMove<T extends HTMLElement>(refs: any, onMove: any): void {\n const handlerRef = useLatest(onMove);\n\n if (refs === window) {\n const gestureRef = useRef<MoveGesture>();\n if (!gestureRef.current) {\n const g = new MoveGesture();\n const handler = (e: MoveEvent) => handlerRef.current({ ...e, index: 0 });\n g.onChange(handler).onEnd(handler);\n gestureRef.current = g;\n }\n\n useEffect(() => {\n const cleanup = gestureRef.current!.attach(window);\n return () => {\n cleanup();\n };\n }, [refs]);\n\n return;\n }\n\n const list: Array<RefObject<T>> = Array.isArray(refs) ? refs : [refs];\n\n const gesturesRef = useRef<MoveGesture[]>([]);\n if (gesturesRef.current.length !== list.length) {\n gesturesRef.current = list.map((_, i) => {\n const g = new MoveGesture();\n const handler = (e: MoveEvent) => handlerRef.current({ ...e, index: i });\n g.onChange(handler).onEnd(handler);\n return g;\n });\n }\n\n useEffect(() => {\n const cleanups = list\n .map((r, i) => {\n const el = r.current;\n if (!el) return null;\n return gesturesRef.current[i].attach(el);\n })\n .filter((fn): fn is () => void => !!fn);\n\n return () => cleanups.forEach((fn) => fn());\n }, [list]);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nexport function useOutsideClick(\n ref: RefObject<HTMLElement>,\n callback: (event: MouseEvent | TouchEvent) => void,\n deps: DependencyList = []\n): void {\n const cbRef = useRef(callback);\n\n useEffect(() => {\n cbRef.current = callback;\n }, [callback, ...deps]);\n\n useEffect(() => {\n function onClick(event: MouseEvent | TouchEvent) {\n const el = ref.current;\n const target = event.target as Node | null;\n\n if (!el || !target || !target.isConnected) return;\n if (!el.contains(target)) {\n cbRef.current(event);\n }\n }\n\n document.addEventListener('mousedown', onClick);\n document.addEventListener('touchstart', onClick);\n\n return () => {\n document.removeEventListener('mousedown', onClick);\n document.removeEventListener('touchstart', onClick);\n };\n }, [ref]);\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\nimport { type ScrollEvent, ScrollGesture } from '../controllers/ScrollGesture';\nimport { useLatest } from './useLatest';\n\nexport function useScroll(\n refs: Window,\n onScroll: (e: ScrollEvent & { index: 0 }) => void\n): void;\n\nexport function useScroll<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onScroll: (e: ScrollEvent & { index: number }) => void\n): void;\n\nexport function useScroll<T extends HTMLElement>(\n refs: any,\n onScroll: any\n): void {\n const handlerRef = useLatest(onScroll);\n\n if (refs === window) {\n const gestureRef = useRef<ScrollGesture>();\n if (!gestureRef.current) {\n const g = new ScrollGesture();\n const handler = (e: ScrollEvent) =>\n handlerRef.current({ ...e, index: 0 });\n g.onChange(handler).onEnd(handler);\n gestureRef.current = g;\n }\n\n useEffect(() => {\n const cleanup = gestureRef.current!.attach(window);\n return () => cleanup();\n }, [refs]);\n\n return;\n }\n\n const list: Array<RefObject<T>> = Array.isArray(refs) ? refs : [refs];\n\n const gesturesRef = useRef<ScrollGesture[]>([]);\n if (gesturesRef.current.length !== list.length) {\n gesturesRef.current = list.map((_, i) => {\n const g = new ScrollGesture();\n const handler = (e: ScrollEvent) =>\n handlerRef.current({ ...e, index: i });\n g.onChange(handler).onEnd(handler);\n return g;\n });\n }\n\n useEffect(() => {\n const cleanups = list\n .map((r, i) => {\n const el = r.current;\n if (!el) return null;\n return gesturesRef.current[i].attach(el);\n })\n .filter((fn): fn is () => void => !!fn);\n\n return () => {\n cleanups.forEach((fn) => fn());\n };\n }, [list]);\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\nimport { type WheelEvent, WheelGesture } from '../controllers/WheelGesture';\nimport { useLatest } from './useLatest';\n\nexport function useWheel(\n refs: Window,\n onWheel: (e: WheelEvent & { index: 0 }) => void\n): void;\n\nexport function useWheel<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onWheel: (e: WheelEvent & { index: number }) => void\n): void;\n\nexport function useWheel<T extends HTMLElement>(refs: any, onWheel: any): void {\n const handlerRef = useLatest(onWheel);\n\n if (refs === window) {\n const gestureRef = useRef<WheelGesture>();\n if (!gestureRef.current) {\n const g = new WheelGesture();\n const handler = (e: WheelEvent) => handlerRef.current({ ...e, index: 0 });\n g.onChange(handler).onEnd(handler);\n gestureRef.current = g;\n }\n\n useEffect(() => {\n const cleanup = gestureRef.current!.attach(window);\n return () => cleanup();\n }, [refs]);\n\n return;\n }\n\n const list: Array<RefObject<T>> = Array.isArray(refs) ? refs : [refs];\n\n const gesturesRef = useRef<WheelGesture[]>([]);\n if (gesturesRef.current.length !== list.length) {\n gesturesRef.current = list.map((_, i) => {\n const g = new WheelGesture();\n g.onChange((e) => handlerRef.current({ ...e, index: i })).onEnd((e) =>\n handlerRef.current({ ...e, index: i })\n );\n return g;\n });\n }\n\n useEffect(() => {\n const cleanups = list\n .map((r, i) => {\n const el = r.current;\n if (!el) return null;\n return gesturesRef.current[i].attach(el);\n })\n .filter((fn): fn is () => void => !!fn);\n\n return () => {\n cleanups.forEach((fn) => fn());\n };\n }, [list]);\n}\n"],"names":["filterCallbackOptions","options","attach","onStart","onChange","isDescriptor","x","type","buildAnimation","mv","_a","to","_d","spring","timing","decay","_b","velocity","delay","_c","console","warn","start","pause","resume","cancel","reset","buildParallel","mvMap","step","ctrls","Object","entries","filter","key","__read","undefined","map","idx","parallel","useValue","initial","controllerRef","useRef","value","useMemo","Array","isArray","v","MotionValue","fromEntries","k","ctrl","mvs","forEach","val","i","set","desc","mvsRecord","toString","animations","__assign","sequence","inner","animation","seqCtrls","seq","loop","iterations","par","handleArray","s","handleObject","_e","_f","_g","_j","_h","handlePrimitive","current","AnimationConfig","Timing","BOUNCE","duration","easing","Easing","bounce","EASE_IN","in","ease","EASE_OUT","out","EASE_IN_OUT","inOut","POWER1","bezier","POWER2","POWER3","POWER4","LINEAR","linear","Spring","ELASTIC","mass","damping","stiffness","EASE","STIFF","WOBBLE","withSpring","opts","onComplete","namedColors","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","numberRE","HEX_RE","RGB_RE","HSL_RE","isCssColorLiteral","c","trim","toLowerCase","test","parseCssColor","color","hex","slice","length","hasA","parseInt","r","g","b","a","nums","__spreadArray","matchAll","m","h","l","_k","c_","Math","abs","m_","_l","r1","g1","b1","round","Error","interpolateString","fromStr","toStr","p","funcRegex","m1","match","m2","name_1","fromN","parseFloat","toN","unit","concat","toFixed","c1","c2","a1","r2","g2","b2","a2","R","G","B","A","fromParts","split","toParts","numUnitRE","fp","tp","n1","n2","fromN_1","toN_1","unit_1","fn","join","clamp","lowerbound","upperbound","min","max","rubber","distanceFromEdge","dimension","constant","Infinity","pow","rubber2","Gesture","this","changeListeners","Set","endListeners","prototype","listener","add","onEnd","emitChange","event","emitEnd","VELOCITY_LIMIT","DragGesture","_super","config","_this","prev","y","lastTime","movement","offset","pointerCaptured","activePointerId","attachedEls","activeEl","pointerDownPos","thresholdPassed","__extends","elements","window","els","down","onDown","bind","move","onMove","up","onUp","el","addEventListener","passive","removeEventListener","delete","e","button","target","currentTarget","has","pointerId","clientX","clientY","timeStamp","threshold","dxTotal","dyTotal","hypot","setPointerCapture","preventDefault","dt","rawX","rawY","moveRaw","axis","releasePointerCapture","useLatest","ref","useEffect","MoveGesture","startPos","leave","onLeave","now","dx","dy","tgt","rect","HTMLElement","getBoundingClientRect","left","top","rawVx","rawVy","ScrollGesture","prevScroll","scroll","onScroll","endTimeout","clearTimeout","Date","scrollLeft","scrollX","scrollTop","scrollY","setTimeout","WheelGesture","wheel","onWheel","deltaX","deltaY","bool","perc","val1","val2","array","moveIndex","toIndex","item","diff","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","input","inRange","outRange","len","extrapolateLeft","extrapolate","extrapolateRight","tRaw","t","j","t0","fromOut","toOut","String","mapValue","callback","deps","cbRef","handle","root","document","documentElement","width","clientWidth","height","clientHeight","innerWidth","innerHeight","observer","ResizeObserver","observe","disconnect","refs","onDrag","list","handlerRef","configRef","gesturesRef","_","handler","index","cleanups","vLeft","vTop","entry","find","en","lx","ty","w","pageX","pageY","push","isOpen","useState","mounted","setMounted","from","enter","exit","values","setValues","useLayoutEffect","queueMicrotask","JSON","stringify","gestureRef_1","cleanup","onClick","isConnected","contains","ms"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/animation/helpers.ts","../src/animation/drivers.ts","../src/animation/useValue.ts","../src/animation/AnimationConfig.ts","../src/animation/descriptors.ts","../src/animation/to.ts","../src/utils/index.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/hooks/useRecognizer.ts","../src/gestures/controllers/MoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/gestures/hooks/useDrag.ts","../src/animation/useMount.ts","../src/gestures/hooks/useMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/gestures/hooks/useWheel.ts"],"sourcesContent":["import type { Descriptor } from './types';\n\nexport function filterCallbackOptions(\n options: Record<string, any> = {},\n attach: boolean\n) {\n if (attach) return options;\n const { onStart, onChange, onComplete, ...rest } = options;\n return rest;\n}\n\nexport function isDescriptor(x: unknown): x is Descriptor {\n return (\n typeof x === 'object' &&\n x !== null &&\n 'type' in x &&\n typeof (x as any).type === 'string'\n );\n}\n","import {\n decay,\n MotionValue,\n spring,\n timing,\n parallel,\n delay,\n} from '@raidipesh78/re-motion';\n\nimport { filterCallbackOptions } from './helpers';\nimport type { Primitive, Descriptor } from './types';\n\nexport function buildAnimation(\n mv: MotionValue<Primitive>,\n { type, to, options = {} }: Descriptor\n) {\n switch (type) {\n case 'spring':\n return spring(mv, to as Primitive, options);\n case 'timing':\n return timing(mv, to as Primitive, options);\n case 'decay':\n return decay(mv as MotionValue<number>, options.velocity ?? 0, options);\n case 'delay':\n return delay(options.delay ?? 0);\n default:\n console.warn(`Unsupported animation type: ${type}`);\n return { start() {}, pause() {}, resume() {}, cancel() {}, reset() {} };\n }\n}\n\nexport function buildParallel(\n mvMap: Record<string, MotionValue<Primitive>>,\n step: Descriptor\n) {\n const entries = Object.entries(mvMap).filter(([key]) => {\n return (\n step.type === 'decay' ||\n step.type === 'delay' ||\n (step.to as Record<string, Primitive>)[key] !== undefined\n );\n });\n\n const ctrls = entries.map(([key, mv], idx) =>\n buildAnimation(mv, {\n type: step.type,\n to:\n step.type === 'decay' || step.type === 'delay'\n ? (step.to as any)\n : (step.to as Record<string, Primitive>)[key],\n options: filterCallbackOptions(step.options, idx === 0),\n })\n );\n\n return parallel(ctrls);\n}\n","import { useMemo, useRef } from 'react';\nimport { delay, sequence, loop, MotionValue } from '@raidipesh78/re-motion';\n\nimport { buildAnimation, buildParallel } from './drivers';\nimport { filterCallbackOptions, isDescriptor } from './helpers';\nimport type { Primitive, Descriptor, Controls } from './types';\n\ntype Widen<T> = T extends number ? number : T extends string ? string : T;\n\ntype ValueReturn<T> = T extends Primitive\n ? MotionValue<Widen<T>>\n : T extends Primitive[]\n ? MotionValue<Widen<Primitive>>[]\n : { [K in keyof T]: MotionValue<Widen<T[K]>> };\n\ntype Base = Primitive | Primitive[] | Record<string, Primitive>;\n\nexport function useValue<T extends Base>(\n initial: T\n): [ValueReturn<T>, (to: Base | Descriptor) => void, Controls] {\n const controllerRef = useRef<Controls | null>(null);\n\n const value = useMemo(() => {\n if (Array.isArray(initial)) {\n return initial.map((v) => new MotionValue(v));\n }\n\n if (typeof initial === 'object') {\n return Object.fromEntries(\n Object.entries(initial).map(([k, v]) => [k, new MotionValue(v)])\n );\n }\n\n return new MotionValue(initial);\n }, []) as ValueReturn<T>;\n\n function set(to: Base | Descriptor) {\n let ctrl: Controls | null = null;\n\n if (Array.isArray(initial)) {\n ctrl = handleArray(\n value as Array<MotionValue<Primitive>>,\n to as Primitive[] | Descriptor\n );\n } else if (typeof initial === 'object') {\n ctrl = handleObject(\n value as Record<string, MotionValue<Primitive>>,\n to as Record<string, Primitive> | Descriptor\n );\n } else {\n ctrl = handlePrimitive(\n value as MotionValue<Primitive>,\n to as Primitive | Descriptor\n );\n }\n\n controllerRef.current = ctrl;\n if (ctrl) ctrl.start();\n }\n\n const controls = {\n start: () => controllerRef.current?.start(),\n pause: () => controllerRef.current?.pause(),\n resume: () => controllerRef.current?.resume(),\n cancel: () => controllerRef.current?.cancel(),\n reset: () => controllerRef.current?.reset(),\n };\n\n return [value, set, controls] as const;\n}\n\nfunction handlePrimitive(\n mv: MotionValue<Primitive>,\n to: Primitive | Descriptor\n) {\n if (typeof to === 'number' || typeof to === 'string') {\n mv.set(to);\n return null;\n }\n\n if (to.type === 'sequence') {\n const animations = to.options?.animations ?? [];\n const ctrls = animations.map((step) => buildAnimation(mv, step));\n return sequence(ctrls, to.options);\n }\n\n if (to.type === 'loop') {\n const animation = to.options?.animation;\n if (!animation) return null;\n\n if (animation.type === 'sequence') {\n const animations = animation.options?.animations ?? [];\n const ctrls = animations.map((step) => buildAnimation(mv, step));\n return loop(sequence(ctrls), to.options?.iterations ?? 0, to.options);\n }\n\n return loop(\n buildAnimation(mv, animation),\n to.options?.iterations ?? 0,\n to.options\n );\n }\n\n return buildAnimation(mv, to);\n}\n\nfunction handleArray(\n mvs: Array<MotionValue<Primitive>>,\n to: Primitive[] | Descriptor\n) {\n if (!isDescriptor(to)) {\n (to as Primitive[]).forEach((val, i) => {\n mvs[i]?.set(val);\n });\n return null;\n }\n\n const desc = to as Descriptor;\n\n const mvsRecord = Object.fromEntries(\n mvs.map((mv, idx) => [idx.toString(), mv])\n ) as Record<string, MotionValue<Primitive>>;\n\n switch (desc.type) {\n case 'sequence': {\n const ctrls = desc.options!.animations!.map((step) =>\n step.type === 'delay'\n ? delay(step.options?.delay ?? 0)\n : buildParallel(mvsRecord, {\n ...step,\n to: Array.isArray(step.to)\n ? Object.fromEntries(\n (step.to as Primitive[]).map((v, i) => [i.toString(), v])\n )\n : step.to,\n })\n );\n\n return sequence(ctrls, desc.options);\n }\n\n case 'loop': {\n const inner = desc.options!.animation!;\n\n if (inner.type === 'sequence') {\n const seqCtrls = inner.options!.animations!.map((step) =>\n buildParallel(mvsRecord, {\n ...step,\n to: Array.isArray(step.to)\n ? Object.fromEntries(\n (step.to as Primitive[]).map((v, i) => [i.toString(), v])\n )\n : step.to,\n })\n );\n\n const seq = sequence(\n seqCtrls,\n filterCallbackOptions(inner.options, true)\n );\n\n return loop(\n seq,\n desc.options!.iterations ?? 0,\n filterCallbackOptions(desc.options, true)\n );\n }\n\n const par = buildParallel(mvsRecord, inner);\n return loop(\n par,\n desc.options!.iterations ?? 0,\n filterCallbackOptions(desc.options, true)\n );\n }\n\n case 'decay':\n return buildParallel(mvsRecord, desc);\n\n default:\n return buildParallel(mvsRecord, desc);\n }\n}\n\nfunction handleObject(\n mvs: Record<string, MotionValue<Primitive>>,\n to: Record<string, Primitive> | Descriptor\n) {\n if (isDescriptor(to)) {\n switch (to.type) {\n case 'sequence': {\n const ctrls = to.options!.animations!.map((step) =>\n step.type === 'delay'\n ? delay(step.options!.delay ?? 0)\n : buildParallel(mvs, step)\n );\n return sequence(ctrls, to.options);\n }\n\n case 'loop': {\n const inner = to.options!.animation!;\n if (inner.type === 'sequence') {\n const ctrls = inner.options!.animations!.map((s) =>\n buildParallel(mvs, s)\n );\n return loop(\n sequence(ctrls, filterCallbackOptions(inner.options, true)),\n to.options!.iterations ?? 0,\n filterCallbackOptions(to.options, true)\n );\n }\n return loop(\n buildParallel(mvs, inner),\n to.options!.iterations ?? 0,\n filterCallbackOptions(to.options, true)\n );\n }\n\n case 'decay':\n return buildParallel(mvs, to);\n\n default:\n return buildParallel(mvs, to);\n }\n }\n\n Object.entries(to).forEach(([k, v]) => {\n mvs[k]?.set(v);\n });\n\n return null;\n}\n","import { Easing } from '@raidipesh78/re-motion';\n\nexport const AnimationConfig = {\n Timing: {\n BOUNCE: { duration: 500, easing: Easing.bounce },\n EASE_IN: { duration: 500, easing: Easing.in(Easing.ease) },\n EASE_OUT: { duration: 500, easing: Easing.out(Easing.ease) },\n EASE_IN_OUT: { duration: 500, easing: Easing.inOut(Easing.ease) },\n POWER1: { duration: 500, easing: Easing.bezier(0.17, 0.42, 0.51, 0.97) },\n POWER2: { duration: 500, easing: Easing.bezier(0.07, 0.11, 0.13, 1) },\n POWER3: { duration: 500, easing: Easing.bezier(0.09, 0.7, 0.16, 1.04) },\n POWER4: { duration: 500, easing: Easing.bezier(0.05, 0.54, 0, 1.03) },\n LINEAR: { duration: 500, easing: Easing.linear },\n },\n Spring: {\n ELASTIC: { mass: 1, damping: 18, stiffness: 250 },\n EASE: { mass: 1, damping: 20, stiffness: 158 },\n STIFF: { mass: 1, damping: 18, stiffness: 350 },\n WOBBLE: { mass: 1, damping: 8, stiffness: 250 },\n },\n};\n","import { AnimationConfig } from './AnimationConfig';\nimport {\n Callbacks,\n DecayOptions,\n Descriptor,\n SpringOptions,\n TimingOptions,\n} from './types';\n\nexport const withSpring = (\n to: Descriptor['to'],\n opts?: SpringOptions & Callbacks\n): Descriptor => ({\n type: 'spring',\n to,\n options: {\n stiffness: opts?.stiffness ?? AnimationConfig.Spring.EASE.stiffness,\n damping: opts?.damping ?? AnimationConfig.Spring.EASE.damping,\n mass: opts?.mass ?? AnimationConfig.Spring.EASE.mass,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withTiming = (\n to: Descriptor['to'],\n opts?: TimingOptions & Callbacks\n): Descriptor => ({\n type: 'timing',\n to,\n options: {\n duration: opts?.duration,\n easing: opts?.easing,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withDecay = (\n velocity: number,\n opts?: DecayOptions & Callbacks\n): Descriptor => ({\n type: 'decay',\n options: {\n velocity,\n onStart: opts?.onStart,\n onChange: opts?.onChange,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withDelay = (ms: number): Descriptor => ({\n type: 'delay',\n options: { delay: ms },\n});\n\nexport const withSequence = (\n animations: Descriptor[],\n opts?: Omit<Callbacks, 'onChange'>\n): Descriptor => ({\n type: 'sequence',\n options: {\n animations,\n onStart: opts?.onStart,\n onComplete: opts?.onComplete,\n },\n});\n\nexport const withLoop = (\n animation: Descriptor,\n iterations = Infinity,\n opts?: Omit<Callbacks, 'onChange'>\n): Descriptor => ({\n type: 'loop',\n options: {\n animation,\n iterations,\n onStart: opts?.onStart,\n onComplete: opts?.onComplete,\n },\n});\n","const namedColors: Record<string, string> = {\n transparent: '#00000000',\n aliceblue: '#f0f8ffff',\n antiquewhite: '#faebd7ff',\n aqua: '#00ffffff',\n aquamarine: '#7fffd4ff',\n azure: '#f0ffffff',\n beige: '#f5f5dcff',\n bisque: '#ffe4c4ff',\n black: '#000000ff',\n blanchedalmond: '#ffebcdff',\n blue: '#0000ffff',\n blueviolet: '#8a2be2ff',\n brown: '#a52a2aff',\n burlywood: '#deb887ff',\n burntsienna: '#ea7e5dff',\n cadetblue: '#5f9ea0ff',\n chartreuse: '#7fff00ff',\n chocolate: '#d2691eff',\n coral: '#ff7f50ff',\n cornflowerblue: '#6495edff',\n cornsilk: '#fff8dcff',\n crimson: '#dc143cff',\n cyan: '#00ffffff',\n darkblue: '#00008bff',\n darkcyan: '#008b8bff',\n darkgoldenrod: '#b8860bff',\n darkgray: '#a9a9a9ff',\n darkgreen: '#006400ff',\n darkgrey: '#a9a9a9ff',\n darkkhaki: '#bdb76bff',\n darkmagenta: '#8b008bff',\n darkolivegreen: '#556b2fff',\n darkorange: '#ff8c00ff',\n darkorchid: '#9932ccff',\n darkred: '#8b0000ff',\n darksalmon: '#e9967aff',\n darkseagreen: '#8fbc8fff',\n darkslateblue: '#483d8bff',\n darkslategray: '#2f4f4fff',\n darkslategrey: '#2f4f4fff',\n darkturquoise: '#00ced1ff',\n darkviolet: '#9400d3ff',\n deeppink: '#ff1493ff',\n deepskyblue: '#00bfffff',\n dimgray: '#696969ff',\n dimgrey: '#696969ff',\n dodgerblue: '#1e90ffff',\n firebrick: '#b22222ff',\n floralwhite: '#fffaf0ff',\n forestgreen: '#228b22ff',\n fuchsia: '#ff00ffff',\n gainsboro: '#dcdcdcff',\n ghostwhite: '#f8f8ffff',\n gold: '#ffd700ff',\n goldenrod: '#daa520ff',\n gray: '#808080ff',\n green: '#008000ff',\n greenyellow: '#adff2fff',\n grey: '#808080ff',\n honeydew: '#f0fff0ff',\n hotpink: '#ff69b4ff',\n indianred: '#cd5c5cff',\n indigo: '#4b0082ff',\n ivory: '#fffff0ff',\n khaki: '#f0e68cff',\n lavender: '#e6e6faff',\n lavenderblush: '#fff0f5ff',\n lawngreen: '#7cfc00ff',\n lemonchiffon: '#fffacdff',\n lightblue: '#add8e6ff',\n lightcoral: '#f08080ff',\n lightcyan: '#e0ffffff',\n lightgoldenrodyellow: '#fafad2ff',\n lightgray: '#d3d3d3ff',\n lightgreen: '#90ee90ff',\n lightgrey: '#d3d3d3ff',\n lightpink: '#ffb6c1ff',\n lightsalmon: '#ffa07aff',\n lightseagreen: '#20b2aaff',\n lightskyblue: '#87cefaff',\n lightslategray: '#778899ff',\n lightslategrey: '#778899ff',\n lightsteelblue: '#b0c4deff',\n lightyellow: '#ffffe0ff',\n lime: '#00ff00ff',\n limegreen: '#32cd32ff',\n linen: '#faf0e6ff',\n magenta: '#ff00ffff',\n maroon: '#800000ff',\n mediumaquamarine: '#66cdaaff',\n mediumblue: '#0000cdff',\n mediumorchid: '#ba55d3ff',\n mediumpurple: '#9370dbff',\n mediumseagreen: '#3cb371ff',\n mediumslateblue: '#7b68eeff',\n mediumspringgreen: '#00fa9aff',\n mediumturquoise: '#48d1ccff',\n mediumvioletred: '#c71585ff',\n midnightblue: '#191970ff',\n mintcream: '#f5fffaff',\n mistyrose: '#ffe4e1ff',\n moccasin: '#ffe4b5ff',\n navajowhite: '#ffdeadff',\n navy: '#000080ff',\n oldlace: '#fdf5e6ff',\n olive: '#808000ff',\n olivedrab: '#6b8e23ff',\n orange: '#ffa500ff',\n orangered: '#ff4500ff',\n orchid: '#da70d6ff',\n palegoldenrod: '#eee8aaff',\n palegreen: '#98fb98ff',\n paleturquoise: '#afeeeeff',\n palevioletred: '#db7093ff',\n papayawhip: '#ffefd5ff',\n peachpuff: '#ffdab9ff',\n peru: '#cd853fff',\n pink: '#ffc0cbff',\n plum: '#dda0ddff',\n powderblue: '#b0e0e6ff',\n purple: '#800080ff',\n rebeccapurple: '#663399ff',\n red: '#ff0000ff',\n rosybrown: '#bc8f8fff',\n royalblue: '#4169e1ff',\n saddlebrown: '#8b4513ff',\n salmon: '#fa8072ff',\n sandybrown: '#f4a460ff',\n seagreen: '#2e8b57ff',\n seashell: '#fff5eeff',\n sienna: '#a0522dff',\n silver: '#c0c0c0ff',\n skyblue: '#87ceebff',\n slateblue: '#6a5acdff',\n slategray: '#708090ff',\n slategrey: '#708090ff',\n snow: '#fffafaff',\n springgreen: '#00ff7fff',\n steelblue: '#4682b4ff',\n tan: '#d2b48cff',\n teal: '#008080ff',\n thistle: '#d8bfd8ff',\n tomato: '#ff6347ff',\n turquoise: '#40e0d0ff',\n violet: '#ee82eeff',\n wheat: '#f5deb3ff',\n white: '#ffffffff',\n whitesmoke: '#f5f5f5ff',\n yellow: '#ffff00ff',\n yellowgreen: '#9acd32ff',\n};\n\nconst numberRE = /-?\\d+(\\.\\d+)?/g;\nconst HEX_RE = /^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;\nconst RGB_RE =\n /^rgba?\\(\\s*-?\\d+(\\.\\d+)?%?(?:\\s*,\\s*-?\\d+(\\.\\d+)?%?){2}(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$/i;\nconst HSL_RE =\n /^hsla?\\(\\s*\\d+(\\.\\d+)?(?:\\s*,\\s*\\d+(\\.\\d+)?%){2}(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$/i;\n\nfunction isCssColorLiteral(s: string): boolean {\n const c = s.trim().toLowerCase();\n return (\n HEX_RE.test(c) ||\n RGB_RE.test(c) ||\n HSL_RE.test(c) ||\n namedColors[c] !== undefined\n );\n}\n\nfunction parseCssColor(c: string): [number, number, number, number] {\n let color = c.trim().toLowerCase();\n if (namedColors[color]) color = namedColors[color];\n\n if (HEX_RE.test(color)) {\n let hex = color.slice(1);\n if (hex.length === 3)\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n else if (hex.length === 4)\n hex =\n hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\n const hasA = hex.length === 8;\n const v = parseInt(hex, 16);\n const r = (v >> (hasA ? 24 : 16)) & 0xff;\n const g = (v >> (hasA ? 16 : 8)) & 0xff;\n const b = (v >> (hasA ? 8 : 0)) & 0xff;\n const a = hasA ? (v & 0xff) / 255 : 1;\n return [r, g, b, a];\n }\n\n if (RGB_RE.test(color)) {\n const nums = [...color.matchAll(numberRE)].map((m) => +m[0]);\n const [r, g, b, a = 1] = nums;\n return [r, g, b, a];\n }\n\n if (HSL_RE.test(color)) {\n const nums = [...color.matchAll(numberRE)].map((m) => +m[0]);\n let [h, s, l, a = 1] = nums;\n s /= 100;\n l /= 100;\n const c_ = (1 - Math.abs(2 * l - 1)) * s;\n const x = c_ * (1 - Math.abs(((h / 60) % 2) - 1));\n const m_ = l - c_ / 2;\n let [r1, g1, b1] = [0, 0, 0];\n if (h < 60) [r1, g1, b1] = [c_, x, 0];\n else if (h < 120) [r1, g1, b1] = [x, c_, 0];\n else if (h < 180) [r1, g1, b1] = [0, c_, x];\n else if (h < 240) [r1, g1, b1] = [0, x, c_];\n else if (h < 300) [r1, g1, b1] = [x, 0, c_];\n else [r1, g1, b1] = [c_, 0, x];\n return [\n Math.round((r1 + m_) * 255),\n Math.round((g1 + m_) * 255),\n Math.round((b1 + m_) * 255),\n a,\n ];\n }\n\n throw new Error(`Unrecognized CSS color: ${c}`);\n}\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ninterface ExtrapolateConfig {\n extrapolate?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n easing?: (t: number) => number;\n}\n\nfunction interpolateString(fromStr: string, toStr: string, p: number): string {\n const funcRegex = /^([a-zA-Z$_][\\w$]*)\\((-?\\d*\\.?\\d+)([a-zA-Z%]*)\\)$/;\n const m1 = fromStr.match(funcRegex);\n const m2 = toStr.match(funcRegex);\n if (m1 && m2 && m1[1] === m2[1] && m1[3] === m2[3]) {\n const name = m1[1];\n const fromN = parseFloat(m1[2]);\n const toN = parseFloat(m2[2]);\n const unit = m1[3];\n const val = fromN + (toN - fromN) * p;\n return `${name}(${val.toFixed(3)}${unit})`;\n }\n\n if (isCssColorLiteral(fromStr) && isCssColorLiteral(toStr)) {\n const c1 = parseCssColor(fromStr);\n const c2 = parseCssColor(toStr);\n const [r1, g1, b1, a1] = c1;\n const [r2, g2, b2, a2] = c2;\n const R = Math.round(r1 + (r2 - r1) * p);\n const G = Math.round(g1 + (g2 - g1) * p);\n const B = Math.round(b1 + (b2 - b1) * p);\n const A = a1 + (a2 - a1) * p;\n return A < 1\n ? `rgba(${R},${G},${B},${A.toFixed(3)})`\n : `rgb(${R},${G},${B})`;\n }\n\n const fromParts = fromStr.split(/(\\s+)/);\n const toParts = toStr.split(/(\\s+)/);\n if (fromParts.length !== toParts.length) {\n throw new Error(\n `interpolate: template mismatch:\\n \"${fromStr}\"\\n vs \"${toStr}\"`\n );\n }\n const numUnitRE = /^(-?\\d+(\\.\\d+)?)([a-zA-Z%]*)$/;\n const mappers = fromParts.map((fp, i) => {\n const tp = toParts[i];\n\n if (fp === tp && /\\s+/.test(fp)) return () => fp;\n\n const n1 = fp.match(numUnitRE);\n const n2 = tp.match(numUnitRE);\n\n if (n1 && n2 && n1[3] === n2[3]) {\n const fromN = parseFloat(n1[1]);\n const toN = parseFloat(n2[1]);\n const unit = n1[3];\n\n return () => {\n const val = fromN + (toN - fromN) * p;\n return `${val.toFixed(3)}${unit}`;\n };\n }\n\n if (isCssColorLiteral(fp) && isCssColorLiteral(tp)) {\n return () => interpolateString(fp, tp, p);\n }\n\n if (fp === tp) return () => fp;\n\n throw new Error(\n `interpolate: cannot interpolate tokens \"${fp}\" vs \"${tp}\"`\n );\n });\n return mappers.map((fn) => fn()).join('');\n}\n\nexport function to(\n input: number,\n inRange: number[],\n outRange: (number | string)[],\n config?: ExtrapolateConfig\n): number | string {\n const len = inRange.length;\n if (len < 2 || outRange.length !== len) {\n throw new Error(\n 'interpolate: inRange and outRange must be arrays of the same length >= 2'\n );\n }\n\n const extrapolateLeft: ExtrapolateType =\n config?.extrapolateLeft ?? config?.extrapolate ?? 'extend';\n const extrapolateRight: ExtrapolateType =\n config?.extrapolateRight ?? config?.extrapolate ?? 'extend';\n\n const mapValue = (tRaw: number): number | string => {\n let t = tRaw;\n if (tRaw < inRange[0] && extrapolateLeft === 'clamp') {\n t = inRange[0];\n } else if (tRaw > inRange[len - 1] && extrapolateRight === 'clamp') {\n t = inRange[len - 1];\n }\n\n let i = 0;\n if (t <= inRange[0]) {\n i = 0;\n } else if (t >= inRange[len - 1]) {\n i = len - 2;\n } else {\n for (let j = 0; j < len - 1; j++) {\n if (t >= inRange[j] && t <= inRange[j + 1]) {\n i = j;\n break;\n }\n }\n }\n\n const t0 = inRange[i];\n const t1 = inRange[i + 1];\n let p = (t - t0) / (t1 - t0);\n\n if (config?.easing) p = config.easing(p);\n\n const fromOut = outRange[i];\n const toOut = outRange[i + 1];\n\n if (typeof fromOut === 'number' && typeof toOut === 'number') {\n return fromOut + (toOut - fromOut) * p;\n }\n\n return interpolateString(String(fromOut), String(toOut), p);\n };\n\n return mapValue(input);\n}\n","export function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\nfunction rubber2(distanceFromEdge: number, constant: number) {\n return Math.pow(distanceFromEdge, constant * 5);\n}\n\nfunction rubber(distanceFromEdge: number, dimension: number, constant: number) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return rubber2(distanceFromEdge, constant);\n return (\n (distanceFromEdge * dimension * constant) /\n (dimension + constant * distanceFromEdge)\n );\n}\n\nexport function rubberClamp(\n value: number,\n lowerbound: number,\n upperbound: number,\n constant: number = 0.15\n) {\n if (constant === 0) return clamp(value, lowerbound, upperbound);\n\n if (value < lowerbound) {\n return (\n -rubber(lowerbound - value, upperbound - lowerbound, constant) +\n lowerbound\n );\n }\n\n if (value > upperbound) {\n return (\n +rubber(value - upperbound, upperbound - lowerbound, constant) +\n upperbound\n );\n }\n\n return value;\n}\n\nexport function snapTo(\n value: number,\n velocity: number,\n snapPoints: Array<number>\n): number {\n const finalValue = value + velocity * 0.2;\n const getDiff = (point: number) => Math.abs(point - finalValue);\n const deltas = snapPoints.map(getDiff);\n const minDelta = Math.min(...deltas);\n\n return snapPoints.reduce(function (acc, point) {\n if (getDiff(point) === minDelta) {\n return point;\n } else {\n return acc;\n }\n });\n}\n\nexport function move(array: Array<any>, moveIndex: number, toIndex: number) {\n const item = array[moveIndex];\n const length = array.length;\n const diff = moveIndex - toIndex;\n\n if (diff > 0) {\n return [\n ...array.slice(0, toIndex),\n item,\n ...array.slice(toIndex, moveIndex),\n ...array.slice(moveIndex + 1, length),\n ];\n } else if (diff < 0) {\n const targetIndex = toIndex + 1;\n return [\n ...array.slice(0, moveIndex),\n ...array.slice(moveIndex + 1, targetIndex),\n item,\n ...array.slice(targetIndex, length),\n ];\n }\n return array;\n}\n","type Listener<E> = (event: E) => void;\n\nexport abstract class Gesture<E> {\n public static readonly VELOCITY_LIMIT = 20;\n\n private changeListeners = new Set<Listener<E>>();\n private endListeners = new Set<Listener<E>>();\n\n onChange(listener: Listener<E>): this {\n this.changeListeners.add(listener);\n return this;\n }\n\n onEnd(listener: Listener<E>): this {\n this.endListeners.add(listener);\n return this;\n }\n\n protected emitChange(event: E): void {\n this.changeListeners.forEach((fn) => fn(event));\n }\n\n protected emitEnd(event: E): void {\n this.endListeners.forEach((fn) => fn(event));\n }\n\n abstract attach(elements: HTMLElement | HTMLElement | Window): () => void;\n\n abstract cancel(): void;\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface DragEvent {\n down: boolean;\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: PointerEvent;\n cancel: () => void;\n}\n\nexport interface DragConfig {\n threshold?: number;\n axis?: 'x' | 'y';\n initial?: () => { x: number; y: number };\n}\n\nexport class DragGesture extends Gesture<DragEvent> {\n private config: DragConfig;\n private prev = { x: 0, y: 0 };\n private lastTime = 0;\n\n private movement = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n private start = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n\n private pointerCaptured = false;\n private activePointerId: number | null = null;\n private attachedEls = new Set<HTMLElement>();\n private activeEl: HTMLElement | null = null;\n private pointerDownPos = { x: 0, y: 0 };\n private thresholdPassed = false;\n\n constructor(config: DragConfig = {}) {\n super();\n this.config = config;\n }\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n if (elements === window) return () => {};\n\n const els = Array.isArray(elements) ? elements : [elements as HTMLElement];\n const down = this.onDown.bind(this);\n const move = this.onMove.bind(this);\n const up = this.onUp.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('pointerdown', down, { passive: false });\n });\n\n window.addEventListener('pointermove', move, { passive: false });\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('pointerdown', down);\n this.attachedEls.delete(el);\n });\n\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n };\n }\n\n private onDown(e: PointerEvent) {\n if (e.button !== 0) return;\n\n const target = e.currentTarget as HTMLElement;\n if (!this.attachedEls.has(target)) return;\n\n this.activeEl = target;\n this.activePointerId = e.pointerId;\n this.pointerCaptured = false;\n\n this.start =\n this.thresholdPassed === false && this.start.x === 0 && this.start.y === 0\n ? this.config.initial?.() ?? { x: 0, y: 0 }\n : { ...this.offset };\n this.offset = { ...this.start };\n\n this.pointerDownPos = { x: e.clientX, y: e.clientY };\n this.thresholdPassed = false;\n this.prev = { x: e.clientX, y: e.clientY };\n this.lastTime = e.timeStamp;\n\n this.emitChange({\n down: true,\n movement: { x: 0, y: 0 },\n offset: { ...this.offset },\n velocity: { x: 0, y: 0 },\n event: e,\n cancel: this.cancel.bind(this),\n });\n }\n\n private onMove(e: PointerEvent) {\n if (this.activePointerId !== e.pointerId || !this.activeEl) return;\n\n const threshold = this.config.threshold ?? 0;\n if (!this.thresholdPassed) {\n const dxTotal = e.clientX - this.pointerDownPos.x;\n const dyTotal = e.clientY - this.pointerDownPos.y;\n const dist = Math.hypot(dxTotal, dyTotal);\n if (dist < threshold) return;\n this.thresholdPassed = true;\n\n this.activeEl.setPointerCapture(e.pointerId);\n this.pointerCaptured = true;\n }\n\n if (this.pointerCaptured) {\n e.preventDefault();\n }\n\n const dt = Math.max((e.timeStamp - this.lastTime) / 1000, 1e-6);\n this.lastTime = e.timeStamp;\n const dx = e.clientX - this.prev.x;\n const dy = e.clientY - this.prev.y;\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n const moveRaw = {\n x: e.clientX - this.pointerDownPos.x,\n y: e.clientY - this.pointerDownPos.y,\n };\n this.movement = {\n x: this.config.axis === 'y' ? 0 : moveRaw.x,\n y: this.config.axis === 'x' ? 0 : moveRaw.y,\n };\n\n this.offset = {\n x: this.start.x + this.movement.x,\n y: this.start.y + this.movement.y,\n };\n\n this.prev = { x: e.clientX, y: e.clientY };\n\n this.emitChange({\n down: true,\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: this.cancel.bind(this),\n });\n }\n\n private onUp(e: PointerEvent) {\n if (this.activePointerId !== e.pointerId || !this.activeEl) return;\n this.activeEl.releasePointerCapture(e.pointerId);\n\n this.emitEnd({\n down: false,\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: this.cancel.bind(this),\n });\n\n this.activePointerId = null;\n this.pointerCaptured = false;\n }\n\n cancel() {\n if (this.activeEl && this.activePointerId !== null) {\n this.activeEl.releasePointerCapture(this.activePointerId);\n this.activePointerId = null;\n this.activeEl = null;\n }\n }\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\ninterface GestureInstance<E> {\n onChange(handler: (event: E) => void): this;\n onEnd(handler: (event: E) => void): this;\n attach(target: Window | HTMLElement): () => void;\n}\n\ninterface GestureConstructor<C, E> {\n new (config?: C): GestureInstance<E>;\n}\n\nexport function useRecognizer<T extends HTMLElement, C, E>(\n GestureClass: GestureConstructor<C, E>,\n refs: Window | RefObject<T> | Array<RefObject<T>>,\n onEvent: (e: E & { index: number }) => void,\n config?: C\n) {\n const handlerRef = useLatest(onEvent);\n const configRef = useLatest(config);\n\n if (refs === window) {\n const gestureRef = useRef<GestureInstance<E>>();\n\n if (!gestureRef.current) {\n const g = new GestureClass(configRef.current);\n const handler = (e: E) => handlerRef.current({ ...e, index: 0 });\n g.onChange(handler).onEnd(handler);\n gestureRef.current = g;\n }\n\n useEffect(() => {\n const cleanup = gestureRef.current!.attach(window);\n return () => {\n cleanup();\n };\n }, [refs]);\n\n return;\n }\n\n const list = Array.isArray(refs) ? refs : ([refs] as RefObject<T>[]);\n const gesturesRef = useRef<GestureInstance<E>[]>([]);\n\n if (gesturesRef.current.length !== list.length) {\n gesturesRef.current = list.map((_, i) => {\n const g = new GestureClass(configRef.current);\n const handler = (e: E) => handlerRef.current({ ...e, index: i });\n g.onChange(handler).onEnd(handler);\n return g;\n });\n }\n\n useEffect(() => {\n const cleanups = list\n .map((r, i) => {\n const el = r.current;\n if (!el) return null;\n return gesturesRef.current[i].attach(el);\n })\n .filter((fn): fn is () => void => !!fn);\n\n return () => cleanups.forEach((fn) => fn());\n }, [list]);\n}\n\nfunction useLatest<T>(value: T) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref as React.MutableRefObject<T>;\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface MoveEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: PointerEvent;\n cancel?: () => void;\n}\n\nexport class MoveGesture extends Gesture<MoveEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private prev = { x: 0, y: 0 };\n private lastTime = 0;\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n private startPos: { x: number; y: number } | null = null;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const move = this.onMove.bind(this);\n const leave = this.onLeave.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('pointermove', move, { passive: false });\n el.addEventListener('pointerleave', leave);\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('pointermove', move);\n el.removeEventListener('pointerleave', leave);\n this.attachedEls.delete(el);\n });\n };\n }\n\n cancel(): void {}\n\n private onMove(e: PointerEvent) {\n const now = e.timeStamp;\n\n if (this.startPos === null) {\n this.startPos = { x: e.clientX, y: e.clientY };\n this.prev = { x: e.clientX, y: e.clientY };\n this.lastTime = now;\n }\n\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const dx = e.clientX - this.prev.x;\n const dy = e.clientY - this.prev.y;\n this.prev = { x: e.clientX, y: e.clientY };\n\n this.movement = {\n x: e.clientX - this.startPos.x,\n y: e.clientY - this.startPos.y,\n };\n\n const tgt = e.currentTarget as HTMLElement | Window;\n const rect =\n tgt instanceof HTMLElement\n ? tgt.getBoundingClientRect()\n : { left: 0, top: 0 };\n\n this.offset = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n };\n\n const rawVx = dx / dt / 1000;\n const rawVy = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawVx, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawVy, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => this.onLeave(e),\n });\n }\n\n private onLeave(e: PointerEvent) {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface ScrollEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: Event;\n cancel?: () => void;\n}\n\nexport class ScrollGesture extends Gesture<ScrollEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n\n private prevScroll = { x: 0, y: 0 };\n private lastTime = 0;\n private endTimeout?: number;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const scroll = this.onScroll.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('scroll', scroll, { passive: true });\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('scroll', scroll);\n this.attachedEls.delete(el);\n });\n\n if (this.endTimeout != null) {\n clearTimeout(this.endTimeout);\n this.endTimeout = undefined;\n }\n };\n }\n\n cancel(): void {}\n\n private onScroll(e: Event) {\n const now = Date.now();\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const tgt = e.currentTarget as HTMLElement | Window;\n const x = tgt instanceof HTMLElement ? tgt.scrollLeft : window.scrollX;\n const y = tgt instanceof HTMLElement ? tgt.scrollTop : window.scrollY;\n\n const dx = x - this.prevScroll.x;\n const dy = y - this.prevScroll.y;\n this.prevScroll = { x, y };\n\n this.movement = { x: dx, y: dy };\n this.offset = { x, y };\n\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n },\n });\n\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n this.endTimeout = window.setTimeout(() => {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }, 150);\n }\n}\n","import { clamp } from '../../utils';\nimport { Gesture } from './Gesture';\n\nexport interface WheelEvent {\n movement: { x: number; y: number };\n offset: { x: number; y: number };\n velocity: { x: number; y: number };\n event: globalThis.WheelEvent;\n cancel?: () => void;\n}\n\nexport class WheelGesture extends Gesture<WheelEvent> {\n private attachedEls = new Set<HTMLElement | Window>();\n\n private movement = { x: 0, y: 0 };\n private offset = { x: 0, y: 0 };\n private velocity = { x: 0, y: 0 };\n\n private lastTime = 0;\n private endTimeout?: number;\n\n attach(elements: HTMLElement | HTMLElement[] | Window): () => void {\n const els = Array.isArray(elements) ? elements : [elements];\n const wheel = this.onWheel.bind(this);\n\n els.forEach((el) => {\n this.attachedEls.add(el);\n el.addEventListener('wheel', wheel, { passive: false });\n });\n\n return () => {\n els.forEach((el) => {\n el.removeEventListener('wheel', wheel);\n this.attachedEls.delete(el);\n });\n\n if (this.endTimeout != null) {\n clearTimeout(this.endTimeout);\n this.endTimeout = undefined;\n }\n };\n }\n\n cancel(): void {}\n\n private onWheel(e: globalThis.WheelEvent) {\n e.preventDefault();\n\n const now = e.timeStamp;\n const dt = Math.max((now - this.lastTime) / 1000, 1e-6);\n this.lastTime = now;\n\n const dx = e.deltaX;\n const dy = e.deltaY;\n\n this.movement = { x: dx, y: dy };\n this.offset.x += dx;\n this.offset.y += dy;\n\n const rawX = dx / dt / 1000;\n const rawY = dy / dt / 1000;\n this.velocity = {\n x: clamp(rawX, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n y: clamp(rawY, -Gesture.VELOCITY_LIMIT, Gesture.VELOCITY_LIMIT),\n };\n\n this.emitChange({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n },\n });\n\n if (this.endTimeout != null) clearTimeout(this.endTimeout);\n this.endTimeout = window.setTimeout(() => {\n this.emitEnd({\n movement: { ...this.movement },\n offset: { ...this.offset },\n velocity: { ...this.velocity },\n event: e,\n cancel: () => {},\n });\n }, 150);\n }\n}\n","import { RefObject } from 'react';\n\nimport {\n type DragConfig,\n type DragEvent,\n DragGesture,\n} from '../controllers/DragGesture';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useDrag<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onDrag: (e: DragEvent & { index: number }) => void,\n config?: DragConfig\n): void {\n return useRecognizer(DragGesture, refs, onDrag, config);\n}\n","import { useLayoutEffect, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { useValue } from './useValue';\nimport { isDescriptor } from './helpers';\nimport { withSpring } from './descriptors';\nimport type { Primitive, Descriptor } from './types';\n\ntype ConfigSingle<T extends Primitive> = {\n from?: T;\n enter?: T | Descriptor;\n exit?: T | Descriptor;\n};\n\ntype ConfigMulti<I extends Record<string, Primitive>> = {\n from: I;\n enter?: I | Descriptor;\n exit?: I | Descriptor;\n};\n\nexport function useMount<T extends Primitive = number>(\n isOpen: boolean,\n config?: ConfigSingle<T>\n): (\n fn: (value: MotionValue<T>, mounted: boolean) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount<I extends Record<string, Primitive>>(\n isOpen: boolean,\n config: ConfigMulti<I>\n): (\n fn: (\n values: { [K in keyof I]: MotionValue<I[K]> },\n mounted: boolean\n ) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount(\n isOpen: boolean,\n config: any = {}\n): (fn: (values: any, mounted: boolean) => React.ReactNode) => React.ReactNode {\n const [mounted, setMounted] = useState(isOpen);\n\n const from = config.from ?? 0;\n const enter = config.enter ?? 1;\n const exit = config.exit ?? 0;\n\n const [values, setValues] = useValue(from);\n\n useLayoutEffect(() => {\n if (isOpen) {\n setMounted(true);\n queueMicrotask(() => {\n setValues(isDescriptor(enter) ? enter : withSpring(enter));\n });\n } else {\n queueMicrotask(() => {\n setValues(\n isDescriptor(exit)\n ? {\n ...exit,\n options: {\n ...exit.options,\n onComplete: () => {\n exit.options?.onComplete?.();\n setMounted(false);\n },\n },\n }\n : withSpring(exit, {\n onComplete() {\n setMounted(false);\n },\n })\n );\n });\n }\n }, [isOpen, JSON.stringify(enter), JSON.stringify(exit)]);\n\n return (fn: (vals: any, m: boolean) => React.ReactNode) =>\n fn(values as any, mounted);\n}\n","import { RefObject } from 'react';\n\nimport { type MoveEvent, MoveGesture } from '../controllers/MoveGesture';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useMove(\n refs: Window,\n onMove: (e: MoveEvent & { index: 0 }) => void\n): void;\n\nexport function useMove<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onMove: (e: MoveEvent & { index: number }) => void\n): void;\n\nexport function useMove(refs: any, onMove: any): void {\n return useRecognizer(MoveGesture, refs, onMove);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nexport function useOutsideClick(\n ref: RefObject<HTMLElement>,\n callback: (event: MouseEvent | TouchEvent) => void,\n deps: DependencyList = []\n): void {\n const cbRef = useRef(callback);\n\n useEffect(() => {\n cbRef.current = callback;\n }, [callback, ...deps]);\n\n useEffect(() => {\n function onClick(event: MouseEvent | TouchEvent) {\n const el = ref.current;\n const target = event.target as Node | null;\n\n if (!el || !target || !target.isConnected) return;\n if (!el.contains(target)) {\n cbRef.current(event);\n }\n }\n\n document.addEventListener('mousedown', onClick);\n document.addEventListener('touchstart', onClick);\n\n return () => {\n document.removeEventListener('mousedown', onClick);\n document.removeEventListener('touchstart', onClick);\n };\n }, [ref]);\n}\n","import { RefObject } from 'react';\n\nimport { type ScrollEvent, ScrollGesture } from '../controllers/ScrollGesture';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useScroll(\n refs: Window,\n onScroll: (e: ScrollEvent & { index: 0 }) => void\n): void;\n\nexport function useScroll<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onScroll: (e: ScrollEvent & { index: number }) => void\n): void;\n\nexport function useScroll(refs: any, onScroll: any): void {\n return useRecognizer(ScrollGesture, refs, onScroll);\n}\n","import { RefObject } from 'react';\n\nimport { type WheelEvent, WheelGesture } from '../controllers/WheelGesture';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useWheel(\n refs: Window,\n onWheel: (e: WheelEvent & { index: 0 }) => void\n): void;\n\nexport function useWheel<T extends HTMLElement>(\n refs: RefObject<T> | Array<RefObject<T>>,\n onWheel: (e: WheelEvent & { index: number }) => void\n): void;\n\nexport function useWheel(refs: any, onWheel: any): void {\n return useRecognizer(WheelGesture, refs, onWheel);\n}\n"],"names":["filterCallbackOptions","options","attach","onStart","onChange","isDescriptor","x","type","buildAnimation","mv","_a","to","_d","spring","timing","decay","_b","velocity","delay","_c","console","warn","start","pause","resume","cancel","reset","buildParallel","mvMap","step","ctrls","Object","entries","filter","key","__read","undefined","map","idx","parallel","useValue","initial","controllerRef","useRef","value","useMemo","Array","isArray","v","MotionValue","fromEntries","k","ctrl","mvs","forEach","val","i","set","desc","mvsRecord","toString","animations","__assign","sequence","inner","animation","seqCtrls","seq","loop","iterations","par","handleArray","s","handleObject","_e","_f","_g","_j","_h","handlePrimitive","current","AnimationConfig","Timing","BOUNCE","duration","easing","Easing","bounce","EASE_IN","in","ease","EASE_OUT","out","EASE_IN_OUT","inOut","POWER1","bezier","POWER2","POWER3","POWER4","LINEAR","linear","Spring","ELASTIC","mass","damping","stiffness","EASE","STIFF","WOBBLE","withSpring","opts","onComplete","namedColors","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","numberRE","HEX_RE","RGB_RE","HSL_RE","isCssColorLiteral","c","trim","toLowerCase","test","parseCssColor","color","hex","slice","length","hasA","parseInt","r","g","b","a","nums","__spreadArray","matchAll","m","h","l","_k","c_","Math","abs","m_","_l","r1","g1","b1","round","Error","interpolateString","fromStr","toStr","p","funcRegex","m1","match","m2","name_1","fromN","parseFloat","toN","unit","concat","toFixed","c1","c2","a1","r2","g2","b2","a2","R","G","B","A","fromParts","split","toParts","numUnitRE","fp","tp","n1","n2","fromN_1","toN_1","unit_1","fn","join","clamp","lowerbound","upperbound","min","max","rubber","distanceFromEdge","dimension","constant","Infinity","pow","rubber2","Gesture","this","changeListeners","Set","endListeners","prototype","listener","add","onEnd","emitChange","event","emitEnd","VELOCITY_LIMIT","DragGesture","_super","config","_this","prev","y","lastTime","movement","offset","pointerCaptured","activePointerId","attachedEls","activeEl","pointerDownPos","thresholdPassed","__extends","elements","window","els","down","onDown","bind","move","onMove","up","onUp","el","addEventListener","passive","removeEventListener","delete","e","button","target","currentTarget","has","pointerId","clientX","clientY","timeStamp","threshold","dxTotal","dyTotal","hypot","setPointerCapture","preventDefault","dt","rawX","rawY","moveRaw","axis","releasePointerCapture","useRecognizer","GestureClass","refs","onEvent","handlerRef","useLatest","configRef","list","gesturesRef","_","handler","index","useEffect","cleanups","gestureRef_1","cleanup","ref","MoveGesture","startPos","leave","onLeave","now","dx","dy","tgt","rect","HTMLElement","getBoundingClientRect","left","top","rawVx","rawVy","ScrollGesture","prevScroll","scroll","onScroll","endTimeout","clearTimeout","Date","scrollLeft","scrollX","scrollTop","scrollY","setTimeout","WheelGesture","wheel","onWheel","deltaX","deltaY","bool","perc","val1","val2","array","moveIndex","toIndex","item","diff","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","input","inRange","outRange","len","extrapolateLeft","extrapolate","extrapolateRight","tRaw","t","j","t0","fromOut","toOut","String","mapValue","onDrag","isOpen","useState","mounted","setMounted","from","enter","exit","values","setValues","useLayoutEffect","queueMicrotask","JSON","stringify","callback","deps","cbRef","onClick","isConnected","contains","document","ms"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useLatest<T>(value: T): React.MutableRefObject<T>;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DependencyList } from 'react';
|
|
2
|
-
type DimensionType = {
|
|
3
|
-
width: number;
|
|
4
|
-
height: number;
|
|
5
|
-
innerWidth: number;
|
|
6
|
-
innerHeight: number;
|
|
7
|
-
};
|
|
8
|
-
export declare function useDimension(callback: (event: DimensionType) => void, deps?: DependencyList): void;
|
|
9
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { RefObject, DependencyList } from 'react';
|
|
2
|
-
type MeasurementValue = number | number[];
|
|
3
|
-
interface MeasurementType {
|
|
4
|
-
left: MeasurementValue;
|
|
5
|
-
top: MeasurementValue;
|
|
6
|
-
width: MeasurementValue;
|
|
7
|
-
height: MeasurementValue;
|
|
8
|
-
vLeft: MeasurementValue;
|
|
9
|
-
vTop: MeasurementValue;
|
|
10
|
-
}
|
|
11
|
-
export declare function useMeasure(refs: RefObject<HTMLElement>[], callback: (m: MeasurementType) => void, deps?: DependencyList): void;
|
|
12
|
-
export {};
|