@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,26 +1,48 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface BatteryConsciousLoadingConfig {
4
- enableBatteryMonitoring?}
4
+ enableBatteryMonitoring?: boolean
5
+ enableLoadingOptimization?: boolean
6
+ enablePerformanceAdjustment?: boolean
7
+ enableUserNotification?: boolean
8
+ enableAutoOptimization?: boolean
9
+ batteryThresholds?: {
10
+ critical: number
11
+ low: number
12
+ medium: number
13
+ high: number
14
+ }
5
15
 
6
16
  }
7
17
 
8
18
  export interface BatteryState {
9
- level}
19
+ level: number
20
+ charging: boolean
21
+ chargingTime: number
22
+ dischargingTime: number
23
+ status: 'critical' | 'low' | 'medium' | 'high' | 'full'
24
+ }
10
25
 
11
26
  export interface LoadingOptimization {
12
- id}
27
+ id: string
28
+ name: string
29
+ type: 'battery' | 'performance' | 'animation' | 'memory'
30
+ applied: boolean
31
+ impact: 'low' | 'medium' | 'high'
32
+ description: string
33
+ batterySavings: number
34
+ }
13
35
 
14
36
  export interface BatteryConsciousLoadingCallbacks {
15
- onBatteryLevelChanged?) => void
16
- onLoadingOptimized?) => void
17
- onPerformanceAdjusted?) => void
18
- onUserNotified?) => void
37
+ onBatteryLevelChanged?: (batteryState: BatteryState) => void
38
+ onLoadingOptimized?: (optimization: LoadingOptimization) => void
39
+ onPerformanceAdjusted?: (adjustment: string) => void
40
+ onUserNotified?: (notification: string) => void
19
41
  }
20
42
 
21
43
  export const useBatteryConsciousLoading = (
22
- config= {},
23
- callbacks= {}
44
+ config: BatteryConsciousLoadingConfig = {},
45
+ callbacks: BatteryConsciousLoadingCallbacks = {}
24
46
  ) => {
25
47
  const {
26
48
  enableBatteryMonitoring = true,
@@ -29,19 +51,21 @@ export const useBatteryConsciousLoading = (
29
51
  enableUserNotification = true,
30
52
  enableAutoOptimization = true,
31
53
  batteryThresholds = {
32
- critical,
33
- low,
34
- medium,
35
- high},
54
+ critical: 0.1,
55
+ low: 0.3,
56
+ medium: 0.7,
57
+ high: 0.9
58
+ },
36
59
 
37
60
  } = config
38
61
 
39
62
  const [batteryState, setBatteryState] = useState<BatteryState>({
40
- level,
41
- charging,
42
- chargingTime,
43
- dischargingTime,
44
- status})
63
+ level: 1,
64
+ charging: false,
65
+ chargingTime: 0,
66
+ dischargingTime: 0,
67
+ status: 'full'
68
+ })
45
69
 
46
70
  const [loadingOptimizations, setLoadingOptimizations] = useState<LoadingOptimization[]>([])
47
71
  const [isOptimizing, setIsOptimizing] = useState(false)
@@ -66,13 +90,14 @@ export const useBatteryConsciousLoading = (
66
90
  const chargingTime = battery.chargingTime || 0
67
91
  const dischargingTime = battery.dischargingTime || 0
68
92
 
69
- let status= batteryThresholds.critical) status = 'critical'
93
+ let status: 'critical' | 'low' | 'medium' | 'high' | 'full'
94
+ if (level <= batteryThresholds.critical) status = 'critical'
70
95
  else if (level <= batteryThresholds.low) status = 'low'
71
96
  else if (level <= batteryThresholds.medium) status = 'medium'
72
97
  else if (level <= batteryThresholds.high) status = 'high'
73
98
  else status = 'full'
74
99
 
75
- const newBatteryState= {
100
+ const newBatteryState: BatteryState = {
76
101
  level,
77
102
  charging,
78
103
  chargingTime,
@@ -89,7 +114,7 @@ export const useBatteryConsciousLoading = (
89
114
  }
90
115
  }
91
116
  } catch (error) {
92
- console.warn('Battery monitoring failed, error)
117
+ console.warn('Battery monitoring failed:', error)
93
118
  }
94
119
  }
95
120
 
@@ -107,84 +132,96 @@ export const useBatteryConsciousLoading = (
107
132
  }, [enableBatteryMonitoring, batteryThresholds, enableAutoOptimization, callbacks])
108
133
 
109
134
  // Auto-optimize for battery level
