react-confetti-burst 1.0.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +303 -0
  3. package/dist/cjs/components.d.ts +219 -0
  4. package/dist/cjs/components.d.ts.map +1 -0
  5. package/dist/cjs/components.js +341 -0
  6. package/dist/cjs/components.js.map +1 -0
  7. package/dist/cjs/confetti-engine.d.ts +122 -0
  8. package/dist/cjs/confetti-engine.d.ts.map +1 -0
  9. package/dist/cjs/confetti-engine.js +589 -0
  10. package/dist/cjs/confetti-engine.js.map +1 -0
  11. package/dist/cjs/confetti.d.ts +50 -0
  12. package/dist/cjs/confetti.d.ts.map +1 -0
  13. package/dist/cjs/confetti.js +446 -0
  14. package/dist/cjs/confetti.js.map +1 -0
  15. package/dist/cjs/constants.d.ts +147 -0
  16. package/dist/cjs/constants.d.ts.map +1 -0
  17. package/dist/cjs/constants.js +609 -0
  18. package/dist/cjs/constants.js.map +1 -0
  19. package/dist/cjs/hooks.d.ts +94 -0
  20. package/dist/cjs/hooks.d.ts.map +1 -0
  21. package/dist/cjs/hooks.js +225 -0
  22. package/dist/cjs/hooks.js.map +1 -0
  23. package/dist/cjs/index.d.ts +34 -0
  24. package/dist/cjs/index.d.ts.map +1 -0
  25. package/dist/cjs/index.js +180 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/particle.d.ts +50 -0
  28. package/dist/cjs/particle.d.ts.map +1 -0
  29. package/dist/cjs/particle.js +475 -0
  30. package/dist/cjs/particle.js.map +1 -0
  31. package/dist/cjs/shapes.d.ts +190 -0
  32. package/dist/cjs/shapes.d.ts.map +1 -0
  33. package/dist/cjs/shapes.js +272 -0
  34. package/dist/cjs/shapes.js.map +1 -0
  35. package/dist/cjs/types.d.ts +720 -0
  36. package/dist/cjs/types.d.ts.map +1 -0
  37. package/dist/cjs/types.js +25 -0
  38. package/dist/cjs/types.js.map +1 -0
  39. package/dist/cjs/utils.d.ts +90 -0
  40. package/dist/cjs/utils.d.ts.map +1 -0
  41. package/dist/cjs/utils.js +330 -0
  42. package/dist/cjs/utils.js.map +1 -0
  43. package/dist/esm/components.js +334 -0
  44. package/dist/esm/components.js.map +1 -0
  45. package/dist/esm/confetti-engine.js +581 -0
  46. package/dist/esm/confetti-engine.js.map +1 -0
  47. package/dist/esm/confetti.js +443 -0
  48. package/dist/esm/confetti.js.map +1 -0
  49. package/dist/esm/constants.js +605 -0
  50. package/dist/esm/constants.js.map +1 -0
  51. package/dist/esm/hooks.js +218 -0
  52. package/dist/esm/hooks.js.map +1 -0
  53. package/dist/esm/index.js +146 -0
  54. package/dist/esm/index.js.map +1 -0
  55. package/dist/esm/particle.js +465 -0
  56. package/dist/esm/particle.js.map +1 -0
  57. package/dist/esm/shapes.js +265 -0
  58. package/dist/esm/shapes.js.map +1 -0
  59. package/dist/esm/types.js +24 -0
  60. package/dist/esm/types.js.map +1 -0
  61. package/dist/esm/utils.js +309 -0
  62. package/dist/esm/utils.js.map +1 -0
  63. package/dist/types/components.d.ts +219 -0
  64. package/dist/types/components.d.ts.map +1 -0
  65. package/dist/types/confetti-engine.d.ts +122 -0
  66. package/dist/types/confetti-engine.d.ts.map +1 -0
  67. package/dist/types/confetti.d.ts +50 -0
  68. package/dist/types/confetti.d.ts.map +1 -0
  69. package/dist/types/constants.d.ts +147 -0
  70. package/dist/types/constants.d.ts.map +1 -0
  71. package/dist/types/hooks.d.ts +94 -0
  72. package/dist/types/hooks.d.ts.map +1 -0
  73. package/dist/types/index.d.ts +34 -0
  74. package/dist/types/index.d.ts.map +1 -0
  75. package/dist/types/particle.d.ts +50 -0
  76. package/dist/types/particle.d.ts.map +1 -0
  77. package/dist/types/shapes.d.ts +190 -0
  78. package/dist/types/shapes.d.ts.map +1 -0
  79. package/dist/types/types.d.ts +720 -0
  80. package/dist/types/types.d.ts.map +1 -0
  81. package/dist/types/utils.d.ts +90 -0
  82. package/dist/types/utils.d.ts.map +1 -0
  83. package/package.json +73 -0
