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