@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.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 (304) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.esm.js +30 -24
  3. package/dist/components/ui/accessibility-demo.js +30 -24
  4. package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
  5. package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
  6. package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
  7. package/dist/components/ui/advanced-transition-system-demo.js +110 -64
  8. package/dist/components/ui/advanced-transition-system.esm.js +166 -122
  9. package/dist/components/ui/advanced-transition-system.js +166 -122
  10. package/dist/components/ui/animation/animated-container.esm.js +52 -29
  11. package/dist/components/ui/animation/animated-container.js +52 -29
  12. package/dist/components/ui/animation/staggered-container.esm.js +18 -9
  13. package/dist/components/ui/animation/staggered-container.js +18 -9
  14. package/dist/components/ui/animation-demo.esm.js +67 -35
  15. package/dist/components/ui/animation-demo.js +67 -35
  16. package/dist/components/ui/badge.esm.js +9 -6
  17. package/dist/components/ui/badge.js +9 -6
  18. package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
  19. package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
  20. package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
  21. package/dist/components/ui/border-radius-shadow-demo.js +23 -12
  22. package/dist/components/ui/button.esm.js +8 -2
  23. package/dist/components/ui/button.js +8 -2
  24. package/dist/components/ui/card.esm.js +33 -8
  25. package/dist/components/ui/card.js +33 -8
  26. package/dist/components/ui/checkbox.esm.js +3 -3
  27. package/dist/components/ui/checkbox.js +3 -3
  28. package/dist/components/ui/color-preview.esm.js +68 -45
  29. package/dist/components/ui/color-preview.js +68 -45
  30. package/dist/components/ui/data-display/chart.esm.js +112 -84
  31. package/dist/components/ui/data-display/chart.js +112 -84
  32. package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
  33. package/dist/components/ui/data-display/data-grid-simple.js +1 -1
  34. package/dist/components/ui/data-display/data-grid.esm.js +80 -67
  35. package/dist/components/ui/data-display/data-grid.js +80 -67
  36. package/dist/components/ui/data-display/list.esm.js +53 -45
  37. package/dist/components/ui/data-display/list.js +53 -45
  38. package/dist/components/ui/data-display/table.esm.js +62 -54
  39. package/dist/components/ui/data-display/table.js +62 -54
  40. package/dist/components/ui/data-display/timeline.esm.js +39 -34
  41. package/dist/components/ui/data-display/timeline.js +39 -34
  42. package/dist/components/ui/data-display/tree.esm.js +116 -84
  43. package/dist/components/ui/data-display/tree.js +116 -84
  44. package/dist/components/ui/data-display/types.esm.js +389 -364
  45. package/dist/components/ui/data-display/types.js +389 -364
  46. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
  47. package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
  48. package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
  49. package/dist/components/ui/enterprise-mobile-experience.js +124 -73
  50. package/dist/components/ui/feedback/alert.esm.js +22 -15
  51. package/dist/components/ui/feedback/alert.js +22 -15
  52. package/dist/components/ui/feedback/progress.esm.js +47 -24
  53. package/dist/components/ui/feedback/progress.js +47 -24
  54. package/dist/components/ui/feedback/skeleton.esm.js +39 -29
  55. package/dist/components/ui/feedback/skeleton.js +39 -29
  56. package/dist/components/ui/feedback/toast.esm.js +62 -38
  57. package/dist/components/ui/feedback/toast.js +62 -38
  58. package/dist/components/ui/feedback/types.esm.js +83 -83
  59. package/dist/components/ui/feedback/types.js +83 -83
  60. package/dist/components/ui/font-preview.esm.js +41 -39
  61. package/dist/components/ui/font-preview.js +41 -39
  62. package/dist/components/ui/form-demo.esm.js +150 -113
  63. package/dist/components/ui/form-demo.js +150 -113
  64. package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
  65. package/dist/components/ui/hardware-acceleration-demo.js +137 -87
  66. package/dist/components/ui/input.esm.js +4 -1
  67. package/dist/components/ui/input.js +4 -1
  68. package/dist/components/ui/layout-demo.esm.js +81 -56
  69. package/dist/components/ui/layout-demo.js +81 -56
  70. package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
  71. package/dist/components/ui/layouts/adaptive-layout.js +27 -8
  72. package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
  73. package/dist/components/ui/layouts/desktop-layout.js +39 -19
  74. package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
  75. package/dist/components/ui/layouts/mobile-layout.js +19 -9
  76. package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
  77. package/dist/components/ui/layouts/tablet-layout.js +28 -14
  78. package/dist/components/ui/mobile-form-validation.esm.js +120 -87
  79. package/dist/components/ui/mobile-form-validation.js +120 -87
  80. package/dist/components/ui/mobile-input-demo.esm.js +19 -13
  81. package/dist/components/ui/mobile-input-demo.js +19 -13
  82. package/dist/components/ui/mobile-input.esm.js +185 -120
  83. package/dist/components/ui/mobile-input.js +185 -120
  84. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
  85. package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
  86. package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
  87. package/dist/components/ui/navigation/breadcrumb.js +17 -14
  88. package/dist/components/ui/navigation/index.esm.js +23 -1
  89. package/dist/components/ui/navigation/index.js +23 -1
  90. package/dist/components/ui/navigation/menu.esm.js +49 -35
  91. package/dist/components/ui/navigation/menu.js +49 -35
  92. package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
  93. package/dist/components/ui/navigation/navigation-demo.js +81 -74
  94. package/dist/components/ui/navigation/pagination.esm.js +62 -50
  95. package/dist/components/ui/navigation/pagination.js +62 -50
  96. package/dist/components/ui/navigation/sidebar.esm.js +56 -42
  97. package/dist/components/ui/navigation/sidebar.js +56 -42
  98. package/dist/components/ui/navigation/stepper.esm.js +34 -23
  99. package/dist/components/ui/navigation/stepper.js +34 -23
  100. package/dist/components/ui/navigation/tabs.esm.js +32 -21
  101. package/dist/components/ui/navigation/tabs.js +32 -21
  102. package/dist/components/ui/navigation/types.esm.js +196 -195
  103. package/dist/components/ui/navigation/types.js +196 -195
  104. package/dist/components/ui/overlay/backdrop.esm.js +17 -16
  105. package/dist/components/ui/overlay/backdrop.js +17 -16
  106. package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
  107. package/dist/components/ui/overlay/focus-manager.js +21 -19
  108. package/dist/components/ui/overlay/index.esm.js +22 -2
  109. package/dist/components/ui/overlay/index.js +22 -2
  110. package/dist/components/ui/overlay/modal.esm.js +38 -34
  111. package/dist/components/ui/overlay/modal.js +38 -34
  112. package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
  113. package/dist/components/ui/overlay/overlay-manager.js +25 -20
  114. package/dist/components/ui/overlay/popover.esm.js +74 -58
  115. package/dist/components/ui/overlay/popover.js +74 -58
  116. package/dist/components/ui/overlay/portal.esm.js +7 -7
  117. package/dist/components/ui/overlay/portal.js +7 -7
  118. package/dist/components/ui/overlay/tooltip.esm.js +54 -39
  119. package/dist/components/ui/overlay/tooltip.js +54 -39
  120. package/dist/components/ui/overlay/types.esm.js +132 -131
  121. package/dist/components/ui/overlay/types.js +132 -131
  122. package/dist/components/ui/performance-demo.esm.js +135 -88
  123. package/dist/components/ui/performance-demo.js +135 -88
  124. package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
  125. package/dist/components/ui/semantic-input-system-demo.js +117 -80
  126. package/dist/components/ui/theme-customizer.esm.js +84 -52
  127. package/dist/components/ui/theme-customizer.js +84 -52
  128. package/dist/components/ui/theme-preview.esm.js +95 -43
  129. package/dist/components/ui/theme-preview.js +95 -43
  130. package/dist/components/ui/theme-switcher.esm.js +70 -44
  131. package/dist/components/ui/theme-switcher.js +70 -44
  132. package/dist/components/ui/theme-toggle.esm.js +3 -3
  133. package/dist/components/ui/theme-toggle.js +3 -3
  134. package/dist/components/ui/token-demo.esm.js +33 -21
  135. package/dist/components/ui/token-demo.js +33 -21
  136. package/dist/components/ui/touch-demo.esm.js +102 -73
  137. package/dist/components/ui/touch-demo.js +102 -73
  138. package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
  139. package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
  140. package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
  141. package/dist/components/ui/touch-friendly-interface.js +85 -61
  142. package/dist/hooks/use-accessibility-support.esm.js +115 -85
  143. package/dist/hooks/use-accessibility-support.js +115 -85
  144. package/dist/hooks/use-adaptive-layout.esm.js +56 -33
  145. package/dist/hooks/use-adaptive-layout.js +56 -33
  146. package/dist/hooks/use-advanced-patterns.esm.js +57 -42
  147. package/dist/hooks/use-advanced-patterns.js +57 -42
  148. package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
  149. package/dist/hooks/use-advanced-transition-system.js +112 -71
  150. package/dist/hooks/use-animation-profile.esm.js +63 -34
  151. package/dist/hooks/use-animation-profile.js +63 -34
  152. package/dist/hooks/use-battery-animations.esm.js +80 -55
  153. package/dist/hooks/use-battery-animations.js +80 -55
  154. package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
  155. package/dist/hooks/use-battery-conscious-loading.js +166 -123
  156. package/dist/hooks/use-battery-optimization.esm.js +78 -55
  157. package/dist/hooks/use-battery-optimization.js +78 -55
  158. package/dist/hooks/use-battery-status.esm.js +73 -51
  159. package/dist/hooks/use-battery-status.js +73 -51
  160. package/dist/hooks/use-component-performance.esm.js +62 -47
  161. package/dist/hooks/use-component-performance.js +62 -47
  162. package/dist/hooks/use-device-loading-states.esm.js +152 -109
  163. package/dist/hooks/use-device-loading-states.js +152 -109
  164. package/dist/hooks/use-device.esm.js +25 -14
  165. package/dist/hooks/use-device.js +25 -14
  166. package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
  167. package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
  168. package/dist/hooks/use-form-feedback.esm.js +124 -81
  169. package/dist/hooks/use-form-feedback.js +124 -81
  170. package/dist/hooks/use-form-performance.esm.js +127 -92
  171. package/dist/hooks/use-form-performance.js +127 -92
  172. package/dist/hooks/use-frame-rate.esm.js +56 -37
  173. package/dist/hooks/use-frame-rate.js +56 -37
  174. package/dist/hooks/use-gestures.esm.js +96 -72
  175. package/dist/hooks/use-gestures.js +96 -72
  176. package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
  177. package/dist/hooks/use-hardware-acceleration.js +65 -37
  178. package/dist/hooks/use-input-accessibility.esm.js +157 -119
  179. package/dist/hooks/use-input-accessibility.js +157 -119
  180. package/dist/hooks/use-input-performance.esm.js +139 -104
  181. package/dist/hooks/use-input-performance.js +139 -104
  182. package/dist/hooks/use-layout-performance.esm.js +50 -29
  183. package/dist/hooks/use-layout-performance.js +50 -29
  184. package/dist/hooks/use-loading-accessibility.esm.js +209 -169
  185. package/dist/hooks/use-loading-accessibility.js +209 -169
  186. package/dist/hooks/use-loading-performance.esm.js +117 -93
  187. package/dist/hooks/use-loading-performance.js +117 -93
  188. package/dist/hooks/use-memory-usage.esm.js +57 -38
  189. package/dist/hooks/use-memory-usage.js +57 -38
  190. package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
  191. package/dist/hooks/use-mobile-form-layout.js +111 -74
  192. package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
  193. package/dist/hooks/use-mobile-form-validation.js +211 -144
  194. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
  195. package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
  196. package/dist/hooks/use-mobile-layout.esm.js +73 -51
  197. package/dist/hooks/use-mobile-layout.js +73 -51
  198. package/dist/hooks/use-mobile-optimization.esm.js +72 -44
  199. package/dist/hooks/use-mobile-optimization.js +72 -44
  200. package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
  201. package/dist/hooks/use-mobile-skeleton.js +97 -64
  202. package/dist/hooks/use-mobile-touch.esm.js +128 -93
  203. package/dist/hooks/use-mobile-touch.js +128 -93
  204. package/dist/hooks/use-performance-throttling.esm.js +72 -48
  205. package/dist/hooks/use-performance-throttling.js +72 -48
  206. package/dist/hooks/use-performance.esm.js +90 -52
  207. package/dist/hooks/use-performance.js +90 -52
  208. package/dist/hooks/use-reusable-architecture.esm.js +94 -65
  209. package/dist/hooks/use-reusable-architecture.js +94 -65
  210. package/dist/hooks/use-semantic-input-types.esm.js +166 -124
  211. package/dist/hooks/use-semantic-input-types.js +166 -124
  212. package/dist/hooks/use-semantic-input.esm.js +178 -126
  213. package/dist/hooks/use-semantic-input.js +178 -126
  214. package/dist/hooks/use-tablet-layout.esm.js +67 -38
  215. package/dist/hooks/use-tablet-layout.js +67 -38
  216. package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
  217. package/dist/hooks/use-touch-friendly-input.js +193 -149
  218. package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
  219. package/dist/hooks/use-touch-friendly-interface.js +99 -67
  220. package/dist/hooks/use-touch-optimization.esm.js +99 -72
  221. package/dist/hooks/use-touch-optimization.js +99 -72
  222. package/dist/index.esm.js +289 -280
  223. package/dist/index.js +289 -280
  224. package/dist/lib/utils.esm.js +1 -1
  225. package/dist/lib/utils.js +1 -1
  226. package/dist/plugins/theme-css-generator.esm.js +104 -55
  227. package/dist/plugins/theme-css-generator.js +104 -55
  228. package/dist/provider.esm.js +4 -4
  229. package/dist/provider.js +4 -4
  230. package/dist/styles.css +1 -1
  231. package/dist/theme.esm.js +633 -468
  232. package/dist/theme.js +633 -468
  233. package/dist/themes/ThemeContext.esm.js +15 -15
  234. package/dist/themes/ThemeContext.js +15 -15
  235. package/dist/themes/ThemeProvider.esm.js +25 -22
  236. package/dist/themes/ThemeProvider.js +25 -22
  237. package/dist/themes/accessibility.esm.js +147 -108
  238. package/dist/themes/accessibility.js +147 -108
  239. package/dist/themes/aria-patterns.esm.js +198 -162
  240. package/dist/themes/aria-patterns.js +198 -162
  241. package/dist/themes/base-themes.esm.js +14 -11
  242. package/dist/themes/base-themes.js +14 -11
  243. package/dist/themes/colorManager.esm.js +101 -83
  244. package/dist/themes/colorManager.js +101 -83
  245. package/dist/themes/examples/dark-theme.esm.js +133 -103
  246. package/dist/themes/examples/dark-theme.js +133 -103
  247. package/dist/themes/examples/minimal-theme.esm.js +83 -61
  248. package/dist/themes/examples/minimal-theme.js +83 -61
  249. package/dist/themes/focus-management.esm.js +202 -143
  250. package/dist/themes/focus-management.js +202 -143
  251. package/dist/themes/fontLoader.esm.js +28 -19
  252. package/dist/themes/fontLoader.js +28 -19
  253. package/dist/themes/high-contrast.esm.js +152 -104
  254. package/dist/themes/high-contrast.js +152 -104
  255. package/dist/themes/inheritance.esm.js +35 -27
  256. package/dist/themes/inheritance.js +35 -27
  257. package/dist/themes/keyboard-navigation.esm.js +152 -123
  258. package/dist/themes/keyboard-navigation.js +152 -123
  259. package/dist/themes/motion-reduction.esm.js +193 -133
  260. package/dist/themes/motion-reduction.js +193 -133
  261. package/dist/themes/navigation.esm.js +146 -146
  262. package/dist/themes/navigation.js +146 -146
  263. package/dist/themes/screen-reader.esm.js +159 -94
  264. package/dist/themes/screen-reader.js +159 -94
  265. package/dist/themes/systemThemeDetector.esm.js +42 -34
  266. package/dist/themes/systemThemeDetector.js +42 -34
  267. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  268. package/dist/themes/themeCSSUpdater.js +21 -9
  269. package/dist/themes/themePersistence.esm.js +68 -47
  270. package/dist/themes/themePersistence.js +68 -47
  271. package/dist/themes/themes/stan-design.esm.js +633 -468
  272. package/dist/themes/themes/stan-design.js +633 -468
  273. package/dist/themes/types.esm.js +301 -287
  274. package/dist/themes/types.js +301 -287
  275. package/dist/themes/useSystemTheme.esm.js +4 -4
  276. package/dist/themes/useSystemTheme.js +4 -4
  277. package/dist/themes/useTheme.esm.js +4 -4
  278. package/dist/themes/useTheme.js +4 -4
  279. package/dist/themes/validation.esm.js +128 -77
  280. package/dist/themes/validation.js +128 -77
  281. package/dist/tokens/index.esm.js +15 -4
  282. package/dist/tokens/index.js +15 -4
  283. package/dist/tokens/tokenExporter.esm.js +87 -61
  284. package/dist/tokens/tokenExporter.js +87 -61
  285. package/dist/tokens/tokenGenerator.esm.js +86 -77
  286. package/dist/tokens/tokenGenerator.js +86 -77
  287. package/dist/tokens/tokenManager.esm.js +64 -51
  288. package/dist/tokens/tokenManager.js +64 -51
  289. package/dist/tokens/tokenValidator.esm.js +193 -147
  290. package/dist/tokens/tokenValidator.js +193 -147
  291. package/dist/tokens/types.esm.js +49 -35
  292. package/dist/tokens/types.js +49 -35
  293. package/dist/utils/bundle-analyzer.esm.js +83 -65
  294. package/dist/utils/bundle-analyzer.js +83 -65
  295. package/dist/utils/bundle-splitting.esm.js +142 -117
  296. package/dist/utils/bundle-splitting.js +142 -117
  297. package/dist/utils/lazy-loading.esm.js +132 -106
  298. package/dist/utils/lazy-loading.js +132 -106
  299. package/dist/utils/performance-monitor.esm.js +170 -129
  300. package/dist/utils/performance-monitor.js +170 -129
  301. package/dist/utils/tree-shaking.esm.js +69 -61
  302. package/dist/utils/tree-shaking.js +69 -61
  303. package/package.json +1 -1
  304. package/src/index.ts +146 -146
