@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.11

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 (306) 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 +0 -1
  89. package/dist/components/ui/navigation/index.js +0 -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 +0 -2
  109. package/dist/components/ui/overlay/index.js +0 -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 +157 -281
  223. package/dist/index.js +157 -281
  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/index.esm.js +1 -1
  256. package/dist/themes/index.js +1 -1
  257. package/dist/themes/inheritance.esm.js +35 -27
  258. package/dist/themes/inheritance.js +35 -27
  259. package/dist/themes/keyboard-navigation.esm.js +152 -123
  260. package/dist/themes/keyboard-navigation.js +152 -123
  261. package/dist/themes/motion-reduction.esm.js +193 -133
  262. package/dist/themes/motion-reduction.js +193 -133
  263. package/dist/themes/navigation.esm.js +146 -146
  264. package/dist/themes/navigation.js +146 -146
  265. package/dist/themes/screen-reader.esm.js +159 -94
  266. package/dist/themes/screen-reader.js +159 -94
  267. package/dist/themes/systemThemeDetector.esm.js +42 -34
  268. package/dist/themes/systemThemeDetector.js +42 -34
  269. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  270. package/dist/themes/themeCSSUpdater.js +21 -9
  271. package/dist/themes/themePersistence.esm.js +68 -47
  272. package/dist/themes/themePersistence.js +68 -47
  273. package/dist/themes/themes/stan-design.esm.js +633 -468
  274. package/dist/themes/themes/stan-design.js +633 -468
  275. package/dist/themes/types.esm.js +301 -287
  276. package/dist/themes/types.js +301 -287
  277. package/dist/themes/useSystemTheme.esm.js +4 -4
  278. package/dist/themes/useSystemTheme.js +4 -4
  279. package/dist/themes/useTheme.esm.js +4 -4
  280. package/dist/themes/useTheme.js +4 -4
  281. package/dist/themes/validation.esm.js +128 -77
  282. package/dist/themes/validation.js +128 -77
  283. package/dist/tokens/index.esm.js +1 -2
  284. package/dist/tokens/index.js +1 -2
  285. package/dist/tokens/tokenExporter.esm.js +87 -61
  286. package/dist/tokens/tokenExporter.js +87 -61
  287. package/dist/tokens/tokenGenerator.esm.js +86 -77
  288. package/dist/tokens/tokenGenerator.js +86 -77
  289. package/dist/tokens/tokenManager.esm.js +64 -51
  290. package/dist/tokens/tokenManager.js +64 -51
  291. package/dist/tokens/tokenValidator.esm.js +193 -147
  292. package/dist/tokens/tokenValidator.js +193 -147
  293. package/dist/tokens/types.esm.js +49 -35
  294. package/dist/tokens/types.js +49 -35
  295. package/dist/utils/bundle-analyzer.esm.js +83 -65
  296. package/dist/utils/bundle-analyzer.js +83 -65
  297. package/dist/utils/bundle-splitting.esm.js +142 -117
  298. package/dist/utils/bundle-splitting.js +142 -117
  299. package/dist/utils/lazy-loading.esm.js +132 -106
  300. package/dist/utils/lazy-loading.js +132 -106
  301. package/dist/utils/performance-monitor.esm.js +170 -129
  302. package/dist/utils/performance-monitor.js +170 -129
  303. package/dist/utils/tree-shaking.esm.js +69 -61
  304. package/dist/utils/tree-shaking.js +69 -61
  305. package/package.json +1 -1
  306. package/src/index.ts +146 -146
@@ -1,52 +1,73 @@
1
1
  import { useState, useEffect, useCallback, useRef } from 'react'
2
2
 
3
3
  export interface PerformanceConfig {
4
- enableValidationThrottling}
4
+ enableValidationThrottling: boolean
5
+ enableTouchEventOptimization: boolean
6
+ enableMemoryManagement: boolean
7
+ enableBatteryOptimization: boolean
8
+ validationThrottleDelay: number
9
+ touchEventThrottleDelay: number
10
+ memoryCleanupInterval: number
11
+ performanceMonitoringInterval: number
12
+ }
5
13
 
6
14
  export interface PerformanceCallbacks {
7
- onPerformanceWarning?, metrics) => void
8
- onMemoryWarning?, threshold) => void
9
- onBatteryWarning?, isLow) => void
10
- onOptimizationApplied?, success) => void
15
+ onPerformanceWarning?: (warning: string, metrics: PerformanceMetrics) => void
16
+ onMemoryWarning?: (usage: number, threshold: number) => void
17
+ onBatteryWarning?: (level: number, isLow: boolean) => void
18
+ onOptimizationApplied?: (type: string, success: boolean) => void
11
19
  }