110
- const autoOptimizeForBattery = useCallback((batteryState) => {
135
+ const autoOptimizeForBattery = useCallback((batteryState: BatteryState) => {
111
136
  if (!enableLoadingOptimization) return
112
137
 
113
138
  setIsOptimizing(true)
114
139
 
115
140
  setTimeout(() => {
116
- let newPerformanceMode] = []
141
+ let newPerformanceMode: 'minimal' | 'balanced' | 'full'
142
+ let optimizations: LoadingOptimization[] = []
117
143
  let savings = 0
118
144
 
119
145
  switch (batteryState.status) {
120
- case 'critical'= 'minimal'
146
+ case 'critical':
147
+ newPerformanceMode = 'minimal'
121
148
  optimizations = [
122
149
  {
123
- id,
124
- name,
125
- type,
126
- applied,
127
- impact,
128
- description,
129
- batterySavings},
150
+ id: 'battery-critical-1',
151
+ name: 'Critical Battery Mode',
152
+ type: 'battery',
153
+ applied: true,
154
+ impact: 'high',
155
+ description: 'Minimal loading animations and reduced complexity for critical battery',
156
+ batterySavings: 40
157
+ },
130
158
  {
131
- id,
132
- name,
133
- type,
134
- applied,
135
- impact,
136
- description,
137
- batterySavings}
159
+ id: 'battery-critical-2',
160
+ name: 'Ultra-Low Power Loading',
161
+ type: 'performance',
162
+ applied: true,
163
+ impact: 'high',
164
+ description: 'Ultra-low power loading states with minimal visual effects',
165
+ batterySavings: 35
166
+ }
138
167
  ]
139
168
  savings = 75
140
169
  break
141
170
 
142
- case 'low'= 'minimal'
171
+ case 'low':
172
+ newPerformanceMode = 'minimal'
143
173
  optimizations = [
144
174
  {
145
- id,
146
- name,
147
- type,
148
- applied,
149
- impact,
150
- description,
151
- batterySavings},
175
+ id: 'battery-low-1',
176
+ name: 'Low Battery Mode',
177
+ type: 'battery',
178
+ applied: true,
179
+ impact: 'medium',
180
+ description: 'Reduced loading animations and optimized performance for low battery',
181
+ batterySavings: 25
182
+ },
152
183
  {
153
- id,
154
- name,
155
- type,
156
- applied,
157
- impact,
158
- description,
159
- batterySavings}
184
+ id: 'battery-low-2',
185
+ name: 'Efficient Loading States',
186
+ type: 'animation',
187
+ applied: true,
188
+ impact: 'medium',
189
+ description: 'Efficient loading states with minimal battery impact',
190
+ batterySavings: 20
191
+ }
160
192
  ]
161
193
  savings = 45
162
194
  break
163
195
 
164
- case 'medium'= 'balanced'
196
+ case 'medium':
197
+ newPerformanceMode = 'balanced'
165
198
  optimizations = [
166
199
  {
167
- id,
168
- name,
169
- type,
170
- applied,
171
- impact,
172
- description,
173
- batterySavings}
200
+ id: 'battery-medium-1',
201
+ name: 'Balanced Battery Mode',
202
+ type: 'battery',
203
+ applied: true,
204
+ impact: 'low',
205
+ description: 'Balanced loading animations with moderate battery optimization',
206
+ batterySavings: 15
207
+ }
174
208
  ]
175
209
  savings = 15
176
210
  break
177
211
 
178
- case 'high'= 'full'
212
+ case 'high':
213
+ case 'full':
214
+ newPerformanceMode = 'full'
179
215
  optimizations = [
180
216
  {
181
- id,
182
- name,
183
- type,
184
- applied,
185
- impact,
186
- description,
187
- batterySavings}
217
+ id: 'battery-high-1',
218
+ name: 'Full Performance Mode',
219
+ type: 'battery',
220
+ applied: true,
221
+ impact: 'low',
222
+ description: 'Full loading animations with minimal battery restrictions',
223
+ batterySavings: 5
224
+ }
188
225
  ]
189
226
  savings = 5
190
227
  break