@@ -1,52 +1,74 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface TransitionConfig {
4
- duration?}
4
+ duration?: number
5
+ easing?: 'ease-out' | 'ease-in' | 'ease-in-out' | 'ease-out-quint' | 'ease-in-quint' | 'ease-in-out-quint' | 'ease-out-expo' | 'ease-in-expo' | 'ease-in-out-expo' | 'ease-out-circ' | 'ease-in-circ' | 'ease-in-out-circ'
6
+ delay?: number
7
+ performance?: boolean
8
+ deviceOptimization?: boolean
9
+ accessibility?: boolean
10
+ batteryAware?: boolean
11
+ }
5
12
 
6
13
  export interface TransitionState {
7
- isTransitioning}
14
+ isTransitioning: boolean
15
+ currentEasing: string
16
+ currentDuration: number
17
+ currentDelay: number
18
+ performanceScore: number
19
+ deviceType: 'mobile' | 'tablet' | 'desktop'
20
+ batteryLevel: 'normal' | 'low' | 'critical'
21
+ reducedMotion: boolean
22
+ }
8
23
 
9
24
  export interface TransitionPerformanceMetrics {
10
- frameRate}
25
+ frameRate: number
26
+ memoryUsage: number
27
+ transitionTime: number
28
+ smoothness: number
29
+ batteryImpact: number
30
+ }
11
31
 
