@animicons/react-native 0.1.1

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/dist/index.js ADDED
@@ -0,0 +1,768 @@
1
+ 'use strict';
2
+
3
+ var React6 = require('react');
4
+ var reactNativeSvg = require('react-native-svg');
5
+ var Animated4 = require('react-native-reanimated');
6
+ var shared = require('@animicons/shared');
7
+ var reactNative = require('react-native');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React6__default = /*#__PURE__*/_interopDefault(React6);
12
+ var Animated4__default = /*#__PURE__*/_interopDefault(Animated4);
13
+
14
+ // src/icons/ui/Pulse.tsx
15
+
16
+ // src/utils/resolveStyle.ts
17
+ function resolveStyle(props, defaults) {
18
+ const base = props.color ?? defaults.defaultColor;
19
+ return {
20
+ stroke: props.strokeColor ?? base,
21
+ fill: props.fillColor ?? base,
22
+ secondaryColor: props.secondaryColor ?? `${base}33`,
23
+ opacity: props.opacity ?? 1,
24
+ strokeWidth: props.strokeWidth ?? defaults.defaultStrokeWidth
25
+ };
26
+ }
27
+ function getAnimDuration(speed = "normal") {
28
+ return shared.DURATION[speed];
29
+ }
30
+
31
+ // src/icons/ui/Pulse.tsx
32
+ var AnimatedCircle = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Circle);
33
+ function usePulseRing(stagger, duration, autoPlay, loop) {
34
+ const r = Animated4.useSharedValue(4);
35
+ const opacity = Animated4.useSharedValue(0.8);
36
+ React6.useEffect(() => {
37
+ if (autoPlay) {
38
+ r.value = Animated4.withDelay(stagger, Animated4.withRepeat(Animated4.withTiming(20, { duration, easing: Animated4.Easing.out(Animated4.Easing.ease) }), loop ? -1 : 1));
39
+ opacity.value = Animated4.withDelay(stagger, Animated4.withRepeat(Animated4.withTiming(0, { duration, easing: Animated4.Easing.out(Animated4.Easing.ease) }), loop ? -1 : 1));
40
+ } else {
41
+ Animated4.cancelAnimation(r);
42
+ Animated4.cancelAnimation(opacity);
43
+ }
44
+ return () => {
45
+ Animated4.cancelAnimation(r);
46
+ Animated4.cancelAnimation(opacity);
47
+ };
48
+ }, [autoPlay, loop, duration, stagger]);
49
+ return { r, opacity };
50
+ }
51
+ var Pulse = ({
52
+ size = 48,
53
+ autoPlay = true,
54
+ loop = true,
55
+ speed = "normal",
56
+ style,
57
+ ...colorProps
58
+ }) => {
59
+ const d = getAnimDuration(speed);
60
+ const s = resolveStyle(colorProps, shared.PulsePaths);
61
+ const ring1 = usePulseRing(0, d.medium, autoPlay, loop);
62
+ const ring2 = usePulseRing(d.stagger, d.medium, autoPlay, loop);
63
+ const ring3 = usePulseRing(d.stagger * 2, d.medium, autoPlay, loop);
64
+ const ap1 = Animated4.useAnimatedProps(() => ({ r: ring1.r.value, opacity: ring1.opacity.value }));
65
+ const ap2 = Animated4.useAnimatedProps(() => ({ r: ring2.r.value, opacity: ring2.opacity.value }));
66
+ const ap3 = Animated4.useAnimatedProps(() => ({ r: ring3.r.value, opacity: ring3.opacity.value }));
67
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.PulsePaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle, { animatedProps: ap1, cx: "24", cy: "24", stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle, { animatedProps: ap2, cx: "24", cy: "24", stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle, { animatedProps: ap3, cx: "24", cy: "24", stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none" }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "24", cy: "24", r: 3, fill: s.stroke, opacity: s.opacity }));
68
+ };
69
+ var AnimatedPath = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
70
+ var Check = ({
71
+ size = 48,
72
+ autoPlay = true,
73
+ loop = false,
74
+ speed = "normal",
75
+ onAnimationEnd,
76
+ style,
77
+ ...colorProps
78
+ }) => {
79
+ const circleProgress = Animated4.useSharedValue(126);
80
+ const checkProgress = Animated4.useSharedValue(30);
81
+ const d = getAnimDuration(speed);
82
+ const s = resolveStyle(colorProps, shared.CheckPaths);
83
+ React6.useEffect(() => {
84
+ if (autoPlay) {
85
+ if (loop) {
86
+ circleProgress.value = Animated4.withRepeat(Animated4.withTiming(0, { duration: d.short, easing: Animated4.Easing.ease }), -1);
87
+ checkProgress.value = Animated4.withRepeat(Animated4.withDelay(d.short * 0.6, Animated4.withTiming(0, { duration: d.short * 0.6, easing: Animated4.Easing.ease })), -1);
88
+ } else {
89
+ circleProgress.value = Animated4.withTiming(0, { duration: d.short, easing: Animated4.Easing.ease });
90
+ checkProgress.value = Animated4.withDelay(d.short * 0.6, Animated4.withTiming(0, { duration: d.short * 0.6, easing: Animated4.Easing.ease }, () => {
91
+ if (onAnimationEnd) Animated4.runOnJS(onAnimationEnd)();
92
+ }));
93
+ }
94
+ } else {
95
+ Animated4.cancelAnimation(circleProgress);
96
+ Animated4.cancelAnimation(checkProgress);
97
+ }
98
+ }, [autoPlay, loop, speed]);
99
+ const circleProps = Animated4.useAnimatedProps(() => ({ strokeDashoffset: circleProgress.value }));
100
+ const checkProps = Animated4.useAnimatedProps(() => ({ strokeDashoffset: checkProgress.value }));
101
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.CheckPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath, { animatedProps: circleProps, d: shared.CheckPaths.circle, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeDasharray: 126, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath, { animatedProps: checkProps, d: shared.CheckPaths.check, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeDasharray: 30, strokeLinecap: "round", opacity: s.opacity }));
102
+ };
103
+ var AnimatedPath2 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
104
+ var Loader = ({
105
+ size = 48,
106
+ autoPlay = true,
107
+ loop = true,
108
+ speed = "normal",
109
+ onAnimationEnd,
110
+ style,
111
+ ...colorProps
112
+ }) => {
113
+ const rotation = Animated4.useSharedValue(0);
114
+ const d = getAnimDuration(speed);
115
+ const s = resolveStyle(colorProps, shared.LoaderPaths);
116
+ React6.useEffect(() => {
117
+ if (autoPlay) {
118
+ rotation.value = Animated4.withRepeat(
119
+ Animated4.withTiming(360, { duration: d.medium, easing: Animated4.Easing.linear }),
120
+ loop ? -1 : 1,
121
+ false,
122
+ () => {
123
+ if (onAnimationEnd) Animated4.runOnJS(onAnimationEnd)();
124
+ }
125
+ );
126
+ } else {
127
+ Animated4.cancelAnimation(rotation);
128
+ }
129
+ return () => {
130
+ Animated4.cancelAnimation(rotation);
131
+ };
132
+ }, [autoPlay, loop, speed, onAnimationEnd]);
133
+ const animatedProps = Animated4.useAnimatedProps(() => ({
134
+ transform: [{ rotate: `${rotation.value}deg` }],
135
+ originX: 24,
136
+ originY: 24
137
+ }));
138
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.LoaderPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(
139
+ AnimatedPath2,
140
+ {
141
+ animatedProps,
142
+ d: shared.LoaderPaths.arc,
143
+ stroke: s.stroke,
144
+ strokeWidth: s.strokeWidth,
145
+ strokeLinecap: "round",
146
+ fill: "none",
147
+ opacity: s.opacity
148
+ }
149
+ ));
150
+ };
151
+ var AnimatedPath3 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
152
+ var Upload = ({
153
+ size = 48,
154
+ autoPlay = true,
155
+ loop = true,
156
+ speed = "normal",
157
+ style,
158
+ ...colorProps
159
+ }) => {
160
+ const translateY = Animated4.useSharedValue(0);
161
+ const barDash = Animated4.useSharedValue(28);
162
+ const d = getAnimDuration(speed);
163
+ const s = resolveStyle(colorProps, shared.UploadPaths);
164
+ React6.useEffect(() => {
165
+ if (autoPlay) {
166
+ translateY.value = Animated4.withRepeat(
167
+ Animated4.withTiming(-6, { duration: d.short, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }),
168
+ loop ? -1 : 1,
169
+ true
170
+ );
171
+ barDash.value = Animated4.withRepeat(
172
+ Animated4.withTiming(0, { duration: d.medium, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }),
173
+ loop ? -1 : 1,
174
+ true
175
+ );
176
+ } else {
177
+ Animated4.cancelAnimation(translateY);
178
+ Animated4.cancelAnimation(barDash);
179
+ }
180
+ }, [autoPlay, loop, speed]);
181
+ const arrowStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ translateY: translateY.value }] }));
182
+ const barProps = Animated4.useAnimatedProps(() => ({ strokeDashoffset: barDash.value }));
183
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.UploadPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: arrowStyle }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.UploadPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.UploadPaths.arrow, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round", opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath3, { animatedProps: barProps, d: shared.UploadPaths.bar, stroke: s.stroke, strokeWidth: s.strokeWidth, strokeLinecap: "round", fill: "none", strokeDasharray: 28, opacity: s.opacity }));
184
+ };
185
+ var AnimatedPath4 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
186
+ var Wifi = ({
187
+ size = 48,
188
+ autoPlay = true,
189
+ loop = true,
190
+ speed = "normal",
191
+ style,
192
+ ...colorProps
193
+ }) => {
194
+ const op1 = Animated4.useSharedValue(0);
195
+ const op2 = Animated4.useSharedValue(0);
196
+ const op3 = Animated4.useSharedValue(0);
197
+ const d = getAnimDuration(speed);
198
+ const s = resolveStyle(colorProps, shared.WifiPaths);
199
+ React6.useEffect(() => {
200
+ if (autoPlay) {
201
+ const anim = (sv, delay) => {
202
+ sv.value = Animated4.withDelay(delay, Animated4.withRepeat(
203
+ Animated4.withTiming(1, { duration: d.medium, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }),
204
+ loop ? -1 : 1,
205
+ true
206
+ ));
207
+ };
208
+ anim(op1, 0);
209
+ anim(op2, d.stagger);
210
+ anim(op3, d.stagger * 2);
211
+ } else {
212
+ Animated4.cancelAnimation(op1);
213
+ Animated4.cancelAnimation(op2);
214
+ Animated4.cancelAnimation(op3);
215
+ }
216
+ return () => {
217
+ Animated4.cancelAnimation(op1);
218
+ Animated4.cancelAnimation(op2);
219
+ Animated4.cancelAnimation(op3);
220
+ };
221
+ }, [autoPlay, loop, speed]);
222
+ const ap1 = Animated4.useAnimatedProps(() => ({ opacity: op1.value }));
223
+ const ap2 = Animated4.useAnimatedProps(() => ({ opacity: op2.value }));
224
+ const ap3 = Animated4.useAnimatedProps(() => ({ opacity: op3.value }));
225
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.WifiPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath4, { animatedProps: ap1, d: shared.WifiPaths.arc1, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath4, { animatedProps: ap2, d: shared.WifiPaths.arc2, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath4, { animatedProps: ap3, d: shared.WifiPaths.arc3, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round" }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "24", cy: "40", r: 2, fill: s.stroke, opacity: s.opacity }));
226
+ };
227
+ var Bell = ({
228
+ size = 48,
229
+ autoPlay = true,
230
+ loop = true,
231
+ speed = "normal",
232
+ style,
233
+ ...colorProps
234
+ }) => {
235
+ const rotation = Animated4.useSharedValue(0);
236
+ const badgeScale = Animated4.useSharedValue(1);
237
+ const d = getAnimDuration(speed);
238
+ const s = resolveStyle(colorProps, shared.BellPaths);
239
+ React6.useEffect(() => {
240
+ if (autoPlay) {
241
+ rotation.value = Animated4.withRepeat(
242
+ Animated4.withSequence(
243
+ Animated4.withTiming(15, { duration: d.long * 0.2 }),
244
+ Animated4.withTiming(-15, { duration: d.long * 0.2 }),
245
+ Animated4.withTiming(8, { duration: d.long * 0.2 }),
246
+ Animated4.withTiming(-8, { duration: d.long * 0.2 }),
247
+ Animated4.withTiming(0, { duration: d.long * 0.2 })
248
+ ),
249
+ loop ? -1 : 1
250
+ );
251
+ badgeScale.value = Animated4.withRepeat(
252
+ Animated4.withSequence(Animated4.withTiming(1.3, { duration: d.long * 0.3 }), Animated4.withTiming(1, { duration: d.long * 0.7 })),
253
+ loop ? -1 : 1
254
+ );
255
+ } else {
256
+ Animated4.cancelAnimation(rotation);
257
+ Animated4.cancelAnimation(badgeScale);
258
+ }
259
+ }, [autoPlay, loop, speed]);
260
+ const bellStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ rotate: `${rotation.value}deg` }] }));
261
+ const badgeStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ scale: badgeScale.value }] }));
262
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.BellPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, bellStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.BellPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.BellPaths.bell, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.BellPaths.clapper, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.BellPaths.handle, stroke: s.stroke, strokeWidth: s.strokeWidth, strokeLinecap: "round", fill: "none", opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, badgeStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.BellPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "34", cy: "12", r: 5, fill: s.stroke, opacity: s.opacity }))));
263
+ };
264
+ var AnimatedPath5 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
265
+ var Star = ({
266
+ size = 48,
267
+ autoPlay = true,
268
+ speed = "normal",
269
+ onAnimationEnd,
270
+ style,
271
+ ...colorProps
272
+ }) => {
273
+ const scaleVal = Animated4.useSharedValue(1);
274
+ const sparkleOp = Animated4.useSharedValue(0);
275
+ const d = getAnimDuration(speed);
276
+ const s = resolveStyle(colorProps, shared.StarPaths);
277
+ const trigger = React6.useCallback(() => {
278
+ scaleVal.value = Animated4.withTiming(1.3, { duration: d.short * 0.5 }, () => {
279
+ scaleVal.value = Animated4.withTiming(1, { duration: d.short * 0.5 }, () => {
280
+ if (onAnimationEnd) Animated4.runOnJS(onAnimationEnd)();
281
+ });
282
+ });
283
+ sparkleOp.value = Animated4.withTiming(1, { duration: d.short * 0.5 }, () => {
284
+ sparkleOp.value = Animated4.withTiming(0, { duration: d.short * 0.5 });
285
+ });
286
+ }, [onAnimationEnd, d.short, scaleVal, sparkleOp]);
287
+ React6.useEffect(() => {
288
+ if (autoPlay) trigger();
289
+ return () => {
290
+ Animated4.cancelAnimation(scaleVal);
291
+ Animated4.cancelAnimation(sparkleOp);
292
+ };
293
+ }, [autoPlay, trigger]);
294
+ const starProps = Animated4.useAnimatedProps(() => ({ transform: [{ scale: scaleVal.value }], originX: 24, originY: 24 }));
295
+ const sparkleProps = Animated4.useAnimatedProps(() => ({ opacity: sparkleOp.value }));
296
+ return /* @__PURE__ */ React6__default.default.createElement(reactNative.Pressable, { onPress: trigger, style }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.StarPaths.viewBox }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath5, { animatedProps: starProps, d: shared.StarPaths.star, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath5, { animatedProps: sparkleProps, d: shared.StarPaths.sparkle1, fill: s.stroke, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath5, { animatedProps: sparkleProps, d: shared.StarPaths.sparkle2, fill: s.stroke, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath5, { animatedProps: sparkleProps, d: shared.StarPaths.sparkle3, fill: s.stroke, opacity: s.opacity })));
297
+ };
298
+ var AnimatedPath6 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
299
+ var Heart = ({
300
+ size = 48,
301
+ autoPlay = true,
302
+ loop = true,
303
+ speed = "normal",
304
+ style,
305
+ ...colorProps
306
+ }) => {
307
+ const scaleVal = Animated4.useSharedValue(1);
308
+ const glowOp = Animated4.useSharedValue(0);
309
+ const d = getAnimDuration(speed);
310
+ const s = resolveStyle(colorProps, shared.HeartPaths);
311
+ React6.useEffect(() => {
312
+ if (autoPlay) {
313
+ const beat = Animated4.withSequence(
314
+ Animated4.withTiming(1.2, { duration: d.short * 0.35, easing: Animated4.Easing.out(Animated4.Easing.ease) }),
315
+ Animated4.withTiming(1, { duration: d.short * 0.35 }),
316
+ Animated4.withTiming(1.15, { duration: d.short * 0.3 }),
317
+ Animated4.withTiming(1, { duration: d.medium - d.short })
318
+ );
319
+ scaleVal.value = Animated4.withRepeat(beat, loop ? -1 : 1);
320
+ glowOp.value = Animated4.withRepeat(
321
+ Animated4.withSequence(
322
+ Animated4.withTiming(0.4, { duration: d.short * 0.35 }),
323
+ Animated4.withTiming(0, { duration: d.medium - d.short * 0.35 })
324
+ ),
325
+ loop ? -1 : 1
326
+ );
327
+ } else {
328
+ Animated4.cancelAnimation(scaleVal);
329
+ Animated4.cancelAnimation(glowOp);
330
+ }
331
+ }, [autoPlay, loop, speed]);
332
+ const heartStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ scale: scaleVal.value }] }));
333
+ const glowProps = Animated4.useAnimatedProps(() => ({ opacity: glowOp.value }));
334
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.HeartPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath6, { animatedProps: glowProps, d: shared.HeartPaths.glow, fill: s.secondaryColor, stroke: "none" }), /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, heartStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.HeartPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.HeartPaths.heart, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.fill, opacity: s.opacity }))));
335
+ };
336
+ var AnimatedPath7 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
337
+ var ECG = ({
338
+ size = 48,
339
+ autoPlay = true,
340
+ loop = true,
341
+ speed = "normal",
342
+ onAnimationEnd,
343
+ style,
344
+ ...colorProps
345
+ }) => {
346
+ const dashOffset = Animated4.useSharedValue(100);
347
+ const opacity = Animated4.useSharedValue(1);
348
+ const d = getAnimDuration(speed);
349
+ const s = resolveStyle(colorProps, shared.ECGPaths);
350
+ React6.useEffect(() => {
351
+ if (autoPlay) {
352
+ dashOffset.value = Animated4.withRepeat(
353
+ Animated4.withTiming(0, { duration: d.long * 0.7, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }),
354
+ loop ? -1 : 1,
355
+ false,
356
+ () => {
357
+ if (!loop && onAnimationEnd) Animated4.runOnJS(onAnimationEnd)();
358
+ }
359
+ );
360
+ opacity.value = Animated4.withRepeat(Animated4.withTiming(0, { duration: d.long * 0.3, easing: Animated4.Easing.ease }), loop ? -1 : 1);
361
+ } else {
362
+ Animated4.cancelAnimation(dashOffset);
363
+ Animated4.cancelAnimation(opacity);
364
+ }
365
+ }, [autoPlay, loop, speed, onAnimationEnd]);
366
+ const animProps = Animated4.useAnimatedProps(() => ({ strokeDashoffset: dashOffset.value, opacity: opacity.value }));
367
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.ECGPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath7, { animatedProps: animProps, d: shared.ECGPaths.line, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round", strokeDasharray: 100 }));
368
+ };
369
+ var AnimatedPath8 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
370
+ var AnimatedCircle2 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Circle);
371
+ var HeartRate = ({
372
+ size = 48,
373
+ autoPlay = true,
374
+ loop = true,
375
+ speed = "normal",
376
+ onAnimationEnd,
377
+ style,
378
+ ...colorProps
379
+ }) => {
380
+ const scaleVal = Animated4.useSharedValue(1);
381
+ const glowR = Animated4.useSharedValue(16);
382
+ const glowOp = Animated4.useSharedValue(0);
383
+ const d = getAnimDuration(speed);
384
+ const s = resolveStyle(colorProps, shared.HeartRatePaths);
385
+ React6.useEffect(() => {
386
+ if (autoPlay) {
387
+ scaleVal.value = Animated4.withRepeat(
388
+ Animated4.withSequence(Animated4.withTiming(1.2, { duration: d.medium * 0.2 }), Animated4.withTiming(1, { duration: d.medium * 0.8 })),
389
+ loop ? -1 : 1,
390
+ false,
391
+ () => {
392
+ if (!loop && onAnimationEnd) Animated4.runOnJS(onAnimationEnd)();
393
+ }
394
+ );
395
+ glowR.value = Animated4.withRepeat(
396
+ Animated4.withSequence(Animated4.withTiming(20, { duration: d.medium * 0.2 }), Animated4.withTiming(16, { duration: d.medium * 0.8 })),
397
+ loop ? -1 : 1
398
+ );
399
+ glowOp.value = Animated4.withRepeat(
400
+ Animated4.withSequence(Animated4.withTiming(0.5, { duration: d.medium * 0.2 }), Animated4.withTiming(0, { duration: d.medium * 0.8 })),
401
+ loop ? -1 : 1
402
+ );
403
+ } else {
404
+ Animated4.cancelAnimation(scaleVal);
405
+ Animated4.cancelAnimation(glowR);
406
+ Animated4.cancelAnimation(glowOp);
407
+ }
408
+ }, [autoPlay, loop, speed, onAnimationEnd]);
409
+ const heartProps = Animated4.useAnimatedProps(() => ({ transform: [{ scale: scaleVal.value }], originX: 24, originY: 24 }));
410
+ const glowProps = Animated4.useAnimatedProps(() => ({ r: glowR.value, opacity: glowOp.value }));
411
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.HeartRatePaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle2, { animatedProps: glowProps, cx: "24", cy: "24", fill: s.secondaryColor }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath8, { animatedProps: heartProps, d: shared.HeartRatePaths.heart, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.fill, opacity: s.opacity }));
412
+ };
413
+ var AnimatedPath9 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
414
+ var Lungs = ({
415
+ size = 48,
416
+ autoPlay = true,
417
+ loop = true,
418
+ speed = "normal",
419
+ style,
420
+ ...colorProps
421
+ }) => {
422
+ const scaleL = Animated4.useSharedValue(1);
423
+ const scaleR = Animated4.useSharedValue(1);
424
+ const d = getAnimDuration(speed);
425
+ const s = resolveStyle(colorProps, shared.LungsPaths);
426
+ React6.useEffect(() => {
427
+ if (autoPlay) {
428
+ scaleL.value = Animated4.withRepeat(Animated4.withTiming(1.08, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
429
+ scaleR.value = Animated4.withRepeat(Animated4.withTiming(1.08, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
430
+ } else {
431
+ Animated4.cancelAnimation(scaleL);
432
+ Animated4.cancelAnimation(scaleR);
433
+ }
434
+ }, [autoPlay, loop, speed]);
435
+ const leftProps = Animated4.useAnimatedProps(() => ({ transform: [{ scaleX: scaleL.value }, { scaleY: scaleL.value }], originX: 16, originY: 26 }));
436
+ const rightProps = Animated4.useAnimatedProps(() => ({ transform: [{ scaleX: scaleR.value }, { scaleY: scaleR.value }], originX: 32, originY: 26 }));
437
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.LungsPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath9, { animatedProps: leftProps, d: shared.LungsPaths.leftLobe, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath9, { animatedProps: rightProps, d: shared.LungsPaths.rightLobe, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.LungsPaths.trunk, stroke: s.stroke, strokeWidth: s.strokeWidth, strokeLinecap: "round", fill: "none", opacity: s.opacity }));
438
+ };
439
+ var AnimatedPath10 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
440
+ var Pill = ({
441
+ size = 48,
442
+ autoPlay = true,
443
+ loop = true,
444
+ speed = "normal",
445
+ style,
446
+ ...colorProps
447
+ }) => {
448
+ const translateY = Animated4.useSharedValue(0);
449
+ const shineOp = Animated4.useSharedValue(0);
450
+ const d = getAnimDuration(speed);
451
+ const s = resolveStyle(colorProps, shared.PillPaths);
452
+ React6.useEffect(() => {
453
+ if (autoPlay) {
454
+ translateY.value = Animated4.withRepeat(Animated4.withTiming(-5, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
455
+ shineOp.value = Animated4.withRepeat(Animated4.withTiming(0.8, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
456
+ } else {
457
+ Animated4.cancelAnimation(translateY);
458
+ Animated4.cancelAnimation(shineOp);
459
+ }
460
+ }, [autoPlay, loop, speed]);
461
+ const bodyStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ translateY: translateY.value }] }));
462
+ const shineProps = Animated4.useAnimatedProps(() => ({ opacity: shineOp.value }));
463
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.PillPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, bodyStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.PillPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.PillPaths.capsule, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.PillPaths.divider, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath10, { animatedProps: shineProps, d: shared.PillPaths.shine, stroke: "white", strokeWidth: 2, fill: "none", strokeLinecap: "round" }));
464
+ };
465
+ var AnimatedPath11 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
466
+ var Thermometer = ({
467
+ size = 48,
468
+ autoPlay = true,
469
+ loop = true,
470
+ speed = "normal",
471
+ style,
472
+ ...colorProps
473
+ }) => {
474
+ const mercuryScale = Animated4.useSharedValue(0.2);
475
+ const tubeRotation = Animated4.useSharedValue(0);
476
+ const d = getAnimDuration(speed);
477
+ const s = resolveStyle(colorProps, shared.ThermometerPaths);
478
+ React6.useEffect(() => {
479
+ if (autoPlay) {
480
+ mercuryScale.value = Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long * 0.7, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
481
+ tubeRotation.value = Animated4.withRepeat(
482
+ Animated4.withSequence(
483
+ Animated4.withTiming(0, { duration: d.long * 0.6 }),
484
+ Animated4.withTiming(3, { duration: d.long * 0.1 }),
485
+ Animated4.withTiming(-3, { duration: d.long * 0.1 }),
486
+ Animated4.withTiming(2, { duration: d.long * 0.1 }),
487
+ Animated4.withTiming(0, { duration: d.long * 0.1 })
488
+ ),
489
+ loop ? -1 : 1
490
+ );
491
+ } else {
492
+ Animated4.cancelAnimation(mercuryScale);
493
+ Animated4.cancelAnimation(tubeRotation);
494
+ }
495
+ }, [autoPlay, loop, speed]);
496
+ const mercuryProps = Animated4.useAnimatedProps(() => ({ transform: [{ scaleY: mercuryScale.value }], originY: 34 }));
497
+ const tubeStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ rotate: `${tubeRotation.value}deg` }] }));
498
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.ThermometerPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, tubeStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.ThermometerPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.ThermometerPaths.tube, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath11, { animatedProps: mercuryProps, d: shared.ThermometerPaths.mercury, fill: s.fill, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "24", cy: "40", r: 5, fill: s.fill, opacity: s.opacity }));
499
+ };
500
+ var AnimatedPath12 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
501
+ var DNA = ({
502
+ size = 48,
503
+ autoPlay = true,
504
+ loop = true,
505
+ speed = "normal",
506
+ style,
507
+ ...colorProps
508
+ }) => {
509
+ const translateY = Animated4.useSharedValue(0);
510
+ const d = getAnimDuration(speed);
511
+ const s = resolveStyle(colorProps, shared.DNAPaths);
512
+ React6.useEffect(() => {
513
+ if (autoPlay) {
514
+ translateY.value = Animated4.withRepeat(Animated4.withTiming(-16, { duration: d.medium, easing: Animated4.Easing.linear }), loop ? -1 : 1, true);
515
+ } else {
516
+ Animated4.cancelAnimation(translateY);
517
+ }
518
+ }, [autoPlay, loop, speed]);
519
+ const animProps = Animated4.useAnimatedProps(() => ({ transform: [{ translateY: translateY.value }] }));
520
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.DNAPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath12, { animatedProps: animProps, d: shared.DNAPaths.strand1, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath12, { animatedProps: animProps, d: shared.DNAPaths.strand2, stroke: s.secondaryColor, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath12, { animatedProps: animProps, d: `${shared.DNAPaths.rung1} ${shared.DNAPaths.rung2} ${shared.DNAPaths.rung3}`, stroke: s.stroke, strokeWidth: 1.5, fill: "none", strokeLinecap: "round", opacity: s.opacity * 0.6 }));
521
+ };
522
+ var AnimatedPath13 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
523
+ var Syringe = ({
524
+ size = 48,
525
+ autoPlay = true,
526
+ loop = true,
527
+ speed = "normal",
528
+ style,
529
+ ...colorProps
530
+ }) => {
531
+ const plungerX = Animated4.useSharedValue(0);
532
+ const liquidScale = Animated4.useSharedValue(1);
533
+ const dropOp = Animated4.useSharedValue(0);
534
+ const dropY = Animated4.useSharedValue(0);
535
+ const d = getAnimDuration(speed);
536
+ const s = resolveStyle(colorProps, shared.SyringePaths);
537
+ React6.useEffect(() => {
538
+ if (autoPlay) {
539
+ plungerX.value = Animated4.withRepeat(Animated4.withSequence(Animated4.withTiming(8, { duration: d.long * 0.5 }), Animated4.withTiming(0, { duration: d.long * 0.5 })), loop ? -1 : 1);
540
+ liquidScale.value = Animated4.withRepeat(Animated4.withSequence(Animated4.withTiming(0.3, { duration: d.long * 0.5 }), Animated4.withTiming(1, { duration: d.long * 0.5 })), loop ? -1 : 1);
541
+ dropOp.value = Animated4.withRepeat(Animated4.withSequence(Animated4.withTiming(0, { duration: d.long * 0.49 }), Animated4.withTiming(1, { duration: d.long * 0.01 }), Animated4.withTiming(0, { duration: d.long * 0.5 })), loop ? -1 : 1);
542
+ dropY.value = Animated4.withRepeat(Animated4.withSequence(Animated4.withTiming(0, { duration: d.long * 0.5 }), Animated4.withTiming(6, { duration: d.long * 0.5 })), loop ? -1 : 1);
543
+ } else {
544
+ Animated4.cancelAnimation(plungerX);
545
+ Animated4.cancelAnimation(liquidScale);
546
+ Animated4.cancelAnimation(dropOp);
547
+ Animated4.cancelAnimation(dropY);
548
+ }
549
+ }, [autoPlay, loop, speed]);
550
+ const plungerStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ translateX: plungerX.value }] }));
551
+ const liquidProps = Animated4.useAnimatedProps(() => ({ transform: [{ scaleX: liquidScale.value }], originX: 14 }));
552
+ const dropProps = Animated4.useAnimatedProps(() => ({ opacity: dropOp.value, transform: [{ translateY: dropY.value }] }));
553
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.SyringePaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.SyringePaths.barrel, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath13, { animatedProps: liquidProps, d: shared.SyringePaths.liquid, fill: s.fill, opacity: s.opacity * 0.7 }), /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, plungerStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.SyringePaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.SyringePaths.plunger, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.SyringePaths.needle, stroke: s.stroke, strokeWidth: s.strokeWidth, strokeLinecap: "round", fill: "none", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath13, { animatedProps: dropProps, d: shared.SyringePaths.drop, fill: s.fill }));
554
+ };
555
+ var AnimatedCircle3 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Circle);
556
+ var Brain = ({
557
+ size = 48,
558
+ autoPlay = true,
559
+ loop = true,
560
+ speed = "normal",
561
+ style,
562
+ ...colorProps
563
+ }) => {
564
+ const n1r = Animated4.useSharedValue(3);
565
+ const n1op = Animated4.useSharedValue(0.2);
566
+ const n2r = Animated4.useSharedValue(3);
567
+ const n2op = Animated4.useSharedValue(0.2);
568
+ const n3r = Animated4.useSharedValue(3);
569
+ const n3op = Animated4.useSharedValue(0.2);
570
+ const d = getAnimDuration(speed);
571
+ const s = resolveStyle(colorProps, shared.BrainPaths);
572
+ React6.useEffect(() => {
573
+ if (autoPlay) {
574
+ const fire = (r, op, delay) => {
575
+ r.value = Animated4.withDelay(delay, Animated4.withRepeat(Animated4.withTiming(4.5, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true));
576
+ op.value = Animated4.withDelay(delay, Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true));
577
+ };
578
+ fire(n1r, n1op, 0);
579
+ fire(n2r, n2op, d.stagger);
580
+ fire(n3r, n3op, d.stagger * 2);
581
+ } else {
582
+ [n1r, n2r, n3r, n1op, n2op, n3op].forEach((sv) => Animated4.cancelAnimation(sv));
583
+ }
584
+ return () => {
585
+ [n1r, n2r, n3r, n1op, n2op, n3op].forEach((sv) => Animated4.cancelAnimation(sv));
586
+ };
587
+ }, [autoPlay, loop, speed]);
588
+ const ap1 = Animated4.useAnimatedProps(() => ({ r: n1r.value, opacity: n1op.value }));
589
+ const ap2 = Animated4.useAnimatedProps(() => ({ r: n2r.value, opacity: n2op.value }));
590
+ const ap3 = Animated4.useAnimatedProps(() => ({ r: n3r.value, opacity: n3op.value }));
591
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.BrainPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.BrainPaths.left, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.BrainPaths.right, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, strokeLinecap: "round", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: `${shared.BrainPaths.synapse1} ${shared.BrainPaths.synapse2}`, stroke: s.stroke, strokeWidth: 1, fill: "none", opacity: s.opacity * 0.5 }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle3, { animatedProps: ap1, cx: "16", cy: "20", fill: s.fill }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle3, { animatedProps: ap2, cx: "24", cy: "16", fill: s.fill }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle3, { animatedProps: ap3, cx: "32", cy: "20", fill: s.fill }));
592
+ };
593
+ var AnimatedPath14 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
594
+ var AnimatedCircle4 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Circle);
595
+ var BloodDrop = ({
596
+ size = 48,
597
+ autoPlay = true,
598
+ loop = true,
599
+ speed = "normal",
600
+ style,
601
+ ...colorProps
602
+ }) => {
603
+ const scaleY = Animated4.useSharedValue(1);
604
+ const r1 = Animated4.useSharedValue(6);
605
+ const op1 = Animated4.useSharedValue(0.6);
606
+ const r2 = Animated4.useSharedValue(6);
607
+ const op2 = Animated4.useSharedValue(0.6);
608
+ const d = getAnimDuration(speed);
609
+ const s = resolveStyle(colorProps, shared.BloodDropPaths);
610
+ React6.useEffect(() => {
611
+ if (autoPlay) {
612
+ scaleY.value = Animated4.withRepeat(Animated4.withTiming(0.85, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
613
+ r1.value = Animated4.withRepeat(Animated4.withTiming(10, { duration: d.long, easing: Animated4.Easing.out(Animated4.Easing.ease) }), loop ? -1 : 1);
614
+ op1.value = Animated4.withRepeat(Animated4.withTiming(0, { duration: d.long }), loop ? -1 : 1);
615
+ r2.value = Animated4.withDelay(d.stagger, Animated4.withRepeat(Animated4.withTiming(10, { duration: d.long, easing: Animated4.Easing.out(Animated4.Easing.ease) }), loop ? -1 : 1));
616
+ op2.value = Animated4.withDelay(d.stagger, Animated4.withRepeat(Animated4.withTiming(0, { duration: d.long }), loop ? -1 : 1));
617
+ } else {
618
+ [scaleY, r1, op1, r2, op2].forEach((sv) => Animated4.cancelAnimation(sv));
619
+ }
620
+ }, [autoPlay, loop, speed]);
621
+ const dropProps = Animated4.useAnimatedProps(() => ({ transform: [{ scaleY: scaleY.value }], originY: 28 }));
622
+ const rip1Props = Animated4.useAnimatedProps(() => ({ r: r1.value, opacity: op1.value }));
623
+ const rip2Props = Animated4.useAnimatedProps(() => ({ r: r2.value, opacity: op2.value }));
624
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.BloodDropPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath14, { animatedProps: dropProps, d: shared.BloodDropPaths.drop, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.fill, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle4, { animatedProps: rip1Props, cx: "24", cy: "42", stroke: s.stroke, strokeWidth: 1.5, fill: "none" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle4, { animatedProps: rip2Props, cx: "24", cy: "42", stroke: s.stroke, strokeWidth: 1.5, fill: "none" }));
625
+ };
626
+ var AnimatedPath15 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
627
+ var Steps = ({
628
+ size = 48,
629
+ autoPlay = true,
630
+ loop = true,
631
+ speed = "normal",
632
+ style,
633
+ ...colorProps
634
+ }) => {
635
+ const op1 = Animated4.useSharedValue(0.3);
636
+ const op2 = Animated4.useSharedValue(1);
637
+ const d = getAnimDuration(speed);
638
+ const s = resolveStyle(colorProps, shared.StepsPaths);
639
+ React6.useEffect(() => {
640
+ if (autoPlay) {
641
+ op1.value = Animated4.withRepeat(Animated4.withTiming(1, { duration: d.medium, easing: Animated4.Easing.ease }), loop ? -1 : 1, true);
642
+ op2.value = Animated4.withRepeat(Animated4.withTiming(0.3, { duration: d.medium, easing: Animated4.Easing.ease }), loop ? -1 : 1, true);
643
+ } else {
644
+ Animated4.cancelAnimation(op1);
645
+ Animated4.cancelAnimation(op2);
646
+ }
647
+ }, [autoPlay, loop, speed]);
648
+ const f1Props = Animated4.useAnimatedProps(() => ({ opacity: op1.value }));
649
+ const f2Props = Animated4.useAnimatedProps(() => ({ opacity: op2.value }));
650
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.StepsPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(AnimatedPath15, { animatedProps: f1Props, d: `${shared.StepsPaths.foot1} ${shared.StepsPaths.toe1a} ${shared.StepsPaths.toe1b}`, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.fill, strokeLinecap: "round" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath15, { animatedProps: f2Props, d: `${shared.StepsPaths.foot2} ${shared.StepsPaths.toe2a} ${shared.StepsPaths.toe2b}`, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.fill, strokeLinecap: "round" }));
651
+ };
652
+ var AnimatedPath16 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
653
+ var Sleep = ({
654
+ size = 48,
655
+ autoPlay = true,
656
+ loop = true,
657
+ speed = "normal",
658
+ style,
659
+ ...colorProps
660
+ }) => {
661
+ const moonScale = Animated4.useSharedValue(1);
662
+ const star1Op = Animated4.useSharedValue(0.3);
663
+ const star2Op = Animated4.useSharedValue(0.3);
664
+ const z1Y = Animated4.useSharedValue(0);
665
+ const z1Op = Animated4.useSharedValue(0);
666
+ const z2Y = Animated4.useSharedValue(0);
667
+ const z2Op = Animated4.useSharedValue(0);
668
+ const d = getAnimDuration(speed);
669
+ const s = resolveStyle(colorProps, shared.SleepPaths);
670
+ React6.useEffect(() => {
671
+ if (autoPlay) {
672
+ moonScale.value = Animated4.withRepeat(Animated4.withTiming(1.05, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
673
+ star1Op.value = Animated4.withDelay(d.stagger, Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long }), loop ? -1 : 1, true));
674
+ star2Op.value = Animated4.withDelay(d.stagger * 2, Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long }), loop ? -1 : 1, true));
675
+ z1Op.value = Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long * 0.5 }), loop ? -1 : 1, true);
676
+ z1Y.value = Animated4.withRepeat(Animated4.withTiming(-12, { duration: d.long }), loop ? -1 : 1);
677
+ z2Op.value = Animated4.withDelay(d.stagger, Animated4.withRepeat(Animated4.withTiming(1, { duration: d.long * 0.5 }), loop ? -1 : 1, true));
678
+ z2Y.value = Animated4.withDelay(d.stagger, Animated4.withRepeat(Animated4.withTiming(-12, { duration: d.long }), loop ? -1 : 1));
679
+ } else {
680
+ [moonScale, star1Op, star2Op, z1Y, z1Op, z2Y, z2Op].forEach((sv) => Animated4.cancelAnimation(sv));
681
+ }
682
+ }, [autoPlay, loop, speed]);
683
+ const moonStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ scale: moonScale.value }] }));
684
+ const star1Props = Animated4.useAnimatedProps(() => ({ opacity: star1Op.value }));
685
+ const star2Props = Animated4.useAnimatedProps(() => ({ opacity: star2Op.value }));
686
+ const z1Props = Animated4.useAnimatedProps(() => ({ opacity: z1Op.value, transform: [{ translateY: z1Y.value }] }));
687
+ const z2Props = Animated4.useAnimatedProps(() => ({ opacity: z2Op.value, transform: [{ translateY: z2Y.value }] }));
688
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.SleepPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, moonStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.SleepPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.SleepPaths.moon, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath16, { animatedProps: star1Props, d: shared.SleepPaths.star1, fill: s.fill, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath16, { animatedProps: star2Props, d: shared.SleepPaths.star2, fill: s.fill, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath16, { animatedProps: z1Props, d: shared.SleepPaths.z1, stroke: s.stroke, strokeWidth: 2, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath16, { animatedProps: z2Props, d: shared.SleepPaths.z2, stroke: s.stroke, strokeWidth: 1.5, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }));
689
+ };
690
+ var AnimatedCircle5 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Circle);
691
+ var Oxygen = ({
692
+ size = 48,
693
+ autoPlay = true,
694
+ loop = true,
695
+ speed = "normal",
696
+ style,
697
+ ...colorProps
698
+ }) => {
699
+ const rotation = Animated4.useSharedValue(0);
700
+ const d = getAnimDuration(speed);
701
+ const s = resolveStyle(colorProps, shared.OxygenPaths);
702
+ React6.useEffect(() => {
703
+ if (autoPlay) {
704
+ rotation.value = Animated4.withRepeat(Animated4.withTiming(360, { duration: d.long, easing: Animated4.Easing.linear }), loop ? -1 : 1);
705
+ } else {
706
+ Animated4.cancelAnimation(rotation);
707
+ }
708
+ return () => {
709
+ Animated4.cancelAnimation(rotation);
710
+ };
711
+ }, [autoPlay, loop, speed]);
712
+ const electronProps = Animated4.useAnimatedProps(() => ({
713
+ transform: [{ rotate: `${rotation.value}deg` }],
714
+ originX: 24,
715
+ originY: 24
716
+ }));
717
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.OxygenPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.OxygenPaths.orbit, stroke: s.secondaryColor, strokeWidth: 1, fill: "none", strokeDasharray: "3 3", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "18", cy: "20", r: 4, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Circle, { cx: "26", cy: "20", r: 4, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.OxygenPaths.bond, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(AnimatedCircle5, { animatedProps: electronProps, cx: "40", cy: "24", r: 2.5, fill: s.fill, opacity: s.opacity }));
718
+ };
719
+ var AnimatedPath17 = Animated4__default.default.createAnimatedComponent(reactNativeSvg.Path);
720
+ var Medkit = ({
721
+ size = 48,
722
+ autoPlay = true,
723
+ loop = true,
724
+ speed = "normal",
725
+ style,
726
+ ...colorProps
727
+ }) => {
728
+ const bodyY = Animated4.useSharedValue(0);
729
+ const crossScale = Animated4.useSharedValue(1);
730
+ const d = getAnimDuration(speed);
731
+ const s = resolveStyle(colorProps, shared.MedkitPaths);
732
+ React6.useEffect(() => {
733
+ if (autoPlay) {
734
+ bodyY.value = Animated4.withRepeat(Animated4.withTiming(-5, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
735
+ crossScale.value = Animated4.withRepeat(Animated4.withTiming(1.2, { duration: d.long, easing: Animated4.Easing.inOut(Animated4.Easing.ease) }), loop ? -1 : 1, true);
736
+ } else {
737
+ Animated4.cancelAnimation(bodyY);
738
+ Animated4.cancelAnimation(crossScale);
739
+ }
740
+ }, [autoPlay, loop, speed]);
741
+ const bodyStyle = Animated4.useAnimatedStyle(() => ({ transform: [{ translateY: bodyY.value }] }));
742
+ const crossProps = Animated4.useAnimatedProps(() => ({ transform: [{ scale: crossScale.value }], originX: 24, originY: 27 }));
743
+ return /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.MedkitPaths.viewBox, style }, /* @__PURE__ */ React6__default.default.createElement(Animated4__default.default.View, { style: [{ position: "absolute" }, bodyStyle] }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Svg, { width: size, height: size, viewBox: shared.MedkitPaths.viewBox, style: { position: "absolute" } }, /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.MedkitPaths.box, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: s.secondaryColor, opacity: s.opacity }), /* @__PURE__ */ React6__default.default.createElement(reactNativeSvg.Path, { d: shared.MedkitPaths.handle, stroke: s.stroke, strokeWidth: s.strokeWidth, fill: "none", strokeLinecap: "round", opacity: s.opacity }))), /* @__PURE__ */ React6__default.default.createElement(AnimatedPath17, { animatedProps: crossProps, d: `${shared.MedkitPaths.crossV} ${shared.MedkitPaths.crossH}`, stroke: s.fill, strokeWidth: 3, strokeLinecap: "round", fill: "none", opacity: s.opacity }));
744
+ };
745
+
746
+ exports.Bell = Bell;
747
+ exports.BloodDrop = BloodDrop;
748
+ exports.Brain = Brain;
749
+ exports.Check = Check;
750
+ exports.DNA = DNA;
751
+ exports.ECG = ECG;
752
+ exports.Heart = Heart;
753
+ exports.HeartRate = HeartRate;
754
+ exports.Loader = Loader;
755
+ exports.Lungs = Lungs;
756
+ exports.Medkit = Medkit;
757
+ exports.Oxygen = Oxygen;
758
+ exports.Pill = Pill;
759
+ exports.Pulse = Pulse;
760
+ exports.Sleep = Sleep;
761
+ exports.Star = Star;
762
+ exports.Steps = Steps;
763
+ exports.Syringe = Syringe;
764
+ exports.Thermometer = Thermometer;
765
+ exports.Upload = Upload;
766
+ exports.Wifi = Wifi;
767
+ exports.getAnimDuration = getAnimDuration;
768
+ exports.resolveStyle = resolveStyle;