@@ -0,0 +1,218 @@
1
+ /**
2
+ * React hooks for confetti animations
3
+ *
4
+ * Provides convenient React hooks for triggering confetti bursts
5
+ * with proper lifecycle management and cleanup.
6
+ */
7
+ import { useCallback, useRef, useState, useEffect } from 'react';
8
+ import { createConfettiExplosion, fireFromElement, } from './confetti-engine';
9
+ /**
10
+ * Main hook for triggering confetti animations
11
+ *
12
+ * @returns Object with fire functions and state
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * const { fire, isActive } = useConfetti();
17
+ *
18
+ * const handleClick = (e) => {
19
+ * fire({ x: e.clientX, y: e.clientY });
20
+ * };
21
+ * ```
22
+ */
23
+ export function useConfetti() {
24
+ const [isActive, setIsActive] = useState(false);
25
+ const activeHandles = useRef(new Set());
26
+ // Cleanup on unmount
27
+ useEffect(() => {
28
+ return () => {
29
+ activeHandles.current.forEach(handle => handle.stop());
30
+ activeHandles.current.clear();
31
+ };
32
+ }, []);
33
+ /**
34
+ * Fires confetti from a point
35
+ */
36
+ const fire = useCallback((origin, options) => {
37
+ const handle = createConfettiExplosion(origin, options);
38
+ activeHandles.current.add(handle);
39
+ setIsActive(true);
40
+ handle.promise.then(() => {
41
+ activeHandles.current.delete(handle);
42
+ if (activeHandles.current.size === 0) {
43
+ setIsActive(false);
44
+ }
45
+ });
46
+ return handle;
47
+ }, []);
48
+ /**
49
+ * Fires confetti from an element's center
50
+ */
51
+ const fireFromElementCallback = useCallback((element, options) => {
52
+ if (!element)
53
+ return null;
54
+ const handle = fireFromElement(element, options);
55
+ if (handle) {
56
+ activeHandles.current.add(handle);
57
+ setIsActive(true);
58
+ handle.promise.then(() => {
59
+ activeHandles.current.delete(handle);
60
+ if (activeHandles.current.size === 0) {
61
+ setIsActive(false);
62
+ }
63
+ });
64
+ }
65
+ return handle;
66
+ }, []);
67
+ /**
68
+ * Stops all active animations
69
+ */
70
+ const stopAll = useCallback(() => {
71
+ activeHandles.current.forEach(handle => handle.stop());
72
+ activeHandles.current.clear();
73
+ setIsActive(false);
74
+ }, []);
75
+ /**
76
+ * Pauses all active animations
77
+ */
78
+ const pauseAll = useCallback(() => {
79
+ activeHandles.current.forEach(handle => handle.pause());
80
+ }, []);
81
+ /**
82
+ * Resumes all paused animations
83
+ */
84
+ const resumeAll = useCallback(() => {
85
+ activeHandles.current.forEach(handle => handle.resume());
86
+ }, []);
87
+ /**
88
+ * Gets the currently active handles
89
+ */
90
+ const getActiveHandles = useCallback(() => {
91
+ return Array.from(activeHandles.current);
92
+ }, []);
93
+ return {
94
+ fire,
95
+ fireFromElement: fireFromElementCallback,
96
+ isActive,
97
+ stopAll,
98
+ pauseAll,
99
+ resumeAll,
100
+ getActiveHandles,
101
+ };
102
+ }
103
+ /**
104
+ * Hook for confetti triggered by a ref element
105
+ *
106
+ * @param options - Confetti configuration options
107
+ * @returns Ref to attach to trigger element and fire function
108
+ *
109
+ * @example
110
+ * ```tsx
111
+ * const { ref, fire } = useConfettiTrigger();
112
+ *
113
+ * return (
114
+ * <button ref={ref} onClick={fire}>
115
+ * Celebrate!
116
+ * </button>
117
+ * );
118
+ * ```
119
+ */
120
+ export function useConfettiTrigger(options) {
121
+ const ref = useRef(null);
122
+ const { fireFromElement: fireFromEl, isActive } = useConfetti();
123
+ const fire = useCallback(() => {
124
+ return fireFromEl(ref.current, options);
125
+ }, [fireFromEl, options]);
126
+ return { ref, fire, isActive };
127
+ }
128
+ /**
129
+ * Hook for auto-firing confetti when a condition becomes true
130
+ *
131
+ * @param condition - When true, fires confetti
132
+ * @param origin - Origin point for the burst
133
+ * @param options - Confetti configuration options
134
+ *
135
+ * @example
136
+ * ```tsx
137
+ * const [isComplete, setIsComplete] = useState(false);
138
+ *
139
+ * useConfettiOnCondition(isComplete, { x: 500, y: 300 });
140
+ * ```
141
+ */
142
+ export function useConfettiOnCondition(condition, origin, options) {
143
+ const hasFired = useRef(false);
144
+ const { fire } = useConfetti();
145
+ useEffect(() => {
146
+ if (condition && !hasFired.current) {
147
+ hasFired.current = true;
148
+ fire(origin, options);
149
+ }
150
+ }, [condition, fire, origin, options]);
151
+ // Reset when condition becomes false
152
+ useEffect(() => {
153
+ if (!condition) {
154
+ hasFired.current = false;
155
+ }
156
+ }, [condition]);
157
+ }
158
+ /**
159
+ * Hook for sequencing multiple confetti bursts
160
+ *
161
+ * @param bursts - Array of burst configurations with delays
162
+ * @returns Start function and active state
163
+ *
164
+ * @example
165
+ * ```tsx
166
+ * const { start, isActive } = useConfettiSequence([
167
+ * { origin: { x: 100, y: 100 }, delay: 0 },
168
+ * { origin: { x: 300, y: 100 }, delay: 200 },
169
+ * { origin: { x: 500, y: 100 }, delay: 400 },
170
+ * ]);
171
+ * ```
172
+ */
173
+ export function useConfettiSequence(bursts) {
174
+ const { fire, isActive, stopAll } = useConfetti();
175
+ const timeouts = useRef([]);
176
+ const cancel = useCallback(() => {
177
+ timeouts.current.forEach(id => clearTimeout(id));
178
+ timeouts.current = [];
179
+ stopAll();
180
+ }, [stopAll]);
181
+ const start = useCallback(() => {
182
+ cancel(); // Clear any existing sequence
183
+ bursts.forEach(({ origin, options, delay }) => {
184
+ const timeoutId = window.setTimeout(() => {
185
+ fire(origin, options);
186
+ }, delay);
187
+ timeouts.current.push(timeoutId);
188
+ });
189
+ }, [bursts, fire, cancel]);
190
+ // Cleanup on unmount
191
+ useEffect(() => {
192
+ return () => {
193
+ timeouts.current.forEach(id => clearTimeout(id));
194
+ };
195
+ }, []);
196
+ return { start, isActive, cancel };
197
+ }
198
+ /**
199
+ * Hook for viewport-centered confetti
200
+ *
201
+ * @param options - Confetti configuration options
202
+ * @returns Fire function for center-screen confetti
203
+ */
204
+ export function useConfettiCenter(options) {
205
+ const { fire: baseFire, isActive } = useConfetti();
206
+ const fire = useCallback(() => {
207
+ const centerOrigin = {
208
+ x: window.innerWidth / 2,
209
+ y: window.innerHeight / 2,
210
+ };
211
+ return baseFire(centerOrigin, {
212
+ ...options,
213
+ direction: { direction: 'radial' },
214
+ });
215
+ }, [baseFire, options]);
216
+ return { fire, isActive };
217
+ }
218
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * react-confetti-burst
3
+ *
4
+ * A high-performance, zero-dependency React confetti component
5
+ * with directional bursts using the native Canvas API.
6
+ * Exceeds the feature set of both react-confetti and canvas-confetti.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ // Basic Constants
11
+ export { DEFAULT_COLORS, DEFAULT_PHYSICS, DEFAULT_DIRECTION, DEFAULT_PARTICLE, DEFAULT_CONFIG, DIRECTION_ANGLES, EASING_FUNCTIONS, COLOR_PALETTES, } from './constants';
12
+ // Core engine (Basic)
13
+ export { ConfettiEngine, createConfettiExplosion, fireFromElement, getActiveAnimationCount, forceCleanup, } from './confetti-engine';
14
+ // Basic React hooks
15
+ export { useConfetti, } from './hooks';
16
+ // Basic React components
17
+ export { ConfettiBurst, ConfettiButton, } from './components';
18
+ // Basic Utility functions
19
+ export { parseColor, rgbaToString, randomInRange, randomInt, randomFromArray, clamp, lerp, degToRad, radToDeg, getDirectionAngle, getElementCenter, mergeConfig, isBrowser, } from './utils';
20
+ // Basic Functional API
21
+ export { confetti, confetti as default } from './confetti';
22
+ // ============================================================================
23
+ // v1.1.0 - REACT HOOKS (Uncomment when releasing)
24
+ // ============================================================================
25
+ /*
26
+ export {
27
+ useConfettiTrigger,
28
+ useConfettiOnCondition,
29
+ useConfettiSequence,
30
+ useConfettiCenter,
31
+ } from './hooks';
32
+
33
+ export {
34
+ ConfettiTrigger,
35
+ } from './components';
36
+
37
+ export type { ConfettiTriggerHandle } from './components';
38
+ */
39
+ // ============================================================================
40
+ // v1.2.0 - BUILT-IN PRESETS (Uncomment when releasing)
41
+ // ============================================================================
42
+ /*
43
+ export type {
44
+ PresetName,
45
+ PresetConfig,
46
+ } from './types';
47
+
48
+ export {
49
+ PRESETS,
50
+ getPreset,
51
+ } from './constants';
52
+ */
53
+ // ============================================================================
54
+ // v1.3.0 - CANVAS-CONFETTI API (Uncomment when releasing)
55
+ // ============================================================================
56
+ /*
57
+ export type {
58
+ NormalizedOrigin,
59
+ AccessibilityConfig,
60
+ CanvasConfettiOptions,
61
+ ConfettiCreateOptions,
62
+ CanvasConfig,
63
+ ConfettiProps,
64
+ } from './types';
65
+
66
+ export {
67
+ DEFAULT_CANVAS,
68
+ DEFAULT_ACCESSIBILITY,
69
+ } from './constants';
70
+
71
+ export {
72
+ ConfettiOnMount,
73
+ ConfettiCannon,
74
+ Confetti,
75
+ } from './components';
76
+
77
+ export type { ConfettiComponentProps } from './components';
78
+ */
79
+ // ============================================================================
80
+ // v1.4.0 - CUSTOM SHAPES (Uncomment when releasing)
81
+ // ============================================================================
82
+ /*
83
+ export type {
84
+ DrawContext,
85
+ CustomDrawFunction,
86
+ PathShape,
87
+ TextShape,
88
+ CustomShape,
89
+ ShapeInput,
90
+ PathBounds,
91
+ } from './types';
92
+
93
+ export {
94
+ EMOJI_SETS,
95
+ } from './constants';
96
+
97
+ export {
98
+ shapeFromPath,
99
+ shapeFromText,
100
+ shapeFromImage,
101
+ shapesFromEmoji,
102
+ pathShapes,
103
+ emojiShapes,
104
+ } from './shapes';
105
+
106
+ export type {
107
+ ShapeFromPathOptions,
108
+ ShapeFromTextOptions,
109
+ } from './shapes';
110
+ */
111
+ // ============================================================================
112
+ // v1.5.0 - ADVANCED EFFECTS (Uncomment when releasing)
113
+ // ============================================================================
114
+ /*
115
+ export type {
116
+ EffectMode,
117
+ SpawnArea,
118
+ TrailConfig,
119
+ GlowConfig,
120
+ ImageParticle,
121
+ ContinuousConfig,
122
+ FireworkConfig,
123
+ } from './types';
124
+
125
+ export {
126
+ DEFAULT_TRAIL,
127
+ DEFAULT_GLOW,
128
+ DEFAULT_CONTINUOUS,
129
+ DEFAULT_FIREWORK,
130
+ } from './constants';
131
+ */
132
+ // ============================================================================
133
+ // v1.6.0 - PARTICLE UTILITIES (Uncomment when releasing)
134
+ // ============================================================================
135
+ /*
136
+ export {
137
+ createParticle,
138
+ updateParticle,
139
+ renderParticle,
140
+ areAllParticlesInactive,
141
+ countActiveParticles,
142
+ loadImage,
143
+ clearImageCache,
144
+ } from './particle';
145
+ */
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2DH,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EACL,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAE/E;;;;;;;;;;;;;EAaE;AAEF,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAE/E;;;;;;;;;;EAUE;AAEF,+EAA+E;AAC/E,0DAA0D;AAC1D,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;EAsBE;AAEF,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BE;AAEF,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;EAiBE;AAEF,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E;;;;;;;;;;EAUE"}