12
32
  export interface AdvancedTransitionSystemCallbacks {
13
- onTransitionStart?) => void
14
- onTransitionComplete?) => void
15
- onPerformanceOptimized?) => void
16
- onDeviceOptimized?) => void
17
- onAccessibilityEnhanced?) => void
33
+ onTransitionStart?: (config: TransitionConfig) => void
34
+ onTransitionComplete?: (duration: number) => void
35
+ onPerformanceOptimized?: (metrics: TransitionPerformanceMetrics) => void
36
+ onDeviceOptimized?: (deviceType: string) => void
37
+ onAccessibilityEnhanced?: (feature: string) => void
18
38
  }
19
39
 
20
40
  export const useAdvancedTransitionSystem = (
21
- config= {},
22
- callbacks= {}
41
+ config: TransitionConfig = {},
42
+ callbacks: AdvancedTransitionSystemCallbacks = {}
23
43
  ) => {
24
44
  const {
25
45
  duration = 300,
26
46
  easing = 'ease-out',
27
47
  delay = 0,
28
- performance= true,
48
+ performance: enablePerformance = true,
29
49
  deviceOptimization = true,
30
50
  accessibility = true,
31
51
  batteryAware = true
32
52
  } = config
33
53
 
34
54
  const [transitionState, setTransitionState] = useState<TransitionState>({
35
- isTransitioning,
36
- currentEasing,
37
- currentDuration,
38
- currentDelay,
39
- performanceScore,
40
- deviceType,
41
- batteryLevel,
42
- reducedMotion})
55
+ isTransitioning: false,
56
+ currentEasing: easing,
57
+ currentDuration: duration,
58
+ currentDelay: delay,
59
+ performanceScore: 0,
60
+ deviceType: 'desktop',
61
+ batteryLevel: 'normal',
62
+ reducedMotion: false
63
+ })
43
64
 
