@idealyst/animate 1.2.73 → 1.2.75

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 (2) hide show
  1. package/package.json +3 -3
  2. package/src/types.ts +125 -21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idealyst/animate",
3
- "version": "1.2.73",
3
+ "version": "1.2.75",
4
4
  "description": "Cross-platform animation hooks for React and React Native",
5
5
  "readme": "README.md",
6
6
  "main": "src/index.ts",
@@ -30,7 +30,7 @@
30
30
  "publish:npm": "npm publish"
31
31
  },
32
32
  "peerDependencies": {
33
- "@idealyst/theme": "^1.2.73",
33
+ "@idealyst/theme": "^1.2.75",
34
34
  "react": ">=16.8.0",
35
35
  "react-native": ">=0.60.0",
36
36
  "react-native-reanimated": ">=3.0.0",
@@ -48,7 +48,7 @@
48
48
  }
49
49
  },
50
50
  "devDependencies": {
51
- "@idealyst/theme": "^1.2.73",
51
+ "@idealyst/theme": "^1.2.75",
52
52
  "@types/react": "^19.1.0",
53
53
  "react": "^19.1.0",
54
54
  "react-native": "^0.80.1",
package/src/types.ts CHANGED
@@ -59,49 +59,153 @@ export interface TransformObject {
59
59
  perspective?: number;
60
60
  }
61
61
 
62
- // Animatable properties (subset that can be animated smoothly)
62
+ /**
63
+ * All animatable style properties.
64
+ * Includes properties from ViewStyle, TextStyle, and ImageStyle that can be animated.
65
+ */
63
66
  export interface AnimatableProperties {
64
- // Opacity
67
+ // ============================================
68
+ // OPACITY (GPU accelerated)
69
+ // ============================================
65
70
  opacity?: number;
66
71
 
67
- // Background
68
- backgroundColor?: string;
72
+ // ============================================
73
+ // TRANSFORM (GPU accelerated - preferred)
74
+ // ============================================
75
+ /**
76
+ * Transform - preferred for performance (GPU accelerated).
77
+ * Accepts either the new object syntax or legacy array format.
78
+ *
79
+ * @example
80
+ * // New object syntax (recommended)
81
+ * transform: { x: 10, y: 20, scale: 1.2, rotate: 45 }
82
+ *
83
+ * // Legacy array syntax (still supported)
84
+ * transform: [{ translateX: 10 }, { translateY: 20 }, { scale: 1.2 }]
85
+ */
86
+ transform?: TransformObject | TransformProperty[];
69
87
 
70
- // Border
88
+ // ============================================
89
+ // COLORS
90
+ // ============================================
91
+ backgroundColor?: string;
71
92
  borderColor?: string;
93
+ borderTopColor?: string;
94
+ borderRightColor?: string;
95
+ borderBottomColor?: string;
96
+ borderLeftColor?: string;
97
+ borderStartColor?: string;
98
+ borderEndColor?: string;
99
+ color?: string;
100
+ textDecorationColor?: string;
101
+ textShadowColor?: string;
102
+ shadowColor?: string;
103
+ tintColor?: string;
104
+ overlayColor?: string;
105
+
106
+ // ============================================
107
+ // BORDER WIDTH
108
+ // ============================================
72
109
  borderWidth?: number;
110
+ borderTopWidth?: number;
111
+ borderRightWidth?: number;
112
+ borderBottomWidth?: number;
113
+ borderLeftWidth?: number;
114
+ borderStartWidth?: number;
115
+ borderEndWidth?: number;
116
+
117
+ // ============================================
118
+ // BORDER RADIUS
119
+ // ============================================
73
120
  borderRadius?: number;
74
121
  borderTopLeftRadius?: number;
75
122
  borderTopRightRadius?: number;
76
123
  borderBottomLeftRadius?: number;
77
124
  borderBottomRightRadius?: number;
125
+ borderTopStartRadius?: number;
126
+ borderTopEndRadius?: number;
127
+ borderBottomStartRadius?: number;
128
+ borderBottomEndRadius?: number;
78
129
 
79
- // Dimensions (use sparingly - triggers layout)
130
+ // ============================================
131
+ // DIMENSIONS
132
+ // ============================================
80
133
  width?: number | string;
81
134
  height?: number | string;
82
- maxHeight?: number | string;
135
+ minWidth?: number | string;
83
136
  maxWidth?: number | string;
84
137
  minHeight?: number | string;
85
- minWidth?: number | string;
138
+ maxHeight?: number | string;
86
139
 
87
- // Positioning (use sparingly - triggers layout)
140
+ // ============================================
141
+ // POSITIONING
142
+ // ============================================
88
143
  top?: number | string;
89
144
  right?: number | string;
90
145
  bottom?: number | string;
91
146
  left?: number | string;
147
+ start?: number | string;
148
+ end?: number | string;
92
149
 
93
- /**
94
- * Transform - preferred for performance (GPU accelerated).
95
- * Accepts either the new object syntax or legacy array format.
96
- *
97
- * @example
98
- * // New object syntax (recommended)
99
- * transform: { x: 10, y: 20, scale: 1.2, rotate: 45 }
100
- *
101
- * // Legacy array syntax (still supported)
102
- * transform: [{ translateX: 10 }, { translateY: 20 }, { scale: 1.2 }]
103
- */
104
- transform?: TransformObject | TransformProperty[];
150
+ // ============================================
151
+ // MARGIN
152
+ // ============================================
153
+ margin?: number | string;
154
+ marginTop?: number | string;
155
+ marginRight?: number | string;
156
+ marginBottom?: number | string;
157
+ marginLeft?: number | string;
158
+ marginStart?: number | string;
159
+ marginEnd?: number | string;
160
+ marginHorizontal?: number | string;
161
+ marginVertical?: number | string;
162
+
163
+ // ============================================
164
+ // PADDING
165
+ // ============================================
166
+ padding?: number | string;
167
+ paddingTop?: number | string;
168
+ paddingRight?: number | string;
169
+ paddingBottom?: number | string;
170
+ paddingLeft?: number | string;
171
+ paddingStart?: number | string;
172
+ paddingEnd?: number | string;
173
+ paddingHorizontal?: number | string;
174
+ paddingVertical?: number | string;
175
+
176
+ // ============================================
177
+ // GAP (Flexbox)
178
+ // ============================================
179
+ gap?: number | string;
180
+ rowGap?: number | string;
181
+ columnGap?: number | string;
182
+
183
+ // ============================================
184
+ // FLEX
185
+ // ============================================
186
+ flex?: number;
187
+ flexGrow?: number;
188
+ flexShrink?: number;
189
+ flexBasis?: number | string;
190
+
191
+ // ============================================
192
+ // SHADOW (iOS)
193
+ // ============================================
194
+ shadowOpacity?: number;
195
+ shadowRadius?: number;
196
+
197
+ // ============================================
198
+ // TEXT
199
+ // ============================================
200
+ fontSize?: number;
201
+ letterSpacing?: number;
202
+ lineHeight?: number;
203
+ textShadowRadius?: number;
204
+
205
+ // ============================================
206
+ // IMAGE
207
+ // ============================================
208
+ resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';
105
209
  }
106
210
 
107
211
  // Animation configuration