masoneffect 0.1.13 → 0.1.15

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # MasonEffect
1
+ # MasonEffect ![npm](https://img.shields.io/npm/dw/masoneffect)
2
2
 
3
3
  A library that provides particle morphing effects. It can be used with React, Vue, and vanilla JavaScript.
4
4
 
@@ -0,0 +1,86 @@
1
+ /**
2
+ * MasonEffect - 파티클 모핑 효과 라이브러리
3
+ * 바닐라 JS 코어 클래스
4
+ */
5
+ export interface MasonEffectOptions {
6
+ text?: string;
7
+ densityStep?: number;
8
+ maxParticles?: number;
9
+ pointSize?: number;
10
+ ease?: number;
11
+ repelRadius?: number;
12
+ repelStrength?: number;
13
+ particleColor?: string;
14
+ fontFamily?: string;
15
+ fontSize?: number | null;
16
+ width?: number | null;
17
+ height?: number | null;
18
+ devicePixelRatio?: number | null;
19
+ debounceDelay?: number;
20
+ onReady?: (instance: MasonEffect) => void;
21
+ onUpdate?: (instance: MasonEffect) => void;
22
+ }
23
+ export interface Particle {
24
+ x: number;
25
+ y: number;
26
+ vx: number;
27
+ vy: number;
28
+ tx: number;
29
+ ty: number;
30
+ initialX?: number;
31
+ initialY?: number;
32
+ j: number;
33
+ }
34
+ export declare class MasonEffect {
35
+ container: HTMLElement;
36
+ config: Required<Omit<MasonEffectOptions, 'onReady' | 'onUpdate' | 'debounceDelay'>> & {
37
+ onReady: MasonEffectOptions['onReady'];
38
+ onUpdate: MasonEffectOptions['onUpdate'];
39
+ };
40
+ canvas: HTMLCanvasElement;
41
+ ctx: CanvasRenderingContext2D;
42
+ offCanvas: HTMLCanvasElement;
43
+ offCtx: CanvasRenderingContext2D;
44
+ W: number;
45
+ H: number;
46
+ DPR: number;
47
+ particles: Particle[];
48
+ mouse: {
49
+ x: number;
50
+ y: number;
51
+ down: boolean;
52
+ };
53
+ animationId: number | null;
54
+ isRunning: boolean;
55
+ isVisible: boolean;
56
+ intersectionObserver: IntersectionObserver | null;
57
+ debounceDelay: number;
58
+ _debouncedMorph: (textOrOptions?: string | Partial<MasonEffectOptions> | null) => void;
59
+ _debouncedUpdateConfig: (newConfig: Partial<MasonEffectOptions>) => void;
60
+ constructor(container: HTMLElement | string, options?: MasonEffectOptions);
61
+ init(): void;
62
+ setupIntersectionObserver(): void;
63
+ resize(): void;
64
+ buildTargets(): void;
65
+ makeParticle(): Particle;
66
+ initParticles(): void;
67
+ scatter(): void;
68
+ morph(textOrOptions?: string | Partial<MasonEffectOptions> | null): void;
69
+ _morphInternal(textOrOptions?: string | Partial<MasonEffectOptions> | null): void;
70
+ update(): void;
71
+ animate(): void;
72
+ start(): void;
73
+ stop(): void;
74
+ setupEventListeners(): void;
75
+ removeEventListeners(): void;
76
+ handleResize(): void;
77
+ handleMouseMove(e: MouseEvent): void;
78
+ handleMouseLeave(): void;
79
+ handleMouseDown(): void;
80
+ handleMouseUp(): void;
81
+ updateConfig(newConfig: Partial<MasonEffectOptions>): void;
82
+ _updateConfigInternal(newConfig: Partial<MasonEffectOptions>): void;
83
+ destroy(): void;
84
+ }
85
+ export default MasonEffect;
86
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MasonEffect - 메인 엔트리 포인트
3
+ */
4
+ import MasonEffect from './core/index.js';
5
+ export { MasonEffect };
6
+ export type { MasonEffectOptions, Particle } from './core/index.js';
7
+ export default MasonEffect;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIpE,eAAe,WAAW,CAAC"}