44
65
  const [performanceMetrics, setPerformanceMetrics] = useState<TransitionPerformanceMetrics>({
45
- frameRate,
46
- memoryUsage,
47
- transitionTime,
48
- smoothness,
49
- batteryImpact})
66
+ frameRate: 60,
67
+ memoryUsage: 0,
68
+ transitionTime: 0,
69
+ smoothness: 0,
70
+ batteryImpact: 0
71
+ })
50
72
 
51
73
  const [isOptimizing, setIsOptimizing] = useState(false)
52
74
  const [optimizations, setOptimizations] = useState<string[]>([])
@@ -61,7 +83,7 @@ export const useAdvancedTransitionSystem = (
61
83
  const detectDeviceType = useCallback(() => {
62
84
  const width = window.innerWidth
63
85
 
64
- let deviceType] = 'desktop'
86
+ let deviceType: TransitionState['deviceType'] = 'desktop'
65
87
 
66
88
  if (width <= 480) {
67
89
  deviceType = 'mobile'
@@ -81,11 +103,12 @@ export const useAdvancedTransitionSystem = (
81
103
 
82
104
  // Detect reduced motion preference
83
105
  const detectReducedMotion = useCallback(() => {
84
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion)').matches
106
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches
85
107
 
86
108
  setTransitionState(prev => ({
87
109
  ...prev,
88
- reducedMotion}))
110
+ reducedMotion: prefersReducedMotion
111
+ }))
89
112
 
90
113
  return prefersReducedMotion
91
114
  }, [])
