masoneffect 0.1.13 → 0.1.14
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/core/index.d.ts +91 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +346 -388
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.js +346 -388
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.umd.js +380 -422
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/react/MasonEffect.cjs +346 -388
- package/dist/react/MasonEffect.cjs.map +1 -1
- package/dist/react/MasonEffect.js +346 -388
- package/dist/react/MasonEffect.js.map +1 -1
- package/dist/react/MasonEffect.min.cjs +1 -1
- package/dist/react/MasonEffect.min.js +1 -1
- package/dist/react/core/index.d.ts +91 -0
- package/dist/react/core/index.d.ts.map +1 -0
- package/dist/react/index.d.ts +8 -0
- package/dist/react/index.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/core/{index.js → index.ts} +109 -38
- package/src/{index.js → index.ts} +1 -0
- package/src/core/index.d.ts +0 -59
|
@@ -0,0 +1,91 @@
|
|
|
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'>> & {
|
|
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
|
+
handleResize: () => void;
|
|
59
|
+
handleMouseMove: (e: MouseEvent) => void;
|
|
60
|
+
handleMouseLeave: () => void;
|
|
61
|
+
handleMouseDown: () => void;
|
|
62
|
+
handleMouseUp: () => void;
|
|
63
|
+
_debouncedMorph: (textOrOptions?: string | Partial<MasonEffectOptions> | null) => void;
|
|
64
|
+
_debouncedUpdateConfig: (newConfig: Partial<MasonEffectOptions>) => void;
|
|
65
|
+
constructor(container: HTMLElement | string, options?: MasonEffectOptions);
|
|
66
|
+
init(): void;
|
|
67
|
+
setupIntersectionObserver(): void;
|
|
68
|
+
resize(): void;
|
|
69
|
+
buildTargets(): void;
|
|
70
|
+
makeParticle(): Particle;
|
|
71
|
+
initParticles(): void;
|
|
72
|
+
scatter(): void;
|
|
73
|
+
morph(textOrOptions?: string | Partial<MasonEffectOptions> | null): void;
|
|
74
|
+
_morphInternal(textOrOptions?: string | Partial<MasonEffectOptions> | null): void;
|
|
75
|
+
update(): void;
|
|
76
|
+
animate(): void;
|
|
77
|
+
start(): void;
|
|
78
|
+
stop(): void;
|
|
79
|
+
setupEventListeners(): void;
|
|
80
|
+
removeEventListeners(): void;
|
|
81
|
+
handleResize(): void;
|
|
82
|
+
handleMouseMove(e: MouseEvent): void;
|
|
83
|
+
handleMouseLeave(): void;
|
|
84
|
+
handleMouseDown(): void;
|
|
85
|
+
handleMouseUp(): void;
|
|
86
|
+
updateConfig(newConfig: Partial<MasonEffectOptions>): void;
|
|
87
|
+
_updateConfigInternal(newConfig: Partial<MasonEffectOptions>): void;
|
|
88
|
+
destroy(): void;
|
|
89
|
+
}
|
|
90
|
+
export default MasonEffect;
|
|
91
|
+
//# 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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|