react-ui-animate 3.0.0-rc.0 → 3.0.0-rc.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.
Files changed (158) hide show
  1. package/dist/gestures/helpers/math.d.ts +1 -1
  2. package/dist/index.js +1 -2897
  3. package/dist/index.js.map +1 -1
  4. package/package.json +2 -1
  5. package/.vscode/settings.json +0 -3
  6. package/dist/animation/animationType.d.ts +0 -15
  7. package/dist/animation/core/animation/Animation.d.ts +0 -16
  8. package/dist/animation/core/animation/FluidValue.d.ts +0 -21
  9. package/dist/animation/core/animation/RequestAnimationFrame.d.ts +0 -8
  10. package/dist/animation/core/animation/SpringAnimation.d.ts +0 -41
  11. package/dist/animation/core/animation/TimingAnimation.d.ts +0 -35
  12. package/dist/animation/core/animation/TransitionValue.d.ts +0 -21
  13. package/dist/animation/core/helpers/camelToDash.d.ts +0 -7
  14. package/dist/animation/core/helpers/canInterpolate.d.ts +0 -11
  15. package/dist/animation/core/helpers/getAnimatableObject.d.ts +0 -22
  16. package/dist/animation/core/helpers/getNonAnimatableStyle.d.ts +0 -6
  17. package/dist/animation/core/react/Tags.d.ts +0 -3
  18. package/dist/animation/core/react/TransformStyles.d.ts +0 -8
  19. package/dist/animation/core/react/animated.d.ts +0 -29
  20. package/dist/animation/core/react/combineRefs.d.ts +0 -2
  21. package/dist/animation/core/react/functions/camelToDash.d.ts +0 -7
  22. package/dist/animation/core/react/functions/getAnimatableObject.d.ts +0 -22
  23. package/dist/animation/core/react/functions/getCleanProps.d.ts +0 -4
  24. package/dist/animation/core/react/functions/getCssValue.d.ts +0 -8
  25. package/dist/animation/core/react/functions/getNonAnimatableStyle.d.ts +0 -6
  26. package/dist/animation/core/react/functions/index.d.ts +0 -7
  27. package/dist/animation/core/react/functions/isDefined.d.ts +0 -6
  28. package/dist/animation/core/react/functions/isTransitionValue.d.ts +0 -6
  29. package/dist/animation/core/react/helpers/camelToDash.d.ts +0 -7
  30. package/dist/animation/core/react/helpers/canInterpolate.d.ts +0 -7
  31. package/dist/animation/core/react/helpers/getAnimatableObject.d.ts +0 -22
  32. package/dist/animation/core/react/helpers/getCleanProps.d.ts +0 -4
  33. package/dist/animation/core/react/helpers/getCssValue.d.ts +0 -8
  34. package/dist/animation/core/react/helpers/getNonAnimatableStyle.d.ts +0 -6
  35. package/dist/animation/core/react/helpers/index.d.ts +0 -7
  36. package/dist/animation/core/react/helpers/isDefined.d.ts +0 -6
  37. package/dist/animation/core/react/helpers/isFluidValue.d.ts +0 -6
  38. package/dist/animation/core/react/helpers/isTransitionValue.d.ts +0 -6
  39. package/dist/animation/core/react/useMounts.d.ts +0 -26
  40. package/dist/animation/core/react/useTransition.d.ts +0 -9
  41. package/dist/animation/core/react/useTransitions.d.ts +0 -11
  42. package/dist/animation/core/types/animation.d.ts +0 -54
  43. package/dist/animation/core/types/common.d.ts +0 -4
  44. package/dist/animation/core/types/fluid.d.ts +0 -19
  45. package/dist/animation/core/types/index.d.ts +0 -2
  46. package/dist/animation/getInitialConfig.d.ts +0 -3
  47. package/dist/animation/index.d.ts +0 -6
  48. package/dist/animation/interpolation.d.ts +0 -21
  49. package/dist/animation/modules/AnimatedBlock.d.ts +0 -8
  50. package/dist/animation/modules/AnimatedImage.d.ts +0 -8
  51. package/dist/animation/modules/AnimatedInline.d.ts +0 -8
  52. package/dist/animation/modules/MountedBlock.d.ts +0 -29
  53. package/dist/animation/modules/ScrollableBlock.d.ts +0 -21
  54. package/dist/animation/modules/TransitionBlock.d.ts +0 -17
  55. package/dist/animation/modules/index.d.ts +0 -6
  56. package/dist/animation/useAnimatedValue.d.ts +0 -22
  57. package/dist/animation/useMountedValue.d.ts +0 -15
  58. package/dist/gestures/eventAttacher.d.ts +0 -11
  59. package/dist/gestures/index.d.ts +0 -2
  60. package/dist/gestures/math.d.ts +0 -34
  61. package/dist/gestures/types.d.ts +0 -51
  62. package/dist/gestures/withDefault.d.ts +0 -4
  63. package/dist/utils/isDefined.d.ts +0 -1
  64. package/ecosystem.config.js +0 -12
  65. package/example/README.md +0 -46
  66. package/example/package-lock.json +0 -19597
  67. package/example/package.json +0 -45
  68. package/example/public/favicon.ico +0 -0
  69. package/example/public/index.html +0 -20
  70. package/example/public/logo192.png +0 -0
  71. package/example/public/logo512.png +0 -0
  72. package/example/public/manifest.json +0 -25
  73. package/example/public/robots.txt +0 -3
  74. package/example/src/App.tsx +0 -41
  75. package/example/src/components/Draggable.tsx +0 -46
  76. package/example/src/components/Gestures.tsx +0 -151
  77. package/example/src/components/Interpolation.tsx +0 -21
  78. package/example/src/components/Loop.tsx +0 -48
  79. package/example/src/components/MountedBlock.tsx +0 -25
  80. package/example/src/components/MouseMove.tsx +0 -59
  81. package/example/src/components/MultistageTransition.tsx +0 -34
  82. package/example/src/components/Scroll.tsx +0 -39
  83. package/example/src/components/ScrollableBlock.tsx +0 -27
  84. package/example/src/components/SnapTo.tsx +0 -55
  85. package/example/src/components/TransitionBlock.tsx +0 -37
  86. package/example/src/components/Wheel.tsx +0 -39
  87. package/example/src/components/index.ts +0 -18
  88. package/example/src/components/svgLine.tsx +0 -48
  89. package/example/src/components/useAnimatedValue.tsx +0 -57
  90. package/example/src/components/useMountedValue.tsx +0 -62
  91. package/example/src/index.css +0 -8
  92. package/example/src/index.tsx +0 -16
  93. package/example/tsconfig.json +0 -26
  94. package/rollup.config.mjs +0 -18
  95. package/src/animation/core/controllers/Animation.ts +0 -27
  96. package/src/animation/core/controllers/FluidValue.ts +0 -97
  97. package/src/animation/core/controllers/RequestAnimationFrame.ts +0 -13
  98. package/src/animation/core/controllers/SpringAnimation.ts +0 -218
  99. package/src/animation/core/controllers/TimingAnimation.ts +0 -152
  100. package/src/animation/core/easing/Bezier.ts +0 -146
  101. package/src/animation/core/easing/Easing.ts +0 -132
  102. package/src/animation/core/helpers/camelCaseToKebabCase.ts +0 -10
  103. package/src/animation/core/helpers/getCleanProps.ts +0 -16
  104. package/src/animation/core/helpers/getCssValue.ts +0 -60
  105. package/src/animation/core/helpers/index.ts +0 -5
  106. package/src/animation/core/helpers/isDefined.ts +0 -14
  107. package/src/animation/core/helpers/isFluidValue.ts +0 -11
  108. package/src/animation/core/index.ts +0 -16
  109. package/src/animation/core/interpolation/Colors.ts +0 -232
  110. package/src/animation/core/interpolation/Interpolation.ts +0 -395
  111. package/src/animation/core/interpolation/__tests__/Colors.test.tsx +0 -35
  112. package/src/animation/core/react/fluid.ts +0 -197
  113. package/src/animation/core/react/makeFluid.ts +0 -294
  114. package/src/animation/core/react/transforms.ts +0 -90
  115. package/src/animation/core/react/useFluidValue.ts +0 -43
  116. package/src/animation/core/react/useMount.ts +0 -58
  117. package/src/animation/core/types/animation.d.ts +0 -56
  118. package/src/animation/core/types/common.d.ts +0 -4
  119. package/src/animation/core/types/fluid.d.ts +0 -38
  120. package/src/animation/lib/animationType.ts +0 -17
  121. package/src/animation/lib/getInitialConfig.ts +0 -61
  122. package/src/animation/lib/index.ts +0 -12
  123. package/src/animation/lib/interpolation.ts +0 -47
  124. package/src/animation/lib/modules/AnimatedBlock.ts +0 -8
  125. package/src/animation/lib/modules/AnimatedImage.ts +0 -8
  126. package/src/animation/lib/modules/AnimatedInline.ts +0 -8
  127. package/src/animation/lib/modules/MountedBlock.tsx +0 -51
  128. package/src/animation/lib/modules/ScrollableBlock.tsx +0 -68
  129. package/src/animation/lib/modules/TransitionBlock.tsx +0 -28
  130. package/src/animation/lib/modules/index.ts +0 -6
  131. package/src/animation/lib/useAnimatedValue.ts +0 -60
  132. package/src/animation/lib/useMountedValue.ts +0 -18
  133. package/src/gestures/controllers/DragGesture.ts +0 -178
  134. package/src/gestures/controllers/Gesture.ts +0 -54
  135. package/src/gestures/controllers/MouseMoveGesture.ts +0 -111
  136. package/src/gestures/controllers/ScrollGesture.ts +0 -107
  137. package/src/gestures/controllers/WheelGesture.ts +0 -123
  138. package/src/gestures/controllers/index.ts +0 -4
  139. package/src/gestures/helpers/eventAttacher.ts +0 -67
  140. package/src/gestures/helpers/index.ts +0 -1
  141. package/src/gestures/helpers/math.ts +0 -120
  142. package/src/gestures/helpers/withDefault.ts +0 -3
  143. package/src/gestures/hooks/index.ts +0 -5
  144. package/src/gestures/hooks/useDrag.ts +0 -14
  145. package/src/gestures/hooks/useGesture.ts +0 -38
  146. package/src/gestures/hooks/useMouseMove.ts +0 -11
  147. package/src/gestures/hooks/useRecognizer.ts +0 -59
  148. package/src/gestures/hooks/useScroll.ts +0 -11
  149. package/src/gestures/hooks/useWheel.ts +0 -11
  150. package/src/gestures/types/index.d.ts +0 -49
  151. package/src/hooks/index.ts +0 -3
  152. package/src/hooks/useMeasure.ts +0 -132
  153. package/src/hooks/useOutsideClick.ts +0 -36
  154. package/src/hooks/useWindowDimension.ts +0 -58
  155. package/src/index.ts +0 -42
  156. package/src/utils/delay.ts +0 -9
  157. package/src/utils/index.ts +0 -1
  158. package/tsconfig.json +0 -24