@@ -98,23 +121,27 @@ export const useAdvancedTransitionSystem = (
98
121
 
99
122
  setTransitionState(prev => ({
100
123
  ...prev,
101
- batteryLevel}))
124
+ batteryLevel: randomLevel
125
+ }))
102
126
 
103
127
  return randomLevel
104
128
  }, [])
105
129
 
106
130
  // Optimize transition duration based on device and battery
107
- const optimizeTransitionDuration = useCallback((baseDuration) => {
131
+ const optimizeTransitionDuration = useCallback((baseDuration: number) => {
108
132
  let optimizedDuration = baseDuration
109
133
 
110
134
  // Device-specific optimization
111
135
  if (deviceOptimization) {
112
136
  switch (transitionState.deviceType) {
113
- case 'mobile'= Math.min(baseDuration, 200)
137
+ case 'mobile':
138
+ optimizedDuration = Math.min(baseDuration, 200)
114
139
  break
115
- case 'tablet'= Math.min(baseDuration, 300)
140
+ case 'tablet':
141
+ optimizedDuration = Math.min(baseDuration, 300)
116
142
  break
117
- case 'desktop'= baseDuration
143
+ case 'desktop':
144
+ optimizedDuration = baseDuration
118
145
  break
119
146
  }
120
147
  }
@@ -122,11 +149,16 @@ export const useAdvancedTransitionSystem = (
122
149
  // Battery-aware optimization
123
150
  if (batteryAware) {
124
151
  switch (transitionState.batteryLevel) {
125
- case 'low'= Math.min(optimizedDuration, 150)
152
+ case 'low':
153
+ optimizedDuration = Math.min(optimizedDuration, 150)
126
154
  break
127
- case 'critical'= Math.min(optimizedDuration, 100)
155
+ case 'critical':
156
+ optimizedDuration = Math.min(optimizedDuration, 100)
128
157
  break
129
- case 'normal'}
158
+ case 'normal':
159
+ default:
160
+ break
161
+ }
130
162
  }
131
163
 
132
164
  // Reduced motion optimization
@@ -138,16 +170,17 @@ export const useAdvancedTransitionSystem = (
138
170
  }, [deviceOptimization, batteryAware, transitionState.deviceType, transitionState.batteryLevel, transitionState.reducedMotion])
139
171
 
140
172
  // Start a transition with optimization
141
- const startTransition = useCallback((customConfig?) => {
173
+ const startTransition = useCallback((customConfig?: Partial<TransitionConfig>) => {
142
174
  const finalConfig = { ...config, ...customConfig }
143
175
  const optimizedDuration = optimizeTransitionDuration(finalConfig.duration || duration)
144
176
 
145
177
  setTransitionState(prev => ({
146
178
  ...prev,
147
- isTransitioning,
148
- currentDuration,
149
- currentDelay,
150
- currentEasing}))
179
+ isTransitioning: true,
180
+ currentDuration: optimizedDuration,
181
+ currentDelay: finalConfig.delay || delay,
182
+ currentEasing: finalConfig.easing || easing
183
+ }))
151
184
 
152
185
  transitionStartTimeRef.current = performance.now()
153
186
  frameCountRef.current = 0
@@ -159,7 +192,8 @@ export const useAdvancedTransitionSystem = (
159
192
  setTimeout(() => {
160
193
  setTransitionState(prev => ({
161
194
  ...prev,
162
- isTransitioning}))
195
+ isTransitioning: false
196
+ }))
163
197
 
164
198
  const actualDuration = performance.now() - transitionStartTimeRef.current
165
199
  callbacks.onTransitionComplete?.(actualDuration)
@@ -187,30 +221,34 @@ export const useAdvancedTransitionSystem = (
187
221
  // Calculate transition time if transitioning
188
222
  const transitionTime = transitionState.isTransitioning
189
223
  ? currentTime - transitionStartTimeRef.current
190
- = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
224
+ : 0
225
+
226
+ // Calculate battery impact based on performance
227
+ const batteryImpact = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
191
228
 
192
229
  setPerformanceMetrics({
193
- frameRate),
194
- memoryUsage),
195
- transitionTime),
196
- smoothness),
197
- batteryImpact)
230
+ frameRate: Math.round(currentFrameRate),
231
+ memoryUsage: Math.round(memoryUsage),
232
+ transitionTime: Math.round(transitionTime),
233
+ smoothness: Math.round(smoothness),
234
+ batteryImpact: Math.round(batteryImpact)
198
235
  })
199
236
 
200
237
  // Update performance score
201
238
  const overallScore = Math.round((smoothness + batteryImpact) / 2)
202
239
  setTransitionState(prev => ({
203
240
  ...prev,
204
- performanceScore}))
241
+ performanceScore: overallScore
242
+ }))
205
243
 
206
244
  lastFrameTimeRef.current = currentTime
207
245
 
