@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,24 +1,45 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface LoadingPerformanceConfig {
4
- enableAnimationOptimization?}
4
+ enableAnimationOptimization?: boolean
5
+ enableMemoryManagement?: boolean
6
+ enableBatteryOptimization?: boolean
7
+ enablePerformanceMonitoring?: boolean
8
+ enableAutoOptimization?: boolean
9
+ animationFrameRate?: number
10
+ memoryThreshold?: number
11
+ batteryThreshold?: number
12
+ }
5
13
 
6
14
  export interface PerformanceMetrics {
7
- frameRate}
15
+ frameRate: number
16
+ renderTime: number
17
+ memoryUsage: number
18
+ batteryLevel: number
19
+ animationSmoothness: number
20
+ loadingEfficiency: number
21
+ }
8
22
 
9
23
  export interface OptimizationStrategy {
10
- id}
24
+ id: string
25
+ name: string
26
+ type: 'animation' | 'memory' | 'battery' | 'performance'
27
+ impact: 'low' | 'medium' | 'high'
28
+ applied: boolean
29
+ description: string
30
+ metrics: Partial<PerformanceMetrics>
31
+ }
11
32
 
12
33
  export interface LoadingPerformanceCallbacks {
13
- onPerformanceOptimized?) => void
14
- onMemoryOptimized?) => void
15
- onBatteryOptimized?) => void
16
- onAnimationOptimized?) => void
34
+ onPerformanceOptimized?: (strategy: OptimizationStrategy) => void
35
+ onMemoryOptimized?: (optimization: string) => void
36
+ onBatteryOptimized?: (strategy: string) => void
37
+ onAnimationOptimized?: (optimization: string) => void
17
38
  }
18
39
 
19
40
  export const useLoadingPerformance = (
20
- config= {},
21
- callbacks= {}
41
+ config: LoadingPerformanceConfig = {},
42
+ callbacks: LoadingPerformanceCallbacks = {}
22
43
  ) => {
23
44
  const {
24
45
  enableAnimationOptimization = true,
@@ -29,12 +50,13 @@ export const useLoadingPerformance = (
29
50
  } = config
30
51
 
31
52
  const [performanceMetrics, setPerformanceMetrics] = useState<PerformanceMetrics>({
32
- frameRate,
33
- renderTime,
34
- memoryUsage,
35
- batteryLevel,
36
- animationSmoothness,
37
- loadingEfficiency})
53
+ frameRate: 60,
54
+ renderTime: 0,
55
+ memoryUsage: 0,
56
+ batteryLevel: 1,
57
+ animationSmoothness: 100,
58
+ loadingEfficiency: 100
59
+ })
38
60
 
39
61
  const [optimizationStrategies, setOptimizationStrategies] = useState<OptimizationStrategy[]>([])
40
62
  const [isOptimizing, setIsOptimizing] = useState(false)
@@ -61,7 +83,7 @@ export const useLoadingPerformance = (
61
83
 
62
84
  setPerformanceMetrics(prev => ({
63
85
  ...prev,
64
- frameRate,
86
+ frameRate: fps,
65
87
  renderTime
66
88
  }))
67
89
 
@@ -93,11 +115,11 @@ export const useLoadingPerformance = (
93
115
 
94
116
  setPerformanceMetrics(prev => ({
95
117
  ...prev,
96
- memoryUsage) / 100
118
+ memoryUsage: Math.round(usedMemory * 100) / 100
97
119
  }))
98
120
  }
99
121
  } catch (error) {
100
- console.warn('Memory monitoring failed, error)
122
+ console.warn('Memory monitoring failed:', error)
101
123
  }
102
124
  }
103
125
 
@@ -122,10 +144,11 @@ export const useLoadingPerformance = (
122
144
 
123
145
  setPerformanceMetrics(prev => ({
124
146
  ...prev,
125
- batteryLevel}))
147
+ batteryLevel: level
148
+ }))
126
149
  }
127
150
  } catch (error) {
128
- console.warn('Battery monitoring failed, error)
151
+ console.warn('Battery monitoring failed:', error)
129
152
  }
130
153
  }
131
154
 
