@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,596 +1,110 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
const getModeColor = (mode: string) => {
|
|
110
|
-
|
|
111
|
-
case 'high': return 'text-green-600 bg-green-100'
|
|
112
|
-
case 'medium': return 'text-yellow-600 bg-yellow-100'
|
|
113
|
-
case 'low': return 'text-red-600 bg-red-100'
|
|
114
|
-
default: return 'text-gray-600 bg-gray-100'
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Throttling level color mapping
|
|
119
|
-
const getThrottlingColor = (level: string) => {
|
|
120
|
-
switch (level) {
|
|
121
|
-
case 'none': return 'text-green-600 bg-green-100'
|
|
122
|
-
case 'light': return 'text-blue-600 bg-blue-100'
|
|
123
|
-
case 'moderate': return 'text-yellow-600 bg-yellow-100'
|
|
124
|
-
case 'aggressive': return 'text-red-600 bg-red-100'
|
|
125
|
-
default: return 'text-gray-600 bg-gray-100'
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Memory trend icon
|
|
130
|
-
const getMemoryTrendIcon = (trend: string) => {
|
|
131
|
-
switch (trend) {
|
|
132
|
-
case 'increasing': return '📈'
|
|
133
|
-
case 'decreasing': return '📉'
|
|
134
|
-
case 'stable': return '➡️'
|
|
135
|
-
default: return '❓'
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Battery icon
|
|
140
|
-
const getBatteryIcon = (level: number, charging: boolean) => {
|
|
141
|
-
if (charging) return '🔌'
|
|
142
|
-
if (level <= 0.15) return '🔴'
|
|
143
|
-
if (level <= 0.3) return '🟠'
|
|
144
|
-
if (level <= 0.5) return '🟡'
|
|
145
|
-
return '🟢'
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const tabs = [
|
|
149
|
-
{ id: 'overview', label: 'Overview', icon: '📊' },
|
|
150
|
-
{ id: 'fps', label: 'Frame Rate', icon: '🎬' },
|
|
151
|
-
{ id: 'memory', label: 'Memory', icon: '🧠' },
|
|
152
|
-
{ id: 'battery', label: 'Battery', icon: '🔋' },
|
|
153
|
-
{ id: 'throttling', label: 'Throttling', icon: '⚡' }
|
|
154
|
-
]
|
|
155
|
-
|
|
156
|
-
return (
|
|
157
|
-
<div className="space-y-6">
|
|
158
|
-
{/* Tab Navigation */}
|
|
159
|
-
<div className="flex flex-wrap gap-2 border-b pb-4">
|
|
160
|
-
{tabs.map((tab) => (
|
|
161
|
-
<Button
|
|
162
|
-
key={tab.id}
|
|
163
|
-
variant={activeTab === tab.id ? 'default' : 'outline'}
|
|
164
|
-
size="sm"
|
|
165
|
-
onClick={() => setActiveTab(tab.id as any)}
|
|
166
|
-
className="flex items-center gap-2"
|
|
167
|
-
>
|
|
168
|
-
<span>{tab.icon}</span>
|
|
169
|
-
{tab.label}
|
|
170
|
-
</Button>
|
|
171
|
-
))}
|
|
172
|
-
</div>
|
|
173
|
-
|
|
174
|
-
{/* Overview Tab */}
|
|
175
|
-
{activeTab === 'overview' && (
|
|
176
|
-
<div className="space-y-6">
|
|
177
|
-
{/* Performance Summary */}
|
|
178
|
-
<Card>
|
|
179
|
-
<CardHeader>
|
|
180
|
-
<CardTitle className="flex items-center gap-2">
|
|
181
|
-
🎯 Performance Summary
|
|
182
|
-
<Badge variant={performanceMode === 'high' ? 'default' : 'secondary'}>
|
|
183
|
-
{performanceMode.toUpperCase()} MODE
|
|
184
|
-
</Badge>
|
|
185
|
-
</CardTitle>
|
|
186
|
-
<CardDescription>
|
|
187
|
-
Real-time performance overview and system status
|
|
188
|
-
</CardDescription>
|
|
189
|
-
</CardHeader>
|
|
190
|
-
<CardContent className="space-y-4">
|
|
191
|
-
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
192
|
-
{/* FPS Status */}
|
|
193
|
-
<div className="text-center p-4 border rounded-lg">
|
|
194
|
-
<div className="text-2xl font-bold text-blue-600">{fpsMetrics.fps}</div>
|
|
195
|
-
<div className="text-sm text-gray-600">FPS</div>
|
|
196
|
-
<Badge className={`mt-2 ${getScoreColor(fpsScore)}`}>
|
|
197
|
-
{fpsScore}
|
|
198
|
-
</Badge>
|
|
199
|
-
</div>
|
|
200
|
-
|
|
201
|
-
{/* Memory Status */}
|
|
202
|
-
<div className="text-center p-4 border rounded-lg">
|
|
203
|
-
<div className="text-2xl font-bold text-purple-600">
|
|
204
|
-
{memoryMetrics.memoryPercentage ? memoryMetrics.memoryPercentage.toFixed(1) : 'N/A'}%
|
|
205
|
-
</div>
|
|
206
|
-
<div className="text-sm text-gray-600">Memory Usage</div>
|
|
207
|
-
<div className="flex items-center justify-center gap-1 mt-2">
|
|
208
|
-
<span>{getMemoryTrendIcon(memoryTrend)}</span>
|
|
209
|
-
<Badge variant={memoryLeakDetected ? 'destructive' : 'secondary'}>
|
|
210
|
-
{memoryLeakDetected ? 'Leak Detected' : memoryTrend}
|
|
211
|
-
</Badge>
|
|
212
|
-
</div>
|
|
213
|
-
</div>
|
|
214
|
-
|
|
215
|
-
{/* Battery Status */}
|
|
216
|
-
<div className="text-center p-4 border rounded-lg">
|
|
217
|
-
<div className="text-2xl font-bold text-green-600">
|
|
218
|
-
{getBatteryIcon(batteryLevel || 1, isCharging)}
|
|
219
|
-
</div>
|
|
220
|
-
<div className="text-sm text-gray-600">Battery</div>
|
|
221
|
-
<Badge variant={isCriticalBattery ? 'destructive' : isLowPowerMode ? 'secondary' : 'default'}>
|
|
222
|
-
{getBatteryStatusText()}
|
|
223
|
-
</Badge>
|
|
224
|
-
</div>
|
|
225
|
-
</div>
|
|
226
|
-
|
|
227
|
-
{/* Throttling Status */}
|
|
228
|
-
{throttlingEnabled && (
|
|
229
|
-
<div className="p-4 bg-yellow-50 border border-yellow-200 rounded-lg">
|
|
230
|
-
<div className="flex items-center gap-2">
|
|
231
|
-
<span className="text-yellow-600">⚠️</span>
|
|
232
|
-
<div>
|
|
233
|
-
<div className="font-medium text-yellow-800">Performance Throttling Active</div>
|
|
234
|
-
<div className="text-sm text-yellow-700">{throttlingReason}</div>
|
|
235
|
-
</div>
|
|
236
|
-
</div>
|
|
237
|
-
</div>
|
|
238
|
-
)}
|
|
239
|
-
|
|
240
|
-
{/* Recommendations Toggle */}
|
|
241
|
-
<Button
|
|
242
|
-
variant="outline"
|
|
243
|
-
onClick={() => setShowRecommendations(!showRecommendations)}
|
|
244
|
-
className="w-full"
|
|
245
|
-
>
|
|
246
|
-
{showRecommendations ? 'Hide' : 'Show'} Performance Recommendations
|
|
247
|
-
</Button>
|
|
248
|
-
|
|
249
|
-
{/* Performance Recommendations */}
|
|
250
|
-
{showRecommendations && (
|
|
251
|
-
<div className="space-y-3">
|
|
252
|
-
<h4 className="font-medium text-gray-900">Optimization Recommendations:</h4>
|
|
253
|
-
<ul className="space-y-2 text-sm text-gray-700">
|
|
254
|
-
{getOptimizationRecommendations().map((rec, index) => (
|
|
255
|
-
<li key={index} className="flex items-start gap-2">
|
|
256
|
-
<span className="text-blue-500">•</span>
|
|
257
|
-
{rec}
|
|
258
|
-
</li>
|
|
259
|
-
))}
|
|
260
|
-
</ul>
|
|
261
|
-
</div>
|
|
262
|
-
)}
|
|
263
|
-
</CardContent>
|
|
264
|
-
</Card>
|
|
265
|
-
|
|
266
|
-
{/* Device Information */}
|
|
267
|
-
<Card>
|
|
268
|
-
<CardHeader>
|
|
269
|
-
<CardTitle className="flex items-center gap-2">
|
|
270
|
-
📱 Device Information
|
|
271
|
-
</CardTitle>
|
|
272
|
-
</CardHeader>
|
|
273
|
-
<CardContent>
|
|
274
|
-
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 text-sm">
|
|
275
|
-
<div>
|
|
276
|
-
<span className="font-medium">Device Type:</span> {device.screenSize}
|
|
277
|
-
</div>
|
|
278
|
-
<div>
|
|
279
|
-
<span className="font-medium">Screen Size:</span> {device.screenSize}
|
|
280
|
-
</div>
|
|
281
|
-
<div>
|
|
282
|
-
<span className="font-medium">Orientation:</span> {device.orientation}
|
|
283
|
-
</div>
|
|
284
|
-
<div>
|
|
285
|
-
<span className="font-medium">Touch Device:</span> {device.touchDevice ? 'Yes' : 'No'}
|
|
286
|
-
</div>
|
|
287
|
-
</div>
|
|
288
|
-
</CardContent>
|
|
289
|
-
</Card>
|
|
290
|
-
</div>
|
|
291
|
-
)}
|
|
292
|
-
|
|
293
|
-
{/* Frame Rate Tab */}
|
|
294
|
-
{activeTab === 'fps' && (
|
|
295
|
-
<Card>
|
|
296
|
-
<CardHeader>
|
|
297
|
-
<CardTitle className="flex items-center gap-2">
|
|
298
|
-
🎬 Frame Rate Monitoring
|
|
299
|
-
<Badge className={getScoreColor(fpsScore)}>
|
|
300
|
-
{fpsScore.toUpperCase()}
|
|
301
|
-
</Badge>
|
|
302
|
-
</CardTitle>
|
|
303
|
-
<CardDescription>
|
|
304
|
-
Real-time FPS tracking and performance analysis
|
|
305
|
-
</CardDescription>
|
|
306
|
-
</CardHeader>
|
|
307
|
-
<CardContent className="space-y-4">
|
|
308
|
-
<div className="grid grid-cols-2 md:grid-cols-4 gap-4">
|
|
309
|
-
<div className="text-center p-3 border rounded-lg">
|
|
310
|
-
<div className="text-xl font-bold text-blue-600">{fpsMetrics.fps}</div>
|
|
311
|
-
<div className="text-xs text-gray-600">Current FPS</div>
|
|
312
|
-
</div>
|
|
313
|
-
<div className="text-center p-3 border rounded-lg">
|
|
314
|
-
<div className="text-xl font-bold text-green-600">{fpsMetrics.averageFPS}</div>
|
|
315
|
-
<div className="text-xs text-gray-600">Average FPS</div>
|
|
316
|
-
</div>
|
|
317
|
-
<div className="text-center p-3 border rounded-lg">
|
|
318
|
-
<div className="text-xl font-bold text-purple-600">{fpsMetrics.minFPS}</div>
|
|
319
|
-
<div className="text-xs text-gray-600">Min FPS</div>
|
|
320
|
-
</div>
|
|
321
|
-
<div className="text-center p-3 border rounded-lg">
|
|
322
|
-
<div className="text-xl font-bold text-orange-600">{fpsMetrics.maxFPS}</div>
|
|
323
|
-
<div className="text-xs text-gray-600">Max FPS</div>
|
|
324
|
-
</div>
|
|
325
|
-
</div>
|
|
326
|
-
|
|
327
|
-
<div className="p-4 bg-blue-50 border border-blue-200 rounded-lg">
|
|
328
|
-
<h4 className="font-medium text-blue-800 mb-2">Performance Insights:</h4>
|
|
329
|
-
<ul className="space-y-1 text-sm text-blue-700">
|
|
330
|
-
{getFPSInsights().map((insight, index) => (
|
|
331
|
-
<li key={index} className="flex items-start gap-2">
|
|
332
|
-
<span className="text-blue-500">•</span>
|
|
333
|
-
{insight}
|
|
334
|
-
</li>
|
|
335
|
-
))}
|
|
336
|
-
</ul>
|
|
337
|
-
</div>
|
|
338
|
-
</CardContent>
|
|
339
|
-
</Card>
|
|
340
|
-
)}
|
|
341
|
-
|
|
342
|
-
{/* Memory Tab */}
|
|
343
|
-
{activeTab === 'memory' && (
|
|
344
|
-
<Card>
|
|
345
|
-
<CardHeader>
|
|
346
|
-
<CardTitle className="flex items-center gap-2">
|
|
347
|
-
🧠 Memory Usage Monitoring
|
|
348
|
-
<Badge variant={memoryLeakDetected ? 'destructive' : 'secondary'}>
|
|
349
|
-
{memoryLeakDetected ? 'LEAK DETECTED' : memoryTrend.toUpperCase()}
|
|
350
|
-
</Badge>
|
|
351
|
-
</CardTitle>
|
|
352
|
-
<CardDescription>
|
|
353
|
-
Memory usage tracking and leak detection
|
|
354
|
-
</CardDescription>
|
|
355
|
-
</CardHeader>
|
|
356
|
-
<CardContent className="space-y-4">
|
|
357
|
-
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
358
|
-
<div className="text-center p-3 border rounded-lg">
|
|
359
|
-
<div className="text-xl font-bold text-purple-600">
|
|
360
|
-
{memoryMetrics.memoryPercentage ? memoryMetrics.memoryPercentage.toFixed(1) : 'N/A'}%
|
|
361
|
-
</div>
|
|
362
|
-
<div className="text-xs text-gray-600">Usage</div>
|
|
363
|
-
</div>
|
|
364
|
-
<div className="text-center p-3 border rounded-lg">
|
|
365
|
-
<div className="text-xl font-bold text-blue-600">
|
|
366
|
-
{memoryMetrics.usedJSHeapSize ? (memoryMetrics.usedJSHeapSize / 1024 / 1024).toFixed(1) : 'N/A'} MB
|
|
367
|
-
</div>
|
|
368
|
-
<div className="text-xs text-gray-600">Used</div>
|
|
369
|
-
</div>
|
|
370
|
-
<div className="text-center p-3 border rounded-lg">
|
|
371
|
-
<div className="text-xl font-bold text-green-600">
|
|
372
|
-
{memoryMetrics.jsHeapSizeLimit ? (memoryMetrics.jsHeapSizeLimit / 1024 / 1024).toFixed(1) : 'N/A'} MB
|
|
373
|
-
</div>
|
|
374
|
-
<div className="text-xs text-gray-600">Limit</div>
|
|
375
|
-
</div>
|
|
376
|
-
</div>
|
|
377
|
-
|
|
378
|
-
<div className="p-4 bg-purple-50 border border-purple-200 rounded-lg">
|
|
379
|
-
<h4 className="font-medium text-purple-800 mb-2">Memory Optimization:</h4>
|
|
380
|
-
<ul className="space-y-1 text-sm text-purple-700">
|
|
381
|
-
{getMemoryRecommendations().map((rec, index) => (
|
|
382
|
-
<li key={index} className="flex items-start gap-2">
|
|
383
|
-
<span className="text-purple-500">•</span>
|
|
384
|
-
{rec}
|
|
385
|
-
</li>
|
|
386
|
-
))}
|
|
387
|
-
</ul>
|
|
388
|
-
</div>
|
|
389
|
-
|
|
390
|
-
{memoryLeakDetected && (
|
|
391
|
-
<div className="p-4 bg-red-50 border border-red-200 rounded-lg">
|
|
392
|
-
<h4 className="font-medium text-red-800 mb-2">Memory Leak Cleanup Suggestions:</h4>
|
|
393
|
-
<ul className="space-y-1 text-sm text-red-700">
|
|
394
|
-
{getMemoryCleanupSuggestions().map((suggestion, index) => (
|
|
395
|
-
<li key={index} className="flex items-start gap-2">
|
|
396
|
-
<span className="text-red-500">•</span>
|
|
397
|
-
{suggestion}
|
|
398
|
-
</li>
|
|
399
|
-
))}
|
|
400
|
-
</ul>
|
|
401
|
-
</div>
|
|
402
|
-
)}
|
|
403
|
-
</CardContent>
|
|
404
|
-
</Card>
|
|
405
|
-
)}
|
|
406
|
-
|
|
407
|
-
{/* Battery Tab */}
|
|
408
|
-
{activeTab === 'battery' && (
|
|
409
|
-
<Card>
|
|
410
|
-
<CardHeader>
|
|
411
|
-
<CardTitle className="flex items-center gap-2">
|
|
412
|
-
🔋 Battery Status Monitoring
|
|
413
|
-
<Badge variant={isCriticalBattery ? 'destructive' : isLowPowerMode ? 'secondary' : 'default'}>
|
|
414
|
-
{getBatteryStatusText()}
|
|
415
|
-
</Badge>
|
|
416
|
-
</CardTitle>
|
|
417
|
-
<CardDescription>
|
|
418
|
-
Battery level monitoring and power optimization
|
|
419
|
-
</CardDescription>
|
|
420
|
-
</CardHeader>
|
|
421
|
-
<CardContent className="space-y-4">
|
|
422
|
-
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
|
|
423
|
-
<div className="text-center p-3 border rounded-lg">
|
|
424
|
-
<div className="text-2xl">{getBatteryIcon(batteryLevel || 1, isCharging)}</div>
|
|
425
|
-
<div className="text-xl font-bold text-green-600">
|
|
426
|
-
{batteryLevel ? (batteryLevel * 100).toFixed(1) : 'N/A'}%
|
|
427
|
-
</div>
|
|
428
|
-
<div className="text-xs text-gray-600">Level</div>
|
|
429
|
-
</div>
|
|
430
|
-
<div className="text-center p-3 border rounded-lg">
|
|
431
|
-
<div className="text-xl font-bold text-blue-600">
|
|
432
|
-
{isCharging ? 'Yes' : 'No'}
|
|
433
|
-
</div>
|
|
434
|
-
<div className="text-xs text-gray-600">Charging</div>
|
|
435
|
-
</div>
|
|
436
|
-
<div className="text-center p-3 border rounded-lg">
|
|
437
|
-
<div className="text-xl font-bold text-purple-600">
|
|
438
|
-
{batteryMetrics.chargingTime || 'N/A'}
|
|
439
|
-
</div>
|
|
440
|
-
<div className="text-xs text-gray-600">Charging Time</div>
|
|
441
|
-
</div>
|
|
442
|
-
<div className="text-center p-3 border rounded-lg">
|
|
443
|
-
<div className="text-xl font-bold text-orange-600">
|
|
444
|
-
{batteryMetrics.dischargingTime || 'N/A'}
|
|
445
|
-
</div>
|
|
446
|
-
<div className="text-xs text-gray-600">Discharge Time</div>
|
|
447
|
-
</div>
|
|
448
|
-
</div>
|
|
449
|
-
|
|
450
|
-
<div className="p-4 bg-green-50 border border-green-200 rounded-lg">
|
|
451
|
-
<h4 className="font-medium text-green-800 mb-2">Battery Optimization:</h4>
|
|
452
|
-
<ul className="space-y-1 text-sm text-green-700">
|
|
453
|
-
{getBatteryRecommendations().map((rec, index) => (
|
|
454
|
-
<li key={index} className="flex items-start gap-2">
|
|
455
|
-
<span className="text-green-500">•</span>
|
|
456
|
-
{rec}
|
|
457
|
-
</li>
|
|
458
|
-
))}
|
|
459
|
-
</ul>
|
|
460
|
-
</div>
|
|
461
|
-
|
|
462
|
-
{(isLowPowerMode || isCriticalBattery) && (
|
|
463
|
-
<div className="p-4 bg-yellow-50 border border-yellow-200 rounded-lg">
|
|
464
|
-
<h4 className="font-medium text-yellow-800 mb-2">Power Saving Suggestions:</h4>
|
|
465
|
-
<ul className="space-y-1 text-sm text-yellow-700">
|
|
466
|
-
{getBatteryPowerSuggestions().map((suggestion, index) => (
|
|
467
|
-
<li key={index} className="flex items-start gap-2">
|
|
468
|
-
<span className="text-yellow-500">•</span>
|
|
469
|
-
{suggestion}
|
|
470
|
-
</li>
|
|
471
|
-
))}
|
|
472
|
-
</ul>
|
|
473
|
-
</div>
|
|
474
|
-
)}
|
|
475
|
-
</CardContent>
|
|
476
|
-
</Card>
|
|
477
|
-
)}
|
|
478
|
-
|
|
479
|
-
{/* Throttling Tab */}
|
|
480
|
-
{activeTab === 'throttling' && (
|
|
481
|
-
<Card>
|
|
482
|
-
<CardHeader>
|
|
483
|
-
<CardTitle className="flex items-center gap-2">
|
|
484
|
-
⚡ Performance Throttling
|
|
485
|
-
<Badge className={getThrottlingColor(throttleLevel)}>
|
|
486
|
-
{throttleLevel.toUpperCase()}
|
|
487
|
-
</Badge>
|
|
488
|
-
</CardTitle>
|
|
489
|
-
<CardDescription>
|
|
490
|
-
Automatic and manual performance throttling controls
|
|
491
|
-
</CardDescription>
|
|
492
|
-
</CardHeader>
|
|
493
|
-
<CardContent className="space-y-4">
|
|
494
|
-
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
495
|
-
<div className="text-center p-3 border rounded-lg">
|
|
496
|
-
<div className="text-xl font-bold text-blue-600">
|
|
497
|
-
{isThrottling ? 'Active' : 'Inactive'}
|
|
498
|
-
</div>
|
|
499
|
-
<div className="text-xs text-gray-600">Throttling Status</div>
|
|
500
|
-
</div>
|
|
501
|
-
<div className="text-center p-3 border rounded-lg">
|
|
502
|
-
<Badge className={getModeColor(performanceSettings.animationQuality)}>
|
|
503
|
-
{performanceSettings.animationQuality.toUpperCase()}
|
|
504
|
-
</Badge>
|
|
505
|
-
<div className="text-xs text-gray-600 mt-1">Performance Mode</div>
|
|
506
|
-
</div>
|
|
507
|
-
<div className="text-center p-3 border rounded-lg">
|
|
508
|
-
<div className="text-xl font-bold text-green-600">
|
|
509
|
-
{performanceSettings.memoryOptimization ? 'Yes' : 'No'}
|
|
510
|
-
</div>
|
|
511
|
-
<div className="text-xs text-gray-600">Battery Optimized</div>
|
|
512
|
-
</div>
|
|
513
|
-
</div>
|
|
514
|
-
|
|
515
|
-
{/* Throttling Status */}
|
|
516
|
-
<div className="flex flex-wrap gap-2">
|
|
517
|
-
<div className="text-center p-3 border rounded-lg">
|
|
518
|
-
<div className="text-lg font-bold text-blue-600">
|
|
519
|
-
{throttleLevel}
|
|
520
|
-
</div>
|
|
521
|
-
<div className="text-xs text-gray-600">Current Level</div>
|
|
522
|
-
</div>
|
|
523
|
-
<div className="text-center p-3 border rounded-lg">
|
|
524
|
-
<div className="text-lg font-bold text-green-600">
|
|
525
|
-
{isThrottling ? 'Active' : 'Inactive'}
|
|
526
|
-
</div>
|
|
527
|
-
<div className="text-xs text-gray-600">Throttling Status</div>
|
|
528
|
-
</div>
|
|
529
|
-
</div>
|
|
530
|
-
|
|
531
|
-
{/* Performance Settings */}
|
|
532
|
-
<div className="space-y-2">
|
|
533
|
-
<h4 className="font-medium text-gray-900">Performance Settings:</h4>
|
|
534
|
-
<div className="grid grid-cols-2 gap-4 text-sm">
|
|
535
|
-
<div>
|
|
536
|
-
<span className="font-medium">Max Concurrent Animations:</span>
|
|
537
|
-
<div className="text-blue-600">{performanceSettings.maxConcurrentAnimations}</div>
|
|
538
|
-
</div>
|
|
539
|
-
<div>
|
|
540
|
-
<span className="font-medium">Frame Rate Limit:</span>
|
|
541
|
-
<div className="text-blue-600">{performanceSettings.frameRateLimit}fps</div>
|
|
542
|
-
</div>
|
|
543
|
-
<div>
|
|
544
|
-
<span className="font-medium">Animation Quality:</span>
|
|
545
|
-
<div className="text-blue-600">{performanceSettings.animationQuality}</div>
|
|
546
|
-
</div>
|
|
547
|
-
<div>
|
|
548
|
-
<span className="font-medium">Memory Optimization:</span>
|
|
549
|
-
<div className="text-blue-600">{performanceSettings.memoryOptimization ? 'Yes' : 'No'}</div>
|
|
550
|
-
</div>
|
|
551
|
-
</div>
|
|
552
|
-
</div>
|
|
553
|
-
|
|
554
|
-
{/* Throttling Information */}
|
|
555
|
-
{isThrottling && (
|
|
556
|
-
<div className="p-4 bg-yellow-50 border border-yellow-200 rounded-lg">
|
|
557
|
-
<h4 className="font-medium text-yellow-800 mb-2">Throttling Information:</h4>
|
|
558
|
-
<div className="text-sm text-yellow-700 space-y-1">
|
|
559
|
-
<div><strong>Level:</strong> {throttleLevel}</div>
|
|
560
|
-
<div><strong>Performance Score:</strong> {metrics.performanceScore}</div>
|
|
561
|
-
<div><strong>FPS:</strong> {metrics.fps}</div>
|
|
562
|
-
</div>
|
|
563
|
-
</div>
|
|
564
|
-
)}
|
|
565
|
-
|
|
566
|
-
{/* Recommendations */}
|
|
567
|
-
<div className="p-4 bg-blue-50 border border-blue-200 rounded-lg">
|
|
568
|
-
<h4 className="font-medium text-blue-800 mb-2">Throttling Recommendations:</h4>
|
|
569
|
-
<ul className="space-y-1 text-sm text-blue-700">
|
|
570
|
-
{recommendations.map((rec, index) => (
|
|
571
|
-
<li key={index} className="flex items-start gap-2">
|
|
572
|
-
<span className="text-blue-500">•</span>
|
|
573
|
-
{rec}
|
|
574
|
-
</li>
|
|
575
|
-
))}
|
|
576
|
-
</ul>
|
|
577
|
-
</div>
|
|
578
|
-
|
|
579
|
-
{/* Optimization Suggestions */}
|
|
580
|
-
<div className="p-4 bg-green-50 border border-green-200 rounded-lg">
|
|
581
|
-
<h4 className="font-medium text-green-800 mb-2">Optimization Suggestions:</h4>
|
|
582
|
-
<ul className="space-y-1 text-sm text-green-700">
|
|
583
|
-
{optimizations.map((suggestion, index) => (
|
|
584
|
-
<li key={index} className="flex items-start gap-2">
|
|
585
|
-
<span className="text-green-500">•</span>
|
|
586
|
-
{suggestion}
|
|
587
|
-
</li>
|
|
588
|
-
))}
|
|
589
|
-
</ul>
|
|
590
|
-
</div>
|
|
591
|
-
</CardContent>
|
|
592
|
-
</Card>
|
|
593
|
-
)}
|
|
594
|
-
</div>
|
|
595
|
-
)
|
|
596
|
-
}
|
|
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 { Badge } from './badge';
|
|
6
|
+
import { usePerformance, useFrameRate, useMemoryUsage, useBatteryStatus, usePerformanceThrottling } from '../../hooks';
|
|
7
|
+
import { useDevice } from '../../hooks/use-device';
|
|
8
|
+
export const PerformanceDemo = () => {
|
|
9
|
+
const [activeTab, setActiveTab] = useState('overview');
|
|
10
|
+
const [showRecommendations, setShowRecommendations] = useState(false);
|
|
11
|
+
const device = useDevice();
|
|
12
|
+
// Main performance hook
|
|
13
|
+
const { throttlingEnabled, throttlingReason, performanceMode, getOptimizationRecommendations } = usePerformance({
|
|
14
|
+
callbacks: {
|
|
15
|
+
onFPSWarning: (fps) => console.warn(`FPS Warning: ${fps}`),
|
|
16
|
+
onMemoryWarning: (usage) => console.warn(`Memory Warning: ${(usage * 100).toFixed(1)}%`),
|
|
17
|
+
onBatteryLow: (level) => console.warn(`Battery Low: ${(level * 100).toFixed(1)}%`),
|
|
18
|
+
onPerformanceModeChange: (mode) => console.log(`Performance mode changed to: ${mode}`),
|
|
19
|
+
onThrottlingChange: (enabled, reason) => console.log(`Throttling ${enabled ? 'enabled' : 'disabled'}: ${reason}`)
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
// Specialized hooks
|
|
23
|
+
const { metrics: fpsMetrics, performanceScore: fpsScore, getPerformanceInsights: getFPSInsights } = useFrameRate({
|
|
24
|
+
callbacks: {
|
|
25
|
+
onFPSWarning: (fps) => console.warn(`Frame rate warning: ${fps} FPS`),
|
|
26
|
+
onFPSDrop: (fps, previous) => console.warn(`FPS drop detected: ${previous} → ${fps}`)
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const { metrics: memoryMetrics, memoryTrend, memoryLeakDetected, getOptimizationRecommendations: getMemoryRecommendations, getCleanupSuggestions: getMemoryCleanupSuggestions } = useMemoryUsage({
|
|
30
|
+
callbacks: {
|
|
31
|
+
onMemoryWarning: (usage) => console.warn(`Memory usage warning: ${(usage * 100).toFixed(1)}%`),
|
|
32
|
+
onMemoryLeakDetected: (trend) => console.warn(`Memory leak detected: ${trend} trend`)
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const { metrics: batteryMetrics, batteryLevel, isCharging, isLowPowerMode, isCriticalBattery, getOptimizationRecommendations: getBatteryRecommendations, getPowerSavingSuggestions: getBatteryPowerSuggestions, getBatteryStatus: getBatteryStatusText } = useBatteryStatus({
|
|
36
|
+
callbacks: {
|
|
37
|
+
onBatteryLow: (level) => console.warn(`Battery low: ${(level * 100).toFixed(1)}%`),
|
|
38
|
+
onBatteryCritical: (level) => console.error(`Battery critical: ${(level * 100).toFixed(1)}%`)
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const { metrics, isThrottling, throttleLevel, optimizations, recommendations, performanceSettings, } = usePerformanceThrottling({
|
|
42
|
+
enablePerformanceMonitoring: true,
|
|
43
|
+
enableAutomaticThrottling: true,
|
|
44
|
+
enableUserExperienceOptimization: true,
|
|
45
|
+
enableBatteryPreservation: true
|
|
46
|
+
}, {
|
|
47
|
+
onPerformanceWarning: (metrics) => console.log('Performance warning:', metrics),
|
|
48
|
+
onThrottlingApplied: (level, reason) => console.log('Throttling applied:', level, reason),
|
|
49
|
+
onPerformanceRecovery: (metrics) => console.log('Performance recovery:', metrics),
|
|
50
|
+
onUserExperienceOptimized: (optimization) => console.log('User experience optimized:', optimization)
|
|
51
|
+
});
|
|
52
|
+
// Performance score color mapping
|
|
53
|
+
const getScoreColor = (score) => {
|
|
54
|
+
switch (score) {
|
|
55
|
+
case 'excellent': return 'text-green-600 bg-green-100';
|
|
56
|
+
case 'good': return 'text-blue-600 bg-blue-100';
|
|
57
|
+
case 'fair': return 'text-yellow-600 bg-yellow-100';
|
|
58
|
+
case 'poor': return 'text-red-600 bg-red-100';
|
|
59
|
+
default: return 'text-gray-600 bg-gray-100';
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Performance mode color mapping
|
|
63
|
+
const getModeColor = (mode) => {
|
|
64
|
+
switch (mode) {
|
|
65
|
+
case 'high': return 'text-green-600 bg-green-100';
|
|
66
|
+
case 'medium': return 'text-yellow-600 bg-yellow-100';
|
|
67
|
+
case 'low': return 'text-red-600 bg-red-100';
|
|
68
|
+
default: return 'text-gray-600 bg-gray-100';
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
// Throttling level color mapping
|
|
72
|
+
const getThrottlingColor = (level) => {
|
|
73
|
+
switch (level) {
|
|
74
|
+
case 'none': return 'text-green-600 bg-green-100';
|
|
75
|
+
case 'light': return 'text-blue-600 bg-blue-100';
|
|
76
|
+
case 'moderate': return 'text-yellow-600 bg-yellow-100';
|
|
77
|
+
case 'aggressive': return 'text-red-600 bg-red-100';
|
|
78
|
+
default: return 'text-gray-600 bg-gray-100';
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
// Memory trend icon
|
|
82
|
+
const getMemoryTrendIcon = (trend) => {
|
|
83
|
+
switch (trend) {
|
|
84
|
+
case 'increasing': return '📈';
|
|
85
|
+
case 'decreasing': return '📉';
|
|
86
|
+
case 'stable': return '➡️';
|
|
87
|
+
default: return '❓';
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
// Battery icon
|
|
91
|
+
const getBatteryIcon = (level, charging) => {
|
|
92
|
+
if (charging)
|
|
93
|
+
return '🔌';
|
|
94
|
+
if (level <= 0.15)
|
|
95
|
+
return '🔴';
|
|
96
|
+
if (level <= 0.3)
|
|
97
|
+
return '🟠';
|
|
98
|
+
if (level <= 0.5)
|
|
99
|
+
return '🟡';
|
|
100
|
+
return '🟢';
|
|
101
|
+
};
|
|
102
|
+
const tabs = [
|
|
103
|
+
{ id: 'overview', label: 'Overview', icon: '📊' },
|
|
104
|
+
{ id: 'fps', label: 'Frame Rate', icon: '🎬' },
|
|
105
|
+
{ id: 'memory', label: 'Memory', icon: '🧠' },
|
|
106
|
+
{ id: 'battery', label: 'Battery', icon: '🔋' },
|
|
107
|
+
{ id: 'throttling', label: 'Throttling', icon: '⚡' }
|
|
108
|
+
];
|
|
109
|
+
return (_jsxs("div", { className: "space-y-6", children: [_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 === 'overview' && (_jsxs("div", { className: "space-y-6", children: [_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83C\uDFAF Performance Summary", _jsxs(Badge, { variant: performanceMode === 'high' ? 'default' : 'secondary', children: [performanceMode.toUpperCase(), " MODE"] })] }), _jsx(CardDescription, { children: "Real-time performance overview and system status" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [_jsxs("div", { className: "text-center p-4 border rounded-lg", children: [_jsx("div", { className: "text-2xl font-bold text-blue-600", children: fpsMetrics.fps }), _jsx("div", { className: "text-sm text-gray-600", children: "FPS" }), _jsx(Badge, { className: `mt-2 ${getScoreColor(fpsScore)}`, children: fpsScore })] }), _jsxs("div", { className: "text-center p-4 border rounded-lg", children: [_jsxs("div", { className: "text-2xl font-bold text-purple-600", children: [memoryMetrics.memoryPercentage ? memoryMetrics.memoryPercentage.toFixed(1) : 'N/A', "%"] }), _jsx("div", { className: "text-sm text-gray-600", children: "Memory Usage" }), _jsxs("div", { className: "flex items-center justify-center gap-1 mt-2", children: [_jsx("span", { children: getMemoryTrendIcon(memoryTrend) }), _jsx(Badge, { variant: memoryLeakDetected ? 'destructive' : 'secondary', children: memoryLeakDetected ? 'Leak Detected' : memoryTrend })] })] }), _jsxs("div", { className: "text-center p-4 border rounded-lg", children: [_jsx("div", { className: "text-2xl font-bold text-green-600", children: getBatteryIcon(batteryLevel || 1, isCharging) }), _jsx("div", { className: "text-sm text-gray-600", children: "Battery" }), _jsx(Badge, { variant: isCriticalBattery ? 'destructive' : isLowPowerMode ? 'secondary' : 'default', children: getBatteryStatusText() })] })] }), throttlingEnabled && (_jsx("div", { className: "p-4 bg-yellow-50 border border-yellow-200 rounded-lg", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-yellow-600", children: "\u26A0\uFE0F" }), _jsxs("div", { children: [_jsx("div", { className: "font-medium text-yellow-800", children: "Performance Throttling Active" }), _jsx("div", { className: "text-sm text-yellow-700", children: throttlingReason })] })] }) })), _jsxs(Button, { variant: "outline", onClick: () => setShowRecommendations(!showRecommendations), className: "w-full", children: [showRecommendations ? 'Hide' : 'Show', " Performance Recommendations"] }), showRecommendations && (_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium text-gray-900", children: "Optimization Recommendations:" }), _jsx("ul", { className: "space-y-2 text-sm text-gray-700", children: getOptimizationRecommendations().map((rec, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-blue-500", children: "\u2022" }), rec] }, index))) })] }))] })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "flex items-center gap-2", children: "\uD83D\uDCF1 Device Information" }) }), _jsx(CardContent, { children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Device Type:" }), " ", device.screenSize] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Screen Size:" }), " ", device.screenSize] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Orientation:" }), " ", device.orientation] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Touch Device:" }), " ", device.touchDevice ? 'Yes' : 'No'] })] }) })] })] })), activeTab === 'fps' && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83C\uDFAC Frame Rate Monitoring", _jsx(Badge, { className: getScoreColor(fpsScore), children: fpsScore.toUpperCase() })] }), _jsx(CardDescription, { children: "Real-time FPS tracking and performance analysis" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [_jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-blue-600", children: fpsMetrics.fps }), _jsx("div", { className: "text-xs text-gray-600", children: "Current FPS" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-green-600", children: fpsMetrics.averageFPS }), _jsx("div", { className: "text-xs text-gray-600", children: "Average FPS" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-purple-600", children: fpsMetrics.minFPS }), _jsx("div", { className: "text-xs text-gray-600", children: "Min FPS" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-orange-600", children: fpsMetrics.maxFPS }), _jsx("div", { className: "text-xs text-gray-600", children: "Max FPS" })] })] }), _jsxs("div", { className: "p-4 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-blue-800 mb-2", children: "Performance Insights:" }), _jsx("ul", { className: "space-y-1 text-sm text-blue-700", children: getFPSInsights().map((insight, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-blue-500", children: "\u2022" }), insight] }, index))) })] })] })] })), activeTab === 'memory' && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83E\uDDE0 Memory Usage Monitoring", _jsx(Badge, { variant: memoryLeakDetected ? 'destructive' : 'secondary', children: memoryLeakDetected ? 'LEAK DETECTED' : memoryTrend.toUpperCase() })] }), _jsx(CardDescription, { children: "Memory usage tracking and leak detection" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [_jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsxs("div", { className: "text-xl font-bold text-purple-600", children: [memoryMetrics.memoryPercentage ? memoryMetrics.memoryPercentage.toFixed(1) : 'N/A', "%"] }), _jsx("div", { className: "text-xs text-gray-600", children: "Usage" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsxs("div", { className: "text-xl font-bold text-blue-600", children: [memoryMetrics.usedJSHeapSize ? (memoryMetrics.usedJSHeapSize / 1024 / 1024).toFixed(1) : 'N/A', " MB"] }), _jsx("div", { className: "text-xs text-gray-600", children: "Used" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsxs("div", { className: "text-xl font-bold text-green-600", children: [memoryMetrics.jsHeapSizeLimit ? (memoryMetrics.jsHeapSizeLimit / 1024 / 1024).toFixed(1) : 'N/A', " MB"] }), _jsx("div", { className: "text-xs text-gray-600", children: "Limit" })] })] }), _jsxs("div", { className: "p-4 bg-purple-50 border border-purple-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-purple-800 mb-2", children: "Memory Optimization:" }), _jsx("ul", { className: "space-y-1 text-sm text-purple-700", children: getMemoryRecommendations().map((rec, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-purple-500", children: "\u2022" }), rec] }, index))) })] }), memoryLeakDetected && (_jsxs("div", { className: "p-4 bg-red-50 border border-red-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-red-800 mb-2", children: "Memory Leak Cleanup Suggestions:" }), _jsx("ul", { className: "space-y-1 text-sm text-red-700", children: getMemoryCleanupSuggestions().map((suggestion, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-red-500", children: "\u2022" }), suggestion] }, index))) })] }))] })] })), activeTab === 'battery' && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83D\uDD0B Battery Status Monitoring", _jsx(Badge, { variant: isCriticalBattery ? 'destructive' : isLowPowerMode ? 'secondary' : 'default', children: getBatteryStatusText() })] }), _jsx(CardDescription, { children: "Battery level monitoring and power optimization" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-4", children: [_jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-2xl", children: getBatteryIcon(batteryLevel || 1, isCharging) }), _jsxs("div", { className: "text-xl font-bold text-green-600", children: [batteryLevel ? (batteryLevel * 100).toFixed(1) : 'N/A', "%"] }), _jsx("div", { className: "text-xs text-gray-600", children: "Level" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-blue-600", children: isCharging ? 'Yes' : 'No' }), _jsx("div", { className: "text-xs text-gray-600", children: "Charging" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-purple-600", children: batteryMetrics.chargingTime || 'N/A' }), _jsx("div", { className: "text-xs text-gray-600", children: "Charging Time" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-orange-600", children: batteryMetrics.dischargingTime || 'N/A' }), _jsx("div", { className: "text-xs text-gray-600", children: "Discharge Time" })] })] }), _jsxs("div", { className: "p-4 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-green-800 mb-2", children: "Battery Optimization:" }), _jsx("ul", { className: "space-y-1 text-sm text-green-700", children: getBatteryRecommendations().map((rec, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-green-500", children: "\u2022" }), rec] }, index))) })] }), (isLowPowerMode || isCriticalBattery) && (_jsxs("div", { className: "p-4 bg-yellow-50 border border-yellow-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-yellow-800 mb-2", children: "Power Saving Suggestions:" }), _jsx("ul", { className: "space-y-1 text-sm text-yellow-700", children: getBatteryPowerSuggestions().map((suggestion, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-yellow-500", children: "\u2022" }), suggestion] }, index))) })] }))] })] })), activeTab === 'throttling' && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\u26A1 Performance Throttling", _jsx(Badge, { className: getThrottlingColor(throttleLevel), children: throttleLevel.toUpperCase() })] }), _jsx(CardDescription, { children: "Automatic and manual performance throttling controls" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [_jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-blue-600", children: isThrottling ? 'Active' : 'Inactive' }), _jsx("div", { className: "text-xs text-gray-600", children: "Throttling Status" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx(Badge, { className: getModeColor(performanceSettings.animationQuality), children: performanceSettings.animationQuality.toUpperCase() }), _jsx("div", { className: "text-xs text-gray-600 mt-1", children: "Performance Mode" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-xl font-bold text-green-600", children: performanceSettings.memoryOptimization ? 'Yes' : 'No' }), _jsx("div", { className: "text-xs text-gray-600", children: "Battery Optimized" })] })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-lg font-bold text-blue-600", children: throttleLevel }), _jsx("div", { className: "text-xs text-gray-600", children: "Current Level" })] }), _jsxs("div", { className: "text-center p-3 border rounded-lg", children: [_jsx("div", { className: "text-lg font-bold text-green-600", children: isThrottling ? 'Active' : 'Inactive' }), _jsx("div", { className: "text-xs text-gray-600", children: "Throttling Status" })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("h4", { className: "font-medium text-gray-900", children: "Performance Settings:" }), _jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Max Concurrent Animations:" }), _jsx("div", { className: "text-blue-600", children: performanceSettings.maxConcurrentAnimations })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Frame Rate Limit:" }), _jsxs("div", { className: "text-blue-600", children: [performanceSettings.frameRateLimit, "fps"] })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Animation Quality:" }), _jsx("div", { className: "text-blue-600", children: performanceSettings.animationQuality })] }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Memory Optimization:" }), _jsx("div", { className: "text-blue-600", children: performanceSettings.memoryOptimization ? 'Yes' : 'No' })] })] })] }), isThrottling && (_jsxs("div", { className: "p-4 bg-yellow-50 border border-yellow-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-yellow-800 mb-2", children: "Throttling Information:" }), _jsxs("div", { className: "text-sm text-yellow-700 space-y-1", children: [_jsxs("div", { children: [_jsx("strong", { children: "Level:" }), " ", throttleLevel] }), _jsxs("div", { children: [_jsx("strong", { children: "Performance Score:" }), " ", metrics.performanceScore] }), _jsxs("div", { children: [_jsx("strong", { children: "FPS:" }), " ", metrics.fps] })] })] })), _jsxs("div", { className: "p-4 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-blue-800 mb-2", children: "Throttling Recommendations:" }), _jsx("ul", { className: "space-y-1 text-sm text-blue-700", children: recommendations.map((rec, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-blue-500", children: "\u2022" }), rec] }, index))) })] }), _jsxs("div", { className: "p-4 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-medium text-green-800 mb-2", children: "Optimization Suggestions:" }), _jsx("ul", { className: "space-y-1 text-sm text-green-700", children: optimizations.map((suggestion, index) => (_jsxs("li", { className: "flex items-start gap-2", children: [_jsx("span", { className: "text-green-500", children: "\u2022" }), suggestion] }, index))) })] })] })] }))] }));
|
|
110
|
+
};
|