208
246
  callbacks.onPerformanceOptimized?.({
209
- frameRate),
210
- memoryUsage),
211
- transitionTime),
212
- smoothness),
213
- batteryImpact)
247
+ frameRate: Math.round(currentFrameRate),
248
+ memoryUsage: Math.round(memoryUsage),
249
+ transitionTime: Math.round(transitionTime),
250
+ smoothness: Math.round(smoothness),
251
+ batteryImpact: Math.round(batteryImpact)
214
252
  })
215
253
  }
216
254
 
@@ -231,17 +269,20 @@ export const useAdvancedTransitionSystem = (
231
269
  if (!deviceOptimization) return
232
270
 
233
271
  const deviceType = detectDeviceType()
234
- const optimizations] = []
272
+ const optimizations: string[] = []
235
273
 
236
274
  switch (deviceType) {
237
- case 'mobile')')
275
+ case 'mobile':
276
+ optimizations.push('Mobile-optimized transitions (200ms max)')
238
277
  optimizations.push('Reduced animation complexity')
239
278
  optimizations.push('Touch-friendly timing')
240
279
  break
241
- case 'tablet')')
280
+ case 'tablet':
281
+ optimizations.push('Tablet-optimized transitions (300ms max)')
242
282
  optimizations.push('Balanced performance and smoothness')
243
283
  break
244
- case 'desktop')')
284
+ case 'desktop':
285
+ optimizations.push('Desktop-optimized transitions (full duration)')
245
286
  optimizations.push('Maximum visual quality')
246
287
  break
247
288
  }
@@ -294,7 +335,7 @@ export const useAdvancedTransitionSystem = (
294
335
  }
295
336
 
296
337
  // Listen for reduced motion changes
297
- const mediaQuery = window.matchMedia('(prefers-reduced-motion)')
338
+ const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')
298
339
  const handleMotionChange = () => {
299
340
  detectReducedMotion()
300
341
  }
@@ -333,19 +374,19 @@ export const useAdvancedTransitionSystem = (
333
374
  autoOptimize,
334
375
 
335
376
  // Utility functions
336
- getTransitionDuration) => transitionState.currentDuration,
337
- getTransitionEasing) => transitionState.currentEasing,
338
- getTransitionDelay) => transitionState.currentDelay,
339
- isTransitionActive) => transitionState.isTransitioning,
340
- getDeviceType) => transitionState.deviceType,
341
- getBatteryLevel) => transitionState.batteryLevel,
342
- getReducedMotion) => transitionState.reducedMotion,
343
- getPerformanceScore) => transitionState.performanceScore,
344
- isPerformanceOptimal) => transitionState.performanceScore >= 80,
345
- getFrameRate) => performanceMetrics.frameRate,
346
- getSmoothness) => performanceMetrics.smoothness,
347
- getBatteryImpact) => performanceMetrics.batteryImpact,
348
- clearOptimizations) => setOptimizations([])
377
+ getTransitionDuration: () => transitionState.currentDuration,
378
+ getTransitionEasing: () => transitionState.currentEasing,
379
+ getTransitionDelay: () => transitionState.currentDelay,
380
+ isTransitionActive: () => transitionState.isTransitioning,
381
+ getDeviceType: () => transitionState.deviceType,
382
+ getBatteryLevel: () => transitionState.batteryLevel,
383
+ getReducedMotion: () => transitionState.reducedMotion,
384
+ getPerformanceScore: () => transitionState.performanceScore,
385
+ isPerformanceOptimal: () => transitionState.performanceScore >= 80,
386
+ getFrameRate: () => performanceMetrics.frameRate,
387
+ getSmoothness: () => performanceMetrics.smoothness,
388
+ getBatteryImpact: () => performanceMetrics.batteryImpact,
389
+ clearOptimizations: () => setOptimizations([])
349
390
  }
350
391
  }
351
392
 
@@ -1,52 +1,74 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface TransitionConfig {
4
- duration?}
4
+ duration?: number
5
+ easing?: 'ease-out' | 'ease-in' | 'ease-in-out' | 'ease-out-quint' | 'ease-in-quint' | 'ease-in-out-quint' | 'ease-out-expo' | 'ease-in-expo' | 'ease-in-out-expo' | 'ease-out-circ' | 'ease-in-circ' | 'ease-in-out-circ'
6
+ delay?: number
7
+ performance?: boolean
8
+ deviceOptimization?: boolean
9
+ accessibility?: boolean
10
+ batteryAware?: boolean
11
+ }
5
12
 
6
13
  export interface TransitionState {
7
- isTransitioning}
14
+ isTransitioning: boolean
15
+ currentEasing: string
16
+ currentDuration: number
17
+ currentDelay: number
18
+ performanceScore: number
19
+ deviceType: 'mobile' | 'tablet' | 'desktop'
20
+ batteryLevel: 'normal' | 'low' | 'critical'
21
+ reducedMotion: boolean
22
+ }
8
23
 
9
24
  export interface TransitionPerformanceMetrics {
10
- frameRate}
25
+ frameRate: number
26
+ memoryUsage: number
27
+ transitionTime: number
28
+ smoothness: number
29
+ batteryImpact: number
30
+ }
11
31
 
12
32
  export interface AdvancedTransitionSystemCallbacks {
13
- onTransitionStart?) => void
14
- onTransitionComplete?) => void
15
- onPerformanceOptimized?) => void
16
- onDeviceOptimized?) => void
17
- onAccessibilityEnhanced?) => void
33
+ onTransitionStart?: (config: TransitionConfig) => void
34
+ onTransitionComplete?: (duration: number) => void
35
+ onPerformanceOptimized?: (metrics: TransitionPerformanceMetrics) => void
36
+ onDeviceOptimized?: (deviceType: string) => void
37
+ onAccessibilityEnhanced?: (feature: string) => void
18
38
  }