@@ -197,7 +234,7 @@ export const useBatteryConsciousLoading = (
197
234
 
198
235
  // Notify user if enabled
199
236
  if (enableUserNotification) {
200
- const notification = `Battery optimization applied} mode with ${savings}% battery savings`
237
+ const notification = `Battery optimization applied: ${newPerformanceMode} mode with ${savings}% battery savings`
201
238
  setNotifications(prev => [...prev, notification])
202
239
  callbacks.onUserNotified?.(notification)
203
240
  }
@@ -223,23 +260,25 @@ export const useBatteryConsciousLoading = (
223
260
  setIsOptimizing(true)
224
261
 
225
262
  setTimeout(() => {
226
- const manualOptimizations] = [
263
+ const manualOptimizations: LoadingOptimization[] = [
227
264
  {
228
- id,
229
- name,
230
- type,
231
- applied,
232
- impact,
233
- description,
234
- batterySavings},
265
+ id: 'manual-battery-1',
266
+ name: 'Manual Battery Optimization',
267
+ type: 'battery',
268
+ applied: true,
269
+ impact: 'medium',
270
+ description: 'Manually applied battery-conscious loading optimization',
271
+ batterySavings: 20
272
+ },
235
273
  {
236
- id,
237
- name,
238
- type,
239
- applied,
240
- impact,
241
- description,
242
- batterySavings}
274
+ id: 'manual-performance-1',
275
+ name: 'Performance Adjustment',
276
+ type: 'performance',
277
+ applied: true,
278
+ impact: 'medium',
279
+ description: 'Performance adjusted for optimal battery usage',
280
+ batterySavings: 15
281
+ }
243
282
  ]
244
283
 
245
284
  setLoadingOptimizations(prev => [...prev, ...manualOptimizations])
@@ -266,23 +305,25 @@ export const useBatteryConsciousLoading = (
266
305
  setIsOptimizing(true)
267
306
 
268
307
  setTimeout(() => {
269
- const memoryOptimizations] = [
308
+ const memoryOptimizations: LoadingOptimization[] = [
270
309
  {
271
- id,
272
- name,
273
- type,
274
- applied,
275
- impact,
276
- description,
277
- batterySavings},
310
+ id: 'memory-battery-1',
311
+ name: 'Memory Optimization for Battery',
312
+ type: 'memory',
313
+ applied: true,
314
+ impact: 'medium',
315
+ description: 'Memory usage optimized to reduce battery consumption',
316
+ batterySavings: 10
317
+ },
278
318
  {
279
- id,
280
- name,
281
- type,
282
- applied,
283
- impact,
284
- description,
285
- batterySavings}
319
+ id: 'memory-battery-2',
320
+ name: 'Efficient Memory Management',
321
+ type: 'memory',
322
+ applied: true,
323
+ impact: 'low',
324
+ description: 'Efficient memory management for battery-conscious loading',
325
+ batterySavings: 8
326
+ }
286
327
  ]
287
328
 
288
329
  setLoadingOptimizations(prev => [...prev, ...memoryOptimizations])
@@ -309,23 +350,25 @@ export const useBatteryConsciousLoading = (
309
350
  setIsOptimizing(true)
310
351
 
311
352
  setTimeout(() => {
312
- const animationOptimizations] = [
353
+ const animationOptimizations: LoadingOptimization[] = [
313
354
  {
314
- id,
315
- name,
316
- type,
317
- applied,
318
- impact,
319
- description,
320
- batterySavings},
355
+ id: 'animation-battery-1',
356
+ name: 'Battery-Conscious Animations',
357
+ type: 'animation',
358
+ applied: true,
359
+ impact: 'high',
360
+ description: 'Animations optimized for minimal battery impact',
361
+ batterySavings: 25
362
+ },
321
363
  {
322
- id,
323
- name,
324
- type,
325
- applied,
326
- impact,
327
- description,
328
- batterySavings}
364
+ id: 'animation-battery-2',
365
+ name: 'Reduced Animation Complexity',
366
+ type: 'animation',
367
+ applied: true,
368
+ impact: 'medium',
369
+ description: 'Animation complexity reduced for battery optimization',
370
+ batterySavings: 20
371
+ }
329
372
  ]
330
373
 
331
374
  setLoadingOptimizations(prev => [...prev, ...animationOptimizations])
@@ -347,7 +390,7 @@ export const useBatteryConsciousLoading = (
347
390
 
348
391
  // Get battery-aware loading recommendations
349
392
  const getBatteryLoadingRecommendations = useCallback(() => {
350
- const recommendations] = []
393
+ const recommendations: string[] = []
351
394
 
352
395
  if (batteryState.status === 'critical') {
353
396
  recommendations.push('Use minimal loading animations to preserve battery')
@@ -417,13 +460,13 @@ export const useBatteryConsciousLoading = (
417
460
  autoOptimizeForBattery,
418
461
 
419
462
  // Utility functions
420
- isBatteryCritical) => batteryState.status === 'critical',
421
- isBatteryLow) => batteryState.status === 'low',
422
- isBatteryOptimized) => batterySavings > 0,
423
- getBatteryPercentage) => Math.round(batteryState.level * 100),
424
- getBatteryStatus) => batteryState.status,
425
- getPerformanceMode) => performanceMode,
426
- getBatterySavings) => batterySavings,
463
+ isBatteryCritical: () => batteryState.status === 'critical',
464
+ isBatteryLow: () => batteryState.status === 'low',
465
+ isBatteryOptimized: () => batterySavings > 0,
466
+ getBatteryPercentage: () => Math.round(batteryState.level * 100),
467
+ getBatteryStatus: () => batteryState.status,
468
+ getPerformanceMode: () => performanceMode,
469
+ getBatterySavings: () => batterySavings,
427
470
  getBatteryLoadingRecommendations,
428
471
  clearOptimizations
429
472
  }