@hua-labs/motion-core 2.1.0-alpha.6 → 2.1.0-alpha.8

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 (174) hide show
  1. package/README.md +16 -10
  2. package/dist/index.d.mts +1091 -0
  3. package/dist/index.d.ts +1091 -35
  4. package/dist/index.js +4241 -65
  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 +7 -4
  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/useStaggerMotion.d.ts +0 -81
  139. package/dist/hooks/useStaggerMotion.d.ts.map +0 -1
  140. package/dist/hooks/useStaggerMotion.js +0 -113
  141. package/dist/hooks/useStaggerMotion.js.map +0 -1
  142. package/dist/hooks/useToggleMotion.d.ts +0 -16
  143. package/dist/hooks/useToggleMotion.d.ts.map +0 -1
  144. package/dist/hooks/useToggleMotion.js +0 -53
  145. package/dist/hooks/useToggleMotion.js.map +0 -1
  146. package/dist/hooks/useUnifiedMotion.d.ts +0 -51
  147. package/dist/hooks/useUnifiedMotion.d.ts.map +0 -1
  148. package/dist/hooks/useUnifiedMotion.js +0 -106
  149. package/dist/hooks/useUnifiedMotion.js.map +0 -1
  150. package/dist/hooks/useVisibilityToggle.d.ts +0 -15
  151. package/dist/hooks/useVisibilityToggle.d.ts.map +0 -1
  152. package/dist/hooks/useVisibilityToggle.js +0 -106
  153. package/dist/hooks/useVisibilityToggle.js.map +0 -1
  154. package/dist/index.d.ts.map +0 -1
  155. package/dist/managers/MotionStateManager.d.ts +0 -63
  156. package/dist/managers/MotionStateManager.d.ts.map +0 -1
  157. package/dist/managers/MotionStateManager.js +0 -159
  158. package/dist/managers/MotionStateManager.js.map +0 -1
  159. package/dist/presets/index.d.ts +0 -16
  160. package/dist/presets/index.d.ts.map +0 -1
  161. package/dist/presets/index.js +0 -120
  162. package/dist/presets/index.js.map +0 -1
  163. package/dist/types/common.d.ts +0 -155
  164. package/dist/types/common.d.ts.map +0 -1
  165. package/dist/types/common.js +0 -5
  166. package/dist/types/common.js.map +0 -1
  167. package/dist/types/index.d.ts +0 -77
  168. package/dist/types/index.d.ts.map +0 -1
  169. package/dist/types/index.js +0 -5
  170. package/dist/types/index.js.map +0 -1
  171. package/dist/utils/easing.d.ts +0 -98
  172. package/dist/utils/easing.d.ts.map +0 -1
  173. package/dist/utils/easing.js +0 -233
  174. package/dist/utils/easing.js.map +0 -1