@@ -145,33 +168,33 @@ export const useLoadingPerformance = (
145
168
  setIsOptimizing(true)
146
169
 
147
170
  setTimeout(() => {
148
- const animationOptimizations] = [
171
+ const animationOptimizations: OptimizationStrategy[] = [
149
172
  {
150
- id,
151
- name,
152
- type,
153
- impact,
154
- applied,
155
- description,
156
- metrics, animationSmoothness}
173
+ id: 'anim-frame-rate',
174
+ name: 'Frame Rate Optimization',
175
+ type: 'animation',
176
+ impact: 'high',
177
+ applied: true,
178
+ description: 'Optimized animation frame rate for smooth performance',
179
+ metrics: { frameRate: 60, animationSmoothness: 95 }
157
180
  },
158
181
  {
159
- id,
160
- name,
161
- type,
162
- impact,
163
- applied,
164
- description,
165
- metrics}
182
+ id: 'anim-smoothness',
183
+ name: 'Animation Smoothness',
184
+ type: 'animation',
185
+ impact: 'medium',
186
+ applied: true,
187
+ description: 'Enhanced animation smoothness and timing',
188
+ metrics: { animationSmoothness: 90 }
166
189
  },
167
190
  {
168
- id,
169
- name,
170
- type,
171
- impact,
172
- applied,
173
- description,
174
- metrics}
191
+ id: 'anim-efficiency',
192
+ name: 'Animation Efficiency',
193
+ type: 'animation',
194
+ impact: 'medium',
195
+ applied: true,
196
+ description: 'Improved animation efficiency and performance',
197
+ metrics: { loadingEfficiency: 85 }
175
198
  }
176
199
  ]
177
200
 
