@hua-labs/motion-core 2.1.0-alpha.1 → 2.1.0-alpha.10

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 (170) hide show
  1. package/README.md +48 -232
  2. package/dist/index.d.mts +1091 -0
  3. package/dist/index.d.ts +1091 -33
  4. package/dist/index.js +4241 -62
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +4187 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +15 -8
  9. package/dist/.tsbuildinfo +0 -1
  10. package/dist/core/MotionEngine.d.ts +0 -111
  11. package/dist/core/MotionEngine.d.ts.map +0 -1
  12. package/dist/core/MotionEngine.js +0 -206
  13. package/dist/core/MotionEngine.js.map +0 -1
  14. package/dist/core/PerformanceOptimizer.d.ts +0 -124
  15. package/dist/core/PerformanceOptimizer.d.ts.map +0 -1
  16. package/dist/core/PerformanceOptimizer.js +0 -334
  17. package/dist/core/PerformanceOptimizer.js.map +0 -1
  18. package/dist/core/TransitionEffects.d.ts +0 -76
  19. package/dist/core/TransitionEffects.d.ts.map +0 -1
  20. package/dist/core/TransitionEffects.js +0 -321
  21. package/dist/core/TransitionEffects.js.map +0 -1
  22. package/dist/hooks/useBounceIn.d.ts +0 -12
  23. package/dist/hooks/useBounceIn.d.ts.map +0 -1
  24. package/dist/hooks/useBounceIn.js +0 -75
  25. package/dist/hooks/useBounceIn.js.map +0 -1
  26. package/dist/hooks/useButtonEffect.d.ts +0 -48
  27. package/dist/hooks/useButtonEffect.d.ts.map +0 -1
  28. package/dist/hooks/useButtonEffect.js +0 -311
  29. package/dist/hooks/useButtonEffect.js.map +0 -1
  30. package/dist/hooks/useCardList.d.ts +0 -23
  31. package/dist/hooks/useCardList.d.ts.map +0 -1
  32. package/dist/hooks/useCardList.js +0 -119
  33. package/dist/hooks/useCardList.js.map +0 -1
  34. package/dist/hooks/useClickToggle.d.ts +0 -30
  35. package/dist/hooks/useClickToggle.d.ts.map +0 -1
  36. package/dist/hooks/useClickToggle.js +0 -137
  37. package/dist/hooks/useClickToggle.js.map +0 -1
  38. package/dist/hooks/useFadeIn.d.ts +0 -3
  39. package/dist/hooks/useFadeIn.d.ts.map +0 -1
  40. package/dist/hooks/useFadeIn.js +0 -107
  41. package/dist/hooks/useFadeIn.js.map +0 -1
  42. package/dist/hooks/useFocusToggle.d.ts +0 -30
  43. package/dist/hooks/useFocusToggle.d.ts.map +0 -1
  44. package/dist/hooks/useFocusToggle.js +0 -137
  45. package/dist/hooks/useFocusToggle.js.map +0 -1
  46. package/dist/hooks/useGesture.d.ts +0 -45
  47. package/dist/hooks/useGesture.d.ts.map +0 -1
  48. package/dist/hooks/useGesture.js +0 -274
  49. package/dist/hooks/useGesture.js.map +0 -1
  50. package/dist/hooks/useGestureMotion.d.ts +0 -26
  51. package/dist/hooks/useGestureMotion.d.ts.map +0 -1
  52. package/dist/hooks/useGestureMotion.js +0 -167
  53. package/dist/hooks/useGestureMotion.js.map +0 -1
  54. package/dist/hooks/useGradient.d.ts +0 -14
  55. package/dist/hooks/useGradient.d.ts.map +0 -1
  56. package/dist/hooks/useGradient.js +0 -87
  57. package/dist/hooks/useGradient.js.map +0 -1
  58. package/dist/hooks/useHoverMotion.d.ts +0 -5
  59. package/dist/hooks/useHoverMotion.d.ts.map +0 -1
  60. package/dist/hooks/useHoverMotion.js +0 -48
  61. package/dist/hooks/useHoverMotion.js.map +0 -1
  62. package/dist/hooks/useLoadingSpinner.d.ts +0 -30
  63. package/dist/hooks/useLoadingSpinner.d.ts.map +0 -1
  64. package/dist/hooks/useLoadingSpinner.js +0 -283
  65. package/dist/hooks/useLoadingSpinner.js.map +0 -1
  66. package/dist/hooks/useMotion.d.ts +0 -103
  67. package/dist/hooks/useMotion.d.ts.map +0 -1
  68. package/dist/hooks/useMotion.js +0 -266
  69. package/dist/hooks/useMotion.js.map +0 -1
  70. package/dist/hooks/useMotionState.d.ts +0 -29
  71. package/dist/hooks/useMotionState.d.ts.map +0 -1
  72. package/dist/hooks/useMotionState.js +0 -202
  73. package/dist/hooks/useMotionState.js.map +0 -1
  74. package/dist/hooks/useNavigation.d.ts +0 -40
  75. package/dist/hooks/useNavigation.d.ts.map +0 -1
  76. package/dist/hooks/useNavigation.js +0 -212
  77. package/dist/hooks/useNavigation.js.map +0 -1
  78. package/dist/hooks/usePageMotions.d.ts +0 -17
  79. package/dist/hooks/usePageMotions.d.ts.map +0 -1
  80. package/dist/hooks/usePageMotions.js +0 -352
  81. package/dist/hooks/usePageMotions.js.map +0 -1
  82. package/dist/hooks/usePulse.d.ts +0 -10
  83. package/dist/hooks/usePulse.d.ts.map +0 -1
  84. package/dist/hooks/usePulse.js +0 -108
  85. package/dist/hooks/usePulse.js.map +0 -1
  86. package/dist/hooks/useRepeat.d.ts +0 -21
  87. package/dist/hooks/useRepeat.d.ts.map +0 -1
  88. package/dist/hooks/useRepeat.js +0 -65
  89. package/dist/hooks/useRepeat.js.map +0 -1
  90. package/dist/hooks/useScaleIn.d.ts +0 -13
  91. package/dist/hooks/useScaleIn.d.ts.map +0 -1
  92. package/dist/hooks/useScaleIn.js +0 -72
  93. package/dist/hooks/useScaleIn.js.map +0 -1
  94. package/dist/hooks/useScrollProgress.d.ts +0 -11
  95. package/dist/hooks/useScrollProgress.d.ts.map +0 -1
  96. package/dist/hooks/useScrollProgress.js +0 -37
  97. package/dist/hooks/useScrollProgress.js.map +0 -1
  98. package/dist/hooks/useScrollReveal.d.ts +0 -14
  99. package/dist/hooks/useScrollReveal.d.ts.map +0 -1
  100. package/dist/hooks/useScrollReveal.js +0 -116
  101. package/dist/hooks/useScrollReveal.js.map +0 -1
  102. package/dist/hooks/useScrollToggle.d.ts +0 -17
  103. package/dist/hooks/useScrollToggle.d.ts.map +0 -1
  104. package/dist/hooks/useScrollToggle.js +0 -119
  105. package/dist/hooks/useScrollToggle.js.map +0 -1
  106. package/dist/hooks/useSimplePageMotion.d.ts +0 -29
  107. package/dist/hooks/useSimplePageMotion.d.ts.map +0 -1
  108. package/dist/hooks/useSimplePageMotion.js +0 -145
  109. package/dist/hooks/useSimplePageMotion.js.map +0 -1
  110. package/dist/hooks/useSkeleton.d.ts +0 -21
  111. package/dist/hooks/useSkeleton.d.ts.map +0 -1
  112. package/dist/hooks/useSkeleton.js +0 -139
  113. package/dist/hooks/useSkeleton.js.map +0 -1
  114. package/dist/hooks/useSlideDown.d.ts +0 -25
  115. package/dist/hooks/useSlideDown.d.ts.map +0 -1
  116. package/dist/hooks/useSlideDown.js +0 -263
  117. package/dist/hooks/useSlideDown.js.map +0 -1
  118. package/dist/hooks/useSlideLeft.d.ts +0 -13
  119. package/dist/hooks/useSlideLeft.d.ts.map +0 -1
  120. package/dist/hooks/useSlideLeft.js +0 -72
  121. package/dist/hooks/useSlideLeft.js.map +0 -1
  122. package/dist/hooks/useSlideRight.d.ts +0 -13
  123. package/dist/hooks/useSlideRight.d.ts.map +0 -1
  124. package/dist/hooks/useSlideRight.js +0 -72
  125. package/dist/hooks/useSlideRight.js.map +0 -1
  126. package/dist/hooks/useSlideUp.d.ts +0 -3
  127. package/dist/hooks/useSlideUp.d.ts.map +0 -1
  128. package/dist/hooks/useSlideUp.js +0 -122
  129. package/dist/hooks/useSlideUp.js.map +0 -1
  130. package/dist/hooks/useSmartMotion.d.ts +0 -31
  131. package/dist/hooks/useSmartMotion.d.ts.map +0 -1
  132. package/dist/hooks/useSmartMotion.js +0 -257
  133. package/dist/hooks/useSmartMotion.js.map +0 -1
  134. package/dist/hooks/useSpringMotion.d.ts +0 -22
  135. package/dist/hooks/useSpringMotion.d.ts.map +0 -1
  136. package/dist/hooks/useSpringMotion.js +0 -133
  137. package/dist/hooks/useSpringMotion.js.map +0 -1
  138. package/dist/hooks/useToggleMotion.d.ts +0 -16
  139. package/dist/hooks/useToggleMotion.d.ts.map +0 -1
  140. package/dist/hooks/useToggleMotion.js +0 -53
  141. package/dist/hooks/useToggleMotion.js.map +0 -1
  142. package/dist/hooks/useUnifiedMotion.d.ts +0 -51
  143. package/dist/hooks/useUnifiedMotion.d.ts.map +0 -1
  144. package/dist/hooks/useUnifiedMotion.js +0 -106
  145. package/dist/hooks/useUnifiedMotion.js.map +0 -1
  146. package/dist/hooks/useVisibilityToggle.d.ts +0 -15
  147. package/dist/hooks/useVisibilityToggle.d.ts.map +0 -1
  148. package/dist/hooks/useVisibilityToggle.js +0 -106
  149. package/dist/hooks/useVisibilityToggle.js.map +0 -1
  150. package/dist/index.d.ts.map +0 -1
  151. package/dist/managers/MotionStateManager.d.ts +0 -63
  152. package/dist/managers/MotionStateManager.d.ts.map +0 -1
  153. package/dist/managers/MotionStateManager.js +0 -159
  154. package/dist/managers/MotionStateManager.js.map +0 -1
  155. package/dist/presets/index.d.ts +0 -16
  156. package/dist/presets/index.d.ts.map +0 -1
  157. package/dist/presets/index.js +0 -120
  158. package/dist/presets/index.js.map +0 -1
  159. package/dist/types/common.d.ts +0 -155
  160. package/dist/types/common.d.ts.map +0 -1
  161. package/dist/types/common.js +0 -5
  162. package/dist/types/common.js.map +0 -1
  163. package/dist/types/index.d.ts +0 -77
  164. package/dist/types/index.d.ts.map +0 -1
  165. package/dist/types/index.js +0 -5
  166. package/dist/types/index.js.map +0 -1
  167. package/dist/utils/easing.d.ts +0 -98
  168. package/dist/utils/easing.d.ts.map +0 -1
  169. package/dist/utils/easing.js +0 -233
  170. package/dist/utils/easing.js.map +0 -1
