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.
@@ -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
- // Transition config
41
- transitionType?: CodegenTypes.WithDefault<
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>;
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export { EaseView } from "./EaseView.js";
3
+ export { EaseView } from './EaseView';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EaseView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,eAAY","ignoreList":[]}
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,EAEZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAoDjB,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;CACnC,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,2CAsKf"}
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
- transitionType?: CodegenTypes.WithDefault<'timing' | 'spring' | 'none', 'timing'>;
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":"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"}
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
- /** Animation transition configuration. */
31
- export type Transition = TimingTransition | SpringTransition | NoneTransition;
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;CAC7B,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;CACf,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAE9E,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"}
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"}