12
20
 
13
21
  export interface PerformanceMetrics {
14
- validationCount}
22
+ validationCount: number
23
+ touchEventCount: number
24
+ memoryUsage: number
25
+ batteryLevel: number
26
+ isLowPowerMode: boolean
27
+ averageResponseTime: number
28
+ lastOptimization: number
29
+ optimizationScore: number
30
+ }
15
31
 
16
32
  export interface FormPerformanceState {
17
- isOptimized]
18
- performanceMetrics]
19
- lastUpdate}
33
+ isOptimized: boolean
34
+ currentOptimizations: string[]
35
+ performanceMetrics: PerformanceMetrics
36
+ warnings: string[]
37
+ lastUpdate: number
38
+ }
20
39
 
21
40
  export const useFormPerformance = (
22
- callbacks= {},
23
- config= {}
41
+ callbacks: PerformanceCallbacks = {},
42
+ config: Partial<PerformanceConfig> = {}
24
43
  ) => {
25
- const defaultConfig= {
26
- enableValidationThrottling,
27
- enableTouchEventOptimization,
28
- enableMemoryManagement,
29
- enableBatteryOptimization,
30
- validationThrottleDelay,
31
- touchEventThrottleDelay, // ~60fps
32
- memoryCleanupInterval, // 30 seconds
33
- performanceMonitoringInterval, // 5 seconds
44
+ const defaultConfig: PerformanceConfig = {
45
+ enableValidationThrottling: true,
46
+ enableTouchEventOptimization: true,
47
+ enableMemoryManagement: true,
48
+ enableBatteryOptimization: true,
49
+ validationThrottleDelay: 300,
50
+ touchEventThrottleDelay: 16, // ~60fps
51
+ memoryCleanupInterval: 30000, // 30 seconds
52
+ performanceMonitoringInterval: 5000, // 5 seconds
34
53
  ...config
35
54
  }
36
55
 
37
56
  const [performanceState, setPerformanceState] = useState<FormPerformanceState>({
38
- isOptimized,
39
- currentOptimizations],
40
- performanceMetrics,
41
- touchEventCount,
42
- memoryUsage,
43
- batteryLevel,
44
- isLowPowerMode,
45
- averageResponseTime,
46
- lastOptimization,
47
- optimizationScore},
48
- warnings],
49
- lastUpdate)
57
+ isOptimized: false,
58
+ currentOptimizations: [],
59
+ performanceMetrics: {
60
+ validationCount: 0,
61
+ touchEventCount: 0,
62
+ memoryUsage: 0,
63
+ batteryLevel: 1,
64
+ isLowPowerMode: false,
65
+ averageResponseTime: 0,
66
+ lastOptimization: 0,
67
+ optimizationScore: 0
68
+ },
69
+ warnings: [],
70
+ lastUpdate: Date.now()
50
71
  })
51
72
 
52
73
  const validationThrottleTimerRef = useRef<NodeJS.Timeout | null>(null)
@@ -67,16 +88,18 @@ export const useFormPerformance = (
67
88
 
68
89
  setPerformanceState(prev => ({
69
90
  ...prev,
70
- performanceMetrics,
71
- batteryLevel,
72
- isLowPowerMode}
91
+ performanceMetrics: {
92
+ ...prev.performanceMetrics,
93
+ batteryLevel: battery.level,
94
+ isLowPowerMode: battery.level < 0.2
95
+ }
73
96
  }))
74
97
 
75
98
  if (battery.level < 0.2) {
76
99
  callbacks.onBatteryWarning?.(battery.level, true)
77
100
  }
78
101
  } catch (error) {
79
- console.warn('Battery API not supported, error)
102
+ console.warn('Battery API not supported:', error)
80
103
  }
81
104
  }, [defaultConfig.enableBatteryOptimization, callbacks])
82
105
 
@@ -90,8 +113,10 @@ export const useFormPerformance = (
90
113
 
91
114
  setPerformanceState(prev => ({
92
115
  ...prev,
93
- performanceMetrics,
94
- memoryUsage}
116
+ performanceMetrics: {
117
+ ...prev.performanceMetrics,
118
+ memoryUsage: usage
119
+ }
95
120
  }))
96
121
 
