@tamagui/animations-css 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/animations-css",
3
- "version": "1.26.0",
3
+ "version": "1.27.0",
4
4
  "source": "src/index.ts",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",
@@ -13,12 +13,12 @@
13
13
  "dist"
14
14
  ],
15
15
  "dependencies": {
16
- "@tamagui/cubic-bezier-animator": "1.26.0",
17
- "@tamagui/use-presence": "1.26.0",
18
- "@tamagui/web": "1.26.0"
16
+ "@tamagui/cubic-bezier-animator": "1.27.0",
17
+ "@tamagui/use-presence": "1.27.0",
18
+ "@tamagui/web": "1.27.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@tamagui/build": "1.26.0"
21
+ "@tamagui/build": "1.27.0"
22
22
  },
23
23
  "scripts": {
24
24
  "build": "tamagui-build",
@@ -1,133 +0,0 @@
1
- import { animate } from "@tamagui/cubic-bezier-animator";
2
- import { usePresence } from "@tamagui/use-presence";
3
- import {
4
- Stack,
5
- Text,
6
- useIsomorphicLayoutEffect,
7
- useSafeRef
8
- } from "@tamagui/web";
9
- import { useMemo, useState } from "react";
10
- function createAnimations(animations) {
11
- return {
12
- View: Stack,
13
- Text,
14
- animations,
15
- usePresence,
16
- useAnimatedNumber(initial) {
17
- const [val, setVal] = useState(initial);
18
- return {
19
- getInstance() {
20
- return val;
21
- },
22
- getValue() {
23
- return val;
24
- },
25
- setValue(next) {
26
- setVal(next);
27
- },
28
- stop() {
29
- }
30
- };
31
- },
32
- useAnimatedNumberReaction({ hostRef, value }, onValue) {
33
- useIsomorphicLayoutEffect(() => {
34
- if (!hostRef.current)
35
- return;
36
- const onTransitionEvent = (e) => {
37
- onValue(value.getValue());
38
- };
39
- const node = hostRef.current;
40
- node.addEventListener("transitionstart", onTransitionEvent);
41
- node.addEventListener("transitioncancel", onTransitionEvent);
42
- node.addEventListener("transitionend", onTransitionEvent);
43
- return () => {
44
- node.removeEventListener("transitionstart", onTransitionEvent);
45
- node.removeEventListener("transitioncancel", onTransitionEvent);
46
- node.removeEventListener("transitionend", onTransitionEvent);
47
- };
48
- }, [hostRef, onValue]);
49
- },
50
- useAnimatedNumberStyle(val, getStyle) {
51
- return getStyle(val.getValue());
52
- },
53
- useAnimations: ({ props, presence, style, state, hostRef }) => {
54
- const isEntering = !!state.unmounted;
55
- const isExiting = (presence == null ? void 0 : presence[0]) === false;
56
- const sendExitComplete = presence == null ? void 0 : presence[1];
57
- const initialPositionRef = useSafeRef(null);
58
- const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
59
- const animation = animations[animationKey];
60
- if (!animation) {
61
- return null;
62
- }
63
- const keys = props.animateOnly ? props.animateOnly.join(" ") : "all";
64
- useIsomorphicLayoutEffect(() => {
65
- if (!sendExitComplete || !isExiting || !hostRef.current)
66
- return;
67
- const node = hostRef.current;
68
- const onFinishAnimation = () => {
69
- sendExitComplete == null ? void 0 : sendExitComplete();
70
- };
71
- node.addEventListener("transitionend", onFinishAnimation);
72
- node.addEventListener("transitioncancel", onFinishAnimation);
73
- return () => {
74
- node.removeEventListener("transitionend", onFinishAnimation);
75
- node.addEventListener("transitioncancel", onFinishAnimation);
76
- };
77
- }, [sendExitComplete, isExiting]);
78
- useIsomorphicLayoutEffect(() => {
79
- var _a;
80
- if (!hostRef.current || !props.layout) {
81
- return;
82
- }
83
- const boundingBox = (_a = hostRef.current) == null ? void 0 : _a.getBoundingClientRect();
84
- if (isChanged(initialPositionRef.current, boundingBox)) {
85
- const transform = invert(
86
- hostRef.current,
87
- boundingBox,
88
- initialPositionRef.current
89
- );
90
- animate({
91
- from: transform,
92
- to: { x: 0, y: 0, scaleX: 1, scaleY: 1 },
93
- duration: 1e3,
94
- onUpdate: ({ x, y, scaleX, scaleY }) => {
95
- hostRef.current.style.transform = `translate(${x}px, ${y}px) scaleX(${scaleX}) scaleY(${scaleY})`;
96
- },
97
- // TODO: extract ease-in from string and convert/map it to a cubicBezier array
98
- cubicBezier: [0, 1.38, 1, -0.41]
99
- });
100
- }
101
- initialPositionRef.current = boundingBox;
102
- });
103
- style.transition = `${keys} ${animation}${props.layout ? ",width 0s, height 0s, margin 0s, padding 0s, transform" : ""}`;
104
- if (process.env.NODE_ENV === "development" && props["debug"]) {
105
- console.log("CSS animation", style, { isEntering, isExiting });
106
- }
107
- return useMemo(() => {
108
- return { style };
109
- }, [JSON.stringify(style)]);
110
- }
111
- };
112
- }
113
- const isChanged = (initialBox, finalBox) => {
114
- if (!initialBox || !finalBox)
115
- return false;
116
- return JSON.stringify(initialBox) !== JSON.stringify(finalBox);
117
- };
118
- const invert = (el, from, to) => {
119
- const { x: fromX, y: fromY, width: fromWidth, height: fromHeight } = from;
120
- const { x, y, width, height } = to;
121
- const transform = {
122
- x: x - fromX - (fromWidth - width) / 2,
123
- y: y - fromY - (fromHeight - height) / 2,
124
- scaleX: width / fromWidth,
125
- scaleY: height / fromHeight
126
- };
127
- el.style.transform = `translate(${transform.x}px, ${transform.y}px) scaleX(${transform.scaleX}) scaleY(${transform.scaleY})`;
128
- return transform;
129
- };
130
- export {
131
- createAnimations
132
- };
133
- //# sourceMappingURL=createAnimations.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,2 +0,0 @@
1
- export * from "./createAnimations";
2
- //# sourceMappingURL=index.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.tsx"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }