@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.6 → 0.2.8

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 (468) 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/index.esm.js +2 -2
  345. package/dist/index.js +2 -2
  346. package/dist/lib/utils.d.ts +3 -0
  347. package/dist/lib/utils.esm.js +6 -0
  348. package/dist/lib/utils.js +6 -0
  349. package/dist/plugins/theme-css-generator.d.ts +345 -0
  350. package/dist/plugins/theme-css-generator.esm.js +305 -0
  351. package/dist/plugins/theme-css-generator.js +305 -0
  352. package/dist/styles.css +1 -1
  353. package/dist/themes/ThemeContext.d.ts +27 -0
  354. package/dist/themes/ThemeContext.esm.js +31 -0
  355. package/dist/themes/ThemeContext.js +31 -0
  356. package/dist/themes/ThemeProvider.d.ts +222 -0
  357. package/dist/themes/ThemeProvider.esm.js +229 -0
  358. package/dist/themes/ThemeProvider.js +229 -0
  359. package/dist/themes/accessibility/index.d.ts +7 -0
  360. package/dist/themes/accessibility/index.esm.js +27 -0
  361. package/dist/themes/accessibility/index.js +27 -0
  362. package/dist/themes/accessibility.d.ts +259 -0
  363. package/dist/themes/accessibility.esm.js +220 -0
  364. package/dist/themes/accessibility.js +220 -0
  365. package/dist/themes/aria-patterns.d.ts +418 -0
  366. package/dist/themes/aria-patterns.esm.js +384 -0
  367. package/dist/themes/aria-patterns.js +384 -0
  368. package/dist/themes/base-themes.d.ts +34 -0
  369. package/dist/themes/base-themes.esm.js +52 -0
  370. package/dist/themes/base-themes.js +52 -0
  371. package/dist/themes/colorManager.d.ts +327 -0
  372. package/dist/themes/colorManager.esm.js +362 -0
  373. package/dist/themes/colorManager.js +362 -0
  374. package/dist/themes/examples/dark-theme.d.ts +139 -0
  375. package/dist/themes/examples/dark-theme.esm.js +124 -0
  376. package/dist/themes/examples/dark-theme.js +124 -0
  377. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  378. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  379. package/dist/themes/examples/minimal-theme.js +86 -0
  380. package/dist/themes/focus-management.d.ts +699 -0
  381. package/dist/themes/focus-management.esm.js +642 -0
  382. package/dist/themes/focus-management.js +642 -0
  383. package/dist/themes/fontLoader.d.ts +163 -0
  384. package/dist/themes/fontLoader.esm.js +192 -0
  385. package/dist/themes/fontLoader.js +192 -0
  386. package/dist/themes/high-contrast.d.ts +619 -0
  387. package/dist/themes/high-contrast.esm.js +573 -0
  388. package/dist/themes/high-contrast.js +573 -0
  389. package/dist/themes/index.d.ts +11 -0
  390. package/dist/themes/index.esm.js +19 -0
  391. package/dist/themes/index.js +19 -0
  392. package/dist/themes/inheritance.d.ts +160 -0
  393. package/dist/themes/inheritance.esm.js +219 -0
  394. package/dist/themes/inheritance.js +219 -0
  395. package/dist/themes/keyboard-navigation.d.ts +550 -0
  396. package/dist/themes/keyboard-navigation.esm.js +521 -0
  397. package/dist/themes/keyboard-navigation.js +521 -0
  398. package/dist/themes/motion-reduction.d.ts +660 -0
  399. package/dist/themes/motion-reduction.esm.js +602 -0
  400. package/dist/themes/motion-reduction.js +602 -0
  401. package/dist/themes/navigation.d.ts +232 -0
  402. package/dist/themes/navigation.esm.js +238 -0
  403. package/dist/themes/navigation.js +238 -0
  404. package/dist/themes/screen-reader.d.ts +645 -0
  405. package/dist/themes/screen-reader.esm.js +580 -0
  406. package/dist/themes/screen-reader.js +580 -0
  407. package/dist/themes/systemThemeDetector.d.ts +148 -0
  408. package/dist/themes/systemThemeDetector.esm.js +174 -0
  409. package/dist/themes/systemThemeDetector.js +174 -0
  410. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  411. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  412. package/dist/themes/themeCSSUpdater.js +250 -0
  413. package/dist/themes/themePersistence.d.ts +192 -0
  414. package/dist/themes/themePersistence.esm.js +217 -0
  415. package/dist/themes/themePersistence.js +217 -0
  416. package/dist/themes/themes/stan-design.d.ts +678 -0
  417. package/dist/themes/themes/stan-design.esm.js +518 -0
  418. package/dist/themes/themes/stan-design.js +518 -0
  419. package/dist/themes/types.d.ts +454 -0
  420. package/dist/themes/types.esm.js +446 -0
  421. package/dist/themes/types.js +446 -0
  422. package/dist/themes/useSystemTheme.d.ts +43 -0
  423. package/dist/themes/useSystemTheme.esm.js +48 -0
  424. package/dist/themes/useSystemTheme.js +48 -0
  425. package/dist/themes/useTheme.d.ts +20 -0
  426. package/dist/themes/useTheme.esm.js +87 -0
  427. package/dist/themes/useTheme.js +87 -0
  428. package/dist/themes/validation.d.ts +406 -0
  429. package/dist/themes/validation.esm.js +411 -0
  430. package/dist/themes/validation.js +411 -0
  431. package/dist/tokens/index.d.ts +25 -0
  432. package/dist/tokens/index.esm.js +23 -0
  433. package/dist/tokens/index.js +23 -0
  434. package/dist/tokens/tokenExporter.d.ts +336 -0
  435. package/dist/tokens/tokenExporter.esm.js +371 -0
  436. package/dist/tokens/tokenExporter.js +371 -0
  437. package/dist/tokens/tokenGenerator.d.ts +250 -0
  438. package/dist/tokens/tokenGenerator.esm.js +267 -0
  439. package/dist/tokens/tokenGenerator.js +267 -0
  440. package/dist/tokens/tokenManager.d.ts +194 -0
  441. package/dist/tokens/tokenManager.esm.js +235 -0
  442. package/dist/tokens/tokenManager.js +235 -0
  443. package/dist/tokens/tokenValidator.d.ts +488 -0
  444. package/dist/tokens/tokenValidator.esm.js +497 -0
  445. package/dist/tokens/tokenValidator.js +497 -0
  446. package/dist/tokens/types.d.ts +78 -0
  447. package/dist/tokens/types.esm.js +64 -0
  448. package/dist/tokens/types.js +64 -0
  449. package/dist/utils/bundle-analyzer.d.ts +260 -0
  450. package/dist/utils/bundle-analyzer.esm.js +242 -0
  451. package/dist/utils/bundle-analyzer.js +242 -0
  452. package/dist/utils/bundle-splitting.d.ts +483 -0
  453. package/dist/utils/bundle-splitting.esm.js +458 -0
  454. package/dist/utils/bundle-splitting.js +458 -0
  455. package/dist/utils/lazy-loading.d.ts +437 -0
  456. package/dist/utils/lazy-loading.esm.js +415 -0
  457. package/dist/utils/lazy-loading.js +415 -0
  458. package/dist/utils/performance-monitor.d.ts +513 -0
  459. package/dist/utils/performance-monitor.esm.js +472 -0
  460. package/dist/utils/performance-monitor.js +472 -0
  461. package/dist/utils/tree-shaking.d.ts +274 -0
  462. package/dist/utils/tree-shaking.esm.js +266 -0
  463. package/dist/utils/tree-shaking.js +266 -0
  464. package/package.json +1 -1
  465. package/src/index.ts +2 -2
  466. package/src/themes/accessibility/index.ts +1 -1
  467. package/src/themes/focus-management.ts +3 -3
  468. package/src/themes/keyboard-navigation.ts +3 -3
