react-ui-animate 4.3.1-alpha.1 → 4.3.1

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.
@@ -0,0 +1,8 @@
1
+ export { withDecay } from './withDecay';
2
+ export { withDelay } from './withDelay';
3
+ export { withSequence } from './withSequence';
4
+ export { withSpring } from './withSpring';
5
+ export { withTiming } from './withTiming';
6
+ export { withLoop } from './withLoop';
7
+ export { withNative } from './withNative';
8
+ export { withEase } from './withEase';
@@ -0,0 +1,11 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { WithCallbacks } from '../types';
3
+ interface WithDecayConfig extends WithCallbacks {
4
+ velocity?: number;
5
+ deceleration?: number;
6
+ }
7
+ export declare const withDecay: (config?: WithDecayConfig, callback?: (result: any) => void) => (value: FluidValue) => {
8
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
9
+ callback: ((result: any) => void) | undefined;
10
+ };
11
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const withDelay: (ms: number, callback?: (result: any) => void) => () => {
2
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
3
+ callback: ((result: any) => void) | undefined;
4
+ };
@@ -0,0 +1,8 @@
1
+ import type { WithCallbacks } from '../types';
2
+ interface WithEaseConfig extends WithCallbacks {
3
+ }
4
+ export declare const withEase: (toValue: number, config?: WithEaseConfig, callback?: (result: any) => void) => (value: import("@raidipesh78/re-motion").FluidValue) => {
5
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
6
+ callback: ((result: any) => void) | undefined;
7
+ };
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import { FluidValue, loop } from '@raidipesh78/re-motion';
2
+ export declare const withLoop: (animations: (value: FluidValue) => {
3
+ controller: ReturnType<typeof loop>;
4
+ callback?: (result: any) => void;
5
+ }, iterations: number, callback?: (result: any) => void) => (value: FluidValue) => {
6
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
7
+ callback: ((result: any) => void) | undefined;
8
+ };
@@ -0,0 +1,5 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ export declare const withNative: (toValue: number | string, callback?: (result: any) => void) => (value: FluidValue) => {
3
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
4
+ callback: ((result: any) => void) | undefined;
5
+ };
@@ -0,0 +1,8 @@
1
+ import { FluidValue, sequence } from '@raidipesh78/re-motion';
2
+ export declare const withSequence: (animations: Array<(value: FluidValue) => {
3
+ controller: ReturnType<typeof sequence>;
4
+ callback?: (result: any) => void;
5
+ }>, callback?: (result: any) => void) => (value: FluidValue) => {
6
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
7
+ callback: ((result: any) => void) | undefined;
8
+ };
@@ -0,0 +1,12 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { WithCallbacks } from '../types';
3
+ interface WithSpringConfig extends WithCallbacks {
4
+ mass?: number;
5
+ friction?: number;
6
+ tension?: number;
7
+ }
8
+ export declare const withSpring: (toValue: number, config?: WithSpringConfig, callback?: (result: any) => void) => (value: FluidValue) => {
9
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
10
+ callback: ((result: any) => void) | undefined;
11
+ };
12
+ export {};
@@ -0,0 +1,11 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { WithCallbacks } from '../types';
3
+ interface WithTimingConfig extends WithCallbacks {
4
+ duration?: number;
5
+ easing?: (t: number) => number;
6
+ }
7
+ export declare const withTiming: (toValue: number, config?: WithTimingConfig, callback?: (result: any) => void) => (value: FluidValue) => {
8
+ controller: import("@raidipesh78/re-motion/dist/controllers/types").ControllerAnimation;
9
+ callback: ((result: any) => void) | undefined;
10
+ };
11
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ToValue } from '../types';
2
+ export declare function getToValue(val: string | number | ToValue): ToValue;
@@ -0,0 +1,2 @@
1
+ export * from './animationType';
2
+ export * from './getToValue';
@@ -1,2 +1,3 @@
1
1
  export * from './useValue';
2
2
  export * from './useMount';
3
+ export * from './useValues';
@@ -1,10 +1,10 @@
1
- import { MotionValue } from '@raidipesh78/re-motion';
2
- import { DriverConfig } from '../types';
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { ToValue } from '../types';
3
3
  export interface UseMountConfig {
4
4
  from?: number;
5
- enter?: DriverConfig;
6
- exit?: DriverConfig;
5
+ enter?: ToValue;
6
+ exit?: ToValue;
7
7
  }
8
8
  export declare const useMount: (state: boolean, config?: UseMountConfig) => (fn: (animation: {
9
- value: MotionValue;
9
+ value: FluidValue;
10
10
  }, mounted: boolean) => React.ReactNode) => import("react").ReactNode;