@@ -193,24 +216,24 @@ export const useLoadingPerformance = (
193
216
  setIsOptimizing(true)
194
217
 
195
218
  setTimeout(() => {
196
- const memoryOptimizations] = [
219
+ const memoryOptimizations: OptimizationStrategy[] = [
197
220
  {
198
- id,
199
- name,
200
- type,
201
- impact,
202
- applied,
203
- description,
204
- metrics}
221
+ id: 'mem-usage',
222
+ name: 'Memory Usage Optimization',
223
+ type: 'memory',
224
+ impact: 'high',
225
+ applied: true,
226
+ description: 'Optimized memory usage for loading states',
227
+ metrics: { memoryUsage: 25 }
205
228
  },
206
229
  {
207
- id,
208
- name,
209
- type,
210
- impact,
211
- applied,
212
- description,
213
- metrics}
230
+ id: 'mem-cleanup',
231
+ name: 'Memory Cleanup',
232
+ type: 'memory',
233
+ impact: 'medium',
234
+ applied: true,
235
+ description: 'Automatic memory cleanup and garbage collection',
236
+ metrics: { memoryUsage: 20 }
214
237
  }
215
238
  ]
216
239
 
@@ -232,24 +255,24 @@ export const useLoadingPerformance = (
232
255
  setIsOptimizing(true)
233
256
 
234
257
  setTimeout(() => {
235
- const batteryOptimizations] = [
258
+ const batteryOptimizations: OptimizationStrategy[] = [
236
259
  {
237
- id,
238
- name,
239
- type,
240
- impact,
241
- applied,
242
- description,
243
- metrics}
260
+ id: 'battery-efficiency',
261
+ name: 'Battery Efficiency',
262
+ type: 'battery',
263
+ impact: 'high',
264
+ applied: true,
265
+ description: 'Battery-conscious loading state optimization',
266
+ metrics: { batteryLevel: 0.8 }
244
267
  },
245
268
  {
246
- id,
247
- name,
248
- type,
249
- impact,
250
- applied,
251
- description,
252
- metrics}
269
+ id: 'battery-adaptive',
270
+ name: 'Battery Adaptive Loading',
271
+ type: 'battery',
272
+ impact: 'medium',
273
+ applied: true,
274
+ description: 'Adaptive loading based on battery level',
275
+ metrics: { loadingEfficiency: 80 }
253
276
  }
254
277
  ]
255
278
 
@@ -271,24 +294,24 @@ export const useLoadingPerformance = (
271
294
  setIsOptimizing(true)
272
295
 
273
296
  setTimeout(() => {
274
- const performanceOptimizations] = [
297
+ const performanceOptimizations: OptimizationStrategy[] = [
275
298
  {
276
- id,
277
- name,
278
- type,
279
- impact,
280
- applied,
281
- description,
282
- metrics, loadingEfficiency}
299
+ id: 'perf-overall',
300
+ name: 'Overall Performance',
301
+ type: 'performance',
302
+ impact: 'high',
303
+ applied: true,
304
+ description: 'Comprehensive performance optimization applied',
305
+ metrics: { renderTime: 16, loadingEfficiency: 90 }
283
306
  },
284
307
  {
285
- id,
286
- name,
287
- type,
288
- impact,
289
- applied,
290
- description,
291
- metrics}
308
+ id: 'perf-loading',
309
+ name: 'Loading Performance',
310
+ type: 'performance',
311
+ impact: 'medium',
312
+ applied: true,
313
+ description: 'Enhanced loading state performance',
314
+ metrics: { loadingEfficiency: 85 }
292
315
  }
293
316
  ]
294
317
 
@@ -348,7 +371,8 @@ export const useLoadingPerformance = (
348
371
  else if (animationSmoothness >= 70) score += 5
349
372
  else score += 0
350
373
 
351
- let health= 90) health = 'excellent'
374
+ let health: 'excellent' | 'good' | 'fair' | 'poor'
375
+ if (score >= 90) health = 'excellent'
352
376
  else if (score >= 75) health = 'good'
353
377
  else if (score >= 60) health = 'fair'
354
378
  else health = 'poor'
@@ -413,7 +437,7 @@ export const useLoadingPerformance = (
413
437
  autoOptimize,
414
438
 
415
439
  // Utility functions
416
- getPerformanceScore) => {
440
+ getPerformanceScore: () => {
417
441
  const { frameRate, renderTime, memoryUsage, batteryLevel, animationSmoothness } = performanceMetrics
418
442
  let score = 0
419
443
  if (frameRate >= 58) score += 25
@@ -423,9 +447,9 @@ export const useLoadingPerformance = (
423
447
  if (animationSmoothness >= 90) score += 15
424
448
  return score
425
449
  },
426
- isPerformanceOptimal) => performanceHealth === 'excellent' || performanceHealth === 'good',
427
- getOptimizationRecommendations) => {
428
- const recommendations] = []
450
+ isPerformanceOptimal: () => performanceHealth === 'excellent' || performanceHealth === 'good',
451
+ getOptimizationRecommendations: () => {
452
+ const recommendations: string[] = []
429
453
 
430
454
  if (performanceMetrics.frameRate < 50) {
431
455
  recommendations.push('Consider reducing animation complexity to improve frame rate')
@@ -439,7 +463,7 @@ export const useLoadingPerformance = (
439
463
 
440
464
  return recommendations
441
465
  },
442
- clearOptimizations) => {
466
+ clearOptimizations: () => {
443
467
  setOptimizationStrategies([])
444
468
  setActiveOptimizations([])
445
469
  }
@@ -1,24 +1,45 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface LoadingPerformanceConfig {
4
- enableAnimationOptimization?}
4
+ enableAnimationOptimization?: boolean
5
+ enableMemoryManagement?: boolean
6
+ enableBatteryOptimization?: boolean
7
+ enablePerformanceMonitoring?: boolean
8
+ enableAutoOptimization?: boolean
9
+ animationFrameRate?: number
10
+ memoryThreshold?: number
11
+ batteryThreshold?: number
12
+ }
5
13
 
6
14
  export interface PerformanceMetrics {
7
- frameRate}
15
+ frameRate: number
16
+ renderTime: number
17
+ memoryUsage: number
18
+ batteryLevel: number
19
+ animationSmoothness: number
20
+ loadingEfficiency: number
21
+ }
8
22
 
9
23
  export interface OptimizationStrategy {
10
- id}
24
+ id: string
25
+ name: string
26
+ type: 'animation' | 'memory' | 'battery' | 'performance'
27
+ impact: 'low' | 'medium' | 'high'
28
+ applied: boolean
29
+ description: string
30
+ metrics: Partial<PerformanceMetrics>
31
+ }
11
32
 
12
33
  export interface LoadingPerformanceCallbacks {
13
- onPerformanceOptimized?) => void
14
- onMemoryOptimized?) => void
15
- onBatteryOptimized?) => void
16
- onAnimationOptimized?) => void
34
+ onPerformanceOptimized?: (strategy: OptimizationStrategy) => void
35
+ onMemoryOptimized?: (optimization: string) => void
36
+ onBatteryOptimized?: (strategy: string) => void
37
+ onAnimationOptimized?: (optimization: string) => void
17
38
  }
18
39
 
19
40
  export const useLoadingPerformance = (
20
- config= {},
21
- callbacks= {}
41
+ config: LoadingPerformanceConfig = {},
42
+ callbacks: LoadingPerformanceCallbacks = {}
22
43
  ) => {
23
44
  const {
24
45
  enableAnimationOptimization = true,
@@ -29,12 +50,13 @@ export const useLoadingPerformance = (
29
50
  } = config
30
51
 
31
52
  const [performanceMetrics, setPerformanceMetrics] = useState<PerformanceMetrics>({
32
- frameRate,
33
- renderTime,
34
- memoryUsage,
35
- batteryLevel,
36
- animationSmoothness,
37
- loadingEfficiency})
53
+ frameRate: 60,
54
+ renderTime: 0,
55
+ memoryUsage: 0,
56
+ batteryLevel: 1,
57
+ animationSmoothness: 100,
58
+ loadingEfficiency: 100
59
+ })
38
60
 
