@hanzogui/animations-react-native 2.0.0-rc.41-hanzoai.5

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 @@
1
+ {"version":3,"names":["requestAnimationFrame","globalThis","setImmediate","setTimeout"],"sources":["../../src/polyfill.ts"],"sourcesContent":[null],"mappings":"AACA,YAAW;;AACT,WAAAA,qBAAW,KAAuB,WACzB;EACXC,UAAA,mCAAAC,YAAA,mBAAAC,UAAA,GAAAD,YAAA","ignoreList":[]}
@@ -0,0 +1,451 @@
1
+ import { getEffectiveAnimation, normalizeTransition } from "@hanzogui/animation-helpers";
2
+ import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
3
+ import { ResetPresence, usePresence } from "@hanzogui/use-presence";
4
+ import { useEvent, useThemeWithState } from "@hanzogui/web";
5
+ import React from "react";
6
+ import { Animated } from "react-native-web";
7
+ const isFabric = !isWeb && typeof global !== "undefined" && !!global.__nativeFabricUIManager;
8
+ const resolveDynamicValue = (value, isDark) => {
9
+ if (value && typeof value === "object" && "dynamic" in value) {
10
+ const dynamicValue = isDark ? value.dynamic.dark : value.dynamic.light;
11
+ return dynamicValue;
12
+ }
13
+ return value;
14
+ };
15
+ const animatedStyleKey = {
16
+ transform: true,
17
+ opacity: true
18
+ };
19
+ const colorStyleKey = {
20
+ backgroundColor: true,
21
+ color: true,
22
+ borderColor: true,
23
+ borderLeftColor: true,
24
+ borderRightColor: true,
25
+ borderTopColor: true,
26
+ borderBottomColor: true
27
+ };
28
+ const costlyToAnimateStyleKey = {
29
+ borderRadius: true,
30
+ borderTopLeftRadius: true,
31
+ borderTopRightRadius: true,
32
+ borderBottomLeftRadius: true,
33
+ borderBottomRightRadius: true,
34
+ borderWidth: true,
35
+ borderLeftWidth: true,
36
+ borderRightWidth: true,
37
+ borderTopWidth: true,
38
+ borderBottomWidth: true,
39
+ ...colorStyleKey
40
+ };
41
+ const AnimatedView = Animated.View;
42
+ const AnimatedText = Animated.Text;
43
+ function useAnimatedNumber(initial) {
44
+ const state = React.useRef(null);
45
+ if (!state.current) {
46
+ state.current = {
47
+ composite: null,
48
+ val: new Animated.Value(initial),
49
+ strategy: {
50
+ type: "spring"
51
+ }
52
+ };
53
+ }
54
+ return {
55
+ getInstance() {
56
+ return state.current.val;
57
+ },
58
+ getValue() {
59
+ return state.current.val["_value"];
60
+ },
61
+ stop() {
62
+ state.current.composite?.stop();
63
+ state.current.composite = null;
64
+ },
65
+ setValue(next, {
66
+ type,
67
+ ...config
68
+ } = {
69
+ type: "spring"
70
+ }, onFinish) {
71
+ const val = state.current.val;
72
+ const handleFinish = onFinish ? ({
73
+ finished
74
+ }) => finished ? onFinish() : null : void 0;
75
+ if (type === "direct") {
76
+ val.setValue(next);
77
+ } else if (type === "spring") {
78
+ state.current.composite?.stop();
79
+ const composite = Animated.spring(val, {
80
+ ...config,
81
+ toValue: next,
82
+ useNativeDriver: isFabric
83
+ });
84
+ composite.start(handleFinish);
85
+ state.current.composite = composite;
86
+ } else {
87
+ state.current.composite?.stop();
88
+ const composite = Animated.timing(val, {
89
+ ...config,
90
+ toValue: next,
91
+ useNativeDriver: isFabric
92
+ });
93
+ composite.start(handleFinish);
94
+ state.current.composite = composite;
95
+ }
96
+ }
97
+ };
98
+ }
99
+ const useAnimatedNumberReaction = ({
100
+ value
101
+ }, onValue) => {
102
+ const onChange = useEvent(current => {
103
+ onValue(current.value);
104
+ });
105
+ React.useEffect(() => {
106
+ const id = value.getInstance().addListener(onChange);
107
+ return () => {
108
+ value.getInstance().removeListener(id);
109
+ };
110
+ }, [value, onChange]);
111
+ };
112
+ const useAnimatedNumberStyle = (value, getStyle) => {
113
+ return getStyle(value.getInstance());
114
+ };
115
+ const useAnimatedNumbersStyle = (vals, getStyle) => {
116
+ return getStyle(...vals.map(v => v.getInstance()));
117
+ };
118
+ function createAnimations(animations, options) {
119
+ const nativeDriver = options?.useNativeDriver ?? isFabric;
120
+ return {
121
+ isReactNative: true,
122
+ inputStyle: "value",
123
+ outputStyle: "inline",
124
+ avoidReRenders: true,
125
+ animations,
126
+ needsCustomComponent: true,
127
+ View: AnimatedView,
128
+ Text: AnimatedText,
129
+ useAnimatedNumber,
130
+ useAnimatedNumberReaction,
131
+ useAnimatedNumberStyle,
132
+ useAnimatedNumbersStyle,
133
+ usePresence,
134
+ ResetPresence,
135
+ useAnimations: ({
136
+ props,
137
+ onDidAnimate,
138
+ style,
139
+ componentState,
140
+ presence,
141
+ useStyleEmitter
142
+ }) => {
143
+ const isDisabled = isWeb && componentState.unmounted === true;
144
+ const isExiting = presence?.[0] === false;
145
+ const sendExitComplete = presence?.[1];
146
+ const [, themeState] = useThemeWithState({});
147
+ const isDark = themeState?.scheme === "dark" || themeState?.name?.startsWith("dark");
148
+ const animateStyles = React.useRef({});
149
+ const animatedTranforms = React.useRef([]);
150
+ const animationsState = React.useRef(/* @__PURE__ */new WeakMap());
151
+ const exitCycleIdRef = React.useRef(0);
152
+ const exitCompletedRef = React.useRef(false);
153
+ const wasExitingRef = React.useRef(false);
154
+ const justStartedExiting = isExiting && !wasExitingRef.current;
155
+ const justStoppedExiting = !isExiting && wasExitingRef.current;
156
+ if (justStartedExiting) {
157
+ exitCycleIdRef.current++;
158
+ exitCompletedRef.current = false;
159
+ }
160
+ if (justStoppedExiting) {
161
+ exitCycleIdRef.current++;
162
+ }
163
+ const animateOnly = props.animateOnly || [];
164
+ const hasTransitionOnly = !!props.animateOnly;
165
+ const isEntering = !!componentState.unmounted;
166
+ const wasEnteringRef = React.useRef(isEntering);
167
+ const justFinishedEntering = wasEnteringRef.current && !isEntering;
168
+ React.useEffect(() => {
169
+ wasEnteringRef.current = isEntering;
170
+ });
171
+ const args = [JSON.stringify(style), componentState, isExiting, !!onDidAnimate, isDark, justFinishedEntering, hasTransitionOnly];
172
+ const res = React.useMemo(() => {
173
+ const runners = [];
174
+ const completions = [];
175
+ const animationState = isExiting ? "exit" : isEntering || justFinishedEntering ? "enter" : "default";
176
+ const nonAnimatedStyle = {};
177
+ for (const key in style) {
178
+ const rawVal = style[key];
179
+ const val = resolveDynamicValue(rawVal, isDark);
180
+ if (val === void 0) continue;
181
+ if (isDisabled) {
182
+ continue;
183
+ }
184
+ if (animatedStyleKey[key] == null && !costlyToAnimateStyleKey[key]) {
185
+ nonAnimatedStyle[key] = val;
186
+ continue;
187
+ }
188
+ if (hasTransitionOnly && !animateOnly.includes(key)) {
189
+ nonAnimatedStyle[key] = val;
190
+ continue;
191
+ }
192
+ if (key !== "transform") {
193
+ animateStyles.current[key] = update(key, animateStyles.current[key], val);
194
+ continue;
195
+ }
196
+ if (!val) continue;
197
+ if (typeof val === "string") {
198
+ console.warn(`Warning: Hanzogui can't animate string transforms yet!`);
199
+ continue;
200
+ }
201
+ for (const [index, transform] of val.entries()) {
202
+ if (!transform) continue;
203
+ const tkey = Object.keys(transform)[0];
204
+ const currentTransform = animatedTranforms.current[index]?.[tkey];
205
+ animatedTranforms.current[index] = {
206
+ [tkey]: update(tkey, currentTransform, transform[tkey])
207
+ };
208
+ animatedTranforms.current = [...animatedTranforms.current];
209
+ }
210
+ }
211
+ const animatedTransformStyle = animatedTranforms.current.length > 0 ? {
212
+ transform: animatedTranforms.current.map(r => {
213
+ const key = Object.keys(r)[0];
214
+ const val = animationsState.current.get(r[key])?.interpolation || r[key];
215
+ return {
216
+ [key]: val
217
+ };
218
+ })
219
+ } : {};
220
+ const animatedStyle = {
221
+ ...Object.fromEntries(Object.entries(animateStyles.current).map(([k, v]) => [k, animationsState.current.get(v)?.interpolation || v])),
222
+ ...animatedTransformStyle
223
+ };
224
+ return {
225
+ runners,
226
+ completions,
227
+ style: [nonAnimatedStyle, animatedStyle]
228
+ };
229
+ function update(key, animated, valIn) {
230
+ const isColorStyleKey = colorStyleKey[key];
231
+ const [val, type] = isColorStyleKey ? [0, void 0] : getValue(valIn);
232
+ let animateToValue = val;
233
+ const value = animated || new Animated.Value(val);
234
+ const curInterpolation = animationsState.current.get(value);
235
+ let interpolateArgs;
236
+ if (type) {
237
+ interpolateArgs = getInterpolated(curInterpolation?.current ?? value["_value"], val, type);
238
+ animationsState.current.set(value, {
239
+ interpolation: value.interpolate(interpolateArgs),
240
+ current: val
241
+ });
242
+ }
243
+ if (isColorStyleKey) {
244
+ animateToValue = curInterpolation?.animateToValue ? 0 : 1;
245
+ interpolateArgs = getColorInterpolated(curInterpolation?.current,
246
+ // valIn is the next color
247
+ valIn, animateToValue);
248
+ animationsState.current.set(value, {
249
+ current: valIn,
250
+ interpolation: value.interpolate(interpolateArgs),
251
+ animateToValue: curInterpolation?.animateToValue ? 0 : 1
252
+ });
253
+ }
254
+ if (value) {
255
+ const animationConfig = getAnimationConfig(key, animations, props.transition, animationState);
256
+ let resolve;
257
+ const promise = new Promise(res2 => {
258
+ resolve = res2;
259
+ });
260
+ completions.push(promise);
261
+ runners.push(() => {
262
+ value.stopAnimation();
263
+ function getAnimation() {
264
+ return Animated[animationConfig.type || "spring"](value, {
265
+ toValue: animateToValue,
266
+ useNativeDriver: nativeDriver,
267
+ ...animationConfig
268
+ });
269
+ }
270
+ const animation = animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), getAnimation()]) : getAnimation();
271
+ animation.start(({
272
+ finished
273
+ }) => {
274
+ if (finished || isExiting) {
275
+ resolve();
276
+ }
277
+ });
278
+ });
279
+ }
280
+ if (process.env.NODE_ENV === "development") {
281
+ if (props["debug"] === "verbose") {
282
+ console.info(" \u{1F4A0} animate", key, `from (${value["_value"]}) to`, valIn, `(${val})`, "type", type, "interpolate", interpolateArgs);
283
+ }
284
+ }
285
+ return value;
286
+ }
287
+ }, args);
288
+ React.useEffect(() => {
289
+ wasExitingRef.current = isExiting;
290
+ });
291
+ useIsomorphicLayoutEffect(() => {
292
+ res.runners.forEach(r => r());
293
+ const cycleId = exitCycleIdRef.current;
294
+ if (res.completions.length === 0) {
295
+ onDidAnimate?.();
296
+ if (isExiting && !exitCompletedRef.current) {
297
+ exitCompletedRef.current = true;
298
+ sendExitComplete?.();
299
+ }
300
+ return;
301
+ }
302
+ let cancel = false;
303
+ Promise.all(res.completions).then(() => {
304
+ if (cancel) return;
305
+ if (isExiting && cycleId !== exitCycleIdRef.current) return;
306
+ if (isExiting && exitCompletedRef.current) return;
307
+ onDidAnimate?.();
308
+ if (isExiting) {
309
+ exitCompletedRef.current = true;
310
+ sendExitComplete?.();
311
+ }
312
+ });
313
+ return () => {
314
+ cancel = true;
315
+ };
316
+ }, args);
317
+ useStyleEmitter?.(nextStyle => {
318
+ for (const key in nextStyle) {
319
+ const rawVal = nextStyle[key];
320
+ const val = resolveDynamicValue(rawVal, isDark);
321
+ if (val === void 0) continue;
322
+ if (key === "transform" && Array.isArray(val)) {
323
+ for (const [index, transform] of val.entries()) {
324
+ if (!transform) continue;
325
+ const tkey = Object.keys(transform)[0];
326
+ const currentTransform = animatedTranforms.current[index]?.[tkey];
327
+ animatedTranforms.current[index] = {
328
+ [tkey]: update(tkey, currentTransform, transform[tkey])
329
+ };
330
+ }
331
+ } else if (animatedStyleKey[key] != null || costlyToAnimateStyleKey[key]) {
332
+ animateStyles.current[key] = update(key, animateStyles.current[key], val);
333
+ }
334
+ }
335
+ res.runners.forEach(r => r());
336
+ function update(key, animated, valIn) {
337
+ const isColor = colorStyleKey[key];
338
+ const [numVal, type] = isColor ? [0, void 0] : getValue(valIn);
339
+ let animateToValue = numVal;
340
+ const value = animated || new Animated.Value(numVal);
341
+ const curInterpolation = animationsState.current.get(value);
342
+ if (type) {
343
+ animationsState.current.set(value, {
344
+ interpolation: value.interpolate(getInterpolated(curInterpolation?.current ?? value["_value"], numVal, type)),
345
+ current: numVal
346
+ });
347
+ }
348
+ if (isColor) {
349
+ animateToValue = curInterpolation?.animateToValue ? 0 : 1;
350
+ animationsState.current.set(value, {
351
+ current: valIn,
352
+ interpolation: value.interpolate(getColorInterpolated(curInterpolation?.current, valIn, animateToValue)),
353
+ animateToValue: curInterpolation?.animateToValue ? 0 : 1
354
+ });
355
+ }
356
+ const animationConfig = getAnimationConfig(key, animations, props.transition, "default");
357
+ res.runners.push(() => {
358
+ value.stopAnimation();
359
+ const anim = Animated[animationConfig.type || "spring"](value, {
360
+ toValue: animateToValue,
361
+ useNativeDriver: nativeDriver,
362
+ ...animationConfig
363
+ });
364
+ (animationConfig.delay ? Animated.sequence([Animated.delay(animationConfig.delay), anim]) : anim).start();
365
+ });
366
+ return value;
367
+ }
368
+ });
369
+ if (process.env.NODE_ENV === "development") {
370
+ if (props["debug"] === "verbose") {
371
+ console.info(`Animated`, {
372
+ response: res,
373
+ inputStyle: style,
374
+ isExiting
375
+ });
376
+ }
377
+ }
378
+ return res;
379
+ }
380
+ };
381
+ }
382
+ function getColorInterpolated(currentColor, nextColor, animateToValue) {
383
+ const inputRange = [0, 1];
384
+ const outputRange = [currentColor ? currentColor : nextColor, nextColor];
385
+ if (animateToValue === 0) {
386
+ outputRange.reverse();
387
+ }
388
+ return {
389
+ inputRange,
390
+ outputRange
391
+ };
392
+ }
393
+ function getInterpolated(current, next, postfix = "deg") {
394
+ if (next === current) {
395
+ current = next - 1e-9;
396
+ }
397
+ const inputRange = [current, next];
398
+ const outputRange = [`${current}${postfix}`, `${next}${postfix}`];
399
+ if (next < current) {
400
+ inputRange.reverse();
401
+ outputRange.reverse();
402
+ }
403
+ return {
404
+ inputRange,
405
+ outputRange
406
+ };
407
+ }
408
+ function getAnimationConfig(key, animations, transition, animationState = "default") {
409
+ const normalized = normalizeTransition(transition);
410
+ const shortKey = transformShorthands[key];
411
+ const propAnimation = normalized.properties[key] ?? normalized.properties[shortKey];
412
+ let animationType = null;
413
+ let extraConf = {};
414
+ if (typeof propAnimation === "string") {
415
+ animationType = propAnimation;
416
+ } else if (propAnimation && typeof propAnimation === "object") {
417
+ animationType = propAnimation.type || getEffectiveAnimation(normalized, animationState);
418
+ extraConf = propAnimation;
419
+ } else {
420
+ animationType = getEffectiveAnimation(normalized, animationState);
421
+ }
422
+ if (normalized.delay && !extraConf.delay) {
423
+ extraConf = {
424
+ ...extraConf,
425
+ delay: normalized.delay
426
+ };
427
+ }
428
+ const found = animationType ? animations[animationType] : {};
429
+ return {
430
+ ...found,
431
+ // Apply global spring config overrides (from transition={['bouncy', { stiffness: 1000 }]})
432
+ ...normalized.config,
433
+ // Property-specific config takes highest precedence
434
+ ...extraConf
435
+ };
436
+ }
437
+ const transformShorthands = {
438
+ x: "translateX",
439
+ y: "translateY",
440
+ translateX: "x",
441
+ translateY: "y"
442
+ };
443
+ function getValue(input, isColor = false) {
444
+ if (typeof input !== "string") {
445
+ return [input];
446
+ }
447
+ const [_, number, after] = input.match(/([-0-9]+)(deg|%|px)/) ?? [];
448
+ return [+number, after];
449
+ }
450
+ export { AnimatedText, AnimatedView, createAnimations, useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle, useAnimatedNumbersStyle };
451
+ //# sourceMappingURL=createAnimations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getEffectiveAnimation","normalizeTransition","isWeb","useIsomorphicLayoutEffect","ResetPresence","usePresence","useEvent","useThemeWithState","React","Animated","isFabric","global","__nativeFabricUIManager","resolveDynamicValue","value","isDark","dynamicValue","dynamic","dark","light","animatedStyleKey","transform","opacity","colorStyleKey","backgroundColor","color","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","costlyToAnimateStyleKey","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","AnimatedView","View","AnimatedText","Text","useAnimatedNumber","initial","state","useRef","current","composite","val","Value","strategy","type","getInstance","getValue","stop","setValue","next","config","onFinish","handleFinish","finished","spring","toValue","useNativeDriver","start","timing","useAnimatedNumberReaction","onValue","onChange","useEffect","id","addListener","removeListener","useAnimatedNumberStyle","getStyle","useAnimatedNumbersStyle","vals","map","v","createAnimations","animations","options","nativeDriver","isReactNative","inputStyle","outputStyle","avoidReRenders","needsCustomComponent","useAnimations","props","onDidAnimate","style","componentState","presence","useStyleEmitter","isDisabled","unmounted","isExiting","sendExitComplete","themeState","scheme","name","startsWith","animateStyles","animatedTranforms","animationsState","WeakMap","exitCycleIdRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","animateOnly","hasTransitionOnly","isEntering","wasEnteringRef","justFinishedEntering","args","JSON","stringify","res","useMemo","runners","completions","animationState","nonAnimatedStyle","key","rawVal","includes","update","console","warn","index","entries","tkey","Object","keys","currentTransform","animatedTransformStyle","length","r","get","interpolation","animatedStyle","fromEntries","k","animated","valIn","isColorStyleKey","animateToValue","curInterpolation","interpolateArgs","getInterpolated","set","interpolate","getColorInterpolated","animationConfig","getAnimationConfig","transition","resolve","promise","Promise","res2","push","stopAnimation","getAnimation","animation","delay","sequence","process","env","NODE_ENV","info","forEach","cycleId","cancel","all","then","nextStyle","Array","isArray","isColor","numVal","anim","response","currentColor","nextColor","inputRange","outputRange","reverse","postfix","normalized","shortKey","transformShorthands","propAnimation","properties","animationType","extraConf","found","x","y","translateX","translateY","input","_","number","after","match"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}