react-native-ease 0.2.0 → 0.4.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/.claude-plugin/marketplace.json +21 -0
- package/.claude-plugin/plugin.json +5 -0
- package/README.md +218 -74
- package/android/src/main/java/com/ease/EaseView.kt +275 -78
- package/android/src/main/java/com/ease/EaseViewManager.kt +5 -44
- package/ios/EaseView.mm +277 -76
- package/lib/module/EaseView.js +85 -26
- package/lib/module/EaseView.js.map +1 -1
- package/lib/module/EaseView.web.js +351 -0
- package/lib/module/EaseView.web.js.map +1 -0
- package/lib/module/EaseViewNativeComponent.ts +24 -15
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/EaseView.d.ts +2 -0
- package/lib/typescript/src/EaseView.d.ts.map +1 -1
- package/lib/typescript/src/EaseView.web.d.ts +16 -0
- package/lib/typescript/src/EaseView.web.d.ts.map +1 -0
- package/lib/typescript/src/EaseViewNativeComponent.d.ts +20 -7
- package/lib/typescript/src/EaseViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +21 -2
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +7 -5
- package/skills/react-native-ease-refactor/SKILL.md +405 -0
- package/src/EaseView.tsx +116 -48
- package/src/EaseView.web.tsx +462 -0
- package/src/EaseViewNativeComponent.ts +24 -15
- package/src/index.tsx +2 -0
- package/src/types.ts +26 -2
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useRef, useState, useCallback } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/** Identity values used as defaults for animate/initialAnimate. */
|
|
7
|
+
const IDENTITY = {
|
|
8
|
+
opacity: 1,
|
|
9
|
+
translateX: 0,
|
|
10
|
+
translateY: 0,
|
|
11
|
+
scaleX: 1,
|
|
12
|
+
scaleY: 1,
|
|
13
|
+
rotate: 0,
|
|
14
|
+
rotateX: 0,
|
|
15
|
+
rotateY: 0,
|
|
16
|
+
borderRadius: 0
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/** Preset easing curves as cubic bezier control points. */
|
|
20
|
+
const EASING_PRESETS = {
|
|
21
|
+
linear: [0, 0, 1, 1],
|
|
22
|
+
easeIn: [0.42, 0, 1, 1],
|
|
23
|
+
easeOut: [0, 0, 0.58, 1],
|
|
24
|
+
easeInOut: [0.42, 0, 0.58, 1]
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Spring simulation → CSS linear() easing
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
/** Simulate a damped spring from 0 → 1 and return settling duration + sample points. */
|
|
32
|
+
function simulateSpring(damping, stiffness, mass) {
|
|
33
|
+
const dt = 1 / 120; // 120 Hz simulation
|
|
34
|
+
const maxTime = 10; // 10s safety cap
|
|
35
|
+
let x = 0;
|
|
36
|
+
let v = 0;
|
|
37
|
+
const samples = [0];
|
|
38
|
+
let step = 0;
|
|
39
|
+
while (step * dt < maxTime) {
|
|
40
|
+
const a = (-stiffness * (x - 1) - damping * v) / mass;
|
|
41
|
+
v += a * dt;
|
|
42
|
+
x += v * dt;
|
|
43
|
+
step++;
|
|
44
|
+
// Downsample to ~60 fps (every 2nd sample)
|
|
45
|
+
if (step % 2 === 0) {
|
|
46
|
+
samples.push(Math.round(x * 10000) / 10000);
|
|
47
|
+
}
|
|
48
|
+
// Settled?
|
|
49
|
+
if (Math.abs(x - 1) < 0.001 && Math.abs(v) < 0.001) break;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Ensure last point is exactly 1
|
|
53
|
+
samples[samples.length - 1] = 1;
|
|
54
|
+
return {
|
|
55
|
+
durationMs: Math.round(step * dt * 1000),
|
|
56
|
+
points: samples
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Cache for computed spring easing strings (keyed by damping-stiffness-mass). */
|
|
61
|
+
const springCache = new Map();
|
|
62
|
+
function getSpringEasing(damping, stiffness, mass) {
|
|
63
|
+
const key = `${damping}-${stiffness}-${mass}`;
|
|
64
|
+
let cached = springCache.get(key);
|
|
65
|
+
if (cached) return cached;
|
|
66
|
+
const {
|
|
67
|
+
durationMs,
|
|
68
|
+
points
|
|
69
|
+
} = simulateSpring(damping, stiffness, mass);
|
|
70
|
+
const easing = `linear(${points.join(', ')})`;
|
|
71
|
+
cached = {
|
|
72
|
+
duration: durationMs,
|
|
73
|
+
easing
|
|
74
|
+
};
|
|
75
|
+
springCache.set(key, cached);
|
|
76
|
+
return cached;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Detect CSS linear() support (lazy, cached). */
|
|
80
|
+
let linearSupported = null;
|
|
81
|
+
function supportsLinearEasing() {
|
|
82
|
+
if (linearSupported != null) return linearSupported;
|
|
83
|
+
try {
|
|
84
|
+
const el = document.createElement('div');
|
|
85
|
+
el.style.transitionTimingFunction = 'linear(0, 1)';
|
|
86
|
+
linearSupported = el.style.transitionTimingFunction !== '';
|
|
87
|
+
} catch {
|
|
88
|
+
linearSupported = false;
|
|
89
|
+
}
|
|
90
|
+
return linearSupported;
|
|
91
|
+
}
|
|
92
|
+
const SPRING_FALLBACK_EASING = 'cubic-bezier(0.25, 0.46, 0.45, 0.94)';
|
|
93
|
+
function resolveAnimateValues(props) {
|
|
94
|
+
return {
|
|
95
|
+
...IDENTITY,
|
|
96
|
+
...props,
|
|
97
|
+
scaleX: props?.scaleX ?? props?.scale ?? IDENTITY.scaleX,
|
|
98
|
+
scaleY: props?.scaleY ?? props?.scale ?? IDENTITY.scaleY,
|
|
99
|
+
rotateX: props?.rotateX ?? IDENTITY.rotateX,
|
|
100
|
+
rotateY: props?.rotateY ?? IDENTITY.rotateY,
|
|
101
|
+
backgroundColor: props?.backgroundColor
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function buildTransform(vals) {
|
|
105
|
+
const parts = [];
|
|
106
|
+
if (vals.translateX !== 0 || vals.translateY !== 0) {
|
|
107
|
+
parts.push(`translate(${vals.translateX}px, ${vals.translateY}px)`);
|
|
108
|
+
}
|
|
109
|
+
if (vals.scaleX !== 1 || vals.scaleY !== 1) {
|
|
110
|
+
parts.push(vals.scaleX === vals.scaleY ? `scale(${vals.scaleX})` : `scale(${vals.scaleX}, ${vals.scaleY})`);
|
|
111
|
+
}
|
|
112
|
+
if (vals.rotate !== 0) {
|
|
113
|
+
parts.push(`rotate(${vals.rotate}deg)`);
|
|
114
|
+
}
|
|
115
|
+
if (vals.rotateX !== 0) {
|
|
116
|
+
parts.push(`rotateX(${vals.rotateX}deg)`);
|
|
117
|
+
}
|
|
118
|
+
if (vals.rotateY !== 0) {
|
|
119
|
+
parts.push(`rotateY(${vals.rotateY}deg)`);
|
|
120
|
+
}
|
|
121
|
+
return parts.length > 0 ? parts.join(' ') : 'none';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Returns true if the transition is a SingleTransition (has a `type` field). */
|
|
125
|
+
function isSingleTransition(t) {
|
|
126
|
+
return 'type' in t;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Resolve a single config into CSS-ready duration/easing. */
|
|
130
|
+
function resolveConfigForCss(config) {
|
|
131
|
+
if (!config || config.type === 'none') {
|
|
132
|
+
return {
|
|
133
|
+
duration: 0,
|
|
134
|
+
easing: 'linear',
|
|
135
|
+
type: config?.type ?? 'timing'
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
duration: resolveDuration(config),
|
|
140
|
+
easing: resolveEasing(config),
|
|
141
|
+
type: config.type
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** CSS property names for each category. */
|
|
146
|
+
const CSS_PROP_MAP = {
|
|
147
|
+
opacity: 'opacity',
|
|
148
|
+
transform: 'transform',
|
|
149
|
+
borderRadius: 'border-radius',
|
|
150
|
+
backgroundColor: 'background-color'
|
|
151
|
+
};
|
|
152
|
+
/** Resolve transition prop into per-category CSS configs. */
|
|
153
|
+
function resolvePerCategoryConfigs(transition) {
|
|
154
|
+
if (!transition) {
|
|
155
|
+
const def = resolveConfigForCss(undefined);
|
|
156
|
+
return {
|
|
157
|
+
opacity: def,
|
|
158
|
+
transform: def,
|
|
159
|
+
borderRadius: def,
|
|
160
|
+
backgroundColor: def
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (isSingleTransition(transition)) {
|
|
164
|
+
const def = resolveConfigForCss(transition);
|
|
165
|
+
return {
|
|
166
|
+
opacity: def,
|
|
167
|
+
transform: def,
|
|
168
|
+
borderRadius: def,
|
|
169
|
+
backgroundColor: def
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// TransitionMap
|
|
173
|
+
const defaultConfig = resolveConfigForCss(transition.default);
|
|
174
|
+
return {
|
|
175
|
+
opacity: transition.opacity ? resolveConfigForCss(transition.opacity) : defaultConfig,
|
|
176
|
+
transform: transition.transform ? resolveConfigForCss(transition.transform) : defaultConfig,
|
|
177
|
+
borderRadius: transition.borderRadius ? resolveConfigForCss(transition.borderRadius) : defaultConfig,
|
|
178
|
+
backgroundColor: transition.backgroundColor ? resolveConfigForCss(transition.backgroundColor) : defaultConfig
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function resolveEasing(transition) {
|
|
182
|
+
if (!transition || transition.type === 'none') {
|
|
183
|
+
return 'linear';
|
|
184
|
+
}
|
|
185
|
+
if (transition.type === 'spring') {
|
|
186
|
+
const d = transition.damping ?? 15;
|
|
187
|
+
const s = transition.stiffness ?? 120;
|
|
188
|
+
const m = transition.mass ?? 1;
|
|
189
|
+
if (supportsLinearEasing()) {
|
|
190
|
+
return getSpringEasing(d, s, m).easing;
|
|
191
|
+
}
|
|
192
|
+
return SPRING_FALLBACK_EASING;
|
|
193
|
+
}
|
|
194
|
+
// timing
|
|
195
|
+
const easing = transition.easing ?? 'easeInOut';
|
|
196
|
+
const bezier = Array.isArray(easing) ? easing : EASING_PRESETS[easing];
|
|
197
|
+
return `cubic-bezier(${bezier[0]}, ${bezier[1]}, ${bezier[2]}, ${bezier[3]})`;
|
|
198
|
+
}
|
|
199
|
+
function resolveDuration(transition) {
|
|
200
|
+
if (!transition) return 300;
|
|
201
|
+
if (transition.type === 'timing') return transition.duration ?? 300;
|
|
202
|
+
if (transition.type === 'none') return 0;
|
|
203
|
+
// Spring: use simulation-derived duration (incorporates stiffness)
|
|
204
|
+
const d = transition.damping ?? 15;
|
|
205
|
+
const s = transition.stiffness ?? 120;
|
|
206
|
+
const m = transition.mass ?? 1;
|
|
207
|
+
return getSpringEasing(d, s, m).duration;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** Counter for unique keyframe names. */
|
|
211
|
+
let keyframeCounter = 0;
|
|
212
|
+
export function EaseView({
|
|
213
|
+
animate,
|
|
214
|
+
initialAnimate,
|
|
215
|
+
transition,
|
|
216
|
+
onTransitionEnd,
|
|
217
|
+
useHardwareLayer: _useHardwareLayer,
|
|
218
|
+
transformOrigin,
|
|
219
|
+
style,
|
|
220
|
+
children
|
|
221
|
+
}) {
|
|
222
|
+
const resolved = resolveAnimateValues(animate);
|
|
223
|
+
const hasInitial = initialAnimate != null;
|
|
224
|
+
const [mounted, setMounted] = useState(!hasInitial);
|
|
225
|
+
// On web, View ref gives us the underlying DOM element.
|
|
226
|
+
const viewRef = useRef(null);
|
|
227
|
+
const animationNameRef = useRef(null);
|
|
228
|
+
const getElement = useCallback(() => viewRef.current, []);
|
|
229
|
+
|
|
230
|
+
// For initialAnimate: render initial values first, then animate on mount.
|
|
231
|
+
useEffect(() => {
|
|
232
|
+
if (hasInitial) {
|
|
233
|
+
getElement()?.getBoundingClientRect();
|
|
234
|
+
setMounted(true);
|
|
235
|
+
}
|
|
236
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
237
|
+
|
|
238
|
+
const displayValues = !mounted && hasInitial ? resolveAnimateValues(initialAnimate) : resolved;
|
|
239
|
+
const categoryConfigs = resolvePerCategoryConfigs(transition);
|
|
240
|
+
|
|
241
|
+
// For loop mode, use the default/single transition config
|
|
242
|
+
const singleTransition = transition && isSingleTransition(transition) ? transition : transition && !isSingleTransition(transition) ? transition.default : undefined;
|
|
243
|
+
const loopMode = singleTransition?.type === 'timing' ? singleTransition.loop : undefined;
|
|
244
|
+
const loopDuration = resolveDuration(singleTransition);
|
|
245
|
+
const loopEasing = resolveEasing(singleTransition);
|
|
246
|
+
const originX = ((transformOrigin?.x ?? 0.5) * 100).toFixed(1);
|
|
247
|
+
const originY = ((transformOrigin?.y ?? 0.5) * 100).toFixed(1);
|
|
248
|
+
const transitionCss = !mounted && hasInitial ? 'none' : Object.keys(CSS_PROP_MAP).filter(key => {
|
|
249
|
+
const cfg = categoryConfigs[key];
|
|
250
|
+
return cfg.type !== 'none' && cfg.duration > 0;
|
|
251
|
+
}).map(key => {
|
|
252
|
+
const cfg = categoryConfigs[key];
|
|
253
|
+
return `${CSS_PROP_MAP[key]} ${cfg.duration}ms ${cfg.easing}`;
|
|
254
|
+
}).join(', ') || 'none';
|
|
255
|
+
|
|
256
|
+
// Apply CSS transition/animation properties imperatively (not in RN style spec).
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
const el = getElement();
|
|
259
|
+
if (!el) return;
|
|
260
|
+
if (!loopMode) {
|
|
261
|
+
el.style.transition = transitionCss;
|
|
262
|
+
}
|
|
263
|
+
el.style.transformOrigin = `${originX}% ${originY}%`;
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
// Handle transitionend event via DOM listener.
|
|
267
|
+
useEffect(() => {
|
|
268
|
+
const el = getElement();
|
|
269
|
+
if (!el || !onTransitionEnd) return;
|
|
270
|
+
const handler = e => {
|
|
271
|
+
if (e.target !== e.currentTarget) return;
|
|
272
|
+
if (e.propertyName !== 'opacity' && e.propertyName !== 'transform') return;
|
|
273
|
+
onTransitionEnd({
|
|
274
|
+
finished: true
|
|
275
|
+
});
|
|
276
|
+
};
|
|
277
|
+
el.addEventListener('transitionend', handler);
|
|
278
|
+
return () => el.removeEventListener('transitionend', handler);
|
|
279
|
+
}, [onTransitionEnd, getElement]);
|
|
280
|
+
|
|
281
|
+
// Handle loop animations via CSS @keyframes.
|
|
282
|
+
useEffect(() => {
|
|
283
|
+
const el = getElement();
|
|
284
|
+
if (!loopMode || !el) {
|
|
285
|
+
if (animationNameRef.current) {
|
|
286
|
+
const cleanEl = getElement();
|
|
287
|
+
if (cleanEl) cleanEl.style.animation = '';
|
|
288
|
+
animationNameRef.current = null;
|
|
289
|
+
}
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const fromValues = initialAnimate ? resolveAnimateValues(initialAnimate) : resolveAnimateValues(undefined);
|
|
293
|
+
const toValues = resolveAnimateValues(animate);
|
|
294
|
+
const fromTransform = buildTransform(fromValues);
|
|
295
|
+
const toTransform = buildTransform(toValues);
|
|
296
|
+
const name = `ease-loop-${++keyframeCounter}`;
|
|
297
|
+
animationNameRef.current = name;
|
|
298
|
+
|
|
299
|
+
// Only include border-radius/background-color in keyframes when explicitly
|
|
300
|
+
// set by the user, to avoid overriding values from the style prop.
|
|
301
|
+
const hasBorderRadius = initialAnimate?.borderRadius != null || animate?.borderRadius != null;
|
|
302
|
+
const hasBgColor = initialAnimate?.backgroundColor != null || animate?.backgroundColor != null;
|
|
303
|
+
const fromBlock = [`opacity: ${fromValues.opacity}`, `transform: ${fromTransform}`, hasBorderRadius ? `border-radius: ${fromValues.borderRadius}px` : '', hasBgColor && fromValues.backgroundColor ? `background-color: ${fromValues.backgroundColor}` : ''].filter(Boolean).join('; ');
|
|
304
|
+
const toBlock = [`opacity: ${toValues.opacity}`, `transform: ${toTransform}`, hasBorderRadius ? `border-radius: ${toValues.borderRadius}px` : '', hasBgColor && toValues.backgroundColor ? `background-color: ${toValues.backgroundColor}` : ''].filter(Boolean).join('; ');
|
|
305
|
+
const keyframes = `@keyframes ${name} { from { ${fromBlock} } to { ${toBlock} } }`;
|
|
306
|
+
const styleEl = document.createElement('style');
|
|
307
|
+
styleEl.textContent = keyframes;
|
|
308
|
+
document.head.appendChild(styleEl);
|
|
309
|
+
const direction = loopMode === 'reverse' ? 'alternate' : 'normal';
|
|
310
|
+
el.style.transition = 'none';
|
|
311
|
+
el.style.animation = `${name} ${loopDuration}ms ${loopEasing} infinite ${direction}`;
|
|
312
|
+
return () => {
|
|
313
|
+
styleEl.remove();
|
|
314
|
+
el.style.animation = '';
|
|
315
|
+
animationNameRef.current = null;
|
|
316
|
+
};
|
|
317
|
+
}, [loopMode, animate, initialAnimate, loopDuration, loopEasing, getElement]);
|
|
318
|
+
|
|
319
|
+
// Build animated style using RN transform array format.
|
|
320
|
+
// react-native-web converts these to CSS transform strings.
|
|
321
|
+
const animatedStyle = {
|
|
322
|
+
opacity: displayValues.opacity,
|
|
323
|
+
transform: [...(displayValues.translateX !== 0 ? [{
|
|
324
|
+
translateX: displayValues.translateX
|
|
325
|
+
}] : []), ...(displayValues.translateY !== 0 ? [{
|
|
326
|
+
translateY: displayValues.translateY
|
|
327
|
+
}] : []), ...(displayValues.scaleX !== 1 ? [{
|
|
328
|
+
scaleX: displayValues.scaleX
|
|
329
|
+
}] : []), ...(displayValues.scaleY !== 1 ? [{
|
|
330
|
+
scaleY: displayValues.scaleY
|
|
331
|
+
}] : []), ...(displayValues.rotate !== 0 ? [{
|
|
332
|
+
rotate: `${displayValues.rotate}deg`
|
|
333
|
+
}] : []), ...(displayValues.rotateX !== 0 ? [{
|
|
334
|
+
rotateX: `${displayValues.rotateX}deg`
|
|
335
|
+
}] : []), ...(displayValues.rotateY !== 0 ? [{
|
|
336
|
+
rotateY: `${displayValues.rotateY}deg`
|
|
337
|
+
}] : [])],
|
|
338
|
+
...(displayValues.borderRadius > 0 ? {
|
|
339
|
+
borderRadius: displayValues.borderRadius
|
|
340
|
+
} : {}),
|
|
341
|
+
...(displayValues.backgroundColor ? {
|
|
342
|
+
backgroundColor: displayValues.backgroundColor
|
|
343
|
+
} : {})
|
|
344
|
+
};
|
|
345
|
+
return /*#__PURE__*/_jsx(View, {
|
|
346
|
+
ref: viewRef,
|
|
347
|
+
style: [style, animatedStyle],
|
|
348
|
+
children: children
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=EaseView.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","useCallback","View","jsx","_jsx","IDENTITY","opacity","translateX","translateY","scaleX","scaleY","rotate","rotateX","rotateY","borderRadius","EASING_PRESETS","linear","easeIn","easeOut","easeInOut","simulateSpring","damping","stiffness","mass","dt","maxTime","x","v","samples","step","a","push","Math","round","abs","length","durationMs","points","springCache","Map","getSpringEasing","key","cached","get","easing","join","duration","set","linearSupported","supportsLinearEasing","el","document","createElement","style","transitionTimingFunction","SPRING_FALLBACK_EASING","resolveAnimateValues","props","scale","backgroundColor","buildTransform","vals","parts","isSingleTransition","t","resolveConfigForCss","config","type","resolveDuration","resolveEasing","CSS_PROP_MAP","transform","resolvePerCategoryConfigs","transition","def","undefined","defaultConfig","default","d","s","m","bezier","Array","isArray","keyframeCounter","EaseView","animate","initialAnimate","onTransitionEnd","useHardwareLayer","_useHardwareLayer","transformOrigin","children","resolved","hasInitial","mounted","setMounted","viewRef","animationNameRef","getElement","current","getBoundingClientRect","displayValues","categoryConfigs","singleTransition","loopMode","loop","loopDuration","loopEasing","originX","toFixed","originY","y","transitionCss","Object","keys","filter","cfg","map","handler","e","target","currentTarget","propertyName","finished","addEventListener","removeEventListener","cleanEl","animation","fromValues","toValues","fromTransform","toTransform","name","hasBorderRadius","hasBgColor","fromBlock","Boolean","toBlock","keyframes","styleEl","textContent","head","appendChild","direction","remove","animatedStyle","ref"],"sourceRoot":"../../src","sources":["EaseView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,28 @@ import {
|
|
|
6
6
|
type ColorValue,
|
|
7
7
|
} from 'react-native';
|
|
8
8
|
|
|
9
|
+
type Float = CodegenTypes.Float;
|
|
10
|
+
type Int32 = CodegenTypes.Int32;
|
|
11
|
+
|
|
12
|
+
type NativeTransitionConfig = Readonly<{
|
|
13
|
+
type: string;
|
|
14
|
+
duration: Int32;
|
|
15
|
+
easingBezier: ReadonlyArray<Float>;
|
|
16
|
+
damping: Float;
|
|
17
|
+
stiffness: Float;
|
|
18
|
+
mass: Float;
|
|
19
|
+
loop: string;
|
|
20
|
+
delay: Int32;
|
|
21
|
+
}>;
|
|
22
|
+
|
|
23
|
+
type NativeTransitions = Readonly<{
|
|
24
|
+
defaultConfig: NativeTransitionConfig;
|
|
25
|
+
transform?: NativeTransitionConfig;
|
|
26
|
+
opacity?: NativeTransitionConfig;
|
|
27
|
+
borderRadius?: NativeTransitionConfig;
|
|
28
|
+
backgroundColor?: NativeTransitionConfig;
|
|
29
|
+
}>;
|
|
30
|
+
|
|
9
31
|
export interface NativeProps extends ViewProps {
|
|
10
32
|
// Bitmask of which properties are animated (0 = none, let style handle all)
|
|
11
33
|
animatedProperties?: CodegenTypes.WithDefault<CodegenTypes.Int32, 0>;
|
|
@@ -37,21 +59,8 @@ export interface NativeProps extends ViewProps {
|
|
|
37
59
|
>;
|
|
38
60
|
initialAnimateBackgroundColor?: ColorValue;
|
|
39
61
|
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
'timing' | 'spring' | 'none',
|
|
43
|
-
'timing'
|
|
44
|
-
>;
|
|
45
|
-
transitionDuration?: CodegenTypes.WithDefault<CodegenTypes.Int32, 300>;
|
|
46
|
-
// Easing cubic bezier control points [x1, y1, x2, y2] (default: easeInOut)
|
|
47
|
-
transitionEasingBezier?: ReadonlyArray<CodegenTypes.Float>;
|
|
48
|
-
transitionDamping?: CodegenTypes.WithDefault<CodegenTypes.Float, 15.0>;
|
|
49
|
-
transitionStiffness?: CodegenTypes.WithDefault<CodegenTypes.Float, 120.0>;
|
|
50
|
-
transitionMass?: CodegenTypes.WithDefault<CodegenTypes.Float, 1.0>;
|
|
51
|
-
transitionLoop?: CodegenTypes.WithDefault<
|
|
52
|
-
'none' | 'repeat' | 'reverse',
|
|
53
|
-
'none'
|
|
54
|
-
>;
|
|
62
|
+
// Unified transition config — one struct with per-property configs
|
|
63
|
+
transitions?: NativeTransitions;
|
|
55
64
|
|
|
56
65
|
// Transform origin (0–1 fractions, default center)
|
|
57
66
|
transformOriginX?: CodegenTypes.WithDefault<CodegenTypes.Float, 0.5>;
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EaseView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,
|
|
1
|
+
{"version":3,"names":["EaseView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,YAAY","ignoreList":[]}
|
|
@@ -28,6 +28,8 @@ export type EaseViewProps = ViewProps & {
|
|
|
28
28
|
useHardwareLayer?: boolean;
|
|
29
29
|
/** Pivot point for scale and rotation as 0–1 fractions. @default { x: 0.5, y: 0.5 } (center) */
|
|
30
30
|
transformOrigin?: TransformOrigin;
|
|
31
|
+
/** NativeWind / Tailwind CSS class string. Requires NativeWind in your project. */
|
|
32
|
+
className?: string;
|
|
31
33
|
};
|
|
32
34
|
export declare function EaseView({ animate, initialAnimate, transition, onTransitionEnd, useHardwareLayer, transformOrigin, style, ...rest }: EaseViewProps): import("react/jsx-runtime").JSX.Element;
|
|
33
35
|
//# sourceMappingURL=EaseView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EaseView.d.ts","sourceRoot":"","sources":["../../../src/EaseView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAkB,MAAM,cAAc,CAAC;AAE1E,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"EaseView.d.ts","sourceRoot":"","sources":["../../../src/EaseView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAkB,MAAM,cAAc,CAAC;AAE1E,OAAO,KAAK,EACV,YAAY,EAGZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAiKjB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,wGAAwG;IACxG,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAwB,EACxB,eAAe,EACf,KAAK,EACL,GAAG,IAAI,EACR,EAAE,aAAa,2CA0Hf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
3
|
+
import type { AnimateProps, Transition, TransitionEndEvent, TransformOrigin } from './types';
|
|
4
|
+
export type EaseViewProps = {
|
|
5
|
+
animate?: AnimateProps;
|
|
6
|
+
initialAnimate?: AnimateProps;
|
|
7
|
+
transition?: Transition;
|
|
8
|
+
onTransitionEnd?: (event: TransitionEndEvent) => void;
|
|
9
|
+
/** No-op on web. */
|
|
10
|
+
useHardwareLayer?: boolean;
|
|
11
|
+
transformOrigin?: TransformOrigin;
|
|
12
|
+
style?: StyleProp<ViewStyle>;
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
};
|
|
15
|
+
export declare function EaseView({ animate, initialAnimate, transition, onTransitionEnd, useHardwareLayer: _useHardwareLayer, transformOrigin, style, children, }: EaseViewProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=EaseView.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EaseView.web.d.ts","sourceRoot":"","sources":["../../../src/EaseView.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EACV,YAAY,EAGZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAiGjB,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAoJF,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,aAAa,2CA4Lf"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { type CodegenTypes, type ViewProps, type HostComponent, type ColorValue } from 'react-native';
|
|
2
|
+
type Float = CodegenTypes.Float;
|
|
3
|
+
type Int32 = CodegenTypes.Int32;
|
|
4
|
+
type NativeTransitionConfig = Readonly<{
|
|
5
|
+
type: string;
|
|
6
|
+
duration: Int32;
|
|
7
|
+
easingBezier: ReadonlyArray<Float>;
|
|
8
|
+
damping: Float;
|
|
9
|
+
stiffness: Float;
|
|
10
|
+
mass: Float;
|
|
11
|
+
loop: string;
|
|
12
|
+
delay: Int32;
|
|
13
|
+
}>;
|
|
14
|
+
type NativeTransitions = Readonly<{
|
|
15
|
+
defaultConfig: NativeTransitionConfig;
|
|
16
|
+
transform?: NativeTransitionConfig;
|
|
17
|
+
opacity?: NativeTransitionConfig;
|
|
18
|
+
borderRadius?: NativeTransitionConfig;
|
|
19
|
+
backgroundColor?: NativeTransitionConfig;
|
|
20
|
+
}>;
|
|
2
21
|
export interface NativeProps extends ViewProps {
|
|
3
22
|
animatedProperties?: CodegenTypes.WithDefault<CodegenTypes.Int32, 0>;
|
|
4
23
|
animateOpacity?: CodegenTypes.WithDefault<CodegenTypes.Float, 1.0>;
|
|
@@ -21,13 +40,7 @@ export interface NativeProps extends ViewProps {
|
|
|
21
40
|
initialAnimateRotateY?: CodegenTypes.WithDefault<CodegenTypes.Float, 0.0>;
|
|
22
41
|
initialAnimateBorderRadius?: CodegenTypes.WithDefault<CodegenTypes.Float, 0.0>;
|
|
23
42
|
initialAnimateBackgroundColor?: ColorValue;
|
|
24
|
-
|
|
25
|
-
transitionDuration?: CodegenTypes.WithDefault<CodegenTypes.Int32, 300>;
|
|
26
|
-
transitionEasingBezier?: ReadonlyArray<CodegenTypes.Float>;
|
|
27
|
-
transitionDamping?: CodegenTypes.WithDefault<CodegenTypes.Float, 15.0>;
|
|
28
|
-
transitionStiffness?: CodegenTypes.WithDefault<CodegenTypes.Float, 120.0>;
|
|
29
|
-
transitionMass?: CodegenTypes.WithDefault<CodegenTypes.Float, 1.0>;
|
|
30
|
-
transitionLoop?: CodegenTypes.WithDefault<'none' | 'repeat' | 'reverse', 'none'>;
|
|
43
|
+
transitions?: NativeTransitions;
|
|
31
44
|
transformOriginX?: CodegenTypes.WithDefault<CodegenTypes.Float, 0.5>;
|
|
32
45
|
transformOriginY?: CodegenTypes.WithDefault<CodegenTypes.Float, 0.5>;
|
|
33
46
|
onTransitionEnd?: CodegenTypes.DirectEventHandler<Readonly<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EaseViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/EaseViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,
|
|
1
|
+
{"version":3,"file":"EaseViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/EaseViewNativeComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { EaseView } from './EaseView';
|
|
2
2
|
export type { EaseViewProps } from './EaseView';
|
|
3
|
-
export type { AnimateProps, CubicBezier, Transition, TimingTransition, SpringTransition, NoneTransition, EasingType, TransitionEndEvent, TransformOrigin, } from './types';
|
|
3
|
+
export type { AnimateProps, CubicBezier, Transition, SingleTransition, TransitionMap, TimingTransition, SpringTransition, NoneTransition, EasingType, TransitionEndEvent, TransformOrigin, } from './types';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC"}
|
|
@@ -12,6 +12,8 @@ export type TimingTransition = {
|
|
|
12
12
|
easing?: EasingType;
|
|
13
13
|
/** Loop mode — 'repeat' restarts from the beginning, 'reverse' alternates direction. */
|
|
14
14
|
loop?: 'repeat' | 'reverse';
|
|
15
|
+
/** Delay in milliseconds before the animation starts. @default 0 */
|
|
16
|
+
delay?: number;
|
|
15
17
|
};
|
|
16
18
|
/** Physics-based spring transition. */
|
|
17
19
|
export type SpringTransition = {
|
|
@@ -22,13 +24,30 @@ export type SpringTransition = {
|
|
|
22
24
|
stiffness?: number;
|
|
23
25
|
/** Mass of the object — higher values mean slower, more momentum. @default 1 */
|
|
24
26
|
mass?: number;
|
|
27
|
+
/** Delay in milliseconds before the animation starts. @default 0 */
|
|
28
|
+
delay?: number;
|
|
25
29
|
};
|
|
26
30
|
/** No transition — values are applied immediately without animation. */
|
|
27
31
|
export type NoneTransition = {
|
|
28
32
|
type: 'none';
|
|
29
33
|
};
|
|
30
|
-
/**
|
|
31
|
-
export type
|
|
34
|
+
/** A single animation transition configuration. */
|
|
35
|
+
export type SingleTransition = TimingTransition | SpringTransition | NoneTransition;
|
|
36
|
+
/** Per-property transition map with category-based keys. */
|
|
37
|
+
export type TransitionMap = {
|
|
38
|
+
/** Fallback config for properties not explicitly listed. */
|
|
39
|
+
default?: SingleTransition;
|
|
40
|
+
/** Config for all transform properties (translateX/Y, scaleX/Y, rotate, rotateX/Y). */
|
|
41
|
+
transform?: SingleTransition;
|
|
42
|
+
/** Config for opacity. */
|
|
43
|
+
opacity?: SingleTransition;
|
|
44
|
+
/** Config for borderRadius. */
|
|
45
|
+
borderRadius?: SingleTransition;
|
|
46
|
+
/** Config for backgroundColor. */
|
|
47
|
+
backgroundColor?: SingleTransition;
|
|
48
|
+
};
|
|
49
|
+
/** Animation transition configuration — either a single config or a per-property map. */
|
|
50
|
+
export type Transition = SingleTransition | TransitionMap;
|
|
32
51
|
/** Event fired when the animation ends. */
|
|
33
52
|
export type TransitionEndEvent = {
|
|
34
53
|
/** True if the animation completed naturally, false if interrupted. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,CAAC;AAEhB,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wFAAwF;IACxF,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,CAAC;AAEhB,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wFAAwF;IACxF,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG;IAC1B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,0BAA0B;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,kCAAkC;IAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE1D,2CAA2C;AAC3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG;IAC5B,yEAAyE;IACzE,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,YAAY,GAAG;IACzB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0IAA0I;IAC1I,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B,CAAC"}
|