@@ -1,159 +0,0 @@
1
- /**
2
- * MotionStateManager - 모션 상태 관리 클래스
3
- *
4
- * 상태 충돌 문제 해결을 위해 3가지 상태를 분리:
5
- * - internalVisibility: 내부 로직 (초기화, 리셋 등)
6
- * - triggeredVisibility: 외부 트리거 (Intersection Observer)
7
- * - finalVisibility: 최종 계산된 상태
8
- */
9
- export class MotionStateManager {
10
- constructor() {
11
- this.states = new Map();
12
- this.listeners = new Map();
13
- }
14
- /**
15
- * 요소의 상태를 초기화
16
- */
17
- initializeElement(elementId, config) {
18
- const initialState = {
19
- internalVisibility: false, // 초기에 숨김 상태로 시작 (스크롤 리빌용)
20
- triggeredVisibility: false, // Intersection Observer가 아직 트리거되지 않음
21
- finalVisibility: false, // 초기에 숨김 상태로 시작
22
- opacity: 0, // 초기에 투명 상태로 시작
23
- translateY: 20, // 초기에 아래로 이동된 상태로 시작
24
- translateX: 0,
25
- scale: 0.95, // 초기에 약간 축소된 상태로 시작
26
- rotation: 0,
27
- isHovered: false,
28
- isClicked: false,
29
- isAnimating: false
30
- };
31
- this.states.set(elementId, initialState);
32
- this.computeFinalState(elementId);
33
- }
34
- /**
35
- * 내부 가시성 상태 업데이트 (초기화, 리셋 등)
36
- */
37
- setInternalVisibility(elementId, visible) {
38
- const state = this.states.get(elementId);
39
- if (!state)
40
- return;
41
- state.internalVisibility = visible;
42
- this.computeFinalState(elementId);
43
- this.notifyListeners(elementId, state);
44
- }
45
- /**
46
- * 외부 트리거 가시성 상태 업데이트 (Intersection Observer)
47
- */
48
- setTriggeredVisibility(elementId, visible) {
49
- const state = this.states.get(elementId);
50
- if (!state)
51
- return;
52
- state.triggeredVisibility = visible;
53
- this.computeFinalState(elementId);
54
- this.notifyListeners(elementId, state);
55
- }
56
- /**
57
- * 모션 값 업데이트
58
- */
59
- updateMotionValues(elementId, values) {
60
- const state = this.states.get(elementId);
61
- if (!state)
62
- return;
63
- Object.assign(state, values);
64
- this.notifyListeners(elementId, state);
65
- }
66
- /**
67
- * 최종 상태 계산
68
- */
69
- computeFinalState(elementId) {
70
- const state = this.states.get(elementId);
71
- if (!state)
72
- return;
73
- // 내부 또는 외부 트리거 중 하나라도 true면 최종적으로 보임
74
- state.finalVisibility = state.internalVisibility || state.triggeredVisibility;
75
- // 모션 중 상태 업데이트
76
- state.isAnimating = state.finalVisibility && (state.opacity < 1 || state.translateY > 0);
77
- }
78
- /**
79
- * 현재 상태 조회
80
- */
81
- getState(elementId) {
82
- return this.states.get(elementId);
83
- }
84
- /**
85
- * 모든 상태 조회
86
- */
87
- getAllStates() {
88
- return new Map(this.states);
89
- }
90
- /**
91
- * 상태 변경 리스너 등록
92
- */
93
- subscribe(elementId, listener) {
94
- if (!this.listeners.has(elementId)) {
95
- this.listeners.set(elementId, new Set());
96
- }
97
- this.listeners.get(elementId).add(listener);
98
- // 구독 해제 함수 반환
99
- return () => {
100
- const listeners = this.listeners.get(elementId);
101
- if (listeners) {
102
- listeners.delete(listener);
103
- }
104
- };
105
- }
106
- /**
107
- * 리스너들에게 상태 변경 알림
108
- */
109
- notifyListeners(elementId, state) {
110
- const listeners = this.listeners.get(elementId);
111
- if (!listeners)
112
- return;
113
- listeners.forEach(listener => {
114
- try {
115
- listener(state);
116
- }
117
- catch (error) {
118
- if (process.env.NODE_ENV === 'development') {
119
- console.error(`MotionStateManager listener error for ${elementId}:`, error);
120
- }
121
- }
122
- });
123
- }
124
- /**
125
- * 모든 상태 초기화
126
- */
127
- reset() {
128
- this.states.clear();
129
- this.listeners.clear();
130
- }
131
- /**
132
- * 특정 요소 상태 초기화
133
- */
134
- resetElement(elementId) {
135
- this.states.delete(elementId);
136
- this.listeners.delete(elementId);
137
- }
138
- /**
139
- * 디버그용 상태 출력
140
- */
141
- debug() {
142
- if (process.env.NODE_ENV === 'development') {
143
- console.log('MotionStateManager Debug:');
144
- this.states.forEach((state, elementId) => {
145
- console.log(` ${elementId}:`, {
146
- internalVisibility: state.internalVisibility,
147
- triggeredVisibility: state.triggeredVisibility,
148
- finalVisibility: state.finalVisibility,
149
- opacity: state.opacity,
150
- translateY: state.translateY,
151
- isAnimating: state.isAnimating
152
- });
153
- });
154
- }
155
- }
156
- }
157
- // 싱글톤 인스턴스
158
- export const motionStateManager = new MotionStateManager();
159
- //# sourceMappingURL=MotionStateManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MotionStateManager.js","sourceRoot":"","sources":["../../src/managers/MotionStateManager.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { MotionPreset, PresetConfig, PageType, PageMotionsConfig } from '../types';
2
- export declare const MOTION_PRESETS: PresetConfig;
3
- export declare const PAGE_MOTIONS: Record<PageType, PageMotionsConfig>;
4
- /**
5
- * 프리셋과 커스텀 설정을 병합
6
- */
7
- export declare function mergeWithPreset(preset: MotionPreset, custom?: Partial<MotionPreset>): MotionPreset;
8
- /**
9
- * 페이지 타입으로 프리셋 가져오기
10
- */
11
- export declare function getPagePreset(pageType: PageType): PageMotionsConfig;
12
- /**
13
- * 모션 타입으로 기본 프리셋 가져오기
14
- */
15
- export declare function getMotionPreset(type: string): MotionPreset;
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAMvF,eAAO,MAAM,cAAc,EAAE,YA2C5B,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CA4C5D,CAAA;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,YAAY,CAKd;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,CAEnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE1D"}
@@ -1,120 +0,0 @@
1
- // ========================================
2
- // HUA Motion SDK - Preset System
3
- // ========================================
4
- // ========================================
5
- // 기본 모션 프리셋
6
- // ========================================
7
- export const MOTION_PRESETS = {
8
- hero: {
9
- entrance: 'fadeIn',
10
- delay: 200,
11
- duration: 800,
12
- hover: false,
13
- click: false
14
- },
15
- title: {
16
- entrance: 'slideUp',
17
- delay: 400,
18
- duration: 700,
19
- hover: false,
20
- click: false
21
- },
22
- button: {
23
- entrance: 'scaleIn',
24
- delay: 600,
25
- duration: 300,
26
- hover: true,
27
- click: true
28
- },
29
- card: {
30
- entrance: 'slideUp',
31
- delay: 800,
32
- duration: 500,
33
- hover: true,
34
- click: false
35
- },
36
- text: {
37
- entrance: 'fadeIn',
38
- delay: 200,
39
- duration: 600,
40
- hover: false,
41
- click: false
42
- },
43
- image: {
44
- entrance: 'scaleIn',
45
- delay: 400,
46
- duration: 600,
47
- hover: true,
48
- click: false
49
- }
50
- };
51
- // ========================================
52
- // 페이지별 프리셋 (1단계: useSimplePageMotion)
53
- // ========================================
54
- export const PAGE_MOTIONS = {
55
- // 홈페이지
56
- home: {
57
- hero: { type: 'hero' },
58
- title: { type: 'title' },
59
- description: { type: 'text' },
60
- cta: { type: 'button' },
61
- feature1: { type: 'card' },
62
- feature2: { type: 'card' },
63
- feature3: { type: 'card' }
64
- },
65
- // 대시보드
66
- dashboard: {
67
- header: { type: 'hero' },
68
- sidebar: { type: 'card', entrance: 'slideLeft' },
69
- main: { type: 'text', entrance: 'fadeIn' },
70
- card1: { type: 'card' },
71
- card2: { type: 'card' },
72
- card3: { type: 'card' },
73
- chart: { type: 'image' }
74
- },
75
- // 제품 페이지
76
- product: {
77
- hero: { type: 'hero' },
78
- title: { type: 'title' },
79
- image: { type: 'image' },
80
- description: { type: 'text' },
81
- price: { type: 'text' },
82
- buyButton: { type: 'button' },
83
- features: { type: 'card' }
84
- },
85
- // 블로그
86
- blog: {
87
- header: { type: 'hero' },
88
- title: { type: 'title' },
89
- content: { type: 'text' },
90
- sidebar: { type: 'card', entrance: 'slideRight' },
91
- related1: { type: 'card' },
92
- related2: { type: 'card' },
93
- related3: { type: 'card' }
94
- }
95
- };
96
- // ========================================
97
- // 프리셋 유틸리티 함수
98
- // ========================================
99
- /**
100
- * 프리셋과 커스텀 설정을 병합
101
- */
102
- export function mergeWithPreset(preset, custom = {}) {
103
- return {
104
- ...preset,
105
- ...custom
106
- };
107
- }
108
- /**
109
- * 페이지 타입으로 프리셋 가져오기
110
- */
111
- export function getPagePreset(pageType) {
112
- return PAGE_MOTIONS[pageType];
113
- }
114
- /**
115
- * 모션 타입으로 기본 프리셋 가져오기
116
- */
117
- export function getMotionPreset(type) {
118
- return MOTION_PRESETS[type] || MOTION_PRESETS.text;
119
- }
120
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"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"}
@@ -1,155 +0,0 @@
1
- import { RefObject, CSSProperties } from 'react';
2
- export type MotionElement = HTMLDivElement | HTMLSpanElement | HTMLButtonElement | HTMLHeadingElement | HTMLParagraphElement | HTMLImageElement;
3
- export type MotionRef<T extends MotionElement = HTMLDivElement> = RefObject<T | null>;
4
- export type MotionStyle = CSSProperties & {
5
- '--motion-delay'?: string;
6
- '--motion-duration'?: string;
7
- '--motion-easing'?: string;
8
- '--motion-progress'?: string;
9
- };
10
- export interface BaseMotionOptions {
11
- /** 모션 시작 지연 시간 (ms) */
12
- delay?: number;
13
- /** 모션 지속 시간 (ms) */
14
- duration?: number;
15
- /** Intersection Observer 임계값 (0-1) */
16
- threshold?: number;
17
- /** 한 번만 트리거할지 여부 */
18
- triggerOnce?: boolean;
19
- /** 이징 함수명 */
20
- easing?: string;
21
- /** 자동 시작 여부 */
22
- autoStart?: boolean;
23
- /** 모션 완료 시 콜백 */
24
- onComplete?: () => void;
25
- /** 모션 시작 시 콜백 */
26
- onStart?: () => void;
27
- /** 모션 중단 시 콜백 */
28
- onStop?: () => void;
29
- /** 모션 리셋 시 콜백 */
30
- onReset?: () => void;
31
- }
32
- export interface BaseMotionReturn<T extends MotionElement = HTMLDivElement> {
33
- /** DOM 요소 참조 (React 19 호환) */
34
- ref: React.RefObject<T | null>;
35
- /** 요소가 화면에 보이는지 여부 */
36
- isVisible: boolean;
37
- /** 모션이 진행 중인지 여부 */
38
- isAnimating: boolean;
39
- /** 적용할 CSS 스타일 (React 19 호환) - useFadeIn 등에서는 항상 반환됨 */
40
- style: MotionStyle;
41
- /** 적용할 CSS 클래스명 */
42
- className?: string;
43
- /** 모션 진행률 (0-1) - useFadeIn 등에서는 항상 반환됨 */
44
- progress: number;
45
- /** 모션 시작 함수 - useFadeIn 등에서는 항상 반환됨 */
46
- start: () => void;
47
- /** 모션 리셋 함수 - useFadeIn 등에서는 항상 반환됨 */
48
- reset: () => void;
49
- /** 모션 중단 함수 - useFadeIn 등에서는 항상 반환됨 */
50
- stop: () => void;
51
- /** 모션 일시정지 함수 - 일부 훅에서만 제공 */
52
- pause?: () => void;
53
- /** 모션 재개 함수 - 일부 훅에서만 제공 */
54
- resume?: () => void;
55
- }
56
- export interface InteractionReturn<T extends MotionElement = HTMLDivElement> extends BaseMotionReturn<T> {
57
- /** 가시성 토글 함수 */
58
- toggle?: () => void;
59
- /** 표시 함수 */
60
- show?: () => void;
61
- /** 숨김 함수 */
62
- hide?: () => void;
63
- }
64
- export interface FadeInOptions extends BaseMotionOptions {
65
- /** 초기 투명도 */
66
- initialOpacity?: number;
67
- /** 목표 투명도 */
68
- targetOpacity?: number;
69
- }
70
- export interface SlideOptions extends BaseMotionOptions {
71
- /** 슬라이드 방향 */
72
- direction?: 'up' | 'down' | 'left' | 'right';
73
- /** 슬라이드 거리 (px) */
74
- distance?: number;
75
- }
76
- export interface ScaleOptions extends BaseMotionOptions {
77
- /** 초기 스케일 */
78
- initialScale?: number;
79
- /** 목표 스케일 */
80
- targetScale?: number;
81
- }
82
- export interface BounceOptions extends BaseMotionOptions {
83
- /** 바운스 강도 */
84
- intensity?: number;
85
- /** 바운스 횟수 */
86
- bounces?: number;
87
- }
88
- export interface PulseOptions extends BaseMotionOptions {
89
- /** 펄스 강도 */
90
- intensity?: number;
91
- /** 반복 횟수 (-1 = 무한) */
92
- repeatCount?: number;
93
- /** 반복 간격 (ms) */
94
- repeatDelay?: number;
95
- }
96
- export interface SpringOptions extends BaseMotionOptions {
97
- /** 스프링 질량 */
98
- mass?: number;
99
- /** 스프링 강성 */
100
- stiffness?: number;
101
- /** 스프링 감쇠 */
102
- damping?: number;
103
- /** 정지 임계값 */
104
- restDelta?: number;
105
- /** 정지 속도 */
106
- restSpeed?: number;
107
- }
108
- export interface GestureOptions extends BaseMotionOptions {
109
- /** 호버 제스처 활성화 */
110
- hover?: boolean;
111
- /** 드래그 제스처 활성화 */
112
- drag?: boolean;
113
- /** 핀치 제스처 활성화 */
114
- pinch?: boolean;
115
- /** 스와이프 제스처 활성화 */
116
- swipe?: boolean;
117
- /** 틸트 제스처 활성화 */
118
- tilt?: boolean;
119
- }
120
- export interface OrchestrationOptions extends BaseMotionOptions {
121
- /** 모션 시퀀스 타입 */
122
- sequence?: 'sequential' | 'parallel' | 'stagger';
123
- /** 스태거 지연 시간 */
124
- staggerDelay?: number;
125
- /** 스태거 지속 시간 */
126
- staggerDuration?: number;
127
- }
128
- export type MotionDirection = 'up' | 'down' | 'left' | 'right';
129
- export type MotionEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bounce' | 'elastic';
130
- export type MotionSequence = 'sequential' | 'parallel' | 'stagger';
131
- export type MotionTrigger = 'scroll' | 'click' | 'hover' | 'focus' | 'auto';
132
- export type MotionCallback = () => void;
133
- export type MotionProgressCallback = (progress: number) => void;
134
- export type MotionStateCallback<T extends MotionElement = HTMLDivElement> = (state: BaseMotionReturn<T>) => void;
135
- export interface PerformanceMetrics {
136
- /** 모션 시작 시간 */
137
- startTime: number;
138
- /** 모션 종료 시간 */
139
- endTime?: number;
140
- /** 총 지속 시간 */
141
- duration: number;
142
- /** FPS */
143
- fps: number;
144
- /** 메모리 사용량 */
145
- memoryUsage?: number;
146
- }
147
- export interface MotionConfig {
148
- /** 성능 모니터링 활성화 */
149
- enablePerformanceMonitoring?: boolean;
150
- /** 디버그 모드 활성화 */
151
- debug?: boolean;
152
- /** 로그 레벨 */
153
- logLevel?: 'none' | 'error' | 'warn' | 'info' | 'debug';
154
- }
155
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- // ========================================
2
- // HUA Motion SDK - 공통 타입 정의 (React 19 호환)
3
- // ========================================
4
- export {};
5
- //# sourceMappingURL=common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,0CAA0C;AAC1C,2CAA2C"}
@@ -1,77 +0,0 @@
1
- import { BaseMotionOptions, BaseMotionReturn } from './common';
2
- export * from './common';
3
- export type PageType = 'home' | 'dashboard' | 'product' | 'blog';
4
- export type MotionType = 'hero' | 'title' | 'button' | 'card' | 'text' | 'image';
5
- export type EntranceType = 'fadeIn' | 'slideUp' | 'slideLeft' | 'slideRight' | 'scaleIn' | 'bounceIn';
6
- export interface PageMotionElement {
7
- type: MotionType;
8
- entrance?: EntranceType;
9
- hover?: boolean;
10
- click?: boolean;
11
- delay?: number;
12
- duration?: number;
13
- threshold?: number;
14
- }
15
- export interface PageMotionsConfig {
16
- [elementId: string]: PageMotionElement;
17
- }
18
- export interface MotionState {
19
- internalVisibility: boolean;
20
- triggeredVisibility: boolean;
21
- finalVisibility: boolean;
22
- opacity: number;
23
- translateY: number;
24
- translateX: number;
25
- scale: number;
26
- rotation: number;
27
- isHovered: boolean;
28
- isClicked: boolean;
29
- isAnimating: boolean;
30
- }
31
- export interface MotionRef<T extends HTMLElement = HTMLElement> {
32
- ref: React.RefObject<T | null>;
33
- style: React.CSSProperties;
34
- isVisible: boolean;
35
- isHovered: boolean;
36
- isClicked: boolean;
37
- }
38
- export interface SmartMotionOptions<T extends HTMLElement = HTMLElement> extends BaseMotionOptions {
39
- type?: MotionType;
40
- entrance?: EntranceType;
41
- hover?: boolean;
42
- click?: boolean;
43
- }
44
- export interface SmartMotionReturn<T extends HTMLElement = HTMLElement> extends BaseMotionReturn<T> {
45
- isHovered: boolean;
46
- isClicked: boolean;
47
- }
48
- export interface MotionPreset {
49
- entrance: EntranceType;
50
- delay: number;
51
- duration: number;
52
- hover: boolean;
53
- click: boolean;
54
- }
55
- export interface PresetConfig {
56
- [key: string]: MotionPreset;
57
- }
58
- export interface SpringConfig {
59
- mass?: number;
60
- stiffness?: number;
61
- damping?: number;
62
- restDelta?: number;
63
- restSpeed?: number;
64
- }
65
- export interface GestureConfig {
66
- hover?: boolean;
67
- drag?: boolean;
68
- pinch?: boolean;
69
- swipe?: boolean;
70
- tilt?: boolean;
71
- }
72
- export interface OrchestrationConfig {
73
- sequence?: 'sequential' | 'parallel' | 'stagger';
74
- staggerDelay?: number;
75
- staggerDuration?: number;
76
- }
77
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- // ========================================
2
- // HUA Motion Core - 타입 정의 (원본과 동일)
3
- // ========================================
4
- export * from './common';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,mCAAmC;AACnC,2CAA2C;AAI3C,cAAc,UAAU,CAAA"}