react-native-confetti-reanimated 0.1.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.
Files changed (54) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +277 -0
  3. package/lib/commonjs/ConfettiCanvas.js +89 -0
  4. package/lib/commonjs/ConfettiCanvas.js.map +1 -0
  5. package/lib/commonjs/ConfettiParticle.js +116 -0
  6. package/lib/commonjs/ConfettiParticle.js.map +1 -0
  7. package/lib/commonjs/index.js +27 -0
  8. package/lib/commonjs/index.js.map +1 -0
  9. package/lib/commonjs/package.json +1 -0
  10. package/lib/commonjs/presets.js +146 -0
  11. package/lib/commonjs/presets.js.map +1 -0
  12. package/lib/commonjs/types.js +2 -0
  13. package/lib/commonjs/types.js.map +1 -0
  14. package/lib/commonjs/useConfetti.js +27 -0
  15. package/lib/commonjs/useConfetti.js.map +1 -0
  16. package/lib/commonjs/utils.js +125 -0
  17. package/lib/commonjs/utils.js.map +1 -0
  18. package/lib/module/ConfettiCanvas.js +84 -0
  19. package/lib/module/ConfettiCanvas.js.map +1 -0
  20. package/lib/module/ConfettiParticle.js +110 -0
  21. package/lib/module/ConfettiParticle.js.map +1 -0
  22. package/lib/module/index.js +6 -0
  23. package/lib/module/index.js.map +1 -0
  24. package/lib/module/package.json +1 -0
  25. package/lib/module/presets.js +142 -0
  26. package/lib/module/presets.js.map +1 -0
  27. package/lib/module/types.js +2 -0
  28. package/lib/module/types.js.map +1 -0
  29. package/lib/module/useConfetti.js +22 -0
  30. package/lib/module/useConfetti.js.map +1 -0
  31. package/lib/module/utils.js +116 -0
  32. package/lib/module/utils.js.map +1 -0
  33. package/lib/typescript/ConfettiCanvas.d.ts +20 -0
  34. package/lib/typescript/ConfettiCanvas.d.ts.map +1 -0
  35. package/lib/typescript/ConfettiParticle.d.ts +10 -0
  36. package/lib/typescript/ConfettiParticle.d.ts.map +1 -0
  37. package/lib/typescript/index.d.ts +6 -0
  38. package/lib/typescript/index.d.ts.map +1 -0
  39. package/lib/typescript/presets.d.ts +52 -0
  40. package/lib/typescript/presets.d.ts.map +1 -0
  41. package/lib/typescript/types.d.ts +118 -0
  42. package/lib/typescript/types.d.ts.map +1 -0
  43. package/lib/typescript/useConfetti.d.ts +11 -0
  44. package/lib/typescript/useConfetti.d.ts.map +1 -0
  45. package/lib/typescript/utils.d.ts +24 -0
  46. package/lib/typescript/utils.d.ts.map +1 -0
  47. package/package.json +78 -0
  48. package/src/ConfettiCanvas.tsx +121 -0
  49. package/src/ConfettiParticle.tsx +141 -0
  50. package/src/index.tsx +6 -0
  51. package/src/presets.ts +126 -0
  52. package/src/types.ts +137 -0
  53. package/src/useConfetti.ts +25 -0
  54. package/src/utils.ts +135 -0
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stars = exports.snow = exports.schoolPride = exports.rightCannon = exports.realistic = exports.presets = exports.leftCannon = exports.fireworks = exports.celebration = exports.bottomCannon = void 0;
7
+ /**
8
+ * Predefined confetti presets for common use cases
9
+ */
10
+
11
+ /**
12
+ * Basic celebration with confetti from the center
13
+ */
14
+ const celebration = exports.celebration = {
15
+ particleCount: 100,
16
+ spread: 70,
17
+ origin: {
18
+ y: 0.6
19
+ }
20
+ };
21
+
22
+ /**
23
+ * Fireworks effect
24
+ */
25
+ const fireworks = exports.fireworks = {
26
+ particleCount: 150,
27
+ spread: 360,
28
+ startVelocity: 30,
29
+ decay: 0.94,
30
+ scalar: 1.2
31
+ };
32
+
33
+ /**
34
+ * Confetti from the bottom
35
+ */
36
+ const bottomCannon = exports.bottomCannon = {
37
+ particleCount: 50,
38
+ angle: 60,
39
+ spread: 55,
40
+ origin: {
41
+ y: 0.8,
42
+ x: 0.5
43
+ },
44
+ startVelocity: 55
45
+ };
46
+
47
+ /**
48
+ * Confetti from left side
49
+ */
50
+ const leftCannon = exports.leftCannon = {
51
+ particleCount: 50,
52
+ angle: 45,
53
+ spread: 55,
54
+ origin: {
55
+ x: 0,
56
+ y: 0.6
57
+ },
58
+ startVelocity: 55
59
+ };
60
+
61
+ /**
62
+ * Confetti from right side
63
+ */
64
+ const rightCannon = exports.rightCannon = {
65
+ particleCount: 50,
66
+ angle: 135,
67
+ spread: 55,
68
+ origin: {
69
+ x: 1,
70
+ y: 0.6
71
+ },
72
+ startVelocity: 55
73
+ };
74
+
75
+ /**
76
+ * Realistic looking confetti
77
+ */
78
+ const realistic = exports.realistic = {
79
+ particleCount: 200,
80
+ spread: 160,
81
+ origin: {
82
+ y: 0.5
83
+ },
84
+ startVelocity: 35,
85
+ gravity: 1.5,
86
+ drift: 1,
87
+ tilt: true,
88
+ shapes: ['square', 'circle', 'triangle'],
89
+ scalar: 0.8
90
+ };
91
+
92
+ /**
93
+ * Snow effect
94
+ */
95
+ const snow = exports.snow = {
96
+ particleCount: 100,
97
+ spread: 180,
98
+ origin: {
99
+ y: -0.1
100
+ },
101
+ startVelocity: 0,
102
+ gravity: 0.3,
103
+ drift: 1,
104
+ colors: ['#ffffff', '#e8f4ff', '#c9e5ff'],
105
+ shapes: ['circle'],
106
+ scalar: 0.6,
107
+ angle: 270
108
+ };
109
+
110
+ /**
111
+ * Stars effect
112
+ */
113
+ const stars = exports.stars = {
114
+ particleCount: 50,
115
+ spread: 360,
116
+ startVelocity: 20,
117
+ decay: 0.95,
118
+ gravity: 0.5,
119
+ colors: ['#FFD700', '#FFA500', '#FFFF00'],
120
+ shapes: ['circle'],
121
+ scalar: 0.5
122
+ };
123
+
124
+ /**
125
+ * School pride (custom colors)
126
+ */
127
+ const schoolPride = exports.schoolPride = {
128
+ particleCount: 100,
129
+ spread: 160,
130
+ origin: {
131
+ y: 0.6
132
+ },
133
+ colors: ['#bb0000', '#ffffff']
134
+ };
135
+ const presets = exports.presets = {
136
+ celebration,
137
+ fireworks,
138
+ bottomCannon,
139
+ leftCannon,
140
+ rightCannon,
141
+ realistic,
142
+ snow,
143
+ stars,
144
+ schoolPride
145
+ };
146
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["celebration","exports","particleCount","spread","origin","y","fireworks","startVelocity","decay","scalar","bottomCannon","angle","x","leftCannon","rightCannon","realistic","gravity","drift","tilt","shapes","snow","colors","stars","schoolPride","presets"],"sourceRoot":"../../src","sources":["presets.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useConfetti = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * Hook to use confetti imperatively
10
+ * Returns a ref to pass to ConfettiCanvas and a fire function
11
+ */
12
+ const useConfetti = () => {
13
+ const confettiRef = (0, _react.useRef)(null);
14
+ const fire = (0, _react.useCallback)(config => {
15
+ return confettiRef.current?.(config);
16
+ }, []);
17
+ const reset = (0, _react.useCallback)(() => {
18
+ confettiRef.current?.reset();
19
+ }, []);
20
+ return {
21
+ confettiRef,
22
+ fire,
23
+ reset
24
+ };
25
+ };
26
+ exports.useConfetti = useConfetti;
27
+ //# sourceMappingURL=useConfetti.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","useConfetti","confettiRef","useRef","fire","useCallback","config","current","reset","exports"],"sourceRoot":"../../src","sources":["useConfetti.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAkB,IAAI,CAAC;EAEjD,MAAMC,IAAI,GAAG,IAAAC,kBAAW,EAAEC,MAAuB,IAAK;IACpD,OAAOJ,WAAW,CAACK,OAAO,GAAGD,MAAM,CAAC;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,KAAK,GAAG,IAAAH,kBAAW,EAAC,MAAM;IAC9BH,WAAW,CAACK,OAAO,EAAEC,KAAK,CAAC,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLN,WAAW;IACXE,IAAI;IACJI;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAR,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateParticle = exports.randomRange = exports.randomFromArray = exports.degreesToRadians = exports.createConfettiParticles = exports.DEFAULT_CONFIG = exports.DEFAULT_COLORS = void 0;
7
+ const DEFAULT_COLORS = exports.DEFAULT_COLORS = ['#26ccff', '#a25afd', '#ff5e7e', '#88ff5a', '#fcff42', '#ffa62d', '#ff36ff'];
8
+ const DEFAULT_CONFIG = exports.DEFAULT_CONFIG = {
9
+ particleCount: 50,
10
+ angle: 90,
11
+ spread: 45,
12
+ startVelocity: 45,
13
+ decay: 0.9,
14
+ gravity: 1,
15
+ drift: 0,
16
+ duration: 3000,
17
+ colors: DEFAULT_COLORS,
18
+ scalar: 1,
19
+ origin: {
20
+ x: 0.5,
21
+ y: 0.5
22
+ },
23
+ shapes: ['square', 'circle'],
24
+ tilt: true,
25
+ tiltAngleIncrement: 10,
26
+ tickDuration: 200,
27
+ disableForReducedMotion: false,
28
+ usePerformanceMode: false
29
+ };
30
+
31
+ /**
32
+ * Convert degrees to radians
33
+ */
34
+ const degreesToRadians = degrees => {
35
+ return degrees * Math.PI / 180;
36
+ };
37
+
38
+ /**
39
+ * Generate a random number between min and max
40
+ */
41
+ exports.degreesToRadians = degreesToRadians;
42
+ const randomRange = (min, max) => {
43
+ return Math.random() * (max - min) + min;
44
+ };
45
+
46
+ /**
47
+ * Pick a random item from an array
48
+ */
49
+ exports.randomRange = randomRange;
50
+ const randomFromArray = arr => {
51
+ const item = arr[Math.floor(Math.random() * arr.length)];
52
+ if (item === undefined) {
53
+ throw new Error('Array is empty');
54
+ }
55
+ return item;
56
+ };
57
+
58
+ /**
59
+ * Create initial confetti particles
60
+ */
61
+ exports.randomFromArray = randomFromArray;
62
+ const createConfettiParticles = (config, screenWidth, screenHeight) => {
63
+ const particles = [];
64
+ const angleInRadians = degreesToRadians(config.angle);
65
+ const spreadInRadians = degreesToRadians(config.spread);
66
+ for (let i = 0; i < config.particleCount; i++) {
67
+ const angle = angleInRadians + randomRange(-spreadInRadians / 2, spreadInRadians / 2);
68
+ const velocity = config.startVelocity * (0.5 + Math.random() * 0.5);
69
+ const particle = {
70
+ id: `confetti-${i}-${Date.now()}`,
71
+ color: randomFromArray(config.colors),
72
+ shape: randomFromArray(config.shapes),
73
+ x: (config.origin.x ?? 0.5) * screenWidth,
74
+ y: (config.origin.y ?? 0.5) * screenHeight,
75
+ size: (5 + Math.random() * 5) * config.scalar,
76
+ velocity: {
77
+ x: Math.cos(angle) * velocity,
78
+ y: Math.sin(angle) * velocity
79
+ },
80
+ rotation: Math.random() * 360,
81
+ rotationVelocity: randomRange(-10, 10),
82
+ tiltAngle: config.tilt ? Math.random() * config.tiltAngleIncrement : 0,
83
+ opacity: 1
84
+ };
85
+ particles.push(particle);
86
+ }
87
+ return particles;
88
+ };
89
+
90
+ /**
91
+ * Update a confetti particle's position
92
+ */
93
+ exports.createConfettiParticles = createConfettiParticles;
94
+ const updateParticle = (particle, config, deltaTime) => {
95
+ const dt = deltaTime / 16; // Normalize to 60fps
96
+
97
+ // Apply gravity
98
+ const newVelocityY = particle.velocity.y - config.gravity * dt;
99
+
100
+ // Apply drift
101
+ const newVelocityX = particle.velocity.x + config.drift * dt;
102
+
103
+ // Update position
104
+ const newX = particle.x + newVelocityX * dt;
105
+ const newY = particle.y - newVelocityY * dt;
106
+
107
+ // Update rotation
108
+ const newRotation = particle.rotation + particle.rotationVelocity * dt;
109
+
110
+ // Apply decay to opacity
111
+ const newOpacity = particle.opacity * Math.pow(config.decay, dt);
112
+ return {
113
+ ...particle,
114
+ x: newX,
115
+ y: newY,
116
+ velocity: {
117
+ x: newVelocityX,
118
+ y: newVelocityY
119
+ },
120
+ rotation: newRotation,
121
+ opacity: newOpacity
122
+ };
123
+ };
124
+ exports.updateParticle = updateParticle;
125
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_COLORS","exports","DEFAULT_CONFIG","particleCount","angle","spread","startVelocity","decay","gravity","drift","duration","colors","scalar","origin","x","y","shapes","tilt","tiltAngleIncrement","tickDuration","disableForReducedMotion","usePerformanceMode","degreesToRadians","degrees","Math","PI","randomRange","min","max","random","randomFromArray","arr","item","floor","length","undefined","Error","createConfettiParticles","config","screenWidth","screenHeight","particles","angleInRadians","spreadInRadians","i","velocity","particle","id","Date","now","color","shape","size","cos","sin","rotation","rotationVelocity","tiltAngle","opacity","push","updateParticle","deltaTime","dt","newVelocityY","newVelocityX","newX","newY","newRotation","newOpacity","pow"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useImperativeHandle, useState } from 'react';
4
+ import { StyleSheet, View, useWindowDimensions } from 'react-native';
5
+ import { createConfettiParticles, DEFAULT_CONFIG } from './utils';
6
+ import { ConfettiParticle } from './ConfettiParticle';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const ConfettiCanvas = /*#__PURE__*/React.forwardRef(({
9
+ containerStyle,
10
+ zIndex = 1000,
11
+ fullScreen = true
12
+ }, ref) => {
13
+ const [particles, setParticles] = useState([]);
14
+ const [activeCount, setActiveCount] = useState(0);
15
+ const {
16
+ width,
17
+ height
18
+ } = useWindowDimensions();
19
+ const fire = useCallback((config = {}) => {
20
+ return new Promise(resolve => {
21
+ const mergedConfig = {
22
+ ...DEFAULT_CONFIG,
23
+ ...config,
24
+ origin: {
25
+ ...DEFAULT_CONFIG.origin,
26
+ ...config.origin
27
+ }
28
+ };
29
+ const newParticles = createConfettiParticles(mergedConfig, width, height);
30
+ setParticles(prev => [...prev, ...newParticles]);
31
+ setActiveCount(prev => prev + newParticles.length);
32
+
33
+ // Resolve after the duration
34
+ setTimeout(() => {
35
+ resolve(null);
36
+ }, mergedConfig.duration);
37
+ });
38
+ }, [width, height]);
39
+ const reset = useCallback(() => {
40
+ setParticles([]);
41
+ setActiveCount(0);
42
+ }, []);
43
+ useImperativeHandle(ref, () => {
44
+ const confetti = fire;
45
+ confetti.reset = reset;
46
+ return confetti;
47
+ }, [fire, reset]);
48
+ const handleParticleComplete = useCallback(particleId => {
49
+ setActiveCount(prev => prev - 1);
50
+ setParticles(prev => {
51
+ // Clean up completed particles periodically
52
+ if (prev.length > 100) {
53
+ return prev.filter(p => p.id !== particleId).slice(-50);
54
+ }
55
+ return prev;
56
+ });
57
+ }, []);
58
+ return /*#__PURE__*/_jsx(View, {
59
+ style: [styles.container, fullScreen && styles.fullScreen, {
60
+ zIndex
61
+ }, containerStyle],
62
+ pointerEvents: "none",
63
+ children: particles.map(particle => /*#__PURE__*/_jsx(ConfettiParticle, {
64
+ particle: particle,
65
+ duration: DEFAULT_CONFIG.duration,
66
+ onComplete: () => handleParticleComplete(particle.id)
67
+ }, particle.id))
68
+ });
69
+ });
70
+ ConfettiCanvas.displayName = 'ConfettiCanvas';
71
+ const styles = StyleSheet.create({
72
+ container: {
73
+ position: 'absolute',
74
+ width: '100%',
75
+ height: '100%'
76
+ },
77
+ fullScreen: {
78
+ top: 0,
79
+ left: 0,
80
+ right: 0,
81
+ bottom: 0
82
+ }
83
+ });
84
+ //# sourceMappingURL=ConfettiCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useImperativeHandle","useState","StyleSheet","View","useWindowDimensions","createConfettiParticles","DEFAULT_CONFIG","ConfettiParticle","jsx","_jsx","ConfettiCanvas","forwardRef","containerStyle","zIndex","fullScreen","ref","particles","setParticles","activeCount","setActiveCount","width","height","fire","config","Promise","resolve","mergedConfig","origin","newParticles","prev","length","setTimeout","duration","reset","confetti","handleParticleComplete","particleId","filter","p","id","slice","style","styles","container","pointerEvents","children","map","particle","onComplete","displayName","create","position","top","left","right","bottom"],"sourceRoot":"../../src","sources":["ConfettiCanvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import Animated, { useAnimatedStyle, useSharedValue, withTiming, Easing, runOnJS } from 'react-native-reanimated';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const ConfettiParticle = ({
8
+ particle,
9
+ duration,
10
+ onComplete
11
+ }) => {
12
+ const translateX = useSharedValue(0);
13
+ const translateY = useSharedValue(0);
14
+ const rotation = useSharedValue(particle.rotation);
15
+ const opacity = useSharedValue(1);
16
+ useEffect(() => {
17
+ // Animate the particle
18
+ translateX.value = withTiming(particle.velocity.x * (duration / 16), {
19
+ duration,
20
+ easing: Easing.linear
21
+ });
22
+ translateY.value = withTiming(particle.velocity.y * (duration / 16), {
23
+ duration,
24
+ easing: Easing.bezier(0.33, 1, 0.68, 1) // Custom easing for gravity effect
25
+ });
26
+ rotation.value = withTiming(particle.rotation + particle.rotationVelocity * (duration / 16), {
27
+ duration,
28
+ easing: Easing.linear
29
+ });
30
+ opacity.value = withTiming(0, {
31
+ duration,
32
+ easing: Easing.linear
33
+ }, finished => {
34
+ if (finished && onComplete) {
35
+ runOnJS(onComplete)();
36
+ }
37
+ });
38
+ }, [duration, onComplete, opacity, particle, rotation, translateX, translateY]);
39
+ const animatedStyle = useAnimatedStyle(() => {
40
+ return {
41
+ transform: [{
42
+ translateX: translateX.value
43
+ }, {
44
+ translateY: translateY.value
45
+ }, {
46
+ rotate: `${rotation.value}deg`
47
+ }],
48
+ opacity: opacity.value
49
+ };
50
+ });
51
+ const renderShape = () => {
52
+ const baseStyle = [styles.particle, {
53
+ width: particle.size,
54
+ height: particle.size,
55
+ backgroundColor: particle.color
56
+ }];
57
+ if (particle.shape === 'circle') {
58
+ return /*#__PURE__*/_jsx(Animated.View, {
59
+ style: [...baseStyle, styles.circle, animatedStyle]
60
+ });
61
+ } else if (particle.shape === 'triangle') {
62
+ return /*#__PURE__*/_jsx(Animated.View, {
63
+ style: [...baseStyle, styles.transparent, animatedStyle],
64
+ children: /*#__PURE__*/_jsx(Animated.View, {
65
+ style: [styles.triangle, {
66
+ borderLeftWidth: particle.size / 2,
67
+ borderRightWidth: particle.size / 2,
68
+ borderBottomWidth: particle.size,
69
+ borderBottomColor: particle.color
70
+ }]
71
+ })
72
+ });
73
+ }
74
+
75
+ // Square (default)
76
+ return /*#__PURE__*/_jsx(Animated.View, {
77
+ style: [...baseStyle, animatedStyle]
78
+ });
79
+ };
80
+ return /*#__PURE__*/_jsx(Animated.View, {
81
+ style: [styles.container, {
82
+ left: particle.x,
83
+ top: particle.y
84
+ }],
85
+ children: renderShape()
86
+ });
87
+ };
88
+ const styles = StyleSheet.create({
89
+ container: {
90
+ position: 'absolute'
91
+ },
92
+ particle: {
93
+ position: 'absolute'
94
+ },
95
+ circle: {
96
+ borderRadius: 999
97
+ },
98
+ transparent: {
99
+ backgroundColor: 'transparent'
100
+ },
101
+ triangle: {
102
+ width: 0,
103
+ height: 0,
104
+ backgroundColor: 'transparent',
105
+ borderStyle: 'solid',
106
+ borderLeftColor: 'transparent',
107
+ borderRightColor: 'transparent'
108
+ }
109
+ });
110
+ //# sourceMappingURL=ConfettiParticle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","StyleSheet","Animated","useAnimatedStyle","useSharedValue","withTiming","Easing","runOnJS","jsx","_jsx","ConfettiParticle","particle","duration","onComplete","translateX","translateY","rotation","opacity","value","velocity","x","easing","linear","y","bezier","rotationVelocity","finished","animatedStyle","transform","rotate","renderShape","baseStyle","styles","width","size","height","backgroundColor","color","shape","View","style","circle","transparent","children","triangle","borderLeftWidth","borderRightWidth","borderBottomWidth","borderBottomColor","container","left","top","create","position","borderRadius","borderStyle","borderLeftColor","borderRightColor"],"sourceRoot":"../../src","sources":["ConfettiParticle.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { ConfettiCanvas } from './ConfettiCanvas';
4
+ export { useConfetti } from './useConfetti';
5
+ export { presets } from './presets';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ConfettiCanvas","useConfetti","presets"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,kBAAkB;AACjD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}