@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.10 → 0.2.16

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 (483) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.esm.js +80 -258
  3. package/dist/components/ui/accessibility-demo.js +80 -258
  4. package/dist/components/ui/advanced-component-architecture-demo.esm.js +256 -916
  5. package/dist/components/ui/advanced-component-architecture-demo.js +256 -916
  6. package/dist/components/ui/advanced-transition-system-demo.esm.js +59 -670
  7. package/dist/components/ui/advanced-transition-system-demo.js +59 -670
  8. package/dist/components/ui/advanced-transition-system.esm.js +194 -378
  9. package/dist/components/ui/advanced-transition-system.js +194 -378
  10. package/dist/components/ui/animation/animated-container.esm.js +98 -159
  11. package/dist/components/ui/animation/animated-container.js +98 -159
  12. package/dist/components/ui/animation/index.esm.js +3 -18
  13. package/dist/components/ui/animation/index.js +3 -18
  14. package/dist/components/ui/animation/staggered-container.esm.js +37 -68
  15. package/dist/components/ui/animation/staggered-container.js +37 -68
  16. package/dist/components/ui/animation-demo.esm.js +30 -250
  17. package/dist/components/ui/animation-demo.js +30 -250
  18. package/dist/components/ui/badge.esm.js +15 -28
  19. package/dist/components/ui/badge.js +15 -28
  20. package/dist/components/ui/battery-conscious-animation-demo.esm.js +136 -565
  21. package/dist/components/ui/battery-conscious-animation-demo.js +136 -565
  22. package/dist/components/ui/border-radius-shadow-demo.esm.js +3 -184
  23. package/dist/components/ui/border-radius-shadow-demo.js +3 -184
  24. package/dist/components/ui/button.esm.js +14 -33
  25. package/dist/components/ui/button.js +14 -33
  26. package/dist/components/ui/card.esm.js +74 -188
  27. package/dist/components/ui/card.js +74 -188
  28. package/dist/components/ui/checkbox.esm.js +11 -30
  29. package/dist/components/ui/checkbox.js +11 -30
  30. package/dist/components/ui/color-preview.esm.js +50 -405
  31. package/dist/components/ui/color-preview.js +50 -405
  32. package/dist/components/ui/data-display/chart.esm.js +210 -632
  33. package/dist/components/ui/data-display/chart.js +210 -632
  34. package/dist/components/ui/data-display/data-grid-simple.esm.js +16 -74
  35. package/dist/components/ui/data-display/data-grid-simple.js +16 -74
  36. package/dist/components/ui/data-display/data-grid.esm.js +173 -661
  37. package/dist/components/ui/data-display/data-grid.js +173 -661
  38. package/dist/components/ui/data-display/list.esm.js +88 -446
  39. package/dist/components/ui/data-display/list.js +88 -446
  40. package/dist/components/ui/data-display/table.esm.js +109 -468
  41. package/dist/components/ui/data-display/table.js +109 -468
  42. package/dist/components/ui/data-display/timeline.esm.js +92 -431
  43. package/dist/components/ui/data-display/timeline.js +92 -431
  44. package/dist/components/ui/data-display/tree.esm.js +211 -585
  45. package/dist/components/ui/data-display/tree.js +211 -585
  46. package/dist/components/ui/data-display/types.esm.js +1 -530
  47. package/dist/components/ui/data-display/types.js +1 -530
  48. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +76 -749
  49. package/dist/components/ui/enterprise-mobile-experience-demo.js +76 -749
  50. package/dist/components/ui/enterprise-mobile-experience.esm.js +152 -460
  51. package/dist/components/ui/enterprise-mobile-experience.js +152 -460
  52. package/dist/components/ui/feedback/alert.esm.js +40 -148
  53. package/dist/components/ui/feedback/alert.js +40 -148
  54. package/dist/components/ui/feedback/progress.esm.js +74 -278
  55. package/dist/components/ui/feedback/progress.js +74 -278
  56. package/dist/components/ui/feedback/skeleton.esm.js +64 -173
  57. package/dist/components/ui/feedback/skeleton.js +64 -173
  58. package/dist/components/ui/feedback/toast.esm.js +86 -225
  59. package/dist/components/ui/feedback/toast.js +86 -225
  60. package/dist/components/ui/feedback/types.esm.js +1 -125
  61. package/dist/components/ui/feedback/types.js +1 -125
  62. package/dist/components/ui/font-preview.esm.js +56 -283
  63. package/dist/components/ui/font-preview.js +56 -283
  64. package/dist/components/ui/form-demo.esm.js +191 -553
  65. package/dist/components/ui/form-demo.js +191 -553
  66. package/dist/components/ui/hardware-acceleration-demo.esm.js +103 -544
  67. package/dist/components/ui/hardware-acceleration-demo.js +103 -544
  68. package/dist/components/ui/input.esm.js +13 -32
  69. package/dist/components/ui/input.js +13 -32
  70. package/dist/components/ui/label.esm.js +6 -16
  71. package/dist/components/ui/label.js +6 -16
  72. package/dist/components/ui/layout-demo.esm.js +76 -367
  73. package/dist/components/ui/layout-demo.js +76 -367
  74. package/dist/components/ui/layouts/adaptive-layout.esm.js +60 -139
  75. package/dist/components/ui/layouts/adaptive-layout.js +60 -139
  76. package/dist/components/ui/layouts/desktop-layout.esm.js +39 -224
  77. package/dist/components/ui/layouts/desktop-layout.js +39 -224
  78. package/dist/components/ui/layouts/index.esm.js +4 -10
  79. package/dist/components/ui/layouts/index.js +4 -10
  80. package/dist/components/ui/layouts/mobile-layout.esm.js +49 -162
  81. package/dist/components/ui/layouts/mobile-layout.js +49 -162
  82. package/dist/components/ui/layouts/tablet-layout.esm.js +53 -197
  83. package/dist/components/ui/layouts/tablet-layout.js +53 -197
  84. package/dist/components/ui/mobile-form-validation.esm.js +185 -420
  85. package/dist/components/ui/mobile-form-validation.js +185 -420
  86. package/dist/components/ui/mobile-input-demo.esm.js +11 -198
  87. package/dist/components/ui/mobile-input-demo.js +11 -198
  88. package/dist/components/ui/mobile-input.esm.js +187 -270
  89. package/dist/components/ui/mobile-input.js +187 -270
  90. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +144 -638
  91. package/dist/components/ui/mobile-skeleton-loading-demo.js +144 -638
  92. package/dist/components/ui/navigation/breadcrumb.esm.js +51 -154
  93. package/dist/components/ui/navigation/breadcrumb.js +51 -154
  94. package/dist/components/ui/navigation/index.esm.js +0 -26
  95. package/dist/components/ui/navigation/index.js +0 -26
  96. package/dist/components/ui/navigation/menu.esm.js +178 -365
  97. package/dist/components/ui/navigation/menu.js +178 -365
  98. package/dist/components/ui/navigation/navigation-demo.esm.js +130 -315
  99. package/dist/components/ui/navigation/navigation-demo.js +130 -315
  100. package/dist/components/ui/navigation/pagination.esm.js +142 -264
  101. package/dist/components/ui/navigation/pagination.js +142 -264
  102. package/dist/components/ui/navigation/sidebar.esm.js +156 -368
  103. package/dist/components/ui/navigation/sidebar.js +156 -368
  104. package/dist/components/ui/navigation/stepper.esm.js +131 -295
  105. package/dist/components/ui/navigation/stepper.js +131 -295
  106. package/dist/components/ui/navigation/tabs.esm.js +89 -198
  107. package/dist/components/ui/navigation/tabs.js +89 -198
  108. package/dist/components/ui/navigation/types.esm.js +1 -295
  109. package/dist/components/ui/navigation/types.js +1 -295
  110. package/dist/components/ui/overlay/backdrop.esm.js +39 -78
  111. package/dist/components/ui/overlay/backdrop.js +39 -78
  112. package/dist/components/ui/overlay/focus-manager.esm.js +96 -140
  113. package/dist/components/ui/overlay/focus-manager.js +96 -140
  114. package/dist/components/ui/overlay/index.esm.js +0 -27
  115. package/dist/components/ui/overlay/index.js +0 -27
  116. package/dist/components/ui/overlay/modal.esm.js +94 -249
  117. package/dist/components/ui/overlay/modal.js +94 -249
  118. package/dist/components/ui/overlay/overlay-manager.esm.js +60 -100
  119. package/dist/components/ui/overlay/overlay-manager.js +60 -100
  120. package/dist/components/ui/overlay/popover.esm.js +258 -438
  121. package/dist/components/ui/overlay/popover.js +258 -438
  122. package/dist/components/ui/overlay/portal.esm.js +45 -74
  123. package/dist/components/ui/overlay/portal.js +45 -74
  124. package/dist/components/ui/overlay/tooltip.esm.js +202 -288
  125. package/dist/components/ui/overlay/tooltip.js +202 -288
  126. package/dist/components/ui/overlay/types.esm.js +1 -196
  127. package/dist/components/ui/overlay/types.js +1 -196
  128. package/dist/components/ui/performance-demo.esm.js +110 -596
  129. package/dist/components/ui/performance-demo.js +110 -596
  130. package/dist/components/ui/semantic-input-system-demo.esm.js +87 -501
  131. package/dist/components/ui/semantic-input-system-demo.js +87 -501
  132. package/dist/components/ui/theme-customizer.esm.js +123 -371
  133. package/dist/components/ui/theme-customizer.js +123 -371
  134. package/dist/components/ui/theme-preview.esm.js +44 -306
  135. package/dist/components/ui/theme-preview.js +44 -306
  136. package/dist/components/ui/theme-switcher.esm.js +79 -258
  137. package/dist/components/ui/theme-switcher.js +79 -258
  138. package/dist/components/ui/theme-toggle.esm.js +22 -35
  139. package/dist/components/ui/theme-toggle.js +22 -35
  140. package/dist/components/ui/token-demo.esm.js +42 -189
  141. package/dist/components/ui/token-demo.js +42 -189
  142. package/dist/components/ui/touch-demo.esm.js +96 -462
  143. package/dist/components/ui/touch-demo.js +96 -462
  144. package/dist/components/ui/touch-friendly-interface-demo.esm.js +63 -519
  145. package/dist/components/ui/touch-friendly-interface-demo.js +63 -519
  146. package/dist/components/ui/touch-friendly-interface.esm.js +103 -281
  147. package/dist/components/ui/touch-friendly-interface.js +103 -281
  148. package/dist/hooks/index.esm.js +23 -181
  149. package/dist/hooks/index.js +23 -181
  150. package/dist/hooks/use-accessibility-support.esm.js +377 -518
  151. package/dist/hooks/use-accessibility-support.js +377 -518
  152. package/dist/hooks/use-adaptive-layout.esm.js +212 -287
  153. package/dist/hooks/use-adaptive-layout.js +212 -287
  154. package/dist/hooks/use-advanced-patterns.esm.js +185 -293
  155. package/dist/hooks/use-advanced-patterns.js +185 -293
  156. package/dist/hooks/use-advanced-transition-system.esm.js +286 -392
  157. package/dist/hooks/use-advanced-transition-system.js +286 -392
  158. package/dist/hooks/use-animation-profile.esm.js +221 -283
  159. package/dist/hooks/use-animation-profile.js +221 -283
  160. package/dist/hooks/use-battery-animations.esm.js +310 -384
  161. package/dist/hooks/use-battery-animations.js +310 -384
  162. package/dist/hooks/use-battery-conscious-loading.esm.js +374 -468
  163. package/dist/hooks/use-battery-conscious-loading.js +374 -468
  164. package/dist/hooks/use-battery-optimization.esm.js +267 -329
  165. package/dist/hooks/use-battery-optimization.js +267 -329
  166. package/dist/hooks/use-battery-status.esm.js +213 -293
  167. package/dist/hooks/use-battery-status.js +213 -293
  168. package/dist/hooks/use-component-performance.esm.js +235 -341
  169. package/dist/hooks/use-component-performance.js +235 -341
  170. package/dist/hooks/use-device-loading-states.esm.js +356 -457
  171. package/dist/hooks/use-device-loading-states.js +356 -457
  172. package/dist/hooks/use-device.esm.js +77 -102
  173. package/dist/hooks/use-device.js +77 -102
  174. package/dist/hooks/use-enterprise-mobile-experience.esm.js +349 -487
  175. package/dist/hooks/use-enterprise-mobile-experience.js +349 -487
  176. package/dist/hooks/use-form-feedback.esm.js +313 -398
  177. package/dist/hooks/use-form-feedback.js +313 -398
  178. package/dist/hooks/use-form-performance.esm.js +407 -500
  179. package/dist/hooks/use-form-performance.js +407 -500
  180. package/dist/hooks/use-frame-rate.esm.js +178 -251
  181. package/dist/hooks/use-frame-rate.js +178 -251
  182. package/dist/hooks/use-gestures.esm.js +230 -332
  183. package/dist/hooks/use-gestures.js +230 -332
  184. package/dist/hooks/use-hardware-acceleration.esm.js +246 -339
  185. package/dist/hooks/use-hardware-acceleration.js +246 -339
  186. package/dist/hooks/use-input-accessibility.esm.js +350 -454
  187. package/dist/hooks/use-input-accessibility.js +350 -454
  188. package/dist/hooks/use-input-performance.esm.js +419 -502
  189. package/dist/hooks/use-input-performance.js +419 -502
  190. package/dist/hooks/use-layout-performance.esm.js +233 -319
  191. package/dist/hooks/use-layout-performance.js +233 -319
  192. package/dist/hooks/use-loading-accessibility.esm.js +421 -531
  193. package/dist/hooks/use-loading-accessibility.js +421 -531
  194. package/dist/hooks/use-loading-performance.esm.js +398 -469
  195. package/dist/hooks/use-loading-performance.js +398 -469
  196. package/dist/hooks/use-memory-usage.esm.js +211 -287
  197. package/dist/hooks/use-memory-usage.js +211 -287
  198. package/dist/hooks/use-mobile-form-layout.esm.js +365 -458
  199. package/dist/hooks/use-mobile-form-layout.js +365 -458
  200. package/dist/hooks/use-mobile-form-validation.esm.js +384 -497
  201. package/dist/hooks/use-mobile-form-validation.js +384 -497
  202. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +354 -468
  203. package/dist/hooks/use-mobile-keyboard-optimization.js +354 -468
  204. package/dist/hooks/use-mobile-layout.esm.js +207 -294
  205. package/dist/hooks/use-mobile-layout.js +207 -294
  206. package/dist/hooks/use-mobile-optimization.esm.js +308 -404
  207. package/dist/hooks/use-mobile-optimization.js +308 -404
  208. package/dist/hooks/use-mobile-skeleton.esm.js +300 -402
  209. package/dist/hooks/use-mobile-skeleton.js +300 -402
  210. package/dist/hooks/use-mobile-touch.esm.js +314 -412
  211. package/dist/hooks/use-mobile-touch.js +314 -412
  212. package/dist/hooks/use-performance-throttling.esm.js +276 -344
  213. package/dist/hooks/use-performance-throttling.js +276 -344
  214. package/dist/hooks/use-performance.esm.js +216 -313
  215. package/dist/hooks/use-performance.js +216 -313
  216. package/dist/hooks/use-reusable-architecture.esm.js +255 -408
  217. package/dist/hooks/use-reusable-architecture.js +255 -408
  218. package/dist/hooks/use-semantic-input-types.esm.js +290 -356
  219. package/dist/hooks/use-semantic-input-types.js +290 -356
  220. package/dist/hooks/use-semantic-input.esm.js +446 -549
  221. package/dist/hooks/use-semantic-input.js +446 -549
  222. package/dist/hooks/use-tablet-layout.esm.js +279 -384
  223. package/dist/hooks/use-tablet-layout.js +279 -384
  224. package/dist/hooks/use-touch-friendly-input.esm.js +401 -519
  225. package/dist/hooks/use-touch-friendly-input.js +401 -519
  226. package/dist/hooks/use-touch-friendly-interface.esm.js +242 -331
  227. package/dist/hooks/use-touch-friendly-interface.js +242 -331
  228. package/dist/hooks/use-touch-optimization.esm.js +288 -370
  229. package/dist/hooks/use-touch-optimization.js +288 -370
  230. package/dist/index.esm.js +150 -294
  231. package/dist/index.js +150 -294
  232. package/dist/lib/utils.esm.js +4 -5
  233. package/dist/lib/utils.js +4 -5
  234. package/dist/plugins/theme-css-generator.esm.js +292 -346
  235. package/dist/plugins/theme-css-generator.js +292 -346
  236. package/dist/provider.esm.js +3 -19
  237. package/dist/provider.js +3 -19
  238. package/dist/styles/layers/validation.esm.js +275 -0
  239. package/dist/styles/layers/validation.js +275 -0
  240. package/dist/styles.css +1 -1
  241. package/dist/theme.esm.js +654 -658
  242. package/dist/theme.js +654 -658
  243. package/dist/themes/ThemeContext.esm.js +1 -27
  244. package/dist/themes/ThemeContext.js +1 -27
  245. package/dist/themes/ThemeProvider.esm.js +191 -223
  246. package/dist/themes/ThemeProvider.js +191 -223
  247. package/dist/themes/accessibility/index.esm.js +0 -4
  248. package/dist/themes/accessibility/index.js +0 -4
  249. package/dist/themes/accessibility.esm.js +175 -240
  250. package/dist/themes/accessibility.js +175 -240
  251. package/dist/themes/aria-patterns.esm.js +345 -401
  252. package/dist/themes/aria-patterns.js +345 -401
  253. package/dist/themes/base-themes.esm.js +15 -24
  254. package/dist/themes/base-themes.js +15 -24
  255. package/dist/themes/colorManager.esm.js +293 -357
  256. package/dist/themes/colorManager.js +293 -357
  257. package/dist/themes/examples/dark-theme.esm.js +129 -133
  258. package/dist/themes/examples/dark-theme.js +129 -133
  259. package/dist/themes/examples/minimal-theme.esm.js +80 -85
  260. package/dist/themes/examples/minimal-theme.js +80 -85
  261. package/dist/themes/focus-management.esm.js +541 -677
  262. package/dist/themes/focus-management.js +541 -677
  263. package/dist/themes/fontLoader.esm.js +151 -180
  264. package/dist/themes/fontLoader.js +151 -180
  265. package/dist/themes/high-contrast.esm.js +394 -558
  266. package/dist/themes/high-contrast.js +394 -558
  267. package/dist/themes/index.esm.js +1 -9
  268. package/dist/themes/index.js +1 -9
  269. package/dist/themes/inheritance.esm.js +145 -180
  270. package/dist/themes/inheritance.js +145 -180
  271. package/dist/themes/keyboard-navigation.esm.js +418 -510
  272. package/dist/themes/keyboard-navigation.js +418 -510
  273. package/dist/themes/motion-reduction.esm.js +434 -591
  274. package/dist/themes/motion-reduction.js +434 -591
  275. package/dist/themes/navigation.esm.js +1 -234
  276. package/dist/themes/navigation.js +1 -234
  277. package/dist/themes/screen-reader.esm.js +515 -616
  278. package/dist/themes/screen-reader.js +515 -616
  279. package/dist/themes/systemThemeDetector.esm.js +135 -164
  280. package/dist/themes/systemThemeDetector.js +135 -164
  281. package/dist/themes/themeCSSUpdater.esm.js +217 -252
  282. package/dist/themes/themeCSSUpdater.js +217 -252
  283. package/dist/themes/themePersistence.esm.js +181 -212
  284. package/dist/themes/themePersistence.js +181 -212
  285. package/dist/themes/themes/default.esm.js +584 -0
  286. package/dist/themes/themes/default.js +584 -0
  287. package/dist/themes/themes/harvey.esm.js +551 -0
  288. package/dist/themes/themes/harvey.js +551 -0
  289. package/dist/themes/themes/stan-design.esm.js +654 -658
  290. package/dist/themes/themes/stan-design.js +654 -658
  291. package/dist/themes/types.esm.js +1 -458
  292. package/dist/themes/types.js +1 -458
  293. package/dist/themes/useSystemTheme.esm.js +34 -42
  294. package/dist/themes/useSystemTheme.js +34 -42
  295. package/dist/themes/useTheme.esm.js +23 -28
  296. package/dist/themes/useTheme.js +23 -28
  297. package/dist/themes/validation.esm.js +380 -433
  298. package/dist/themes/validation.js +380 -433
  299. package/dist/tokens/index.esm.js +2 -25
  300. package/dist/tokens/index.js +2 -25
  301. package/dist/tokens/tokenExporter.esm.js +309 -373
  302. package/dist/tokens/tokenExporter.js +309 -373
  303. package/dist/tokens/tokenGenerator.esm.js +241 -273
  304. package/dist/tokens/tokenGenerator.js +241 -273
  305. package/dist/tokens/tokenManager.esm.js +187 -241
  306. package/dist/tokens/tokenManager.js +187 -241
  307. package/dist/tokens/tokenValidator.esm.js +402 -522
  308. package/dist/tokens/tokenValidator.js +402 -522
  309. package/dist/tokens/types.esm.js +1 -78
  310. package/dist/tokens/types.js +1 -78
  311. package/dist/types.esm.js +3 -0
  312. package/dist/types.js +3 -0
  313. package/dist/utils/bundle-analyzer.esm.js +188 -246
  314. package/dist/utils/bundle-analyzer.js +188 -246
  315. package/dist/utils/bundle-splitting.esm.js +330 -458
  316. package/dist/utils/bundle-splitting.js +330 -458
  317. package/dist/utils/lazy-loading.esm.js +311 -417
  318. package/dist/utils/lazy-loading.js +311 -417
  319. package/dist/utils/performance-monitor.esm.js +369 -490
  320. package/dist/utils/performance-monitor.js +369 -490
  321. package/dist/utils/tree-shaking.esm.js +194 -264
  322. package/dist/utils/tree-shaking.js +194 -264
  323. package/package.json +18 -2
  324. package/src/index.ts +150 -149
  325. package/src/provider.tsx +3 -3
  326. package/src/theme.ts +1 -1
  327. package/{dist/theme.d.ts → src/themes/themes/default.ts} +77 -169
  328. package/src/themes/themes/harvey.ts +554 -0
  329. package/{dist/themes/types.d.ts → src/types.ts} +7 -1
  330. package/dist/components/ui/accessibility-demo.d.ts +0 -259
  331. package/dist/components/ui/advanced-component-architecture-demo.d.ts +0 -718
  332. package/dist/components/ui/advanced-transition-system-demo.d.ts +0 -660
  333. package/dist/components/ui/advanced-transition-system.d.ts +0 -391
  334. package/dist/components/ui/animation/animated-container.d.ts +0 -162
  335. package/dist/components/ui/animation/index.d.ts +0 -9
  336. package/dist/components/ui/animation/staggered-container.d.ts +0 -64
  337. package/dist/components/ui/animation-demo.d.ts +0 -238
  338. package/dist/components/ui/badge.d.ts +0 -28
  339. package/dist/components/ui/battery-conscious-animation-demo.d.ts +0 -561
  340. package/dist/components/ui/border-radius-shadow-demo.d.ts +0 -183
  341. package/dist/components/ui/button.d.ts +0 -33
  342. package/dist/components/ui/card.d.ts +0 -205
  343. package/dist/components/ui/checkbox.d.ts +0 -26
  344. package/dist/components/ui/color-preview.d.ts +0 -402
  345. package/dist/components/ui/data-display/chart.d.ts +0 -646
  346. package/dist/components/ui/data-display/data-grid-simple.d.ts +0 -73
  347. package/dist/components/ui/data-display/data-grid.d.ts +0 -670
  348. package/dist/components/ui/data-display/list.d.ts +0 -448
  349. package/dist/components/ui/data-display/table.d.ts +0 -472
  350. package/dist/components/ui/data-display/timeline.d.ts +0 -433
  351. package/dist/components/ui/data-display/tree.d.ts +0 -594
  352. package/dist/components/ui/data-display/types.d.ts +0 -534
  353. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +0 -735
  354. package/dist/components/ui/enterprise-mobile-experience.d.ts +0 -461
  355. package/dist/components/ui/feedback/alert.d.ts +0 -154
  356. package/dist/components/ui/feedback/progress.d.ts +0 -288
  357. package/dist/components/ui/feedback/skeleton.d.ts +0 -182
  358. package/dist/components/ui/feedback/toast.d.ts +0 -277
  359. package/dist/components/ui/feedback/types.d.ts +0 -123
  360. package/dist/components/ui/font-preview.d.ts +0 -282
  361. package/dist/components/ui/form-demo.d.ts +0 -544
  362. package/dist/components/ui/hardware-acceleration-demo.d.ts +0 -540
  363. package/dist/components/ui/input.d.ts +0 -33
  364. package/dist/components/ui/label.d.ts +0 -13
  365. package/dist/components/ui/layout-demo.d.ts +0 -352
  366. package/dist/components/ui/layouts/adaptive-layout.d.ts +0 -132
  367. package/dist/components/ui/layouts/desktop-layout.d.ts +0 -219
  368. package/dist/components/ui/layouts/index.d.ts +0 -5
  369. package/dist/components/ui/layouts/mobile-layout.d.ts +0 -158
  370. package/dist/components/ui/layouts/tablet-layout.d.ts +0 -192
  371. package/dist/components/ui/mobile-form-validation.d.ts +0 -439
  372. package/dist/components/ui/mobile-input-demo.d.ts +0 -197
  373. package/dist/components/ui/mobile-input.d.ts +0 -273
  374. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +0 -628
  375. package/dist/components/ui/navigation/breadcrumb.d.ts +0 -149
  376. package/dist/components/ui/navigation/index.d.ts +0 -25
  377. package/dist/components/ui/navigation/menu.d.ts +0 -366
  378. package/dist/components/ui/navigation/navigation-demo.d.ts +0 -169
  379. package/dist/components/ui/navigation/pagination.d.ts +0 -261
  380. package/dist/components/ui/navigation/sidebar.d.ts +0 -375
  381. package/dist/components/ui/navigation/stepper.d.ts +0 -294
  382. package/dist/components/ui/navigation/tabs.d.ts +0 -196
  383. package/dist/components/ui/navigation/types.d.ts +0 -293
  384. package/dist/components/ui/overlay/backdrop.d.ts +0 -79
  385. package/dist/components/ui/overlay/focus-manager.d.ts +0 -141
  386. package/dist/components/ui/overlay/index.d.ts +0 -27
  387. package/dist/components/ui/overlay/modal.d.ts +0 -262
  388. package/dist/components/ui/overlay/overlay-manager.d.ts +0 -107
  389. package/dist/components/ui/overlay/popover.d.ts +0 -450
  390. package/dist/components/ui/overlay/portal.d.ts +0 -75
  391. package/dist/components/ui/overlay/tooltip.d.ts +0 -298
  392. package/dist/components/ui/overlay/types.d.ts +0 -194
  393. package/dist/components/ui/performance-demo.d.ts +0 -583
  394. package/dist/components/ui/semantic-input-system-demo.d.ts +0 -490
  395. package/dist/components/ui/theme-customizer.d.ts +0 -378
  396. package/dist/components/ui/theme-preview.d.ts +0 -305
  397. package/dist/components/ui/theme-switcher.d.ts +0 -259
  398. package/dist/components/ui/theme-toggle.d.ts +0 -34
  399. package/dist/components/ui/token-demo.d.ts +0 -188
  400. package/dist/components/ui/touch-demo.d.ts +0 -455
  401. package/dist/components/ui/touch-friendly-interface-demo.d.ts +0 -512
  402. package/dist/components/ui/touch-friendly-interface.d.ts +0 -292
  403. package/dist/hooks/index.d.ts +0 -161
  404. package/dist/hooks/use-accessibility-support.d.ts +0 -516
  405. package/dist/hooks/use-adaptive-layout.d.ts +0 -287
  406. package/dist/hooks/use-advanced-patterns.d.ts +0 -292
  407. package/dist/hooks/use-advanced-transition-system.d.ts +0 -390
  408. package/dist/hooks/use-animation-profile.d.ts +0 -285
  409. package/dist/hooks/use-battery-animations.d.ts +0 -382
  410. package/dist/hooks/use-battery-conscious-loading.d.ts +0 -473
  411. package/dist/hooks/use-battery-optimization.d.ts +0 -328
  412. package/dist/hooks/use-battery-status.d.ts +0 -297
  413. package/dist/hooks/use-component-performance.d.ts +0 -342
  414. package/dist/hooks/use-device-loading-states.d.ts +0 -456
  415. package/dist/hooks/use-device.d.ts +0 -104
  416. package/dist/hooks/use-enterprise-mobile-experience.d.ts +0 -486
  417. package/dist/hooks/use-form-feedback.d.ts +0 -401
  418. package/dist/hooks/use-form-performance.d.ts +0 -511
  419. package/dist/hooks/use-frame-rate.d.ts +0 -249
  420. package/dist/hooks/use-gestures.d.ts +0 -336
  421. package/dist/hooks/use-hardware-acceleration.d.ts +0 -339
  422. package/dist/hooks/use-input-accessibility.d.ts +0 -451
  423. package/dist/hooks/use-input-performance.d.ts +0 -503
  424. package/dist/hooks/use-layout-performance.d.ts +0 -317
  425. package/dist/hooks/use-loading-accessibility.d.ts +0 -532
  426. package/dist/hooks/use-loading-performance.d.ts +0 -471
  427. package/dist/hooks/use-memory-usage.d.ts +0 -285
  428. package/dist/hooks/use-mobile-form-layout.d.ts +0 -462
  429. package/dist/hooks/use-mobile-form-validation.d.ts +0 -516
  430. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +0 -469
  431. package/dist/hooks/use-mobile-layout.d.ts +0 -300
  432. package/dist/hooks/use-mobile-optimization.d.ts +0 -404
  433. package/dist/hooks/use-mobile-skeleton.d.ts +0 -399
  434. package/dist/hooks/use-mobile-touch.d.ts +0 -412
  435. package/dist/hooks/use-performance-throttling.d.ts +0 -346
  436. package/dist/hooks/use-performance.d.ts +0 -314
  437. package/dist/hooks/use-reusable-architecture.d.ts +0 -412
  438. package/dist/hooks/use-semantic-input-types.d.ts +0 -354
  439. package/dist/hooks/use-semantic-input.d.ts +0 -563
  440. package/dist/hooks/use-tablet-layout.d.ts +0 -382
  441. package/dist/hooks/use-touch-friendly-input.d.ts +0 -520
  442. package/dist/hooks/use-touch-friendly-interface.d.ts +0 -329
  443. package/dist/hooks/use-touch-optimization.d.ts +0 -373
  444. package/dist/index.d.ts +0 -149
  445. package/dist/lib/utils.d.ts +0 -3
  446. package/dist/plugins/theme-css-generator.d.ts +0 -345
  447. package/dist/provider.d.ts +0 -17
  448. package/dist/themes/ThemeContext.d.ts +0 -27
  449. package/dist/themes/ThemeProvider.d.ts +0 -222
  450. package/dist/themes/accessibility/index.d.ts +0 -7
  451. package/dist/themes/accessibility.d.ts +0 -259
  452. package/dist/themes/aria-patterns.d.ts +0 -418
  453. package/dist/themes/base-themes.d.ts +0 -34
  454. package/dist/themes/colorManager.d.ts +0 -327
  455. package/dist/themes/examples/dark-theme.d.ts +0 -139
  456. package/dist/themes/examples/minimal-theme.d.ts +0 -93
  457. package/dist/themes/focus-management.d.ts +0 -699
  458. package/dist/themes/fontLoader.d.ts +0 -163
  459. package/dist/themes/high-contrast.d.ts +0 -619
  460. package/dist/themes/index.d.ts +0 -11
  461. package/dist/themes/inheritance.d.ts +0 -160
  462. package/dist/themes/keyboard-navigation.d.ts +0 -550
  463. package/dist/themes/motion-reduction.d.ts +0 -660
  464. package/dist/themes/navigation.d.ts +0 -232
  465. package/dist/themes/screen-reader.d.ts +0 -645
  466. package/dist/themes/systemThemeDetector.d.ts +0 -148
  467. package/dist/themes/themeCSSUpdater.d.ts +0 -229
  468. package/dist/themes/themePersistence.d.ts +0 -192
  469. package/dist/themes/themes/stan-design.d.ts +0 -678
  470. package/dist/themes/useSystemTheme.d.ts +0 -43
  471. package/dist/themes/useTheme.d.ts +0 -20
  472. package/dist/themes/validation.d.ts +0 -406
  473. package/dist/tokens/index.d.ts +0 -25
  474. package/dist/tokens/tokenExporter.d.ts +0 -336
  475. package/dist/tokens/tokenGenerator.d.ts +0 -250
  476. package/dist/tokens/tokenManager.d.ts +0 -194
  477. package/dist/tokens/tokenValidator.d.ts +0 -488
  478. package/dist/tokens/types.d.ts +0 -78
  479. package/dist/utils/bundle-analyzer.d.ts +0 -260
  480. package/dist/utils/bundle-splitting.d.ts +0 -483
  481. package/dist/utils/lazy-loading.d.ts +0 -437
  482. package/dist/utils/performance-monitor.d.ts +0 -513
  483. package/dist/utils/tree-shaking.d.ts +0 -274