@@ -1,7 +1,7 @@
1
- import { MotionValue } from '@raidipesh78/re-motion';
2
- import { ToValue } from '../types';
3
- export declare function useValue<V extends number | string>(initialValue: V): {
4
- get value(): MotionValue<V>;
5
- set value(u: MotionValue<V> | ToValue<V>);
6
- readonly currentValue: V;
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { ToValue } from '../types';
3
+ export declare function useValue(initialValue: number | string): {
4
+ get value(): FluidValue;
5
+ set value(to: number | string | ToValue);
6
+ readonly currentValue: string | number;
7
7
  };
@@ -0,0 +1,7 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ import type { ToValue } from '../types';
3
+ export declare function useValues(initialValue: number[] | string[]): {
4
+ get value(): FluidValue[];
5
+ set value(to: number[] | string[] | ToValue[]);
6
+ readonly currentValue: (string | number)[];
7
+ };
@@ -1,5 +1,5 @@
1
+ export { interpolate, bInterpolate } from './interpolation';
1
2
  export { MountedBlock, ScrollableBlock } from './modules';
2
- export { useValue, useMount, type UseMountConfig } from './hooks';
3
+ export { useValue, useMount, useValues, type UseMountConfig } from './hooks';
3
4
  export { withSpring, withTiming, withSequence, withDelay, withDecay, withLoop, withEase, } from './controllers';
4
- export { AnimationConfig } from './AnimationConfig';
5
- export { interpolateNumbers } from './interpolation';
5
+ export { AnimationConfig } from './helpers';
@@ -1 +1 @@
1
- export { interpolateNumbers } from './interpolateNumbers';
1
+ export { interpolate, bInterpolate } from './interpolate';
@@ -0,0 +1,11 @@
1
+ import { FluidValue } from '@raidipesh78/re-motion';
2
+ type ExtrapolateType = 'identity' | 'extend' | 'clamp';
3
+ type ExtrapolateConfig = {
4
+ extrapolate?: ExtrapolateType;
5
+ extrapolateLeft?: ExtrapolateType;
6
+ extrapolateRight?: ExtrapolateType;
7
+ };
8
+ type InterpolateReturnType<T> = T extends number ? number : ReturnType<FluidValue['interpolate']>;
9
+ export declare const interpolate: <T extends number | FluidValue>(value: T, inputRange: number[], outputRange: number[] | string[], extrapolateConfig?: ExtrapolateConfig) => InterpolateReturnType<T>;
10
+ export declare const bInterpolate: <T extends number | FluidValue>(value: T, minOutput: number | string, maxOutput: number | string, extrapolateConfig?: ExtrapolateConfig) => InterpolateReturnType<T>;
11
+ export {};
@@ -1,10 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
- import { MotionValue } from '@raidipesh78/re-motion';
2
+ import { FluidValue } from '@raidipesh78/re-motion';
3
3
  import { type UseMountConfig } from '../hooks';
4
4
  interface MountedBlockProps extends Partial<UseMountConfig> {
5
5
  state: boolean;
6
6
  children: (animation: {
7
- value: MotionValue;
7
+ value: FluidValue;
8
8
  }) => ReactNode;
9
9
  }
10
10
  export declare const MountedBlock: ({ state, children, from, enter, exit, }: MountedBlockProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- import { MotionValue } from '@raidipesh78/re-motion';
2
+ import { FluidValue } from '@raidipesh78/re-motion';
3
3
  interface ScrollableBlockProps {
4
4
  children?: (animation: {
5
- value: MotionValue;
5
+ value: FluidValue;
6
6
  }) => ReactNode;
7
7
  direction?: 'single' | 'both';
8
8
  threshold?: number;
@@ -1,25 +1,16 @@
1
+ import { FluidValue, spring } from '@raidipesh78/re-motion';
2
+ export type EndCallbackResult = {
3
+ finished: boolean;
4
+ value?: number | string;
5
+ };
6
+ export type EndCallback = (result: EndCallbackResult) => void;
7
+ export type Controller = ReturnType<typeof spring>;
8
+ export type ToValue = (animation: FluidValue) => {
9
+ controller: Controller;
10
+ callback?: EndCallback;
11
+ };
1
12
  export interface WithCallbacks {
2
13
  onStart?: (value: number | string) => void;
3
14
  onChange?: (value: number | string) => void;
4
15
  onRest?: (value: number | string) => void;
5
16
  }
6
- export type DriverConfig = {
7
- type: 'spring' | 'timing' | 'decay' | 'sequence' | 'delay' | 'loop';
8
- to?: number;
9
- options?: {
10
- controller?: DriverConfig;
11
- iterations?: number;
12
- delay?: number;
13
- duration?: number;
14
- easing?: (t: number) => number;
15
- stiffness?: number;
16
- damping?: number;
17
- mass?: number;
18
- velocity?: number;
19
- steps?: DriverConfig[];
20
- onStart?: () => void;
21
- onChange?: (v: string | number) => void;
22
- onComplete?: () => void;
23
- };
24
- };
25
- export type ToValue<V> = DriverConfig | V;
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { Easing, makeMotion as makeAnimated, motion as animate, } from '@raidipesh78/re-motion';
1
+ export { Easing, makeFluid as makeAnimated, fluid as animate, } from '@raidipesh78/re-motion';
2
2
  export { AnimationConfig, MountedBlock, ScrollableBlock } from './animation';
3
- export { useValue, useMount } from './animation';
3
+ export { interpolate, bInterpolate } from './animation';
4
+ export { useValue, useMount, useValues } from './animation';
4
5
  export { withSpring, withTiming, withSequence, withDelay, withDecay, withLoop, withEase, } from './animation';
5
6
  export { useMeasure, useOutsideClick, useWindowDimension } from './hooks';
6
- export { interpolateNumbers } from './animation';
7
7
  export { useDrag, useGesture, useMouseMove, useScroll, useWheel, } from './gestures/hooks';
8
8
  export { bin, clamp, mix, rubberClamp, move, snapTo } from './gestures/helpers';
9
9
  export type { UseMountConfig } from './animation';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("@raidipesh78/re-motion"),t=require("react/jsx-runtime"),n=require("react");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=i(n);function o(t){var i=e.useMotionValue(t),r=n.useRef(),o=n.useCallback((function(t){var n,o;if(null===(n=r.current)||void 0===n||n.call(r),r.current=void 0,t&&"object"==typeof t){var f=t.type,a=t.to,s=t.options;if((null==s?void 0:s.onChange)&&(r.current=i.subscribe(s.onChange)),"sequence"===f){var l=(null!==(o=null==s?void 0:s.steps)&&void 0!==o?o:[]).map((function(t){var n,r;return"decay"===t.type?e.decay(i,null===(n=null==t?void 0:t.options)||void 0===n?void 0:n.velocity,t.options):"delay"===t.type?e.delay(null===(r=null==t?void 0:t.options)||void 0===r?void 0:r.delay):("spring"===t.type?e.spring:e.timing)(i,t.to,t.options)}));return void e.sequence(l).start()}if("loop"===f){var u=function(t){var n,r,o;if("decay"===t.type)return e.decay(i,null===(n=t.options)||void 0===n?void 0:n.velocity,t.options);if("spring"===t.type)return e.spring(i,null==t?void 0:t.to,t.options);if("timing"===t.type)return e.timing(i,null==t?void 0:t.to,t.options);if("sequence"===t.type)return e.sequence(null===(r=t.options)||void 0===r?void 0:r.steps.map(u));if("delay"===t.type)return e.delay(null===(o=t.options)||void 0===o?void 0:o.delay);throw new Error('Unsupported driver type "'.concat(t.type,'" in loop()'))},c=u(null==s?void 0:s.controller);return void e.loop(c,null==s?void 0:s.iterations).start()}"spring"===f?e.spring(i,a,s).start():"timing"===f?e.timing(i,a,s).start():"decay"===f&&e.decay(i,null==s?void 0:s.velocity,s).start()}else i.set(t)}),[]);return n.useEffect((function(){return function(){var e;null===(e=r.current)||void 0===e||e.call(r),r.current=void 0}}),[]),{get value(){return i},set value(t){t instanceof e.MotionValue||o(t)},get currentValue(){return i.current}}}var f=function(e,t){return f=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])},f(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}f(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s=function(){return s=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function l(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function u(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),f=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)f.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return f}function c(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var h={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,friction:18,tension:250},EASE:{mass:1,friction:26,tension:170},STIFF:{mass:1,friction:18,tension:350},WOBBLE:{mass:1,friction:8,tension:250}}},d=function(e,t){var n,i,r;return{type:"spring",to:e,options:{stiffness:null!==(n=null==t?void 0:t.tension)&&void 0!==n?n:100,damping:null!==(i=null==t?void 0:t.friction)&&void 0!==i?i:10,mass:null!==(r=null==t?void 0:t.mass)&&void 0!==r?r:1,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}},v=function(e,t){return d(e,s(s({},t),h.Spring.EASE))},m=function(e,t){var i,r,f,a=u(n.useState(e),2),l=a[0],c=a[1],h=n.useRef({from:null!==(i=null==t?void 0:t.from)&&void 0!==i?i:0,enter:null!==(r=null==t?void 0:t.enter)&&void 0!==r?r:d(1),exit:null!==(f=null==t?void 0:t.exit)&&void 0!==f?f:d(0)}).current,v=o(h.from),m=h.enter,p=h.exit;return n.useLayoutEffect((function(){e?(c(!0),queueMicrotask((function(){v.value=m}))):queueMicrotask((function(){v.value=s(s({},p),{options:s(s({},p.options),{onComplete:function(){var e,t;c(!1),null===(t=null===(e=null==p?void 0:p.options)||void 0===e?void 0:e.onComplete)||void 0===t||t.call(e),v.value.destroy()}})})}))}),[e,m,p]),function(e){return e({value:v.value},l)}},p=/[+-]?\d+(\.\d+)?|[\s]?\.\d+|#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi,y=/#[a-f\d]{3,}|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/gi,g={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"};function b(e){var t=function(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,i){return"#"+t+t+n+n+i+i}))}(e),n=function(e){return 7===e.length?e+"FF":e}(t),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16),a:parseInt(i[4],16)/255}}function x(e){var t=e.r,n=e.g,i=e.b,r=e.a;return"#"+(256|t).toString(16).slice(1)+(256|n).toString(16).slice(1)+(256|i).toString(16).slice(1)+(255*r|256).toString(16).slice(1)}var w=function(e,t,n,i){var r=u(t,4),o=r[0],f=r[1],a=r[2],s=r[3],l=e;if(l<o){if("identity"===n)return l;"clamp"===n&&(l=o)}if(l>f){if("identity"===i)return l;"clamp"===i&&(l=f)}return a===s?a:o===f?e<=o?a:s:(o===-1/0?l=-l:f===1/0?l-=o:l=(l-o)/(f-o),a===-1/0?l=-l:s===1/0?l+=a:l=l*(s-a)+a,l)},E=function(e,t,n,i){var r=u(t,4),o=r[0],f=r[1],a=r[2],s=r[3];if(a.length===s.length)return a.map((function(t,r){return"string"==typeof t?function(e,t){var n=u(t,4),i=n[0],r=n[1],o=n[2],f=n[3],a=b(o),s=b(f);return x({r:w(e,[i,r,a.r,s.r],"clamp","clamp"),g:w(e,[i,r,a.g,s.g],"clamp","clamp"),b:w(e,[i,r,a.b,s.b],"clamp","clamp"),a:w(e,[i,r,a.a,s.a],"clamp","clamp")})}(e,[o,f,t,s[r]]):w(e,[o,f,t,s[r]],n,i)}));throw new Error("Array length doesn't match")},k=function(e){return e.replace(p,"$")},M=function(e){return e.match(p).map((function(e){return-1!==e.indexOf("#")?e:Number(e)}))},_=function(e){return e.replace(y,(function(e){if(-1!==e.indexOf("#"))return x(b(e));if(Object.prototype.hasOwnProperty.call(g,e))return g[e];throw new Error("String cannot be parsed!")}))};function I(e,t){var n=new Map;return t.forEach((function(t){var i=u(t,3),r=i[0],o=i[1],f=i[2],a=void 0!==f&&f;n.set(r,function(e,t,n,i){return void 0===i&&(i=!1),e.forEach((function(e){e.addEventListener(t,n,i)})),function(){e.forEach((function(e){e.removeEventListener(t,n,i)}))}}(e,r,o,a))})),function(e){var t,i;try{for(var r=l(n.entries()),o=r.next();!o.done;o=r.next()){var f=u(o.value,2),a=f[0],s=f[1];if(!e)return void s();-1!==e.indexOf(a)&&s()}}catch(e){t={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}}}function O(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 C=function(e,t){return{x:e,y:t}},S=function(){function e(){this.lastTimeStamp=Date.now(),this.isActive=!1,this.targetElements=[]}return e.prototype._initEvents=function(){},e.prototype._cancelEvents=function(){this._subscribe&&this._subscribe()},e.prototype.applyCallback=function(e){this.callback=e},e.prototype.applyGesture=function(e){var t=this,n=e.targetElement,i=e.targetElements,r=e.callback,o=e.config;return this.targetElement=n,this.targetElements=i.map((function(e){return e.current})),this.callback=r,this.config=o,this._initEvents(),function(){return t._subscribe&&t._subscribe()}},e._VELOCITY_LIMIT=20,e}(),L=function(e){function t(){var t=e.apply(this,c([],u(arguments),!1))||this;return t.movementStart=C(0,0),t.initialMovement=C(0,0),t.movement=C(0,0),t.previousMovement=C(0,0),t.translation=C(0,0),t.offset=C(0,0),t.velocity=C(0,0),t}return a(t,e),t.prototype._initEvents=function(){(this.targetElement||this.targetElements.length>0)&&(this._subscribe=I([window],[["mousedown",this.pointerDown.bind(this)],["mousemove",this.pointerMove.bind(this)],["mouseup",this.pointerUp.bind(this)],["touchstart",this.pointerDown.bind(this),{passive:!1}],["touchmove",this.pointerMove.bind(this),{passive:!1}],["touchend",this.pointerUp.bind(this)]]))},t.prototype._cancelEvents=function(){this._subscribe&&this._subscribe(["mousedown","mousemove","touchstart","touchmove"])},t.prototype._handleCallback=function(){var e=this;this.callback&&this.callback({args:[this.currentIndex],down:this.isActive,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.translation.x,offsetY:this.translation.y,velocityX:this.velocity.x,velocityY:this.velocity.y,distanceX:Math.abs(this.movement.x),distanceY:Math.abs(this.movement.y),directionX:Math.sign(this.movement.x),directionY:Math.sign(this.movement.y),cancel:function(){e._cancelEvents()}})},t.prototype.pointerDown=function(e){var t;"touchstart"===e.type?this.movementStart={x:e.touches[0].clientX,y:e.touches[0].clientY}:this.movementStart={x:e.clientX,y:e.clientY},this.movement={x:0,y:0},this.offset={x:this.translation.x,y:this.translation.y},this.previousMovement={x:0,y:0},this.velocity={x:0,y:0};var n=this.targetElements.find((function(t){return t===e.target}));if(e.target===this.targetElement||n){this.isActive=!0,e.preventDefault(),n&&(this.currentIndex=this.targetElements.indexOf(n));var i=(null===(t=this.config)||void 0===t?void 0:t.initial)&&this.config.initial(),r=null==i?void 0:i.movementX,o=null==i?void 0:i.movementY;this.initialMovement={x:null!=r?r:0,y:null!=o?o:0},this.movement={x:this.initialMovement.x,y:this.initialMovement.y},this.previousMovement={x:this.initialMovement.x,y:this.initialMovement.y},this._handleCallback()}},t.prototype.pointerMove=function(e){if(this.isActive){e.preventDefault();var t=Date.now(),n=O(t-this.lastTimeStamp,.1,64);this.lastTimeStamp=t;var i=n/1e3;"touchmove"===e.type?this.movement={x:this.initialMovement.x+(e.touches[0].clientX-this.movementStart.x),y:this.initialMovement.y+(e.touches[0].clientY-this.movementStart.y)}:this.movement={x:this.initialMovement.x+(e.clientX-this.movementStart.x),y:this.initialMovement.y+(e.clientY-this.movementStart.y)},this.translation={x:this.offset.x+this.movement.x,y:this.offset.y+this.movement.y},this.velocity={x:O((this.movement.x-this.previousMovement.x)/i/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT),y:O((this.movement.y-this.previousMovement.y)/i/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()}},t.prototype.pointerUp=function(){this.isActive&&(this.isActive=!1,this._handleCallback(),this._cancelEvents(),this._initEvents())},t}(S),Y=function(e){function t(){var t=e.apply(this,c([],u(arguments),!1))||this;return t.movement=C(0,0),t.previousMovement=C(0,0),t.velocity=C(0,0),t.direction=C(0,0),t}return a(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=I([this.targetElement],[["mousemove",this.onMouseMove.bind(this)]]):this.targetElements.length>0?this._subscribe=I(this.targetElements,[["mousemove",this.onMouseMove.bind(this)]]):this._subscribe=I([window],[["mousemove",this.onMouseMove.bind(this)]])},t.prototype._handleCallback=function(){var e;this.callback&&this.callback({args:[this.currentIndex],event:this.event,isMoving:this.isActive,target:null===(e=this.event)||void 0===e?void 0:e.target,mouseX:this.movement.x,mouseY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onMouseMove=function(e){var t=this,n=this.targetElements.find((function(t){return t===e.target}));n&&(this.currentIndex=this.targetElements.indexOf(n)),this.event=e;var i=Date.now(),r=Math.min(i-this.lastTimeStamp,64);this.lastTimeStamp=i;var o=r/1e3,f=e.clientX,a=e.clientY;this.movement={x:f,y:a},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:O(s/o/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT),y:O(l/o/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(S),A=function(e){function t(){var t=e.apply(this,c([],u(arguments),!1))||this;return t.movement=C(0,0),t.previousMovement=C(0,0),t.direction=C(0,0),t.velocity=C(0,0),t}return a(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=I([this.targetElement],[["scroll",this.scrollElementListener.bind(this)]]):this._subscribe=I([window],[["scroll",this.scrollListener.bind(this)]])},t.prototype._handleCallback=function(){this.callback&&this.callback({isScrolling:this.isActive,scrollX:this.movement.x,scrollY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onScroll=function(e){var t=this,n=e.x,i=e.y,r=Date.now(),o=Math.min(r-this.lastTimeStamp,64);this.lastTimeStamp=r;var f=o/1e3;this.movement={x:n,y:i},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var a=this.movement.x-this.previousMovement.x,s=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(a),y:Math.sign(s)},this.velocity={x:O(a/f/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT),y:O(s/f/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t.prototype.scrollListener=function(){var e=window.pageYOffset,t=window.pageXOffset;this.onScroll({x:t,y:e})},t.prototype.scrollElementListener=function(){var e,t,n=(null===(e=this.targetElement)||void 0===e?void 0:e.scrollLeft)||0,i=(null===(t=this.targetElement)||void 0===t?void 0:t.scrollTop)||0;this.onScroll({x:n,y:i})},t}(S),R=function(e){function t(){var t=e.apply(this,c([],u(arguments),!1))||this;return t.movement=C(0,0),t.previousMovement=C(0,0),t.direction=C(0,0),t.velocity=C(0,0),t.delta=C(0,0),t.offset=C(0,0),t.translation=C(0,0),t}return a(t,e),t.prototype._initEvents=function(){this.targetElement&&(this._subscribe=I([this.targetElement],[["wheel",this.onWheel.bind(this)]]))},t.prototype._handleCallback=function(){this.callback&&this.callback({target:this.targetElement,isWheeling:this.isActive,deltaX:this.delta.x,deltaY:this.delta.y,directionX:this.direction.x,directionY:this.direction.y,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.offset.x,offsetY:this.offset.y,velocityX:this.velocity.x,velocityY:this.velocity.y})},t.prototype.onWheel=function(e){var t=this,n=e.deltaX,i=e.deltaY,r=e.deltaMode,o=Date.now(),f=Math.min(o-this.lastTimeStamp,64);this.lastTimeStamp=o;var a=f/1e3;this.isActive=!0,-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.translation={x:t.offset.x,y:t.offset.y},t._handleCallback(),t.velocity={x:0,y:0},t.movement={x:0,y:0}}),200),1===r?(n*=40,i*=40):2===r&&(n*=800,i*=800),this.delta={x:n,y:i},this.movement={x:this.movement.x+n,y:this.movement.y+i},this.offset={x:this.translation.x+this.movement.x,y:this.translation.y+this.movement.y};var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:O(s/a/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT),y:O(l/a/1e3,-1*S._VELOCITY_LIMIT,S._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(S),q=function(e){var t=r.useRef(),n=r.useRef([]),i=r.useRef(new Map).current;return r.useEffect((function(){var t,n;try{for(var r=l(i.entries()),o=r.next();!o.done;o=r.next()){var f=u(o.value,2)[1],a=f.keyIndex,s=f.gesture,c=u(e[a],3)[2];s.applyCallback(c)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}}),[e]),r.useEffect((function(){return e.forEach((function(e,r){var o=u(e,4),f=o[0],a=o[1],s=o[2],l=o[3];queueMicrotask((function(){return i.set(f,{keyIndex:r,gesture:a,unsubscribe:a.applyGesture({targetElement:t.current,targetElements:n.current,callback:s,config:l})})}))})),function(){var e,t;try{for(var n=l(i.entries()),r=n.next();!r.done;r=n.next()){var o=u(r.value,2)[1].unsubscribe;o&&o()}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}}})),function(e){return null==e?{ref:t}:(n.current[e]=n.current[e]||r.createRef(),{ref:n.current[e]})}};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,"makeAnimated",{enumerable:!0,get:function(){return e.makeMotion}}),exports.AnimationConfig=h,exports.MountedBlock=function(e){var n=e.state,i=e.children,r=e.from,o=e.enter,f=e.exit,a=m(n,{from:r,enter:o,exit:f});return t.jsx(t.Fragment,{children:a((function(e,t){return t&&i({value:e.value})}))})},exports.ScrollableBlock=function(e){var i=e.children,r=e.direction,f=void 0===r?"single":r,a=e.threshold,s=void 0===a?.2:a,l=n.useRef(null),c=o(0);return n.useLayoutEffect((function(){var e=l.current,t=new IntersectionObserver((function(e){u(e,1)[0].isIntersecting?c.value=v(1):"both"===f&&(c.value=v(0))}),{root:null,threshold:s});return e&&t.observe(e),function(){e&&t.unobserve(e)}}),[]),t.jsx("div",{ref:l,children:i&&i({value:c.value})})},exports.bin=function(e){return e?1:0},exports.clamp=O,exports.interpolateNumbers=function(e,t,n,i){var r,o,f=null==i?void 0:i.extrapolate,a=null==i?void 0:i.extrapolateLeft,s=null==i?void 0:i.extrapolateRight,c=function(e,t,n){var i=t.length,r=[];e<t[0]?r=[t[0],t[1],n[0],n[1]]:e>t[i-1]&&(r=[t[i-2],t[i-1],n[i-2],n[i-1]]);for(var o=1;o<i;++o)if(e<=t[o]){r=[t[o-1],t[o],n[o-1],n[o]];break}return r}(e,t,n),h="extend";void 0!==a?h=a:void 0!==f&&(h=f);var d,v="extend";if(void 0!==s?v=s:void 0!==f&&(v=f),n.length){if("number"==typeof n[0])return w(e,c,h,v);if(Array.isArray(n[0]))return E(e,c,h,v);var m=u(c,4),p=m[0],y=m[1],g=m[2],b=m[3],x=_(g),I=_(b),O=k(x);if(d=I,k(x).trim().replace(/\s/g,"")===k(d).trim().replace(/\s/g,"")){var T=M(x),C=M(I),S=E(e,[p,y,T,C],h,v);try{for(var L=l(S),Y=L.next();!Y.done;Y=L.next()){var A=Y.value;O=O.replace("$",A)}}catch(e){r={error:e}}finally{try{Y&&!Y.done&&(o=L.return)&&o.call(L)}finally{if(r)throw r.error}}return O}throw new Error("Output range doesn't match string format!")}throw new Error("Output range cannot be Empty")},exports.mix=function(e,t,n){return t*(1-e)+n*e},exports.move=function(e,t,n){var i=e[t],r=e.length,o=t-n;if(o>0)return c(c(c(c([],u(e.slice(0,n)),!1),[i],!1),u(e.slice(n,t)),!1),u(e.slice(t+1,r)),!1);if(o<0){var f=n+1;return c(c(c(c([],u(e.slice(0,t)),!1),u(e.slice(t+1,f)),!1),[i],!1),u(e.slice(f,r)),!1)}return e},exports.rubberClamp=function(e,t,n,i){return void 0===i&&(i=.15),0===i?O(e,t,n):e<t?-T(t-e,n-t,i)+t:e>n?+T(e-n,n-t,i)+n:e},exports.snapTo=function(e,t,n){var i=e+.2*t,r=function(e){return Math.abs(e-i)},o=n.map(r),f=Math.min.apply(Math,c([],u(o),!1));return n.reduce((function(e,t){return r(t)===f?t:e}))},exports.useDrag=function(e,t){var n=r.useRef(new L).current;return q([["drag",n,e,t]])},exports.useGesture=function(e){var t=e.onDrag,n=e.onWheel,i=e.onScroll,o=e.onMouseMove,f=r.useRef(new L).current,a=r.useRef(new R).current,s=r.useRef(new A).current,l=r.useRef(new Y).current;return q([["drag",f,t],["wheel",a,n],["scroll",s,i],["move",l,o]])},exports.useMeasure=function(e,t){var i=n.useRef(null),r=n.useRef([]),o=n.useRef(e);return n.useEffect((function(){return o.current=e,function(){o.current=function(){return!1}}}),t),n.useEffect((function(){var e=i.current||document.documentElement,t=r.current,n=new ResizeObserver((function(t){var n=u(t,1)[0].target.getBoundingClientRect(),i=n.left,r=n.top,f=n.width,a=n.height,s=window.pageXOffset,l=window.pageYOffset;if(o){if(e===document.documentElement)return;o.current({left:i+s,top:r+l,width:f,height:a,vLeft:i,vTop:r})}})),f=new ResizeObserver((function(e){var t=[],n=[],i=[],r=[],f=[],a=[];e.forEach((function(e){var o=e.target.getBoundingClientRect(),s=o.left,l=o.top,u=o.width,c=o.height,h=s+window.pageXOffset,d=l+window.pageYOffset;t.push(h),n.push(d),i.push(u),r.push(c),f.push(s),a.push(l)})),o&&o.current({left:t,top:n,width:i,height:r,vLeft:f,vTop:a})}));return e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){f.observe(e.current)})):n.observe(e)),function(){e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){f.unobserve(e.current)})):n.unobserve(e))}}),[]),function(e){return null==e?{ref:i}:(r.current[e]=r.current[e]||n.createRef(),{ref:r.current[e]})}},exports.useMount=m,exports.useMouseMove=function(e){var t=r.useRef(new Y).current;return q([["move",t,e]])},exports.useOutsideClick=function(e,t,i){var r=n.useRef();r.current||(r.current=t),n.useEffect((function(){return r.current=t,function(){r.current=function(){return!1}}}),i),n.useEffect((function(){var t=I([document],[["mousedown",function(t){var n=t.target;n&&n.isConnected&&(e.current&&!e.current.contains(n)&&r.current&&r.current(t))}]]);return function(){return t&&t()}}),[])},exports.useScroll=function(e){var t=r.useRef(new A).current;return q([["scroll",t,e]])},exports.useValue=o,exports.useWheel=function(e){var t=r.useRef(new R).current;return q([["wheel",t,e]])},exports.useWindowDimension=function(e,t){var i=n.useRef({width:0,height:0,innerWidth:0,innerHeight:0}),r=n.useRef(e);n.useEffect((function(){return r.current=e,function(){r.current=function(){return!1}}}),t),n.useEffect((function(){var e=new ResizeObserver((function(e){var t=u(e,1)[0].target,n=t.clientWidth,o=t.clientHeight,f=window.innerWidth,a=window.innerHeight;i.current={width:n,height:o,innerWidth:f,innerHeight:a},r&&r.current(s({},i.current))}));return e.observe(document.documentElement),function(){return e.unobserve(document.documentElement)}}),[])},exports.withDecay=function(e){return{type:"decay",options:{velocity:e.velocity,onStart:null==e?void 0:e.onStart,onChange:null==e?void 0:e.onChange,onComplete:null==e?void 0:e.onRest}}},exports.withDelay=function(e){return{type:"delay",options:{delay:e}}},exports.withEase=v,exports.withLoop=function(e,t){return{type:"loop",options:{controller:e,iterations:t}}},exports.withSequence=function(e){return{type:"sequence",options:{steps:e}}},exports.withSpring=d,exports.withTiming=function(e,t){var n;return{type:"timing",to:e,options:{duration:null!==(n=null==t?void 0:t.duration)&&void 0!==n?n:300,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.onRest}}};
1
+ var e=require("@raidipesh78/re-motion"),t=require("react/jsx-runtime"),n=require("react");function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=r(n),o=function(e,t){return o=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])},o(e,t)};function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=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},a.apply(this,arguments)};function s(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function l(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 u(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"==typeof SuppressedError&&SuppressedError;var c=/[+-]?\d+(\.\d+)?|[\s]?\.\d+|#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi,h=/#[a-f\d]{3,}|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/gi,d={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"};function v(e){var t=function(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,r){return"#"+t+t+n+n+r+r}))}(e),n=function(e){return 7===e.length?e+"FF":e}(t),r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return{r:parseInt(r[1],16),g:parseInt(r[2],16),b:parseInt(r[3],16),a:parseInt(r[4],16)/255}}function m(e){var t=e.r,n=e.g,r=e.b,i=e.a;return"#"+(256|t).toString(16).slice(1)+(256|n).toString(16).slice(1)+(256|r).toString(16).slice(1)+(255*i|256).toString(16).slice(1)}var p=function(e,t,n,r){var i=l(t,4),o=i[0],f=i[1],a=i[2],s=i[3],u=e;if(u<o){if("identity"===n)return u;"clamp"===n&&(u=o)}if(u>f){if("identity"===r)return u;"clamp"===r&&(u=f)}return a===s?a:o===f?e<=o?a:s:(o===-1/0?u=-u:f===1/0?u-=o:u=(u-o)/(f-o),a===-1/0?u=-u:s===1/0?u+=a:u=u*(s-a)+a,u)},g=function(e,t,n,r){var i=l(t,4),o=i[0],f=i[1],a=i[2],s=i[3];if(a.length===s.length)return a.map((function(t,i){return"string"==typeof t?function(e,t){var n=l(t,4),r=n[0],i=n[1],o=n[2],f=n[3],a=v(o),s=v(f);return m({r:p(e,[r,i,a.r,s.r],"clamp","clamp"),g:p(e,[r,i,a.g,s.g],"clamp","clamp"),b:p(e,[r,i,a.b,s.b],"clamp","clamp"),a:p(e,[r,i,a.a,s.a],"clamp","clamp")})}(e,[o,f,t,s[i]]):p(e,[o,f,t,s[i]],n,r)}));throw new Error("Array length doesn't match")},y=function(e){return e.replace(c,"$")},b=function(e){return e.match(c).map((function(e){return-1!==e.indexOf("#")?e:Number(e)}))},x=function(e){return e.replace(h,(function(e){if(-1!==e.indexOf("#"))return m(v(e));if(Object.prototype.hasOwnProperty.call(d,e))return d[e];throw new Error("String cannot be parsed!")}))};function w(e,t,n,r){var i,o,f=null==r?void 0:r.extrapolate,a=null==r?void 0:r.extrapolateLeft,u=null==r?void 0:r.extrapolateRight,c=function(e,t,n){var r=t.length,i=[];e<t[0]?i=[t[0],t[1],n[0],n[1]]:e>t[r-1]&&(i=[t[r-2],t[r-1],n[r-2],n[r-1]]);for(var o=1;o<r;++o)if(e<=t[o]){i=[t[o-1],t[o],n[o-1],n[o]];break}return i}(e,t,n),h="extend";void 0!==a?h=a:void 0!==f&&(h=f);var d,v="extend";if(void 0!==u?v=u:void 0!==f&&(v=f),n.length){if("number"==typeof n[0])return p(e,c,h,v);if(Array.isArray(n[0]))return g(e,c,h,v);var m=l(c,4),w=m[0],E=m[1],k=m[2],M=m[3],_=x(k),I=x(M),O=y(_);if(d=I,y(_).trim().replace(/\s/g,"")===y(d).trim().replace(/\s/g,"")){var T=b(_),S=b(I),L=g(e,[w,E,T,S],h,v);try{for(var C=s(L),Y=C.next();!Y.done;Y=C.next()){var A=Y.value;O=O.replace("$",A)}}catch(e){i={error:e}}finally{try{Y&&!Y.done&&(o=C.return)&&o.call(C)}finally{if(i)throw i.error}}return O}throw new Error("Output range doesn't match string format!")}throw new Error("Output range cannot be Empty")}var E=function(t,n,r,i){return t instanceof e.FluidValue?t.interpolate(n,r,i):w(t,n,r,i)},k={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,friction:18,tension:250},EASE:{mass:1,friction:26,tension:170},STIFF:{mass:1,friction:18,tension:350},WOBBLE:{mass:1,friction:8,tension:250}}},M=function(t,n,r){return function(i){return{controller:e.spring(i,a(a({toValue:t},k.Spring.ELASTIC),n)),callback:r}}},_=function(t,n){return function(r){return{controller:e.native(r,{toValue:t}),callback:n}}},I=function(e,t,n){return M(e,a(a({},k.Spring.EASE),t),n)};function O(e){return"number"==typeof e||"string"==typeof e?_(e):e}function T(t){var r=n.useRef(new e.FluidValue(t)).current,i=n.useCallback((function(e){var t=O(e)(r),n=t.controller,i=t.callback;n.start(i)}),[]);return{set value(e){i(e)},get value(){return r},get currentValue(){return r.get()}}}var S=function(e,t){var r,i,o,f=l(n.useState(e),2),a=f[0],s=f[1],u=n.useRef({from:null!==(r=null==t?void 0:t.from)&&void 0!==r?r:0,enter:null!==(i=null==t?void 0:t.enter)&&void 0!==i?i:I(1),exit:null!==(o=null==t?void 0:t.exit)&&void 0!==o?o:I(0)}).current,c=T(u.from),h=u.enter(c.value),d=u.exit(c.value);return n.useLayoutEffect((function(){e?(s(!0),queueMicrotask((function(){h.controller.start(h.callback)}))):queueMicrotask((function(){d.controller.start((function(e){var t;null===(t=d.callback)||void 0===t||t.call(d,e),e.finished&&s(!1)}))}))}),[e]),function(e){return e({value:c.value},a)}};function L(e,t){var n=new Map;return t.forEach((function(t){var r=l(t,3),i=r[0],o=r[1],f=r[2],a=void 0!==f&&f;n.set(i,function(e,t,n,r){return void 0===r&&(r=!1),e.forEach((function(e){e.addEventListener(t,n,r)})),function(){e.forEach((function(e){e.removeEventListener(t,n,r)}))}}(e,i,o,a))})),function(e){var t,r;try{for(var i=s(n.entries()),o=i.next();!o.done;o=i.next()){var f=l(o.value,2),a=f[0],u=f[1];if(!e)return void u();-1!==e.indexOf(a)&&u()}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}}}function C(e,t,n){return Math.min(Math.max(e,t),n)}function Y(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 A=function(e,t){return{x:e,y:t}},R=function(){function e(){this.lastTimeStamp=Date.now(),this.isActive=!1,this.targetElements=[]}return e.prototype._initEvents=function(){},e.prototype._cancelEvents=function(){this._subscribe&&this._subscribe()},e.prototype.applyCallback=function(e){this.callback=e},e.prototype.applyGesture=function(e){var t=this,n=e.targetElement,r=e.targetElements,i=e.callback,o=e.config;return this.targetElement=n,this.targetElements=r.map((function(e){return e.current})),this.callback=i,this.config=o,this._initEvents(),function(){return t._subscribe&&t._subscribe()}},e._VELOCITY_LIMIT=20,e}(),V=function(e){function t(){var t=e.apply(this,u([],l(arguments),!1))||this;return t.movementStart=A(0,0),t.initialMovement=A(0,0),t.movement=A(0,0),t.previousMovement=A(0,0),t.translation=A(0,0),t.offset=A(0,0),t.velocity=A(0,0),t}return f(t,e),t.prototype._initEvents=function(){(this.targetElement||this.targetElements.length>0)&&(this._subscribe=L([window],[["mousedown",this.pointerDown.bind(this)],["mousemove",this.pointerMove.bind(this)],["mouseup",this.pointerUp.bind(this)],["touchstart",this.pointerDown.bind(this),{passive:!1}],["touchmove",this.pointerMove.bind(this),{passive:!1}],["touchend",this.pointerUp.bind(this)]]))},t.prototype._cancelEvents=function(){this._subscribe&&this._subscribe(["mousedown","mousemove","touchstart","touchmove"])},t.prototype._handleCallback=function(){var e=this;this.callback&&this.callback({args:[this.currentIndex],down:this.isActive,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.translation.x,offsetY:this.translation.y,velocityX:this.velocity.x,velocityY:this.velocity.y,distanceX:Math.abs(this.movement.x),distanceY:Math.abs(this.movement.y),directionX:Math.sign(this.movement.x),directionY:Math.sign(this.movement.y),cancel:function(){e._cancelEvents()}})},t.prototype.pointerDown=function(e){var t;"touchstart"===e.type?this.movementStart={x:e.touches[0].clientX,y:e.touches[0].clientY}:this.movementStart={x:e.clientX,y:e.clientY},this.movement={x:0,y:0},this.offset={x:this.translation.x,y:this.translation.y},this.previousMovement={x:0,y:0},this.velocity={x:0,y:0};var n=this.targetElements.find((function(t){return t===e.target}));if(e.target===this.targetElement||n){this.isActive=!0,e.preventDefault(),n&&(this.currentIndex=this.targetElements.indexOf(n));var r=(null===(t=this.config)||void 0===t?void 0:t.initial)&&this.config.initial(),i=null==r?void 0:r.movementX,o=null==r?void 0:r.movementY;this.initialMovement={x:null!=i?i:0,y:null!=o?o:0},this.movement={x:this.initialMovement.x,y:this.initialMovement.y},this.previousMovement={x:this.initialMovement.x,y:this.initialMovement.y},this._handleCallback()}},t.prototype.pointerMove=function(e){if(this.isActive){e.preventDefault();var t=Date.now(),n=C(t-this.lastTimeStamp,.1,64);this.lastTimeStamp=t;var r=n/1e3;"touchmove"===e.type?this.movement={x:this.initialMovement.x+(e.touches[0].clientX-this.movementStart.x),y:this.initialMovement.y+(e.touches[0].clientY-this.movementStart.y)}:this.movement={x:this.initialMovement.x+(e.clientX-this.movementStart.x),y:this.initialMovement.y+(e.clientY-this.movementStart.y)},this.translation={x:this.offset.x+this.movement.x,y:this.offset.y+this.movement.y},this.velocity={x:C((this.movement.x-this.previousMovement.x)/r/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT),y:C((this.movement.y-this.previousMovement.y)/r/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()}},t.prototype.pointerUp=function(){this.isActive&&(this.isActive=!1,this._handleCallback(),this._cancelEvents(),this._initEvents())},t}(R),q=function(e){function t(){var t=e.apply(this,u([],l(arguments),!1))||this;return t.movement=A(0,0),t.previousMovement=A(0,0),t.velocity=A(0,0),t.direction=A(0,0),t}return f(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=L([this.targetElement],[["mousemove",this.onMouseMove.bind(this)]]):this.targetElements.length>0?this._subscribe=L(this.targetElements,[["mousemove",this.onMouseMove.bind(this)]]):this._subscribe=L([window],[["mousemove",this.onMouseMove.bind(this)]])},t.prototype._handleCallback=function(){var e;this.callback&&this.callback({args:[this.currentIndex],event:this.event,isMoving:this.isActive,target:null===(e=this.event)||void 0===e?void 0:e.target,mouseX:this.movement.x,mouseY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onMouseMove=function(e){var t=this,n=this.targetElements.find((function(t){return t===e.target}));n&&(this.currentIndex=this.targetElements.indexOf(n)),this.event=e;var r=Date.now(),i=Math.min(r-this.lastTimeStamp,64);this.lastTimeStamp=r;var o=i/1e3,f=e.clientX,a=e.clientY;this.movement={x:f,y:a},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:C(s/o/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT),y:C(l/o/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(R),X=function(e){function t(){var t=e.apply(this,u([],l(arguments),!1))||this;return t.movement=A(0,0),t.previousMovement=A(0,0),t.direction=A(0,0),t.velocity=A(0,0),t}return f(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=L([this.targetElement],[["scroll",this.scrollElementListener.bind(this)]]):this._subscribe=L([window],[["scroll",this.scrollListener.bind(this)]])},t.prototype._handleCallback=function(){this.callback&&this.callback({isScrolling:this.isActive,scrollX:this.movement.x,scrollY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onScroll=function(e){var t=this,n=e.x,r=e.y,i=Date.now(),o=Math.min(i-this.lastTimeStamp,64);this.lastTimeStamp=i;var f=o/1e3;this.movement={x:n,y:r},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var a=this.movement.x-this.previousMovement.x,s=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(a),y:Math.sign(s)},this.velocity={x:C(a/f/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT),y:C(s/f/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t.prototype.scrollListener=function(){var e=window.pageYOffset,t=window.pageXOffset;this.onScroll({x:t,y:e})},t.prototype.scrollElementListener=function(){var e,t,n=(null===(e=this.targetElement)||void 0===e?void 0:e.scrollLeft)||0,r=(null===(t=this.targetElement)||void 0===t?void 0:t.scrollTop)||0;this.onScroll({x:n,y:r})},t}(R),D=function(e){function t(){var t=e.apply(this,u([],l(arguments),!1))||this;return t.movement=A(0,0),t.previousMovement=A(0,0),t.direction=A(0,0),t.velocity=A(0,0),t.delta=A(0,0),t.offset=A(0,0),t.translation=A(0,0),t}return f(t,e),t.prototype._initEvents=function(){this.targetElement&&(this._subscribe=L([this.targetElement],[["wheel",this.onWheel.bind(this)]]))},t.prototype._handleCallback=function(){this.callback&&this.callback({target:this.targetElement,isWheeling:this.isActive,deltaX:this.delta.x,deltaY:this.delta.y,directionX:this.direction.x,directionY:this.direction.y,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.offset.x,offsetY:this.offset.y,velocityX:this.velocity.x,velocityY:this.velocity.y})},t.prototype.onWheel=function(e){var t=this,n=e.deltaX,r=e.deltaY,i=e.deltaMode,o=Date.now(),f=Math.min(o-this.lastTimeStamp,64);this.lastTimeStamp=o;var a=f/1e3;this.isActive=!0,-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.translation={x:t.offset.x,y:t.offset.y},t._handleCallback(),t.velocity={x:0,y:0},t.movement={x:0,y:0}}),200),1===i?(n*=40,r*=40):2===i&&(n*=800,r*=800),this.delta={x:n,y:r},this.movement={x:this.movement.x+n,y:this.movement.y+r},this.offset={x:this.translation.x+this.movement.x,y:this.translation.y+this.movement.y};var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:C(s/a/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT),y:C(l/a/1e3,-1*R._VELOCITY_LIMIT,R._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(R),j=function(e){var t=i.useRef(),n=i.useRef([]),r=i.useRef(new Map).current;return i.useEffect((function(){var t,n;try{for(var i=s(r.entries()),o=i.next();!o.done;o=i.next()){var f=l(o.value,2)[1],a=f.keyIndex,u=f.gesture,c=l(e[a],3)[2];u.applyCallback(c)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}}),[e]),i.useEffect((function(){return e.forEach((function(e,i){var o=l(e,4),f=o[0],a=o[1],s=o[2],u=o[3];queueMicrotask((function(){return r.set(f,{keyIndex:i,gesture:a,unsubscribe:a.applyGesture({targetElement:t.current,targetElements:n.current,callback:s,config:u})})}))})),function(){var e,t;try{for(var n=s(r.entries()),i=n.next();!i.done;i=n.next()){var o=l(i.value,2)[1].unsubscribe;o&&o()}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}}})),function(e){return null==e?{ref:t}:(n.current[e]=n.current[e]||i.createRef(),{ref:n.current[e]})}};Object.defineProperty(exports,"Easing",{enumerable:!0,get:function(){return e.Easing}}),Object.defineProperty(exports,"animate",{enumerable:!0,get:function(){return e.fluid}}),Object.defineProperty(exports,"makeAnimated",{enumerable:!0,get:function(){return e.makeFluid}}),exports.AnimationConfig=k,exports.MountedBlock=function(e){var n=e.state,r=e.children,i=e.from,o=e.enter,f=e.exit,a=S(n,{from:i,enter:o,exit:f});return t.jsx(t.Fragment,{children:a((function(e,t){return t&&r({value:e.value})}))})},exports.ScrollableBlock=function(e){var r=e.children,i=e.direction,o=void 0===i?"single":i,f=e.threshold,a=void 0===f?.2:f,s=n.useRef(null),u=T(0);return n.useLayoutEffect((function(){var e=s.current,t=new IntersectionObserver((function(e){l(e,1)[0].isIntersecting?u.value=I(1):"both"===o&&(u.value=I(0))}),{root:null,threshold:a});return e&&t.observe(e),function(){e&&t.unobserve(e)}}),[]),t.jsx("div",{ref:s,children:r&&r({value:u.value})})},exports.bInterpolate=function(e,t,n,r){return E(e,[0,1],[t,n],r)},exports.bin=function(e){return e?1:0},exports.clamp=C,exports.interpolate=E,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,o=t-n;if(o>0)return u(u(u(u([],l(e.slice(0,n)),!1),[r],!1),l(e.slice(n,t)),!1),l(e.slice(t+1,i)),!1);if(o<0){var f=n+1;return u(u(u(u([],l(e.slice(0,t)),!1),l(e.slice(t+1,f)),!1),[r],!1),l(e.slice(f,i)),!1)}return e},exports.rubberClamp=function(e,t,n,r){return void 0===r&&(r=.15),0===r?C(e,t,n):e<t?-Y(t-e,n-t,r)+t:e>n?+Y(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)},o=n.map(i),f=Math.min.apply(Math,u([],l(o),!1));return n.reduce((function(e,t){return i(t)===f?t:e}))},exports.useDrag=function(e,t){var n=i.useRef(new V).current;return j([["drag",n,e,t]])},exports.useGesture=function(e){var t=e.onDrag,n=e.onWheel,r=e.onScroll,o=e.onMouseMove,f=i.useRef(new V).current,a=i.useRef(new D).current,s=i.useRef(new X).current,l=i.useRef(new q).current;return j([["drag",f,t],["wheel",a,n],["scroll",s,r],["move",l,o]])},exports.useMeasure=function(e,t){var r=n.useRef(null),i=n.useRef([]),o=n.useRef(e);return n.useEffect((function(){return o.current=e,function(){o.current=function(){return!1}}}),t),n.useEffect((function(){var e=r.current||document.documentElement,t=i.current,n=new ResizeObserver((function(t){var n=l(t,1)[0].target.getBoundingClientRect(),r=n.left,i=n.top,f=n.width,a=n.height,s=window.pageXOffset,u=window.pageYOffset;if(o){if(e===document.documentElement)return;o.current({left:r+s,top:i+u,width:f,height:a,vLeft:r,vTop:i})}})),f=new ResizeObserver((function(e){var t=[],n=[],r=[],i=[],f=[],a=[];e.forEach((function(e){var o=e.target.getBoundingClientRect(),s=o.left,l=o.top,u=o.width,c=o.height,h=s+window.pageXOffset,d=l+window.pageYOffset;t.push(h),n.push(d),r.push(u),i.push(c),f.push(s),a.push(l)})),o&&o.current({left:t,top:n,width:r,height:i,vLeft:f,vTop:a})}));return e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){f.observe(e.current)})):n.observe(e)),function(){e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){f.unobserve(e.current)})):n.unobserve(e))}}),[]),function(e){return null==e?{ref:r}:(i.current[e]=i.current[e]||n.createRef(),{ref:i.current[e]})}},exports.useMount=S,exports.useMouseMove=function(e){var t=i.useRef(new q).current;return j([["move",t,e]])},exports.useOutsideClick=function(e,t,r){var i=n.useRef();i.current||(i.current=t),n.useEffect((function(){return i.current=t,function(){i.current=function(){return!1}}}),r),n.useEffect((function(){var t=L([document],[["mousedown",function(t){var n=t.target;n&&n.isConnected&&(e.current&&!e.current.contains(n)&&i.current&&i.current(t))}]]);return function(){return t&&t()}}),[])},exports.useScroll=function(e){var t=i.useRef(new X).current;return j([["scroll",t,e]])},exports.useValue=T,exports.useValues=function(t){var r=n.useRef(t.map((function(t){return new e.FluidValue(t)}))).current,i=n.useCallback((function(e){e.forEach((function(e,t){var n=O(e)(r[t]),i=n.controller,o=n.callback;i.start(o)}))}),[]);return{set value(e){i(e)},get value(){return r},get currentValue(){return r.map((function(e){return e.get()}))}}},exports.useWheel=function(e){var t=i.useRef(new D).current;return j([["wheel",t,e]])},exports.useWindowDimension=function(e,t){var r=n.useRef({width:0,height:0,innerWidth:0,innerHeight:0}),i=n.useRef(e);n.useEffect((function(){return i.current=e,function(){i.current=function(){return!1}}}),t),n.useEffect((function(){var e=new ResizeObserver((function(e){var t=l(e,1)[0].target,n=t.clientWidth,o=t.clientHeight,f=window.innerWidth,s=window.innerHeight;r.current={width:n,height:o,innerWidth:f,innerHeight:s},i&&i.current(a({},r.current))}));return e.observe(document.documentElement),function(){return e.unobserve(document.documentElement)}}),[])},exports.withDecay=function(t,n){return function(r){return{controller:e.decay(r,a({},t)),callback:n}}},exports.withDelay=function(t,n){return function(){return{controller:e.delay(t),callback:n}}},exports.withEase=I,exports.withLoop=function(t,n,r){return function(i){return{controller:e.loop(t(i).controller,{iterations:n}),callback:r}}},exports.withSequence=function(t,n){return function(r){return{controller:e.sequence(t.map((function(e){return e(r).controller}))),callback:n}}},exports.withSpring=M,exports.withTiming=function(t,n,r){return function(i){return{controller:e.timing(i,{toValue:t,duration:null==n?void 0:n.duration,easing:null==n?void 0:n.easing,onStart:null==n?void 0:n.onStart,onChange:null==n?void 0:n.onChange,onRest:null==n?void 0:n.onRest}),callback:r}}};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/animation/hooks/useValue.ts","../src/animation/AnimationConfig.ts","../src/animation/controllers.ts","../src/animation/hooks/useMount.ts","../src/animation/interpolation/colors.ts","../src/animation/interpolation/interpolateNumbers.ts","../src/gestures/helpers/eventAttacher.ts","../src/gestures/helpers/math.ts","../src/gestures/helpers/withDefault.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/controllers/MouseMoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/gestures/hooks/useRecognizer.ts","../src/animation/modules/MountedBlock.tsx","../src/animation/modules/ScrollableBlock.tsx","../src/gestures/hooks/useDrag.ts","../src/gestures/hooks/useGesture.ts","../src/hooks/useMeasure.ts","../src/gestures/hooks/useMouseMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/gestures/hooks/useWheel.ts","../src/hooks/useWindowDimension.ts"],"sourcesContent":["import {\n decay,\n delay,\n loop,\n MotionValue,\n sequence,\n spring,\n timing,\n useMotionValue,\n} from '@raidipesh78/re-motion';\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { DriverConfig, ToValue } from '../types';\n\nexport function useValue<V extends number | string>(initialValue: V) {\n const animation = useMotionValue<V>(initialValue);\n const unsubscribeRef = useRef<() => void>();\n\n const doSet = useCallback((u: ToValue<V>) => {\n unsubscribeRef.current?.();\n unsubscribeRef.current = undefined;\n\n if (u && typeof u === 'object') {\n const { type, to, options } = u;\n\n if (options?.onChange) {\n unsubscribeRef.current = animation.subscribe(options.onChange);\n }\n\n if (type === 'sequence') {\n const steps = options?.steps ?? [];\n\n const controllers = steps.map((step) => {\n if (step.type === 'decay') {\n return decay(\n animation as MotionValue<number>,\n step?.options?.velocity!,\n step.options\n );\n }\n\n if (step.type === 'delay') {\n return delay(step?.options?.delay!);\n }\n\n const driver = step.type === 'spring' ? spring : timing;\n return driver(\n animation as MotionValue<number>,\n step.to!,\n step.options\n );\n });\n\n const seqCtrl = sequence(controllers);\n seqCtrl.start();\n\n return;\n }\n\n if (type === 'loop') {\n const buildInner: any = (cfg: DriverConfig) => {\n if (cfg.type === 'decay') {\n return decay(\n animation as MotionValue<number>,\n cfg.options?.velocity!,\n cfg.options\n );\n }\n\n if (cfg.type === 'spring') {\n return spring(\n animation as MotionValue<number>,\n cfg?.to!,\n cfg.options\n );\n }\n\n if (cfg.type === 'timing') {\n return timing(\n animation as MotionValue<number>,\n cfg?.to!,\n cfg.options\n );\n }\n\n if (cfg.type === 'sequence') {\n return sequence(cfg.options?.steps!.map(buildInner)!);\n }\n\n if (cfg.type === 'delay') {\n return delay(cfg.options?.delay!);\n }\n\n throw new Error(`Unsupported driver type \"${cfg.type}\" in loop()`);\n };\n\n const innerCtrl = buildInner(options?.controller!);\n const loopCtrl = loop(innerCtrl, options?.iterations!);\n loopCtrl.start();\n\n return;\n }\n\n if (type === 'spring') {\n spring(animation as MotionValue<number>, to!, options).start();\n } else if (type === 'timing') {\n timing(animation as MotionValue<number>, to!, options).start();\n } else if (type === 'decay') {\n decay(\n animation as MotionValue<number>,\n options?.velocity!,\n options\n ).start();\n }\n return;\n } else {\n animation.set(u as V);\n }\n }, []);\n\n useEffect(() => {\n return () => {\n unsubscribeRef.current?.();\n unsubscribeRef.current = undefined;\n };\n }, []);\n\n return {\n get value(): MotionValue<V> {\n return animation;\n },\n set value(u: MotionValue<V> | ToValue<V>) {\n if (u instanceof MotionValue) return;\n doSet(u);\n },\n get currentValue(): V {\n return animation.current;\n },\n };\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, friction: 18, tension: 250 },\n EASE: { mass: 1, friction: 26, tension: 170 },\n STIFF: { mass: 1, friction: 18, tension: 350 },\n WOBBLE: { mass: 1, friction: 8, tension: 250 },\n },\n};\n","import { AnimationConfig } from './AnimationConfig';\nimport { DriverConfig } from './types';\n\ninterface WithSpringOptions {\n mass?: number;\n tension?: number;\n friction?: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withSpring = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig => {\n return {\n type: 'spring',\n to,\n options: {\n stiffness: options?.tension ?? 100,\n damping: options?.friction ?? 10,\n mass: options?.mass ?? 1,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n };\n};\n\nexport const withEase = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig =>\n withSpring(to, { ...options, ...AnimationConfig.Spring.EASE });\n\ninterface WithTimingOptions {\n duration?: number;\n easing?: (t: number) => number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withTiming = (\n to: number,\n options?: WithTimingOptions\n): DriverConfig => ({\n type: 'timing',\n to,\n options: {\n duration: options?.duration ?? 300,\n easing: options?.easing,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\ninterface WithDecayOptions {\n velocity: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withDecay = (options: WithDecayOptions): DriverConfig => ({\n type: 'decay',\n options: {\n velocity: options.velocity,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\nexport const withSequence = (steps: DriverConfig[]): DriverConfig => ({\n type: 'sequence',\n options: {\n steps,\n },\n});\n\nexport const withDelay = (delay: number): DriverConfig => ({\n type: 'delay',\n options: {\n delay,\n },\n});\n\nexport const withLoop = (\n controller: DriverConfig,\n iterations: number\n): DriverConfig => ({\n type: 'loop',\n options: {\n controller,\n iterations,\n },\n});\n","import { MotionValue } from '@raidipesh78/re-motion';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport { DriverConfig } from '../types';\nimport { withSpring } from '../controllers';\nimport { useValue } from './useValue';\n\nexport interface UseMountConfig {\n from?: number;\n enter?: DriverConfig;\n exit?: DriverConfig;\n}\n\nexport const useMount = (state: boolean, config?: UseMountConfig) => {\n const [mounted, setMounted] = useState(state);\n const animationConfig = useRef({\n from: config?.from ?? 0,\n enter: config?.enter ?? withSpring(1),\n exit: config?.exit ?? withSpring(0),\n }).current;\n\n const animation = useValue(animationConfig.from);\n const enterAnimation = animationConfig.enter;\n const exitAnimation = animationConfig.exit;\n\n useLayoutEffect(() => {\n if (state) {\n setMounted(true);\n queueMicrotask(() => {\n animation.value = enterAnimation;\n });\n } else {\n queueMicrotask(() => {\n animation.value = {\n ...exitAnimation,\n options: {\n ...exitAnimation.options,\n onComplete: () => {\n setMounted(false);\n exitAnimation?.options?.onComplete?.();\n animation.value.destroy(); // HACK - destroy the subscriptions to avoid exponential subscription growth\n },\n },\n };\n });\n }\n }, [state, enterAnimation, exitAnimation]);\n\n return function (\n fn: (animation: { value: MotionValue }, mounted: boolean) => React.ReactNode\n ) {\n return fn({ value: animation.value }, mounted);\n };\n};\n","export const COLOR_NUMBER_REGEX =\n /[+-]?\\d+(\\.\\d+)?|[\\s]?\\.\\d+|#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/gi;\nexport const HEX_NAME_COLOR =\n /#[a-f\\d]{3,}|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/gi;\n\ninterface classNameType {\n [name: string]: string;\n}\n\n// Named colors\nexport const colorNames: classNameType = {\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\nfunction conv3to6(hex: string) {\n const regex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\n return hex.replace(regex, function (_, r, g, b) {\n return '#' + r + r + g + g + b + b;\n });\n}\n\nfunction conv6to8(hex: string) {\n if (hex.length === 7) {\n return hex + 'FF';\n }\n\n return hex;\n}\n\nexport function hexToRgba(hex: string) {\n const hex6: string = conv3to6(hex);\n const hex8: string = conv6to8(hex6);\n const hexRgba: any =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex8);\n\n return {\n r: parseInt(hexRgba[1], 16),\n g: parseInt(hexRgba[2], 16),\n b: parseInt(hexRgba[3], 16),\n a: parseInt(hexRgba[4], 16) / 255,\n };\n}\n\nexport function rgbaToHex(rgba: {\n r: number;\n g: number;\n b: number;\n a: number;\n}) {\n const { r, g, b, a } = rgba;\n\n const hexR = (r | (1 << 8)).toString(16).slice(1);\n const hexG = (g | (1 << 8)).toString(16).slice(1);\n const hexB = (b | (1 << 8)).toString(16).slice(1);\n const hexA = ((a * 255) | (1 << 8)).toString(16).slice(1);\n\n return '#' + hexR + hexG + hexB + hexA;\n}\n\nexport function processColor(color: number | string) {\n if (typeof color === 'number') {\n const alpha = ((color >> 24) & 255) / 255;\n const red = (color >> 16) & 255;\n const green = (color >> 8) & 255;\n const blue = color & 255;\n\n return { r: red, g: green, b: blue, a: alpha };\n } else {\n // If string then check whether it has # in 0 index\n if (color[0] === '#') {\n return hexToRgba(color);\n } else {\n // It is string color\n const hexColorName: string = colorNames[color];\n if (hexColorName) {\n return hexToRgba(hexColorName);\n } else {\n throw new Error('String cannot be parsed!');\n }\n }\n }\n}\n","import {\n rgbaToHex,\n hexToRgba,\n COLOR_NUMBER_REGEX,\n HEX_NAME_COLOR,\n colorNames,\n} from './colors';\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ntype ExtrapolateConfig = {\n extrapolate?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n};\n\nconst interpolateValue = (\n val: number,\n arr: any,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = arr;\n let result: number = val;\n\n // EXTRAPOLATE\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (val <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n};\n\nconst getNarrowedInput = function (\n x: number,\n input: number[],\n output: Array<number | string>\n): Array<number | string> {\n const length = input.length;\n let narrowedInput: Array<number | string> = [];\n\n // Boundaries\n if (x < input[0]) {\n narrowedInput = [input[0], input[1], output[0], output[1]];\n } else if (x > input[length - 1]) {\n narrowedInput = [\n input[length - 2],\n input[length - 1],\n output[length - 2],\n output[length - 1],\n ];\n }\n\n // Narrow the input and output ranges\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput = [input[i - 1], input[i], output[i - 1], output[i]];\n break;\n }\n }\n\n return narrowedInput;\n};\n\nconst interpolateColor = (value: number, narrowedInput: string[]) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const outputMinProcessed = hexToRgba(outputMin);\n const outputMaxProcessed = hexToRgba(outputMax);\n\n const red = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.r, outputMaxProcessed.r],\n 'clamp',\n 'clamp'\n );\n\n const green = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.g, outputMaxProcessed.g],\n 'clamp',\n 'clamp'\n );\n\n const blue = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.b, outputMaxProcessed.b],\n 'clamp',\n 'clamp'\n );\n\n const alpha = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.a, outputMaxProcessed.a],\n 'clamp',\n 'clamp'\n );\n\n return rgbaToHex({ r: red, g: green, b: blue, a: alpha });\n};\n\nconst _getArrayInterpolate = (\n value: number,\n narrowedInput: Array<any>,\n _extrapolateLeft: ExtrapolateType,\n _extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n if (outputMin.length === outputMax.length) {\n return outputMin.map((val: any, index: number) => {\n if (typeof val === 'string') {\n // IF IT IS STRING THEN IT MUST BE HEX COLOR\n return interpolateColor(value, [\n inputMin,\n inputMax,\n val,\n outputMax[index],\n ]);\n } else {\n return interpolateValue(\n value,\n [inputMin, inputMax, val, outputMax[index]],\n _extrapolateLeft,\n _extrapolateRight\n );\n }\n });\n } else {\n throw new Error(\"Array length doesn't match\");\n }\n};\n\nconst getTemplateString = (str: string) => {\n return str.replace(COLOR_NUMBER_REGEX, '$');\n};\n\nconst _getParsedStringArray = (str: any) => {\n return str.match(COLOR_NUMBER_REGEX).map((v: string) => {\n if (v.indexOf('#') !== -1) {\n return v;\n } else {\n return Number(v);\n }\n });\n};\n\nconst stringMatched = (str1: string, str2: string) =>\n getTemplateString(str1).trim().replace(/\\s/g, '') ===\n getTemplateString(str2).trim().replace(/\\s/g, '');\n\n/**\n * Function which proccess the\n * hexadecimal colors to its proper formats\n * @param str - string\n * @returns hex color string\n */\nconst getProcessedColor = (str: string) => {\n return str.replace(HEX_NAME_COLOR, function (match: any) {\n if (match.indexOf('#') !== -1) {\n return rgbaToHex(hexToRgba(match));\n } else if (Object.prototype.hasOwnProperty.call(colorNames, match)) {\n return colorNames[match];\n } else {\n throw new Error('String cannot be parsed!');\n }\n });\n};\n\nexport function interpolateNumbers(\n value: number,\n inputRange: Array<number>,\n outputRange: Array<number | string>,\n extrapolateConfig?: ExtrapolateConfig\n) {\n const extrapolate = extrapolateConfig?.extrapolate;\n const extrapolateLeft = extrapolateConfig?.extrapolateLeft;\n const extrapolateRight = extrapolateConfig?.extrapolateRight;\n\n const narrowedInput = getNarrowedInput(value, inputRange, outputRange);\n\n let _extrapolateLeft: ExtrapolateType = 'extend';\n if (extrapolateLeft !== undefined) {\n _extrapolateLeft = extrapolateLeft;\n } else if (extrapolate !== undefined) {\n _extrapolateLeft = extrapolate;\n }\n\n let _extrapolateRight: ExtrapolateType = 'extend';\n if (extrapolateRight !== undefined) {\n _extrapolateRight = extrapolateRight;\n } else if (extrapolate !== undefined) {\n _extrapolateRight = extrapolate;\n }\n\n if (outputRange.length) {\n if (typeof outputRange[0] === 'number') {\n return interpolateValue(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else if (Array.isArray(outputRange[0])) {\n return _getArrayInterpolate(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const processedOutputMin = getProcessedColor(outputMin as string);\n const processedOutputMax = getProcessedColor(outputMax as string);\n\n let templateString = getTemplateString(processedOutputMin);\n\n if (stringMatched(processedOutputMin, processedOutputMax)) {\n const outputMinParsed = _getParsedStringArray(processedOutputMin);\n const outputMaxParsed = _getParsedStringArray(processedOutputMax);\n\n const result = _getArrayInterpolate(\n value,\n [inputMin, inputMax, outputMinParsed, outputMaxParsed],\n _extrapolateLeft,\n _extrapolateRight\n );\n\n for (const v of result) templateString = templateString.replace('$', v);\n return templateString;\n } else {\n throw new Error(\"Output range doesn't match string format!\");\n }\n }\n } else {\n throw new Error('Output range cannot be Empty');\n }\n}\n","type MouseEventType =\n | 'click'\n | 'dblclick'\n | 'mousedown'\n | 'mousemove'\n | 'mouseup'\n | 'touchstart'\n | 'touchmove'\n | 'touchend'\n | 'mouseenter'\n | 'mouseleave'\n | 'mouseout'\n | 'mouseover'\n | 'scroll'\n | 'wheel'\n | 'contextmenu';\n\ntype DomTargetTypes = Array<Window | Document | HTMLElement>;\n\n/**\n * Attach single document / window event / HTMLElement\n */\nfunction attachEvent(\n domTargets: DomTargetTypes,\n event: MouseEventType,\n callback: (e: any) => void,\n capture: any = false\n) {\n domTargets.forEach((target) => {\n target.addEventListener(event, callback, capture);\n });\n\n return function () {\n domTargets.forEach((target) => {\n target.removeEventListener(event, callback, capture);\n });\n };\n}\n\n/**\n * Attach multiple document / window event / HTMLElement\n */\nexport function attachEvents(\n domTargets: DomTargetTypes,\n events: Array<\n [event: MouseEventType, callback: (e: any) => void, capture?: any]\n >\n) {\n const subscribers = new Map();\n\n events.forEach(function ([event, callback, capture = false]) {\n subscribers.set(event, attachEvent(domTargets, event, callback, capture));\n });\n\n return function (eventKeys?: Array<string>) {\n for (const [eventKey, subscriber] of subscribers.entries()) {\n if (!eventKeys) {\n subscriber();\n return;\n }\n\n if (eventKeys.indexOf(eventKey) !== -1) {\n subscriber();\n }\n }\n };\n}\n","/**\n * bin(booleanValue)\n * returns 1 if booleanValue == true and 0 if booleanValue == false\n */\nexport function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\n/**\n * mix(progress, a, b)\n * linear interpolation between a and b\n */\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\n/**\n * clamp(value, min, max)\n * clamps value for min and max bounds\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\n/**\n * rubberClamp(value, min, max, constant?)\n * constant is optional : default 0.15\n * clamps the value for min and max value and\n * extends beyond min and max values with constant\n * factor to create elastic rubber band effect\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\n/**\n * snapTo(value, velocity, snapPoints[])\n * Calculates the final snapPoint according to given current value,\n * velocity and snapPoints array\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\n/**\n * move(array, moveIndex, toIndex)\n * move array item from moveIndex to toIndex without array modification\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","export const withDefault = (x: number, y: number) => {\n return { x, y };\n};\n","export class Gesture {\n currentIndex?: number;\n lastTimeStamp: number = Date.now();\n isActive: boolean = false;\n targetElement?: HTMLElement; // represents the bounded element\n targetElements: Array<HTMLElement> = []; // represents the bounded elements\n config?: any;\n callback?: <T>(event: T) => void;\n _subscribe?: (eventKeys?: Array<string>) => void;\n static _VELOCITY_LIMIT: number = 20;\n\n // it must be overridden by other child classes\n _initEvents() {}\n\n // cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe();\n }\n }\n\n // re-apply new callback\n applyCallback(callback: <T>(event: T) => void) {\n this.callback = callback;\n }\n\n // apply gesture\n applyGesture({\n targetElement,\n targetElements,\n callback,\n config,\n }: {\n targetElement?: any;\n targetElements?: any;\n callback: <T>(event: T) => void;\n config?: any;\n }) {\n this.targetElement = targetElement;\n this.targetElements = targetElements.map(\n (element: { current: any }) => element.current\n );\n this.callback = callback;\n this.config = config;\n\n // initialize events\n this._initEvents();\n\n // unbind\n return () => this._subscribe && this._subscribe();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nimport type { Vector2 } from '../types';\n\nexport class DragGesture extends Gesture {\n movementStart: Vector2 = withDefault(0, 0);\n initialMovement: Vector2 = withDefault(0, 0);\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n offset: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement || this.targetElements.length > 0) {\n this._subscribe = attachEvents(\n [window],\n [\n ['mousedown', this.pointerDown.bind(this)],\n ['mousemove', this.pointerMove.bind(this)],\n ['mouseup', this.pointerUp.bind(this)],\n ['touchstart', this.pointerDown.bind(this), { passive: false }],\n ['touchmove', this.pointerMove.bind(this), { passive: false }],\n ['touchend', this.pointerUp.bind(this)],\n ]\n );\n }\n }\n\n // @override - cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe(['mousedown', 'mousemove', 'touchstart', 'touchmove']);\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n down: this.isActive,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.translation.x,\n offsetY: this.translation.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n distanceX: Math.abs(this.movement.x),\n distanceY: Math.abs(this.movement.y),\n directionX: Math.sign(this.movement.x),\n directionY: Math.sign(this.movement.y),\n cancel: () => {\n this._cancelEvents();\n },\n });\n }\n }\n\n pointerDown(e: any) {\n if (e.type === 'touchstart') {\n this.movementStart = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n };\n } else {\n this.movementStart = { x: e.clientX, y: e.clientY };\n }\n\n this.movement = { x: 0, y: 0 };\n this.offset = { x: this.translation.x, y: this.translation.y };\n this.previousMovement = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n if (e.target === this.targetElement || currElem) {\n this.isActive = true;\n e.preventDefault();\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n // if initial function is defined then call it to get initial movementX and movementY\n // if only select to bounded draggable element\n const initial = this.config?.initial && this.config.initial();\n const initialMovementX = initial?.movementX;\n const initialMovementY = initial?.movementY;\n\n this.initialMovement = {\n x: initialMovementX ?? 0,\n y: initialMovementY ?? 0,\n };\n\n this.movement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this.previousMovement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerMove(e: any) {\n if (this.isActive) {\n e.preventDefault();\n const now = Date.now();\n const deltaTime = clamp(now - this.lastTimeStamp, 0.1, 64);\n this.lastTimeStamp = now;\n\n const t = deltaTime / 1000;\n\n if (e.type === 'touchmove') {\n this.movement = {\n x:\n this.initialMovement.x +\n (e.touches[0].clientX - this.movementStart.x),\n y:\n this.initialMovement.y +\n (e.touches[0].clientY - this.movementStart.y),\n };\n } else {\n this.movement = {\n x: this.initialMovement.x + (e.clientX - this.movementStart.x),\n y: this.initialMovement.y + (e.clientY - this.movementStart.y),\n };\n }\n\n this.translation = {\n x: this.offset.x + this.movement.x,\n y: this.offset.y + this.movement.y,\n };\n\n this.velocity = {\n x: clamp(\n (this.movement.x - this.previousMovement.x) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n (this.movement.y - this.previousMovement.y) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerUp() {\n if (this.isActive) {\n this.isActive = false;\n this._handleCallback();\n this._cancelEvents();\n this._initEvents();\n }\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class MouseMoveGesture extends Gesture {\n event?: MouseEvent;\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n } else if (this.targetElements.length > 0) {\n this._subscribe = attachEvents(this.targetElements, [\n ['mousemove', this.onMouseMove.bind(this)],\n ]);\n } else {\n this._subscribe = attachEvents(\n [window],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n event: this.event,\n isMoving: this.isActive,\n target: this.event?.target,\n mouseX: this.movement.x,\n mouseY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onMouseMove(e: MouseEvent) {\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n this.event = e;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n const x = e.clientX;\n const y = e.clientY;\n\n this.movement = { x, y };\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback();\n }, 250); // Debounce 250 milliseconds\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = { x: this.movement.x, y: this.movement.y };\n\n this._handleCallback();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class ScrollGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['scroll', this.scrollElementListener.bind(this)]]\n );\n } else {\n this._subscribe = attachEvents(\n [window],\n [['scroll', this.scrollListener.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n isScrolling: this.isActive,\n scrollX: this.movement.x,\n scrollY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onScroll({ x, y }: Vector2) {\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.movement = { x, y };\n\n // Clear if scrolling\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n\n // Reset Velocity\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback(); // Debounce 250milliseconds\n }, 250);\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n\n scrollListener() {\n const { pageYOffset: y, pageXOffset: x } = window;\n this.onScroll({ x, y });\n }\n\n scrollElementListener() {\n const x = this.targetElement?.scrollLeft || 0;\n const y = this.targetElement?.scrollTop || 0;\n this.onScroll({ x, y });\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\nexport class WheelGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n delta: Vector2 = withDefault(0, 0);\n\n // Holds offsets\n offset: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['wheel', this.onWheel.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n target: this.targetElement,\n isWheeling: this.isActive,\n deltaX: this.delta.x,\n deltaY: this.delta.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.offset.x,\n offsetY: this.offset.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n });\n }\n }\n\n onWheel(event: WheelEvent) {\n let { deltaX, deltaY, deltaMode } = event;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.isActive = true;\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.translation = { x: this.offset.x, y: this.offset.y };\n this._handleCallback();\n\n this.velocity = { x: 0, y: 0 }; // Reset Velocity\n this.movement = { x: 0, y: 0 };\n }, 200);\n\n // normalize wheel values, especially for Firefox\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n this.delta = { x: deltaX, y: deltaY };\n this.movement = {\n x: this.movement.x + deltaX,\n y: this.movement.y + deltaY,\n };\n this.offset = {\n x: this.translation.x + this.movement.x,\n y: this.translation.y + this.movement.y,\n };\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\ntype UseRecognizerHandlerType = Array<\n [\n key: 'drag' | 'wheel' | 'move' | 'scroll',\n gesture: any,\n callback: any,\n config?: any\n ]\n>;\n\nexport const useRecognizer = (handlers: UseRecognizerHandlerType) => {\n const ref = React.useRef<any>();\n const elementRefs = React.useRef<Array<any>>([]);\n const subscribers = React.useRef<\n Map<string, { keyIndex: number; gesture: any; unsubscribe: any }>\n >(new Map()).current;\n\n // re-initiate callback on change\n React.useEffect(() => {\n for (let [, { keyIndex, gesture }] of subscribers.entries()) {\n const [, , callback] = handlers[keyIndex];\n gesture.applyCallback(callback);\n }\n }, [handlers]);\n\n React.useEffect(() => {\n handlers.forEach(([key, gesture, callback, config], keyIndex) => {\n queueMicrotask(() =>\n subscribers.set(key, {\n keyIndex,\n gesture,\n unsubscribe: gesture.applyGesture({\n targetElement: ref.current,\n targetElements: elementRefs.current,\n callback,\n config,\n }),\n })\n );\n });\n\n return () => {\n for (let [, { unsubscribe }] of subscribers.entries()) {\n unsubscribe && unsubscribe();\n }\n };\n });\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] =\n elementRefs.current[index] || React.createRef();\n\n return { ref: elementRefs.current[index] };\n }\n };\n};\n","import { ReactNode } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { useMount, type UseMountConfig } from '../hooks';\n\ninterface MountedBlockProps extends Partial<UseMountConfig> {\n state: boolean;\n children: (animation: { value: MotionValue }) => ReactNode;\n}\n\nexport const MountedBlock = ({\n state,\n children,\n from,\n enter,\n exit,\n}: MountedBlockProps) => {\n const open = useMount(state, { from, enter, exit });\n\n return (\n <>\n {open(\n (animation, mounted) => mounted && children({ value: animation.value })\n )}\n </>\n );\n};\n","import { ReactNode, useRef, useLayoutEffect } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { useValue } from '../hooks';\nimport { withEase } from '../controllers';\n\ninterface ScrollableBlockProps {\n children?: (animation: { value: MotionValue }) => ReactNode;\n direction?: 'single' | 'both';\n threshold?: number;\n}\n\nexport const ScrollableBlock = (props: ScrollableBlockProps) => {\n const { children, direction = 'single', threshold = 0.2 } = props;\n const scrollableBlockRef = useRef<HTMLDivElement>(null);\n const animation = useValue(0); // 0: not intersecting | 1: intersecting\n\n useLayoutEffect(() => {\n const _scrollableBlock = scrollableBlockRef.current;\n\n const observer = new IntersectionObserver(\n function ([entry]) {\n const { isIntersecting } = entry;\n\n if (isIntersecting) {\n animation.value = withEase(1);\n } else {\n if (direction === 'both') animation.value = withEase(0);\n }\n },\n {\n root: null, // FOR VIEWPORT ONLY\n threshold,\n }\n );\n\n if (_scrollableBlock) {\n observer.observe(_scrollableBlock);\n }\n\n return () => {\n if (_scrollableBlock) {\n observer.unobserve(_scrollableBlock);\n }\n };\n }, []);\n\n return (\n <div ref={scrollableBlockRef}>\n {children && children({ value: animation.value })}\n </div>\n );\n};\n","import * as React from 'react';\n\nimport { DragEventType, UseDragConfig } from '../types';\nimport { DragGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useDrag(\n callback: (event: DragEventType) => void,\n config?: UseDragConfig\n) {\n const gesture = React.useRef(new DragGesture()).current;\n\n return useRecognizer([['drag', gesture, callback, config]]);\n}\n","import * as React from 'react';\nimport {\n DragGesture,\n MouseMoveGesture,\n ScrollGesture,\n WheelGesture,\n} from '../controllers';\nimport {\n DragEventType,\n WheelEventType,\n ScrollEventType,\n MouseMoveEventType,\n} from '../types';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useGesture({\n onDrag,\n onWheel,\n onScroll,\n onMouseMove,\n}: {\n onDrag?: (event: DragEventType) => void;\n onWheel?: (event: WheelEventType) => void;\n onScroll?: (event: ScrollEventType) => void;\n onMouseMove?: (event: MouseMoveEventType) => void;\n}) {\n const dragGesture = React.useRef(new DragGesture()).current;\n const wheelGesture = React.useRef(new WheelGesture()).current;\n const scrollGesture = React.useRef(new ScrollGesture()).current;\n const mouseMoveGesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([\n ['drag', dragGesture, onDrag],\n ['wheel', wheelGesture, onWheel],\n ['scroll', scrollGesture, onScroll],\n ['move', mouseMoveGesture, onMouseMove],\n ]);\n}\n","import { useRef, useEffect, DependencyList, createRef } from 'react';\n\ntype MeasurementValue = number | Array<number>;\n\ntype 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 callback: (event: MeasurementType) => void,\n deps?: DependencyList\n) {\n const ref = useRef(null);\n const elementRefs = useRef([]);\n const callbackRef = useRef<(event: MeasurementType) => void>(callback);\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const _refElement = ref.current || document.documentElement;\n const _refElementsMultiple = elementRefs.current;\n\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { left, top, width, height } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n\n if (callbackRef) {\n if (_refElement === document.documentElement) {\n return; // no-op for document\n } else {\n callbackRef.current({\n left: left + pageXOffset,\n top: top + pageYOffset,\n width,\n height,\n vLeft: left,\n vTop: top,\n });\n }\n }\n });\n\n const resizeObserverMultiple = new ResizeObserver((entries) => {\n const left: Array<number> = [];\n const top: Array<number> = [];\n const width: Array<number> = [];\n const height: Array<number> = [];\n const vLeft: Array<number> = [];\n const vTop: Array<number> = [];\n\n entries.forEach((entry) => {\n const {\n left: _left,\n top: _top,\n width: _width,\n height: _height,\n } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n const _pageLeft = _left + pageXOffset;\n const _pageTop = _top + pageYOffset;\n\n left.push(_pageLeft);\n top.push(_pageTop);\n width.push(_width);\n height.push(_height);\n vLeft.push(_left);\n vTop.push(_top);\n });\n\n if (callbackRef) {\n callbackRef.current({\n left,\n top,\n width,\n height,\n vLeft,\n vTop,\n });\n }\n });\n\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.observe(element.current);\n });\n } else {\n resizeObserver.observe(_refElement);\n }\n }\n\n return () => {\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.unobserve(element.current);\n });\n } else {\n resizeObserver.unobserve(_refElement);\n }\n }\n };\n }, []);\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] = elementRefs.current[index] || createRef();\n\n return { ref: elementRefs.current[index] };\n }\n }; // ...bind() or ...bind(index) for multiple\n}\n","import * as React from 'react';\n\nimport { MouseMoveEventType } from '../types';\nimport { MouseMoveGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useMouseMove(callback: (event: MouseMoveEventType) => void) {\n const gesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([['move', gesture, callback]]);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nimport { attachEvents } from '../gestures/helpers/eventAttacher';\n\nexport function useOutsideClick(\n elementRef: RefObject<HTMLElement>,\n callback: (event: MouseEvent) => void,\n deps?: DependencyList\n) {\n const callbackRef = useRef<(event: MouseEvent) => void>();\n\n if (!callbackRef.current) {\n callbackRef.current = callback;\n }\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n const target = e.target as Node;\n\n if (!target || !target.isConnected) {\n return;\n }\n\n const isOutside =\n elementRef.current && !elementRef.current.contains(target);\n\n if (isOutside) {\n callbackRef.current && callbackRef.current(e);\n }\n };\n\n const subscribe = attachEvents(\n [document],\n [['mousedown', handleOutsideClick]]\n );\n\n return () => subscribe && subscribe();\n }, []);\n}\n","import * as React from 'react';\n\nimport { ScrollEventType } from '../types';\nimport { ScrollGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useScroll(callback: (event: ScrollEventType) => void) {\n const gesture = React.useRef(new ScrollGesture()).current;\n\n return useRecognizer([['scroll', gesture, callback]]);\n}\n","import * as React from 'react';\n\nimport { WheelEventType } from '../types';\nimport { WheelGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useWheel(callback: (event: WheelEventType) => void) {\n const gesture = React.useRef(new WheelGesture()).current;\n\n return useRecognizer([['wheel', gesture, callback]]);\n}\n","import { useRef, useEffect, DependencyList } from 'react';\n\ntype WindowDimensionType = {\n width: number;\n height: number;\n innerWidth: number;\n innerHeight: number;\n};\n\nexport function useWindowDimension(\n callback: (event: WindowDimensionType) => void,\n deps?: DependencyList\n) {\n const windowDimensionsRef = useRef<WindowDimensionType>({\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n });\n const callbackRef = useRef<(event: WindowDimensionType) => void>(callback);\n\n const handleCallback: () => void = () => {\n if (callbackRef) {\n callbackRef.current({\n ...windowDimensionsRef.current,\n });\n }\n };\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { clientWidth, clientHeight } = entry.target;\n const { innerWidth, innerHeight } = window;\n\n windowDimensionsRef.current = {\n width: clientWidth,\n height: clientHeight,\n innerWidth,\n innerHeight,\n };\n\n handleCallback();\n });\n\n resizeObserver.observe(document.documentElement);\n\n return () => resizeObserver.unobserve(document.documentElement);\n }, []);\n}\n"],"names":["useValue","initialValue","animation","useMotionValue","unsubscribeRef","useRef","doSet","useCallback","u","_a","current","call","undefined","type","to","options","onChange","subscribe","controllers","_b","steps","map","step","decay","velocity","delay","spring","timing","sequence","start","buildInner_1","cfg","_c","Error","concat","innerCtrl","controller","loop","iterations","set","useEffect","value","MotionValue","currentValue","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","friction","tension","EASE","STIFF","WOBBLE","withSpring","stiffness","damping","onStart","onComplete","onRest","withEase","__assign","useMount","state","config","_d","__read","useState","mounted","setMounted","animationConfig","from","enter","exit","enterAnimation","exitAnimation","useLayoutEffect","queueMicrotask","destroy","fn","COLOR_NUMBER_REGEX","HEX_NAME_COLOR","colorNames","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","hexToRgba","hex","hex6","replace","_","r","g","b","conv3to6","hex8","length","conv6to8","hexRgba","exec","parseInt","a","rgbaToHex","rgba","toString","slice","interpolateValue","val","arr","extrapolateLeft","extrapolateRight","inputMin","inputMax","outputMin","outputMax","result","Infinity","_getArrayInterpolate","narrowedInput","_extrapolateLeft","_extrapolateRight","index","outputMinProcessed","outputMaxProcessed","interpolateColor","getTemplateString","str","_getParsedStringArray","match","v","indexOf","Number","getProcessedColor","Object","prototype","hasOwnProperty","attachEvents","domTargets","events","subscribers","Map","forEach","event","callback","capture","target","addEventListener","removeEventListener","attachEvent","eventKeys","__values","entries","next","done","eventKey","subscriber","clamp","lowerbound","upperbound","Math","min","max","rubber","distanceFromEdge","dimension","constant","abs","pow","rubber2","withDefault","x","y","Gesture","this","lastTimeStamp","Date","now","isActive","targetElements","_initEvents","_cancelEvents","_subscribe","applyCallback","applyGesture","_this","targetElement","element","_VELOCITY_LIMIT","DragGesture","_super","movementStart","initialMovement","movement","previousMovement","translation","offset","__extends","window","pointerDown","bind","pointerMove","pointerUp","passive","_handleCallback","args","currentIndex","down","movementX","movementY","offsetX","offsetY","velocityX","velocityY","distanceX","distanceY","directionX","sign","directionY","cancel","e","touches","clientX","clientY","currElem","find","elem","preventDefault","initial","initialMovementX","initialMovementY","deltaTime","t","MouseMoveGesture","direction","onMouseMove","isMoving","mouseX","mouseY","isActiveID","clearTimeout","setTimeout","diffX","diffY","ScrollGesture","scrollElementListener","scrollListener","isScrolling","scrollX","scrollY","onScroll","pageYOffset","pageXOffset","scrollLeft","scrollTop","WheelGesture","delta","onWheel","isWheeling","deltaX","deltaY","deltaMode","useRecognizer","handlers","ref","React","elementRefs","_e","keyIndex","gesture","key","unsubscribe","createRef","children","open","_jsx","_Fragment","props","threshold","scrollableBlockRef","_scrollableBlock","observer","IntersectionObserver","isIntersecting","root","observe","unobserve","bool","inputRange","outputRange","extrapolateConfig","extrapolate","input","output","i","getNarrowedInput","str2","Array","isArray","processedOutputMin","processedOutputMax","templateString","trim","outputMinParsed","outputMaxParsed","result_1","result_1_1","perc","val1","val2","array","moveIndex","toIndex","item","diff","__spreadArray","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","onDrag","dragGesture","wheelGesture","scrollGesture","mouseMoveGesture","deps","callbackRef","_refElement","document","documentElement","_refElementsMultiple","resizeObserver","ResizeObserver","getBoundingClientRect","left","top","width","height","vLeft","vTop","resizeObserverMultiple","entry","_left","_top","_width","_height","_pageLeft","_pageTop","push","elementRef","isConnected","contains","windowDimensionsRef","innerWidth","innerHeight","clientWidth","clientHeight"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/animation/interpolation/colors.ts","../src/animation/interpolation/interpolateNumbers.ts","../src/animation/interpolation/interpolate.ts","../src/animation/helpers/animationType.ts","../src/animation/controllers/withSpring.ts","../src/animation/controllers/withNative.ts","../src/animation/controllers/withEase.ts","../src/animation/helpers/getToValue.ts","../src/animation/hooks/useValue.ts","../src/animation/hooks/useMount.ts","../src/gestures/helpers/eventAttacher.ts","../src/gestures/helpers/math.ts","../src/gestures/helpers/withDefault.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/controllers/MouseMoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/gestures/hooks/useRecognizer.ts","../src/animation/modules/MountedBlock.tsx","../src/animation/modules/ScrollableBlock.tsx","../src/gestures/hooks/useDrag.ts","../src/gestures/hooks/useGesture.ts","../src/hooks/useMeasure.ts","../src/gestures/hooks/useMouseMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/animation/hooks/useValues.ts","../src/gestures/hooks/useWheel.ts","../src/hooks/useWindowDimension.ts","../src/animation/controllers/withDecay.ts","../src/animation/controllers/withDelay.ts","../src/animation/controllers/withLoop.ts","../src/animation/controllers/withSequence.ts","../src/animation/controllers/withTiming.ts"],"sourcesContent":["export const COLOR_NUMBER_REGEX =\n /[+-]?\\d+(\\.\\d+)?|[\\s]?\\.\\d+|#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/gi;\nexport const HEX_NAME_COLOR =\n /#[a-f\\d]{3,}|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/gi;\n\ninterface classNameType {\n [name: string]: string;\n}\n\n// Named colors\nexport const colorNames: classNameType = {\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\nfunction conv3to6(hex: string) {\n const regex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\n return hex.replace(regex, function (_, r, g, b) {\n return '#' + r + r + g + g + b + b;\n });\n}\n\nfunction conv6to8(hex: string) {\n if (hex.length === 7) {\n return hex + 'FF';\n }\n\n return hex;\n}\n\nexport function hexToRgba(hex: string) {\n const hex6: string = conv3to6(hex);\n const hex8: string = conv6to8(hex6);\n const hexRgba: any =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex8);\n\n return {\n r: parseInt(hexRgba[1], 16),\n g: parseInt(hexRgba[2], 16),\n b: parseInt(hexRgba[3], 16),\n a: parseInt(hexRgba[4], 16) / 255,\n };\n}\n\nexport function rgbaToHex(rgba: {\n r: number;\n g: number;\n b: number;\n a: number;\n}) {\n const { r, g, b, a } = rgba;\n\n const hexR = (r | (1 << 8)).toString(16).slice(1);\n const hexG = (g | (1 << 8)).toString(16).slice(1);\n const hexB = (b | (1 << 8)).toString(16).slice(1);\n const hexA = ((a * 255) | (1 << 8)).toString(16).slice(1);\n\n return '#' + hexR + hexG + hexB + hexA;\n}\n\nexport function processColor(color: number | string) {\n if (typeof color === 'number') {\n const alpha = ((color >> 24) & 255) / 255;\n const red = (color >> 16) & 255;\n const green = (color >> 8) & 255;\n const blue = color & 255;\n\n return { r: red, g: green, b: blue, a: alpha };\n } else {\n // If string then check whether it has # in 0 index\n if (color[0] === '#') {\n return hexToRgba(color);\n } else {\n // It is string color\n const hexColorName: string = colorNames[color];\n if (hexColorName) {\n return hexToRgba(hexColorName);\n } else {\n throw new Error('String cannot be parsed!');\n }\n }\n }\n}\n","import {\n rgbaToHex,\n hexToRgba,\n COLOR_NUMBER_REGEX,\n HEX_NAME_COLOR,\n colorNames,\n} from './colors';\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ntype ExtrapolateConfig = {\n extrapolate?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n};\n\nconst interpolateValue = (\n val: number,\n arr: any,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = arr;\n let result: number = val;\n\n // EXTRAPOLATE\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (val <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n};\n\nconst getNarrowedInput = function (\n x: number,\n input: number[],\n output: Array<number | string>\n): Array<number | string> {\n const length = input.length;\n let narrowedInput: Array<number | string> = [];\n\n // Boundaries\n if (x < input[0]) {\n narrowedInput = [input[0], input[1], output[0], output[1]];\n } else if (x > input[length - 1]) {\n narrowedInput = [\n input[length - 2],\n input[length - 1],\n output[length - 2],\n output[length - 1],\n ];\n }\n\n // Narrow the input and output ranges\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput = [input[i - 1], input[i], output[i - 1], output[i]];\n break;\n }\n }\n\n return narrowedInput;\n};\n\nconst interpolateColor = (value: number, narrowedInput: string[]) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const outputMinProcessed = hexToRgba(outputMin);\n const outputMaxProcessed = hexToRgba(outputMax);\n\n const red = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.r, outputMaxProcessed.r],\n 'clamp',\n 'clamp'\n );\n\n const green = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.g, outputMaxProcessed.g],\n 'clamp',\n 'clamp'\n );\n\n const blue = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.b, outputMaxProcessed.b],\n 'clamp',\n 'clamp'\n );\n\n const alpha = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.a, outputMaxProcessed.a],\n 'clamp',\n 'clamp'\n );\n\n return rgbaToHex({ r: red, g: green, b: blue, a: alpha });\n};\n\nconst _getArrayInterpolate = (\n value: number,\n narrowedInput: Array<any>,\n _extrapolateLeft: ExtrapolateType,\n _extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n if (outputMin.length === outputMax.length) {\n return outputMin.map((val: any, index: number) => {\n if (typeof val === 'string') {\n // IF IT IS STRING THEN IT MUST BE HEX COLOR\n return interpolateColor(value, [\n inputMin,\n inputMax,\n val,\n outputMax[index],\n ]);\n } else {\n return interpolateValue(\n value,\n [inputMin, inputMax, val, outputMax[index]],\n _extrapolateLeft,\n _extrapolateRight\n );\n }\n });\n } else {\n throw new Error(\"Array length doesn't match\");\n }\n};\n\nconst getTemplateString = (str: string) => {\n return str.replace(COLOR_NUMBER_REGEX, '$');\n};\n\nconst _getParsedStringArray = (str: any) => {\n return str.match(COLOR_NUMBER_REGEX).map((v: string) => {\n if (v.indexOf('#') !== -1) {\n return v;\n } else {\n return Number(v);\n }\n });\n};\n\nconst stringMatched = (str1: string, str2: string) =>\n getTemplateString(str1).trim().replace(/\\s/g, '') ===\n getTemplateString(str2).trim().replace(/\\s/g, '');\n\n/**\n * Function which proccess the\n * hexadecimal colors to its proper formats\n * @param str - string\n * @returns hex color string\n */\nconst getProcessedColor = (str: string) => {\n return str.replace(HEX_NAME_COLOR, function (match: any) {\n if (match.indexOf('#') !== -1) {\n return rgbaToHex(hexToRgba(match));\n } else if (Object.prototype.hasOwnProperty.call(colorNames, match)) {\n return colorNames[match];\n } else {\n throw new Error('String cannot be parsed!');\n }\n });\n};\n\nexport function interpolateNumbers(\n value: number,\n inputRange: Array<number>,\n outputRange: Array<number | string>,\n extrapolateConfig?: ExtrapolateConfig\n) {\n const extrapolate = extrapolateConfig?.extrapolate;\n const extrapolateLeft = extrapolateConfig?.extrapolateLeft;\n const extrapolateRight = extrapolateConfig?.extrapolateRight;\n\n const narrowedInput = getNarrowedInput(value, inputRange, outputRange);\n\n let _extrapolateLeft: ExtrapolateType = 'extend';\n if (extrapolateLeft !== undefined) {\n _extrapolateLeft = extrapolateLeft;\n } else if (extrapolate !== undefined) {\n _extrapolateLeft = extrapolate;\n }\n\n let _extrapolateRight: ExtrapolateType = 'extend';\n if (extrapolateRight !== undefined) {\n _extrapolateRight = extrapolateRight;\n } else if (extrapolate !== undefined) {\n _extrapolateRight = extrapolate;\n }\n\n if (outputRange.length) {\n if (typeof outputRange[0] === 'number') {\n return interpolateValue(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else if (Array.isArray(outputRange[0])) {\n return _getArrayInterpolate(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const processedOutputMin = getProcessedColor(outputMin as string);\n const processedOutputMax = getProcessedColor(outputMax as string);\n\n let templateString = getTemplateString(processedOutputMin);\n\n if (stringMatched(processedOutputMin, processedOutputMax)) {\n const outputMinParsed = _getParsedStringArray(processedOutputMin);\n const outputMaxParsed = _getParsedStringArray(processedOutputMax);\n\n const result = _getArrayInterpolate(\n value,\n [inputMin, inputMax, outputMinParsed, outputMaxParsed],\n _extrapolateLeft,\n _extrapolateRight\n );\n\n for (const v of result) templateString = templateString.replace('$', v);\n return templateString;\n } else {\n throw new Error(\"Output range doesn't match string format!\");\n }\n }\n } else {\n throw new Error('Output range cannot be Empty');\n }\n}\n","import { FluidValue } from '@raidipesh78/re-motion';\n\nimport { interpolateNumbers } from './interpolateNumbers';\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ntype ExtrapolateConfig = {\n extrapolate?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n};\n\ntype InterpolateReturnType<T> = T extends number\n ? number\n : ReturnType<FluidValue['interpolate']>;\n\nexport const interpolate = <T extends number | FluidValue>(\n value: T,\n inputRange: number[],\n outputRange: number[] | string[],\n extrapolateConfig?: ExtrapolateConfig\n): InterpolateReturnType<T> => {\n if (value instanceof FluidValue) {\n return value.interpolate(\n inputRange,\n outputRange,\n extrapolateConfig\n ) as InterpolateReturnType<T>;\n } else {\n return interpolateNumbers(\n value,\n inputRange,\n outputRange,\n extrapolateConfig\n ) as InterpolateReturnType<T>;\n }\n};\n\nexport const bInterpolate = <T extends number | FluidValue>(\n value: T,\n minOutput: number | string,\n maxOutput: number | string,\n extrapolateConfig?: ExtrapolateConfig\n) =>\n interpolate(\n value,\n [0, 1],\n [minOutput, maxOutput] as number[] | string[],\n extrapolateConfig\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, friction: 18, tension: 250 },\n EASE: { mass: 1, friction: 26, tension: 170 },\n STIFF: { mass: 1, friction: 18, tension: 350 },\n WOBBLE: { mass: 1, friction: 8, tension: 250 },\n },\n};\n","import { FluidValue, spring } from '@raidipesh78/re-motion';\n\nimport { AnimationConfig } from '../helpers';\n\nimport type { WithCallbacks } from '../types';\n\ninterface WithSpringConfig extends WithCallbacks {\n mass?: number;\n friction?: number;\n tension?: number;\n}\n\nexport const withSpring =\n (\n toValue: number,\n config?: WithSpringConfig,\n callback?: (result: any) => void\n ) =>\n (value: FluidValue) => ({\n controller: spring(value, {\n toValue,\n ...AnimationConfig.Spring.ELASTIC,\n ...config,\n }),\n callback,\n });\n","import { FluidValue, native } from '@raidipesh78/re-motion';\n\nexport const withNative =\n (toValue: number | string, callback?: (result: any) => void) =>\n (value: FluidValue) => ({\n controller: native(value, {\n toValue,\n }),\n callback,\n });\n","import { withSpring } from './withSpring';\nimport { AnimationConfig } from '../helpers';\n\nimport type { WithCallbacks } from '../types';\n\ninterface WithEaseConfig extends WithCallbacks {}\n\nexport const withEase = (\n toValue: number,\n config?: WithEaseConfig,\n callback?: (result: any) => void\n) =>\n withSpring(toValue, { ...AnimationConfig.Spring.EASE, ...config }, callback);\n","import { withNative } from '../controllers';\nimport { ToValue } from '../types';\n\nexport function getToValue(val: string | number | ToValue): ToValue {\n if (typeof val === 'number' || typeof val === 'string') {\n return withNative(val);\n } else {\n return val;\n }\n}\n","import { useCallback, useRef } from 'react';\nimport { FluidValue } from '@raidipesh78/re-motion';\n\nimport { getToValue } from '../helpers';\n\nimport type { ToValue } from '../types';\n\nexport function useValue(initialValue: number | string) {\n const animation = useRef(new FluidValue(initialValue)).current;\n\n const updateValue = useCallback((to: number | string | ToValue) => {\n const { controller, callback } = getToValue(to)(animation);\n controller.start(callback);\n }, []);\n\n return {\n set value(to: number | string | ToValue) {\n updateValue(to);\n },\n get value(): FluidValue {\n return animation;\n },\n get currentValue() {\n return animation.get();\n },\n };\n}\n","import { useState, useLayoutEffect, useRef } from 'react';\nimport { FluidValue } from '@raidipesh78/re-motion';\n\nimport { withEase } from '../controllers';\nimport { useValue } from './useValue';\n\nimport type { ToValue } from '../types';\n\nexport interface UseMountConfig {\n from?: number;\n enter?: ToValue;\n exit?: ToValue;\n}\n\nexport const useMount = (state: boolean, config?: UseMountConfig) => {\n const [mounted, setMounted] = useState(state);\n const animationConfig = useRef({\n from: config?.from ?? 0,\n enter: config?.enter ?? withEase(1),\n exit: config?.exit ?? withEase(0),\n }).current;\n\n const animation = useValue(animationConfig.from);\n const enterAnimation = animationConfig.enter(animation.value);\n const exitAnimation = animationConfig.exit(animation.value);\n\n useLayoutEffect(() => {\n if (state) {\n setMounted(true);\n queueMicrotask(() => {\n enterAnimation.controller.start(enterAnimation.callback);\n });\n } else {\n queueMicrotask(() => {\n exitAnimation.controller.start((result: { finished: boolean }) => {\n exitAnimation.callback?.(result);\n if (result.finished) {\n setMounted(false);\n }\n });\n });\n }\n }, [state]);\n\n return function (\n fn: (animation: { value: FluidValue }, mounted: boolean) => React.ReactNode\n ) {\n return fn({ value: animation.value }, mounted);\n };\n};\n","type MouseEventType =\n | 'click'\n | 'dblclick'\n | 'mousedown'\n | 'mousemove'\n | 'mouseup'\n | 'touchstart'\n | 'touchmove'\n | 'touchend'\n | 'mouseenter'\n | 'mouseleave'\n | 'mouseout'\n | 'mouseover'\n | 'scroll'\n | 'wheel'\n | 'contextmenu';\n\ntype DomTargetTypes = Array<Window | Document | HTMLElement>;\n\n/**\n * Attach single document / window event / HTMLElement\n */\nfunction attachEvent(\n domTargets: DomTargetTypes,\n event: MouseEventType,\n callback: (e: any) => void,\n capture: any = false\n) {\n domTargets.forEach((target) => {\n target.addEventListener(event, callback, capture);\n });\n\n return function () {\n domTargets.forEach((target) => {\n target.removeEventListener(event, callback, capture);\n });\n };\n}\n\n/**\n * Attach multiple document / window event / HTMLElement\n */\nexport function attachEvents(\n domTargets: DomTargetTypes,\n events: Array<\n [event: MouseEventType, callback: (e: any) => void, capture?: any]\n >\n) {\n const subscribers = new Map();\n\n events.forEach(function ([event, callback, capture = false]) {\n subscribers.set(event, attachEvent(domTargets, event, callback, capture));\n });\n\n return function (eventKeys?: Array<string>) {\n for (const [eventKey, subscriber] of subscribers.entries()) {\n if (!eventKeys) {\n subscriber();\n return;\n }\n\n if (eventKeys.indexOf(eventKey) !== -1) {\n subscriber();\n }\n }\n };\n}\n","/**\n * bin(booleanValue)\n * returns 1 if booleanValue == true and 0 if booleanValue == false\n */\nexport function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\n/**\n * mix(progress, a, b)\n * linear interpolation between a and b\n */\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\n/**\n * clamp(value, min, max)\n * clamps value for min and max bounds\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\n/**\n * rubberClamp(value, min, max, constant?)\n * constant is optional : default 0.15\n * clamps the value for min and max value and\n * extends beyond min and max values with constant\n * factor to create elastic rubber band effect\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\n/**\n * snapTo(value, velocity, snapPoints[])\n * Calculates the final snapPoint according to given current value,\n * velocity and snapPoints array\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\n/**\n * move(array, moveIndex, toIndex)\n * move array item from moveIndex to toIndex without array modification\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","export const withDefault = (x: number, y: number) => {\n return { x, y };\n};\n","export class Gesture {\n currentIndex?: number;\n lastTimeStamp: number = Date.now();\n isActive: boolean = false;\n targetElement?: HTMLElement; // represents the bounded element\n targetElements: Array<HTMLElement> = []; // represents the bounded elements\n config?: any;\n callback?: <T>(event: T) => void;\n _subscribe?: (eventKeys?: Array<string>) => void;\n static _VELOCITY_LIMIT: number = 20;\n\n // it must be overridden by other child classes\n _initEvents() {}\n\n // cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe();\n }\n }\n\n // re-apply new callback\n applyCallback(callback: <T>(event: T) => void) {\n this.callback = callback;\n }\n\n // apply gesture\n applyGesture({\n targetElement,\n targetElements,\n callback,\n config,\n }: {\n targetElement?: any;\n targetElements?: any;\n callback: <T>(event: T) => void;\n config?: any;\n }) {\n this.targetElement = targetElement;\n this.targetElements = targetElements.map(\n (element: { current: any }) => element.current\n );\n this.callback = callback;\n this.config = config;\n\n // initialize events\n this._initEvents();\n\n // unbind\n return () => this._subscribe && this._subscribe();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nimport type { Vector2 } from '../types';\n\nexport class DragGesture extends Gesture {\n movementStart: Vector2 = withDefault(0, 0);\n initialMovement: Vector2 = withDefault(0, 0);\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n offset: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement || this.targetElements.length > 0) {\n this._subscribe = attachEvents(\n [window],\n [\n ['mousedown', this.pointerDown.bind(this)],\n ['mousemove', this.pointerMove.bind(this)],\n ['mouseup', this.pointerUp.bind(this)],\n ['touchstart', this.pointerDown.bind(this), { passive: false }],\n ['touchmove', this.pointerMove.bind(this), { passive: false }],\n ['touchend', this.pointerUp.bind(this)],\n ]\n );\n }\n }\n\n // @override - cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe(['mousedown', 'mousemove', 'touchstart', 'touchmove']);\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n down: this.isActive,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.translation.x,\n offsetY: this.translation.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n distanceX: Math.abs(this.movement.x),\n distanceY: Math.abs(this.movement.y),\n directionX: Math.sign(this.movement.x),\n directionY: Math.sign(this.movement.y),\n cancel: () => {\n this._cancelEvents();\n },\n });\n }\n }\n\n pointerDown(e: any) {\n if (e.type === 'touchstart') {\n this.movementStart = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n };\n } else {\n this.movementStart = { x: e.clientX, y: e.clientY };\n }\n\n this.movement = { x: 0, y: 0 };\n this.offset = { x: this.translation.x, y: this.translation.y };\n this.previousMovement = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n if (e.target === this.targetElement || currElem) {\n this.isActive = true;\n e.preventDefault();\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n // if initial function is defined then call it to get initial movementX and movementY\n // if only select to bounded draggable element\n const initial = this.config?.initial && this.config.initial();\n const initialMovementX = initial?.movementX;\n const initialMovementY = initial?.movementY;\n\n this.initialMovement = {\n x: initialMovementX ?? 0,\n y: initialMovementY ?? 0,\n };\n\n this.movement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this.previousMovement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerMove(e: any) {\n if (this.isActive) {\n e.preventDefault();\n const now = Date.now();\n const deltaTime = clamp(now - this.lastTimeStamp, 0.1, 64);\n this.lastTimeStamp = now;\n\n const t = deltaTime / 1000;\n\n if (e.type === 'touchmove') {\n this.movement = {\n x:\n this.initialMovement.x +\n (e.touches[0].clientX - this.movementStart.x),\n y:\n this.initialMovement.y +\n (e.touches[0].clientY - this.movementStart.y),\n };\n } else {\n this.movement = {\n x: this.initialMovement.x + (e.clientX - this.movementStart.x),\n y: this.initialMovement.y + (e.clientY - this.movementStart.y),\n };\n }\n\n this.translation = {\n x: this.offset.x + this.movement.x,\n y: this.offset.y + this.movement.y,\n };\n\n this.velocity = {\n x: clamp(\n (this.movement.x - this.previousMovement.x) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n (this.movement.y - this.previousMovement.y) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerUp() {\n if (this.isActive) {\n this.isActive = false;\n this._handleCallback();\n this._cancelEvents();\n this._initEvents();\n }\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class MouseMoveGesture extends Gesture {\n event?: MouseEvent;\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n } else if (this.targetElements.length > 0) {\n this._subscribe = attachEvents(this.targetElements, [\n ['mousemove', this.onMouseMove.bind(this)],\n ]);\n } else {\n this._subscribe = attachEvents(\n [window],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n event: this.event,\n isMoving: this.isActive,\n target: this.event?.target,\n mouseX: this.movement.x,\n mouseY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onMouseMove(e: MouseEvent) {\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n this.event = e;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n const x = e.clientX;\n const y = e.clientY;\n\n this.movement = { x, y };\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback();\n }, 250); // Debounce 250 milliseconds\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = { x: this.movement.x, y: this.movement.y };\n\n this._handleCallback();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class ScrollGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['scroll', this.scrollElementListener.bind(this)]]\n );\n } else {\n this._subscribe = attachEvents(\n [window],\n [['scroll', this.scrollListener.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n isScrolling: this.isActive,\n scrollX: this.movement.x,\n scrollY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onScroll({ x, y }: Vector2) {\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.movement = { x, y };\n\n // Clear if scrolling\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n\n // Reset Velocity\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback(); // Debounce 250milliseconds\n }, 250);\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n\n scrollListener() {\n const { pageYOffset: y, pageXOffset: x } = window;\n this.onScroll({ x, y });\n }\n\n scrollElementListener() {\n const x = this.targetElement?.scrollLeft || 0;\n const y = this.targetElement?.scrollTop || 0;\n this.onScroll({ x, y });\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\nexport class WheelGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n delta: Vector2 = withDefault(0, 0);\n\n // Holds offsets\n offset: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['wheel', this.onWheel.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n target: this.targetElement,\n isWheeling: this.isActive,\n deltaX: this.delta.x,\n deltaY: this.delta.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.offset.x,\n offsetY: this.offset.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n });\n }\n }\n\n onWheel(event: WheelEvent) {\n let { deltaX, deltaY, deltaMode } = event;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.isActive = true;\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.translation = { x: this.offset.x, y: this.offset.y };\n this._handleCallback();\n\n this.velocity = { x: 0, y: 0 }; // Reset Velocity\n this.movement = { x: 0, y: 0 };\n }, 200);\n\n // normalize wheel values, especially for Firefox\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n this.delta = { x: deltaX, y: deltaY };\n this.movement = {\n x: this.movement.x + deltaX,\n y: this.movement.y + deltaY,\n };\n this.offset = {\n x: this.translation.x + this.movement.x,\n y: this.translation.y + this.movement.y,\n };\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\ntype UseRecognizerHandlerType = Array<\n [\n key: 'drag' | 'wheel' | 'move' | 'scroll',\n gesture: any,\n callback: any,\n config?: any\n ]\n>;\n\nexport const useRecognizer = (handlers: UseRecognizerHandlerType) => {\n const ref = React.useRef<any>();\n const elementRefs = React.useRef<Array<any>>([]);\n const subscribers = React.useRef<\n Map<string, { keyIndex: number; gesture: any; unsubscribe: any }>\n >(new Map()).current;\n\n // re-initiate callback on change\n React.useEffect(() => {\n for (let [, { keyIndex, gesture }] of subscribers.entries()) {\n const [, , callback] = handlers[keyIndex];\n gesture.applyCallback(callback);\n }\n }, [handlers]);\n\n React.useEffect(() => {\n handlers.forEach(([key, gesture, callback, config], keyIndex) => {\n queueMicrotask(() =>\n subscribers.set(key, {\n keyIndex,\n gesture,\n unsubscribe: gesture.applyGesture({\n targetElement: ref.current,\n targetElements: elementRefs.current,\n callback,\n config,\n }),\n })\n );\n });\n\n return () => {\n for (let [, { unsubscribe }] of subscribers.entries()) {\n unsubscribe && unsubscribe();\n }\n };\n });\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] =\n elementRefs.current[index] || React.createRef();\n\n return { ref: elementRefs.current[index] };\n }\n };\n};\n","import { ReactNode } from 'react';\nimport { FluidValue } from '@raidipesh78/re-motion';\n\nimport { useMount, type UseMountConfig } from '../hooks';\n\ninterface MountedBlockProps extends Partial<UseMountConfig> {\n state: boolean;\n children: (animation: { value: FluidValue }) => ReactNode;\n}\n\nexport const MountedBlock = ({\n state,\n children,\n from,\n enter,\n exit,\n}: MountedBlockProps) => {\n const open = useMount(state, { from, enter, exit });\n\n return (\n <>\n {open(\n (animation, mounted) => mounted && children({ value: animation.value })\n )}\n </>\n );\n};\n","import { ReactNode, useRef, useLayoutEffect } from 'react';\nimport { FluidValue } from '@raidipesh78/re-motion';\n\nimport { useValue } from '../hooks';\nimport { withEase } from '../controllers';\n\ninterface ScrollableBlockProps {\n children?: (animation: { value: FluidValue }) => ReactNode;\n direction?: 'single' | 'both';\n threshold?: number;\n}\n\nexport const ScrollableBlock = (props: ScrollableBlockProps) => {\n const { children, direction = 'single', threshold = 0.2 } = props;\n const scrollableBlockRef = useRef<HTMLDivElement>(null);\n const animation = useValue(0); // 0: not intersecting | 1: intersecting\n\n useLayoutEffect(() => {\n const _scrollableBlock = scrollableBlockRef.current;\n\n const observer = new IntersectionObserver(\n function ([entry]) {\n const { isIntersecting } = entry;\n\n if (isIntersecting) {\n animation.value = withEase(1);\n } else {\n if (direction === 'both') animation.value = withEase(0);\n }\n },\n {\n root: null, // FOR VIEWPORT ONLY\n threshold,\n }\n );\n\n if (_scrollableBlock) {\n observer.observe(_scrollableBlock);\n }\n\n return () => {\n if (_scrollableBlock) {\n observer.unobserve(_scrollableBlock);\n }\n };\n }, []);\n\n return (\n <div ref={scrollableBlockRef}>\n {children && children({ value: animation.value })}\n </div>\n );\n};\n","import * as React from 'react';\n\nimport { DragEventType, UseDragConfig } from '../types';\nimport { DragGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useDrag(\n callback: (event: DragEventType) => void,\n config?: UseDragConfig\n) {\n const gesture = React.useRef(new DragGesture()).current;\n\n return useRecognizer([['drag', gesture, callback, config]]);\n}\n","import * as React from 'react';\nimport {\n DragGesture,\n MouseMoveGesture,\n ScrollGesture,\n WheelGesture,\n} from '../controllers';\nimport {\n DragEventType,\n WheelEventType,\n ScrollEventType,\n MouseMoveEventType,\n} from '../types';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useGesture({\n onDrag,\n onWheel,\n onScroll,\n onMouseMove,\n}: {\n onDrag?: (event: DragEventType) => void;\n onWheel?: (event: WheelEventType) => void;\n onScroll?: (event: ScrollEventType) => void;\n onMouseMove?: (event: MouseMoveEventType) => void;\n}) {\n const dragGesture = React.useRef(new DragGesture()).current;\n const wheelGesture = React.useRef(new WheelGesture()).current;\n const scrollGesture = React.useRef(new ScrollGesture()).current;\n const mouseMoveGesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([\n ['drag', dragGesture, onDrag],\n ['wheel', wheelGesture, onWheel],\n ['scroll', scrollGesture, onScroll],\n ['move', mouseMoveGesture, onMouseMove],\n ]);\n}\n","import { useRef, useEffect, DependencyList, createRef } from 'react';\n\ntype MeasurementValue = number | Array<number>;\n\ntype 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 callback: (event: MeasurementType) => void,\n deps?: DependencyList\n) {\n const ref = useRef(null);\n const elementRefs = useRef([]);\n const callbackRef = useRef<(event: MeasurementType) => void>(callback);\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const _refElement = ref.current || document.documentElement;\n const _refElementsMultiple = elementRefs.current;\n\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { left, top, width, height } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n\n if (callbackRef) {\n if (_refElement === document.documentElement) {\n return; // no-op for document\n } else {\n callbackRef.current({\n left: left + pageXOffset,\n top: top + pageYOffset,\n width,\n height,\n vLeft: left,\n vTop: top,\n });\n }\n }\n });\n\n const resizeObserverMultiple = new ResizeObserver((entries) => {\n const left: Array<number> = [];\n const top: Array<number> = [];\n const width: Array<number> = [];\n const height: Array<number> = [];\n const vLeft: Array<number> = [];\n const vTop: Array<number> = [];\n\n entries.forEach((entry) => {\n const {\n left: _left,\n top: _top,\n width: _width,\n height: _height,\n } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n const _pageLeft = _left + pageXOffset;\n const _pageTop = _top + pageYOffset;\n\n left.push(_pageLeft);\n top.push(_pageTop);\n width.push(_width);\n height.push(_height);\n vLeft.push(_left);\n vTop.push(_top);\n });\n\n if (callbackRef) {\n callbackRef.current({\n left,\n top,\n width,\n height,\n vLeft,\n vTop,\n });\n }\n });\n\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.observe(element.current);\n });\n } else {\n resizeObserver.observe(_refElement);\n }\n }\n\n return () => {\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.unobserve(element.current);\n });\n } else {\n resizeObserver.unobserve(_refElement);\n }\n }\n };\n }, []);\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] = elementRefs.current[index] || createRef();\n\n return { ref: elementRefs.current[index] };\n }\n }; // ...bind() or ...bind(index) for multiple\n}\n","import * as React from 'react';\n\nimport { MouseMoveEventType } from '../types';\nimport { MouseMoveGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useMouseMove(callback: (event: MouseMoveEventType) => void) {\n const gesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([['move', gesture, callback]]);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nimport { attachEvents } from '../gestures/helpers/eventAttacher';\n\nexport function useOutsideClick(\n elementRef: RefObject<HTMLElement>,\n callback: (event: MouseEvent) => void,\n deps?: DependencyList\n) {\n const callbackRef = useRef<(event: MouseEvent) => void>();\n\n if (!callbackRef.current) {\n callbackRef.current = callback;\n }\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n const target = e.target as Node;\n\n if (!target || !target.isConnected) {\n return;\n }\n\n const isOutside =\n elementRef.current && !elementRef.current.contains(target);\n\n if (isOutside) {\n callbackRef.current && callbackRef.current(e);\n }\n };\n\n const subscribe = attachEvents(\n [document],\n [['mousedown', handleOutsideClick]]\n );\n\n return () => subscribe && subscribe();\n }, []);\n}\n","import * as React from 'react';\n\nimport { ScrollEventType } from '../types';\nimport { ScrollGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useScroll(callback: (event: ScrollEventType) => void) {\n const gesture = React.useRef(new ScrollGesture()).current;\n\n return useRecognizer([['scroll', gesture, callback]]);\n}\n","import { useCallback, useRef } from 'react';\nimport { FluidValue } from '@raidipesh78/re-motion';\n\nimport type { ToValue } from '../types';\nimport { getToValue } from '../helpers';\n\nexport function useValues(initialValue: number[] | string[]) {\n const animations = useRef(\n initialValue.map((val) => new FluidValue(val))\n ).current;\n\n const updateValue = useCallback((to: number[] | string[] | ToValue[]) => {\n to.forEach((fn, index) => {\n const { controller, callback } = getToValue(fn)(animations[index]);\n controller.start(callback);\n });\n }, []);\n\n return {\n set value(to: number[] | string[] | ToValue[]) {\n updateValue(to);\n },\n get value(): FluidValue[] {\n return animations;\n },\n get currentValue() {\n return animations.map((animation) => animation.get());\n },\n };\n}\n","import * as React from 'react';\n\nimport { WheelEventType } from '../types';\nimport { WheelGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useWheel(callback: (event: WheelEventType) => void) {\n const gesture = React.useRef(new WheelGesture()).current;\n\n return useRecognizer([['wheel', gesture, callback]]);\n}\n","import { useRef, useEffect, DependencyList } from 'react';\n\ntype WindowDimensionType = {\n width: number;\n height: number;\n innerWidth: number;\n innerHeight: number;\n};\n\nexport function useWindowDimension(\n callback: (event: WindowDimensionType) => void,\n deps?: DependencyList\n) {\n const windowDimensionsRef = useRef<WindowDimensionType>({\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n });\n const callbackRef = useRef<(event: WindowDimensionType) => void>(callback);\n\n const handleCallback: () => void = () => {\n if (callbackRef) {\n callbackRef.current({\n ...windowDimensionsRef.current,\n });\n }\n };\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { clientWidth, clientHeight } = entry.target;\n const { innerWidth, innerHeight } = window;\n\n windowDimensionsRef.current = {\n width: clientWidth,\n height: clientHeight,\n innerWidth,\n innerHeight,\n };\n\n handleCallback();\n });\n\n resizeObserver.observe(document.documentElement);\n\n return () => resizeObserver.unobserve(document.documentElement);\n }, []);\n}\n","import { FluidValue, decay } from '@raidipesh78/re-motion';\n\nimport type { WithCallbacks } from '../types';\n\ninterface WithDecayConfig extends WithCallbacks {\n velocity?: number;\n deceleration?: number;\n}\n\nexport const withDecay =\n (config?: WithDecayConfig, callback?: (result: any) => void) =>\n (value: FluidValue) => ({\n controller: decay(value, { ...config }),\n callback,\n });\n","import { delay } from '@raidipesh78/re-motion';\n\nexport const withDelay =\n (ms: number, callback?: (result: any) => void) => () => ({\n controller: delay(ms),\n callback,\n });\n","import { FluidValue, loop } from '@raidipesh78/re-motion';\n\nexport const withLoop =\n (\n animations: (value: FluidValue) => {\n controller: ReturnType<typeof loop>;\n callback?: (result: any) => void;\n },\n iterations: number,\n callback?: (result: any) => void\n ) =>\n (value: FluidValue) => ({\n controller: loop(animations(value).controller, { iterations }),\n callback,\n });\n","import { FluidValue, sequence } from '@raidipesh78/re-motion';\n\nexport const withSequence =\n (\n animations: Array<\n (value: FluidValue) => {\n controller: ReturnType<typeof sequence>;\n callback?: (result: any) => void;\n }\n >,\n callback?: (result: any) => void\n ) =>\n (value: FluidValue) => ({\n controller: sequence(animations.map((a) => a(value).controller)),\n callback,\n });\n","import { FluidValue, timing } from '@raidipesh78/re-motion';\n\nimport type { WithCallbacks } from '../types';\n\ninterface WithTimingConfig extends WithCallbacks {\n duration?: number;\n easing?: (t: number) => number;\n}\n\nexport const withTiming =\n (\n toValue: number,\n config?: WithTimingConfig,\n callback?: (result: any) => void\n ) =>\n (value: FluidValue) => ({\n controller: timing(value, {\n toValue,\n duration: config?.duration,\n easing: config?.easing,\n onStart: config?.onStart,\n onChange: config?.onChange,\n onRest: config?.onRest,\n }),\n callback,\n });\n"],"names":["COLOR_NUMBER_REGEX","HEX_NAME_COLOR","colorNames","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","hexToRgba","hex","hex6","replace","_","r","g","b","conv3to6","hex8","length","conv6to8","hexRgba","exec","parseInt","a","rgbaToHex","rgba","toString","slice","interpolateValue","val","arr","extrapolateLeft","extrapolateRight","_a","__read","inputMin","inputMax","outputMin","outputMax","result","Infinity","_getArrayInterpolate","value","narrowedInput","_extrapolateLeft","_extrapolateRight","map","index","outputMinProcessed","outputMaxProcessed","interpolateColor","Error","getTemplateString","str","_getParsedStringArray","match","v","indexOf","Number","getProcessedColor","Object","prototype","hasOwnProperty","call","interpolateNumbers","inputRange","outputRange","extrapolateConfig","extrapolate","x","input","output","i","getNarrowedInput","undefined","str2","Array","isArray","_b","processedOutputMin","processedOutputMax","templateString","trim","outputMinParsed","outputMaxParsed","result_1","__values","result_1_1","next","done","interpolate","FluidValue","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","friction","tension","EASE","STIFF","WOBBLE","withSpring","toValue","config","callback","controller","spring","withNative","native","withEase","__assign","getToValue","useValue","initialValue","animation","useRef","current","updateValue","useCallback","to","start","currentValue","get","useMount","state","_d","useState","mounted","setMounted","animationConfig","from","enter","exit","_c","enterAnimation","exitAnimation","useLayoutEffect","queueMicrotask","finished","fn","attachEvents","domTargets","events","subscribers","Map","forEach","event","capture","set","target","addEventListener","removeEventListener","attachEvent","eventKeys","entries","eventKey","subscriber","clamp","lowerbound","upperbound","Math","min","max","rubber","distanceFromEdge","dimension","constant","abs","pow","rubber2","withDefault","y","Gesture","this","lastTimeStamp","Date","now","isActive","targetElements","_initEvents","_cancelEvents","_subscribe","applyCallback","applyGesture","_this","targetElement","element","_VELOCITY_LIMIT","DragGesture","_super","movementStart","initialMovement","movement","previousMovement","translation","offset","velocity","__extends","window","pointerDown","bind","pointerMove","pointerUp","passive","_handleCallback","args","currentIndex","down","movementX","movementY","offsetX","offsetY","velocityX","velocityY","distanceX","distanceY","directionX","sign","directionY","cancel","e","type","touches","clientX","clientY","currElem","find","elem","preventDefault","initial","initialMovementX","initialMovementY","deltaTime","t","MouseMoveGesture","direction","onMouseMove","isMoving","mouseX","mouseY","isActiveID","clearTimeout","setTimeout","diffX","diffY","ScrollGesture","scrollElementListener","scrollListener","isScrolling","scrollX","scrollY","onScroll","pageYOffset","pageXOffset","scrollLeft","scrollTop","WheelGesture","delta","onWheel","isWheeling","deltaX","deltaY","deltaMode","useRecognizer","handlers","ref","React","elementRefs","useEffect","_e","keyIndex","gesture","key","unsubscribe","createRef","children","open","_jsx","_Fragment","props","threshold","scrollableBlockRef","_scrollableBlock","observer","IntersectionObserver","isIntersecting","root","observe","unobserve","minOutput","maxOutput","bool","perc","val1","val2","array","moveIndex","toIndex","item","diff","__spreadArray","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","onDrag","dragGesture","wheelGesture","scrollGesture","mouseMoveGesture","deps","callbackRef","_refElement","document","documentElement","_refElementsMultiple","resizeObserver","ResizeObserver","getBoundingClientRect","left","top","width","height","vLeft","vTop","resizeObserverMultiple","entry","_left","_top","_width","_height","_pageLeft","_pageTop","push","elementRef","subscribe","isConnected","contains","animations","windowDimensionsRef","innerWidth","innerHeight","clientWidth","clientHeight","decay","ms","delay","iterations","loop","sequence","timing","onStart","onChange","onRest"],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "react-ui-animate",
3
- "version": "4.3.1-alpha.1",
3
+ "version": "4.3.1",
4
4
  "description": "React library for gestures and animation",
5
5
  "main": "dist/index.js",
6
6
  "peerDependencies": {
7
7
  "react": ">=16.8.0 || >=17.0.0 || >=18.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@raidipesh78/re-motion": "^5.0.0-alpha.11"
10
+ "@raidipesh78/re-motion": "^4.2.1"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@rollup/plugin-terser": "^0.4.4",
@@ -1,30 +0,0 @@
1
- import { DriverConfig } from './types';
2
- interface WithSpringOptions {
3
- mass?: number;
4
- tension?: number;
5
- friction?: number;
6
- onStart?: () => void;
7
- onChange?: (v: number | string) => void;
8
- onRest?: () => void;
9
- }
10
- export declare const withSpring: (to: number, options?: WithSpringOptions) => DriverConfig;
11
- export declare const withEase: (to: number, options?: WithSpringOptions) => DriverConfig;
12
- interface WithTimingOptions {
13
- duration?: number;
14
- easing?: (t: number) => number;
15
- onStart?: () => void;
16
- onChange?: (v: number | string) => void;
17
- onRest?: () => void;
18
- }
19
- export declare const withTiming: (to: number, options?: WithTimingOptions) => DriverConfig;
20
- interface WithDecayOptions {
21
- velocity: number;
22
- onStart?: () => void;
23
- onChange?: (v: number | string) => void;
24
- onRest?: () => void;
25
- }
26
- export declare const withDecay: (options: WithDecayOptions) => DriverConfig;
27
- export declare const withSequence: (steps: DriverConfig[]) => DriverConfig;
28
- export declare const withDelay: (delay: number) => DriverConfig;
29
- export declare const withLoop: (controller: DriverConfig, iterations: number) => DriverConfig;
30
- export {};