@@ -0,0 +1,287 @@
1
+ export type DeviceType = 'mobile' | 'tablet' | 'desktop'
2
+ export type Orientation = 'portrait' | 'landscape'
3
+ export type ScreenSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
4
+
5
+ export interface AdaptiveLayoutState {
6
+ deviceType: DeviceType
7
+ orientation: Orientation
8
+ screenSize: ScreenSize
9
+ width: number
10
+ height: number
11
+ isTouchDevice: boolean
12
+ isHighDensity: boolean
13
+ isLowPower: boolean
14
+ performanceScore: number
15
+ }
16
+
17
+ export interface AdaptiveLayoutConfig {
18
+ enablePerformanceOptimization?: boolean
19
+ enableTouchOptimization?: boolean
20
+ enableBatteryOptimization?: boolean
21
+ enableMemoryOptimization?: boolean
22
+ breakpoints?: {
23
+ xs: number
24
+ sm: number
25
+ md: number
26
+ lg: number
27
+ xl: number
28
+ '2xl': number
29
+ }
30
+ }
31
+
32
+ export interface AdaptiveLayoutCallbacks {
33
+ onDeviceChange?: (deviceType: DeviceType) => void
34
+ onOrientationChange?: (orientation: Orientation) => void
35
+ onScreenSizeChange?: (screenSize: ScreenSize) => void
36
+ onPerformanceChange?: (score: number) => void
37
+ onBatteryChange?: (isLow: boolean) => void
38
+ }
39
+
40
+ export declare const useAdaptiveLayout: (
41
+ config: AdaptiveLayoutConfig = {},
42
+ callbacks: AdaptiveLayoutCallbacks = {}
43
+ ) => {
44
+ const {
45
+ enablePerformanceOptimization = true,
46
+ enableTouchOptimization = true,
47
+ enableBatteryOptimization = true,
48
+ enableMemoryOptimization = true,
49
+ breakpoints = {
50
+ xs: 0,
51
+ sm: 640,
52
+ md: 768,
53
+ lg: 1024,
54
+ xl: 1280,
55
+ '2xl': 1536
56
+ }
57
+ } = config
58
+
59
+ const [state, setState] = useState<AdaptiveLayoutState>({
60
+ deviceType: 'desktop',
61
+ orientation: 'landscape',
62
+ screenSize: 'lg',
63
+ width: 0,
64
+ height: 0,
65
+ isTouchDevice: false,
66
+ isHighDensity: false,
67
+ isLowPower: false,
68
+ performanceScore: 100
69
+ })
70
+
71
+ // Device detection
72
+ const detectDevice = useCallback((width: number, _height: number): DeviceType => {
73
+ if (width < breakpoints.md) return 'mobile'
74
+ if (width < breakpoints.lg) return 'tablet'
75
+ return 'desktop'
76
+ }, [breakpoints])
77
+
78
+ // Screen size detection
79
+ const detectScreenSize = useCallback((width: number): ScreenSize => {
80
+ if (width < breakpoints.sm) return 'xs'
81
+ if (width < breakpoints.md) return 'sm'
82
+ if (width < breakpoints.lg) return 'md'
83
+ if (width < breakpoints.xl) return 'lg'
84
+ if (width < breakpoints['2xl']) return 'xl'
85
+ return '2xl'
86
+ }, [breakpoints])
87
+
88
+ // Touch device detection
89
+ const detectTouchDevice = useCallback((): boolean => {
90
+ return 'ontouchstart' in window || navigator.maxTouchPoints > 0
91
+ }, [])
92
+
93
+ // High density display detection
94
+ const detectHighDensity = useCallback((): boolean => {
95
+ return window.devicePixelRatio > 1
96
+ }, [])
97
+
98
+ // Battery status detection
99
+ const detectBatteryStatus = useCallback(async (): Promise<boolean> => {
100
+ if ('getBattery' in navigator) {
101
+ try {
102
+ const battery = await (navigator as any).getBattery()
103
+ return battery.level < 0.2
104
+ } catch {
105
+ return false
106
+ }
107
+ }
108
+ return false
109
+ }, [])
110
+
111
+ // Performance monitoring
112
+ const measurePerformance = useCallback(async (): Promise<number> => {
113
+ if (!enablePerformanceOptimization) return 100
114
+
115
+ const startTime = performance.now()
116
+
117
+ // Simulate performance measurement
118
+ await new Promise(resolve => setTimeout(resolve, 10))
119
+
120
+ const endTime = performance.now()
121
+ const renderTime = endTime - startTime
122
+
123
+ // Calculate performance score (lower render time = higher score)
124
+ const baseScore = 100
125
+ const timePenalty = Math.min(renderTime * 10, 50)
126
+ const score = Math.max(baseScore - timePenalty, 0)
127
+
128
+ return Math.round(score)
129
+ }, [enablePerformanceOptimization])
130
+
131
+ // Memory usage monitoring
132
+ const measureMemoryUsage = useCallback((): number => {
133
+ if (!enableMemoryOptimization || !('memory' in performance)) return 0
134
+
135
+ const memory = (performance as any).memory
136
+ return (memory.usedJSHeapSize / memory.jsHeapSizeLimit) * 100
137
+ }, [enableMemoryOptimization])
138
+
139
+ // Update layout state
140
+ const updateLayout = useCallback(async () => {
141
+ const width = window.innerWidth
142
+ const height = window.innerHeight
143
+ const deviceType = detectDevice(width, height)
144
+ const screenSize = detectScreenSize(width)
145
+ const orientation = width > height ? 'landscape' : 'portrait'
146
+ const isTouchDevice = detectTouchDevice()
147
+ const isHighDensity = detectHighDensity()
148
+ const isLowPower = await detectBatteryStatus()
149
+ const performanceScore = await measurePerformance()
150
+
151
+ const newState: AdaptiveLayoutState = {
152
+ deviceType,
153
+ orientation,
154
+ screenSize,
155
+ width,
156
+ height,
157
+ isTouchDevice,
158
+ isHighDensity,
159
+ isLowPower,
160
+ performanceScore
161
+ }
162
+
163
+ setState(newState)
164
+
165
+ // Trigger callbacks
166
+ if (callbacks.onDeviceChange && deviceType !== state.deviceType) {
167
+ callbacks.onDeviceChange(deviceType)
168
+ }
169
+ if (callbacks.onOrientationChange && orientation !== state.orientation) {
170
+ callbacks.onOrientationChange(orientation)
171
+ }
172
+ if (callbacks.onScreenSizeChange && screenSize !== state.screenSize) {
173
+ callbacks.onScreenSizeChange(screenSize)
174
+ }
175
+ if (callbacks.onPerformanceChange && performanceScore !== state.performanceScore) {
176
+ callbacks.onPerformanceChange(performanceScore)
177
+ }
178
+ if (callbacks.onBatteryChange && isLowPower !== state.isLowPower) {
179
+ callbacks.onBatteryChange(isLowPower)
180
+ }
181
+ }, [
182
+ detectDevice,
183
+ detectScreenSize,
184
+ detectTouchDevice,
185
+ detectHighDensity,
186
+ detectBatteryStatus,
187
+ measurePerformance,
188
+ callbacks,
189
+ state.deviceType,
190
+ state.orientation,
191
+ state.screenSize,
192
+ state.performanceScore,
193
+ state.isLowPower
194
+ ])
195
+
196
+ // Initialize and set up event listeners
197
+ useEffect(() => {
198
+ updateLayout()
199
+
200
+ const handleResize = () => updateLayout()
201
+ const handleOrientationChange = () => updateLayout()
202
+
203
+ window.addEventListener('resize', handleResize)
204
+ window.addEventListener('orientationchange', handleOrientationChange)
205
+
206
+ return () => {
207
+ window.removeEventListener('resize', handleResize)
208
+ window.removeEventListener('orientationchange', handleOrientationChange)
209
+ }
210
+ }, [updateLayout])
211
+
212
+ // Performance monitoring interval
213
+ useEffect(() => {
214
+ if (!enablePerformanceOptimization) return
215
+
216
+ const interval = setInterval(updateLayout, 5000)
217
+ return () => clearInterval(interval)
218
+ }, [enablePerformanceOptimization, updateLayout])
219
+
220
+ // Battery monitoring
221
+ useEffect(() => {
222
+ if (!enableBatteryOptimization) return
223
+
224
+ const interval = setInterval(updateLayout, 30000) // Check every 30 seconds
225
+ return () => clearInterval(interval)
226
+ }, [enableBatteryOptimization, updateLayout])
227
+
228
+ // Computed values
229
+ const isMobile = useMemo(() => state.deviceType === 'mobile', [state.deviceType])
230
+ const isTablet = useMemo(() => state.deviceType === 'tablet', [state.deviceType])
231
+ const isDesktop = useMemo(() => state.deviceType === 'desktop', [state.deviceType])
232
+ const isPortrait = useMemo(() => state.orientation === 'portrait', [state.orientation])
233
+ const isLandscape = useMemo(() => state.orientation === 'landscape', [state.orientation])
234
+
235
+ // Layout recommendations
236
+ const layoutRecommendations = useMemo(() => {
237
+ const recommendations = []
238
+
239
+ if (state.isLowPower && enableBatteryOptimization) {
240
+ recommendations.push('Reduce animations and effects for better battery life')
241
+ }
242
+
243
+ if (state.performanceScore < 70 && enablePerformanceOptimization) {
244
+ recommendations.push('Consider reducing layout complexity for better performance')
245
+ }
246
+
247
+ if (state.isTouchDevice && enableTouchOptimization) {
248
+ recommendations.push('Touch-friendly interactions enabled')
249
+ }
250
+
251
+ if (state.isHighDensity) {
252
+ recommendations.push('High-density display detected - using optimized assets')
253
+ }
254
+
255
+ return recommendations
256
+ }, [
257
+ state.isLowPower,
258
+ state.performanceScore,
259
+ state.isTouchDevice,
260
+ state.isHighDensity,
261
+ enableBatteryOptimization,
262
+ enablePerformanceOptimization,
263
+ enableTouchOptimization
264
+ ])
265
+
266
+ return {
267
+ // State
268
+ ...state,
269
+
270
+ // Computed values
271
+ isMobile,
272
+ isTablet,
273
+ isDesktop,
274
+ isPortrait,
275
+ isLandscape,
276
+
277
+ // Layout recommendations
278
+ layoutRecommendations,
279
+
280
+ // Actions
281
+ updateLayout,
282
+ measurePerformance,
283
+ measureMemoryUsage
284
+ }
285
+ }
286
+
287
+ export default useAdaptiveLayout
@@ -0,0 +1,266 @@
1
+ import { useState, useEffect, useCallback, useMemo } from 'react'
2
+
3
+ export type DeviceType = 'mobile' | 'tablet' | 'desktop'
4
+ export type Orientation = 'portrait' | 'landscape'
5
+ export type ScreenSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
6
+
7
+ export interface AdaptiveLayoutState {
8
+ deviceType}
9
+
10
+ export interface AdaptiveLayoutConfig {
11
+ enablePerformanceOptimization?}
12
+ }
13
+
14
+ export interface AdaptiveLayoutCallbacks {
15
+ onDeviceChange?) => void
16
+ onOrientationChange?) => void
17
+ onScreenSizeChange?) => void
18
+ onPerformanceChange?) => void
19
+ onBatteryChange?) => void
20
+ }
21
+
22
+ export const useAdaptiveLayout = (
23
+ config= {},
24
+ callbacks= {}
25
+ ) => {
26
+ const {
27
+ enablePerformanceOptimization = true,
28
+ enableTouchOptimization = true,
29
+ enableBatteryOptimization = true,
30
+ enableMemoryOptimization = true,
31
+ breakpoints = {
32
+ xs,
33
+ sm,
34
+ md,
35
+ lg,
36
+ xl,
37
+ '2xl'}
38
+ } = config
39
+
40
+ const [state, setState] = useState<AdaptiveLayoutState>({
41
+ deviceType,
42
+ orientation,
43
+ screenSize,
44
+ width,
45
+ height,
46
+ isTouchDevice,
47
+ isHighDensity,
48
+ isLowPower,
49
+ performanceScore})
50
+
51
+ // Device detection
52
+ const detectDevice = useCallback((width, _height)=> {
53
+ if (width < breakpoints.md) return 'mobile'
54
+ if (width < breakpoints.lg) return 'tablet'
55
+ return 'desktop'
56
+ }, [breakpoints])
57
+
58
+ // Screen size detection
59
+ const detectScreenSize = useCallback((width)=> {
60
+ if (width < breakpoints.sm) return 'xs'
61
+ if (width < breakpoints.md) return 'sm'
62
+ if (width < breakpoints.lg) return 'md'
63
+ if (width < breakpoints.xl) return 'lg'
64
+ if (width < breakpoints['2xl']) return 'xl'
65
+ return '2xl'
66
+ }, [breakpoints])
67
+
68
+ // Touch device detection
69
+ const detectTouchDevice = useCallback(()=> {
70
+ return 'ontouchstart' in window || navigator.maxTouchPoints > 0
71
+ }, [])
72
+
73
+ // High density display detection
74
+ const detectHighDensity = useCallback(()=> {
75
+ return window.devicePixelRatio > 1
76
+ }, [])
77
+
78
+ // Battery status detection
79
+ const detectBatteryStatus = useCallback(async ()=> {
80
+ if ('getBattery' in navigator) {
81
+ try {
82
+ const battery = await (navigator as any).getBattery()
83
+ return battery.level < 0.2
84
+ } catch {
85
+ return false
86
+ }
87
+ }
88
+ return false
89
+ }, [])
90
+
91
+ // Performance monitoring
92
+ const measurePerformance = useCallback(async ()=> {
93
+ if (!enablePerformanceOptimization) return 100
94
+
95
+ const startTime = performance.now()
96
+
97
+ // Simulate performance measurement
98
+ await new Promise(resolve => setTimeout(resolve, 10))
99
+
100
+ const endTime = performance.now()
101
+ const renderTime = endTime - startTime
102
+
103
+ // Calculate performance score (lower render time = higher score)
104
+ const baseScore = 100
105
+ const timePenalty = Math.min(renderTime * 10, 50)
106
+ const score = Math.max(baseScore - timePenalty, 0)
107
+
108
+ return Math.round(score)
109
+ }, [enablePerformanceOptimization])
110
+
111
+ // Memory usage monitoring
112
+ const measureMemoryUsage = useCallback(()=> {
113
+ if (!enableMemoryOptimization || !('memory' in performance)) return 0
114
+
115
+ const memory = (performance as any).memory
116
+ return (memory.usedJSHeapSize / memory.jsHeapSizeLimit) * 100
117
+ }, [enableMemoryOptimization])
118
+
119
+ // Update layout state
120
+ const updateLayout = useCallback(async () => {
121
+ const width = window.innerWidth
122
+ const height = window.innerHeight
123
+ const deviceType = detectDevice(width, height)
124
+ const screenSize = detectScreenSize(width)
125
+ const orientation = width > height ? 'landscape' = detectTouchDevice()
126
+ const isHighDensity = detectHighDensity()
127
+ const isLowPower = await detectBatteryStatus()
128
+ const performanceScore = await measurePerformance()
129
+
130
+ const newState= {
131
+ deviceType,
132
+ orientation,
133
+ screenSize,
134
+ width,
135
+ height,
136
+ isTouchDevice,
137
+ isHighDensity,
138
+ isLowPower,
139
+ performanceScore
140
+ }
141
+
142
+ setState(newState)
143
+
144
+ // Trigger callbacks
145
+ if (callbacks.onDeviceChange && deviceType !== state.deviceType) {
146
+ callbacks.onDeviceChange(deviceType)
147
+ }
148
+ if (callbacks.onOrientationChange && orientation !== state.orientation) {
149
+ callbacks.onOrientationChange(orientation)
150
+ }
151
+ if (callbacks.onScreenSizeChange && screenSize !== state.screenSize) {
152
+ callbacks.onScreenSizeChange(screenSize)
153
+ }
154
+ if (callbacks.onPerformanceChange && performanceScore !== state.performanceScore) {
155
+ callbacks.onPerformanceChange(performanceScore)
156
+ }
157
+ if (callbacks.onBatteryChange && isLowPower !== state.isLowPower) {
158
+ callbacks.onBatteryChange(isLowPower)
159
+ }
160
+ }, [
161
+ detectDevice,
162
+ detectScreenSize,
163
+ detectTouchDevice,
164
+ detectHighDensity,
165
+ detectBatteryStatus,
166
+ measurePerformance,
167
+ callbacks,
168
+ state.deviceType,
169
+ state.orientation,
170
+ state.screenSize,
171
+ state.performanceScore,
172
+ state.isLowPower
173
+ ])
174
+
175
+ // Initialize and set up event listeners
176
+ useEffect(() => {
177
+ updateLayout()
178
+
179
+ const handleResize = () => updateLayout()
180
+ const handleOrientationChange = () => updateLayout()
181
+
182
+ window.addEventListener('resize', handleResize)
183
+ window.addEventListener('orientationchange', handleOrientationChange)
184
+
185
+ return () => {
186
+ window.removeEventListener('resize', handleResize)
187
+ window.removeEventListener('orientationchange', handleOrientationChange)
188
+ }
189
+ }, [updateLayout])
190
+
191
+ // Performance monitoring interval
192
+ useEffect(() => {
193
+ if (!enablePerformanceOptimization) return
194
+
195
+ const interval = setInterval(updateLayout, 5000)
196
+ return () => clearInterval(interval)
197
+ }, [enablePerformanceOptimization, updateLayout])
198
+
199
+ // Battery monitoring
200
+ useEffect(() => {
201
+ if (!enableBatteryOptimization) return
202
+
203
+ const interval = setInterval(updateLayout, 30000) // Check every 30 seconds
204
+ return () => clearInterval(interval)
205
+ }, [enableBatteryOptimization, updateLayout])
206
+
207
+ // Computed values
208
+ const isMobile = useMemo(() => state.deviceType === 'mobile', [state.deviceType])
209
+ const isTablet = useMemo(() => state.deviceType === 'tablet', [state.deviceType])
210
+ const isDesktop = useMemo(() => state.deviceType === 'desktop', [state.deviceType])
211
+ const isPortrait = useMemo(() => state.orientation === 'portrait', [state.orientation])
212
+ const isLandscape = useMemo(() => state.orientation === 'landscape', [state.orientation])
213
+
214
+ // Layout recommendations
215
+ const layoutRecommendations = useMemo(() => {
216
+ const recommendations = []
217
+
218
+ if (state.isLowPower && enableBatteryOptimization) {
219
+ recommendations.push('Reduce animations and effects for better battery life')
220
+ }
221
+
222
+ if (state.performanceScore < 70 && enablePerformanceOptimization) {
223
+ recommendations.push('Consider reducing layout complexity for better performance')
224
+ }
225
+
226
+ if (state.isTouchDevice && enableTouchOptimization) {
227
+ recommendations.push('Touch-friendly interactions enabled')
228
+ }
229
+
230
+ if (state.isHighDensity) {
231
+ recommendations.push('High-density display detected - using optimized assets')
232
+ }
233
+
234
+ return recommendations
235
+ }, [
236
+ state.isLowPower,
237
+ state.performanceScore,
238
+ state.isTouchDevice,
239
+ state.isHighDensity,
240
+ enableBatteryOptimization,
241
+ enablePerformanceOptimization,
242
+ enableTouchOptimization
243
+ ])
244
+
245
+ return {
246
+ // State
247
+ ...state,
248
+
249
+ // Computed values
250
+ isMobile,
251
+ isTablet,
252
+ isDesktop,
253
+ isPortrait,
254
+ isLandscape,
255
+
256
+ // Layout recommendations
257
+ layoutRecommendations,
258
+
259
+ // Actions
260
+ updateLayout,
261
+ measurePerformance,
262
+ measureMemoryUsage
263
+ }
264
+ }
265
+
266
+ export default useAdaptiveLayout