@@ -1,916 +1,256 @@
1
- import React, { useState, useCallback, useEffect } from 'react'
2
- import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card'
3
- import { Badge } from './badge'
4
- import { Button } from './button'
5
- import { useAdvancedPatterns } from '../../hooks/use-advanced-patterns'
6
- import { useComponentPerformance } from '../../hooks/use-component-performance'
7
- import { useMobileOptimization } from '../../hooks/use-mobile-optimization'
8
- import { useReusableArchitecture } from '../../hooks/use-reusable-architecture'
9
- import { useAccessibilitySupport } from '../../hooks/use-accessibility-support'
10
-
11
- export const AdvancedComponentArchitectureDemo: React.FC = () => {
12
- const [activeTab, setActiveTab] = useState<'patterns' | 'performance' | 'mobile' | 'architecture' | 'accessibility'>('patterns')
13
- const [showPatternDemo, setShowPatternDemo] = useState(true)
14
- const [showPerformanceDemo, setShowPerformanceDemo] = useState(true)
15
- const [showMobileDemo, setShowMobileDemo] = useState(true)
16
- const [showArchitectureDemo, setShowArchitectureDemo] = useState(true)
17
- const [showAccessibilityDemo, setShowAccessibilityDemo] = useState(true)
18
-
19
- // Hooks
20
- const advancedPatterns = useAdvancedPatterns({
21
- enableCompoundComponents: true,
22
- enableRenderProps: true,
23
- enableHigherOrderComponents: true,
24
- enableCustomHooks: true,
25
- enablePerformanceOptimization: true,
26
- enableAccessibilitySupport: true
27
- }, {
28
- onPatternApplied: (pattern, component) => console.log('Pattern applied:', pattern, component),
29
- onPerformanceOptimized: (optimization) => console.log('Performance optimized:', optimization),
30
- onAccessibilityEnhanced: (feature) => console.log('Accessibility enhanced:', feature)
31
- })
32
-
33
- const componentPerformance = useComponentPerformance({
34
- enableMemoization: true,
35
- enableLazyLoading: true,
36
- enableVirtualization: true,
37
- enablePerformanceMonitoring: true,
38
- enableAutoOptimization: true
39
- }, {
40
- onPerformanceWarning: (metrics) => console.log('Performance warning:', metrics),
41
- onOptimizationApplied: (type, component) => console.log('Optimization applied:', type, component),
42
- onPerformanceImproved: (improvement) => console.log('Performance improved:', improvement),
43
- onMemoryWarning: (usage) => console.log('Memory warning:', usage)
44
- })
45
-
46
- const mobileOptimization = useMobileOptimization({
47
- enableTouchOptimization: true,
48
- enablePerformanceOptimization: true,
49
- enableBatteryOptimization: true,
50
- enableAccessibilityOptimization: true,
51
- enableResponsiveOptimization: true
52
- }, {
53
- onMobileOptimized: (optimization) => console.log('Mobile optimized:', optimization),
54
- onTouchOptimized: (feature) => console.log('Touch optimized:', feature),
55
- onPerformanceOptimized: (improvement) => console.log('Performance optimized:', improvement),
56
- onBatteryOptimized: (strategy) => console.log('Battery optimized:', strategy),
57
- onAccessibilityEnhanced: (feature) => console.log('Accessibility enhanced:', feature)
58
- })
59
-
60
- const reusableArchitecture = useReusableArchitecture({
61
- enableComponentComposition: true,
62
- enablePatternSharing: true,
63
- enableStyleSharing: true,
64
- enableBehaviorSharing: true,
65
- enableTemplateSystem: true,
66
- enableComponentRegistry: true
67
- }, {
68
- onTemplateCreated: (template) => console.log('Template created:', template),
69
- onPatternShared: (pattern) => console.log('Pattern shared:', pattern),
70
- onStyleShared: (style) => console.log('Style shared:', style),
71
- onBehaviorShared: (behavior) => console.log('Behavior shared:', behavior),
72
- onArchitectureOptimized: (optimization) => console.log('Architecture optimized:', optimization)
73
- })
74
-
75
- const accessibilitySupport = useAccessibilitySupport({
76
- enableAriaSupport: true,
77
- enableKeyboardNavigation: true,
78
- enableScreenReaderSupport: true,
79
- enableFocusManagement: true,
80
- enableHighContrast: true,
81
- enableReducedMotion: true,
82
- enableVoiceControl: true
83
- }, {
84
- onAriaEnhanced: (feature) => console.log('ARIA enhanced:', feature),
85
- onKeyboardNavigationEnabled: (feature) => console.log('Keyboard navigation enabled:', feature),
86
- onScreenReaderEnhanced: (feature) => console.log('Screen reader enhanced:', feature),
87
- onFocusManagementImproved: (feature) => console.log('Focus management improved:', feature),
88
- onAccessibilityWarning: (warning) => console.log('Accessibility warning:', warning)
89
- })
90
-
91
- // Demo functions
92
- const demonstratePatterns = useCallback(() => {
93
- // Demonstrate compound components
94
- const BaseComponent = () => <div>Base Component</div>
95
- const SubComponent = () => <div>Sub Component</div>
96
-
97
- const compoundComponent = advancedPatterns.createCompoundComponent(BaseComponent, {
98
- Sub: SubComponent
99
- })
100
-
101
- // Demonstrate render props
102
- const renderPropsData = { message: 'Hello from Render Props!' }
103
- const renderPropsComponent = advancedPatterns.createRenderPropsComponent({
104
- data: renderPropsData,
105
- loading: false,
106
- error: null,
107
- render: (data) => <div>Render Props: {data.message}</div>
108
- })
109
-
110
- // Demonstrate higher-order components
111
- const enhancedComponent = advancedPatterns.createHigherOrderComponent({
112
- component: BaseComponent,
113
- props: { enhanced: true },
114
- enhancers: [
115
- (Component) => (props: any) => <div className="enhanced"><Component {...props} /></div>
116
- ]
117
- })
118
-
119
- // Demonstrate custom hooks
120
- const customHookResult = advancedPatterns.createCustomHook('DemoHook', () => 'Custom Hook Result')
121
-
122
- console.log('Patterns demonstrated:', {
123
- compoundComponent,
124
- renderPropsComponent,
125
- enhancedComponent,
126
- customHookResult
127
- })
128
- }, [advancedPatterns])
129
-
130
- const demonstratePerformance = useCallback(() => {
131
- // Demonstrate memoization
132
- const memoizedValue = componentPerformance.memoizeValue('demo', 'expensive calculation result', ['dependency1', 'dependency2'])
133
-
134
- // Demonstrate lazy loading
135
- const lazyComponent = componentPerformance.lazyLoadComponent('DemoComponent', () =>
136
- Promise.resolve({ default: () => <div>Lazy Loaded Component</div> })
137
- )
138
-
139
- // Demonstrate virtualization
140
- const items = Array.from({ length: 1000 }, (_, i) => `Item ${i}`)
141
- const virtualizedList = componentPerformance.createVirtualizedList(
142
- items,
143
- 50,
144
- 400,
145
- (item, index) => <div key={index} className="p-2 border">{item}</div>
146
- )
147
-
148
- // Demonstrate performance measurement
149
- const stopMeasurement = componentPerformance.startRenderMeasurement()
150
- setTimeout(stopMeasurement, 100)
151
-
152
- // Demonstrate auto-optimization
153
- componentPerformance.autoOptimize('DemoComponent')
154
-
155
- console.log('Performance optimizations demonstrated:', {
156
- memoizedValue,
157
- lazyComponent,
158
- virtualizedList
159
- })
160
- }, [componentPerformance])
161
-
162
- const demonstrateMobileOptimization = useCallback(() => {
163
- // Demonstrate touch optimization
164
- mobileOptimization.optimizeTouchTargets()
165
-
166
- // Demonstrate performance optimization
167
- mobileOptimization.optimizePerformance()
168
-
169
- // Demonstrate battery optimization
170
- mobileOptimization.optimizeBattery()
171
-
172
- // Demonstrate accessibility optimization
173
- mobileOptimization.optimizeAccessibility()
174
-
175
- // Demonstrate responsive optimization
176
- mobileOptimization.optimizeResponsive()
177
-
178
- // Demonstrate component-specific optimization
179
- mobileOptimization.optimizeComponentForMobile('DemoComponent', 'touch')
180
- mobileOptimization.optimizeComponentForMobile('DemoComponent', 'performance')
181
- mobileOptimization.optimizeComponentForMobile('DemoComponent', 'battery')
182
- mobileOptimization.optimizeComponentForMobile('DemoComponent', 'accessibility')
183
- mobileOptimization.optimizeComponentForMobile('DemoComponent', 'responsive')
184
- }, [mobileOptimization])
185
-
186
- const demonstrateArchitecture = useCallback(() => {
187
- // Demonstrate component composition
188
- const BaseComponent = () => <div>Base Component</div>
189
- const enhancedComponent = reusableArchitecture.composeComponent(BaseComponent, [
190
- (Component) => (props: any) => <div className="enhanced"><Component {...props} /></div>,
191
- (Component) => (props: any) => <div className="wrapped"><Component {...props} /></div>
192
- ])
193
-
194
- // Demonstrate template creation
195
- const templateId = reusableArchitecture.createTemplate({
196
- name: 'Demo Template',
197
- component: BaseComponent,
198
- props: { demo: true },
199
- styles: { padding: '1rem' },
200
- behaviors: ['clickable', 'hoverable'],
201
- patterns: ['compound', 'enhanced']
202
- })
203
-
204
- // Demonstrate pattern sharing
205
- const patternId = reusableArchitecture.sharePattern({
206
- name: 'Demo Pattern',
207
- description: 'A demonstration pattern',
208
- implementation: 'Pattern implementation details',
209
- usage: ['Component1', 'Component2'],
210
- category: 'composition'
211
- })
212
-
213
- // Demonstrate style sharing
214
- const styleId = reusableArchitecture.shareStyle({
215
- name: 'Demo Style',
216
- css: '.demo-style { color: blue; }',
217
- variables: { '--demo-color': 'blue' },
218
- breakpoints: { mobile: 'max-width: 768px' },
219
- usage: ['Component1']
220
- })
221
-
222
- // Demonstrate behavior sharing
223
- const behaviorId = reusableArchitecture.shareBehavior({
224
- name: 'Demo Behavior',
225
- description: 'A demonstration behavior',
226
- hook: 'useDemoBehavior',
227
- dependencies: ['react'],
228
- usage: ['Component1']
229
- })
230
-
231
- // Demonstrate component registry
232
- reusableArchitecture.registerComponent('DemoComponent', BaseComponent, {
233
- name: 'Demo Component',
234
- description: 'A demonstration component',
235
- category: 'demo',
236
- tags: ['demo', 'example']
237
- })
238
-
239
- console.log('Architecture demonstrated:', {
240
- enhancedComponent,
241
- templateId,
242
- patternId,
243
- styleId,
244
- behaviorId
245
- })
246
- }, [reusableArchitecture])
247
-
248
- const demonstrateAccessibility = useCallback(() => {
249
- // Demonstrate ARIA support
250
- accessibilitySupport.enhanceAriaSupport('DemoElement', {
251
- 'aria-label': 'Demo Element',
252
- 'aria-describedby': 'demo-description',
253
- 'role': 'button'
254
- })
255
-
256
- // Demonstrate keyboard navigation
257
- accessibilitySupport.enableKeyboardNavigation('DemoElement', {
258
- 'Enter': 'Activate',
259
- 'Space': 'Toggle',
260
- 'Tab': 'Navigate'
261
- })
262
-
263
- // Demonstrate screen reader support
264
- accessibilitySupport.enhanceScreenReaderSupport('DemoElement', 'This is a demo element for screen readers')
265
-
266
- // Demonstrate focus management
267
- accessibilitySupport.improveFocusManagement('DemoElement', 'trap')
268
-
269
- // Demonstrate high contrast
270
- accessibilitySupport.enableHighContrast()
271
-
272
- // Demonstrate reduced motion
273
- accessibilitySupport.enableReducedMotion()
274
-
275
- // Demonstrate voice control
276
- accessibilitySupport.enableVoiceControl()
277
-
278
- // Demonstrate auto-enhancement
279
- accessibilitySupport.autoEnhanceAccessibility()
280
- }, [accessibilitySupport])
281
-
282
- // Auto-demonstrate all features
283
- useEffect(() => {
284
- const timer = setTimeout(() => {
285
- demonstratePatterns()
286
- demonstratePerformance()
287
- demonstrateMobileOptimization()
288
- demonstrateArchitecture()
289
- demonstrateAccessibility()
290
- }, 1000)
291
-
292
- return () => clearTimeout(timer)
293
- }, [demonstratePatterns, demonstratePerformance, demonstrateMobileOptimization, demonstrateArchitecture, demonstrateAccessibility])
294
-
295
- const tabs = [
296
- { id: 'patterns', label: 'Advanced Patterns', icon: '🧩' },
297
- { id: 'performance', label: 'Performance', icon: '⚡' },
298
- { id: 'mobile', label: 'Mobile Optimization', icon: '📱' },
299
- { id: 'architecture', label: 'Reusable Architecture', icon: '🏗️' },
300
- { id: 'accessibility', label: 'Accessibility', icon: '♿' }
301
- ]
302
-
303
- return (
304
- <div className="space-y-6">
305
- <div className="text-center">
306
- <h1 className="text-3xl font-bold text-cs-text-primary mb-2">
307
- 🏗️ Advanced Component Architecture & Patterns
308
- </h1>
309
- <p className="text-lg text-cs-text-secondary mb-4">
310
- Story 10 Implementation - Sophisticated component patterns, performance optimization, mobile optimization, reusable architecture, and accessibility support
311
- </p>
312
- <div className="flex items-center justify-center gap-2">
313
- <Badge variant="default">Story 10</Badge>
314
- <Badge variant="outline">Advanced Patterns</Badge>
315
- <Badge variant="secondary">Performance Optimized</Badge>
316
- <Badge variant="outline">Mobile First</Badge>
317
- <Badge variant="secondary">Reusable Architecture</Badge>
318
- <Badge variant="outline">Accessibility First</Badge>
319
- </div>
320
- </div>
321
-
322
- {/* Tab Navigation */}
323
- <div className="flex flex-wrap gap-2 border-b pb-4">
324
- {tabs.map((tab) => (
325
- <Button
326
- key={tab.id}
327
- variant={activeTab === tab.id ? 'default' : 'outline'}
328
- size="sm"
329
- onClick={() => setActiveTab(tab.id as any)}
330
- className="flex items-center gap-2"
331
- >
332
- <span>{tab.icon}</span>
333
- {tab.label}
334
- </Button>
335
- ))}
336
- </div>
337
-
338
- {/* Advanced Patterns Tab */}
339
- {activeTab === 'patterns' && (
340
- <Card className="border-2 border-cs-primary">
341
- <CardHeader>
342
- <CardTitle className="text-xl flex items-center gap-2">
343
- 🧩 Advanced Component Patterns
344
- <Badge variant="outline">{advancedPatterns.patterns.length} Patterns</Badge>
345
- </CardTitle>
346
- <CardDescription>
347
- Advanced component patterns including compound components, render props, higher-order components, and custom hooks
348
- </CardDescription>
349
- </CardHeader>
350
- <CardContent className="space-y-4">
351
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
352
- <div className="space-y-3">
353
- <h4 className="font-medium">Pattern Status</h4>
354
- <div className="space-y-2">
355
- <div className="flex justify-between">
356
- <span className="text-sm">Compound Components:</span>
357
- <Badge variant={advancedPatterns.hasPattern('Compound Components') ? 'default' : 'secondary'}>
358
- {advancedPatterns.hasPattern('Compound Components') ? 'Active' : 'Inactive'}
359
- </Badge>
360
- </div>
361
- <div className="flex justify-between">
362
- <span className="text-sm">Render Props:</span>
363
- <Badge variant={advancedPatterns.hasPattern('Render Props') ? 'default' : 'secondary'}>
364
- {advancedPatterns.hasPattern('Render Props') ? 'Active' : 'Inactive'}
365
- </Badge>
366
- </div>
367
- <div className="flex justify-between">
368
- <span className="text-sm">Higher-Order Components:</span>
369
- <Badge variant={advancedPatterns.hasPattern('Higher-Order Components') ? 'default' : 'secondary'}>
370
- {advancedPatterns.hasPattern('Higher-Order Components') ? 'Active' : 'Inactive'}
371
- </Badge>
372
- </div>
373
- <div className="flex justify-between">
374
- <span className="text-sm">Custom Hooks:</span>
375
- <Badge variant={advancedPatterns.hasPattern('Custom Hooks') ? 'default' : 'secondary'}>
376
- {advancedPatterns.hasPattern('Custom Hooks') ? 'Active' : 'Inactive'}
377
- </Badge>
378
- </div>
379
- </div>
380
- </div>
381
-
382
- <div className="space-y-3">
383
- <h4 className="font-medium">Pattern Analysis</h4>
384
- <div className="space-y-2">
385
- <div className="flex justify-between">
386
- <span className="text-sm">Total Patterns:</span>
387
- <span className="text-sm text-cs-text-secondary">{advancedPatterns.patterns.length}</span>
388
- </div>
389
- <div className="flex justify-between">
390
- <span className="text-sm">Unique Patterns:</span>
391
- <span className="text-sm text-cs-text-secondary">{advancedPatterns.analyzePatterns().uniquePatterns}</span>
392
- </div>
393
- <div className="flex justify-between">
394
- <span className="text-sm">Optimization Level:</span>
395
- <Badge variant="outline">{advancedPatterns.patterns.length > 0 ? 'Optimized' : 'Not Optimized'}</Badge>
396
- </div>
397
- </div>
398
- </div>
399
- </div>
400
-
401
- {/* Pattern Controls */}
402
- <div className="flex gap-2">
403
- <Button
404
- variant="default"
405
- onClick={demonstratePatterns}
406
- disabled={advancedPatterns.isOptimizing}
407
- >
408
- Demonstrate Patterns
409
- </Button>
410
- <Button
411
- variant="outline"
412
- onClick={() => advancedPatterns.clearPatterns()}
413
- >
414
- Clear Patterns
415
- </Button>
416
- </div>
417
-
418
- {/* Pattern Recommendations */}
419
- {advancedPatterns.getPatternRecommendations().length > 0 && (
420
- <div className="p-3 bg-cs-accent/10 rounded-lg">
421
- <h4 className="font-medium text-sm mb-2">Pattern Recommendations:</h4>
422
- <ul className="text-xs text-cs-text-secondary space-y-1">
423
- {advancedPatterns.getPatternRecommendations().map((recommendation, index) => (
424
- <li key={index}>• {recommendation}</li>
425
- ))}
426
- </ul>
427
- </div>
428
- )}
429
-
430
- {/* Pattern Validation */}
431
- {advancedPatterns.validatePatterns().warnings.length > 0 && (
432
- <div className="p-3 bg-yellow-50 border border-yellow-200 rounded-lg">
433
- <h4 className="font-medium text-sm mb-2 text-yellow-800">Pattern Warnings:</h4>
434
- <ul className="text-xs text-yellow-700 space-y-1">
435
- {advancedPatterns.validatePatterns().warnings.map((warning, index) => (
436
- <li key={index}>• {warning}</li>
437
- ))}
438
- </ul>
439
- </div>
440
- )}
441
- </CardContent>
442
- </Card>
443
- )}
444
-
445
- {/* Performance Tab */}
446
- {activeTab === 'performance' && (
447
- <Card className="border-2 border-cs-secondary">
448
- <CardHeader>
449
- <CardTitle className="text-xl flex items-center gap-2">
450
- ⚡ Component Performance Optimization
451
- <Badge variant={componentPerformance.isPerformanceOptimized() ? 'default' : 'secondary'}>
452
- {componentPerformance.isPerformanceOptimized() ? 'Optimized' : 'Not Optimized'}
453
- </Badge>
454
- </CardTitle>
455
- <CardDescription>
456
- Performance optimization including memoization, lazy loading, virtualization, and performance monitoring
457
- </CardDescription>
458
- </CardHeader>
459
- <CardContent className="space-y-4">
460
- <div className="grid grid-cols-2 lg:grid-cols-4 gap-4 text-center">
461
- <div>
462
- <p className="text-2xl font-bold text-cs-primary">
463
- {componentPerformance.metrics.renderTime.toFixed(2)}ms
464
- </p>
465
- <p className="text-sm text-cs-text-secondary">Render Time</p>
466
- </div>
467
- <div>
468
- <p className="text-2xl font-bold text-cs-secondary">
469
- {componentPerformance.metrics.memoryUsage.toFixed(1)}%
470
- </p>
471
- <p className="text-sm text-cs-text-secondary">Memory Usage</p>
472
- </div>
473
- <div>
474
- <p className="text-2xl font-bold text-cs-accent">
475
- {componentPerformance.metrics.reRenderCount}
476
- </p>
477
- <p className="text-sm text-cs-text-secondary">Re-render Count</p>
478
- </div>
479
- <div>
480
- <p className="text-2xl font-bold text-cs-primary">
481
- {componentPerformance.getPerformanceScore()}
482
- </p>
483
- <p className="text-sm text-cs-text-secondary">Performance Score</p>
484
- </div>
485
- </div>
486
-
487
- {/* Performance Controls */}
488
- <div className="flex gap-2">
489
- <Button
490
- variant="default"
491
- onClick={demonstratePerformance}
492
- disabled={componentPerformance.isOptimizing}
493
- >
494
- Demonstrate Performance
495
- </Button>
496
- <Button
497
- variant="outline"
498
- onClick={() => componentPerformance.clearOptimizations()}
499
- >
500
- Clear Optimizations
501
- </Button>
502
- </div>
503
-
504
- {/* Performance Analysis */}
505
- <div className="p-3 bg-cs-accent/10 rounded-lg">
506
- <h4 className="font-medium text-sm mb-2">Performance Analysis:</h4>
507
- <div className="grid grid-cols-2 gap-4 text-sm">
508
- <div>
509
- <span className="font-medium">Needs Optimization:</span>
510
- <div className="text-cs-text-secondary">
511
- {componentPerformance.analyzePerformance().needsOptimization ? 'Yes' : 'No'}
512
- </div>
513
- </div>
514
- <div>
515
- <span className="font-medium">Optimization Score:</span>
516
- <div className="text-cs-text-secondary">
517
- {componentPerformance.analyzePerformance().optimizationScore.toFixed(1)}%
518
- </div>
519
- </div>
520
- </div>
521
- </div>
522
-
523
- {/* Performance Recommendations */}
524
- {componentPerformance.analyzePerformance().recommendations.length > 0 && (
525
- <div className="p-3 bg-blue-50 border border-blue-200 rounded-lg">
526
- <h4 className="font-medium text-sm mb-2 text-blue-800">Performance Recommendations:</h4>
527
- <ul className="text-xs text-blue-700 space-y-1">
528
- {componentPerformance.analyzePerformance().recommendations.map((recommendation, index) => (
529
- <li key={index}>• {recommendation}</li>
530
- ))}
531
- </ul>
532
- </div>
533
- )}
534
- </CardContent>
535
- </Card>
536
- )}
537
-
538
- {/* Mobile Optimization Tab */}
539
- {activeTab === 'mobile' && (
540
- <Card className="border-2 border-cs-accent">
541
- <CardHeader>
542
- <CardTitle className="text-xl flex items-center gap-2">
543
- 📱 Mobile Optimization
544
- <Badge variant={mobileOptimization.isMobileOptimized() ? 'default' : 'secondary'}>
545
- {mobileOptimization.isMobileOptimized() ? 'Optimized' : 'Not Optimized'}
546
- </Badge>
547
- </CardTitle>
548
- <CardDescription>
549
- Mobile-specific optimizations including touch optimization, performance optimization, battery optimization, and accessibility optimization
550
- </CardDescription>
551
- </CardHeader>
552
- <CardContent className="space-y-4">
553
- <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
554
- <div className="space-y-3">
555
- <h4 className="font-medium">Device Information</h4>
556
- <div className="space-y-2">
557
- <div className="flex justify-between">
558
- <span className="text-sm">Device Type:</span>
559
- <Badge variant={mobileOptimization.state.isMobile ? 'default' : 'secondary'}>
560
- {mobileOptimization.state.isMobile ? 'Mobile' : 'Desktop'}
561
- </Badge>
562
- </div>
563
- <div className="flex justify-between">
564
- <span className="text-sm">Touch Device:</span>
565
- <Badge variant={mobileOptimization.state.isTouchDevice ? 'default' : 'secondary'}>
566
- {mobileOptimization.state.isTouchDevice ? 'Yes' : 'No'}
567
- </Badge>
568
- </div>
569
- <div className="flex justify-between">
570
- <span className="text-sm">Screen Size:</span>
571
- <Badge variant="outline">{mobileOptimization.state.screenSize}</Badge>
572
- </div>
573
- <div className="flex justify-between">
574
- <span className="text-sm">Orientation:</span>
575
- <Badge variant="outline">{mobileOptimization.state.orientation}</Badge>
576
- </div>
577
- </div>
578
- </div>
579
-
580
- <div className="space-y-3">
581
- <h4 className="font-medium">Optimization Status</h4>
582
- <div className="space-y-2">
583
- <div className="flex justify-between">
584
- <span className="text-sm">Touch Optimized:</span>
585
- <Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().touchOptimized ? 'Yes' : 'No'}</Badge>
586
- </div>
587
- <div className="flex justify-between">
588
- <span className="text-sm">Performance Optimized:</span>
589
- <Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().performanceOptimized ? 'Yes' : 'No'}</Badge>
590
- </div>
591
- <div className="flex justify-between">
592
- <span className="text-sm">Battery Optimized:</span>
593
- <Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().batteryOptimized ? 'Yes' : 'No'}</Badge>
594
- </div>
595
- <div className="flex justify-between">
596
- <span className="text-sm">Accessibility Optimized:</span>
597
- <Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().accessibilityOptimized ? 'Yes' : 'No'}</Badge>
598
- </div>
599
- </div>
600
- </div>
601
- </div>
602
-
603
- {/* Mobile Controls */}
604
- <div className="flex gap-2">
605
- <Button
606
- variant="default"
607
- onClick={demonstrateMobileOptimization}
608
- disabled={mobileOptimization.isOptimizing}
609
- >
610
- Demonstrate Mobile Optimization
611
- </Button>
612
- <Button
613
- variant="outline"
614
- onClick={() => mobileOptimization.clearOptimizations()}
615
- >
616
- Clear Optimizations
617
- </Button>
618
- </div>
619
-
620
- {/* Mobile Recommendations */}
621
- {mobileOptimization.analyzeMobileOptimization().recommendations.length > 0 && (
622
- <div className="p-3 bg-green-50 border border-green-200 rounded-lg">
623
- <h4 className="font-medium text-sm mb-2 text-green-800">Mobile Optimization Recommendations:</h4>
624
- <ul className="text-xs text-green-700 space-y-1">
625
- {mobileOptimization.analyzeMobileOptimization().recommendations.map((recommendation, index) => (
626
- <li key={index}>• {recommendation}</li>
627
- ))}
628
- </ul>
629
- </div>
630
- )}
631
- </CardContent>
632
- </Card>
633
- )}
634
-
635
- {/* Reusable Architecture Tab */}
636
- {activeTab === 'architecture' && (
637
- <Card className="border-2 border-cs-primary">
638
- <CardHeader>
639
- <CardTitle className="text-xl flex items-center gap-2">
640
- 🏗️ Reusable Component Architecture
641
- <Badge variant="outline">{reusableArchitecture.templates.length} Templates</Badge>
642
- </CardTitle>
643
- <CardDescription>
644
- Reusable component architecture including component composition, pattern sharing, style sharing, and behavior sharing
645
- </CardDescription>
646
- </CardHeader>
647
- <CardContent className="space-y-4">
648
- <div className="grid grid-cols-2 lg:grid-cols-4 gap-4 text-center">
649
- <div>
650
- <p className="text-2xl font-bold text-cs-primary">
651
- {reusableArchitecture.templates.length}
652
- </p>
653
- <p className="text-sm text-cs-text-secondary">Templates</p>
654
- </div>
655
- <div>
656
- <p className="text-2xl font-bold text-cs-secondary">
657
- {reusableArchitecture.sharedPatterns.length}
658
- </p>
659
- <p className="text-sm text-cs-text-secondary">Shared Patterns</p>
660
- </div>
661
- <div>
662
- <p className="text-2xl font-bold text-cs-accent">
663
- {reusableArchitecture.sharedStyles.length}
664
- </p>
665
- <p className="text-sm text-cs-text-secondary">Shared Styles</p>
666
- </div>
667
- <div>
668
- <p className="text-2xl font-bold text-cs-primary">
669
- {reusableArchitecture.sharedBehaviors.length}
670
- </p>
671
- <p className="text-sm text-cs-text-secondary">Shared Behaviors</p>
672
- </div>
673
- </div>
674
-
675
- {/* Architecture Controls */}
676
- <div className="flex gap-2">
677
- <Button
678
- variant="default"
679
- onClick={demonstrateArchitecture}
680
- disabled={reusableArchitecture.isOptimizing}
681
- >
682
- Demonstrate Architecture
683
- </Button>
684
- <Button
685
- variant="outline"
686
- onClick={() => reusableArchitecture.clearOptimizations()}
687
- >
688
- Clear Optimizations
689
- </Button>
690
- </div>
691
-
692
- {/* Architecture Analysis */}
693
- <div className="p-3 bg-cs-accent/10 rounded-lg">
694
- <h4 className="font-medium text-sm mb-2">Architecture Analysis:</h4>
695
- <div className="grid grid-cols-2 gap-4 text-sm">
696
- <div>
697
- <span className="font-medium">Composition Level:</span>
698
- <div className="text-cs-text-secondary">
699
- {reusableArchitecture.analyzeArchitecture().compositionLevel}
700
- </div>
701
- </div>
702
- <div>
703
- <span className="font-medium">Reusability Score:</span>
704
- <div className="text-cs-text-secondary">
705
- {reusableArchitecture.analyzeArchitecture().reusabilityScore.toFixed(1)}%
706
- </div>
707
- </div>
708
- </div>
709
- </div>
710
-
711
- {/* Architecture Recommendations */}
712
- {reusableArchitecture.analyzeArchitecture().recommendations.length > 0 && (
713
- <div className="p-3 bg-blue-50 border border-blue-200 rounded-lg">
714
- <h4 className="font-medium text-sm mb-2 text-blue-800">Architecture Recommendations:</h4>
715
- <ul className="text-xs text-blue-700 space-y-1">
716
- {reusableArchitecture.analyzeArchitecture().recommendations.map((recommendation, index) => (
717
- <li key={index}>• {recommendation}</li>
718
- ))}
719
- </ul>
720
- </div>
721
- )}
722
- </CardContent>
723
- </Card>
724
- )}
725
-
726
- {/* Accessibility Tab */}
727
- {activeTab === 'accessibility' && (
728
- <Card className="border-2 border-cs-secondary">
729
- <CardHeader>
730
- <CardTitle className="text-xl flex items-center gap-2">
731
- ♿ Accessibility Support
732
- <Badge variant={accessibilitySupport.isAccessibilityEnhanced() ? 'default' : 'secondary'}>
733
- {accessibilitySupport.isAccessibilityEnhanced() ? 'Enhanced' : 'Basic'}
734
- </Badge>
735
- </CardTitle>
736
- <CardDescription>
737
- Accessibility support including ARIA support, keyboard navigation, screen reader support, and focus management
738
- </CardDescription>
739
- </CardHeader>
740
- <CardContent className="space-y-4">
741
- <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
742
- <div className="space-y-3">
743
- <h4 className="font-medium">Accessibility Features</h4>
744
- <div className="space-y-2">
745
- <div className="flex justify-between">
746
- <span className="text-sm">ARIA Support:</span>
747
- <Badge variant={accessibilitySupport.state.hasAriaLabels ? 'default' : 'secondary'}>
748
- {accessibilitySupport.state.hasAriaLabels ? 'Enabled' : 'Disabled'}
749
- </Badge>
750
- </div>
751
- <div className="flex justify-between">
752
- <span className="text-sm">Keyboard Navigation:</span>
753
- <Badge variant={accessibilitySupport.state.hasKeyboardNavigation ? 'default' : 'secondary'}>
754
- {accessibilitySupport.state.hasKeyboardNavigation ? 'Enabled' : 'Disabled'}
755
- </Badge>
756
- </div>
757
- <div className="flex justify-between">
758
- <span className="text-sm">Screen Reader:</span>
759
- <Badge variant={accessibilitySupport.state.hasScreenReaderSupport ? 'default' : 'secondary'}>
760
- {accessibilitySupport.state.hasScreenReaderSupport ? 'Enabled' : 'Disabled'}
761
- </Badge>
762
- </div>
763
- <div className="flex justify-between">
764
- <span className="text-sm">Focus Management:</span>
765
- <Badge variant={accessibilitySupport.state.hasFocusManagement ? 'default' : 'secondary'}>
766
- {accessibilitySupport.state.hasFocusManagement ? 'Enabled' : 'Disabled'}
767
- </Badge>
768
- </div>
769
- </div>
770
- </div>
771
-
772
- <div className="space-y-3">
773
- <h4 className="font-medium">Accessibility Preferences</h4>
774
- <div className="space-y-2">
775
- <div className="flex justify-between">
776
- <span className="text-sm">High Contrast:</span>
777
- <Badge variant={accessibilitySupport.state.isHighContrast ? 'default' : 'secondary'}>
778
- {accessibilitySupport.state.isHighContrast ? 'Enabled' : 'Disabled'}
779
- </Badge>
780
- </div>
781
- <div className="flex justify-between">
782
- <span className="text-sm">Reduced Motion:</span>
783
- <Badge variant={accessibilitySupport.state.isReducedMotion ? 'default' : 'secondary'}>
784
- {accessibilitySupport.state.isReducedMotion ? 'Enabled' : 'Disabled'}
785
- </Badge>
786
- </div>
787
- <div className="flex justify-between">
788
- <span className="text-sm">Voice Control:</span>
789
- <Badge variant={accessibilitySupport.state.isVoiceControlEnabled ? 'default' : 'secondary'}>
790
- {accessibilitySupport.state.isVoiceControlEnabled ? 'Enabled' : 'Disabled'}
791
- </Badge>
792
- </div>
793
- <div className="flex justify-between">
794
- <span className="text-sm">Accessibility Level:</span>
795
- <Badge variant="outline">{accessibilitySupport.state.accessibilityLevel}</Badge>
796
- </div>
797
- </div>
798
- </div>
799
- </div>
800
-
801
- {/* Accessibility Controls */}
802
- <div className="flex gap-2">
803
- <Button
804
- variant="default"
805
- onClick={demonstrateAccessibility}
806
- disabled={accessibilitySupport.isEnhancing}
807
- >
808
- Demonstrate Accessibility
809
- </Button>
810
- <Button
811
- variant="outline"
812
- onClick={() => accessibilitySupport.clearEnhancements()}
813
- >
814
- Clear Enhancements
815
- </Button>
816
- </div>
817
-
818
- {/* Accessibility Analysis */}
819
- <div className="p-3 bg-cs-accent/10 rounded-lg">
820
- <h4 className="font-medium text-sm mb-2">Accessibility Analysis:</h4>
821
- <div className="grid grid-cols-2 gap-4 text-sm">
822
- <div>
823
- <span className="font-medium">Accessibility Level:</span>
824
- <div className="text-cs-text-secondary">
825
- {accessibilitySupport.analyzeAccessibility().level}
826
- </div>
827
- </div>
828
- <div>
829
- <span className="font-medium">Feature Coverage:</span>
830
- <div className="text-cs-text-secondary">
831
- {accessibilitySupport.analyzeAccessibility().coverage.toFixed(1)}%
832
- </div>
833
- </div>
834
- </div>
835
- </div>
836
-
837
- {/* Accessibility Recommendations */}
838
- {accessibilitySupport.analyzeAccessibility().recommendations.length > 0 && (
839
- <div className="p-3 bg-green-50 border border-green-200 rounded-lg">
840
- <h4 className="font-medium text-sm mb-2 text-green-800">Accessibility Recommendations:</h4>
841
- <ul className="text-xs text-green-700 space-y-1">
842
- {accessibilitySupport.analyzeAccessibility().recommendations.map((recommendation, index) => (
843
- <li key={index}>• {recommendation}</li>
844
- ))}
845
- </ul>
846
- </div>
847
- )}
848
-
849
- {/* Accessibility Warnings */}
850
- {accessibilitySupport.accessibilityWarnings.length > 0 && (
851
- <div className="p-3 bg-yellow-50 border border-yellow-200 rounded-lg">
852
- <h4 className="font-medium text-sm mb-2 text-yellow-800">Accessibility Warnings:</h4>
853
- <ul className="text-xs text-yellow-700 space-y-1">
854
- {accessibilitySupport.accessibilityWarnings.map((warning, index) => (
855
- <li key={index}>• {warning}</li>
856
- ))}
857
- </ul>
858
- </div>
859
- )}
860
- </CardContent>
861
- </Card>
862
- )}
863
-
864
- {/* Demo Controls */}
865
- <Card className="border border-cs-border">
866
- <CardHeader>
867
- <CardTitle className="text-lg">Demo Controls</CardTitle>
868
- <CardDescription>
869
- Configure and test different advanced component architecture features
870
- </CardDescription>
871
- </CardHeader>
872
- <CardContent className="space-y-4">
873
- <div className="flex flex-wrap gap-4">
874
- <Button
875
- variant={showPatternDemo ? 'default' : 'outline'}
876
- size="sm"
877
- onClick={() => setShowPatternDemo(!showPatternDemo)}
878
- >
879
- {showPatternDemo ? 'Hide' : 'Show'} Pattern Demo
880
- </Button>
881
- <Button
882
- variant={showPerformanceDemo ? 'default' : 'outline'}
883
- size="sm"
884
- onClick={() => setShowPerformanceDemo(!showPerformanceDemo)}
885
- >
886
- {showPerformanceDemo ? 'Hide' : 'Show'} Performance Demo
887
- </Button>
888
- <Button
889
- variant={showMobileDemo ? 'default' : 'outline'}
890
- size="sm"
891
- onClick={() => setShowMobileDemo(!showMobileDemo)}
892
- >
893
- {showMobileDemo ? 'Hide' : 'Show'} Mobile Demo
894
- </Button>
895
- <Button
896
- variant={showArchitectureDemo ? 'default' : 'outline'}
897
- size="sm"
898
- onClick={() => setShowArchitectureDemo(!showArchitectureDemo)}
899
- >
900
- {showArchitectureDemo ? 'Hide' : 'Show'} Architecture Demo
901
- </Button>
902
- <Button
903
- variant={showAccessibilityDemo ? 'default' : 'outline'}
904
- size="sm"
905
- onClick={() => setShowAccessibilityDemo(!showAccessibilityDemo)}
906
- >
907
- {showAccessibilityDemo ? 'Hide' : 'Show'} Accessibility Demo
908
- </Button>
909
- </div>
910
- </CardContent>
911
- </Card>
912
- </div>
913
- )
914
- }
915
-
916
- export default AdvancedComponentArchitectureDemo
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card';
4
+ import { Badge } from './badge';
5
+ import { Button } from './button';
6
+ import { useAdvancedPatterns } from '../../hooks/use-advanced-patterns';
7
+ import { useComponentPerformance } from '../../hooks/use-component-performance';
8
+ import { useMobileOptimization } from '../../hooks/use-mobile-optimization';
9
+ import { useReusableArchitecture } from '../../hooks/use-reusable-architecture';
10
+ import { useAccessibilitySupport } from '../../hooks/use-accessibility-support';
11
+ export const AdvancedComponentArchitectureDemo = () => {
12
+ const [activeTab, setActiveTab] = useState('patterns');
13
+ const [showPatternDemo, setShowPatternDemo] = useState(true);
14
+ const [showPerformanceDemo, setShowPerformanceDemo] = useState(true);
15
+ const [showMobileDemo, setShowMobileDemo] = useState(true);
16
+ const [showArchitectureDemo, setShowArchitectureDemo] = useState(true);
17
+ const [showAccessibilityDemo, setShowAccessibilityDemo] = useState(true);
18
+ // Hooks
19
+ const advancedPatterns = useAdvancedPatterns({
20
+ enableCompoundComponents: true,
21
+ enableRenderProps: true,
22
+ enableHigherOrderComponents: true,
23
+ enableCustomHooks: true,
24
+ enablePerformanceOptimization: true,
25
+ enableAccessibilitySupport: true
26
+ }, {
27
+ onPatternApplied: (pattern, component) => console.log('Pattern applied:', pattern, component),
28
+ onPerformanceOptimized: (optimization) => console.log('Performance optimized:', optimization),
29
+ onAccessibilityEnhanced: (feature) => console.log('Accessibility enhanced:', feature)
30
+ });
31
+ const componentPerformance = useComponentPerformance({
32
+ enableMemoization: true,
33
+ enableLazyLoading: true,
34
+ enableVirtualization: true,
35
+ enablePerformanceMonitoring: true,
36
+ enableAutoOptimization: true
37
+ }, {
38
+ onPerformanceWarning: (metrics) => console.log('Performance warning:', metrics),
39
+ onOptimizationApplied: (type, component) => console.log('Optimization applied:', type, component),
40
+ onPerformanceImproved: (improvement) => console.log('Performance improved:', improvement),
41
+ onMemoryWarning: (usage) => console.log('Memory warning:', usage)
42
+ });
43
+ const mobileOptimization = useMobileOptimization({
44
+ enableTouchOptimization: true,
45
+ enablePerformanceOptimization: true,
46
+ enableBatteryOptimization: true,
47
+ enableAccessibilityOptimization: true,
48
+ enableResponsiveOptimization: true
49
+ }, {
50
+ onMobileOptimized: (optimization) => console.log('Mobile optimized:', optimization),
51
+ onTouchOptimized: (feature) => console.log('Touch optimized:', feature),
52
+ onPerformanceOptimized: (improvement) => console.log('Performance optimized:', improvement),
53
+ onBatteryOptimized: (strategy) => console.log('Battery optimized:', strategy),
54
+ onAccessibilityEnhanced: (feature) => console.log('Accessibility enhanced:', feature)
55
+ });
56
+ const reusableArchitecture = useReusableArchitecture({
57
+ enableComponentComposition: true,
58
+ enablePatternSharing: true,
59
+ enableStyleSharing: true,
60
+ enableBehaviorSharing: true,
61
+ enableTemplateSystem: true,
62
+ enableComponentRegistry: true
63
+ }, {
64
+ onTemplateCreated: (template) => console.log('Template created:', template),
65
+ onPatternShared: (pattern) => console.log('Pattern shared:', pattern),
66
+ onStyleShared: (style) => console.log('Style shared:', style),
67
+ onBehaviorShared: (behavior) => console.log('Behavior shared:', behavior),
68
+ onArchitectureOptimized: (optimization) => console.log('Architecture optimized:', optimization)
69
+ });
70
+ const accessibilitySupport = useAccessibilitySupport({
71
+ enableAriaSupport: true,
72
+ enableKeyboardNavigation: true,
73
+ enableScreenReaderSupport: true,
74
+ enableFocusManagement: true,
75
+ enableHighContrast: true,
76
+ enableReducedMotion: true,
77
+ enableVoiceControl: true
78
+ }, {
79
+ onAriaEnhanced: (feature) => console.log('ARIA enhanced:', feature),
80
+ onKeyboardNavigationEnabled: (feature) => console.log('Keyboard navigation enabled:', feature),
81
+ onScreenReaderEnhanced: (feature) => console.log('Screen reader enhanced:', feature),
82
+ onFocusManagementImproved: (feature) => console.log('Focus management improved:', feature),
83
+ onAccessibilityWarning: (warning) => console.log('Accessibility warning:', warning)
84
+ });
85
+ // Demo functions
86
+ const demonstratePatterns = useCallback(() => {
87
+ // Demonstrate compound components
88
+ const BaseComponent = () => _jsx("div", { children: "Base Component" });
89
+ const SubComponent = () => _jsx("div", { children: "Sub Component" });
90
+ const compoundComponent = advancedPatterns.createCompoundComponent(BaseComponent, {
91
+ Sub: SubComponent
92
+ });
93
+ // Demonstrate render props
94
+ const renderPropsData = { message: 'Hello from Render Props!' };
95
+ const renderPropsComponent = advancedPatterns.createRenderPropsComponent({
96
+ data: renderPropsData,
97
+ loading: false,
98
+ error: null,
99
+ render: (data) => _jsxs("div", { children: ["Render Props: ", data.message] })
100
+ });
101
+ // Demonstrate higher-order components
102
+ const enhancedComponent = advancedPatterns.createHigherOrderComponent({
103
+ component: BaseComponent,
104
+ props: { enhanced: true },
105
+ enhancers: [
106
+ (Component) => (props) => _jsx("div", { className: "enhanced", children: _jsx(Component, { ...props }) })
107
+ ]
108
+ });
109
+ // Demonstrate custom hooks
110
+ const customHookResult = advancedPatterns.createCustomHook('DemoHook', () => 'Custom Hook Result');
111
+ console.log('Patterns demonstrated:', {
112
+ compoundComponent,
113
+ renderPropsComponent,
114
+ enhancedComponent,
115
+ customHookResult
116
+ });
117
+ }, [advancedPatterns]);
118
+ const demonstratePerformance = useCallback(() => {
119
+ // Demonstrate memoization
120
+ const memoizedValue = componentPerformance.memoizeValue('demo', 'expensive calculation result', ['dependency1', 'dependency2']);
121
+ // Demonstrate lazy loading
122
+ const lazyComponent = componentPerformance.lazyLoadComponent('DemoComponent', () => Promise.resolve({ default: () => _jsx("div", { children: "Lazy Loaded Component" }) }));
123
+ // Demonstrate virtualization
124
+ const items = Array.from({ length: 1000 }, (_, i) => `Item ${i}`);
125
+ const virtualizedList = componentPerformance.createVirtualizedList(items, 50, 400, (item, index) => _jsx("div", { className: "p-2 border", children: item }, index));
126
+ // Demonstrate performance measurement
127
+ const stopMeasurement = componentPerformance.startRenderMeasurement();
128
+ setTimeout(stopMeasurement, 100);
129
+ // Demonstrate auto-optimization
130
+ componentPerformance.autoOptimize('DemoComponent');
131
+ console.log('Performance optimizations demonstrated:', {
132
+ memoizedValue,
133
+ lazyComponent,
134
+ virtualizedList
135
+ });
136
+ }, [componentPerformance]);
137
+ const demonstrateMobileOptimization = useCallback(() => {
138
+ // Demonstrate touch optimization
139
+ mobileOptimization.optimizeTouchTargets();
140
+ // Demonstrate performance optimization
141
+ mobileOptimization.optimizePerformance();
142
+ // Demonstrate battery optimization
143
+ mobileOptimization.optimizeBattery();
144
+ // Demonstrate accessibility optimization
145
+ mobileOptimization.optimizeAccessibility();
146
+ // Demonstrate responsive optimization
147
+ mobileOptimization.optimizeResponsive();
148
+ // Demonstrate component-specific optimization
149
+ mobileOptimization.optimizeComponentForMobile('DemoComponent', 'touch');
150
+ mobileOptimization.optimizeComponentForMobile('DemoComponent', 'performance');
151
+ mobileOptimization.optimizeComponentForMobile('DemoComponent', 'battery');
152
+ mobileOptimization.optimizeComponentForMobile('DemoComponent', 'accessibility');
153
+ mobileOptimization.optimizeComponentForMobile('DemoComponent', 'responsive');
154
+ }, [mobileOptimization]);
155
+ const demonstrateArchitecture = useCallback(() => {
156
+ // Demonstrate component composition
157
+ const BaseComponent = () => _jsx("div", { children: "Base Component" });
158
+ const enhancedComponent = reusableArchitecture.composeComponent(BaseComponent, [
159
+ (Component) => (props) => _jsx("div", { className: "enhanced", children: _jsx(Component, { ...props }) }),
160
+ (Component) => (props) => _jsx("div", { className: "wrapped", children: _jsx(Component, { ...props }) })
161
+ ]);
162
+ // Demonstrate template creation
163
+ const templateId = reusableArchitecture.createTemplate({
164
+ name: 'Demo Template',
165
+ component: BaseComponent,
166
+ props: { demo: true },
167
+ styles: { padding: '1rem' },
168
+ behaviors: ['clickable', 'hoverable'],
169
+ patterns: ['compound', 'enhanced']
170
+ });
171
+ // Demonstrate pattern sharing
172
+ const patternId = reusableArchitecture.sharePattern({
173
+ name: 'Demo Pattern',
174
+ description: 'A demonstration pattern',
175
+ implementation: 'Pattern implementation details',
176
+ usage: ['Component1', 'Component2'],
177
+ category: 'composition'
178
+ });
179
+ // Demonstrate style sharing
180
+ const styleId = reusableArchitecture.shareStyle({
181
+ name: 'Demo Style',
182
+ css: '.demo-style { color: blue; }',
183
+ variables: { '--demo-color': 'blue' },
184
+ breakpoints: { mobile: 'max-width: 768px' },
185
+ usage: ['Component1']
186
+ });
187
+ // Demonstrate behavior sharing
188
+ const behaviorId = reusableArchitecture.shareBehavior({
189
+ name: 'Demo Behavior',
190
+ description: 'A demonstration behavior',
191
+ hook: 'useDemoBehavior',
192
+ dependencies: ['react'],
193
+ usage: ['Component1']
194
+ });
195
+ // Demonstrate component registry
196
+ reusableArchitecture.registerComponent('DemoComponent', BaseComponent, {
197
+ name: 'Demo Component',
198
+ description: 'A demonstration component',
199
+ category: 'demo',
200
+ tags: ['demo', 'example']
201
+ });
202
+ console.log('Architecture demonstrated:', {
203
+ enhancedComponent,
204
+ templateId,
205
+ patternId,
206
+ styleId,
207
+ behaviorId
208
+ });
209
+ }, [reusableArchitecture]);
210
+ const demonstrateAccessibility = useCallback(() => {
211
+ // Demonstrate ARIA support
212
+ accessibilitySupport.enhanceAriaSupport('DemoElement', {
213
+ 'aria-label': 'Demo Element',
214
+ 'aria-describedby': 'demo-description',
215
+ 'role': 'button'
216
+ });
217
+ // Demonstrate keyboard navigation
218
+ accessibilitySupport.enableKeyboardNavigation('DemoElement', {
219
+ 'Enter': 'Activate',
220
+ 'Space': 'Toggle',
221
+ 'Tab': 'Navigate'
222
+ });
223
+ // Demonstrate screen reader support
224
+ accessibilitySupport.enhanceScreenReaderSupport('DemoElement', 'This is a demo element for screen readers');
225
+ // Demonstrate focus management
226
+ accessibilitySupport.improveFocusManagement('DemoElement', 'trap');
227
+ // Demonstrate high contrast
228
+ accessibilitySupport.enableHighContrast();
229
+ // Demonstrate reduced motion
230
+ accessibilitySupport.enableReducedMotion();
231
+ // Demonstrate voice control
232
+ accessibilitySupport.enableVoiceControl();
233
+ // Demonstrate auto-enhancement
234
+ accessibilitySupport.autoEnhanceAccessibility();
235
+ }, [accessibilitySupport]);
236
+ // Auto-demonstrate all features
237
+ useEffect(() => {
238
+ const timer = setTimeout(() => {
239
+ demonstratePatterns();
240
+ demonstratePerformance();
241
+ demonstrateMobileOptimization();
242
+ demonstrateArchitecture();
243
+ demonstrateAccessibility();
244
+ }, 1000);
245
+ return () => clearTimeout(timer);
246
+ }, [demonstratePatterns, demonstratePerformance, demonstrateMobileOptimization, demonstrateArchitecture, demonstrateAccessibility]);
247
+ const tabs = [
248
+ { id: 'patterns', label: 'Advanced Patterns', icon: '🧩' },
249
+ { id: 'performance', label: 'Performance', icon: '⚡' },
250
+ { id: 'mobile', label: 'Mobile Optimization', icon: '📱' },
251
+ { id: 'architecture', label: 'Reusable Architecture', icon: '🏗️' },
252
+ { id: 'accessibility', label: 'Accessibility', icon: '♿' }
253
+ ];
254
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "text-center", children: [_jsx("h1", { className: "text-3xl font-bold text-cs-text-primary mb-2", children: "\uD83C\uDFD7\uFE0F Advanced Component Architecture & Patterns" }), _jsx("p", { className: "text-lg text-cs-text-secondary mb-4", children: "Story 10 Implementation - Sophisticated component patterns, performance optimization, mobile optimization, reusable architecture, and accessibility support" }), _jsxs("div", { className: "flex items-center justify-center gap-2", children: [_jsx(Badge, { variant: "default", children: "Story 10" }), _jsx(Badge, { variant: "outline", children: "Advanced Patterns" }), _jsx(Badge, { variant: "secondary", children: "Performance Optimized" }), _jsx(Badge, { variant: "outline", children: "Mobile First" }), _jsx(Badge, { variant: "secondary", children: "Reusable Architecture" }), _jsx(Badge, { variant: "outline", children: "Accessibility First" })] })] }), _jsx("div", { className: "flex flex-wrap gap-2 border-b pb-4", children: tabs.map((tab) => (_jsxs(Button, { variant: activeTab === tab.id ? 'default' : 'outline', size: "sm", onClick: () => setActiveTab(tab.id), className: "flex items-center gap-2", children: [_jsx("span", { children: tab.icon }), tab.label] }, tab.id))) }), activeTab === 'patterns' && (_jsxs(Card, { className: "border-2 border-cs-primary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83E\uDDE9 Advanced Component Patterns", _jsxs(Badge, { variant: "outline", children: [advancedPatterns.patterns.length, " Patterns"] })] }), _jsx(CardDescription, { children: "Advanced component patterns including compound components, render props, higher-order components, and custom hooks" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Pattern Status" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Compound Components:" }), _jsx(Badge, { variant: advancedPatterns.hasPattern('Compound Components') ? 'default' : 'secondary', children: advancedPatterns.hasPattern('Compound Components') ? 'Active' : 'Inactive' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Render Props:" }), _jsx(Badge, { variant: advancedPatterns.hasPattern('Render Props') ? 'default' : 'secondary', children: advancedPatterns.hasPattern('Render Props') ? 'Active' : 'Inactive' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Higher-Order Components:" }), _jsx(Badge, { variant: advancedPatterns.hasPattern('Higher-Order Components') ? 'default' : 'secondary', children: advancedPatterns.hasPattern('Higher-Order Components') ? 'Active' : 'Inactive' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Custom Hooks:" }), _jsx(Badge, { variant: advancedPatterns.hasPattern('Custom Hooks') ? 'default' : 'secondary', children: advancedPatterns.hasPattern('Custom Hooks') ? 'Active' : 'Inactive' })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Pattern Analysis" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Total Patterns:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: advancedPatterns.patterns.length })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Unique Patterns:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: advancedPatterns.analyzePatterns().uniquePatterns })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Optimization Level:" }), _jsx(Badge, { variant: "outline", children: advancedPatterns.patterns.length > 0 ? 'Optimized' : 'Not Optimized' })] })] })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: demonstratePatterns, disabled: advancedPatterns.isOptimizing, children: "Demonstrate Patterns" }), _jsx(Button, { variant: "outline", onClick: () => advancedPatterns.clearPatterns(), children: "Clear Patterns" })] }), advancedPatterns.getPatternRecommendations().length > 0 && (_jsxs("div", { className: "p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Pattern Recommendations:" }), _jsx("ul", { className: "text-xs text-cs-text-secondary space-y-1", children: advancedPatterns.getPatternRecommendations().map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] })), advancedPatterns.validatePatterns().warnings.length > 0 && (_jsxs("div", { className: "p-3 bg-yellow-50 border border-yellow-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-yellow-800", children: "Pattern Warnings:" }), _jsx("ul", { className: "text-xs text-yellow-700 space-y-1", children: advancedPatterns.validatePatterns().warnings.map((warning, index) => (_jsxs("li", { children: ["\u2022 ", warning] }, index))) })] }))] })] })), activeTab === 'performance' && (_jsxs(Card, { className: "border-2 border-cs-secondary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\u26A1 Component Performance Optimization", _jsx(Badge, { variant: componentPerformance.isPerformanceOptimized() ? 'default' : 'secondary', children: componentPerformance.isPerformanceOptimized() ? 'Optimized' : 'Not Optimized' })] }), _jsx(CardDescription, { children: "Performance optimization including memoization, lazy loading, virtualization, and performance monitoring" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-4 text-center", children: [_jsxs("div", { children: [_jsxs("p", { className: "text-2xl font-bold text-cs-primary", children: [componentPerformance.metrics.renderTime.toFixed(2), "ms"] }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Render Time" })] }), _jsxs("div", { children: [_jsxs("p", { className: "text-2xl font-bold text-cs-secondary", children: [componentPerformance.metrics.memoryUsage.toFixed(1), "%"] }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Memory Usage" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-accent", children: componentPerformance.metrics.reRenderCount }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Re-render Count" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-primary", children: componentPerformance.getPerformanceScore() }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Performance Score" })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: demonstratePerformance, disabled: componentPerformance.isOptimizing, children: "Demonstrate Performance" }), _jsx(Button, { variant: "outline", onClick: () => componentPerformance.clearOptimizations(), children: "Clear Optimizations" })] }), _jsxs("div", { className: "p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Performance Analysis:" }), _jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Needs Optimization:" }), _jsx("div", { className: "text-cs-text-secondary", children: componentPerformance.analyzePerformance().needsOptimization ? 'Yes' : 'No' })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Optimization Score:" }), _jsxs("div", { className: "text-cs-text-secondary", children: [componentPerformance.analyzePerformance().optimizationScore.toFixed(1), "%"] })] })] })] }), componentPerformance.analyzePerformance().recommendations.length > 0 && (_jsxs("div", { className: "p-3 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-blue-800", children: "Performance Recommendations:" }), _jsx("ul", { className: "text-xs text-blue-700 space-y-1", children: componentPerformance.analyzePerformance().recommendations.map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] }))] })] })), activeTab === 'mobile' && (_jsxs(Card, { className: "border-2 border-cs-accent", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83D\uDCF1 Mobile Optimization", _jsx(Badge, { variant: mobileOptimization.isMobileOptimized() ? 'default' : 'secondary', children: mobileOptimization.isMobileOptimized() ? 'Optimized' : 'Not Optimized' })] }), _jsx(CardDescription, { children: "Mobile-specific optimizations including touch optimization, performance optimization, battery optimization, and accessibility optimization" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Device Information" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Device Type:" }), _jsx(Badge, { variant: mobileOptimization.state.isMobile ? 'default' : 'secondary', children: mobileOptimization.state.isMobile ? 'Mobile' : 'Desktop' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Touch Device:" }), _jsx(Badge, { variant: mobileOptimization.state.isTouchDevice ? 'default' : 'secondary', children: mobileOptimization.state.isTouchDevice ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Screen Size:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.state.screenSize })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Orientation:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.state.orientation })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Optimization Status" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Touch Optimized:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.analyzeMobileOptimization().touchOptimized ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Performance Optimized:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.analyzeMobileOptimization().performanceOptimized ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Battery Optimized:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.analyzeMobileOptimization().batteryOptimized ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Accessibility Optimized:" }), _jsx(Badge, { variant: "outline", children: mobileOptimization.analyzeMobileOptimization().accessibilityOptimized ? 'Yes' : 'No' })] })] })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: demonstrateMobileOptimization, disabled: mobileOptimization.isOptimizing, children: "Demonstrate Mobile Optimization" }), _jsx(Button, { variant: "outline", onClick: () => mobileOptimization.clearOptimizations(), children: "Clear Optimizations" })] }), mobileOptimization.analyzeMobileOptimization().recommendations.length > 0 && (_jsxs("div", { className: "p-3 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-green-800", children: "Mobile Optimization Recommendations:" }), _jsx("ul", { className: "text-xs text-green-700 space-y-1", children: mobileOptimization.analyzeMobileOptimization().recommendations.map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] }))] })] })), activeTab === 'architecture' && (_jsxs(Card, { className: "border-2 border-cs-primary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83C\uDFD7\uFE0F Reusable Component Architecture", _jsxs(Badge, { variant: "outline", children: [reusableArchitecture.templates.length, " Templates"] })] }), _jsx(CardDescription, { children: "Reusable component architecture including component composition, pattern sharing, style sharing, and behavior sharing" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-4 text-center", children: [_jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-primary", children: reusableArchitecture.templates.length }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Templates" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-secondary", children: reusableArchitecture.sharedPatterns.length }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Shared Patterns" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-accent", children: reusableArchitecture.sharedStyles.length }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Shared Styles" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-primary", children: reusableArchitecture.sharedBehaviors.length }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Shared Behaviors" })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: demonstrateArchitecture, disabled: reusableArchitecture.isOptimizing, children: "Demonstrate Architecture" }), _jsx(Button, { variant: "outline", onClick: () => reusableArchitecture.clearOptimizations(), children: "Clear Optimizations" })] }), _jsxs("div", { className: "p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Architecture Analysis:" }), _jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Composition Level:" }), _jsx("div", { className: "text-cs-text-secondary", children: reusableArchitecture.analyzeArchitecture().compositionLevel })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Reusability Score:" }), _jsxs("div", { className: "text-cs-text-secondary", children: [reusableArchitecture.analyzeArchitecture().reusabilityScore.toFixed(1), "%"] })] })] })] }), reusableArchitecture.analyzeArchitecture().recommendations.length > 0 && (_jsxs("div", { className: "p-3 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-blue-800", children: "Architecture Recommendations:" }), _jsx("ul", { className: "text-xs text-blue-700 space-y-1", children: reusableArchitecture.analyzeArchitecture().recommendations.map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] }))] })] })), activeTab === 'accessibility' && (_jsxs(Card, { className: "border-2 border-cs-secondary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\u267F Accessibility Support", _jsx(Badge, { variant: accessibilitySupport.isAccessibilityEnhanced() ? 'default' : 'secondary', children: accessibilitySupport.isAccessibilityEnhanced() ? 'Enhanced' : 'Basic' })] }), _jsx(CardDescription, { children: "Accessibility support including ARIA support, keyboard navigation, screen reader support, and focus management" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Accessibility Features" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "ARIA Support:" }), _jsx(Badge, { variant: accessibilitySupport.state.hasAriaLabels ? 'default' : 'secondary', children: accessibilitySupport.state.hasAriaLabels ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Keyboard Navigation:" }), _jsx(Badge, { variant: accessibilitySupport.state.hasKeyboardNavigation ? 'default' : 'secondary', children: accessibilitySupport.state.hasKeyboardNavigation ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Screen Reader:" }), _jsx(Badge, { variant: accessibilitySupport.state.hasScreenReaderSupport ? 'default' : 'secondary', children: accessibilitySupport.state.hasScreenReaderSupport ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Focus Management:" }), _jsx(Badge, { variant: accessibilitySupport.state.hasFocusManagement ? 'default' : 'secondary', children: accessibilitySupport.state.hasFocusManagement ? 'Enabled' : 'Disabled' })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Accessibility Preferences" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "High Contrast:" }), _jsx(Badge, { variant: accessibilitySupport.state.isHighContrast ? 'default' : 'secondary', children: accessibilitySupport.state.isHighContrast ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Reduced Motion:" }), _jsx(Badge, { variant: accessibilitySupport.state.isReducedMotion ? 'default' : 'secondary', children: accessibilitySupport.state.isReducedMotion ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Voice Control:" }), _jsx(Badge, { variant: accessibilitySupport.state.isVoiceControlEnabled ? 'default' : 'secondary', children: accessibilitySupport.state.isVoiceControlEnabled ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Accessibility Level:" }), _jsx(Badge, { variant: "outline", children: accessibilitySupport.state.accessibilityLevel })] })] })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: demonstrateAccessibility, disabled: accessibilitySupport.isEnhancing, children: "Demonstrate Accessibility" }), _jsx(Button, { variant: "outline", onClick: () => accessibilitySupport.clearEnhancements(), children: "Clear Enhancements" })] }), _jsxs("div", { className: "p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Accessibility Analysis:" }), _jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Accessibility Level:" }), _jsx("div", { className: "text-cs-text-secondary", children: accessibilitySupport.analyzeAccessibility().level })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Feature Coverage:" }), _jsxs("div", { className: "text-cs-text-secondary", children: [accessibilitySupport.analyzeAccessibility().coverage.toFixed(1), "%"] })] })] })] }), accessibilitySupport.analyzeAccessibility().recommendations.length > 0 && (_jsxs("div", { className: "p-3 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-green-800", children: "Accessibility Recommendations:" }), _jsx("ul", { className: "text-xs text-green-700 space-y-1", children: accessibilitySupport.analyzeAccessibility().recommendations.map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] })), accessibilitySupport.accessibilityWarnings.length > 0 && (_jsxs("div", { className: "p-3 bg-yellow-50 border border-yellow-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2 text-yellow-800", children: "Accessibility Warnings:" }), _jsx("ul", { className: "text-xs text-yellow-700 space-y-1", children: accessibilitySupport.accessibilityWarnings.map((warning, index) => (_jsxs("li", { children: ["\u2022 ", warning] }, index))) })] }))] })] })), _jsxs(Card, { className: "border border-cs-border", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { className: "text-lg", children: "Demo Controls" }), _jsx(CardDescription, { children: "Configure and test different advanced component architecture features" })] }), _jsx(CardContent, { className: "space-y-4", children: _jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsxs(Button, { variant: showPatternDemo ? 'default' : 'outline', size: "sm", onClick: () => setShowPatternDemo(!showPatternDemo), children: [showPatternDemo ? 'Hide' : 'Show', " Pattern Demo"] }), _jsxs(Button, { variant: showPerformanceDemo ? 'default' : 'outline', size: "sm", onClick: () => setShowPerformanceDemo(!showPerformanceDemo), children: [showPerformanceDemo ? 'Hide' : 'Show', " Performance Demo"] }), _jsxs(Button, { variant: showMobileDemo ? 'default' : 'outline', size: "sm", onClick: () => setShowMobileDemo(!showMobileDemo), children: [showMobileDemo ? 'Hide' : 'Show', " Mobile Demo"] }), _jsxs(Button, { variant: showArchitectureDemo ? 'default' : 'outline', size: "sm", onClick: () => setShowArchitectureDemo(!showArchitectureDemo), children: [showArchitectureDemo ? 'Hide' : 'Show', " Architecture Demo"] }), _jsxs(Button, { variant: showAccessibilityDemo ? 'default' : 'outline', size: "sm", onClick: () => setShowAccessibilityDemo(!showAccessibilityDemo), children: [showAccessibilityDemo ? 'Hide' : 'Show', " Accessibility Demo"] })] }) })] })] }));
255
+ };
256
+ export default AdvancedComponentArchitectureDemo;