97
122
  if (usage > 0.8) {
@@ -99,7 +124,7 @@ export const useFormPerformance = (
99
124
  triggerMemoryCleanup()
100
125
  }
101
126
  } catch (error) {
102
- console.warn('Memory API not supported, error)
127
+ console.warn('Memory API not supported:', error)
103
128
  }
104
129
  }, [defaultConfig.enableMemoryManagement, callbacks])
105
130
 
@@ -126,21 +151,22 @@ export const useFormPerformance = (
126
151
 
127
152
  setPerformanceState(prev => ({
128
153
  ...prev,
129
- currentOptimizations, 'memory-cleanup'],
130
- lastUpdate)
154
+ currentOptimizations: [...prev.currentOptimizations, 'memory-cleanup'],
155
+ lastUpdate: Date.now()
131
156
  }))
132
157
 
133
158
  callbacks.onOptimizationApplied?.('memory-cleanup', true)
134
159
  } catch (error) {
135
- console.warn('Memory cleanup failed, error)
160
+ console.warn('Memory cleanup failed:', error)
136
161
  callbacks.onOptimizationApplied?.('memory-cleanup', false)
137
162
  }
138
163
  }, [defaultConfig.enableMemoryManagement, callbacks])
139
164
 
140
165
  // Validation throttling
141
166
  const throttledValidation = useCallback((
142
- validationFunction) => void,
143
- delay?) => {
167
+ validationFunction: () => void,
168
+ delay?: number
169
+ ) => {
144
170
  if (!defaultConfig.enableValidationThrottling) {
145
171
  validationFunction()
146
172
  return
@@ -160,9 +186,10 @@ export const useFormPerformance = (
160
186
 
161
187
  setPerformanceState(prev => ({
162
188
  ...prev,
163
- performanceMetrics,
164
- validationCount,
165
- averageResponseTime) / (prev.performanceMetrics.validationCount + 1)
189
+ performanceMetrics: {
190
+ ...prev.performanceMetrics,
191
+ validationCount: prev.performanceMetrics.validationCount + 1,
192
+ averageResponseTime: (prev.performanceMetrics.averageResponseTime * prev.performanceMetrics.validationCount + responseTime) / (prev.performanceMetrics.validationCount + 1)
166
193
  }
167
194
  }))
168
195
  }, throttleDelay)
@@ -170,8 +197,9 @@ export const useFormPerformance = (
170
197
 
171
198
  // Touch event optimization
172
199
  const optimizedTouchEvent = useCallback((
173
- touchFunction) => void,
174
- delay?) => {
200
+ touchFunction: () => void,
201
+ delay?: number
202
+ ) => {
175
203
  if (!defaultConfig.enableTouchEventOptimization) {
176
204
  touchFunction()
177
205
  return
@@ -188,14 +216,16 @@ export const useFormPerformance = (
188
216
 
189
217
  setPerformanceState(prev => ({
190
218
  ...prev,
191
- performanceMetrics,
192
- touchEventCount}
219
+ performanceMetrics: {
220
+ ...prev.performanceMetrics,
221
+ touchEventCount: prev.performanceMetrics.touchEventCount + 1
222
+ }
193
223
  }))
194
224
  }, throttleDelay)
195
225
  }, [defaultConfig.enableTouchEventOptimization, defaultConfig.touchEventThrottleDelay])
196
226
 
197
227
  // Calculate performance score
