@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.11 → 0.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- 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.esm.js +256 -916
- package/dist/components/ui/advanced-component-architecture-demo.js +256 -916
- 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.esm.js +194 -378
- package/dist/components/ui/advanced-transition-system.js +194 -378
- 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.esm.js +3 -18
- package/dist/components/ui/animation/index.js +3 -18
- 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.esm.js +30 -250
- package/dist/components/ui/animation-demo.js +30 -250
- 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.esm.js +136 -565
- package/dist/components/ui/battery-conscious-animation-demo.js +136 -565
- 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.esm.js +14 -33
- package/dist/components/ui/button.js +14 -33
- package/dist/components/ui/card.esm.js +74 -188
- package/dist/components/ui/card.js +74 -188
- package/dist/components/ui/checkbox.esm.js +11 -30
- package/dist/components/ui/checkbox.js +11 -30
- 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.esm.js +210 -632
- package/dist/components/ui/data-display/chart.js +210 -632
- 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.esm.js +173 -661
- package/dist/components/ui/data-display/data-grid.js +173 -661
- 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.esm.js +109 -468
- package/dist/components/ui/data-display/table.js +109 -468
- 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.esm.js +211 -585
- package/dist/components/ui/data-display/tree.js +211 -585
- 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.esm.js +76 -749
- package/dist/components/ui/enterprise-mobile-experience-demo.js +76 -749
- 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.esm.js +40 -148
- package/dist/components/ui/feedback/alert.js +40 -148
- 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.esm.js +64 -173
- package/dist/components/ui/feedback/skeleton.js +64 -173
- 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.esm.js +1 -125
- package/dist/components/ui/feedback/types.js +1 -125
- 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.esm.js +191 -553
- package/dist/components/ui/form-demo.js +191 -553
- 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.esm.js +13 -32
- package/dist/components/ui/input.js +13 -32
- package/dist/components/ui/label.esm.js +6 -16
- package/dist/components/ui/label.js +6 -16
- 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.esm.js +60 -139
- package/dist/components/ui/layouts/adaptive-layout.js +60 -139
- 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.esm.js +4 -10
- package/dist/components/ui/layouts/index.js +4 -10
- 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.esm.js +53 -197
- package/dist/components/ui/layouts/tablet-layout.js +53 -197
- 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.esm.js +11 -198
- package/dist/components/ui/mobile-input-demo.js +11 -198
- 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.esm.js +144 -638
- package/dist/components/ui/mobile-skeleton-loading-demo.js +144 -638
- 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.esm.js +0 -3
- package/dist/components/ui/navigation/index.js +0 -3
- 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.esm.js +130 -315
- package/dist/components/ui/navigation/navigation-demo.js +130 -315
- 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.esm.js +156 -368
- package/dist/components/ui/navigation/sidebar.js +156 -368
- 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.esm.js +89 -198
- package/dist/components/ui/navigation/tabs.js +89 -198
- 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.esm.js +39 -78
- package/dist/components/ui/overlay/backdrop.js +39 -78
- 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.esm.js +0 -5
- package/dist/components/ui/overlay/index.js +0 -5
- 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.esm.js +60 -100
- package/dist/components/ui/overlay/overlay-manager.js +60 -100
- 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.esm.js +45 -74
- package/dist/components/ui/overlay/portal.js +45 -74
- 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.esm.js +1 -196
- package/dist/components/ui/overlay/types.js +1 -196
- 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.esm.js +87 -501
- package/dist/components/ui/semantic-input-system-demo.js +87 -501
- 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.esm.js +44 -306
- package/dist/components/ui/theme-preview.js +44 -306
- 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.esm.js +22 -35
- package/dist/components/ui/theme-toggle.js +22 -35
- 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.esm.js +96 -462
- package/dist/components/ui/touch-demo.js +96 -462
- 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.esm.js +103 -281
- package/dist/components/ui/touch-friendly-interface.js +103 -281
- package/dist/hooks/index.esm.js +23 -181
- package/dist/hooks/index.js +23 -181
- 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.esm.js +212 -287
- package/dist/hooks/use-adaptive-layout.js +212 -287
- 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.esm.js +286 -392
- package/dist/hooks/use-advanced-transition-system.js +286 -392
- 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.esm.js +310 -384
- package/dist/hooks/use-battery-animations.js +310 -384
- 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.esm.js +267 -329
- package/dist/hooks/use-battery-optimization.js +267 -329
- 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.esm.js +235 -341
- package/dist/hooks/use-component-performance.js +235 -341
- 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.esm.js +77 -102
- package/dist/hooks/use-device.js +77 -102
- 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.esm.js +313 -398
- package/dist/hooks/use-form-feedback.js +313 -398
- 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.esm.js +178 -251
- package/dist/hooks/use-frame-rate.js +178 -251
- package/dist/hooks/use-gestures.esm.js +230 -332
- package/dist/hooks/use-gestures.js +230 -332
- 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.esm.js +350 -454
- package/dist/hooks/use-input-accessibility.js +350 -454
- 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.esm.js +233 -319
- package/dist/hooks/use-layout-performance.js +233 -319
- 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.esm.js +398 -469
- package/dist/hooks/use-loading-performance.js +398 -469
- 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.esm.js +365 -458
- package/dist/hooks/use-mobile-form-layout.js +365 -458
- 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.esm.js +354 -468
- package/dist/hooks/use-mobile-keyboard-optimization.js +354 -468
- 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.esm.js +308 -404
- package/dist/hooks/use-mobile-optimization.js +308 -404
- 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.esm.js +314 -412
- package/dist/hooks/use-mobile-touch.js +314 -412
- package/dist/hooks/use-performance-throttling.esm.js +276 -344
- package/dist/hooks/use-performance-throttling.js +276 -344
- package/dist/hooks/use-performance.esm.js +216 -313
- package/dist/hooks/use-performance.js +216 -313
- 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.esm.js +290 -356
- package/dist/hooks/use-semantic-input-types.js +290 -356
- 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.esm.js +279 -384
- package/dist/hooks/use-tablet-layout.js +279 -384
- 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.esm.js +242 -331
- package/dist/hooks/use-touch-friendly-interface.js +242 -331
- package/dist/hooks/use-touch-optimization.esm.js +288 -370
- package/dist/hooks/use-touch-optimization.js +288 -370
- package/dist/index.esm.js +150 -161
- package/dist/index.js +150 -161
- package/dist/lib/utils.esm.js +4 -5
- package/dist/lib/utils.js +4 -5
- package/dist/plugins/theme-css-generator.esm.js +292 -346
- package/dist/plugins/theme-css-generator.js +292 -346
- package/dist/provider.esm.js +3 -19
- package/dist/provider.js +3 -19
- 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.esm.js +654 -658
- package/dist/theme.js +654 -658
- package/dist/themes/ThemeContext.esm.js +1 -27
- package/dist/themes/ThemeContext.js +1 -27
- package/dist/themes/ThemeProvider.esm.js +191 -223
- package/dist/themes/ThemeProvider.js +191 -223
- package/dist/themes/accessibility/index.esm.js +0 -4
- package/dist/themes/accessibility/index.js +0 -4
- package/dist/themes/accessibility.esm.js +175 -240
- package/dist/themes/accessibility.js +175 -240
- package/dist/themes/aria-patterns.esm.js +345 -401
- package/dist/themes/aria-patterns.js +345 -401
- package/dist/themes/base-themes.esm.js +15 -24
- package/dist/themes/base-themes.js +15 -24
- package/dist/themes/colorManager.esm.js +293 -357
- package/dist/themes/colorManager.js +293 -357
- 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.esm.js +80 -85
- package/dist/themes/examples/minimal-theme.js +80 -85
- package/dist/themes/focus-management.esm.js +541 -677
- package/dist/themes/focus-management.js +541 -677
- package/dist/themes/fontLoader.esm.js +151 -180
- package/dist/themes/fontLoader.js +151 -180
- package/dist/themes/high-contrast.esm.js +394 -558
- package/dist/themes/high-contrast.js +394 -558
- package/dist/themes/index.esm.js +1 -9
- package/dist/themes/index.js +1 -9
- package/dist/themes/inheritance.esm.js +145 -180
- package/dist/themes/inheritance.js +145 -180
- package/dist/themes/keyboard-navigation.esm.js +418 -510
- package/dist/themes/keyboard-navigation.js +418 -510
- package/dist/themes/motion-reduction.esm.js +434 -591
- package/dist/themes/motion-reduction.js +434 -591
- package/dist/themes/navigation.esm.js +1 -234
- package/dist/themes/navigation.js +1 -234
- package/dist/themes/screen-reader.esm.js +515 -616
- package/dist/themes/screen-reader.js +515 -616
- package/dist/themes/systemThemeDetector.esm.js +135 -164
- package/dist/themes/systemThemeDetector.js +135 -164
- package/dist/themes/themeCSSUpdater.esm.js +217 -252
- package/dist/themes/themeCSSUpdater.js +217 -252
- package/dist/themes/themePersistence.esm.js +181 -212
- package/dist/themes/themePersistence.js +181 -212
- package/dist/themes/themes/default.esm.js +584 -0
- package/dist/themes/themes/default.js +584 -0
- package/dist/themes/themes/harvey.esm.js +551 -0
- package/dist/themes/themes/harvey.js +551 -0
- package/dist/themes/themes/stan-design.esm.js +654 -658
- package/dist/themes/themes/stan-design.js +654 -658
- package/dist/themes/types.esm.js +1 -458
- package/dist/themes/types.js +1 -458
- package/dist/themes/useSystemTheme.esm.js +34 -42
- package/dist/themes/useSystemTheme.js +34 -42
- package/dist/themes/useTheme.esm.js +23 -28
- package/dist/themes/useTheme.js +23 -28
- package/dist/themes/validation.esm.js +380 -433
- package/dist/themes/validation.js +380 -433
- package/dist/tokens/index.esm.js +2 -13
- package/dist/tokens/index.js +2 -13
- package/dist/tokens/tokenExporter.esm.js +309 -373
- package/dist/tokens/tokenExporter.js +309 -373
- package/dist/tokens/tokenGenerator.esm.js +241 -273
- package/dist/tokens/tokenGenerator.js +241 -273
- package/dist/tokens/tokenManager.esm.js +187 -241
- package/dist/tokens/tokenManager.js +187 -241
- package/dist/tokens/tokenValidator.esm.js +402 -522
- package/dist/tokens/tokenValidator.js +402 -522
- package/dist/tokens/types.esm.js +1 -78
- package/dist/tokens/types.js +1 -78
- package/dist/types.esm.js +3 -0
- package/dist/types.js +3 -0
- package/dist/utils/bundle-analyzer.esm.js +188 -246
- package/dist/utils/bundle-analyzer.js +188 -246
- package/dist/utils/bundle-splitting.esm.js +330 -458
- package/dist/utils/bundle-splitting.js +330 -458
- package/dist/utils/lazy-loading.esm.js +311 -417
- package/dist/utils/lazy-loading.js +311 -417
- package/dist/utils/performance-monitor.esm.js +369 -490
- package/dist/utils/performance-monitor.js +369 -490
- 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/{dist/theme.d.ts → src/themes/themes/default.ts} +77 -169
- package/src/themes/themes/harvey.ts +554 -0
- package/{dist/themes/types.d.ts → src/types.ts} +7 -1
- package/dist/components/ui/accessibility-demo.d.ts +0 -259
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +0 -718
- package/dist/components/ui/advanced-transition-system-demo.d.ts +0 -660
- package/dist/components/ui/advanced-transition-system.d.ts +0 -391
- package/dist/components/ui/animation/animated-container.d.ts +0 -162
- package/dist/components/ui/animation/index.d.ts +0 -9
- package/dist/components/ui/animation/staggered-container.d.ts +0 -64
- package/dist/components/ui/animation-demo.d.ts +0 -238
- package/dist/components/ui/badge.d.ts +0 -28
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +0 -561
- package/dist/components/ui/border-radius-shadow-demo.d.ts +0 -183
- package/dist/components/ui/button.d.ts +0 -33
- package/dist/components/ui/card.d.ts +0 -205
- package/dist/components/ui/checkbox.d.ts +0 -26
- package/dist/components/ui/color-preview.d.ts +0 -402
- package/dist/components/ui/data-display/chart.d.ts +0 -646
- package/dist/components/ui/data-display/data-grid-simple.d.ts +0 -73
- package/dist/components/ui/data-display/data-grid.d.ts +0 -670
- package/dist/components/ui/data-display/list.d.ts +0 -448
- package/dist/components/ui/data-display/table.d.ts +0 -472
- package/dist/components/ui/data-display/timeline.d.ts +0 -433
- package/dist/components/ui/data-display/tree.d.ts +0 -594
- package/dist/components/ui/data-display/types.d.ts +0 -534
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +0 -735
- package/dist/components/ui/enterprise-mobile-experience.d.ts +0 -461
- package/dist/components/ui/feedback/alert.d.ts +0 -154
- package/dist/components/ui/feedback/progress.d.ts +0 -288
- package/dist/components/ui/feedback/skeleton.d.ts +0 -182
- package/dist/components/ui/feedback/toast.d.ts +0 -277
- package/dist/components/ui/feedback/types.d.ts +0 -123
- package/dist/components/ui/font-preview.d.ts +0 -282
- package/dist/components/ui/form-demo.d.ts +0 -544
- package/dist/components/ui/hardware-acceleration-demo.d.ts +0 -540
- package/dist/components/ui/input.d.ts +0 -33
- package/dist/components/ui/label.d.ts +0 -13
- package/dist/components/ui/layout-demo.d.ts +0 -352
- package/dist/components/ui/layouts/adaptive-layout.d.ts +0 -132
- package/dist/components/ui/layouts/desktop-layout.d.ts +0 -219
- package/dist/components/ui/layouts/index.d.ts +0 -5
- package/dist/components/ui/layouts/mobile-layout.d.ts +0 -158
- package/dist/components/ui/layouts/tablet-layout.d.ts +0 -192
- package/dist/components/ui/mobile-form-validation.d.ts +0 -439
- package/dist/components/ui/mobile-input-demo.d.ts +0 -197
- package/dist/components/ui/mobile-input.d.ts +0 -273
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +0 -628
- package/dist/components/ui/navigation/breadcrumb.d.ts +0 -149
- package/dist/components/ui/navigation/index.d.ts +0 -25
- package/dist/components/ui/navigation/menu.d.ts +0 -366
- package/dist/components/ui/navigation/navigation-demo.d.ts +0 -169
- package/dist/components/ui/navigation/pagination.d.ts +0 -261
- package/dist/components/ui/navigation/sidebar.d.ts +0 -375
- package/dist/components/ui/navigation/stepper.d.ts +0 -294
- package/dist/components/ui/navigation/tabs.d.ts +0 -196
- package/dist/components/ui/navigation/types.d.ts +0 -293
- package/dist/components/ui/overlay/backdrop.d.ts +0 -79
- package/dist/components/ui/overlay/focus-manager.d.ts +0 -141
- package/dist/components/ui/overlay/index.d.ts +0 -27
- package/dist/components/ui/overlay/modal.d.ts +0 -262
- package/dist/components/ui/overlay/overlay-manager.d.ts +0 -107
- package/dist/components/ui/overlay/popover.d.ts +0 -450
- package/dist/components/ui/overlay/portal.d.ts +0 -75
- package/dist/components/ui/overlay/tooltip.d.ts +0 -298
- package/dist/components/ui/overlay/types.d.ts +0 -194
- package/dist/components/ui/performance-demo.d.ts +0 -583
- package/dist/components/ui/semantic-input-system-demo.d.ts +0 -490
- package/dist/components/ui/theme-customizer.d.ts +0 -378
- package/dist/components/ui/theme-preview.d.ts +0 -305
- package/dist/components/ui/theme-switcher.d.ts +0 -259
- package/dist/components/ui/theme-toggle.d.ts +0 -34
- package/dist/components/ui/token-demo.d.ts +0 -188
- package/dist/components/ui/touch-demo.d.ts +0 -455
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +0 -512
- package/dist/components/ui/touch-friendly-interface.d.ts +0 -292
- package/dist/hooks/index.d.ts +0 -161
- package/dist/hooks/use-accessibility-support.d.ts +0 -516
- package/dist/hooks/use-adaptive-layout.d.ts +0 -287
- package/dist/hooks/use-advanced-patterns.d.ts +0 -292
- package/dist/hooks/use-advanced-transition-system.d.ts +0 -390
- package/dist/hooks/use-animation-profile.d.ts +0 -285
- package/dist/hooks/use-battery-animations.d.ts +0 -382
- package/dist/hooks/use-battery-conscious-loading.d.ts +0 -473
- package/dist/hooks/use-battery-optimization.d.ts +0 -328
- package/dist/hooks/use-battery-status.d.ts +0 -297
- package/dist/hooks/use-component-performance.d.ts +0 -342
- package/dist/hooks/use-device-loading-states.d.ts +0 -456
- package/dist/hooks/use-device.d.ts +0 -104
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +0 -486
- package/dist/hooks/use-form-feedback.d.ts +0 -401
- package/dist/hooks/use-form-performance.d.ts +0 -511
- package/dist/hooks/use-frame-rate.d.ts +0 -249
- package/dist/hooks/use-gestures.d.ts +0 -336
- package/dist/hooks/use-hardware-acceleration.d.ts +0 -339
- package/dist/hooks/use-input-accessibility.d.ts +0 -451
- package/dist/hooks/use-input-performance.d.ts +0 -503
- package/dist/hooks/use-layout-performance.d.ts +0 -317
- package/dist/hooks/use-loading-accessibility.d.ts +0 -532
- package/dist/hooks/use-loading-performance.d.ts +0 -471
- package/dist/hooks/use-memory-usage.d.ts +0 -285
- package/dist/hooks/use-mobile-form-layout.d.ts +0 -462
- package/dist/hooks/use-mobile-form-validation.d.ts +0 -516
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +0 -469
- package/dist/hooks/use-mobile-layout.d.ts +0 -300
- package/dist/hooks/use-mobile-optimization.d.ts +0 -404
- package/dist/hooks/use-mobile-skeleton.d.ts +0 -399
- package/dist/hooks/use-mobile-touch.d.ts +0 -412
- package/dist/hooks/use-performance-throttling.d.ts +0 -346
- package/dist/hooks/use-performance.d.ts +0 -314
- package/dist/hooks/use-reusable-architecture.d.ts +0 -412
- package/dist/hooks/use-semantic-input-types.d.ts +0 -354
- package/dist/hooks/use-semantic-input.d.ts +0 -563
- package/dist/hooks/use-tablet-layout.d.ts +0 -382
- package/dist/hooks/use-touch-friendly-input.d.ts +0 -520
- package/dist/hooks/use-touch-friendly-interface.d.ts +0 -329
- package/dist/hooks/use-touch-optimization.d.ts +0 -373
- package/dist/index.d.ts +0 -149
- package/dist/lib/utils.d.ts +0 -3
- package/dist/plugins/theme-css-generator.d.ts +0 -345
- package/dist/provider.d.ts +0 -17
- package/dist/themes/ThemeContext.d.ts +0 -27
- package/dist/themes/ThemeProvider.d.ts +0 -222
- package/dist/themes/accessibility/index.d.ts +0 -7
- package/dist/themes/accessibility.d.ts +0 -259
- package/dist/themes/aria-patterns.d.ts +0 -418
- package/dist/themes/base-themes.d.ts +0 -34
- package/dist/themes/colorManager.d.ts +0 -327
- package/dist/themes/examples/dark-theme.d.ts +0 -139
- package/dist/themes/examples/minimal-theme.d.ts +0 -93
- package/dist/themes/focus-management.d.ts +0 -699
- package/dist/themes/fontLoader.d.ts +0 -163
- package/dist/themes/high-contrast.d.ts +0 -619
- package/dist/themes/index.d.ts +0 -11
- package/dist/themes/inheritance.d.ts +0 -160
- package/dist/themes/keyboard-navigation.d.ts +0 -550
- package/dist/themes/motion-reduction.d.ts +0 -660
- package/dist/themes/navigation.d.ts +0 -232
- package/dist/themes/screen-reader.d.ts +0 -645
- package/dist/themes/systemThemeDetector.d.ts +0 -148
- package/dist/themes/themeCSSUpdater.d.ts +0 -229
- package/dist/themes/themePersistence.d.ts +0 -192
- package/dist/themes/themes/stan-design.d.ts +0 -678
- package/dist/themes/useSystemTheme.d.ts +0 -43
- package/dist/themes/useTheme.d.ts +0 -20
- package/dist/themes/validation.d.ts +0 -406
- package/dist/tokens/index.d.ts +0 -25
- package/dist/tokens/tokenExporter.d.ts +0 -336
- package/dist/tokens/tokenGenerator.d.ts +0 -250
- package/dist/tokens/tokenManager.d.ts +0 -194
- package/dist/tokens/tokenValidator.d.ts +0 -488
- package/dist/tokens/types.d.ts +0 -78
- package/dist/utils/bundle-analyzer.d.ts +0 -260
- package/dist/utils/bundle-splitting.d.ts +0 -483
- package/dist/utils/lazy-loading.d.ts +0 -437
- package/dist/utils/performance-monitor.d.ts +0 -513
- package/dist/utils/tree-shaking.d.ts +0 -274
|
@@ -1,502 +1,88 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
export const SemanticInputSystemDemo
|
|
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
|
-
enableFocusManagement: true
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
const handleInputChange = (field: string, value: string) => {
|
|
61
|
-
setFormData(prev => ({ ...prev, [field]: value }))
|
|
62
|
-
|
|
63
|
-
// Detect semantic type and optimize
|
|
64
|
-
const detectedType = detectInputType(value, field)
|
|
65
|
-
if (detectedType && detectedType.type !== 'text') {
|
|
66
|
-
optimizeKeyboard(detectedType)
|
|
67
|
-
autoOptimizeForInputType(detectedType.type)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const handleDemoChange = (demo: typeof activeDemo) => {
|
|
72
|
-
setActiveDemo(demo)
|
|
73
|
-
|
|
74
|
-
// Start relevant monitoring for the selected demo
|
|
75
|
-
switch (demo) {
|
|
76
|
-
case 'semantic':
|
|
77
|
-
break
|
|
78
|
-
case 'mobile':
|
|
79
|
-
// Mobile keyboard detection is already running
|
|
80
|
-
break
|
|
81
|
-
case 'touch':
|
|
82
|
-
autoOptimizeTouch()
|
|
83
|
-
break
|
|
84
|
-
case 'performance':
|
|
85
|
-
autoOptimize()
|
|
86
|
-
break
|
|
87
|
-
case 'accessibility':
|
|
88
|
-
// Call functions safely - simplified to avoid type issues
|
|
89
|
-
if (typeof enableARIASupport === 'function') {
|
|
90
|
-
enableARIASupport()
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card';
|
|
4
|
+
import { Button } from './button';
|
|
5
|
+
import { Input } from './input';
|
|
6
|
+
import { Label } from './label';
|
|
7
|
+
import { Badge } from './badge';
|
|
8
|
+
import { useSemanticInput } from '../../hooks/use-semantic-input';
|
|
9
|
+
import { useMobileKeyboardOptimization } from '../../hooks/use-mobile-keyboard-optimization';
|
|
10
|
+
import { useTouchFriendlyInput } from '../../hooks/use-touch-friendly-input';
|
|
11
|
+
import { useInputPerformance } from '../../hooks/use-input-performance';
|
|
12
|
+
import { useInputAccessibility } from '../../hooks/use-input-accessibility';
|
|
13
|
+
export const SemanticInputSystemDemo = () => {
|
|
14
|
+
const [activeDemo, setActiveDemo] = useState('semantic');
|
|
15
|
+
const [formData, setFormData] = useState({
|
|
16
|
+
name: '',
|
|
17
|
+
email: '',
|
|
18
|
+
phone: '',
|
|
19
|
+
creditCard: '',
|
|
20
|
+
amount: '',
|
|
21
|
+
search: ''
|
|
22
|
+
});
|
|
23
|
+
// Initialize hooks with proper interfaces
|
|
24
|
+
const { semanticState, detectInputType, optimizeKeyboard } = useSemanticInput({ type: 'text', autocomplete: 'on', inputMode: 'text', keyboardType: 'default' }, {}, {
|
|
25
|
+
enableAutoDetection: true,
|
|
26
|
+
enableKeyboardOptimization: true,
|
|
27
|
+
enableAutocomplete: true
|
|
28
|
+
});
|
|
29
|
+
const { keyboardState, optimizations, autoOptimizeForInputType } = useMobileKeyboardOptimization({
|
|
30
|
+
enableKeyboardDetection: true,
|
|
31
|
+
enablePerformanceMonitoring: true,
|
|
32
|
+
enableBatteryOptimization: true
|
|
33
|
+
});
|
|
34
|
+
const { touchState, touchOptimizations, autoOptimizeTouch } = useTouchFriendlyInput({
|
|
35
|
+
enableTouchOptimization: true,
|
|
36
|
+
enablePerformanceMonitoring: true,
|
|
37
|
+
enableAccessibilitySupport: true
|
|
38
|
+
});
|
|
39
|
+
const { performanceMetrics, autoOptimize } = useInputPerformance({
|
|
40
|
+
enablePerformanceMonitoring: true,
|
|
41
|
+
enableMemoryManagement: true,
|
|
42
|
+
enableBatteryOptimization: true
|
|
43
|
+
});
|
|
44
|
+
const { accessibilityFeatures, enableARIASupport } = useInputAccessibility({
|
|
45
|
+
enableARIA: true,
|
|
46
|
+
enableKeyboardNavigation: true,
|
|
47
|
+
enableScreenReader: true,
|
|
48
|
+
enableFocusManagement: true
|
|
49
|
+
});
|
|
50
|
+
const handleInputChange = (field, value) => {
|
|
51
|
+
setFormData(prev => ({ ...prev, [field]: value }));
|
|
52
|
+
// Detect semantic type and optimize
|
|
53
|
+
const detectedType = detectInputType(value, field);
|
|
54
|
+
if (detectedType && detectedType.type !== 'text') {
|
|
55
|
+
optimizeKeyboard(detectedType);
|
|
56
|
+
autoOptimizeForInputType(detectedType.type);
|
|
91
57
|
}
|
|
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
|
-
<div className="text-sm text-gray-600">
|
|
124
|
-
Keyboard: <Badge variant="secondary">{semanticState.keyboardOptimized ? 'Optimized' : 'Default'}</Badge>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<div className="space-y-2">
|
|
129
|
-
<Label htmlFor="phone">Phone Number</Label>
|
|
130
|
-
<Input
|
|
131
|
-
id="phone"
|
|
132
|
-
value={formData.phone}
|
|
133
|
-
onChange={(e) => handleInputChange('phone', e.target.value)}
|
|
134
|
-
placeholder="Enter your phone number"
|
|
135
|
-
className="semantic-input"
|
|
136
|
-
/>
|
|
137
|
-
<div className="text-sm text-gray-600">
|
|
138
|
-
Autocomplete: <Badge variant="secondary">{semanticState.autocompleteEnhanced ? 'Enhanced' : 'Default'}</Badge>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
|
|
142
|
-
<div className="space-y-2">
|
|
143
|
-
<Label htmlFor="creditCard">Credit Card</Label>
|
|
144
|
-
<Input
|
|
145
|
-
id="creditCard"
|
|
146
|
-
value={formData.creditCard}
|
|
147
|
-
onChange={(e) => handleInputChange('creditCard', e.target.value)}
|
|
148
|
-
placeholder="Enter credit card number"
|
|
149
|
-
className="semantic-input"
|
|
150
|
-
/>
|
|
151
|
-
<div className="text-sm text-gray-600">
|
|
152
|
-
Touch: <Badge variant="secondary">{semanticState.touchOptimized ? 'Optimized' : 'Default'}</Badge>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
|
|
156
|
-
<div className="space-y-2">
|
|
157
|
-
<Label htmlFor="amount">Amount</Label>
|
|
158
|
-
<Input
|
|
159
|
-
id="amount"
|
|
160
|
-
value={formData.amount}
|
|
161
|
-
onChange={(e) => handleInputChange('amount', e.target.value)}
|
|
162
|
-
placeholder="Enter amount"
|
|
163
|
-
className="semantic-input"
|
|
164
|
-
/>
|
|
165
|
-
<div className="text-sm text-gray-600">
|
|
166
|
-
Performance: <Badge variant="secondary">{semanticState.isOptimized ? 'Optimized' : 'Default'}</Badge>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
|
|
170
|
-
<div className="space-y-2">
|
|
171
|
-
<Label htmlFor="search">Search</Label>
|
|
172
|
-
<Input
|
|
173
|
-
id="search"
|
|
174
|
-
value={formData.search}
|
|
175
|
-
onChange={(e) => handleInputChange('search', e.target.value)}
|
|
176
|
-
placeholder="Search..."
|
|
177
|
-
className="semantic-input"
|
|
178
|
-
/>
|
|
179
|
-
<div className="text-sm text-gray-600">
|
|
180
|
-
Type: <Badge variant="secondary">{semanticState.detectedType?.type || 'text'}</Badge>
|
|
181
|
-
</div>
|
|
182
|
-
</div>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<div className="bg-gray-50 p-4 rounded-lg">
|
|
186
|
-
<h4 className="font-semibold mb-2">Semantic State</h4>
|
|
187
|
-
<pre className="text-xs text-gray-700 overflow-auto">
|
|
188
|
-
{JSON.stringify(semanticState, null, 2)}
|
|
189
|
-
</pre>
|
|
190
|
-
</div>
|
|
191
|
-
</div>
|
|
192
|
-
)
|
|
193
|
-
|
|
194
|
-
const renderMobileDemo = () => (
|
|
195
|
-
<div className="space-y-6">
|
|
196
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
197
|
-
<div className="space-y-2">
|
|
198
|
-
<Label>Keyboard State</Label>
|
|
199
|
-
<div className="space-y-2 text-sm">
|
|
200
|
-
<div>Visible: <Badge variant={keyboardState.isVisible ? 'default' : 'secondary'}>{keyboardState.isVisible ? 'Yes' : 'No'}</Badge></div>
|
|
201
|
-
<div>Height: {keyboardState.height}px</div>
|
|
202
|
-
<div>Type: <Badge variant="outline">{keyboardState.type}</Badge></div>
|
|
203
|
-
<div>Platform: <Badge variant="outline">{keyboardState.platform}</Badge></div>
|
|
204
|
-
<div>Orientation: <Badge variant="outline">{keyboardState.orientation}</Badge></div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
|
|
208
|
-
<div className="space-y-2">
|
|
209
|
-
<Label>Keyboard Optimizations</Label>
|
|
210
|
-
<div className="space-y-2">
|
|
211
|
-
{optimizations.map((opt, index) => (
|
|
212
|
-
<div key={index} className="flex items-center justify-between p-2 bg-gray-50 rounded">
|
|
213
|
-
<span className="text-sm">{opt.name}</span>
|
|
214
|
-
<Badge variant={opt.applied ? 'default' : 'secondary'}>
|
|
215
|
-
{opt.applied ? 'Applied' : 'Pending'}
|
|
216
|
-
</Badge>
|
|
217
|
-
</div>
|
|
218
|
-
))}
|
|
219
|
-
</div>
|
|
220
|
-
</div>
|
|
221
|
-
</div>
|
|
222
|
-
|
|
223
|
-
<div className="bg-blue-50 p-4 rounded-lg">
|
|
224
|
-
<h4 className="font-semibold mb-2 text-blue-800">Mobile Keyboard Features</h4>
|
|
225
|
-
<ul className="text-sm text-blue-700 space-y-1">
|
|
226
|
-
<li>• Automatic keyboard type detection</li>
|
|
227
|
-
<li>• Platform-specific optimizations</li>
|
|
228
|
-
<li>• Orientation-aware adjustments</li>
|
|
229
|
-
<li>• Performance monitoring integration</li>
|
|
230
|
-
<li>• Battery optimization support</li>
|
|
231
|
-
</ul>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
)
|
|
235
|
-
|
|
236
|
-
const renderTouchDemo = () => (
|
|
237
|
-
<div className="space-y-6">
|
|
238
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
239
|
-
<div className="space-y-2">
|
|
240
|
-
<Label>Touch State</Label>
|
|
241
|
-
<div className="space-y-2 text-sm">
|
|
242
|
-
<div>Touching: <Badge variant={touchState.isTouching ? 'default' : 'secondary'}>{touchState.isTouching ? 'Yes' : 'No'}</Badge></div>
|
|
243
|
-
<div>Touch Count: {touchState.touchCount}</div>
|
|
244
|
-
<div>Duration: {touchState.touchDuration}ms</div>
|
|
245
|
-
<div>Velocity: {touchState.touchVelocity.toFixed(2)}px/ms</div>
|
|
246
|
-
<div>Gesture: <Badge variant="outline">{touchState.gestureType}</Badge></div>
|
|
247
|
-
</div>
|
|
248
|
-
</div>
|
|
249
|
-
|
|
250
|
-
<div className="space-y-2">
|
|
251
|
-
<Label>Touch Optimizations</Label>
|
|
252
|
-
<div className="space-y-2">
|
|
253
|
-
{touchOptimizations.map((opt, index) => (
|
|
254
|
-
<div key={index} className="flex items-center justify-between p-2 bg-gray-50 rounded">
|
|
255
|
-
<span className="text-sm">{opt.name}</span>
|
|
256
|
-
<Badge variant={opt.applied ? 'default' : 'secondary'}>
|
|
257
|
-
{opt.applied ? 'Applied' : 'Pending'}
|
|
258
|
-
</Badge>
|
|
259
|
-
</div>
|
|
260
|
-
))}
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
</div>
|
|
264
|
-
|
|
265
|
-
<div className="bg-green-50 p-4 rounded-lg">
|
|
266
|
-
<h4 className="font-semibold mb-2 text-green-800">Touch-Friendly Features</h4>
|
|
267
|
-
<ul className="text-sm text-green-700 space-y-1">
|
|
268
|
-
<li>• 44px minimum touch targets</li>
|
|
269
|
-
<li>• Multi-touch gesture support</li>
|
|
270
|
-
<li>• Touch feedback and animations</li>
|
|
271
|
-
<li>• Performance monitoring</li>
|
|
272
|
-
<li>• Accessibility compliance</li>
|
|
273
|
-
</ul>
|
|
274
|
-
</div>
|
|
275
|
-
</div>
|
|
276
|
-
)
|
|
277
|
-
|
|
278
|
-
const renderPerformanceDemo = () => (
|
|
279
|
-
<div className="space-y-6">
|
|
280
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
281
|
-
<div className="space-y-2">
|
|
282
|
-
<Label>Performance Metrics</Label>
|
|
283
|
-
<div className="space-y-2 text-sm">
|
|
284
|
-
<div>Frame Rate: {performanceMetrics.frameRate} FPS</div>
|
|
285
|
-
<div>Input Latency: {performanceMetrics.inputLatency.toFixed(2)}ms</div>
|
|
286
|
-
<div>Memory Usage: {performanceMetrics.memoryUsage}MB</div>
|
|
287
|
-
<div>Battery Level: {(performanceMetrics.batteryLevel * 100).toFixed(1)}%</div>
|
|
288
|
-
</div>
|
|
289
|
-
</div>
|
|
290
|
-
|
|
291
|
-
<div className="space-y-2">
|
|
292
|
-
<Label>Performance Status</Label>
|
|
293
|
-
<div className="space-y-2">
|
|
294
|
-
<div className="flex items-center justify-between">
|
|
295
|
-
<span className="text-sm">Frame Rate</span>
|
|
296
|
-
<Badge variant={performanceMetrics.frameRate >= 60 ? 'default' : 'destructive'}>
|
|
297
|
-
{performanceMetrics.frameRate >= 60 ? 'Optimal' : 'Low'}
|
|
298
|
-
</Badge>
|
|
299
|
-
</div>
|
|
300
|
-
<div className="flex items-center justify-between">
|
|
301
|
-
<span className="text-sm">Input Latency</span>
|
|
302
|
-
<Badge variant={performanceMetrics.inputLatency < 16 ? 'default' : 'destructive'}>
|
|
303
|
-
{performanceMetrics.inputLatency < 16 ? 'Optimal' : 'High'}
|
|
304
|
-
</Badge>
|
|
305
|
-
</div>
|
|
306
|
-
<div className="flex items-center justify-between">
|
|
307
|
-
<span className="text-sm">Memory</span>
|
|
308
|
-
<Badge variant={performanceMetrics.memoryUsage < 100 ? 'default' : 'destructive'}>
|
|
309
|
-
{performanceMetrics.memoryUsage < 100 ? 'Optimal' : 'High'}
|
|
310
|
-
</Badge>
|
|
311
|
-
</div>
|
|
312
|
-
</div>
|
|
313
|
-
</div>
|
|
314
|
-
</div>
|
|
315
|
-
|
|
316
|
-
<div className="bg-purple-50 p-4 rounded-lg">
|
|
317
|
-
<h4 className="font-semibold mb-2 text-purple-800">Performance Features</h4>
|
|
318
|
-
<ul className="text-sm text-purple-700 space-y-1">
|
|
319
|
-
<li>• Real-time performance monitoring</li>
|
|
320
|
-
<li>• Memory usage optimization</li>
|
|
321
|
-
<li>• Battery-conscious operations</li>
|
|
322
|
-
<li>• Frame rate optimization</li>
|
|
323
|
-
<li>• Input latency tracking</li>
|
|
324
|
-
</ul>
|
|
325
|
-
</div>
|
|
326
|
-
</div>
|
|
327
|
-
)
|
|
328
|
-
|
|
329
|
-
const renderAccessibilityDemo = () => (
|
|
330
|
-
<div className="space-y-6">
|
|
331
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
332
|
-
<div className="space-y-2">
|
|
333
|
-
<Label>Accessibility Features</Label>
|
|
334
|
-
<div className="space-y-2">
|
|
335
|
-
{accessibilityFeatures.map((feature, index) => (
|
|
336
|
-
<div key={index} className="flex items-center justify-between p-2 bg-gray-50 rounded">
|
|
337
|
-
<span className="text-sm">{feature.name}</span>
|
|
338
|
-
<Badge variant={feature.enabled ? 'default' : 'secondary'}>
|
|
339
|
-
{feature.enabled ? 'Enabled' : 'Disabled'}
|
|
340
|
-
</Badge>
|
|
341
|
-
</div>
|
|
342
|
-
))}
|
|
343
|
-
</div>
|
|
344
|
-
</div>
|
|
345
|
-
|
|
346
|
-
<div className="space-y-2">
|
|
347
|
-
<Label>Accessibility Score</Label>
|
|
348
|
-
<div className="text-center p-4 bg-blue-50 rounded-lg">
|
|
349
|
-
<div className="text-3xl font-bold text-blue-600">
|
|
350
|
-
{accessibilityFeatures.filter(f => f.enabled).length}/{accessibilityFeatures.length}
|
|
351
|
-
</div>
|
|
352
|
-
<div className="text-sm text-blue-700">Features Enabled</div>
|
|
353
|
-
</div>
|
|
354
|
-
</div>
|
|
355
|
-
</div>
|
|
356
|
-
|
|
357
|
-
<div className="bg-orange-50 p-4 rounded-lg">
|
|
358
|
-
<h4 className="font-semibold mb-2 text-orange-800">Accessibility Features</h4>
|
|
359
|
-
<ul className="text-sm text-orange-700 space-y-1">
|
|
360
|
-
<li>• ARIA labels and descriptions</li>
|
|
361
|
-
<li>• Keyboard navigation support</li>
|
|
362
|
-
<li>• Screen reader optimization</li>
|
|
363
|
-
<li>• Focus management</li>
|
|
364
|
-
<li>• High contrast support</li>
|
|
365
|
-
</ul>
|
|
366
|
-
</div>
|
|
367
|
-
</div>
|
|
368
|
-
)
|
|
369
|
-
|
|
370
|
-
return (
|
|
371
|
-
<div className="max-w-6xl mx-auto p-6 space-y-6">
|
|
372
|
-
<div className="text-center space-y-4">
|
|
373
|
-
<h1 className="text-4xl font-bold text-gray-900">
|
|
374
|
-
🎯 Story 12: Semantic Input System & Mobile Keyboard Optimization
|
|
375
|
-
</h1>
|
|
376
|
-
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
377
|
-
Advanced input system with semantic type detection, mobile keyboard optimization,
|
|
378
|
-
touch-friendly behavior, performance monitoring, and accessibility support.
|
|
379
|
-
</p>
|
|
380
|
-
<div className="flex flex-wrap justify-center gap-2">
|
|
381
|
-
<Badge variant="default">Semantic Types</Badge>
|
|
382
|
-
<Badge variant="secondary">Mobile Keyboard</Badge>
|
|
383
|
-
<Badge variant="outline">Touch Optimization</Badge>
|
|
384
|
-
<Badge variant="destructive">Performance</Badge>
|
|
385
|
-
<Badge variant="default">Accessibility</Badge>
|
|
386
|
-
</div>
|
|
387
|
-
</div>
|
|
388
|
-
|
|
389
|
-
<div className="flex flex-wrap gap-2 justify-center">
|
|
390
|
-
<Button
|
|
391
|
-
variant={activeDemo === 'semantic' ? 'default' : 'outline'}
|
|
392
|
-
onClick={() => handleDemoChange('semantic')}
|
|
393
|
-
>
|
|
394
|
-
🧠 Semantic Input
|
|
395
|
-
</Button>
|
|
396
|
-
<Button
|
|
397
|
-
variant={activeDemo === 'mobile' ? 'default' : 'outline'}
|
|
398
|
-
onClick={() => handleDemoChange('mobile')}
|
|
399
|
-
>
|
|
400
|
-
📱 Mobile Keyboard
|
|
401
|
-
</Button>
|
|
402
|
-
<Button
|
|
403
|
-
variant={activeDemo === 'touch' ? 'default' : 'outline'}
|
|
404
|
-
onClick={() => handleDemoChange('touch')}
|
|
405
|
-
>
|
|
406
|
-
👆 Touch Friendly
|
|
407
|
-
</Button>
|
|
408
|
-
<Button
|
|
409
|
-
variant={activeDemo === 'performance' ? 'default' : 'outline'}
|
|
410
|
-
onClick={() => handleDemoChange('performance')}
|
|
411
|
-
>
|
|
412
|
-
⚡ Performance
|
|
413
|
-
</Button>
|
|
414
|
-
<Button
|
|
415
|
-
variant={activeDemo === 'accessibility' ? 'default' : 'outline'}
|
|
416
|
-
onClick={() => handleDemoChange('accessibility')}
|
|
417
|
-
>
|
|
418
|
-
♿ Accessibility
|
|
419
|
-
</Button>
|
|
420
|
-
</div>
|
|
421
|
-
|
|
422
|
-
<Card>
|
|
423
|
-
<CardHeader>
|
|
424
|
-
<CardTitle className="flex items-center gap-2">
|
|
425
|
-
{activeDemo === 'semantic' && '🧠 Semantic Input System'}
|
|
426
|
-
{activeDemo === 'mobile' && '📱 Mobile Keyboard Optimization'}
|
|
427
|
-
{activeDemo === 'touch' && '👆 Touch-Friendly Interface'}
|
|
428
|
-
{activeDemo === 'performance' && '⚡ Performance Monitoring'}
|
|
429
|
-
{activeDemo === 'accessibility' && '♿ Accessibility Features'}
|
|
430
|
-
</CardTitle>
|
|
431
|
-
<CardDescription>
|
|
432
|
-
{activeDemo === 'semantic' && 'Intelligent input type detection and mobile keyboard optimization'}
|
|
433
|
-
{activeDemo === 'mobile' && 'Platform-aware keyboard behavior and mobile-specific enhancements'}
|
|
434
|
-
{activeDemo === 'touch' && 'Touch-optimized interactions with 44px minimum targets'}
|
|
435
|
-
{activeDemo === 'performance' && 'Real-time performance monitoring and optimization'}
|
|
436
|
-
{activeDemo === 'accessibility' && 'Comprehensive accessibility support and compliance'}
|
|
437
|
-
</CardDescription>
|
|
438
|
-
</CardHeader>
|
|
439
|
-
<CardContent>
|
|
440
|
-
{activeDemo === 'semantic' && renderSemanticDemo()}
|
|
441
|
-
{activeDemo === 'mobile' && renderMobileDemo()}
|
|
442
|
-
{activeDemo === 'touch' && renderTouchDemo()}
|
|
443
|
-
{activeDemo === 'performance' && renderPerformanceDemo()}
|
|
444
|
-
{activeDemo === 'accessibility' && renderAccessibilityDemo()}
|
|
445
|
-
</CardContent>
|
|
446
|
-
</Card>
|
|
447
|
-
|
|
448
|
-
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
449
|
-
<Card>
|
|
450
|
-
<CardHeader>
|
|
451
|
-
<CardTitle className="text-lg">🎯 Next Steps</CardTitle>
|
|
452
|
-
</CardHeader>
|
|
453
|
-
<CardContent>
|
|
454
|
-
<ul className="text-sm space-y-2">
|
|
455
|
-
<li>✅ Story 12: Semantic Input System [COMPLETE]</li>
|
|
456
|
-
<li>🔧 Story 13: Touch-Friendly Interface</li>
|
|
457
|
-
<li>🎨 Story 14: Advanced Transitions</li>
|
|
458
|
-
<li>📱 Story 15: Mobile Experience Polish</li>
|
|
459
|
-
</ul>
|
|
460
|
-
</CardContent>
|
|
461
|
-
</Card>
|
|
462
|
-
|
|
463
|
-
<Card>
|
|
464
|
-
<CardHeader>
|
|
465
|
-
<CardTitle className="text-lg">🚀 Features</CardTitle>
|
|
466
|
-
</CardHeader>
|
|
467
|
-
<CardContent>
|
|
468
|
-
<ul className="text-sm space-y-2">
|
|
469
|
-
<li>• Semantic input type detection</li>
|
|
470
|
-
<li>• Mobile keyboard optimization</li>
|
|
471
|
-
<li>• Touch-friendly behavior</li>
|
|
472
|
-
<li>• Performance monitoring</li>
|
|
473
|
-
<li>• Accessibility compliance</li>
|
|
474
|
-
</ul>
|
|
475
|
-
</CardContent>
|
|
476
|
-
</Card>
|
|
477
|
-
|
|
478
|
-
<Card>
|
|
479
|
-
<CardHeader>
|
|
480
|
-
<CardTitle className="text-lg">📊 Status</CardTitle>
|
|
481
|
-
</CardHeader>
|
|
482
|
-
<CardContent>
|
|
483
|
-
<div className="space-y-2">
|
|
484
|
-
<div className="flex justify-between">
|
|
485
|
-
<span className="text-sm">Components:</span>
|
|
486
|
-
<Badge variant="default">6/6</Badge>
|
|
487
|
-
</div>
|
|
488
|
-
<div className="flex justify-between">
|
|
489
|
-
<span className="text-sm">Hooks:</span>
|
|
490
|
-
<Badge variant="default">6/6</Badge>
|
|
491
|
-
</div>
|
|
492
|
-
<div className="flex justify-between">
|
|
493
|
-
<span className="text-sm">Tests:</span>
|
|
494
|
-
<Badge variant="default">Passing</Badge>
|
|
495
|
-
</div>
|
|
496
|
-
</div>
|
|
497
|
-
</CardContent>
|
|
498
|
-
</Card>
|
|
499
|
-
</div>
|
|
500
|
-
</div>
|
|
501
|
-
)
|
|
502
|
-
}
|
|
58
|
+
};
|
|
59
|
+
const handleDemoChange = (demo) => {
|
|
60
|
+
setActiveDemo(demo);
|
|
61
|
+
// Start relevant monitoring for the selected demo
|
|
62
|
+
switch (demo) {
|
|
63
|
+
case 'semantic':
|
|
64
|
+
break;
|
|
65
|
+
case 'mobile':
|
|
66
|
+
// Mobile keyboard detection is already running
|
|
67
|
+
break;
|
|
68
|
+
case 'touch':
|
|
69
|
+
autoOptimizeTouch();
|
|
70
|
+
break;
|
|
71
|
+
case 'performance':
|
|
72
|
+
autoOptimize();
|
|
73
|
+
break;
|
|
74
|
+
case 'accessibility':
|
|
75
|
+
// Call functions safely - simplified to avoid type issues
|
|
76
|
+
if (typeof enableARIASupport === 'function') {
|
|
77
|
+
enableARIASupport();
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const renderSemanticDemo = () => (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "name", children: "Full Name" }), _jsx(Input, { id: "name", value: formData.name, onChange: (e) => handleInputChange('name', e.target.value), placeholder: "Enter your full name", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Detected Type: ", _jsx(Badge, { variant: "secondary", children: semanticState.detectedType?.type || 'text' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "email", children: "Email Address" }), _jsx(Input, { id: "email", type: "email", value: formData.email, onChange: (e) => handleInputChange('email', e.target.value), placeholder: "Enter your email", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Keyboard: ", _jsx(Badge, { variant: "secondary", children: semanticState.keyboardOptimized ? 'Optimized' : 'Default' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "phone", children: "Phone Number" }), _jsx(Input, { id: "phone", value: formData.phone, onChange: (e) => handleInputChange('phone', e.target.value), placeholder: "Enter your phone number", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Autocomplete: ", _jsx(Badge, { variant: "secondary", children: semanticState.autocompleteEnhanced ? 'Enhanced' : 'Default' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "creditCard", children: "Credit Card" }), _jsx(Input, { id: "creditCard", value: formData.creditCard, onChange: (e) => handleInputChange('creditCard', e.target.value), placeholder: "Enter credit card number", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Touch: ", _jsx(Badge, { variant: "secondary", children: semanticState.touchOptimized ? 'Optimized' : 'Default' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "amount", children: "Amount" }), _jsx(Input, { id: "amount", value: formData.amount, onChange: (e) => handleInputChange('amount', e.target.value), placeholder: "Enter amount", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Performance: ", _jsx(Badge, { variant: "secondary", children: semanticState.isOptimized ? 'Optimized' : 'Default' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "search", children: "Search" }), _jsx(Input, { id: "search", value: formData.search, onChange: (e) => handleInputChange('search', e.target.value), placeholder: "Search...", className: "semantic-input" }), _jsxs("div", { className: "text-sm text-gray-600", children: ["Type: ", _jsx(Badge, { variant: "secondary", children: semanticState.detectedType?.type || 'text' })] })] })] }), _jsxs("div", { className: "bg-gray-50 p-4 rounded-lg", children: [_jsx("h4", { className: "font-semibold mb-2", children: "Semantic State" }), _jsx("pre", { className: "text-xs text-gray-700 overflow-auto", children: JSON.stringify(semanticState, null, 2) })] })] }));
|
|
83
|
+
const renderMobileDemo = () => (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Keyboard State" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: ["Visible: ", _jsx(Badge, { variant: keyboardState.isVisible ? 'default' : 'secondary', children: keyboardState.isVisible ? 'Yes' : 'No' })] }), _jsxs("div", { children: ["Height: ", keyboardState.height, "px"] }), _jsxs("div", { children: ["Type: ", _jsx(Badge, { variant: "outline", children: keyboardState.type })] }), _jsxs("div", { children: ["Platform: ", _jsx(Badge, { variant: "outline", children: keyboardState.platform })] }), _jsxs("div", { children: ["Orientation: ", _jsx(Badge, { variant: "outline", children: keyboardState.orientation })] })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Keyboard Optimizations" }), _jsx("div", { className: "space-y-2", children: optimizations.map((opt, index) => (_jsxs("div", { className: "flex items-center justify-between p-2 bg-gray-50 rounded", children: [_jsx("span", { className: "text-sm", children: opt.name }), _jsx(Badge, { variant: opt.applied ? 'default' : 'secondary', children: opt.applied ? 'Applied' : 'Pending' })] }, index))) })] })] }), _jsxs("div", { className: "bg-blue-50 p-4 rounded-lg", children: [_jsx("h4", { className: "font-semibold mb-2 text-blue-800", children: "Mobile Keyboard Features" }), _jsxs("ul", { className: "text-sm text-blue-700 space-y-1", children: [_jsx("li", { children: "\u2022 Automatic keyboard type detection" }), _jsx("li", { children: "\u2022 Platform-specific optimizations" }), _jsx("li", { children: "\u2022 Orientation-aware adjustments" }), _jsx("li", { children: "\u2022 Performance monitoring integration" }), _jsx("li", { children: "\u2022 Battery optimization support" })] })] })] }));
|
|
84
|
+
const renderTouchDemo = () => (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Touch State" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: ["Touching: ", _jsx(Badge, { variant: touchState.isTouching ? 'default' : 'secondary', children: touchState.isTouching ? 'Yes' : 'No' })] }), _jsxs("div", { children: ["Touch Count: ", touchState.touchCount] }), _jsxs("div", { children: ["Duration: ", touchState.touchDuration, "ms"] }), _jsxs("div", { children: ["Velocity: ", touchState.touchVelocity.toFixed(2), "px/ms"] }), _jsxs("div", { children: ["Gesture: ", _jsx(Badge, { variant: "outline", children: touchState.gestureType })] })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Touch Optimizations" }), _jsx("div", { className: "space-y-2", children: touchOptimizations.map((opt, index) => (_jsxs("div", { className: "flex items-center justify-between p-2 bg-gray-50 rounded", children: [_jsx("span", { className: "text-sm", children: opt.name }), _jsx(Badge, { variant: opt.applied ? 'default' : 'secondary', children: opt.applied ? 'Applied' : 'Pending' })] }, index))) })] })] }), _jsxs("div", { className: "bg-green-50 p-4 rounded-lg", children: [_jsx("h4", { className: "font-semibold mb-2 text-green-800", children: "Touch-Friendly Features" }), _jsxs("ul", { className: "text-sm text-green-700 space-y-1", children: [_jsx("li", { children: "\u2022 44px minimum touch targets" }), _jsx("li", { children: "\u2022 Multi-touch gesture support" }), _jsx("li", { children: "\u2022 Touch feedback and animations" }), _jsx("li", { children: "\u2022 Performance monitoring" }), _jsx("li", { children: "\u2022 Accessibility compliance" })] })] })] }));
|
|
85
|
+
const renderPerformanceDemo = () => (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Performance Metrics" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: ["Frame Rate: ", performanceMetrics.frameRate, " FPS"] }), _jsxs("div", { children: ["Input Latency: ", performanceMetrics.inputLatency.toFixed(2), "ms"] }), _jsxs("div", { children: ["Memory Usage: ", performanceMetrics.memoryUsage, "MB"] }), _jsxs("div", { children: ["Battery Level: ", (performanceMetrics.batteryLevel * 100).toFixed(1), "%"] })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Performance Status" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Frame Rate" }), _jsx(Badge, { variant: performanceMetrics.frameRate >= 60 ? 'default' : 'destructive', children: performanceMetrics.frameRate >= 60 ? 'Optimal' : 'Low' })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Input Latency" }), _jsx(Badge, { variant: performanceMetrics.inputLatency < 16 ? 'default' : 'destructive', children: performanceMetrics.inputLatency < 16 ? 'Optimal' : 'High' })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Memory" }), _jsx(Badge, { variant: performanceMetrics.memoryUsage < 100 ? 'default' : 'destructive', children: performanceMetrics.memoryUsage < 100 ? 'Optimal' : 'High' })] })] })] })] }), _jsxs("div", { className: "bg-purple-50 p-4 rounded-lg", children: [_jsx("h4", { className: "font-semibold mb-2 text-purple-800", children: "Performance Features" }), _jsxs("ul", { className: "text-sm text-purple-700 space-y-1", children: [_jsx("li", { children: "\u2022 Real-time performance monitoring" }), _jsx("li", { children: "\u2022 Memory usage optimization" }), _jsx("li", { children: "\u2022 Battery-conscious operations" }), _jsx("li", { children: "\u2022 Frame rate optimization" }), _jsx("li", { children: "\u2022 Input latency tracking" })] })] })] }));
|
|
86
|
+
const renderAccessibilityDemo = () => (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Accessibility Features" }), _jsx("div", { className: "space-y-2", children: accessibilityFeatures.map((feature, index) => (_jsxs("div", { className: "flex items-center justify-between p-2 bg-gray-50 rounded", children: [_jsx("span", { className: "text-sm", children: feature.name }), _jsx(Badge, { variant: feature.enabled ? 'default' : 'secondary', children: feature.enabled ? 'Enabled' : 'Disabled' })] }, index))) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Accessibility Score" }), _jsxs("div", { className: "text-center p-4 bg-blue-50 rounded-lg", children: [_jsxs("div", { className: "text-3xl font-bold text-blue-600", children: [accessibilityFeatures.filter(f => f.enabled).length, "/", accessibilityFeatures.length] }), _jsx("div", { className: "text-sm text-blue-700", children: "Features Enabled" })] })] })] }), _jsxs("div", { className: "bg-orange-50 p-4 rounded-lg", children: [_jsx("h4", { className: "font-semibold mb-2 text-orange-800", children: "Accessibility Features" }), _jsxs("ul", { className: "text-sm text-orange-700 space-y-1", children: [_jsx("li", { children: "\u2022 ARIA labels and descriptions" }), _jsx("li", { children: "\u2022 Keyboard navigation support" }), _jsx("li", { children: "\u2022 Screen reader optimization" }), _jsx("li", { children: "\u2022 Focus management" }), _jsx("li", { children: "\u2022 High contrast support" })] })] })] }));
|
|
87
|
+
return (_jsxs("div", { className: "max-w-6xl mx-auto p-6 space-y-6", children: [_jsxs("div", { className: "text-center space-y-4", children: [_jsx("h1", { className: "text-4xl font-bold text-gray-900", children: "\uD83C\uDFAF Story 12: Semantic Input System & Mobile Keyboard Optimization" }), _jsx("p", { className: "text-xl text-gray-600 max-w-3xl mx-auto", children: "Advanced input system with semantic type detection, mobile keyboard optimization, touch-friendly behavior, performance monitoring, and accessibility support." }), _jsxs("div", { className: "flex flex-wrap justify-center gap-2", children: [_jsx(Badge, { variant: "default", children: "Semantic Types" }), _jsx(Badge, { variant: "secondary", children: "Mobile Keyboard" }), _jsx(Badge, { variant: "outline", children: "Touch Optimization" }), _jsx(Badge, { variant: "destructive", children: "Performance" }), _jsx(Badge, { variant: "default", children: "Accessibility" })] })] }), _jsxs("div", { className: "flex flex-wrap gap-2 justify-center", children: [_jsx(Button, { variant: activeDemo === 'semantic' ? 'default' : 'outline', onClick: () => handleDemoChange('semantic'), children: "\uD83E\uDDE0 Semantic Input" }), _jsx(Button, { variant: activeDemo === 'mobile' ? 'default' : 'outline', onClick: () => handleDemoChange('mobile'), children: "\uD83D\uDCF1 Mobile Keyboard" }), _jsx(Button, { variant: activeDemo === 'touch' ? 'default' : 'outline', onClick: () => handleDemoChange('touch'), children: "\uD83D\uDC46 Touch Friendly" }), _jsx(Button, { variant: activeDemo === 'performance' ? 'default' : 'outline', onClick: () => handleDemoChange('performance'), children: "\u26A1 Performance" }), _jsx(Button, { variant: activeDemo === 'accessibility' ? 'default' : 'outline', onClick: () => handleDemoChange('accessibility'), children: "\u267F Accessibility" })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [activeDemo === 'semantic' && '🧠 Semantic Input System', activeDemo === 'mobile' && '📱 Mobile Keyboard Optimization', activeDemo === 'touch' && '👆 Touch-Friendly Interface', activeDemo === 'performance' && '⚡ Performance Monitoring', activeDemo === 'accessibility' && '♿ Accessibility Features'] }), _jsxs(CardDescription, { children: [activeDemo === 'semantic' && 'Intelligent input type detection and mobile keyboard optimization', activeDemo === 'mobile' && 'Platform-aware keyboard behavior and mobile-specific enhancements', activeDemo === 'touch' && 'Touch-optimized interactions with 44px minimum targets', activeDemo === 'performance' && 'Real-time performance monitoring and optimization', activeDemo === 'accessibility' && 'Comprehensive accessibility support and compliance'] })] }), _jsxs(CardContent, { children: [activeDemo === 'semantic' && renderSemanticDemo(), activeDemo === 'mobile' && renderMobileDemo(), activeDemo === 'touch' && renderTouchDemo(), activeDemo === 'performance' && renderPerformanceDemo(), activeDemo === 'accessibility' && renderAccessibilityDemo()] })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-lg", children: "\uD83C\uDFAF Next Steps" }) }), _jsx(CardContent, { children: _jsxs("ul", { className: "text-sm space-y-2", children: [_jsx("li", { children: "\u2705 Story 12: Semantic Input System [COMPLETE]" }), _jsx("li", { children: "\uD83D\uDD27 Story 13: Touch-Friendly Interface" }), _jsx("li", { children: "\uD83C\uDFA8 Story 14: Advanced Transitions" }), _jsx("li", { children: "\uD83D\uDCF1 Story 15: Mobile Experience Polish" })] }) })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-lg", children: "\uD83D\uDE80 Features" }) }), _jsx(CardContent, { children: _jsxs("ul", { className: "text-sm space-y-2", children: [_jsx("li", { children: "\u2022 Semantic input type detection" }), _jsx("li", { children: "\u2022 Mobile keyboard optimization" }), _jsx("li", { children: "\u2022 Touch-friendly behavior" }), _jsx("li", { children: "\u2022 Performance monitoring" }), _jsx("li", { children: "\u2022 Accessibility compliance" })] }) })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-lg", children: "\uD83D\uDCCA Status" }) }), _jsx(CardContent, { children: _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Components:" }), _jsx(Badge, { variant: "default", children: "6/6" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Hooks:" }), _jsx(Badge, { variant: "default", children: "6/6" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Tests:" }), _jsx(Badge, { variant: "default", children: "Passing" })] })] }) })] })] })] }));
|
|
88
|
+
};
|