@@ -1,59 +0,0 @@
1
- /* eslint-disable react-hooks/exhaustive-deps */
2
- import * as React from 'react';
3
-
4
- type UseRecognizerHandlerType = Array<
5
- [
6
- key: 'drag' | 'wheel' | 'move' | 'scroll',
7
- gesture: any,
8
- callback: any,
9
- config?: any
10
- ]
11
- >;
12
-
13
- export const useRecognizer = (handlers: UseRecognizerHandlerType) => {
14
- const ref = React.useRef<any>();
15
- const elementRefs = React.useRef<Array<any>>([]);
16
- const subscribers = React.useRef<
17
- Map<string, { keyIndex: number; gesture: any; unsubscribe: any }>
18
- >(new Map()).current;
19
-
20
- // re-initiate callback on change
21
- React.useEffect(() => {
22
- for (let [, { keyIndex, gesture }] of subscribers.entries()) {
23
- const [, , callback] = handlers[keyIndex];
24
- gesture.applyCallback(callback);
25
- }
26
- }, [handlers]);
27
-
28
- React.useEffect(() => {
29
- handlers.forEach(([key, gesture, callback, config], keyIndex) => {
30
- subscribers.set(key, {
31
- keyIndex,
32
- gesture,
33
- unsubscribe: gesture.applyGesture({
34
- targetElement: ref.current,
35
- targetElements: elementRefs.current,
36
- callback,
37
- config,
38
- }),
39
- });
40
- });
41
-
42
- return () => {
43
- for (let [, { unsubscribe }] of subscribers.entries()) {
44
- unsubscribe && unsubscribe();
45
- }
46
- };
47
- }, []);
48
-
49
- return (index?: number) => {
50
- if (index === null || index === undefined) {
51
- return { ref };
52
- } else {
53
- elementRefs.current[index] =
54
- elementRefs.current[index] || React.createRef();
55
-
56
- return { ref: elementRefs.current[index] };
57
- }
58
- };
59
- };
@@ -1,11 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { ScrollEventType } from '../types';
4
- import { ScrollGesture } from '../controllers';
5
- import { useRecognizer } from './useRecognizer';
6
-
7
- export function useScroll(callback: (event: ScrollEventType) => void) {
8
- const gesture = React.useRef(new ScrollGesture()).current;
9
-
10
- return useRecognizer([['scroll', gesture, callback]]);
11
- }
@@ -1,11 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { WheelEventType } from '../types';
4
- import { WheelGesture } from '../controllers';
5
- import { useRecognizer } from './useRecognizer';
6
-
7
- export function useWheel(callback: (event: WheelEventType) => void) {
8
- const gesture = React.useRef(new WheelGesture()).current;
9
-
10
- return useRecognizer([['wheel', gesture, callback]]);
11
- }
@@ -1,49 +0,0 @@
1
- type GenericEventType = {
2
- velocityX: number;
3
- velocityY: number;
4
- directionX: number;
5
- directionY: number;
6
- };
7
-
8
- export type DragEventType = {
9
- args: Array<number | undefined>;
10
- down: boolean;
11
- movementX: number;
12
- movementY: number;
13
- offsetX: number;
14
- offsetY: number;
15
- distanceX: number;
16
- distanceY: number;
17
- cancel: () => void;
18
- } & GenericEventType;
19
-
20
- export type MouseMoveEventType = {
21
- args: Array<number | undefined>;
22
- event: MouseEvent;
23
- target: EventTarget | undefined | null;
24
- isMoving: boolean;
25
- mouseX: number;
26
- mouseY: number;
27
- } & GenericEventType;
28
-
29
- export type ScrollEventType = {
30
- isScrolling: boolean;
31
- scrollX: number;
32
- scrollY: number;
33
- } & GenericEventType;
34
-
35
- export type WheelEventType = {
36
- target: HTMLElement | undefined | null;
37
- isWheeling: boolean;
38
- movementX: number;
39
- movementY: number;
40
- offsetX: number;
41
- offsetY: number;
42
- deltaX: number;
43
- deltaY: number;
44
- } & GenericEventType;
45
-
46
- export type UseDragConfig = {
47
- initial?: () => { movementX: number; movementY: number };
48
- };
49
- export type Vector2 = { x: number; y: number };
@@ -1,3 +0,0 @@
1
- export * from "./useOutsideClick";
2
- export * from "./useMeasure";
3
- export * from "./useWindowDimension";
@@ -1,132 +0,0 @@
1
- import { useRef, useEffect, DependencyList, createRef } from 'react';
2
-
3
- type MeasurementValue = number | Array<number>;
4
-
5
- type MeasurementType = {
6
- left: MeasurementValue;
7
- top: MeasurementValue;
8
- width: MeasurementValue;
9
- height: MeasurementValue;
10
- vLeft: MeasurementValue;
11
- vTop: MeasurementValue;
12
- };
13
-
14
- export function useMeasure(
15
- callback: (event: MeasurementType) => void,
16
- deps?: DependencyList
17
- ) {
18
- const ref = useRef(null);
19
- const elementRefs = useRef([]);
20
- const callbackRef = useRef<(event: MeasurementType) => void>(callback);
21
-
22
- // Reinitiate callback when dependency change
23
- useEffect(() => {
24
- callbackRef.current = callback;
25
-
26
- return () => {
27
- callbackRef.current = () => false;
28
- };
29
- }, deps);
30
-
31
- useEffect(() => {
32
- const _refElement = ref.current || document.documentElement;
33
- const _refElementsMultiple = elementRefs.current;
34
-
35
- const resizeObserver = new ResizeObserver(([entry]) => {
36
- const { left, top, width, height } = entry.target.getBoundingClientRect();
37
- const { pageXOffset, pageYOffset } = window;
38
-
39
- if (callbackRef) {
40
- if (_refElement === document.documentElement) {
41
- return; // no-op for document
42
- } else {
43
- callbackRef.current({
44
- left: left + pageXOffset,
45
- top: top + pageYOffset,
46
- width,
47
- height,
48
- vLeft: left,
49
- vTop: top,
50
- });
51
- }
52
- }
53
- });
54
-
55
- const resizeObserverMultiple = new ResizeObserver((entries) => {
56
- const left: Array<number> = [];
57
- const top: Array<number> = [];
58
- const width: Array<number> = [];
59
- const height: Array<number> = [];
60
- const vLeft: Array<number> = [];
61
- const vTop: Array<number> = [];
62
-
63
- entries.forEach((entry) => {
64
- const {
65
- left: _left,
66
- top: _top,
67
- width: _width,
68
- height: _height,
69
- } = entry.target.getBoundingClientRect();
70
- const { pageXOffset, pageYOffset } = window;
71
- const _pageLeft = _left + pageXOffset;
72
- const _pageTop = _top + pageYOffset;
73
-
74
- left.push(_pageLeft);
75
- top.push(_pageTop);
76
- width.push(_width);
77
- height.push(_height);
78
- vLeft.push(_left);
79
- vTop.push(_top);
80
- });
81
-
82
- if (callbackRef) {
83
- callbackRef.current({
84
- left,
85
- top,
86
- width,
87
- height,
88
- vLeft,
89
- vTop,
90
- });
91
- }
92
- });
93
-
94
- if (_refElement) {
95
- if (
96
- _refElement === document.documentElement &&
97
- _refElementsMultiple.length > 0
98
- ) {
99
- _refElementsMultiple.forEach((element: any) => {
100
- resizeObserverMultiple.observe(element.current);
101
- });
102
- } else {
103
- resizeObserver.observe(_refElement);
104
- }
105
- }
106
-
107
- return () => {
108
- if (_refElement) {
109
- if (
110
- _refElement === document.documentElement &&
111
- _refElementsMultiple.length > 0
112
- ) {
113
- _refElementsMultiple.forEach((element: any) => {
114
- resizeObserverMultiple.unobserve(element.current);
115
- });
116
- } else {
117
- resizeObserver.unobserve(_refElement);
118
- }
119
- }
120
- };
121
- }, []);
122
-
123
- return (index?: number) => {
124
- if (index === null || index === undefined) {
125
- return { ref };
126
- } else {
127
- elementRefs.current[index] = elementRefs.current[index] || createRef();
128
-
129
- return { ref: elementRefs.current[index] };
130
- }
131
- }; // ...bind() or ...bind(index) for multiple
132
- }
@@ -1,36 +0,0 @@
1
- import { useRef, useEffect, RefObject, DependencyList } from 'react';
2
-
3
- import { attachEvents } from '../gestures/helpers/eventAttacher';
4
-
5
- export function useOutsideClick(
6
- elementRef: RefObject<HTMLElement>,
7
- callback: (event: MouseEvent) => void,
8
- deps?: DependencyList
9
- ) {
10
- const callbackRef = useRef<(event: MouseEvent) => void>();
11
-
12
- if (!callbackRef.current) {
13
- callbackRef.current = callback;
14
- }
15
-
16
- // Reinitiate callback when dependency change
17
- useEffect(() => {
18
- callbackRef.current = callback;
19
-
20
- return () => {
21
- callbackRef.current = () => false;
22
- };
23
- }, deps);
24
-
25
- useEffect(() => {
26
- const handleOutsideClick = (e: MouseEvent) => {
27
- if (!elementRef?.current?.contains(e.target as Element)) {
28
- callbackRef.current && callbackRef.current(e);
29
- }
30
- };
31
-
32
- const subscribe = attachEvents([document], [['click', handleOutsideClick]]);
33
-
34
- return () => subscribe && subscribe();
35
- }, []);
36
- }
@@ -1,58 +0,0 @@
1
- import { useRef, useEffect, DependencyList } from 'react';
2
-
3
- type WindowDimensionType = {
4
- width: number;
5
- height: number;
6
- innerWidth: number;
7
- innerHeight: number;
8
- };
9
-
10
- export function useWindowDimension(
11
- callback: (event: WindowDimensionType) => void,
12
- deps?: DependencyList
13
- ) {
14
- const windowDimensionsRef = useRef<WindowDimensionType>({
15
- width: 0,
16
- height: 0,
17
- innerWidth: 0,
18
- innerHeight: 0,
19
- });
20
- const callbackRef = useRef<(event: WindowDimensionType) => void>(callback);
21
-
22
- const handleCallback: () => void = () => {
23
- if (callbackRef) {
24
- callbackRef.current({
25
- ...windowDimensionsRef.current,
26
- });
27
- }
28
- };
29
-
30
- // Reinitiate callback when dependency change
31
- useEffect(() => {
32
- callbackRef.current = callback;
33
-
34
- return () => {
35
- callbackRef.current = () => false;
36
- };
37
- }, deps);
38
-
39
- useEffect(() => {
40
- const resizeObserver = new ResizeObserver(([entry]) => {
41
- const { clientWidth, clientHeight } = entry.target;
42
- const { innerWidth, innerHeight } = window;
43
-
44
- windowDimensionsRef.current = {
45
- width: clientWidth,
46
- height: clientHeight,
47
- innerWidth,
48
- innerHeight,
49
- };
50
-
51
- handleCallback();
52
- });
53
-
54
- resizeObserver.observe(document.documentElement);
55
-
56
- return () => resizeObserver.unobserve(document.documentElement);
57
- }, []);
58
- }
package/src/index.ts DELETED
@@ -1,42 +0,0 @@
1
- // Core
2
- export { Easing, makeFluid, fluid } from './animation/core';
3
-
4
- // react-ui-animate
5
- // Modules
6
- export {
7
- AnimatedBlock,
8
- AnimatedImage,
9
- AnimatedInline,
10
- AnimationConfigUtils,
11
- MountedBlock,
12
- ScrollableBlock,
13
- TransitionBlock,
14
- } from './animation/lib';
15
-
16
- // Interpolation
17
- export { bInterpolate, interpolate } from './animation/lib';
18
-
19
- // Hooks
20
-
21
- export { useAnimatedValue, useMountedValue } from './animation/lib';
22
-
23
- // Helpers and Utilities
24
- export { delay } from './utils';
25
-
26
- // Hooks
27
- export { useMeasure, useOutsideClick, useWindowDimension } from './hooks';
28
-
29
- // gestures/hooks
30
- export {
31
- useDrag,
32
- useGesture,
33
- useMouseMove,
34
- useScroll,
35
- useWheel,
36
- } from './gestures/hooks';
37
-
38
- // gestures/helpers
39
- export { bin, clamp, mix, rubberClamp, move, snapTo } from './gestures/helpers';
40
-
41
- // Types
42
- export type { UseAnimatedValueConfig } from './animation/lib';
@@ -1,9 +0,0 @@
1
- /**
2
- * @param { number } ms - number of milliseconds to delay code execution
3
- * @returns Promise
4
- */
5
- export function delay(ms: number) {
6
- return new Promise((resolve) => {
7
- setTimeout(() => resolve(null), ms);
8
- });
9
- }
@@ -1 +0,0 @@
1
- export * from './delay';
package/tsconfig.json DELETED
@@ -1,24 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "dist",
4
- "module": "esnext",
5
- "target": "es5",
6
- "lib": ["es6", "dom", "es2016", "es2017", "es2019"],
7
- "downlevelIteration": true,
8
- "sourceMap": true,
9
- "allowJs": false,
10
- "jsx": "react-jsx",
11
- "declaration": true,
12
- "moduleResolution": "node",
13
- "forceConsistentCasingInFileNames": true,
14
- "noImplicitReturns": true,
15
- "noImplicitThis": true,
16
- "noImplicitAny": true,
17
- "strictNullChecks": true,
18
- "noUnusedLocals": true,
19
- "noUnusedParameters": true,
20
- "types": ["resize-observer-browser", "node", "@types/jest"]
21
- },
22
- "include": ["src"],
23
- "exclude": ["node_modules", "dist", "example", "rollup.config.js"]
24
- }