198
- const calculatePerformanceScore = useCallback(()=> {
228
+ const calculatePerformanceScore = useCallback((): number => {
199
229
  const { performanceMetrics } = performanceState
200
230
  let score = 0
201
231
 
@@ -238,7 +268,7 @@ export const useFormPerformance = (
238
268
 
239
269
  // Apply performance optimizations
240
270
  const applyOptimizations = useCallback(() => {
241
- const optimizations] = []
271
+ const optimizations: string[] = []
242
272
  let success = true
243
273
 
244
274
  try {
@@ -276,17 +306,18 @@ export const useFormPerformance = (
276
306
  setPerformanceState(prev => ({
277
307
  ...prev,
278
308
  isOptimized,
279
- currentOptimizations,
280
- performanceMetrics,
309
+ currentOptimizations: optimizations,
310
+ performanceMetrics: {
311
+ ...prev.performanceMetrics,
281
312
  optimizationScore,
282
- lastOptimization)
313
+ lastOptimization: Date.now()
283
314
  },
284
- lastUpdate)
315
+ lastUpdate: Date.now()
285
316
  }))
286
317
 
287
318
  callbacks.onOptimizationApplied?.('performance', success)
288
319
  } catch (error) {
289
- console.error('Performance optimization failed, error)
320
+ console.error('Performance optimization failed:', error)
290
321
  success = false
291
322
  callbacks.onOptimizationApplied?.('performance', false)
292
323
  }
@@ -309,10 +340,10 @@ export const useFormPerformance = (
309
340
 
310
341
  const score = calculatePerformanceScore()
311
342
  if (score < 0.5) {
312
- const warning = `Performance score is low).toFixed(1)}%`
343
+ const warning = `Performance score is low: ${(score * 100).toFixed(1)}%`
313
344
  setPerformanceState(prev => ({
314
345
  ...prev,
315
- warnings, warning]
346
+ warnings: [...prev.warnings, warning]
316
347
  }))
317
348
  callbacks.onPerformanceWarning?.(warning, performanceState.performanceMetrics)
318
349
  }
@@ -337,18 +368,20 @@ export const useFormPerformance = (
337
368
  // Reset performance state
338
369
  const resetPerformance = useCallback(() => {
339
370
  setPerformanceState({
340
- isOptimized,
341
- currentOptimizations],
342
- performanceMetrics,
343
- touchEventCount,
344
- memoryUsage,
345
- batteryLevel,
346
- isLowPowerMode,
347
- averageResponseTime,
348
- lastOptimization,
349
- optimizationScore},
350
- warnings],
351
- lastUpdate)
371
+ isOptimized: false,
372
+ currentOptimizations: [],
373
+ performanceMetrics: {
374
+ validationCount: 0,
375
+ touchEventCount: 0,
376
+ memoryUsage: 0,
377
+ batteryLevel: 1,
378
+ isLowPowerMode: false,
379
+ averageResponseTime: 0,
380
+ lastOptimization: 0,
381
+ optimizationScore: 0
382
+ },
383
+ warnings: [],
384
+ lastUpdate: Date.now()
352
385
  })
353
386
  }, [])
354
387
 
@@ -357,17 +390,17 @@ export const useFormPerformance = (
357
390
  const { performanceMetrics, currentOptimizations, warnings } = performanceState
358
391
 
359
392
  return {
360
- metrics,
361
- optimizations,
393
+ metrics: performanceMetrics,
394
+ optimizations: currentOptimizations,
362
395
  warnings,
363
- recommendations)
396
+ recommendations: getPerformanceRecommendations()
364
397
  }
365
398
  }, [performanceState])
366
399
 
367
400
  // Get performance recommendations
368
401
  const getPerformanceRecommendations = useCallback(() => {
369
402
  const { performanceMetrics } = performanceState
370
- const recommendations] = []
403
+ const recommendations: string[] = []
371
404
 
372
405
  if (performanceMetrics.averageResponseTime > 200) {
373
406
  recommendations.push('Consider increasing validation throttle delay')
@@ -454,25 +487,27 @@ export const useFormPerformance = (
454
487
  // Convenience hook for basic performance optimization
455
488
  export const useBasicFormPerformance = () => {
456
489
  return useFormPerformance({}, {
457
- enableValidationThrottling,
458
- enableTouchEventOptimization,
459
- enableMemoryManagement,
460
- enableBatteryOptimization,
461
- validationThrottleDelay,
462
- touchEventThrottleDelay,
463
- memoryCleanupInterval,
464
- performanceMonitoringInterval})
490
+ enableValidationThrottling: true,
491
+ enableTouchEventOptimization: false,
492
+ enableMemoryManagement: false,
493
+ enableBatteryOptimization: false,
494
+ validationThrottleDelay: 500,
495
+ touchEventThrottleDelay: 32,
496
+ memoryCleanupInterval: 60000,
497
+ performanceMonitoringInterval: 10000
498
+ })
465
499
  }
466
500
 
467
501
  // Convenience hook for enhanced performance optimization
468
502
  export const useEnhancedFormPerformance = () => {
469
503
  return useFormPerformance({}, {
470
- enableValidationThrottling,
471
- enableTouchEventOptimization,
472
- enableMemoryManagement,
473
- enableBatteryOptimization,
474
- validationThrottleDelay,
475
- touchEventThrottleDelay,
476
- memoryCleanupInterval,
477
- performanceMonitoringInterval})
504
+ enableValidationThrottling: true,
505
+ enableTouchEventOptimization: true,
506
+ enableMemoryManagement: true,
507
+ enableBatteryOptimization: true,
508
+ validationThrottleDelay: 300,
509
+ touchEventThrottleDelay: 16,
510
+ memoryCleanupInterval: 30000,
511
+ performanceMonitoringInterval: 5000
512
+ })
478
513
  }