39
61
  const [optimizationStrategies, setOptimizationStrategies] = useState<OptimizationStrategy[]>([])
40
62
  const [isOptimizing, setIsOptimizing] = useState(false)
@@ -61,7 +83,7 @@ export const useLoadingPerformance = (
61
83
 
62
84
  setPerformanceMetrics(prev => ({
63
85
  ...prev,
64
- frameRate,
86
+ frameRate: fps,
65
87
  renderTime
66
88
  }))
67
89
 
@@ -93,11 +115,11 @@ export const useLoadingPerformance = (
93
115
 
94
116
  setPerformanceMetrics(prev => ({
95
117
  ...prev,
96
- memoryUsage) / 100
118
+ memoryUsage: Math.round(usedMemory * 100) / 100
97
119
  }))
98
120
  }
99
121
  } catch (error) {
100
- console.warn('Memory monitoring failed, error)
122
+ console.warn('Memory monitoring failed:', error)
101
123
  }
102
124
  }
103
125
 
@@ -122,10 +144,11 @@ export const useLoadingPerformance = (
122
144
 
123
145
  setPerformanceMetrics(prev => ({
124
146
  ...prev,
125
- batteryLevel}))
147
+ batteryLevel: level
148
+ }))
126
149
  }
127
150
  } catch (error) {
128
- console.warn('Battery monitoring failed, error)
151
+ console.warn('Battery monitoring failed:', error)
129
152
  }
130
153
  }
131
154
 
@@ -145,33 +168,33 @@ export const useLoadingPerformance = (
145
168
  setIsOptimizing(true)
146
169
 
147
170
  setTimeout(() => {
148
- const animationOptimizations] = [
171
+ const animationOptimizations: OptimizationStrategy[] = [
149
172
  {
150
- id,
151
- name,
152
- type,
153
- impact,
154
- applied,
155
- description,
156
- metrics, animationSmoothness}
173
+ id: 'anim-frame-rate',
174
+ name: 'Frame Rate Optimization',
175
+ type: 'animation',
176
+ impact: 'high',
177
+ applied: true,
178
+ description: 'Optimized animation frame rate for smooth performance',
179
+ metrics: { frameRate: 60, animationSmoothness: 95 }
157
180
  },
158
181
  {
159
- id,
160
- name,
161
- type,
162
- impact,
163
- applied,
164
- description,
165
- metrics}
182
+ id: 'anim-smoothness',
183
+ name: 'Animation Smoothness',
184
+ type: 'animation',
185
+ impact: 'medium',
186
+ applied: true,
187
+ description: 'Enhanced animation smoothness and timing',
188
+ metrics: { animationSmoothness: 90 }
166
189
  },
167
190
  {
168
- id,
169
- name,
170
- type,
171
- impact,
172
- applied,
173
- description,
174
- metrics}
191
+ id: 'anim-efficiency',
192
+ name: 'Animation Efficiency',
193
+ type: 'animation',
194
+ impact: 'medium',
195
+ applied: true,
196
+ description: 'Improved animation efficiency and performance',
197
+ metrics: { loadingEfficiency: 85 }
175
198
  }
176
199
  ]
177
200
 
