@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,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
@@ -0,0 +1,292 @@
1
+ export interface AdvancedPatternsConfig {
2
+ enableCompoundComponents?: boolean
3
+ enableRenderProps?: boolean
4
+ enableHigherOrderComponents?: boolean
5
+ enableCustomHooks?: boolean
6
+ enablePerformanceOptimization?: boolean
7
+ enableAccessibilitySupport?: boolean
8
+ }
9
+
10
+ export interface CompoundComponentContext {
11
+ registerComponent: (id: string, component: ReactNode) => void
12
+ unregisterComponent: (id: string) => void
13
+ getComponent: (id: string) => ReactNode | undefined
14
+ getAllComponents: () => ReactNode[]
15
+ }
16
+
17
+ export interface RenderPropsConfig<T = any> {
18
+ data: T
19
+ loading: boolean
20
+ error: Error | null
21
+ render: (props: T) => ReactNode
22
+ fallback?: ReactNode
23
+ }
24
+
25
+ export interface HigherOrderComponentConfig {
26
+ component: ComponentType<any>
27
+ props: Record<string, any>
28
+ enhancers: Array<(Component: ComponentType<any>) => ComponentType<any>>
29
+ }
30
+
31
+ export interface AdvancedPatternsCallbacks {
32
+ onPatternApplied?: (pattern: string, component: string) => void
33
+ onPerformanceOptimized?: (optimization: string) => void
34
+ onAccessibilityEnhanced?: (feature: string) => void
35
+ }
36
+
37
+ export declare const useAdvancedPatterns: (
38
+ config: AdvancedPatternsConfig = {},
39
+ callbacks: AdvancedPatternsCallbacks = {}
40
+ ) => {
41
+ const {
42
+ enableCompoundComponents = true,
43
+ enableRenderProps = true,
44
+ enableHigherOrderComponents = true,
45
+ enableCustomHooks = true,
46
+ enablePerformanceOptimization = true,
47
+ enableAccessibilitySupport = true
48
+ } = config
49
+
50
+ const [patterns, setPatterns] = useState<string[]>([])
51
+ const [isOptimizing, setIsOptimizing] = useState(false)
52
+ const componentsRef = useRef<Map<string, ReactNode>>(new Map())
53
+ const performanceMetricsRef = useRef<Map<string, number>>(new Map())
54
+
55
+ // Compound Components Pattern
56
+ const createCompoundComponent = useCallback((
57
+ baseComponent: ComponentType<any>,
58
+ subComponents: Record<string, ComponentType<any>>
59
+ ) => {
60
+ if (!enableCompoundComponents) return baseComponent
61
+
62
+ const compoundComponent = Object.assign(baseComponent, subComponents)
63
+
64
+ setPatterns(prev => [...prev, 'Compound Components'])
65
+ callbacks.onPatternApplied?.('Compound Components', baseComponent.displayName || 'Unknown')
66
+
67
+ return compoundComponent
68
+ }, [enableCompoundComponents, callbacks])
69
+
70
+ // Render Props Pattern
71
+ const createRenderPropsComponent = useCallback(<T,>(
72
+ config: RenderPropsConfig<T>
73
+ ) => {
74
+ if (!enableRenderProps) return null
75
+
76
+ const { data, loading, error, render, fallback } = config
77
+
78
+ if (loading) {
79
+ return { type: 'loading', fallback }
80
+ }
81
+
82
+ if (error) {
83
+ return { type: 'error', message: error.message }
84
+ }
85
+
86
+ setPatterns(prev => [...prev, 'Render Props'])
87
+ callbacks.onPatternApplied?.('Render Props', 'RenderPropsComponent')
88
+
89
+ return { type: 'success', data, render }
90
+ }, [enableRenderProps, callbacks])
91
+
92
+ // Higher-Order Component Pattern
93
+ const createHigherOrderComponent = useCallback((
94
+ config: HigherOrderComponentConfig
95
+ ) => {
96
+ if (!enableHigherOrderComponents) return config.component
97
+
98
+ const { component: Component, props, enhancers } = config
99
+
100
+ let EnhancedComponent = Component
101
+
102
+ enhancers.forEach(enhancer => {
103
+ EnhancedComponent = enhancer(EnhancedComponent)
104
+ })
105
+
106
+ setPatterns(prev => [...prev, 'Higher-Order Components'])
107
+ callbacks.onPatternApplied?.('Higher-Order Components', Component.displayName || 'Unknown')
108
+
109
+ return { component: EnhancedComponent, props, enhanced: true }
110
+ }, [enableHigherOrderComponents, callbacks])
111
+
112
+ // Custom Hooks Pattern
113
+ const createCustomHook = useCallback(<T>(
114
+ hookName: string,
115
+ hookLogic: () => T
116
+ ) => {
117
+ if (!enableCustomHooks) return hookLogic()
118
+
119
+ setPatterns(prev => [...prev, 'Custom Hooks'])
120
+ callbacks.onPatternApplied?.('Custom Hooks', hookName)
121
+
122
+ return hookLogic()
123
+ }, [enableCustomHooks, callbacks])
124
+
125
+ // Performance Optimization
126
+ const optimizeComponent = useCallback((
127
+ componentId: string,
128
+ optimizationType: 'memoization' | 'lazy-loading' | 'virtualization'
129
+ ) => {
130
+ if (!enablePerformanceOptimization) return
131
+
132
+ setIsOptimizing(true)
133
+
134
+ setTimeout(() => {
135
+ const optimization = `${optimizationType} applied to ${componentId}`
136
+ setPatterns(prev => [...prev, optimization])
137
+ callbacks.onPerformanceOptimized?.(optimization)
138
+ setIsOptimizing(false)
139
+ }, 200)
140
+ }, [enablePerformanceOptimization, callbacks])
141
+
142
+ // Accessibility Enhancement
143
+ const enhanceAccessibility = useCallback((
144
+ componentId: string,
145
+ feature: 'aria' | 'keyboard' | 'screen-reader' | 'focus'
146
+ ) => {
147
+ if (!enableAccessibilitySupport) return
148
+
149
+ const enhancement = `${feature} accessibility enhanced for ${componentId}`
150
+ setPatterns(prev => [...prev, enhancement])
151
+ callbacks.onAccessibilityEnhanced?.(enhancement)
152
+ }, [enableAccessibilitySupport, callbacks])
153
+
154
+ // Component Registry
155
+ const registerComponent = useCallback((id: string, component: ReactNode) => {
156
+ componentsRef.current.set(id, component)
157
+ }, [])
158
+
159
+ const unregisterComponent = useCallback((id: string) => {
160
+ componentsRef.current.delete(id)
161
+ }, [])
162
+
163
+ const getComponent = useCallback((id: string) => {
164
+ return componentsRef.current.get(id)
165
+ }, [])
166
+
167
+ const getAllComponents = useCallback(() => {
168
+ return Array.from(componentsRef.current.values())
169
+ }, [])
170
+
171
+ // Performance Monitoring
172
+ const measurePerformance = useCallback((componentId: string, operation: string) => {
173
+ const startTime = performance.now()
174
+
175
+ return () => {
176
+ const endTime = performance.now()
177
+ const duration = endTime - startTime
178
+ performanceMetricsRef.current.set(`${componentId}-${operation}`, duration)
179
+ }
180
+ }, [])
181
+
182
+ // Pattern Analysis
183
+ const analyzePatterns = useCallback(() => {
184
+ const patternCounts = patterns.reduce((acc, pattern) => {
185
+ acc[pattern] = (acc[pattern] || 0) + 1
186
+ return acc
187
+ }, {} as Record<string, number>)
188
+
189
+ return {
190
+ totalPatterns: patterns.length,
191
+ patternCounts,
192
+ uniquePatterns: Object.keys(patternCounts).length,
193
+ performanceMetrics: Object.fromEntries(performanceMetricsRef.current)
194
+ }
195
+ }, [patterns])
196
+
197
+ // Pattern Recommendations
198
+ const getPatternRecommendations = useCallback(() => {
199
+ const recommendations = []
200
+
201
+ if (patterns.length === 0) {
202
+ recommendations.push('Consider implementing compound components for complex UI structures')
203
+ recommendations.push('Use render props for flexible component composition')
204
+ recommendations.push('Apply higher-order components for cross-cutting concerns')
205
+ recommendations.push('Create custom hooks for reusable logic')
206
+ }
207
+
208
+ if (!patterns.includes('Performance Optimization')) {
209
+ recommendations.push('Implement memoization for expensive computations')
210
+ recommendations.push('Use lazy loading for large component trees')
211
+ recommendations.push('Consider virtualization for long lists')
212
+ }
213
+
214
+ if (!patterns.includes('Accessibility Support')) {
215
+ recommendations.push('Add ARIA labels and roles to components')
216
+ recommendations.push('Implement keyboard navigation support')
217
+ recommendations.push('Ensure screen reader compatibility')
218
+ recommendations.push('Add focus management features')
219
+ }
220
+
221
+ return recommendations
222
+ }, [patterns])
223
+
224
+ // Pattern Validation
225
+ const validatePatterns = useCallback(() => {
226
+ const validation = {
227
+ isValid: true,
228
+ errors: [] as string[],
229
+ warnings: [] as string[]
230
+ }
231
+
232
+ // Check for pattern conflicts
233
+ if (patterns.includes('Compound Components') && patterns.includes('Higher-Order Components')) {
234
+ validation.warnings.push('Compound Components and Higher-Order Components can be used together but may increase complexity')
235
+ }
236
+
237
+ // Check for missing optimizations
238
+ if (patterns.length > 3 && !patterns.includes('Performance Optimization')) {
239
+ validation.warnings.push('Multiple patterns detected without performance optimization')
240
+ }
241
+
242
+ // Check for accessibility compliance
243
+ if (patterns.length > 2 && !patterns.includes('Accessibility Support')) {
244
+ validation.warnings.push('Multiple patterns detected without accessibility support')
245
+ }
246
+
247
+ return validation
248
+ }, [patterns])
249
+
250
+ // Cleanup on unmount
251
+ useEffect(() => {
252
+ return () => {
253
+ componentsRef.current.clear()
254
+ performanceMetricsRef.current.clear()
255
+ }
256
+ }, [])
257
+
258
+ return {
259
+ // State
260
+ patterns,
261
+ isOptimizing,
262
+
263
+ // Pattern Creators
264
+ createCompoundComponent,
265
+ createRenderPropsComponent,
266
+ createHigherOrderComponent,
267
+ createCustomHook,
268
+
269
+ // Optimization
270
+ optimizeComponent,
271
+ enhanceAccessibility,
272
+ measurePerformance,
273
+
274
+ // Component Registry
275
+ registerComponent,
276
+ unregisterComponent,
277
+ getComponent,
278
+ getAllComponents,
279
+
280
+ // Analysis
281
+ analyzePatterns,
282
+ getPatternRecommendations,
283
+ validatePatterns,
284
+
285
+ // Utility functions
286
+ hasPattern: (pattern: string) => patterns.includes(pattern),
287
+ getPatternCount: (pattern: string) => patterns.filter(p => p === pattern).length,
288
+ clearPatterns: () => setPatterns([])
289
+ }
290
+ }
291
+
292
+ export default useAdvancedPatterns