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

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 (462) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.d.ts +259 -0
  3. package/dist/components/ui/accessibility-demo.esm.js +265 -0
  4. package/dist/components/ui/accessibility-demo.js +265 -0
  5. package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
  6. package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
  7. package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
  8. package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
  9. package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
  10. package/dist/components/ui/advanced-transition-system-demo.js +624 -0
  11. package/dist/components/ui/advanced-transition-system.d.ts +391 -0
  12. package/dist/components/ui/advanced-transition-system.esm.js +351 -0
  13. package/dist/components/ui/advanced-transition-system.js +351 -0
  14. package/dist/components/ui/animation/animated-container.d.ts +162 -0
  15. package/dist/components/ui/animation/animated-container.esm.js +143 -0
  16. package/dist/components/ui/animation/animated-container.js +143 -0
  17. package/dist/components/ui/animation/index.d.ts +9 -0
  18. package/dist/components/ui/animation/index.esm.js +19 -0
  19. package/dist/components/ui/animation/index.js +19 -0
  20. package/dist/components/ui/animation/staggered-container.d.ts +64 -0
  21. package/dist/components/ui/animation/staggered-container.esm.js +59 -0
  22. package/dist/components/ui/animation/staggered-container.js +59 -0
  23. package/dist/components/ui/animation-demo.d.ts +238 -0
  24. package/dist/components/ui/animation-demo.esm.js +218 -0
  25. package/dist/components/ui/animation-demo.js +218 -0
  26. package/dist/components/ui/badge.d.ts +28 -0
  27. package/dist/components/ui/badge.esm.js +30 -0
  28. package/dist/components/ui/badge.js +30 -0
  29. package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
  30. package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
  31. package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
  32. package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
  33. package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
  34. package/dist/components/ui/border-radius-shadow-demo.js +176 -0
  35. package/dist/components/ui/button.d.ts +33 -0
  36. package/dist/components/ui/button.esm.js +30 -0
  37. package/dist/components/ui/button.js +30 -0
  38. package/dist/components/ui/card.d.ts +205 -0
  39. package/dist/components/ui/card.esm.js +182 -0
  40. package/dist/components/ui/card.js +182 -0
  41. package/dist/components/ui/checkbox.d.ts +26 -0
  42. package/dist/components/ui/checkbox.esm.js +30 -0
  43. package/dist/components/ui/checkbox.js +30 -0
  44. package/dist/components/ui/color-preview.d.ts +402 -0
  45. package/dist/components/ui/color-preview.esm.js +388 -0
  46. package/dist/components/ui/color-preview.js +388 -0
  47. package/dist/components/ui/data-display/chart.d.ts +646 -0
  48. package/dist/components/ui/data-display/chart.esm.js +625 -0
  49. package/dist/components/ui/data-display/chart.js +625 -0
  50. package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
  51. package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
  52. package/dist/components/ui/data-display/data-grid-simple.js +76 -0
  53. package/dist/components/ui/data-display/data-grid.d.ts +670 -0
  54. package/dist/components/ui/data-display/data-grid.esm.js +667 -0
  55. package/dist/components/ui/data-display/data-grid.js +667 -0
  56. package/dist/components/ui/data-display/list.d.ts +448 -0
  57. package/dist/components/ui/data-display/list.esm.js +448 -0
  58. package/dist/components/ui/data-display/list.js +448 -0
  59. package/dist/components/ui/data-display/table.d.ts +472 -0
  60. package/dist/components/ui/data-display/table.esm.js +474 -0
  61. package/dist/components/ui/data-display/table.js +474 -0
  62. package/dist/components/ui/data-display/timeline.d.ts +433 -0
  63. package/dist/components/ui/data-display/timeline.esm.js +436 -0
  64. package/dist/components/ui/data-display/timeline.js +436 -0
  65. package/dist/components/ui/data-display/tree.d.ts +594 -0
  66. package/dist/components/ui/data-display/tree.esm.js +570 -0
  67. package/dist/components/ui/data-display/tree.js +570 -0
  68. package/dist/components/ui/data-display/types.d.ts +534 -0
  69. package/dist/components/ui/data-display/types.esm.js +511 -0
  70. package/dist/components/ui/data-display/types.js +511 -0
  71. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
  72. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
  73. package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
  74. package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
  75. package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
  76. package/dist/components/ui/enterprise-mobile-experience.js +413 -0
  77. package/dist/components/ui/feedback/alert.d.ts +154 -0
  78. package/dist/components/ui/feedback/alert.esm.js +150 -0
  79. package/dist/components/ui/feedback/alert.js +150 -0
  80. package/dist/components/ui/feedback/progress.d.ts +288 -0
  81. package/dist/components/ui/feedback/progress.esm.js +269 -0
  82. package/dist/components/ui/feedback/progress.js +269 -0
  83. package/dist/components/ui/feedback/skeleton.d.ts +182 -0
  84. package/dist/components/ui/feedback/skeleton.esm.js +175 -0
  85. package/dist/components/ui/feedback/skeleton.js +175 -0
  86. package/dist/components/ui/feedback/toast.d.ts +277 -0
  87. package/dist/components/ui/feedback/toast.esm.js +256 -0
  88. package/dist/components/ui/feedback/toast.js +256 -0
  89. package/dist/components/ui/feedback/types.d.ts +123 -0
  90. package/dist/components/ui/feedback/types.esm.js +125 -0
  91. package/dist/components/ui/feedback/types.js +125 -0
  92. package/dist/components/ui/font-preview.d.ts +282 -0
  93. package/dist/components/ui/font-preview.esm.js +286 -0
  94. package/dist/components/ui/font-preview.js +286 -0
  95. package/dist/components/ui/form-demo.d.ts +544 -0
  96. package/dist/components/ui/form-demo.esm.js +516 -0
  97. package/dist/components/ui/form-demo.js +516 -0
  98. package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
  99. package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
  100. package/dist/components/ui/hardware-acceleration-demo.js +497 -0
  101. package/dist/components/ui/input.d.ts +33 -0
  102. package/dist/components/ui/input.esm.js +32 -0
  103. package/dist/components/ui/input.js +32 -0
  104. package/dist/components/ui/label.d.ts +13 -0
  105. package/dist/components/ui/label.esm.js +16 -0
  106. package/dist/components/ui/label.js +16 -0
  107. package/dist/components/ui/layout-demo.d.ts +352 -0
  108. package/dist/components/ui/layout-demo.esm.js +342 -0
  109. package/dist/components/ui/layout-demo.js +342 -0
  110. package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
  111. package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
  112. package/dist/components/ui/layouts/adaptive-layout.js +120 -0
  113. package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
  114. package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
  115. package/dist/components/ui/layouts/desktop-layout.js +204 -0
  116. package/dist/components/ui/layouts/index.d.ts +5 -0
  117. package/dist/components/ui/layouts/index.esm.js +10 -0
  118. package/dist/components/ui/layouts/index.js +10 -0
  119. package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
  120. package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
  121. package/dist/components/ui/layouts/mobile-layout.js +152 -0
  122. package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
  123. package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
  124. package/dist/components/ui/layouts/tablet-layout.js +183 -0
  125. package/dist/components/ui/mobile-form-validation.d.ts +439 -0
  126. package/dist/components/ui/mobile-form-validation.esm.js +418 -0
  127. package/dist/components/ui/mobile-form-validation.js +418 -0
  128. package/dist/components/ui/mobile-input-demo.d.ts +197 -0
  129. package/dist/components/ui/mobile-input-demo.esm.js +195 -0
  130. package/dist/components/ui/mobile-input-demo.js +195 -0
  131. package/dist/components/ui/mobile-input.d.ts +273 -0
  132. package/dist/components/ui/mobile-input.esm.js +216 -0
  133. package/dist/components/ui/mobile-input.js +216 -0
  134. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
  135. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
  136. package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
  137. package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
  138. package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
  139. package/dist/components/ui/navigation/breadcrumb.js +155 -0
  140. package/dist/components/ui/navigation/index.d.ts +25 -0
  141. package/dist/components/ui/navigation/index.esm.js +14 -0
  142. package/dist/components/ui/navigation/index.js +14 -0
  143. package/dist/components/ui/navigation/menu.d.ts +366 -0
  144. package/dist/components/ui/navigation/menu.esm.js +360 -0
  145. package/dist/components/ui/navigation/menu.js +360 -0
  146. package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
  147. package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
  148. package/dist/components/ui/navigation/navigation-demo.js +317 -0
  149. package/dist/components/ui/navigation/pagination.d.ts +261 -0
  150. package/dist/components/ui/navigation/pagination.esm.js +260 -0
  151. package/dist/components/ui/navigation/pagination.js +260 -0
  152. package/dist/components/ui/navigation/sidebar.d.ts +375 -0
  153. package/dist/components/ui/navigation/sidebar.esm.js +369 -0
  154. package/dist/components/ui/navigation/sidebar.js +369 -0
  155. package/dist/components/ui/navigation/stepper.d.ts +294 -0
  156. package/dist/components/ui/navigation/stepper.esm.js +292 -0
  157. package/dist/components/ui/navigation/stepper.js +292 -0
  158. package/dist/components/ui/navigation/tabs.d.ts +196 -0
  159. package/dist/components/ui/navigation/tabs.esm.js +194 -0
  160. package/dist/components/ui/navigation/tabs.js +194 -0
  161. package/dist/components/ui/navigation/types.d.ts +293 -0
  162. package/dist/components/ui/navigation/types.esm.js +298 -0
  163. package/dist/components/ui/navigation/types.js +298 -0
  164. package/dist/components/ui/overlay/backdrop.d.ts +79 -0
  165. package/dist/components/ui/overlay/backdrop.esm.js +80 -0
  166. package/dist/components/ui/overlay/backdrop.js +80 -0
  167. package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
  168. package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
  169. package/dist/components/ui/overlay/focus-manager.js +141 -0
  170. package/dist/components/ui/overlay/index.d.ts +27 -0
  171. package/dist/components/ui/overlay/index.esm.js +16 -0
  172. package/dist/components/ui/overlay/index.js +16 -0
  173. package/dist/components/ui/overlay/modal.d.ts +262 -0
  174. package/dist/components/ui/overlay/modal.esm.js +266 -0
  175. package/dist/components/ui/overlay/modal.js +266 -0
  176. package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
  177. package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
  178. package/dist/components/ui/overlay/overlay-manager.js +105 -0
  179. package/dist/components/ui/overlay/popover.d.ts +450 -0
  180. package/dist/components/ui/overlay/popover.esm.js +446 -0
  181. package/dist/components/ui/overlay/popover.js +446 -0
  182. package/dist/components/ui/overlay/portal.d.ts +75 -0
  183. package/dist/components/ui/overlay/portal.esm.js +79 -0
  184. package/dist/components/ui/overlay/portal.js +79 -0
  185. package/dist/components/ui/overlay/tooltip.d.ts +298 -0
  186. package/dist/components/ui/overlay/tooltip.esm.js +288 -0
  187. package/dist/components/ui/overlay/tooltip.js +288 -0
  188. package/dist/components/ui/overlay/types.d.ts +194 -0
  189. package/dist/components/ui/overlay/types.esm.js +195 -0
  190. package/dist/components/ui/overlay/types.js +195 -0
  191. package/dist/components/ui/performance-demo.d.ts +583 -0
  192. package/dist/components/ui/performance-demo.esm.js +549 -0
  193. package/dist/components/ui/performance-demo.js +549 -0
  194. package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
  195. package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
  196. package/dist/components/ui/semantic-input-system-demo.js +465 -0
  197. package/dist/components/ui/theme-customizer.d.ts +378 -0
  198. package/dist/components/ui/theme-customizer.esm.js +354 -0
  199. package/dist/components/ui/theme-customizer.js +354 -0
  200. package/dist/components/ui/theme-preview.d.ts +305 -0
  201. package/dist/components/ui/theme-preview.esm.js +258 -0
  202. package/dist/components/ui/theme-preview.js +258 -0
  203. package/dist/components/ui/theme-switcher.d.ts +259 -0
  204. package/dist/components/ui/theme-switcher.esm.js +238 -0
  205. package/dist/components/ui/theme-switcher.js +238 -0
  206. package/dist/components/ui/theme-toggle.d.ts +34 -0
  207. package/dist/components/ui/theme-toggle.esm.js +38 -0
  208. package/dist/components/ui/theme-toggle.js +38 -0
  209. package/dist/components/ui/token-demo.d.ts +188 -0
  210. package/dist/components/ui/token-demo.esm.js +183 -0
  211. package/dist/components/ui/token-demo.js +183 -0
  212. package/dist/components/ui/touch-demo.d.ts +455 -0
  213. package/dist/components/ui/touch-demo.esm.js +433 -0
  214. package/dist/components/ui/touch-demo.js +433 -0
  215. package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
  216. package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
  217. package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
  218. package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
  219. package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
  220. package/dist/components/ui/touch-friendly-interface.js +272 -0
  221. package/dist/hooks/index.d.ts +161 -0
  222. package/dist/hooks/index.esm.js +190 -0
  223. package/dist/hooks/index.js +190 -0
  224. package/dist/hooks/use-accessibility-support.d.ts +516 -0
  225. package/dist/hooks/use-accessibility-support.esm.js +488 -0
  226. package/dist/hooks/use-accessibility-support.js +488 -0
  227. package/dist/hooks/use-adaptive-layout.d.ts +287 -0
  228. package/dist/hooks/use-adaptive-layout.esm.js +266 -0
  229. package/dist/hooks/use-adaptive-layout.js +266 -0
  230. package/dist/hooks/use-advanced-patterns.d.ts +292 -0
  231. package/dist/hooks/use-advanced-patterns.esm.js +279 -0
  232. package/dist/hooks/use-advanced-patterns.js +279 -0
  233. package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
  234. package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
  235. package/dist/hooks/use-advanced-transition-system.js +352 -0
  236. package/dist/hooks/use-animation-profile.d.ts +285 -0
  237. package/dist/hooks/use-animation-profile.esm.js +259 -0
  238. package/dist/hooks/use-animation-profile.js +259 -0
  239. package/dist/hooks/use-battery-animations.d.ts +382 -0
  240. package/dist/hooks/use-battery-animations.esm.js +359 -0
  241. package/dist/hooks/use-battery-animations.js +359 -0
  242. package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
  243. package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
  244. package/dist/hooks/use-battery-conscious-loading.js +432 -0
  245. package/dist/hooks/use-battery-optimization.d.ts +328 -0
  246. package/dist/hooks/use-battery-optimization.esm.js +307 -0
  247. package/dist/hooks/use-battery-optimization.js +307 -0
  248. package/dist/hooks/use-battery-status.d.ts +297 -0
  249. package/dist/hooks/use-battery-status.esm.js +277 -0
  250. package/dist/hooks/use-battery-status.js +277 -0
  251. package/dist/hooks/use-component-performance.d.ts +342 -0
  252. package/dist/hooks/use-component-performance.esm.js +329 -0
  253. package/dist/hooks/use-component-performance.js +329 -0
  254. package/dist/hooks/use-device-loading-states.d.ts +456 -0
  255. package/dist/hooks/use-device-loading-states.esm.js +416 -0
  256. package/dist/hooks/use-device-loading-states.js +416 -0
  257. package/dist/hooks/use-device.d.ts +104 -0
  258. package/dist/hooks/use-device.esm.js +99 -0
  259. package/dist/hooks/use-device.js +99 -0
  260. package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
  261. package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
  262. package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
  263. package/dist/hooks/use-form-feedback.d.ts +401 -0
  264. package/dist/hooks/use-form-feedback.esm.js +360 -0
  265. package/dist/hooks/use-form-feedback.js +360 -0
  266. package/dist/hooks/use-form-performance.d.ts +511 -0
  267. package/dist/hooks/use-form-performance.esm.js +478 -0
  268. package/dist/hooks/use-form-performance.js +478 -0
  269. package/dist/hooks/use-frame-rate.d.ts +249 -0
  270. package/dist/hooks/use-frame-rate.esm.js +232 -0
  271. package/dist/hooks/use-frame-rate.js +232 -0
  272. package/dist/hooks/use-gestures.d.ts +336 -0
  273. package/dist/hooks/use-gestures.esm.js +314 -0
  274. package/dist/hooks/use-gestures.js +314 -0
  275. package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
  276. package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
  277. package/dist/hooks/use-hardware-acceleration.js +313 -0
  278. package/dist/hooks/use-input-accessibility.d.ts +451 -0
  279. package/dist/hooks/use-input-accessibility.esm.js +417 -0
  280. package/dist/hooks/use-input-accessibility.js +417 -0
  281. package/dist/hooks/use-input-performance.d.ts +503 -0
  282. package/dist/hooks/use-input-performance.esm.js +471 -0
  283. package/dist/hooks/use-input-performance.js +471 -0
  284. package/dist/hooks/use-layout-performance.d.ts +317 -0
  285. package/dist/hooks/use-layout-performance.esm.js +298 -0
  286. package/dist/hooks/use-layout-performance.js +298 -0
  287. package/dist/hooks/use-loading-accessibility.d.ts +532 -0
  288. package/dist/hooks/use-loading-accessibility.esm.js +495 -0
  289. package/dist/hooks/use-loading-accessibility.js +495 -0
  290. package/dist/hooks/use-loading-performance.d.ts +471 -0
  291. package/dist/hooks/use-loading-performance.esm.js +449 -0
  292. package/dist/hooks/use-loading-performance.js +449 -0
  293. package/dist/hooks/use-memory-usage.d.ts +285 -0
  294. package/dist/hooks/use-memory-usage.esm.js +268 -0
  295. package/dist/hooks/use-memory-usage.js +268 -0
  296. package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
  297. package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
  298. package/dist/hooks/use-mobile-form-layout.js +427 -0
  299. package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
  300. package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
  301. package/dist/hooks/use-mobile-form-validation.js +451 -0
  302. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
  303. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
  304. package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
  305. package/dist/hooks/use-mobile-layout.d.ts +300 -0
  306. package/dist/hooks/use-mobile-layout.esm.js +280 -0
  307. package/dist/hooks/use-mobile-layout.js +280 -0
  308. package/dist/hooks/use-mobile-optimization.d.ts +404 -0
  309. package/dist/hooks/use-mobile-optimization.esm.js +378 -0
  310. package/dist/hooks/use-mobile-optimization.js +378 -0
  311. package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
  312. package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
  313. package/dist/hooks/use-mobile-skeleton.js +369 -0
  314. package/dist/hooks/use-mobile-touch.d.ts +412 -0
  315. package/dist/hooks/use-mobile-touch.esm.js +379 -0
  316. package/dist/hooks/use-mobile-touch.js +379 -0
  317. package/dist/hooks/use-performance-throttling.d.ts +346 -0
  318. package/dist/hooks/use-performance-throttling.esm.js +324 -0
  319. package/dist/hooks/use-performance-throttling.js +324 -0
  320. package/dist/hooks/use-performance.d.ts +314 -0
  321. package/dist/hooks/use-performance.esm.js +278 -0
  322. package/dist/hooks/use-performance.js +278 -0
  323. package/dist/hooks/use-reusable-architecture.d.ts +412 -0
  324. package/dist/hooks/use-reusable-architecture.esm.js +385 -0
  325. package/dist/hooks/use-reusable-architecture.js +385 -0
  326. package/dist/hooks/use-semantic-input-types.d.ts +354 -0
  327. package/dist/hooks/use-semantic-input-types.esm.js +315 -0
  328. package/dist/hooks/use-semantic-input-types.js +315 -0
  329. package/dist/hooks/use-semantic-input.d.ts +563 -0
  330. package/dist/hooks/use-semantic-input.esm.js +513 -0
  331. package/dist/hooks/use-semantic-input.js +513 -0
  332. package/dist/hooks/use-tablet-layout.d.ts +382 -0
  333. package/dist/hooks/use-tablet-layout.esm.js +355 -0
  334. package/dist/hooks/use-tablet-layout.js +355 -0
  335. package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
  336. package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
  337. package/dist/hooks/use-touch-friendly-input.js +480 -0
  338. package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
  339. package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
  340. package/dist/hooks/use-touch-friendly-interface.js +299 -0
  341. package/dist/hooks/use-touch-optimization.d.ts +373 -0
  342. package/dist/hooks/use-touch-optimization.esm.js +348 -0
  343. package/dist/hooks/use-touch-optimization.js +348 -0
  344. package/dist/lib/utils.d.ts +3 -0
  345. package/dist/lib/utils.esm.js +6 -0
  346. package/dist/lib/utils.js +6 -0
  347. package/dist/plugins/theme-css-generator.d.ts +345 -0
  348. package/dist/plugins/theme-css-generator.esm.js +305 -0
  349. package/dist/plugins/theme-css-generator.js +305 -0
  350. package/dist/styles.css +1 -1
  351. package/dist/themes/ThemeContext.d.ts +27 -0
  352. package/dist/themes/ThemeContext.esm.js +31 -0
  353. package/dist/themes/ThemeContext.js +31 -0
  354. package/dist/themes/ThemeProvider.d.ts +222 -0
  355. package/dist/themes/ThemeProvider.esm.js +229 -0
  356. package/dist/themes/ThemeProvider.js +229 -0
  357. package/dist/themes/accessibility/index.d.ts +7 -0
  358. package/dist/themes/accessibility/index.esm.js +27 -0
  359. package/dist/themes/accessibility/index.js +27 -0
  360. package/dist/themes/accessibility.d.ts +259 -0
  361. package/dist/themes/accessibility.esm.js +220 -0
  362. package/dist/themes/accessibility.js +220 -0
  363. package/dist/themes/aria-patterns.d.ts +418 -0
  364. package/dist/themes/aria-patterns.esm.js +384 -0
  365. package/dist/themes/aria-patterns.js +384 -0
  366. package/dist/themes/base-themes.d.ts +34 -0
  367. package/dist/themes/base-themes.esm.js +52 -0
  368. package/dist/themes/base-themes.js +52 -0
  369. package/dist/themes/colorManager.d.ts +327 -0
  370. package/dist/themes/colorManager.esm.js +362 -0
  371. package/dist/themes/colorManager.js +362 -0
  372. package/dist/themes/examples/dark-theme.d.ts +139 -0
  373. package/dist/themes/examples/dark-theme.esm.js +124 -0
  374. package/dist/themes/examples/dark-theme.js +124 -0
  375. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  376. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  377. package/dist/themes/examples/minimal-theme.js +86 -0
  378. package/dist/themes/focus-management.d.ts +699 -0
  379. package/dist/themes/focus-management.esm.js +642 -0
  380. package/dist/themes/focus-management.js +642 -0
  381. package/dist/themes/fontLoader.d.ts +163 -0
  382. package/dist/themes/fontLoader.esm.js +192 -0
  383. package/dist/themes/fontLoader.js +192 -0
  384. package/dist/themes/high-contrast.d.ts +619 -0
  385. package/dist/themes/high-contrast.esm.js +573 -0
  386. package/dist/themes/high-contrast.js +573 -0
  387. package/dist/themes/index.d.ts +11 -0
  388. package/dist/themes/index.esm.js +19 -0
  389. package/dist/themes/index.js +19 -0
  390. package/dist/themes/inheritance.d.ts +160 -0
  391. package/dist/themes/inheritance.esm.js +219 -0
  392. package/dist/themes/inheritance.js +219 -0
  393. package/dist/themes/keyboard-navigation.d.ts +550 -0
  394. package/dist/themes/keyboard-navigation.esm.js +521 -0
  395. package/dist/themes/keyboard-navigation.js +521 -0
  396. package/dist/themes/motion-reduction.d.ts +660 -0
  397. package/dist/themes/motion-reduction.esm.js +602 -0
  398. package/dist/themes/motion-reduction.js +602 -0
  399. package/dist/themes/navigation.d.ts +232 -0
  400. package/dist/themes/navigation.esm.js +238 -0
  401. package/dist/themes/navigation.js +238 -0
  402. package/dist/themes/screen-reader.d.ts +645 -0
  403. package/dist/themes/screen-reader.esm.js +580 -0
  404. package/dist/themes/screen-reader.js +580 -0
  405. package/dist/themes/systemThemeDetector.d.ts +148 -0
  406. package/dist/themes/systemThemeDetector.esm.js +174 -0
  407. package/dist/themes/systemThemeDetector.js +174 -0
  408. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  409. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  410. package/dist/themes/themeCSSUpdater.js +250 -0
  411. package/dist/themes/themePersistence.d.ts +192 -0
  412. package/dist/themes/themePersistence.esm.js +217 -0
  413. package/dist/themes/themePersistence.js +217 -0
  414. package/dist/themes/themes/stan-design.d.ts +678 -0
  415. package/dist/themes/themes/stan-design.esm.js +518 -0
  416. package/dist/themes/themes/stan-design.js +518 -0
  417. package/dist/themes/types.d.ts +454 -0
  418. package/dist/themes/types.esm.js +446 -0
  419. package/dist/themes/types.js +446 -0
  420. package/dist/themes/useSystemTheme.d.ts +43 -0
  421. package/dist/themes/useSystemTheme.esm.js +48 -0
  422. package/dist/themes/useSystemTheme.js +48 -0
  423. package/dist/themes/useTheme.d.ts +20 -0
  424. package/dist/themes/useTheme.esm.js +87 -0
  425. package/dist/themes/useTheme.js +87 -0
  426. package/dist/themes/validation.d.ts +406 -0
  427. package/dist/themes/validation.esm.js +411 -0
  428. package/dist/themes/validation.js +411 -0
  429. package/dist/tokens/index.d.ts +25 -0
  430. package/dist/tokens/index.esm.js +23 -0
  431. package/dist/tokens/index.js +23 -0
  432. package/dist/tokens/tokenExporter.d.ts +336 -0
  433. package/dist/tokens/tokenExporter.esm.js +371 -0
  434. package/dist/tokens/tokenExporter.js +371 -0
  435. package/dist/tokens/tokenGenerator.d.ts +250 -0
  436. package/dist/tokens/tokenGenerator.esm.js +267 -0
  437. package/dist/tokens/tokenGenerator.js +267 -0
  438. package/dist/tokens/tokenManager.d.ts +194 -0
  439. package/dist/tokens/tokenManager.esm.js +235 -0
  440. package/dist/tokens/tokenManager.js +235 -0
  441. package/dist/tokens/tokenValidator.d.ts +488 -0
  442. package/dist/tokens/tokenValidator.esm.js +497 -0
  443. package/dist/tokens/tokenValidator.js +497 -0
  444. package/dist/tokens/types.d.ts +78 -0
  445. package/dist/tokens/types.esm.js +64 -0
  446. package/dist/tokens/types.js +64 -0
  447. package/dist/utils/bundle-analyzer.d.ts +260 -0
  448. package/dist/utils/bundle-analyzer.esm.js +242 -0
  449. package/dist/utils/bundle-analyzer.js +242 -0
  450. package/dist/utils/bundle-splitting.d.ts +483 -0
  451. package/dist/utils/bundle-splitting.esm.js +458 -0
  452. package/dist/utils/bundle-splitting.js +458 -0
  453. package/dist/utils/lazy-loading.d.ts +437 -0
  454. package/dist/utils/lazy-loading.esm.js +415 -0
  455. package/dist/utils/lazy-loading.js +415 -0
  456. package/dist/utils/performance-monitor.d.ts +513 -0
  457. package/dist/utils/performance-monitor.esm.js +472 -0
  458. package/dist/utils/performance-monitor.js +472 -0
  459. package/dist/utils/tree-shaking.d.ts +274 -0
  460. package/dist/utils/tree-shaking.esm.js +266 -0
  461. package/dist/utils/tree-shaking.js +266 -0
  462. package/package.json +1 -1
