@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,285 @@
1
+ export interface MemoryMetrics {
2
+ usedJSHeapSize: number
3
+ totalJSHeapSize: number
4
+ jsHeapSizeLimit: number
5
+ memoryUsage: number
6
+ memoryPercentage: number
7
+ memoryTrend: 'increasing' | 'decreasing' | 'stable'
8
+ memoryLeakDetected: boolean
9
+ performanceScore: 'excellent' | 'good' | 'fair' | 'poor'
10
+ }
11
+
12
+ export interface MemoryThresholds {
13
+ warning: number
14
+ critical: number
15
+ excellent: number
16
+ }
17
+
18
+ export interface MemoryCallbacks {
19
+ onMemoryWarning?: (usage: number) => void
20
+ onMemoryCritical?: (usage: number) => void
21
+ onMemoryLeakDetected?: (trend: MemoryMetrics['memoryTrend']) => void
22
+ onPerformanceScoreChange?: (score: MemoryMetrics['performanceScore']) => void
23
+ }
24
+
25
+ export interface MemoryOptions {
26
+ updateInterval?: number
27
+ sampleSize?: number
28
+ thresholds?: Partial<MemoryThresholds>
29
+ callbacks?: MemoryCallbacks
30
+ }
31
+
32
+ const DEFAULT_THRESHOLDS: MemoryThresholds = {
33
+ warning: 0.7,
34
+ critical: 0.85,
35
+ excellent: 0.5
36
+ }
37
+
38
+ const DEFAULT_SAMPLE_SIZE = 10
39
+ const MEMORY_LEAK_THRESHOLD = 0.1 // 10% increase over time
40
+
41
+ export declare const useMemoryUsage: (options: MemoryOptions = {}) => {
42
+ const {
43
+ updateInterval = 2000,
44
+ sampleSize = DEFAULT_SAMPLE_SIZE,
45
+ thresholds = {},
46
+ callbacks = {}
47
+ } = options
48
+
49
+ const [metrics, setMetrics] = useState<MemoryMetrics>({
50
+ usedJSHeapSize: 0,
51
+ totalJSHeapSize: 0,
52
+ jsHeapSizeLimit: 0,
53
+ memoryUsage: 0,
54
+ memoryPercentage: 0,
55
+ memoryTrend: 'stable',
56
+ memoryLeakDetected: false,
57
+ performanceScore: 'excellent'
58
+ })
59
+
60
+ const [isMonitoring, setIsMonitoring] = useState(false)
61
+ const intervalIdRef = useRef<NodeJS.Timeout>()
62
+ const memoryHistoryRef = useRef<number[]>([])
63
+ const lastMemoryRef = useRef<number>(0)
64
+
65
+ // Merge default thresholds with custom ones
66
+ const finalThresholds = useMemo(() => ({
67
+ ...DEFAULT_THRESHOLDS,
68
+ ...thresholds
69
+ }), [thresholds])
70
+
71
+ // Calculate performance score based on memory usage
72
+ const calculatePerformanceScore = useCallback((usage: number): MemoryMetrics['performanceScore'] => {
73
+ if (usage <= finalThresholds.excellent) return 'excellent'
74
+ if (usage <= finalThresholds.warning) return 'good'
75
+ if (usage <= finalThresholds.critical) return 'fair'
76
+ return 'poor'
77
+ }, [finalThresholds])
78
+
79
+ // Detect memory trend
80
+ const detectMemoryTrend = useCallback((currentUsage: number, previousUsage: number): MemoryMetrics['memoryTrend'] => {
81
+ const difference = currentUsage - previousUsage
82
+ const percentageChange = Math.abs(difference) / previousUsage
83
+
84
+ if (percentageChange < 0.02) return 'stable'
85
+ if (difference > 0) return 'increasing'
86
+ return 'decreasing'
87
+ }, [])
88
+
89
+ // Detect potential memory leaks
90
+ const detectMemoryLeak = useCallback((_usage: number, history: number[]): boolean => {
91
+ if (history.length < 5) return false
92
+
93
+ // Check if memory usage is consistently increasing
94
+ const recentHistory = history.slice(-5)
95
+ const isConsistentlyIncreasing = recentHistory.every((value, index) => {
96
+ if (index === 0) return true
97
+ return value >= recentHistory[index - 1]
98
+ })
99
+
100
+ if (!isConsistentlyIncreasing) return false
101
+
102
+ // Check if the increase is significant
103
+ const firstValue = recentHistory[0]
104
+ const lastValue = recentHistory[recentHistory.length - 1]
105
+ const increase = (lastValue - firstValue) / firstValue
106
+
107
+ return increase > MEMORY_LEAK_THRESHOLD
108
+ }, [])
109
+
110
+ // Update memory information
111
+ const updateMemoryInfo = useCallback(() => {
112
+ if ('memory' in performance) {
113
+ const memory = (performance as any).memory
114
+ const usedJSHeapSize = memory.usedJSHeapSize
115
+ const totalJSHeapSize = memory.totalJSHeapSize
116
+ const jsHeapSizeLimit = memory.jsHeapSizeLimit
117
+
118
+ const memoryUsage = usedJSHeapSize / jsHeapSizeLimit
119
+ const memoryPercentage = memoryUsage * 100
120
+
121
+ // Update memory history
122
+ memoryHistoryRef.current.push(memoryUsage)
123
+ if (memoryHistoryRef.current.length > sampleSize) {
124
+ memoryHistoryRef.current.shift()
125
+ }
126
+
127
+ // Detect memory trend
128
+ const memoryTrend = detectMemoryTrend(memoryUsage, lastMemoryRef.current)
129
+
130
+ // Detect memory leaks
131
+ const memoryLeakDetected = detectMemoryLeak(memoryUsage, memoryHistoryRef.current)
132
+
133
+ // Calculate performance score
134
+ const performanceScore = calculatePerformanceScore(memoryUsage)
135
+
136
+ const newMetrics: MemoryMetrics = {
137
+ usedJSHeapSize,
138
+ totalJSHeapSize,
139
+ jsHeapSizeLimit,
140
+ memoryUsage,
141
+ memoryPercentage,
142
+ memoryTrend,
143
+ memoryLeakDetected,
144
+ performanceScore
145
+ }
146
+
147
+ setMetrics(newMetrics)
148
+
149
+ // Check thresholds and call callbacks
150
+ if (memoryUsage >= finalThresholds.critical && callbacks.onMemoryCritical) {
151
+ callbacks.onMemoryCritical(memoryUsage)
152
+ } else if (memoryUsage >= finalThresholds.warning && callbacks.onMemoryWarning) {
153
+ callbacks.onMemoryWarning(memoryUsage)
154
+ }
155
+
156
+ if (memoryLeakDetected && callbacks.onMemoryLeakDetected) {
157
+ callbacks.onMemoryLeakDetected(memoryTrend)
158
+ }
159
+
160
+ // Check if performance score changed
161
+ if (performanceScore !== metrics.performanceScore && callbacks.onPerformanceScoreChange) {
162
+ callbacks.onPerformanceScoreChange(performanceScore)
163
+ }
164
+
165
+ lastMemoryRef.current = memoryUsage
166
+ }
167
+ }, [finalThresholds, callbacks, metrics.performanceScore, detectMemoryTrend, detectMemoryLeak, calculatePerformanceScore, sampleSize])
168
+
169
+ // Start monitoring
170
+ const startMonitoring = useCallback(() => {
171
+ if (isMonitoring) return
172
+
173
+ setIsMonitoring(true)
174
+
175
+ // Initial memory check
176
+ updateMemoryInfo()
177
+
178
+ // Set up interval for memory updates
179
+ intervalIdRef.current = setInterval(updateMemoryInfo, updateInterval)
180
+ }, [isMonitoring, updateMemoryInfo, updateInterval])
181
+
182
+ // Stop monitoring
183
+ const stopMonitoring = useCallback(() => {
184
+ setIsMonitoring(false)
185
+
186
+ if (intervalIdRef.current) {
187
+ clearInterval(intervalIdRef.current)
188
+ }
189
+ }, [])
190
+
191
+ // Reset statistics
192
+ const resetStats = useCallback(() => {
193
+ memoryHistoryRef.current = []
194
+ lastMemoryRef.current = 0
195
+ setMetrics(prev => ({
196
+ ...prev,
197
+ memoryTrend: 'stable',
198
+ memoryLeakDetected: false
199
+ }))
200
+ }, [])
201
+
202
+ // Auto-start monitoring on mount
203
+ useEffect(() => {
204
+ startMonitoring()
205
+ return () => stopMonitoring()
206
+ }, [startMonitoring, stopMonitoring])
207
+
208
+ // Memory optimization recommendations
209
+ const getOptimizationRecommendations = useCallback(() => {
210
+ const recommendations: string[] = []
211
+
212
+ if (metrics.memoryUsage >= finalThresholds.critical) {
213
+ recommendations.push('Critical memory usage - consider implementing memory cleanup and lazy loading')
214
+ } else if (metrics.memoryUsage >= finalThresholds.warning) {
215
+ recommendations.push('High memory usage - monitor for memory leaks and optimize resource usage')
216
+ }
217
+
218
+ if (metrics.memoryLeakDetected) {
219
+ recommendations.push('Potential memory leak detected - investigate resource cleanup and event listeners')
220
+ }
221
+
222
+ if (metrics.memoryTrend === 'increasing') {
223
+ recommendations.push('Memory usage is increasing - check for proper cleanup in useEffect and event handlers')
224
+ }
225
+
226
+ if (metrics.memoryPercentage > 80) {
227
+ recommendations.push('Memory usage above 80% - consider implementing virtual scrolling or pagination')
228
+ }
229
+
230
+ return recommendations
231
+ }, [metrics, finalThresholds])
232
+
233
+ // Memory cleanup suggestions
234
+ const getCleanupSuggestions = useCallback(() => {
235
+ const suggestions: string[] = []
236
+
237
+ if (metrics.memoryLeakDetected) {
238
+ suggestions.push('Review useEffect cleanup functions')
239
+ suggestions.push('Check for unremoved event listeners')
240
+ suggestions.push('Verify proper cleanup in component unmount')
241
+ suggestions.push('Consider using AbortController for fetch requests')
242
+ }
243
+
244
+ if (metrics.memoryTrend === 'increasing') {
245
+ suggestions.push('Implement proper cleanup in useEffect return functions')
246
+ suggestions.push('Review component lifecycle management')
247
+ suggestions.push('Check for circular references')
248
+ }
249
+
250
+ return suggestions
251
+ }, [metrics])
252
+
253
+ return {
254
+ // Metrics
255
+ metrics,
256
+
257
+ // Controls
258
+ startMonitoring,
259
+ stopMonitoring,
260
+ isMonitoring,
261
+ resetStats,
262
+
263
+ // Performance analysis
264
+ performanceScore: metrics.performanceScore,
265
+ memoryTrend: metrics.memoryTrend,
266
+ memoryLeakDetected: metrics.memoryLeakDetected,
267
+
268
+ // Optimization
269
+ getOptimizationRecommendations,
270
+ getCleanupSuggestions,
271
+
272
+ // Raw values
273
+ usedJSHeapSize: metrics.usedJSHeapSize,
274
+ totalJSHeapSize: metrics.totalJSHeapSize,
275
+ jsHeapSizeLimit: metrics.jsHeapSizeLimit,
276
+ memoryUsage: metrics.memoryUsage,
277
+ memoryPercentage: metrics.memoryPercentage,
278
+
279
+ // Thresholds
280
+ thresholds: finalThresholds,
281
+
282
+ // History
283
+ memoryHistory: memoryHistoryRef.current
284
+ }
285
+ }
@@ -0,0 +1,268 @@
1
+ import { useState, useEffect, useCallback, useRef, useMemo } from 'react'
2
+
3
+ export interface MemoryMetrics {
4
+ usedJSHeapSize}
5
+
6
+ export interface MemoryThresholds {
7
+ warning}
8
+
9
+ export interface MemoryCallbacks {
10
+ onMemoryWarning?) => void
11
+ onMemoryCritical?) => void
12
+ onMemoryLeakDetected?]) => void
13
+ onPerformanceScoreChange?]) => void
14
+ }
15
+
16
+ export interface MemoryOptions {
17
+ updateInterval?}
18
+
19
+ const DEFAULT_THRESHOLDS= {
20
+ warning,
21
+ critical,
22
+ excellent}
23
+
24
+ const DEFAULT_SAMPLE_SIZE = 10
25
+ const MEMORY_LEAK_THRESHOLD = 0.1 // 10% increase over time
26
+
27
+ export const useMemoryUsage = (options= {}) => {
28
+ const {
29
+ updateInterval = 2000,
30
+ sampleSize = DEFAULT_SAMPLE_SIZE,
31
+ thresholds = {},
32
+ callbacks = {}
33
+ } = options
34
+
35
+ const [metrics, setMetrics] = useState<MemoryMetrics>({
36
+ usedJSHeapSize,
37
+ totalJSHeapSize,
38
+ jsHeapSizeLimit,
39
+ memoryUsage,
40
+ memoryPercentage,
41
+ memoryTrend,
42
+ memoryLeakDetected,
43
+ performanceScore})
44
+
45
+ const [isMonitoring, setIsMonitoring] = useState(false)
46
+ const intervalIdRef = useRef<NodeJS.Timeout>()
47
+ const memoryHistoryRef = useRef<number[]>([])
48
+ const lastMemoryRef = useRef<number>(0)
49
+
50
+ // Merge default thresholds with custom ones
51
+ const finalThresholds = useMemo(() => ({
52
+ ...DEFAULT_THRESHOLDS,
53
+ ...thresholds
54
+ }), [thresholds])
55
+
56
+ // Calculate performance score based on memory usage
57
+ const calculatePerformanceScore = useCallback((usage)] => {
58
+ if (usage <= finalThresholds.excellent) return 'excellent'
59
+ if (usage <= finalThresholds.warning) return 'good'
60
+ if (usage <= finalThresholds.critical) return 'fair'
61
+ return 'poor'
62
+ }, [finalThresholds])
63
+
64
+ // Detect memory trend
65
+ const detectMemoryTrend = useCallback((currentUsage, previousUsage)] => {
66
+ const difference = currentUsage - previousUsage
67
+ const percentageChange = Math.abs(difference) / previousUsage
68
+
69
+ if (percentageChange < 0.02) return 'stable'
70
+ if (difference > 0) return 'increasing'
71
+ return 'decreasing'
72
+ }, [])
73
+
74
+ // Detect potential memory leaks
75
+ const detectMemoryLeak = useCallback((_usage, history])=> {
76
+ if (history.length < 5) return false
77
+
78
+ // Check if memory usage is consistently increasing
79
+ const recentHistory = history.slice(-5)
80
+ const isConsistentlyIncreasing = recentHistory.every((value, index) => {
81
+ if (index === 0) return true
82
+ return value >= recentHistory[index - 1]
83
+ })
84
+
85
+ if (!isConsistentlyIncreasing) return false
86
+
87
+ // Check if the increase is significant
88
+ const firstValue = recentHistory[0]
89
+ const lastValue = recentHistory[recentHistory.length - 1]
90
+ const increase = (lastValue - firstValue) / firstValue
91
+
92
+ return increase > MEMORY_LEAK_THRESHOLD
93
+ }, [])
94
+
95
+ // Update memory information
96
+ const updateMemoryInfo = useCallback(() => {
97
+ if ('memory' in performance) {
98
+ const memory = (performance as any).memory
99
+ const usedJSHeapSize = memory.usedJSHeapSize
100
+ const totalJSHeapSize = memory.totalJSHeapSize
101
+ const jsHeapSizeLimit = memory.jsHeapSizeLimit
102
+
103
+ const memoryUsage = usedJSHeapSize / jsHeapSizeLimit
104
+ const memoryPercentage = memoryUsage * 100
105
+
106
+ // Update memory history
107
+ memoryHistoryRef.current.push(memoryUsage)
108
+ if (memoryHistoryRef.current.length > sampleSize) {
109
+ memoryHistoryRef.current.shift()
110
+ }
111
+
112
+ // Detect memory trend
113
+ const memoryTrend = detectMemoryTrend(memoryUsage, lastMemoryRef.current)
114
+
115
+ // Detect memory leaks
116
+ const memoryLeakDetected = detectMemoryLeak(memoryUsage, memoryHistoryRef.current)
117
+
118
+ // Calculate performance score
119
+ const performanceScore = calculatePerformanceScore(memoryUsage)
120
+
121
+ const newMetrics= {
122
+ usedJSHeapSize,
123
+ totalJSHeapSize,
124
+ jsHeapSizeLimit,
125
+ memoryUsage,
126
+ memoryPercentage,
127
+ memoryTrend,
128
+ memoryLeakDetected,
129
+ performanceScore
130
+ }
131
+
132
+ setMetrics(newMetrics)
133
+
134
+ // Check thresholds and call callbacks
135
+ if (memoryUsage >= finalThresholds.critical && callbacks.onMemoryCritical) {
136
+ callbacks.onMemoryCritical(memoryUsage)
137
+ } else if (memoryUsage >= finalThresholds.warning && callbacks.onMemoryWarning) {
138
+ callbacks.onMemoryWarning(memoryUsage)
139
+ }
140
+
141
+ if (memoryLeakDetected && callbacks.onMemoryLeakDetected) {
142
+ callbacks.onMemoryLeakDetected(memoryTrend)
143
+ }
144
+
145
+ // Check if performance score changed
146
+ if (performanceScore !== metrics.performanceScore && callbacks.onPerformanceScoreChange) {
147
+ callbacks.onPerformanceScoreChange(performanceScore)
148
+ }
149
+
150
+ lastMemoryRef.current = memoryUsage
151
+ }
152
+ }, [finalThresholds, callbacks, metrics.performanceScore, detectMemoryTrend, detectMemoryLeak, calculatePerformanceScore, sampleSize])
153
+
154
+ // Start monitoring
155
+ const startMonitoring = useCallback(() => {
156
+ if (isMonitoring) return
157
+
158
+ setIsMonitoring(true)
159
+
160
+ // Initial memory check
161
+ updateMemoryInfo()
162
+
163
+ // Set up interval for memory updates
164
+ intervalIdRef.current = setInterval(updateMemoryInfo, updateInterval)
165
+ }, [isMonitoring, updateMemoryInfo, updateInterval])
166
+
167
+ // Stop monitoring
168
+ const stopMonitoring = useCallback(() => {
169
+ setIsMonitoring(false)
170
+
171
+ if (intervalIdRef.current) {
172
+ clearInterval(intervalIdRef.current)
173
+ }
174
+ }, [])
175
+
176
+ // Reset statistics
177
+ const resetStats = useCallback(() => {
178
+ memoryHistoryRef.current = []
179
+ lastMemoryRef.current = 0
180
+ setMetrics(prev => ({
181
+ ...prev,
182
+ memoryTrend,
183
+ memoryLeakDetected}))
184
+ }, [])
185
+
186
+ // Auto-start monitoring on mount
187
+ useEffect(() => {
188
+ startMonitoring()
189
+ return () => stopMonitoring()
190
+ }, [startMonitoring, stopMonitoring])
191
+
192
+ // Memory optimization recommendations
193
+ const getOptimizationRecommendations = useCallback(() => {
194
+ const recommendations] = []
195
+
196
+ if (metrics.memoryUsage >= finalThresholds.critical) {
197
+ recommendations.push('Critical memory usage - consider implementing memory cleanup and lazy loading')
198
+ } else if (metrics.memoryUsage >= finalThresholds.warning) {
199
+ recommendations.push('High memory usage - monitor for memory leaks and optimize resource usage')
200
+ }
201
+
202
+ if (metrics.memoryLeakDetected) {
203
+ recommendations.push('Potential memory leak detected - investigate resource cleanup and event listeners')
204
+ }
205
+
206
+ if (metrics.memoryTrend === 'increasing') {
207
+ recommendations.push('Memory usage is increasing - check for proper cleanup in useEffect and event handlers')
208
+ }
209
+
210
+ if (metrics.memoryPercentage > 80) {
211
+ recommendations.push('Memory usage above 80% - consider implementing virtual scrolling or pagination')
212
+ }
213
+
214
+ return recommendations
215
+ }, [metrics, finalThresholds])
216
+
217
+ // Memory cleanup suggestions
218
+ const getCleanupSuggestions = useCallback(() => {
219
+ const suggestions] = []
220
+
221
+ if (metrics.memoryLeakDetected) {
222
+ suggestions.push('Review useEffect cleanup functions')
223
+ suggestions.push('Check for unremoved event listeners')
224
+ suggestions.push('Verify proper cleanup in component unmount')
225
+ suggestions.push('Consider using AbortController for fetch requests')
226
+ }
227
+
228
+ if (metrics.memoryTrend === 'increasing') {
229
+ suggestions.push('Implement proper cleanup in useEffect return functions')
230
+ suggestions.push('Review component lifecycle management')
231
+ suggestions.push('Check for circular references')
232
+ }
233
+
234
+ return suggestions
235
+ }, [metrics])
236
+
237
+ return {
238
+ // Metrics
239
+ metrics,
240
+
241
+ // Controls
242
+ startMonitoring,
243
+ stopMonitoring,
244
+ isMonitoring,
245
+ resetStats,
246
+
247
+ // Performance analysis
248
+ performanceScore,
249
+ memoryTrend,
250
+ memoryLeakDetected,
251
+
252
+ // Optimization
253
+ getOptimizationRecommendations,
254
+ getCleanupSuggestions,
255
+
256
+ // Raw values
257
+ usedJSHeapSize,
258
+ totalJSHeapSize,
259
+ jsHeapSizeLimit,
260
+ memoryUsage,
261
+ memoryPercentage,
262
+
263
+ // Thresholds
264
+ thresholds,
265
+
266
+ // History
267
+ memoryHistory}
268
+ }