19
39
 
20
40
  export const useAdvancedTransitionSystem = (
21
- config= {},
22
- callbacks= {}
41
+ config: TransitionConfig = {},
42
+ callbacks: AdvancedTransitionSystemCallbacks = {}
23
43
  ) => {
24
44
  const {
25
45
  duration = 300,
26
46
  easing = 'ease-out',
27
47
  delay = 0,
28
- performance= true,
48
+ performance: enablePerformance = true,
29
49
  deviceOptimization = true,
30
50
  accessibility = true,
31
51
  batteryAware = true
32
52
  } = config
33
53
 
34
54
  const [transitionState, setTransitionState] = useState<TransitionState>({
35
- isTransitioning,
36
- currentEasing,
37
- currentDuration,
38
- currentDelay,
39
- performanceScore,
40
- deviceType,
41
- batteryLevel,
42
- reducedMotion})
55
+ isTransitioning: false,
56
+ currentEasing: easing,
57
+ currentDuration: duration,
58
+ currentDelay: delay,
59
+ performanceScore: 0,
60
+ deviceType: 'desktop',
61
+ batteryLevel: 'normal',
62
+ reducedMotion: false
63
+ })
43
64
 
44
65
  const [performanceMetrics, setPerformanceMetrics] = useState<TransitionPerformanceMetrics>({
45
- frameRate,
46
- memoryUsage,
47
- transitionTime,
48
- smoothness,
49
- batteryImpact})
66
+ frameRate: 60,
67
+ memoryUsage: 0,
68
+ transitionTime: 0,
69
+ smoothness: 0,
70
+ batteryImpact: 0
71
+ })
50
72
 
51
73
  const [isOptimizing, setIsOptimizing] = useState(false)
52
74
  const [optimizations, setOptimizations] = useState<string[]>([])
@@ -61,7 +83,7 @@ export const useAdvancedTransitionSystem = (
61
83
  const detectDeviceType = useCallback(() => {
62
84
  const width = window.innerWidth
63
85
 
64
- let deviceType] = 'desktop'
86
+ let deviceType: TransitionState['deviceType'] = 'desktop'
65
87
 
66
88
  if (width <= 480) {
67
89
  deviceType = 'mobile'
@@ -81,11 +103,12 @@ export const useAdvancedTransitionSystem = (
81
103
 
82
104
  // Detect reduced motion preference
83
105
  const detectReducedMotion = useCallback(() => {
84
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion)').matches
106
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches
85
107
 
86
108
  setTransitionState(prev => ({
87
109
  ...prev,
88
- reducedMotion}))
110
+ reducedMotion: prefersReducedMotion
111
+ }))
89
112
 
90
113
  return prefersReducedMotion
91
114
  }, [])
@@ -98,23 +121,27 @@ export const useAdvancedTransitionSystem = (
98
121
 
99
122
  setTransitionState(prev => ({
100
123
  ...prev,
101
- batteryLevel}))
124
+ batteryLevel: randomLevel
125
+ }))
102
126
 
103
127
  return randomLevel
104
128
  }, [])
105
129
 
106
130
  // Optimize transition duration based on device and battery
107
- const optimizeTransitionDuration = useCallback((baseDuration) => {
131
+ const optimizeTransitionDuration = useCallback((baseDuration: number) => {
108
132
  let optimizedDuration = baseDuration
109
133
 
110
134
  // Device-specific optimization
111
135
  if (deviceOptimization) {
112
136
  switch (transitionState.deviceType) {
113
- case 'mobile'= Math.min(baseDuration, 200)
137
+ case 'mobile':
138
+ optimizedDuration = Math.min(baseDuration, 200)
114
139
  break
115
- case 'tablet'= Math.min(baseDuration, 300)
140
+ case 'tablet':
141
+ optimizedDuration = Math.min(baseDuration, 300)
116
142
  break
117
- case 'desktop'= baseDuration
143
+ case 'desktop':
144
+ optimizedDuration = baseDuration
118
145
  break
119
146
  }
120
147
  }
@@ -122,11 +149,16 @@ export const useAdvancedTransitionSystem = (
122
149
  // Battery-aware optimization
123
150
  if (batteryAware) {
124
151
  switch (transitionState.batteryLevel) {
125
- case 'low'= Math.min(optimizedDuration, 150)
152
+ case 'low':
153
+ optimizedDuration = Math.min(optimizedDuration, 150)
126
154
  break
127
- case 'critical'= Math.min(optimizedDuration, 100)
155
+ case 'critical':
156
+ optimizedDuration = Math.min(optimizedDuration, 100)
128
157
  break
129
- case 'normal'}
158
+ case 'normal':
159
+ default:
160
+ break
161
+ }
130
162
  }
131
163
 
132
164
  // Reduced motion optimization
@@ -138,16 +170,17 @@ export const useAdvancedTransitionSystem = (
138
170
  }, [deviceOptimization, batteryAware, transitionState.deviceType, transitionState.batteryLevel, transitionState.reducedMotion])
139
171
 
140
172
  // Start a transition with optimization
141
- const startTransition = useCallback((customConfig?) => {
173
+ const startTransition = useCallback((customConfig?: Partial<TransitionConfig>) => {
142
174
  const finalConfig = { ...config, ...customConfig }
143
175
  const optimizedDuration = optimizeTransitionDuration(finalConfig.duration || duration)
144
176
 
145
177
  setTransitionState(prev => ({
146
178
  ...prev,
147
- isTransitioning,
148
- currentDuration,
149
- currentDelay,
150
- currentEasing}))
179
+ isTransitioning: true,
180
+ currentDuration: optimizedDuration,
181
+ currentDelay: finalConfig.delay || delay,
182
+ currentEasing: finalConfig.easing || easing
183
+ }))
151
184
 
152
185
  transitionStartTimeRef.current = performance.now()
153
186
  frameCountRef.current = 0
@@ -159,7 +192,8 @@ export const useAdvancedTransitionSystem = (
159
192
  setTimeout(() => {
160
193
  setTransitionState(prev => ({
161
194
  ...prev,
162
- isTransitioning}))
195
+ isTransitioning: false
196
+ }))
163
197
 
164
198
  const actualDuration = performance.now() - transitionStartTimeRef.current
165
199
  callbacks.onTransitionComplete?.(actualDuration)
@@ -187,30 +221,34 @@ export const useAdvancedTransitionSystem = (
187
221
  // Calculate transition time if transitioning
188
222
  const transitionTime = transitionState.isTransitioning
189
223
  ? currentTime - transitionStartTimeRef.current
190
- = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
224
+ : 0
225
+
226
+ // Calculate battery impact based on performance
227
+ const batteryImpact = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
191
228
 
192
229
  setPerformanceMetrics({
193
- frameRate),
194
- memoryUsage),
195
- transitionTime),
196
- smoothness),
197
- batteryImpact)
230
+ frameRate: Math.round(currentFrameRate),
231
+ memoryUsage: Math.round(memoryUsage),
232
+ transitionTime: Math.round(transitionTime),
233
+ smoothness: Math.round(smoothness),
234
+ batteryImpact: Math.round(batteryImpact)
198
235
  })