@@ -0,0 +1,328 @@
1
+ export interface BatteryStatus {
2
+ level: number
3
+ charging: boolean
4
+ chargingTime: number
5
+ dischargingTime: number
6
+ isLow: boolean
7
+ isCritical: boolean
8
+ }
9
+
10
+ export interface BatteryOptimizationConfig {
11
+ enableBatteryMonitoring?: boolean
12
+ enablePerformanceThrottling?: boolean
13
+ enableUserPreferences?: boolean
14
+ enableAdaptiveOptimization?: boolean
15
+ lowBatteryThreshold?: number
16
+ criticalBatteryThreshold?: number
17
+ performanceThrottleLevel?: 'none' | 'light' | 'moderate' | 'aggressive'
18
+ userPreferenceLevel?: 'performance' | 'balanced' | 'battery'
19
+ }
20
+
21
+ export interface BatteryOptimizationCallbacks {
22
+ onBatteryStatusChange?: (status: BatteryStatus) => void
23
+ onLowBatteryWarning?: (status: BatteryStatus) => void
24
+ onCriticalBatteryWarning?: (status: BatteryStatus) => void
25
+ onPerformanceThrottled?: (level: string, reason: string) => void
26
+ onOptimizationApplied?: (optimization: string) => void
27
+ }
28
+
29
+ export declare const useBatteryOptimization: (
30
+ config: BatteryOptimizationConfig = {},
31
+ callbacks: BatteryOptimizationCallbacks = {}
32
+ ) => {
33
+ const {
34
+ enableBatteryMonitoring = true,
35
+ enablePerformanceThrottling = true,
36
+ enableUserPreferences = true,
37
+ enableAdaptiveOptimization = true,
38
+ lowBatteryThreshold = 0.2,
39
+ criticalBatteryThreshold = 0.1,
40
+ userPreferenceLevel = 'balanced'
41
+ } = config
42
+
43
+ const [batteryStatus, setBatteryStatus] = useState<BatteryStatus>({
44
+ level: 1,
45
+ charging: false,
46
+ chargingTime: 0,
47
+ dischargingTime: 0,
48
+ isLow: false,
49
+ isCritical: false
50
+ })
51
+ const [isOptimizing, setIsOptimizing] = useState(false)
52
+ const [optimizations, setOptimizations] = useState<string[]>([])
53
+ const [currentThrottleLevel, setCurrentThrottleLevel] = useState<string>('none')
54
+ const [userPreferences, setUserPreferences] = useState<string>(userPreferenceLevel)
55
+
56
+ const batteryRef = useRef<any>(null)
57
+ const batteryCheckIntervalRef = useRef<number | null>(null)
58
+ const optimizationTimerRef = useRef<number | null>(null)
59
+
60
+ // Get battery status
61
+ const getBatteryStatus = useCallback(async (): Promise<BatteryStatus | null> => {
62
+ if (!enableBatteryMonitoring || !('getBattery' in navigator)) return null
63
+
64
+ try {
65
+ const battery = await (navigator as any).getBattery()
66
+ batteryRef.current = battery
67
+
68
+ const status: BatteryStatus = {
69
+ level: battery.level,
70
+ charging: battery.charging,
71
+ chargingTime: battery.chargingTime,
72
+ dischargingTime: battery.dischargingTime,
73
+ isLow: battery.level <= lowBatteryThreshold,
74
+ isCritical: battery.level <= criticalBatteryThreshold
75
+ }
76
+
77
+ setBatteryStatus(status)
78
+ callbacks.onBatteryStatusChange?.(status)
79
+
80
+ // Check for warnings
81
+ if (status.isCritical) {
82
+ callbacks.onCriticalBatteryWarning?.(status)
83
+ } else if (status.isLow) {
84
+ callbacks.onLowBatteryWarning?.(status)
85
+ }
86
+
87
+ return status
88
+ } catch (error) {
89
+ console.warn('Battery API not available:', error)
90
+ return null
91
+ }
92
+ }, [enableBatteryMonitoring, lowBatteryThreshold, criticalBatteryThreshold, callbacks])
93
+
94
+ // Apply performance throttling based on battery level
95
+ const applyPerformanceThrottling = useCallback((level: string) => {
96
+ if (!enablePerformanceThrottling) return
97
+
98
+ setIsOptimizing(true)
99
+ setCurrentThrottleLevel(level)
100
+
101
+ setTimeout(() => {
102
+ let optimizations: string[] = []
103
+
104
+ switch (level) {
105
+ case 'light':
106
+ optimizations = [
107
+ 'Light performance throttling applied',
108
+ 'Animation complexity reduced by 20%',
109
+ 'Hardware acceleration optimized for battery'
110
+ ]
111
+ break
112
+ case 'moderate':
113
+ optimizations = [
114
+ 'Moderate performance throttling applied',
115
+ 'Animation complexity reduced by 40%',
116
+ 'GPU utilization limited for battery efficiency',
117
+ 'Non-essential animations disabled'
118
+ ]
119
+ break
120
+ case 'aggressive':
121
+ optimizations = [
122
+ 'Aggressive performance throttling applied',
123
+ 'Animation complexity reduced by 70%',
124
+ 'Hardware acceleration minimized',
125
+ 'Only essential animations enabled',
126
+ 'Background processes optimized'
127
+ ]
128
+ break
129
+ default:
130
+ optimizations = ['Performance throttling disabled']
131
+ }
132
+
133
+ setOptimizations(prev => [...prev, ...optimizations])
134
+ setIsOptimizing(false)
135
+
136
+ callbacks.onPerformanceThrottled?.(level, 'Battery optimization')
137
+ optimizations.forEach(optimization => {
138
+ callbacks.onOptimizationApplied?.(optimization)
139
+ })
140
+ }, 300)
141
+ }, [enablePerformanceThrottling, callbacks])
142
+
143
+ // Apply battery optimizations
144
+ const applyBatteryOptimizations = useCallback(() => {
145
+ if (!enableAdaptiveOptimization) return
146
+
147
+ setIsOptimizing(true)
148
+
149
+ setTimeout(() => {
150
+ const optimizations: string[] = []
151
+
152
+ if (batteryStatus.isCritical) {
153
+ optimizations.push('Critical battery mode: Maximum power saving enabled')
154
+ optimizations.push('All non-essential features disabled')
155
+ optimizations.push('Hardware acceleration completely disabled')
156
+ applyPerformanceThrottling('aggressive')
157
+ } else if (batteryStatus.isLow) {
158
+ optimizations.push('Low battery mode: Enhanced power saving enabled')
159
+ optimizations.push('Performance throttling applied')
160
+ optimizations.push('Hardware acceleration optimized for battery')
161
+ applyPerformanceThrottling('moderate')
162
+ } else if (batteryStatus.level < 0.5) {
163
+ optimizations.push('Medium battery: Light optimization applied')
164
+ optimizations.push('Hardware acceleration optimized')
165
+ applyPerformanceThrottling('light')
166
+ } else {
167
+ optimizations.push('High battery: Performance mode enabled')
168
+ optimizations.push('Hardware acceleration at full capacity')
169
+ applyPerformanceThrottling('none')
170
+ }
171
+
172
+ setOptimizations(prev => [...prev, ...optimizations])
173
+ setIsOptimizing(false)
174
+
175
+ optimizations.forEach(optimization => {
176
+ callbacks.onOptimizationApplied?.(optimization)
177
+ })
178
+ }, 200)
179
+ }, [enableAdaptiveOptimization, batteryStatus, applyPerformanceThrottling, callbacks])
180
+
181
+ // Handle user preferences
182
+ const updateUserPreferences = useCallback((preference: string) => {
183
+ if (!enableUserPreferences) return
184
+
185
+ setUserPreferences(preference)
186
+
187
+ let optimizations: string[] = []
188
+
189
+ switch (preference) {
190
+ case 'performance':
191
+ optimizations = [
192
+ 'User preference: Performance mode enabled',
193
+ 'Hardware acceleration at maximum',
194
+ 'Battery optimization disabled'
195
+ ]
196
+ applyPerformanceThrottling('none')
197
+ break
198
+ case 'balanced':
199
+ optimizations = [
200
+ 'User preference: Balanced mode enabled',
201
+ 'Hardware acceleration optimized',
202
+ 'Battery and performance balanced'
203
+ ]
204
+ applyPerformanceThrottling('light')
205
+ break
206
+ case 'battery':
207
+ optimizations = [
208
+ 'User preference: Battery saver mode enabled',
209
+ 'Hardware acceleration optimized for battery',
210
+ 'Performance throttling applied'
211
+ ]
212
+ applyPerformanceThrottling('moderate')
213
+ break
214
+ }
215
+
216
+ setOptimizations(prev => [...prev, ...optimizations])
217
+ optimizations.forEach(optimization => {
218
+ callbacks.onOptimizationApplied?.(optimization)
219
+ })
220
+ }, [enableUserPreferences, applyPerformanceThrottling, callbacks])
221
+
222
+ // Get optimization recommendations
223
+ const getOptimizationRecommendations = useCallback(() => {
224
+ const recommendations = []
225
+
226
+ if (batteryStatus.isCritical) {
227
+ recommendations.push('Critical battery: Disable all non-essential features')
228
+ recommendations.push('Reduce screen brightness and disable animations')
229
+ recommendations.push('Close unnecessary applications and tabs')
230
+ } else if (batteryStatus.isLow) {
231
+ recommendations.push('Low battery: Enable battery saver mode')
232
+ recommendations.push('Reduce animation complexity and GPU usage')
233
+ recommendations.push('Optimize background processes')
234
+ } else if (batteryStatus.level < 0.5) {
235
+ recommendations.push('Medium battery: Consider light optimizations')
236
+ recommendations.push('Monitor hardware acceleration usage')
237
+ recommendations.push('Balance performance and battery life')
238
+ } else {
239
+ recommendations.push('High battery: Full performance available')
240
+ recommendations.push('Hardware acceleration at maximum capacity')
241
+ recommendations.push('Monitor for optimal performance')
242
+ }
243
+
244
+ return recommendations
245
+ }, [batteryStatus])
246
+
247
+ // Initialize battery monitoring
248
+ useEffect(() => {
249
+ if (!enableBatteryMonitoring) return
250
+
251
+ try {
252
+ // Get initial battery status
253
+ getBatteryStatus()
254
+
255
+ // Set up battery monitoring interval
256
+ batteryCheckIntervalRef.current = window.setInterval(getBatteryStatus, 10000) // Check every 10 seconds
257
+
258
+ return () => {
259
+ if (batteryCheckIntervalRef.current) {
260
+ clearInterval(batteryCheckIntervalRef.current)
261
+ }
262
+ }
263
+ } catch (error) {
264
+ console.warn('Battery optimization initialization failed:', error)
265
+ }
266
+ }, [enableBatteryMonitoring, getBatteryStatus])
267
+
268
+ // Apply optimizations when battery status changes
269
+ useEffect(() => {
270
+ if (enableAdaptiveOptimization) {
271
+ applyBatteryOptimizations()
272
+ }
273
+ }, [enableAdaptiveOptimization, applyBatteryOptimizations])
274
+
275
+ // Set initial user preferences
276
+ useEffect(() => {
277
+ if (enableUserPreferences) {
278
+ updateUserPreferences(userPreferenceLevel)
279
+ }
280
+ }, [enableUserPreferences, userPreferenceLevel, updateUserPreferences])
281
+
282
+ // Cleanup on unmount
283
+ useEffect(() => {
284
+ return () => {
285
+ if (batteryCheckIntervalRef.current) {
286
+ clearInterval(batteryCheckIntervalRef.current)
287
+ }
288
+ if (optimizationTimerRef.current) {
289
+ clearTimeout(optimizationTimerRef.current)
290
+ }
291
+ }
292
+ }, [])
293
+
294
+ return {
295
+ // State
296
+ batteryStatus,
297
+ isOptimizing,
298
+ optimizations,
299
+ currentThrottleLevel,
300
+ userPreferences,
301
+
302
+ // Actions
303
+ getBatteryStatus,
304
+ applyPerformanceThrottling,
305
+ applyBatteryOptimizations,
306
+ updateUserPreferences,
307
+
308
+ // Computed values
309
+ isLowBattery: batteryStatus.isLow,
310
+ isCriticalBattery: batteryStatus.isCritical,
311
+ batteryPercentage: Math.round(batteryStatus.level * 100),
312
+ optimizationRecommendations: getOptimizationRecommendations(),
313
+ isCharging: batteryStatus.charging,
314
+ estimatedTimeRemaining: batteryStatus.charging ?
315
+ batteryStatus.chargingTime : batteryStatus.dischargingTime,
316
+
317
+ // Utility functions
318
+ getBatteryHealth: () => {
319
+ if (batteryStatus.level >= 0.8) return 'excellent'
320
+ if (batteryStatus.level >= 0.6) return 'good'
321
+ if (batteryStatus.level >= 0.4) return 'fair'
322
+ if (batteryStatus.level >= 0.2) return 'poor'
323
+ return 'critical'
324
+ }
325
+ }
326
+ }
327
+
328
+ export default useBatteryOptimization
@@ -0,0 +1,307 @@
1
+ import { useState, useEffect, useCallback, useRef } from 'react'
2
+
3
+ export interface BatteryStatus {
4
+ level}
5
+
6
+ export interface BatteryOptimizationConfig {
7
+ enableBatteryMonitoring?}
8
+
9
+ export interface BatteryOptimizationCallbacks {
10
+ onBatteryStatusChange?) => void
11
+ onLowBatteryWarning?) => void
12
+ onCriticalBatteryWarning?) => void
13
+ onPerformanceThrottled?, reason) => void
14
+ onOptimizationApplied?) => void
15
+ }
16
+
17
+ export const useBatteryOptimization = (
18
+ config= {},
19
+ callbacks= {}
20
+ ) => {
21
+ const {
22
+ enableBatteryMonitoring = true,
23
+ enablePerformanceThrottling = true,
24
+ enableUserPreferences = true,
25
+ enableAdaptiveOptimization = true,
26
+ lowBatteryThreshold = 0.2,
27
+ criticalBatteryThreshold = 0.1,
28
+ userPreferenceLevel = 'balanced'
29
+ } = config
30
+
31
+ const [batteryStatus, setBatteryStatus] = useState<BatteryStatus>({
32
+ level,
33
+ charging,
34
+ chargingTime,
35
+ dischargingTime,
36
+ isLow,
37
+ isCritical})
38
+ const [isOptimizing, setIsOptimizing] = useState(false)
39
+ const [optimizations, setOptimizations] = useState<string[]>([])
40
+ const [currentThrottleLevel, setCurrentThrottleLevel] = useState<string>('none')
41
+ const [userPreferences, setUserPreferences] = useState<string>(userPreferenceLevel)
42
+
43
+ const batteryRef = useRef<any>(null)
44
+ const batteryCheckIntervalRef = useRef<number | null>(null)
45
+ const optimizationTimerRef = useRef<number | null>(null)
46
+
47
+ // Get battery status
48
+ const getBatteryStatus = useCallback(async ()=> {
49
+ if (!enableBatteryMonitoring || !('getBattery' in navigator)) return null
50
+
51
+ try {
52
+ const battery = await (navigator as any).getBattery()
53
+ batteryRef.current = battery
54
+
55
+ const status= {
56
+ level,
57
+ charging,
58
+ chargingTime,
59
+ dischargingTime,
60
+ isLow= lowBatteryThreshold,
61
+ isCritical= criticalBatteryThreshold
62
+ }
63
+
64
+ setBatteryStatus(status)
65
+ callbacks.onBatteryStatusChange?.(status)
66
+
67
+ // Check for warnings
68
+ if (status.isCritical) {
69
+ callbacks.onCriticalBatteryWarning?.(status)
70
+ } else if (status.isLow) {
71
+ callbacks.onLowBatteryWarning?.(status)
72
+ }
73
+
74
+ return status
75
+ } catch (error) {
76
+ console.warn('Battery API not available, error)
77
+ return null
78
+ }
79
+ }, [enableBatteryMonitoring, lowBatteryThreshold, criticalBatteryThreshold, callbacks])
80
+
81
+ // Apply performance throttling based on battery level
82
+ const applyPerformanceThrottling = useCallback((level) => {
83
+ if (!enablePerformanceThrottling) return
84
+
85
+ setIsOptimizing(true)
86
+ setCurrentThrottleLevel(level)
87
+
88
+ setTimeout(() => {
89
+ let optimizations] = []
90
+
91
+ switch (level) {
92
+ case 'light'= [
93
+ 'Light performance throttling applied',
94
+ 'Animation complexity reduced by 20%',
95
+ 'Hardware acceleration optimized for battery'
96
+ ]
97
+ break
98
+ case 'moderate'= [
99
+ 'Moderate performance throttling applied',
100
+ 'Animation complexity reduced by 40%',
101
+ 'GPU utilization limited for battery efficiency',
102
+ 'Non-essential animations disabled'
103
+ ]
104
+ break
105
+ case 'aggressive'= [
106
+ 'Aggressive performance throttling applied',
107
+ 'Animation complexity reduced by 70%',
108
+ 'Hardware acceleration minimized',
109
+ 'Only essential animations enabled',
110
+ 'Background processes optimized'
111
+ ]
112
+ break
113
+ default= ['Performance throttling disabled']
114
+ }
115
+
116
+ setOptimizations(prev => [...prev, ...optimizations])
117
+ setIsOptimizing(false)
118
+
119
+ callbacks.onPerformanceThrottled?.(level, 'Battery optimization')
120
+ optimizations.forEach(optimization => {
121
+ callbacks.onOptimizationApplied?.(optimization)
122
+ })
123
+ }, 300)
124
+ }, [enablePerformanceThrottling, callbacks])
125
+
126
+ // Apply battery optimizations
127
+ const applyBatteryOptimizations = useCallback(() => {
128
+ if (!enableAdaptiveOptimization) return
129
+
130
+ setIsOptimizing(true)
131
+
132
+ setTimeout(() => {
133
+ const optimizations] = []
134
+
135
+ if (batteryStatus.isCritical) {
136
+ optimizations.push('Critical battery mode)
137
+ optimizations.push('All non-essential features disabled')
138
+ optimizations.push('Hardware acceleration completely disabled')
139
+ applyPerformanceThrottling('aggressive')
140
+ } else if (batteryStatus.isLow) {
141
+ optimizations.push('Low battery mode)
142
+ optimizations.push('Performance throttling applied')
143
+ optimizations.push('Hardware acceleration optimized for battery')
144
+ applyPerformanceThrottling('moderate')
145
+ } else if (batteryStatus.level < 0.5) {
146
+ optimizations.push('Medium battery)
147
+ optimizations.push('Hardware acceleration optimized')
148
+ applyPerformanceThrottling('light')
149
+ } else {
150
+ optimizations.push('High battery)
151
+ optimizations.push('Hardware acceleration at full capacity')
152
+ applyPerformanceThrottling('none')
153
+ }
154
+
155
+ setOptimizations(prev => [...prev, ...optimizations])
156
+ setIsOptimizing(false)
157
+
158
+ optimizations.forEach(optimization => {
159
+ callbacks.onOptimizationApplied?.(optimization)
160
+ })
161
+ }, 200)
162
+ }, [enableAdaptiveOptimization, batteryStatus, applyPerformanceThrottling, callbacks])
163
+
164
+ // Handle user preferences
165
+ const updateUserPreferences = useCallback((preference) => {
166
+ if (!enableUserPreferences) return
167
+
168
+ setUserPreferences(preference)
169
+
170
+ let optimizations] = []
171
+
172
+ switch (preference) {
173
+ case 'performance'= [
174
+ 'User preference,
175
+ 'Hardware acceleration at maximum',
176
+ 'Battery optimization disabled'
177
+ ]
178
+ applyPerformanceThrottling('none')
179
+ break
180
+ case 'balanced'= [
181
+ 'User preference,
182
+ 'Hardware acceleration optimized',
183
+ 'Battery and performance balanced'
184
+ ]
185
+ applyPerformanceThrottling('light')
186
+ break
187
+ case 'battery'= [
188
+ 'User preference,
189
+ 'Hardware acceleration optimized for battery',
190
+ 'Performance throttling applied'
191
+ ]
192
+ applyPerformanceThrottling('moderate')
193
+ break
194
+ }
195
+
196
+ setOptimizations(prev => [...prev, ...optimizations])
197
+ optimizations.forEach(optimization => {
198
+ callbacks.onOptimizationApplied?.(optimization)
199
+ })
200
+ }, [enableUserPreferences, applyPerformanceThrottling, callbacks])
201
+
202
+ // Get optimization recommendations
203
+ const getOptimizationRecommendations = useCallback(() => {
204
+ const recommendations = []
205
+
206
+ if (batteryStatus.isCritical) {
207
+ recommendations.push('Critical battery)
208
+ recommendations.push('Reduce screen brightness and disable animations')
209
+ recommendations.push('Close unnecessary applications and tabs')
210
+ } else if (batteryStatus.isLow) {
211
+ recommendations.push('Low battery)
212
+ recommendations.push('Reduce animation complexity and GPU usage')
213
+ recommendations.push('Optimize background processes')
214
+ } else if (batteryStatus.level < 0.5) {
215
+ recommendations.push('Medium battery)
216
+ recommendations.push('Monitor hardware acceleration usage')
217
+ recommendations.push('Balance performance and battery life')
218
+ } else {
219
+ recommendations.push('High battery)
220
+ recommendations.push('Hardware acceleration at maximum capacity')
221
+ recommendations.push('Monitor for optimal performance')
222
+ }
223
+
224
+ return recommendations
225
+ }, [batteryStatus])
226
+
227
+ // Initialize battery monitoring
228
+ useEffect(() => {
229
+ if (!enableBatteryMonitoring) return
230
+
231
+ try {
232
+ // Get initial battery status
233
+ getBatteryStatus()
234
+
235
+ // Set up battery monitoring interval
236
+ batteryCheckIntervalRef.current = window.setInterval(getBatteryStatus, 10000) // Check every 10 seconds
237
+
238
+ return () => {
239
+ if (batteryCheckIntervalRef.current) {
240
+ clearInterval(batteryCheckIntervalRef.current)
241
+ }
242
+ }
243
+ } catch (error) {
244
+ console.warn('Battery optimization initialization failed, error)
245
+ }
246
+ }, [enableBatteryMonitoring, getBatteryStatus])
247
+
248
+ // Apply optimizations when battery status changes
249
+ useEffect(() => {
250
+ if (enableAdaptiveOptimization) {
251
+ applyBatteryOptimizations()
252
+ }
253
+ }, [enableAdaptiveOptimization, applyBatteryOptimizations])
254
+
255
+ // Set initial user preferences
256
+ useEffect(() => {
257
+ if (enableUserPreferences) {
258
+ updateUserPreferences(userPreferenceLevel)
259
+ }
260
+ }, [enableUserPreferences, userPreferenceLevel, updateUserPreferences])
261
+
262
+ // Cleanup on unmount
263
+ useEffect(() => {
264
+ return () => {
265
+ if (batteryCheckIntervalRef.current) {
266
+ clearInterval(batteryCheckIntervalRef.current)
267
+ }
268
+ if (optimizationTimerRef.current) {
269
+ clearTimeout(optimizationTimerRef.current)
270
+ }
271
+ }
272
+ }, [])
273
+
274
+ return {
275
+ // State
276
+ batteryStatus,
277
+ isOptimizing,
278
+ optimizations,
279
+ currentThrottleLevel,
280
+ userPreferences,
281
+
282
+ // Actions
283
+ getBatteryStatus,
284
+ applyPerformanceThrottling,
285
+ applyBatteryOptimizations,
286
+ updateUserPreferences,
287
+
288
+ // Computed values
289
+ isLowBattery,
290
+ isCriticalBattery,
291
+ batteryPercentage),
292
+ optimizationRecommendations),
293
+ isCharging,
294
+ estimatedTimeRemaining,
295
+
296
+ // Utility functions
297
+ getBatteryHealth) => {
298
+ if (batteryStatus.level >= 0.8) return 'excellent'
299
+ if (batteryStatus.level >= 0.6) return 'good'
300
+ if (batteryStatus.level >= 0.4) return 'fair'
301
+ if (batteryStatus.level >= 0.2) return 'poor'
302
+ return 'critical'
303
+ }
304
+ }
305
+ }
306
+
307
+ export default useBatteryOptimization