@@ -1,311 +0,0 @@
1
- import { useRef, useState, useEffect, useCallback } from 'react';
2
- export function useButtonEffect(options = {}) {
3
- const { duration = 200, easing = 'ease-out', type = 'scale', scaleAmount = 0.95, rippleColor = 'rgba(255, 255, 255, 0.6)', rippleSize = 100, rippleDuration = 600, glowColor = '#3b82f6', glowSize = 20, glowIntensity = 0.8, shakeAmount = 5, shakeFrequency = 10, bounceHeight = 10, bounceStiffness = 0.3, slideDistance = 5, slideDirection = 'down', hoverScale = 1.05, hoverRotate = 0, hoverTranslateY = -2, hoverTranslateX = 0, activeScale = 0.95, activeRotate = 0, activeTranslateY = 2, activeTranslateX = 0, focusScale = 1.02, focusGlow = true, disabled = false, disabledOpacity = 0.5, autoStart = false, onComplete, onStart, onStop, onReset } = options;
4
- const ref = useRef(null);
5
- const [isVisible, setIsVisible] = useState(false);
6
- const [isAnimating, setIsAnimating] = useState(false);
7
- const [progress, setProgress] = useState(0);
8
- const [buttonType] = useState(type);
9
- const [isPressed, setIsPressed] = useState(false);
10
- const [isHovered, setIsHovered] = useState(false);
11
- const [isFocused, setIsFocused] = useState(false);
12
- const [ripplePosition, setRipplePosition] = useState({ x: 0, y: 0 });
13
- const [currentGlowIntensity, setGlowIntensity] = useState(0);
14
- const [shakeOffset, setShakeOffset] = useState(0);
15
- const [bounceOffset, setBounceOffset] = useState(0);
16
- const [slideOffset, setSlideOffset] = useState(0);
17
- const animationRef = useRef(null);
18
- const startTimeRef = useRef(0);
19
- // 리플 효과 함수
20
- const createRipple = useCallback((event) => {
21
- if (!ref.current)
22
- return;
23
- const rect = ref.current.getBoundingClientRect();
24
- const x = event.clientX - rect.left;
25
- const y = event.clientY - rect.top;
26
- setRipplePosition({ x, y });
27
- setIsAnimating(true);
28
- setProgress(0);
29
- startTimeRef.current = Date.now();
30
- onStart?.();
31
- const animateRipple = () => {
32
- const elapsed = Date.now() - startTimeRef.current;
33
- const currentProgress = Math.min(elapsed / rippleDuration, 1);
34
- setProgress(currentProgress);
35
- if (currentProgress < 1) {
36
- animationRef.current = requestAnimationFrame(animateRipple);
37
- }
38
- else {
39
- setIsAnimating(false);
40
- onComplete?.();
41
- }
42
- };
43
- animationRef.current = requestAnimationFrame(animateRipple);
44
- }, [rippleDuration, onStart, onComplete]);
45
- // 흔들림 효과 함수
46
- const shakeButton = useCallback(() => {
47
- setIsAnimating(true);
48
- setProgress(0);
49
- startTimeRef.current = Date.now();
50
- onStart?.();
51
- const animateShake = () => {
52
- const elapsed = Date.now() - startTimeRef.current;
53
- const currentProgress = Math.min(elapsed / duration, 1);
54
- setProgress(currentProgress);
55
- const shake = shakeAmount * Math.sin(currentProgress * Math.PI * 2 * shakeFrequency) * (1 - currentProgress);
56
- setShakeOffset(shake);
57
- if (currentProgress < 1) {
58
- animationRef.current = requestAnimationFrame(animateShake);
59
- }
60
- else {
61
- setIsAnimating(false);
62
- setShakeOffset(0);
63
- onComplete?.();
64
- }
65
- };
66
- animationRef.current = requestAnimationFrame(animateShake);
67
- }, [duration, shakeAmount, shakeFrequency, onStart, onComplete]);
68
- // 바운스 효과 함수
69
- const bounceButton = useCallback(() => {
70
- setIsAnimating(true);
71
- setProgress(0);
72
- startTimeRef.current = Date.now();
73
- onStart?.();
74
- const animateBounce = () => {
75
- const elapsed = Date.now() - startTimeRef.current;
76
- const currentProgress = Math.min(elapsed / duration, 1);
77
- setProgress(currentProgress);
78
- const bounce = bounceHeight * Math.sin(currentProgress * Math.PI * bounceStiffness) * Math.exp(-currentProgress * 3);
79
- setBounceOffset(bounce);
80
- if (currentProgress < 1) {
81
- animationRef.current = requestAnimationFrame(animateBounce);
82
- }
83
- else {
84
- setIsAnimating(false);
85
- setBounceOffset(0);
86
- onComplete?.();
87
- }
88
- };
89
- animationRef.current = requestAnimationFrame(animateBounce);
90
- }, [duration, bounceHeight, bounceStiffness, onStart, onComplete]);
91
- // 슬라이드 효과 함수
92
- const slideButton = useCallback(() => {
93
- setIsAnimating(true);
94
- setProgress(0);
95
- startTimeRef.current = Date.now();
96
- onStart?.();
97
- const animateSlide = () => {
98
- const elapsed = Date.now() - startTimeRef.current;
99
- const currentProgress = Math.min(elapsed / duration, 1);
100
- setProgress(currentProgress);
101
- const slide = slideDistance * currentProgress;
102
- setSlideOffset(slide);
103
- if (currentProgress < 1) {
104
- animationRef.current = requestAnimationFrame(animateSlide);
105
- }
106
- else {
107
- setIsAnimating(false);
108
- onComplete?.();
109
- }
110
- };
111
- animationRef.current = requestAnimationFrame(animateSlide);
112
- }, [duration, slideDistance, onStart, onComplete]);
113
- // 버튼 누르기 함수
114
- const pressButton = useCallback(() => {
115
- if (disabled)
116
- return;
117
- setIsPressed(true);
118
- switch (type) {
119
- case 'ripple':
120
- // 리플은 마우스 이벤트로 처리
121
- break;
122
- case 'shake':
123
- shakeButton();
124
- break;
125
- case 'bounce':
126
- bounceButton();
127
- break;
128
- case 'slide':
129
- slideButton();
130
- break;
131
- default:
132
- // 기본 스케일 효과
133
- break;
134
- }
135
- }, [disabled, type, shakeButton, bounceButton, slideButton]);
136
- // 버튼 놓기 함수
137
- const releaseButton = useCallback(() => {
138
- setIsPressed(false);
139
- }, []);
140
- // 버튼 상태 설정 함수
141
- const setButtonState = useCallback((state) => {
142
- switch (state) {
143
- case 'hover':
144
- setIsHovered(true);
145
- break;
146
- case 'active':
147
- setIsPressed(true);
148
- break;
149
- case 'focus':
150
- setIsFocused(true);
151
- break;
152
- case 'disabled':
153
- setIsHovered(false);
154
- setIsPressed(false);
155
- setIsFocused(false);
156
- break;
157
- default:
158
- setIsHovered(false);
159
- setIsPressed(false);
160
- setIsFocused(false);
161
- break;
162
- }
163
- }, []);
164
- // 모션 시작 함수
165
- const start = useCallback(() => {
166
- if (!isVisible) {
167
- setIsVisible(true);
168
- }
169
- }, [isVisible]);
170
- // 모션 중단 함수
171
- const stop = useCallback(() => {
172
- setIsAnimating(false);
173
- if (animationRef.current) {
174
- cancelAnimationFrame(animationRef.current);
175
- animationRef.current = null;
176
- }
177
- onStop?.();
178
- }, [onStop]);
179
- // 모션 리셋 함수
180
- const reset = useCallback(() => {
181
- setIsVisible(false);
182
- setIsAnimating(false);
183
- setProgress(0);
184
- setIsPressed(false);
185
- setIsHovered(false);
186
- setIsFocused(false);
187
- setRipplePosition({ x: 0, y: 0 });
188
- setGlowIntensity(0);
189
- setShakeOffset(0);
190
- setBounceOffset(0);
191
- setSlideOffset(0);
192
- startTimeRef.current = 0;
193
- if (animationRef.current) {
194
- cancelAnimationFrame(animationRef.current);
195
- animationRef.current = null;
196
- }
197
- onReset?.();
198
- }, [onReset]);
199
- // 모션 일시정지 함수
200
- const pause = useCallback(() => {
201
- setIsAnimating(false);
202
- if (animationRef.current) {
203
- cancelAnimationFrame(animationRef.current);
204
- animationRef.current = null;
205
- }
206
- }, []);
207
- // 모션 재개 함수
208
- const resume = useCallback(() => {
209
- if (isVisible && !isAnimating) {
210
- setIsAnimating(true);
211
- }
212
- }, [isVisible, isAnimating]);
213
- // 자동 시작
214
- useEffect(() => {
215
- if (autoStart) {
216
- start();
217
- }
218
- }, [autoStart, start]);
219
- // 컴포넌트 언마운트 시 정리
220
- useEffect(() => {
221
- return () => {
222
- if (animationRef.current) {
223
- cancelAnimationFrame(animationRef.current);
224
- }
225
- };
226
- }, []);
227
- // 버튼 스타일 계산
228
- const getButtonStyle = () => {
229
- let scale = 1;
230
- let rotate = 0;
231
- let translateY = 0;
232
- let translateX = 0;
233
- let boxShadow = 'none';
234
- // 상태별 효과 적용
235
- if (isPressed) {
236
- scale = activeScale;
237
- rotate = activeRotate;
238
- translateY = activeTranslateY;
239
- translateX = activeTranslateX;
240
- }
241
- else if (isHovered) {
242
- scale = hoverScale;
243
- rotate = hoverRotate;
244
- translateY = hoverTranslateY;
245
- translateX = hoverTranslateX;
246
- }
247
- if (isFocused && focusGlow) {
248
- boxShadow = `0 0 ${glowSize}px ${glowColor}`;
249
- }
250
- // 타입별 추가 효과
251
- switch (type) {
252
- case 'shake':
253
- translateX += shakeOffset;
254
- break;
255
- case 'bounce':
256
- translateY += bounceOffset;
257
- break;
258
- case 'slide':
259
- if (slideDirection === 'left')
260
- translateX -= slideOffset;
261
- else if (slideDirection === 'right')
262
- translateX += slideOffset;
263
- else if (slideDirection === 'up')
264
- translateY -= slideOffset;
265
- else if (slideDirection === 'down')
266
- translateY += slideOffset;
267
- break;
268
- }
269
- const baseStyle = {
270
- transform: `
271
- scale(${scale})
272
- rotate(${rotate}deg)
273
- translate(${translateX}px, ${translateY}px)
274
- `,
275
- boxShadow,
276
- opacity: disabled ? disabledOpacity : 1,
277
- transition: `all ${duration}ms ${easing}`,
278
- willChange: 'transform, box-shadow, opacity',
279
- cursor: disabled ? 'not-allowed' : 'pointer',
280
- position: 'relative',
281
- overflow: 'hidden'
282
- };
283
- return baseStyle;
284
- };
285
- const style = getButtonStyle();
286
- return {
287
- ref,
288
- isVisible,
289
- isAnimating,
290
- style,
291
- progress,
292
- start,
293
- stop,
294
- reset,
295
- pause,
296
- resume,
297
- buttonType: type,
298
- isPressed,
299
- isHovered,
300
- isFocused,
301
- ripplePosition,
302
- currentGlowIntensity,
303
- shakeOffset,
304
- bounceOffset,
305
- slideOffset,
306
- pressButton,
307
- releaseButton,
308
- setButtonState
309
- };
310
- }
311
- //# sourceMappingURL=useButtonEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useButtonEffect.js","sourceRoot":"","sources":["../../src/hooks/useButtonEffect.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { BaseMotionOptions, BaseMotionReturn, MotionElement } from '../types';
2
- export interface CardListOptions extends BaseMotionOptions {
3
- staggerDelay?: number;
4
- cardScale?: number;
5
- cardOpacity?: number;
6
- cardRotate?: number;
7
- cardTranslateY?: number;
8
- cardTranslateX?: number;
9
- initialScale?: number;
10
- initialOpacity?: number;
11
- initialRotate?: number;
12
- initialTranslateY?: number;
13
- initialTranslateX?: number;
14
- gridColumns?: number;
15
- gridGap?: number;
16
- }
17
- export declare function useCardList<T extends MotionElement = HTMLDivElement>(options?: CardListOptions): BaseMotionReturn<T> & {
18
- cardStyles: React.CSSProperties[];
19
- staggerDelay: number;
20
- gridColumns: number;
21
- gridGap: number;
22
- };
23
- //# sourceMappingURL=useCardList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCardList.d.ts","sourceRoot":"","sources":["../../src/hooks/useCardList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7E,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,GAAG,cAAc,EAClE,OAAO,GAAE,eAAoB,GAC5B,gBAAgB,CAAC,CAAC,CAAC,GAAG;IACvB,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE,CAAA;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,CAuJA"}
@@ -1,119 +0,0 @@
1
- import { useRef, useState, useEffect, useCallback } from 'react';
2
- export function useCardList(options = {}) {
3
- const { duration = 500, easing = 'ease-out', staggerDelay = 100, cardScale = 1, cardOpacity = 1, cardRotate = 0, cardTranslateY = 0, cardTranslateX = 0, initialScale = 0.8, initialOpacity = 0, initialRotate = 0, initialTranslateY = 30, initialTranslateX = 0, gridColumns = 3, gridGap = 20, onComplete, onStart, onStop, onReset } = options;
4
- const ref = useRef(null);
5
- const [isVisible, setIsVisible] = useState(false);
6
- const [isAnimating, setIsAnimating] = useState(false);
7
- const [progress, setProgress] = useState(0);
8
- const [cardCount, setCardCount] = useState(0);
9
- const observerRef = useRef(null);
10
- // 카드 개수 계산
11
- useEffect(() => {
12
- if (ref.current) {
13
- const cards = ref.current.querySelectorAll('[data-card]');
14
- setCardCount(cards.length);
15
- }
16
- }, []);
17
- // 카드 스타일 배열 생성
18
- const cardStyles = Array.from({ length: cardCount }, (_, index) => {
19
- const delay = isVisible ? index * staggerDelay : 0;
20
- const isCardVisible = isVisible && delay <= progress * (cardCount * staggerDelay);
21
- return {
22
- transform: `
23
- scale(${isCardVisible ? cardScale : initialScale})
24
- rotate(${isCardVisible ? cardRotate : initialRotate}deg)
25
- translate(${isCardVisible ? cardTranslateX : initialTranslateX}px, ${isCardVisible ? cardTranslateY : initialTranslateY}px)
26
- `,
27
- opacity: isCardVisible ? cardOpacity : initialOpacity,
28
- transition: `all ${duration}ms ${easing} ${delay}ms`,
29
- willChange: 'transform, opacity'
30
- };
31
- });
32
- // 모션 시작 함수
33
- const start = useCallback(() => {
34
- if (isAnimating)
35
- return;
36
- setIsAnimating(true);
37
- setProgress(0);
38
- onStart?.();
39
- // 카드들이 순차적으로 나타나도록
40
- const totalDuration = cardCount * staggerDelay + duration;
41
- const interval = setInterval(() => {
42
- setProgress(prev => {
43
- const newProgress = prev + 0.1;
44
- if (newProgress >= 1) {
45
- setIsVisible(true);
46
- setIsAnimating(false);
47
- onComplete?.();
48
- clearInterval(interval);
49
- return 1;
50
- }
51
- return newProgress;
52
- });
53
- }, totalDuration / 10);
54
- }, [isAnimating, cardCount, staggerDelay, duration, onStart, onComplete]);
55
- // 모션 중단 함수
56
- const stop = useCallback(() => {
57
- setIsAnimating(false);
58
- onStop?.();
59
- }, [onStop]);
60
- // 모션 리셋 함수
61
- const reset = useCallback(() => {
62
- setIsVisible(false);
63
- setIsAnimating(false);
64
- setProgress(0);
65
- onReset?.();
66
- }, [onReset]);
67
- // 모션 일시정지 함수
68
- const pause = useCallback(() => {
69
- setIsAnimating(false);
70
- }, []);
71
- // 모션 재개 함수
72
- const resume = useCallback(() => {
73
- if (!isVisible && !isAnimating) {
74
- start();
75
- }
76
- }, [isVisible, isAnimating, start]);
77
- // Intersection Observer 설정
78
- useEffect(() => {
79
- if (!ref.current)
80
- return;
81
- observerRef.current = new IntersectionObserver((entries) => {
82
- entries.forEach((entry) => {
83
- if (entry.isIntersecting) {
84
- start();
85
- }
86
- });
87
- }, { threshold: 0.1 });
88
- observerRef.current.observe(ref.current);
89
- return () => {
90
- if (observerRef.current) {
91
- observerRef.current.disconnect();
92
- }
93
- };
94
- }, [start]);
95
- // 그리드 스타일
96
- const gridStyle = {
97
- display: 'grid',
98
- gridTemplateColumns: `repeat(${gridColumns}, 1fr)`,
99
- gap: `${gridGap}px`,
100
- width: '100%'
101
- };
102
- return {
103
- ref,
104
- isVisible,
105
- isAnimating,
106
- style: gridStyle,
107
- progress,
108
- start,
109
- stop,
110
- reset,
111
- pause,
112
- resume,
113
- cardStyles,
114
- staggerDelay,
115
- gridColumns,
116
- gridGap
117
- };
118
- }
119
- //# sourceMappingURL=useCardList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCardList.js","sourceRoot":"","sources":["../../src/hooks/useCardList.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- interface ClickToggleOptions {
2
- initialState?: boolean;
3
- toggleOnClick?: boolean;
4
- toggleOnDoubleClick?: boolean;
5
- toggleOnRightClick?: boolean;
6
- toggleOnEnter?: boolean;
7
- toggleOnSpace?: boolean;
8
- autoReset?: boolean;
9
- resetDelay?: number;
10
- preventDefault?: boolean;
11
- stopPropagation?: boolean;
12
- showOnMount?: boolean;
13
- }
14
- interface ClickToggleReturn {
15
- isActive: boolean;
16
- mounted: boolean;
17
- toggle: () => void;
18
- activate: () => void;
19
- deactivate: () => void;
20
- reset: () => void;
21
- clickHandlers: {
22
- onClick?: (event: React.MouseEvent) => void;
23
- onDoubleClick?: (event: React.MouseEvent) => void;
24
- onContextMenu?: (event: React.MouseEvent) => void;
25
- onKeyDown?: (event: React.KeyboardEvent) => void;
26
- };
27
- }
28
- export declare function useClickToggle(options?: ClickToggleOptions): ClickToggleReturn;
29
- export {};
30
- //# sourceMappingURL=useClickToggle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClickToggle.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickToggle.ts"],"names":[],"mappings":"AAEA,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE;QACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;QAC3C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;QACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;QACjD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;KACjD,CAAA;CACF;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAgKlF"}
@@ -1,137 +0,0 @@
1
- import { useState, useEffect, useRef, useCallback } from 'react';
2
- export function useClickToggle(options = {}) {
3
- const { initialState = false, toggleOnClick = true, toggleOnDoubleClick = false, toggleOnRightClick = false, toggleOnEnter = true, toggleOnSpace = true, autoReset = false, resetDelay = 3000, preventDefault = false, stopPropagation = false, showOnMount = false } = options;
4
- const [isActive, setIsActive] = useState(showOnMount ? initialState : false);
5
- const [mounted, setMounted] = useState(false);
6
- const resetTimeoutRef = useRef(null);
7
- // 하이드레이션 이슈 해결을 위한 mounted 상태 관리
8
- useEffect(() => {
9
- setMounted(true);
10
- }, []);
11
- // 자동 리셋 타이머 관리
12
- const startResetTimer = useCallback(() => {
13
- if (!autoReset || resetDelay <= 0)
14
- return;
15
- // 기존 타이머 클리어
16
- if (resetTimeoutRef.current !== null) {
17
- clearTimeout(resetTimeoutRef.current);
18
- }
19
- // 새 타이머 설정
20
- resetTimeoutRef.current = window.setTimeout(() => {
21
- setIsActive(false);
22
- resetTimeoutRef.current = null;
23
- }, resetDelay);
24
- }, [autoReset, resetDelay]);
25
- // 토글 함수
26
- const toggle = useCallback(() => {
27
- if (!mounted)
28
- return;
29
- setIsActive(prev => {
30
- const newState = !prev;
31
- // 자동 리셋 타이머 시작
32
- if (newState && autoReset) {
33
- startResetTimer();
34
- }
35
- else if (!newState && resetTimeoutRef.current !== null) {
36
- // 비활성화 시 타이머 클리어
37
- clearTimeout(resetTimeoutRef.current);
38
- resetTimeoutRef.current = null;
39
- }
40
- return newState;
41
- });
42
- }, [mounted, autoReset, startResetTimer]);
43
- // 활성화 함수
44
- const activate = useCallback(() => {
45
- if (!mounted || isActive)
46
- return;
47
- setIsActive(true);
48
- if (autoReset) {
49
- startResetTimer();
50
- }
51
- }, [mounted, isActive, autoReset, startResetTimer]);
52
- // 비활성화 함수
53
- const deactivate = useCallback(() => {
54
- if (!mounted || !isActive)
55
- return;
56
- setIsActive(false);
57
- if (resetTimeoutRef.current !== null) {
58
- clearTimeout(resetTimeoutRef.current);
59
- resetTimeoutRef.current = null;
60
- }
61
- }, [mounted, isActive]);
62
- // 리셋 함수
63
- const reset = useCallback(() => {
64
- setIsActive(initialState);
65
- if (resetTimeoutRef.current !== null) {
66
- clearTimeout(resetTimeoutRef.current);
67
- resetTimeoutRef.current = null;
68
- }
69
- }, [initialState]);
70
- // 클릭 핸들러
71
- const handleClick = useCallback((event) => {
72
- if (!toggleOnClick)
73
- return;
74
- if (preventDefault)
75
- event.preventDefault();
76
- if (stopPropagation)
77
- event.stopPropagation();
78
- toggle();
79
- }, [toggleOnClick, preventDefault, stopPropagation, toggle]);
80
- // 더블클릭 핸들러
81
- const handleDoubleClick = useCallback((event) => {
82
- if (!toggleOnDoubleClick)
83
- return;
84
- if (preventDefault)
85
- event.preventDefault();
86
- if (stopPropagation)
87
- event.stopPropagation();
88
- toggle();
89
- }, [toggleOnDoubleClick, preventDefault, stopPropagation, toggle]);
90
- // 우클릭 핸들러
91
- const handleContextMenu = useCallback((event) => {
92
- if (!toggleOnRightClick)
93
- return;
94
- if (preventDefault)
95
- event.preventDefault();
96
- if (stopPropagation)
97
- event.stopPropagation();
98
- toggle();
99
- }, [toggleOnRightClick, preventDefault, stopPropagation, toggle]);
100
- // 키보드 핸들러
101
- const handleKeyDown = useCallback((event) => {
102
- const shouldToggle = (event.key === 'Enter' && toggleOnEnter) ||
103
- (event.key === ' ' && toggleOnSpace);
104
- if (!shouldToggle)
105
- return;
106
- if (preventDefault)
107
- event.preventDefault();
108
- if (stopPropagation)
109
- event.stopPropagation();
110
- toggle();
111
- }, [toggleOnEnter, toggleOnSpace, preventDefault, stopPropagation, toggle]);
112
- // 클린업
113
- useEffect(() => {
114
- return () => {
115
- if (resetTimeoutRef.current !== null) {
116
- clearTimeout(resetTimeoutRef.current);
117
- }
118
- };
119
- }, []);
120
- // 클릭 핸들러 객체 생성
121
- const clickHandlers = {
122
- ...(toggleOnClick && { onClick: handleClick }),
123
- ...(toggleOnDoubleClick && { onDoubleClick: handleDoubleClick }),
124
- ...(toggleOnRightClick && { onContextMenu: handleContextMenu }),
125
- ...((toggleOnEnter || toggleOnSpace) && { onKeyDown: handleKeyDown })
126
- };
127
- return {
128
- isActive,
129
- mounted,
130
- toggle,
131
- activate,
132
- deactivate,
133
- reset,
134
- clickHandlers
135
- };
136
- }
137
- //# sourceMappingURL=useClickToggle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClickToggle.js","sourceRoot":"","sources":["../../src/hooks/useClickToggle.ts"],"names":[],"mappings":"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"}