@@ -193,24 +216,24 @@ export const useLoadingPerformance = (
193
216
  setIsOptimizing(true)
194
217
 
195
218
  setTimeout(() => {
196
- const memoryOptimizations] = [
219
+ const memoryOptimizations: OptimizationStrategy[] = [
197
220
  {
198
- id,
199
- name,
200
- type,
201
- impact,
202
- applied,
203
- description,
204
- metrics}
221
+ id: 'mem-usage',
222
+ name: 'Memory Usage Optimization',
223
+ type: 'memory',
224
+ impact: 'high',
225
+ applied: true,
226
+ description: 'Optimized memory usage for loading states',
227
+ metrics: { memoryUsage: 25 }
205
228
  },
206
229
  {
207
- id,
208
- name,
209
- type,
210
- impact,
211
- applied,
212
- description,
213
- metrics}
230
+ id: 'mem-cleanup',
231
+ name: 'Memory Cleanup',
232
+ type: 'memory',
233
+ impact: 'medium',
234
+ applied: true,
235
+ description: 'Automatic memory cleanup and garbage collection',
236
+ metrics: { memoryUsage: 20 }
214
237
  }
215
238
  ]
216
239
 
@@ -232,24 +255,24 @@ export const useLoadingPerformance = (
232
255
  setIsOptimizing(true)
233
256
 
234
257
  setTimeout(() => {
235
- const batteryOptimizations] = [
258
+ const batteryOptimizations: OptimizationStrategy[] = [
236
259
  {
237
- id,
238
- name,
239
- type,
240
- impact,
241
- applied,
242
- description,
243
- metrics}
260
+ id: 'battery-efficiency',
261
+ name: 'Battery Efficiency',
262
+ type: 'battery',
263
+ impact: 'high',
264
+ applied: true,
265
+ description: 'Battery-conscious loading state optimization',
266
+ metrics: { batteryLevel: 0.8 }
244
267
  },
245
268
  {
246
- id,
247
- name,
248
- type,
249
- impact,
250
- applied,
251
- description,
252
- metrics}
269
+ id: 'battery-adaptive',
270
+ name: 'Battery Adaptive Loading',
271
+ type: 'battery',
272
+ impact: 'medium',
273
+ applied: true,
274
+ description: 'Adaptive loading based on battery level',
275
+ metrics: { loadingEfficiency: 80 }
253
276
  }
254
277
  ]
255
278
 
@@ -271,24 +294,24 @@ export const useLoadingPerformance = (
271
294
  setIsOptimizing(true)
272
295
 
273
296
  setTimeout(() => {
274
- const performanceOptimizations] = [
297
+ const performanceOptimizations: OptimizationStrategy[] = [
275
298
  {
276
- id,
277
- name,
278
- type,
279
- impact,
280
- applied,
281
- description,
282
- metrics, loadingEfficiency}
299
+ id: 'perf-overall',
300
+ name: 'Overall Performance',
301
+ type: 'performance',
302
+ impact: 'high',
303
+ applied: true,
304
+ description: 'Comprehensive performance optimization applied',
305
+ metrics: { renderTime: 16, loadingEfficiency: 90 }
283
306
  },
284
307
  {
285
- id,
286
- name,
287
- type,
288
- impact,
289
- applied,
290
- description,
291
- metrics}
308
+ id: 'perf-loading',
309
+ name: 'Loading Performance',
310
+ type: 'performance',
311
+ impact: 'medium',
312
+ applied: true,
313
+ description: 'Enhanced loading state performance',
314
+ metrics: { loadingEfficiency: 85 }
292
315
  }
293
316
  ]
294
317
 
@@ -348,7 +371,8 @@ export const useLoadingPerformance = (
348
371
  else if (animationSmoothness >= 70) score += 5
349
372
  else score += 0
350
373
 
351
- let health= 90) health = 'excellent'
374
+ let health: 'excellent' | 'good' | 'fair' | 'poor'
375
+ if (score >= 90) health = 'excellent'
352
376
  else if (score >= 75) health = 'good'
353
377
  else if (score >= 60) health = 'fair'
354
378
  else health = 'poor'
@@ -413,7 +437,7 @@ export const useLoadingPerformance = (
413
437
  autoOptimize,
414
438
 
415
439
  // Utility functions
416
- getPerformanceScore) => {
440
+ getPerformanceScore: () => {
417
441
  const { frameRate, renderTime, memoryUsage, batteryLevel, animationSmoothness } = performanceMetrics
418
442
  let score = 0
419
443
  if (frameRate >= 58) score += 25
@@ -423,9 +447,9 @@ export const useLoadingPerformance = (
423
447
  if (animationSmoothness >= 90) score += 15
424
448
  return score
425
449
  },
426
- isPerformanceOptimal) => performanceHealth === 'excellent' || performanceHealth === 'good',
427
- getOptimizationRecommendations) => {
428
- const recommendations] = []
450
+ isPerformanceOptimal: () => performanceHealth === 'excellent' || performanceHealth === 'good',
451
+ getOptimizationRecommendations: () => {
452
+ const recommendations: string[] = []
429
453
 
430
454
  if (performanceMetrics.frameRate < 50) {
431
455
  recommendations.push('Consider reducing animation complexity to improve frame rate')
@@ -439,7 +463,7 @@ export const useLoadingPerformance = (
439
463
 
440
464
  return recommendations
441
465
  },
442
- clearOptimizations) => {
466
+ clearOptimizations: () => {
443
467
  setOptimizationStrategies([])
444
468
  setActiveOptimizations([])
445
469
  }