199
236
 
200
237
  // Update performance score
201
238
  const overallScore = Math.round((smoothness + batteryImpact) / 2)
202
239
  setTransitionState(prev => ({
203
240
  ...prev,
204
- performanceScore}))
241
+ performanceScore: overallScore
242
+ }))
205
243
 
206
244
  lastFrameTimeRef.current = currentTime
207
245
 
208
246
  callbacks.onPerformanceOptimized?.({
209
- frameRate),
210
- memoryUsage),
211
- transitionTime),
212
- smoothness),
213
- batteryImpact)
247
+ frameRate: Math.round(currentFrameRate),
248
+ memoryUsage: Math.round(memoryUsage),
249
+ transitionTime: Math.round(transitionTime),
250
+ smoothness: Math.round(smoothness),
251
+ batteryImpact: Math.round(batteryImpact)
214
252
  })
215
253
  }
216
254
 
@@ -231,17 +269,20 @@ export const useAdvancedTransitionSystem = (
231
269
  if (!deviceOptimization) return
232
270
 
233
271
  const deviceType = detectDeviceType()
234
- const optimizations] = []
272
+ const optimizations: string[] = []
235
273
 
236
274
  switch (deviceType) {
237
- case 'mobile')')
275
+ case 'mobile':
276
+ optimizations.push('Mobile-optimized transitions (200ms max)')
238
277
  optimizations.push('Reduced animation complexity')
239
278
  optimizations.push('Touch-friendly timing')
240
279
  break
241
- case 'tablet')')
280
+ case 'tablet':
281
+ optimizations.push('Tablet-optimized transitions (300ms max)')
242
282
  optimizations.push('Balanced performance and smoothness')
243
283
  break
244
- case 'desktop')')
284
+ case 'desktop':
285
+ optimizations.push('Desktop-optimized transitions (full duration)')
245
286
  optimizations.push('Maximum visual quality')
246
287
  break
247
288
  }
@@ -294,7 +335,7 @@ export const useAdvancedTransitionSystem = (
294
335
  }
295
336
 
296
337
  // Listen for reduced motion changes
297
- const mediaQuery = window.matchMedia('(prefers-reduced-motion)')
338
+ const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')
298
339
  const handleMotionChange = () => {
299
340
  detectReducedMotion()
300
341
  }
@@ -333,19 +374,19 @@ export const useAdvancedTransitionSystem = (
333
374
  autoOptimize,
334
375
 
335
376
  // Utility functions
336
- getTransitionDuration) => transitionState.currentDuration,
337
- getTransitionEasing) => transitionState.currentEasing,
338
- getTransitionDelay) => transitionState.currentDelay,
339
- isTransitionActive) => transitionState.isTransitioning,
340
- getDeviceType) => transitionState.deviceType,
341
- getBatteryLevel) => transitionState.batteryLevel,
342
- getReducedMotion) => transitionState.reducedMotion,
343
- getPerformanceScore) => transitionState.performanceScore,
344
- isPerformanceOptimal) => transitionState.performanceScore >= 80,
345
- getFrameRate) => performanceMetrics.frameRate,
346
- getSmoothness) => performanceMetrics.smoothness,
347
- getBatteryImpact) => performanceMetrics.batteryImpact,
348
- clearOptimizations) => setOptimizations([])
377
+ getTransitionDuration: () => transitionState.currentDuration,
378
+ getTransitionEasing: () => transitionState.currentEasing,
379
+ getTransitionDelay: () => transitionState.currentDelay,
380
+ isTransitionActive: () => transitionState.isTransitioning,
381
+ getDeviceType: () => transitionState.deviceType,
382
+ getBatteryLevel: () => transitionState.batteryLevel,
383
+ getReducedMotion: () => transitionState.reducedMotion,
384
+ getPerformanceScore: () => transitionState.performanceScore,
385
+ isPerformanceOptimal: () => transitionState.performanceScore >= 80,
386
+ getFrameRate: () => performanceMetrics.frameRate,
387
+ getSmoothness: () => performanceMetrics.smoothness,
388
+ getBatteryImpact: () => performanceMetrics.batteryImpact,
389
+ clearOptimizations: () => setOptimizations([])
349
390
  }
350
391
  }
351
392