@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.11 → 0.2.17
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.
- package/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.d.ts +5 -257
- package/dist/components/ui/accessibility-demo.d.ts.map +1 -0
- package/dist/components/ui/accessibility-demo.esm.js +80 -258
- package/dist/components/ui/accessibility-demo.js +80 -258
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +4 -718
- package/dist/components/ui/advanced-component-architecture-demo.d.ts.map +1 -0
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +256 -916
- package/dist/components/ui/advanced-component-architecture-demo.js +256 -916
- package/dist/components/ui/advanced-transition-system-demo.d.ts +3 -660
- package/dist/components/ui/advanced-transition-system-demo.d.ts.map +1 -0
- package/dist/components/ui/advanced-transition-system-demo.esm.js +59 -670
- package/dist/components/ui/advanced-transition-system-demo.js +59 -670
- package/dist/components/ui/advanced-transition-system.d.ts +35 -381
- package/dist/components/ui/advanced-transition-system.d.ts.map +1 -0
- package/dist/components/ui/advanced-transition-system.esm.js +194 -378
- package/dist/components/ui/advanced-transition-system.js +194 -378
- package/dist/components/ui/animation/animated-container.d.ts +11 -160
- package/dist/components/ui/animation/animated-container.d.ts.map +1 -0
- package/dist/components/ui/animation/animated-container.esm.js +98 -159
- package/dist/components/ui/animation/animated-container.js +98 -159
- package/dist/components/ui/animation/index.d.ts +7 -9
- package/dist/components/ui/animation/index.d.ts.map +1 -0
- package/dist/components/ui/animation/index.esm.js +3 -18
- package/dist/components/ui/animation/index.js +3 -18
- package/dist/components/ui/animation/staggered-container.d.ts +8 -62
- package/dist/components/ui/animation/staggered-container.d.ts.map +1 -0
- package/dist/components/ui/animation/staggered-container.esm.js +37 -68
- package/dist/components/ui/animation/staggered-container.js +37 -68
- package/dist/components/ui/animation-demo.d.ts +3 -238
- package/dist/components/ui/animation-demo.d.ts.map +1 -0
- package/dist/components/ui/animation-demo.esm.js +30 -250
- package/dist/components/ui/animation-demo.js +30 -250
- package/dist/components/ui/badge.d.ts +9 -27
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.esm.js +15 -28
- package/dist/components/ui/badge.js +15 -28
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +4 -561
- package/dist/components/ui/battery-conscious-animation-demo.d.ts.map +1 -0
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +136 -565
- package/dist/components/ui/battery-conscious-animation-demo.js +136 -565
- package/dist/components/ui/border-radius-shadow-demo.d.ts +3 -183
- package/dist/components/ui/border-radius-shadow-demo.d.ts.map +1 -0
- package/dist/components/ui/border-radius-shadow-demo.esm.js +3 -184
- package/dist/components/ui/border-radius-shadow-demo.js +3 -184
- package/dist/components/ui/button.d.ts +8 -32
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.esm.js +14 -33
- package/dist/components/ui/button.js +14 -33
- package/dist/components/ui/card.d.ts +25 -193
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.esm.js +74 -188
- package/dist/components/ui/card.js +74 -188
- package/dist/components/ui/checkbox.d.ts +6 -24
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.esm.js +11 -30
- package/dist/components/ui/checkbox.js +11 -30
- package/dist/components/ui/color-preview.d.ts +12 -398
- package/dist/components/ui/color-preview.d.ts.map +1 -0
- package/dist/components/ui/color-preview.esm.js +50 -405
- package/dist/components/ui/color-preview.js +50 -405
- package/dist/components/ui/data-display/chart.d.ts +4 -645
- package/dist/components/ui/data-display/chart.d.ts.map +1 -0
- package/dist/components/ui/data-display/chart.esm.js +210 -632
- package/dist/components/ui/data-display/chart.js +210 -632
- package/dist/components/ui/data-display/data-grid-simple.d.ts +5 -73
- package/dist/components/ui/data-display/data-grid-simple.d.ts.map +1 -0
- package/dist/components/ui/data-display/data-grid-simple.esm.js +16 -74
- package/dist/components/ui/data-display/data-grid-simple.js +16 -74
- package/dist/components/ui/data-display/data-grid.d.ts +4 -669
- package/dist/components/ui/data-display/data-grid.d.ts.map +1 -0
- package/dist/components/ui/data-display/data-grid.esm.js +173 -661
- package/dist/components/ui/data-display/data-grid.js +173 -661
- package/dist/components/ui/data-display/list.d.ts +4 -447
- package/dist/components/ui/data-display/list.d.ts.map +1 -0
- package/dist/components/ui/data-display/list.esm.js +88 -446
- package/dist/components/ui/data-display/list.js +88 -446
- package/dist/components/ui/data-display/table.d.ts +4 -471
- package/dist/components/ui/data-display/table.d.ts.map +1 -0
- package/dist/components/ui/data-display/table.esm.js +109 -468
- package/dist/components/ui/data-display/table.js +109 -468
- package/dist/components/ui/data-display/timeline.d.ts +4 -432
- package/dist/components/ui/data-display/timeline.d.ts.map +1 -0
- package/dist/components/ui/data-display/timeline.esm.js +92 -431
- package/dist/components/ui/data-display/timeline.js +92 -431
- package/dist/components/ui/data-display/tree.d.ts +4 -593
- package/dist/components/ui/data-display/tree.d.ts.map +1 -0
- package/dist/components/ui/data-display/tree.esm.js +211 -585
- package/dist/components/ui/data-display/tree.js +211 -585
- package/dist/components/ui/data-display/types.d.ts +418 -471
- package/dist/components/ui/data-display/types.d.ts.map +1 -0
- package/dist/components/ui/data-display/types.esm.js +1 -530
- package/dist/components/ui/data-display/types.js +1 -530
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +3 -735
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts.map +1 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +76 -749
- package/dist/components/ui/enterprise-mobile-experience-demo.js +76 -749
- package/dist/components/ui/enterprise-mobile-experience.d.ts +52 -441
- package/dist/components/ui/enterprise-mobile-experience.d.ts.map +1 -0
- package/dist/components/ui/enterprise-mobile-experience.esm.js +152 -460
- package/dist/components/ui/enterprise-mobile-experience.js +152 -460
- package/dist/components/ui/feedback/alert.d.ts +4 -153
- package/dist/components/ui/feedback/alert.d.ts.map +1 -0
- package/dist/components/ui/feedback/alert.esm.js +40 -148
- package/dist/components/ui/feedback/alert.js +40 -148
- package/dist/components/ui/feedback/progress.d.ts +4 -287
- package/dist/components/ui/feedback/progress.d.ts.map +1 -0
- package/dist/components/ui/feedback/progress.esm.js +74 -278
- package/dist/components/ui/feedback/progress.js +74 -278
- package/dist/components/ui/feedback/skeleton.d.ts +7 -181
- package/dist/components/ui/feedback/skeleton.d.ts.map +1 -0
- package/dist/components/ui/feedback/skeleton.esm.js +64 -173
- package/dist/components/ui/feedback/skeleton.js +64 -173
- package/dist/components/ui/feedback/toast.d.ts +7 -276
- package/dist/components/ui/feedback/toast.d.ts.map +1 -0
- package/dist/components/ui/feedback/toast.esm.js +86 -225
- package/dist/components/ui/feedback/toast.js +86 -225
- package/dist/components/ui/feedback/types.d.ts +85 -99
- package/dist/components/ui/feedback/types.d.ts.map +1 -0
- package/dist/components/ui/feedback/types.esm.js +1 -125
- package/dist/components/ui/feedback/types.js +1 -125
- package/dist/components/ui/font-preview.d.ts +11 -278
- package/dist/components/ui/font-preview.d.ts.map +1 -0
- package/dist/components/ui/font-preview.esm.js +56 -283
- package/dist/components/ui/font-preview.js +56 -283
- package/dist/components/ui/form-demo.d.ts +4 -544
- package/dist/components/ui/form-demo.d.ts.map +1 -0
- package/dist/components/ui/form-demo.esm.js +191 -553
- package/dist/components/ui/form-demo.js +191 -553
- package/dist/components/ui/hardware-acceleration-demo.d.ts +4 -540
- package/dist/components/ui/hardware-acceleration-demo.d.ts.map +1 -0
- package/dist/components/ui/hardware-acceleration-demo.esm.js +103 -544
- package/dist/components/ui/hardware-acceleration-demo.js +103 -544
- package/dist/components/ui/input.d.ts +8 -32
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.esm.js +13 -32
- package/dist/components/ui/input.js +13 -32
- package/dist/components/ui/label.d.ts +5 -13
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.esm.js +6 -16
- package/dist/components/ui/label.js +6 -16
- package/dist/components/ui/layout-demo.d.ts +4 -352
- package/dist/components/ui/layout-demo.d.ts.map +1 -0
- package/dist/components/ui/layout-demo.esm.js +76 -367
- package/dist/components/ui/layout-demo.js +76 -367
- package/dist/components/ui/layouts/adaptive-layout.d.ts +14 -130
- package/dist/components/ui/layouts/adaptive-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/adaptive-layout.esm.js +60 -139
- package/dist/components/ui/layouts/adaptive-layout.js +60 -139
- package/dist/components/ui/layouts/desktop-layout.d.ts +13 -217
- package/dist/components/ui/layouts/desktop-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/desktop-layout.esm.js +39 -224
- package/dist/components/ui/layouts/desktop-layout.js +39 -224
- package/dist/components/ui/layouts/index.d.ts +9 -5
- package/dist/components/ui/layouts/index.d.ts.map +1 -0
- package/dist/components/ui/layouts/index.esm.js +4 -10
- package/dist/components/ui/layouts/index.js +4 -10
- package/dist/components/ui/layouts/mobile-layout.d.ts +12 -156
- package/dist/components/ui/layouts/mobile-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/mobile-layout.esm.js +49 -162
- package/dist/components/ui/layouts/mobile-layout.js +49 -162
- package/dist/components/ui/layouts/tablet-layout.d.ts +12 -190
- package/dist/components/ui/layouts/tablet-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/tablet-layout.esm.js +53 -197
- package/dist/components/ui/layouts/tablet-layout.js +53 -197
- package/dist/components/ui/mobile-form-validation.d.ts +28 -435
- package/dist/components/ui/mobile-form-validation.d.ts.map +1 -0
- package/dist/components/ui/mobile-form-validation.esm.js +185 -420
- package/dist/components/ui/mobile-form-validation.js +185 -420
- package/dist/components/ui/mobile-input-demo.d.ts +3 -197
- package/dist/components/ui/mobile-input-demo.d.ts.map +1 -0
- package/dist/components/ui/mobile-input-demo.esm.js +11 -198
- package/dist/components/ui/mobile-input-demo.js +11 -198
- package/dist/components/ui/mobile-input.d.ts +61 -268
- package/dist/components/ui/mobile-input.d.ts.map +1 -0
- package/dist/components/ui/mobile-input.esm.js +187 -270
- package/dist/components/ui/mobile-input.js +187 -270
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +4 -628
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts.map +1 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +144 -638
- package/dist/components/ui/mobile-skeleton-loading-demo.js +144 -638
- package/dist/components/ui/navigation/breadcrumb.d.ts +8 -148
- package/dist/components/ui/navigation/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/navigation/breadcrumb.esm.js +51 -154
- package/dist/components/ui/navigation/breadcrumb.js +51 -154
- package/dist/components/ui/navigation/index.d.ts +12 -25
- package/dist/components/ui/navigation/index.d.ts.map +1 -0
- package/dist/components/ui/navigation/index.esm.js +0 -3
- package/dist/components/ui/navigation/index.js +0 -3
- package/dist/components/ui/navigation/menu.d.ts +8 -365
- package/dist/components/ui/navigation/menu.d.ts.map +1 -0
- package/dist/components/ui/navigation/menu.esm.js +178 -365
- package/dist/components/ui/navigation/menu.js +178 -365
- package/dist/components/ui/navigation/navigation-demo.d.ts +7 -168
- package/dist/components/ui/navigation/navigation-demo.d.ts.map +1 -0
- package/dist/components/ui/navigation/navigation-demo.esm.js +130 -315
- package/dist/components/ui/navigation/navigation-demo.js +130 -315
- package/dist/components/ui/navigation/pagination.d.ts +8 -260
- package/dist/components/ui/navigation/pagination.d.ts.map +1 -0
- package/dist/components/ui/navigation/pagination.esm.js +142 -264
- package/dist/components/ui/navigation/pagination.js +142 -264
- package/dist/components/ui/navigation/sidebar.d.ts +8 -374
- package/dist/components/ui/navigation/sidebar.d.ts.map +1 -0
- package/dist/components/ui/navigation/sidebar.esm.js +156 -368
- package/dist/components/ui/navigation/sidebar.js +156 -368
- package/dist/components/ui/navigation/stepper.d.ts +8 -293
- package/dist/components/ui/navigation/stepper.d.ts.map +1 -0
- package/dist/components/ui/navigation/stepper.esm.js +131 -295
- package/dist/components/ui/navigation/stepper.js +131 -295
- package/dist/components/ui/navigation/tabs.d.ts +8 -195
- package/dist/components/ui/navigation/tabs.d.ts.map +1 -0
- package/dist/components/ui/navigation/tabs.esm.js +89 -198
- package/dist/components/ui/navigation/tabs.js +89 -198
- package/dist/components/ui/navigation/types.d.ts +216 -254
- package/dist/components/ui/navigation/types.d.ts.map +1 -0
- package/dist/components/ui/navigation/types.esm.js +1 -295
- package/dist/components/ui/navigation/types.js +1 -295
- package/dist/components/ui/overlay/backdrop.d.ts +12 -76
- package/dist/components/ui/overlay/backdrop.d.ts.map +1 -0
- package/dist/components/ui/overlay/backdrop.esm.js +39 -78
- package/dist/components/ui/overlay/backdrop.js +39 -78
- package/dist/components/ui/overlay/focus-manager.d.ts +10 -138
- package/dist/components/ui/overlay/focus-manager.d.ts.map +1 -0
- package/dist/components/ui/overlay/focus-manager.esm.js +96 -140
- package/dist/components/ui/overlay/focus-manager.js +96 -140
- package/dist/components/ui/overlay/index.d.ts +10 -27
- package/dist/components/ui/overlay/index.d.ts.map +1 -0
- package/dist/components/ui/overlay/index.esm.js +0 -5
- package/dist/components/ui/overlay/index.js +0 -5
- package/dist/components/ui/overlay/modal.d.ts +7 -261
- package/dist/components/ui/overlay/modal.d.ts.map +1 -0
- package/dist/components/ui/overlay/modal.esm.js +94 -249
- package/dist/components/ui/overlay/modal.js +94 -249
- package/dist/components/ui/overlay/overlay-manager.d.ts +13 -104
- package/dist/components/ui/overlay/overlay-manager.d.ts.map +1 -0
- package/dist/components/ui/overlay/overlay-manager.esm.js +60 -100
- package/dist/components/ui/overlay/overlay-manager.js +60 -100
- package/dist/components/ui/overlay/popover.d.ts +8 -449
- package/dist/components/ui/overlay/popover.d.ts.map +1 -0
- package/dist/components/ui/overlay/popover.esm.js +258 -438
- package/dist/components/ui/overlay/popover.js +258 -438
- package/dist/components/ui/overlay/portal.d.ts +4 -74
- package/dist/components/ui/overlay/portal.d.ts.map +1 -0
- package/dist/components/ui/overlay/portal.esm.js +45 -74
- package/dist/components/ui/overlay/portal.js +45 -74
- package/dist/components/ui/overlay/tooltip.d.ts +5 -297
- package/dist/components/ui/overlay/tooltip.d.ts.map +1 -0
- package/dist/components/ui/overlay/tooltip.esm.js +202 -288
- package/dist/components/ui/overlay/tooltip.js +202 -288
- package/dist/components/ui/overlay/types.d.ts +144 -167
- package/dist/components/ui/overlay/types.d.ts.map +1 -0
- package/dist/components/ui/overlay/types.esm.js +1 -196
- package/dist/components/ui/overlay/types.js +1 -196
- package/dist/components/ui/performance-demo.d.ts +3 -583
- package/dist/components/ui/performance-demo.d.ts.map +1 -0
- package/dist/components/ui/performance-demo.esm.js +110 -596
- package/dist/components/ui/performance-demo.js +110 -596
- package/dist/components/ui/semantic-input-system-demo.d.ts +3 -490
- package/dist/components/ui/semantic-input-system-demo.d.ts.map +1 -0
- package/dist/components/ui/semantic-input-system-demo.esm.js +87 -501
- package/dist/components/ui/semantic-input-system-demo.js +87 -501
- package/dist/components/ui/theme-customizer.d.ts +19 -370
- package/dist/components/ui/theme-customizer.d.ts.map +1 -0
- package/dist/components/ui/theme-customizer.esm.js +123 -371
- package/dist/components/ui/theme-customizer.js +123 -371
- package/dist/components/ui/theme-preview.d.ts +9 -303
- package/dist/components/ui/theme-preview.d.ts.map +1 -0
- package/dist/components/ui/theme-preview.esm.js +44 -306
- package/dist/components/ui/theme-preview.js +44 -306
- package/dist/components/ui/theme-switcher.d.ts +9 -257
- package/dist/components/ui/theme-switcher.d.ts.map +1 -0
- package/dist/components/ui/theme-switcher.esm.js +79 -258
- package/dist/components/ui/theme-switcher.js +79 -258
- package/dist/components/ui/theme-toggle.d.ts +3 -34
- package/dist/components/ui/theme-toggle.d.ts.map +1 -0
- package/dist/components/ui/theme-toggle.esm.js +22 -35
- package/dist/components/ui/theme-toggle.js +22 -35
- package/dist/components/ui/token-demo.d.ts +3 -188
- package/dist/components/ui/token-demo.d.ts.map +1 -0
- package/dist/components/ui/token-demo.esm.js +42 -189
- package/dist/components/ui/token-demo.js +42 -189
- package/dist/components/ui/touch-demo.d.ts +3 -455
- package/dist/components/ui/touch-demo.d.ts.map +1 -0
- package/dist/components/ui/touch-demo.esm.js +96 -462
- package/dist/components/ui/touch-demo.js +96 -462
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +3 -512
- package/dist/components/ui/touch-friendly-interface-demo.d.ts.map +1 -0
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +63 -519
- package/dist/components/ui/touch-friendly-interface-demo.js +63 -519
- package/dist/components/ui/touch-friendly-interface.d.ts +21 -282
- package/dist/components/ui/touch-friendly-interface.d.ts.map +1 -0
- package/dist/components/ui/touch-friendly-interface.esm.js +103 -281
- package/dist/components/ui/touch-friendly-interface.js +103 -281
- package/dist/hooks/index.d.ts +47 -161
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.esm.js +23 -181
- package/dist/hooks/index.js +23 -181
- package/dist/hooks/use-accessibility-support.d.ts +66 -508
- package/dist/hooks/use-accessibility-support.d.ts.map +1 -0
- package/dist/hooks/use-accessibility-support.esm.js +377 -518
- package/dist/hooks/use-accessibility-support.js +377 -518
- package/dist/hooks/use-adaptive-layout.d.ts +51 -281
- package/dist/hooks/use-adaptive-layout.d.ts.map +1 -0
- package/dist/hooks/use-adaptive-layout.esm.js +212 -287
- package/dist/hooks/use-adaptive-layout.js +212 -287
- package/dist/hooks/use-advanced-patterns.d.ts +78 -282
- package/dist/hooks/use-advanced-patterns.d.ts.map +1 -0
- package/dist/hooks/use-advanced-patterns.esm.js +185 -293
- package/dist/hooks/use-advanced-patterns.js +185 -293
- package/dist/hooks/use-advanced-transition-system.d.ts +51 -382
- package/dist/hooks/use-advanced-transition-system.d.ts.map +1 -0
- package/dist/hooks/use-advanced-transition-system.esm.js +286 -392
- package/dist/hooks/use-advanced-transition-system.js +286 -392
- package/dist/hooks/use-animation-profile.d.ts +39 -279
- package/dist/hooks/use-animation-profile.d.ts.map +1 -0
- package/dist/hooks/use-animation-profile.esm.js +221 -283
- package/dist/hooks/use-animation-profile.js +221 -283
- package/dist/hooks/use-battery-animations.d.ts +47 -376
- package/dist/hooks/use-battery-animations.d.ts.map +1 -0
- package/dist/hooks/use-battery-animations.esm.js +310 -384
- package/dist/hooks/use-battery-animations.js +310 -384
- package/dist/hooks/use-battery-conscious-loading.d.ts +50 -465
- package/dist/hooks/use-battery-conscious-loading.d.ts.map +1 -0
- package/dist/hooks/use-battery-conscious-loading.esm.js +374 -468
- package/dist/hooks/use-battery-conscious-loading.js +374 -468
- package/dist/hooks/use-battery-optimization.d.ts +39 -322
- package/dist/hooks/use-battery-optimization.d.ts.map +1 -0
- package/dist/hooks/use-battery-optimization.esm.js +267 -329
- package/dist/hooks/use-battery-optimization.js +267 -329
- package/dist/hooks/use-battery-status.d.ts +49 -289
- package/dist/hooks/use-battery-status.d.ts.map +1 -0
- package/dist/hooks/use-battery-status.esm.js +213 -293
- package/dist/hooks/use-battery-status.js +213 -293
- package/dist/hooks/use-component-performance.d.ts +60 -336
- package/dist/hooks/use-component-performance.d.ts.map +1 -0
- package/dist/hooks/use-component-performance.esm.js +235 -341
- package/dist/hooks/use-component-performance.js +235 -341
- package/dist/hooks/use-device-loading-states.d.ts +53 -448
- package/dist/hooks/use-device-loading-states.d.ts.map +1 -0
- package/dist/hooks/use-device-loading-states.esm.js +356 -457
- package/dist/hooks/use-device-loading-states.js +356 -457
- package/dist/hooks/use-device.d.ts +18 -102
- package/dist/hooks/use-device.d.ts.map +1 -0
- package/dist/hooks/use-device.esm.js +77 -102
- package/dist/hooks/use-device.js +77 -102
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +72 -474
- package/dist/hooks/use-enterprise-mobile-experience.d.ts.map +1 -0
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +349 -487
- package/dist/hooks/use-enterprise-mobile-experience.js +349 -487
- package/dist/hooks/use-form-feedback.d.ts +81 -391
- package/dist/hooks/use-form-feedback.d.ts.map +1 -0
- package/dist/hooks/use-form-feedback.esm.js +313 -398
- package/dist/hooks/use-form-feedback.js +313 -398
- package/dist/hooks/use-form-performance.d.ts +78 -501
- package/dist/hooks/use-form-performance.d.ts.map +1 -0
- package/dist/hooks/use-form-performance.esm.js +407 -500
- package/dist/hooks/use-form-performance.js +407 -500
- package/dist/hooks/use-frame-rate.d.ts +39 -241
- package/dist/hooks/use-frame-rate.d.ts.map +1 -0
- package/dist/hooks/use-frame-rate.esm.js +178 -251
- package/dist/hooks/use-frame-rate.js +178 -251
- package/dist/hooks/use-gestures.d.ts +84 -326
- package/dist/hooks/use-gestures.d.ts.map +1 -0
- package/dist/hooks/use-gestures.esm.js +230 -332
- package/dist/hooks/use-gestures.js +230 -332
- package/dist/hooks/use-hardware-acceleration.d.ts +45 -331
- package/dist/hooks/use-hardware-acceleration.d.ts.map +1 -0
- package/dist/hooks/use-hardware-acceleration.esm.js +246 -339
- package/dist/hooks/use-hardware-acceleration.js +246 -339
- package/dist/hooks/use-input-accessibility.d.ts +50 -443
- package/dist/hooks/use-input-accessibility.d.ts.map +1 -0
- package/dist/hooks/use-input-accessibility.esm.js +350 -454
- package/dist/hooks/use-input-accessibility.js +350 -454
- package/dist/hooks/use-input-performance.d.ts +47 -495
- package/dist/hooks/use-input-performance.d.ts.map +1 -0
- package/dist/hooks/use-input-performance.esm.js +419 -502
- package/dist/hooks/use-input-performance.js +419 -502
- package/dist/hooks/use-layout-performance.d.ts +33 -311
- package/dist/hooks/use-layout-performance.d.ts.map +1 -0
- package/dist/hooks/use-layout-performance.esm.js +233 -319
- package/dist/hooks/use-layout-performance.js +233 -319
- package/dist/hooks/use-loading-accessibility.d.ts +54 -524
- package/dist/hooks/use-loading-accessibility.d.ts.map +1 -0
- package/dist/hooks/use-loading-accessibility.esm.js +421 -531
- package/dist/hooks/use-loading-accessibility.js +421 -531
- package/dist/hooks/use-loading-performance.d.ts +43 -463
- package/dist/hooks/use-loading-performance.d.ts.map +1 -0
- package/dist/hooks/use-loading-performance.esm.js +398 -469
- package/dist/hooks/use-loading-performance.js +398 -469
- package/dist/hooks/use-memory-usage.d.ts +43 -277
- package/dist/hooks/use-memory-usage.d.ts.map +1 -0
- package/dist/hooks/use-memory-usage.esm.js +211 -287
- package/dist/hooks/use-memory-usage.js +211 -287
- package/dist/hooks/use-mobile-form-layout.d.ts +116 -451
- package/dist/hooks/use-mobile-form-layout.d.ts.map +1 -0
- package/dist/hooks/use-mobile-form-layout.esm.js +365 -458
- package/dist/hooks/use-mobile-form-layout.js +365 -458
- package/dist/hooks/use-mobile-form-validation.d.ts +87 -503
- package/dist/hooks/use-mobile-form-validation.d.ts.map +1 -0
- package/dist/hooks/use-mobile-form-validation.esm.js +384 -497
- package/dist/hooks/use-mobile-form-validation.js +384 -497
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +62 -461
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts.map +1 -0
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +354 -468
- package/dist/hooks/use-mobile-keyboard-optimization.js +354 -468
- package/dist/hooks/use-mobile-layout.d.ts +48 -292
- package/dist/hooks/use-mobile-layout.d.ts.map +1 -0
- package/dist/hooks/use-mobile-layout.esm.js +207 -294
- package/dist/hooks/use-mobile-layout.js +207 -294
- package/dist/hooks/use-mobile-optimization.d.ts +49 -398
- package/dist/hooks/use-mobile-optimization.d.ts.map +1 -0
- package/dist/hooks/use-mobile-optimization.esm.js +308 -404
- package/dist/hooks/use-mobile-optimization.js +308 -404
- package/dist/hooks/use-mobile-skeleton.d.ts +51 -391
- package/dist/hooks/use-mobile-skeleton.d.ts.map +1 -0
- package/dist/hooks/use-mobile-skeleton.esm.js +300 -402
- package/dist/hooks/use-mobile-skeleton.js +300 -402
- package/dist/hooks/use-mobile-touch.d.ts +73 -399
- package/dist/hooks/use-mobile-touch.d.ts.map +1 -0
- package/dist/hooks/use-mobile-touch.esm.js +314 -412
- package/dist/hooks/use-mobile-touch.js +314 -412
- package/dist/hooks/use-performance-throttling.d.ts +42 -340
- package/dist/hooks/use-performance-throttling.d.ts.map +1 -0
- package/dist/hooks/use-performance-throttling.esm.js +276 -344
- package/dist/hooks/use-performance-throttling.js +276 -344
- package/dist/hooks/use-performance.d.ts +65 -306
- package/dist/hooks/use-performance.d.ts.map +1 -0
- package/dist/hooks/use-performance.esm.js +216 -313
- package/dist/hooks/use-performance.js +216 -313
- package/dist/hooks/use-reusable-architecture.d.ts +82 -400
- package/dist/hooks/use-reusable-architecture.d.ts.map +1 -0
- package/dist/hooks/use-reusable-architecture.esm.js +255 -408
- package/dist/hooks/use-reusable-architecture.js +255 -408
- package/dist/hooks/use-semantic-input-types.d.ts +51 -348
- package/dist/hooks/use-semantic-input-types.d.ts.map +1 -0
- package/dist/hooks/use-semantic-input-types.esm.js +290 -356
- package/dist/hooks/use-semantic-input-types.js +290 -356
- package/dist/hooks/use-semantic-input.d.ts +62 -552
- package/dist/hooks/use-semantic-input.d.ts.map +1 -0
- package/dist/hooks/use-semantic-input.esm.js +446 -549
- package/dist/hooks/use-semantic-input.js +446 -549
- package/dist/hooks/use-tablet-layout.d.ts +67 -375
- package/dist/hooks/use-tablet-layout.d.ts.map +1 -0
- package/dist/hooks/use-tablet-layout.esm.js +279 -384
- package/dist/hooks/use-tablet-layout.js +279 -384
- package/dist/hooks/use-touch-friendly-input.d.ts +67 -512
- package/dist/hooks/use-touch-friendly-input.d.ts.map +1 -0
- package/dist/hooks/use-touch-friendly-input.esm.js +401 -519
- package/dist/hooks/use-touch-friendly-input.js +401 -519
- package/dist/hooks/use-touch-friendly-interface.d.ts +48 -321
- package/dist/hooks/use-touch-friendly-interface.d.ts.map +1 -0
- package/dist/hooks/use-touch-friendly-interface.esm.js +242 -331
- package/dist/hooks/use-touch-friendly-interface.js +242 -331
- package/dist/hooks/use-touch-optimization.d.ts +56 -363
- package/dist/hooks/use-touch-optimization.d.ts.map +1 -0
- package/dist/hooks/use-touch-optimization.esm.js +288 -370
- package/dist/hooks/use-touch-optimization.js +288 -370
- package/dist/index.d.ts +168 -17
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +150 -161
- package/dist/index.js +150 -161
- package/dist/lib/utils.d.ts +3 -3
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.esm.js +4 -5
- package/dist/lib/utils.js +4 -5
- package/dist/plugins/theme-css-generator.d.ts +3 -345
- package/dist/plugins/theme-css-generator.d.ts.map +1 -0
- package/dist/plugins/theme-css-generator.esm.js +292 -346
- package/dist/plugins/theme-css-generator.js +292 -346
- package/dist/provider.d.ts +6 -14
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.esm.js +3 -19
- package/dist/provider.js +3 -19
- package/dist/styles/layers/validation.d.ts +20 -0
- package/dist/styles/layers/validation.d.ts.map +1 -0
- package/dist/styles/layers/validation.esm.js +275 -0
- package/dist/styles/layers/validation.js +275 -0
- package/dist/styles.css +1 -1
- package/dist/theme.d.ts +7 -678
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.esm.js +654 -658
- package/dist/theme.js +654 -658
- package/dist/themes/ThemeContext.d.ts +18 -22
- package/dist/themes/ThemeContext.d.ts.map +1 -0
- package/dist/themes/ThemeContext.esm.js +1 -27
- package/dist/themes/ThemeContext.js +1 -27
- package/dist/themes/ThemeProvider.d.ts +3 -222
- package/dist/themes/ThemeProvider.d.ts.map +1 -0
- package/dist/themes/ThemeProvider.esm.js +191 -223
- package/dist/themes/ThemeProvider.js +191 -223
- package/dist/themes/accessibility/index.d.ts +18 -6
- package/dist/themes/accessibility/index.d.ts.map +1 -0
- package/dist/themes/accessibility/index.esm.js +0 -4
- package/dist/themes/accessibility/index.js +0 -4
- package/dist/themes/accessibility.d.ts +53 -253
- package/dist/themes/accessibility.d.ts.map +1 -0
- package/dist/themes/accessibility.esm.js +175 -240
- package/dist/themes/accessibility.js +175 -240
- package/dist/themes/aria-patterns.d.ts +145 -410
- package/dist/themes/aria-patterns.d.ts.map +1 -0
- package/dist/themes/aria-patterns.esm.js +345 -401
- package/dist/themes/aria-patterns.js +345 -401
- package/dist/themes/base-themes.d.ts +29 -32
- package/dist/themes/base-themes.d.ts.map +1 -0
- package/dist/themes/base-themes.esm.js +15 -24
- package/dist/themes/base-themes.js +15 -24
- package/dist/themes/colorManager.d.ts +63 -326
- package/dist/themes/colorManager.d.ts.map +1 -0
- package/dist/themes/colorManager.esm.js +293 -357
- package/dist/themes/colorManager.js +293 -357
- package/dist/themes/examples/dark-theme.d.ts +13 -139
- package/dist/themes/examples/dark-theme.d.ts.map +1 -0
- package/dist/themes/examples/dark-theme.esm.js +129 -133
- package/dist/themes/examples/dark-theme.js +129 -133
- package/dist/themes/examples/minimal-theme.d.ts +6 -93
- package/dist/themes/examples/minimal-theme.d.ts.map +1 -0
- package/dist/themes/examples/minimal-theme.esm.js +80 -85
- package/dist/themes/examples/minimal-theme.js +80 -85
- package/dist/themes/focus-management.d.ts +100 -689
- package/dist/themes/focus-management.d.ts.map +1 -0
- package/dist/themes/focus-management.esm.js +541 -677
- package/dist/themes/focus-management.js +541 -677
- package/dist/themes/fontLoader.d.ts +48 -162
- package/dist/themes/fontLoader.d.ts.map +1 -0
- package/dist/themes/fontLoader.esm.js +151 -180
- package/dist/themes/fontLoader.js +151 -180
- package/dist/themes/high-contrast.d.ts +64 -613
- package/dist/themes/high-contrast.d.ts.map +1 -0
- package/dist/themes/high-contrast.esm.js +394 -558
- package/dist/themes/high-contrast.js +394 -558
- package/dist/themes/index.d.ts +3 -6
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.esm.js +1 -9
- package/dist/themes/index.js +1 -9
- package/dist/themes/inheritance.d.ts +86 -156
- package/dist/themes/inheritance.d.ts.map +1 -0
- package/dist/themes/inheritance.esm.js +145 -180
- package/dist/themes/inheritance.js +145 -180
- package/dist/themes/keyboard-navigation.d.ts +205 -542
- package/dist/themes/keyboard-navigation.d.ts.map +1 -0
- package/dist/themes/keyboard-navigation.esm.js +418 -510
- package/dist/themes/keyboard-navigation.js +418 -510
- package/dist/themes/motion-reduction.d.ts +107 -646
- package/dist/themes/motion-reduction.d.ts.map +1 -0
- package/dist/themes/motion-reduction.esm.js +434 -591
- package/dist/themes/motion-reduction.js +434 -591
- package/dist/themes/navigation.d.ts +163 -194
- package/dist/themes/navigation.d.ts.map +1 -0
- package/dist/themes/navigation.esm.js +1 -234
- package/dist/themes/navigation.js +1 -234
- package/dist/themes/screen-reader.d.ts +82 -641
- package/dist/themes/screen-reader.d.ts.map +1 -0
- package/dist/themes/screen-reader.esm.js +515 -616
- package/dist/themes/screen-reader.js +515 -616
- package/dist/themes/systemThemeDetector.d.ts +54 -144
- package/dist/themes/systemThemeDetector.d.ts.map +1 -0
- package/dist/themes/systemThemeDetector.esm.js +135 -164
- package/dist/themes/systemThemeDetector.js +135 -164
- package/dist/themes/themeCSSUpdater.d.ts +45 -228
- package/dist/themes/themeCSSUpdater.d.ts.map +1 -0
- package/dist/themes/themeCSSUpdater.esm.js +217 -252
- package/dist/themes/themeCSSUpdater.js +217 -252
- package/dist/themes/themePersistence.d.ts +80 -188
- package/dist/themes/themePersistence.d.ts.map +1 -0
- package/dist/themes/themePersistence.esm.js +181 -212
- package/dist/themes/themePersistence.js +181 -212
- package/dist/themes/themes/default.d.ts +9 -0
- package/dist/themes/themes/default.d.ts.map +1 -0
- package/dist/themes/themes/default.esm.js +584 -0
- package/dist/themes/themes/default.js +584 -0
- package/dist/themes/themes/harvey.d.ts +7 -0
- package/dist/themes/themes/harvey.d.ts.map +1 -0
- package/dist/themes/themes/harvey.esm.js +551 -0
- package/dist/themes/themes/harvey.js +551 -0
- package/dist/themes/themes/stan-design.d.ts +7 -678
- package/dist/themes/themes/stan-design.d.ts.map +1 -0
- package/dist/themes/themes/stan-design.esm.js +654 -658
- package/dist/themes/themes/stan-design.js +654 -658
- package/dist/themes/types.d.ts +330 -385
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.esm.js +1 -458
- package/dist/themes/types.js +1 -458
- package/dist/themes/useSystemTheme.d.ts +10 -42
- package/dist/themes/useSystemTheme.d.ts.map +1 -0
- package/dist/themes/useSystemTheme.esm.js +34 -42
- package/dist/themes/useSystemTheme.js +34 -42
- package/dist/themes/useTheme.d.ts +70 -20
- package/dist/themes/useTheme.d.ts.map +1 -0
- package/dist/themes/useTheme.esm.js +23 -28
- package/dist/themes/useTheme.js +23 -28
- package/dist/themes/validation.d.ts +70 -405
- package/dist/themes/validation.d.ts.map +1 -0
- package/dist/themes/validation.esm.js +380 -433
- package/dist/themes/validation.js +380 -433
- package/dist/tokens/index.d.ts +9 -23
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.esm.js +2 -13
- package/dist/tokens/index.js +2 -13
- package/dist/tokens/tokenExporter.d.ts +83 -335
- package/dist/tokens/tokenExporter.d.ts.map +1 -0
- package/dist/tokens/tokenExporter.esm.js +309 -373
- package/dist/tokens/tokenExporter.js +309 -373
- package/dist/tokens/tokenGenerator.d.ts +36 -249
- package/dist/tokens/tokenGenerator.d.ts.map +1 -0
- package/dist/tokens/tokenGenerator.esm.js +241 -273
- package/dist/tokens/tokenGenerator.js +241 -273
- package/dist/tokens/tokenManager.d.ts +87 -189
- package/dist/tokens/tokenManager.d.ts.map +1 -0
- package/dist/tokens/tokenManager.esm.js +187 -241
- package/dist/tokens/tokenManager.js +187 -241
- package/dist/tokens/tokenValidator.d.ts +84 -481
- package/dist/tokens/tokenValidator.d.ts.map +1 -0
- package/dist/tokens/tokenValidator.esm.js +402 -522
- package/dist/tokens/tokenValidator.js +402 -522
- package/dist/tokens/types.d.ts +40 -60
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.esm.js +1 -78
- package/dist/tokens/types.js +1 -78
- package/dist/types.d.ts +399 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.esm.js +3 -0
- package/dist/types.js +3 -0
- package/dist/utils/bundle-analyzer.d.ts +37 -254
- package/dist/utils/bundle-analyzer.d.ts.map +1 -0
- package/dist/utils/bundle-analyzer.esm.js +188 -246
- package/dist/utils/bundle-analyzer.js +188 -246
- package/dist/utils/bundle-splitting.d.ts +59 -471
- package/dist/utils/bundle-splitting.d.ts.map +1 -0
- package/dist/utils/bundle-splitting.esm.js +330 -458
- package/dist/utils/bundle-splitting.js +330 -458
- package/dist/utils/lazy-loading.d.ts +64 -429
- package/dist/utils/lazy-loading.d.ts.map +1 -0
- package/dist/utils/lazy-loading.esm.js +311 -417
- package/dist/utils/lazy-loading.js +311 -417
- package/dist/utils/performance-monitor.d.ts +72 -504
- package/dist/utils/performance-monitor.d.ts.map +1 -0
- package/dist/utils/performance-monitor.esm.js +369 -490
- package/dist/utils/performance-monitor.js +369 -490
- package/dist/utils/tree-shaking.d.ts +40 -267
- package/dist/utils/tree-shaking.d.ts.map +1 -0
- package/dist/utils/tree-shaking.esm.js +194 -264
- package/dist/utils/tree-shaking.js +194 -264
- package/package.json +18 -2
- package/src/index.ts +150 -149
- package/src/provider.tsx +3 -3
- package/src/theme.ts +1 -1
- package/src/themes/themes/default.ts +586 -0
- package/src/themes/themes/harvey.ts +554 -0
- package/src/types.ts +460 -0
|
@@ -1,916 +1,256 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
export const AdvancedComponentArchitectureDemo
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
})
|
|
255
|
-
|
|
256
|
-
|
|
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;
|