@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.d.ts +259 -0
- package/dist/components/ui/accessibility-demo.esm.js +265 -0
- package/dist/components/ui/accessibility-demo.js +265 -0
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
- package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
- package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
- package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
- package/dist/components/ui/advanced-transition-system-demo.js +624 -0
- package/dist/components/ui/advanced-transition-system.d.ts +391 -0
- package/dist/components/ui/advanced-transition-system.esm.js +351 -0
- package/dist/components/ui/advanced-transition-system.js +351 -0
- package/dist/components/ui/animation/animated-container.d.ts +162 -0
- package/dist/components/ui/animation/animated-container.esm.js +143 -0
- package/dist/components/ui/animation/animated-container.js +143 -0
- package/dist/components/ui/animation/index.d.ts +9 -0
- package/dist/components/ui/animation/index.esm.js +19 -0
- package/dist/components/ui/animation/index.js +19 -0
- package/dist/components/ui/animation/staggered-container.d.ts +64 -0
- package/dist/components/ui/animation/staggered-container.esm.js +59 -0
- package/dist/components/ui/animation/staggered-container.js +59 -0
- package/dist/components/ui/animation-demo.d.ts +238 -0
- package/dist/components/ui/animation-demo.esm.js +218 -0
- package/dist/components/ui/animation-demo.js +218 -0
- package/dist/components/ui/badge.d.ts +28 -0
- package/dist/components/ui/badge.esm.js +30 -0
- package/dist/components/ui/badge.js +30 -0
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
- package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
- package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
- package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
- package/dist/components/ui/border-radius-shadow-demo.js +176 -0
- package/dist/components/ui/button.d.ts +33 -0
- package/dist/components/ui/button.esm.js +30 -0
- package/dist/components/ui/button.js +30 -0
- package/dist/components/ui/card.d.ts +205 -0
- package/dist/components/ui/card.esm.js +182 -0
- package/dist/components/ui/card.js +182 -0
- package/dist/components/ui/checkbox.d.ts +26 -0
- package/dist/components/ui/checkbox.esm.js +30 -0
- package/dist/components/ui/checkbox.js +30 -0
- package/dist/components/ui/color-preview.d.ts +402 -0
- package/dist/components/ui/color-preview.esm.js +388 -0
- package/dist/components/ui/color-preview.js +388 -0
- package/dist/components/ui/data-display/chart.d.ts +646 -0
- package/dist/components/ui/data-display/chart.esm.js +625 -0
- package/dist/components/ui/data-display/chart.js +625 -0
- package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
- package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
- package/dist/components/ui/data-display/data-grid-simple.js +76 -0
- package/dist/components/ui/data-display/data-grid.d.ts +670 -0
- package/dist/components/ui/data-display/data-grid.esm.js +667 -0
- package/dist/components/ui/data-display/data-grid.js +667 -0
- package/dist/components/ui/data-display/list.d.ts +448 -0
- package/dist/components/ui/data-display/list.esm.js +448 -0
- package/dist/components/ui/data-display/list.js +448 -0
- package/dist/components/ui/data-display/table.d.ts +472 -0
- package/dist/components/ui/data-display/table.esm.js +474 -0
- package/dist/components/ui/data-display/table.js +474 -0
- package/dist/components/ui/data-display/timeline.d.ts +433 -0
- package/dist/components/ui/data-display/timeline.esm.js +436 -0
- package/dist/components/ui/data-display/timeline.js +436 -0
- package/dist/components/ui/data-display/tree.d.ts +594 -0
- package/dist/components/ui/data-display/tree.esm.js +570 -0
- package/dist/components/ui/data-display/tree.js +570 -0
- package/dist/components/ui/data-display/types.d.ts +534 -0
- package/dist/components/ui/data-display/types.esm.js +511 -0
- package/dist/components/ui/data-display/types.js +511 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
- package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
- package/dist/components/ui/enterprise-mobile-experience.js +413 -0
- package/dist/components/ui/feedback/alert.d.ts +154 -0
- package/dist/components/ui/feedback/alert.esm.js +150 -0
- package/dist/components/ui/feedback/alert.js +150 -0
- package/dist/components/ui/feedback/progress.d.ts +288 -0
- package/dist/components/ui/feedback/progress.esm.js +269 -0
- package/dist/components/ui/feedback/progress.js +269 -0
- package/dist/components/ui/feedback/skeleton.d.ts +182 -0
- package/dist/components/ui/feedback/skeleton.esm.js +175 -0
- package/dist/components/ui/feedback/skeleton.js +175 -0
- package/dist/components/ui/feedback/toast.d.ts +277 -0
- package/dist/components/ui/feedback/toast.esm.js +256 -0
- package/dist/components/ui/feedback/toast.js +256 -0
- package/dist/components/ui/feedback/types.d.ts +123 -0
- package/dist/components/ui/feedback/types.esm.js +125 -0
- package/dist/components/ui/feedback/types.js +125 -0
- package/dist/components/ui/font-preview.d.ts +282 -0
- package/dist/components/ui/font-preview.esm.js +286 -0
- package/dist/components/ui/font-preview.js +286 -0
- package/dist/components/ui/form-demo.d.ts +544 -0
- package/dist/components/ui/form-demo.esm.js +516 -0
- package/dist/components/ui/form-demo.js +516 -0
- package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
- package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
- package/dist/components/ui/hardware-acceleration-demo.js +497 -0
- package/dist/components/ui/input.d.ts +33 -0
- package/dist/components/ui/input.esm.js +32 -0
- package/dist/components/ui/input.js +32 -0
- package/dist/components/ui/label.d.ts +13 -0
- package/dist/components/ui/label.esm.js +16 -0
- package/dist/components/ui/label.js +16 -0
- package/dist/components/ui/layout-demo.d.ts +352 -0
- package/dist/components/ui/layout-demo.esm.js +342 -0
- package/dist/components/ui/layout-demo.js +342 -0
- package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
- package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
- package/dist/components/ui/layouts/adaptive-layout.js +120 -0
- package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
- package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
- package/dist/components/ui/layouts/desktop-layout.js +204 -0
- package/dist/components/ui/layouts/index.d.ts +5 -0
- package/dist/components/ui/layouts/index.esm.js +10 -0
- package/dist/components/ui/layouts/index.js +10 -0
- package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
- package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
- package/dist/components/ui/layouts/mobile-layout.js +152 -0
- package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
- package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
- package/dist/components/ui/layouts/tablet-layout.js +183 -0
- package/dist/components/ui/mobile-form-validation.d.ts +439 -0
- package/dist/components/ui/mobile-form-validation.esm.js +418 -0
- package/dist/components/ui/mobile-form-validation.js +418 -0
- package/dist/components/ui/mobile-input-demo.d.ts +197 -0
- package/dist/components/ui/mobile-input-demo.esm.js +195 -0
- package/dist/components/ui/mobile-input-demo.js +195 -0
- package/dist/components/ui/mobile-input.d.ts +273 -0
- package/dist/components/ui/mobile-input.esm.js +216 -0
- package/dist/components/ui/mobile-input.js +216 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
- package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
- package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
- package/dist/components/ui/navigation/breadcrumb.js +155 -0
- package/dist/components/ui/navigation/index.d.ts +25 -0
- package/dist/components/ui/navigation/index.esm.js +14 -0
- package/dist/components/ui/navigation/index.js +14 -0
- package/dist/components/ui/navigation/menu.d.ts +366 -0
- package/dist/components/ui/navigation/menu.esm.js +360 -0
- package/dist/components/ui/navigation/menu.js +360 -0
- package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
- package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
- package/dist/components/ui/navigation/navigation-demo.js +317 -0
- package/dist/components/ui/navigation/pagination.d.ts +261 -0
- package/dist/components/ui/navigation/pagination.esm.js +260 -0
- package/dist/components/ui/navigation/pagination.js +260 -0
- package/dist/components/ui/navigation/sidebar.d.ts +375 -0
- package/dist/components/ui/navigation/sidebar.esm.js +369 -0
- package/dist/components/ui/navigation/sidebar.js +369 -0
- package/dist/components/ui/navigation/stepper.d.ts +294 -0
- package/dist/components/ui/navigation/stepper.esm.js +292 -0
- package/dist/components/ui/navigation/stepper.js +292 -0
- package/dist/components/ui/navigation/tabs.d.ts +196 -0
- package/dist/components/ui/navigation/tabs.esm.js +194 -0
- package/dist/components/ui/navigation/tabs.js +194 -0
- package/dist/components/ui/navigation/types.d.ts +293 -0
- package/dist/components/ui/navigation/types.esm.js +298 -0
- package/dist/components/ui/navigation/types.js +298 -0
- package/dist/components/ui/overlay/backdrop.d.ts +79 -0
- package/dist/components/ui/overlay/backdrop.esm.js +80 -0
- package/dist/components/ui/overlay/backdrop.js +80 -0
- package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
- package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
- package/dist/components/ui/overlay/focus-manager.js +141 -0
- package/dist/components/ui/overlay/index.d.ts +27 -0
- package/dist/components/ui/overlay/index.esm.js +16 -0
- package/dist/components/ui/overlay/index.js +16 -0
- package/dist/components/ui/overlay/modal.d.ts +262 -0
- package/dist/components/ui/overlay/modal.esm.js +266 -0
- package/dist/components/ui/overlay/modal.js +266 -0
- package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
- package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
- package/dist/components/ui/overlay/overlay-manager.js +105 -0
- package/dist/components/ui/overlay/popover.d.ts +450 -0
- package/dist/components/ui/overlay/popover.esm.js +446 -0
- package/dist/components/ui/overlay/popover.js +446 -0
- package/dist/components/ui/overlay/portal.d.ts +75 -0
- package/dist/components/ui/overlay/portal.esm.js +79 -0
- package/dist/components/ui/overlay/portal.js +79 -0
- package/dist/components/ui/overlay/tooltip.d.ts +298 -0
- package/dist/components/ui/overlay/tooltip.esm.js +288 -0
- package/dist/components/ui/overlay/tooltip.js +288 -0
- package/dist/components/ui/overlay/types.d.ts +194 -0
- package/dist/components/ui/overlay/types.esm.js +195 -0
- package/dist/components/ui/overlay/types.js +195 -0
- package/dist/components/ui/performance-demo.d.ts +583 -0
- package/dist/components/ui/performance-demo.esm.js +549 -0
- package/dist/components/ui/performance-demo.js +549 -0
- package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
- package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
- package/dist/components/ui/semantic-input-system-demo.js +465 -0
- package/dist/components/ui/theme-customizer.d.ts +378 -0
- package/dist/components/ui/theme-customizer.esm.js +354 -0
- package/dist/components/ui/theme-customizer.js +354 -0
- package/dist/components/ui/theme-preview.d.ts +305 -0
- package/dist/components/ui/theme-preview.esm.js +258 -0
- package/dist/components/ui/theme-preview.js +258 -0
- package/dist/components/ui/theme-switcher.d.ts +259 -0
- package/dist/components/ui/theme-switcher.esm.js +238 -0
- package/dist/components/ui/theme-switcher.js +238 -0
- package/dist/components/ui/theme-toggle.d.ts +34 -0
- package/dist/components/ui/theme-toggle.esm.js +38 -0
- package/dist/components/ui/theme-toggle.js +38 -0
- package/dist/components/ui/token-demo.d.ts +188 -0
- package/dist/components/ui/token-demo.esm.js +183 -0
- package/dist/components/ui/token-demo.js +183 -0
- package/dist/components/ui/touch-demo.d.ts +455 -0
- package/dist/components/ui/touch-demo.esm.js +433 -0
- package/dist/components/ui/touch-demo.js +433 -0
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
- package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
- package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
- package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
- package/dist/components/ui/touch-friendly-interface.js +272 -0
- package/dist/hooks/index.d.ts +161 -0
- package/dist/hooks/index.esm.js +190 -0
- package/dist/hooks/index.js +190 -0
- package/dist/hooks/use-accessibility-support.d.ts +516 -0
- package/dist/hooks/use-accessibility-support.esm.js +488 -0
- package/dist/hooks/use-accessibility-support.js +488 -0
- package/dist/hooks/use-adaptive-layout.d.ts +287 -0
- package/dist/hooks/use-adaptive-layout.esm.js +266 -0
- package/dist/hooks/use-adaptive-layout.js +266 -0
- package/dist/hooks/use-advanced-patterns.d.ts +292 -0
- package/dist/hooks/use-advanced-patterns.esm.js +279 -0
- package/dist/hooks/use-advanced-patterns.js +279 -0
- package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
- package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
- package/dist/hooks/use-advanced-transition-system.js +352 -0
- package/dist/hooks/use-animation-profile.d.ts +285 -0
- package/dist/hooks/use-animation-profile.esm.js +259 -0
- package/dist/hooks/use-animation-profile.js +259 -0
- package/dist/hooks/use-battery-animations.d.ts +382 -0
- package/dist/hooks/use-battery-animations.esm.js +359 -0
- package/dist/hooks/use-battery-animations.js +359 -0
- package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
- package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
- package/dist/hooks/use-battery-conscious-loading.js +432 -0
- package/dist/hooks/use-battery-optimization.d.ts +328 -0
- package/dist/hooks/use-battery-optimization.esm.js +307 -0
- package/dist/hooks/use-battery-optimization.js +307 -0
- package/dist/hooks/use-battery-status.d.ts +297 -0
- package/dist/hooks/use-battery-status.esm.js +277 -0
- package/dist/hooks/use-battery-status.js +277 -0
- package/dist/hooks/use-component-performance.d.ts +342 -0
- package/dist/hooks/use-component-performance.esm.js +329 -0
- package/dist/hooks/use-component-performance.js +329 -0
- package/dist/hooks/use-device-loading-states.d.ts +456 -0
- package/dist/hooks/use-device-loading-states.esm.js +416 -0
- package/dist/hooks/use-device-loading-states.js +416 -0
- package/dist/hooks/use-device.d.ts +104 -0
- package/dist/hooks/use-device.esm.js +99 -0
- package/dist/hooks/use-device.js +99 -0
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
- package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
- package/dist/hooks/use-form-feedback.d.ts +401 -0
- package/dist/hooks/use-form-feedback.esm.js +360 -0
- package/dist/hooks/use-form-feedback.js +360 -0
- package/dist/hooks/use-form-performance.d.ts +511 -0
- package/dist/hooks/use-form-performance.esm.js +478 -0
- package/dist/hooks/use-form-performance.js +478 -0
- package/dist/hooks/use-frame-rate.d.ts +249 -0
- package/dist/hooks/use-frame-rate.esm.js +232 -0
- package/dist/hooks/use-frame-rate.js +232 -0
- package/dist/hooks/use-gestures.d.ts +336 -0
- package/dist/hooks/use-gestures.esm.js +314 -0
- package/dist/hooks/use-gestures.js +314 -0
- package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
- package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
- package/dist/hooks/use-hardware-acceleration.js +313 -0
- package/dist/hooks/use-input-accessibility.d.ts +451 -0
- package/dist/hooks/use-input-accessibility.esm.js +417 -0
- package/dist/hooks/use-input-accessibility.js +417 -0
- package/dist/hooks/use-input-performance.d.ts +503 -0
- package/dist/hooks/use-input-performance.esm.js +471 -0
- package/dist/hooks/use-input-performance.js +471 -0
- package/dist/hooks/use-layout-performance.d.ts +317 -0
- package/dist/hooks/use-layout-performance.esm.js +298 -0
- package/dist/hooks/use-layout-performance.js +298 -0
- package/dist/hooks/use-loading-accessibility.d.ts +532 -0
- package/dist/hooks/use-loading-accessibility.esm.js +495 -0
- package/dist/hooks/use-loading-accessibility.js +495 -0
- package/dist/hooks/use-loading-performance.d.ts +471 -0
- package/dist/hooks/use-loading-performance.esm.js +449 -0
- package/dist/hooks/use-loading-performance.js +449 -0
- package/dist/hooks/use-memory-usage.d.ts +285 -0
- package/dist/hooks/use-memory-usage.esm.js +268 -0
- package/dist/hooks/use-memory-usage.js +268 -0
- package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
- package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
- package/dist/hooks/use-mobile-form-layout.js +427 -0
- package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
- package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
- package/dist/hooks/use-mobile-form-validation.js +451 -0
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
- package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
- package/dist/hooks/use-mobile-layout.d.ts +300 -0
- package/dist/hooks/use-mobile-layout.esm.js +280 -0
- package/dist/hooks/use-mobile-layout.js +280 -0
- package/dist/hooks/use-mobile-optimization.d.ts +404 -0
- package/dist/hooks/use-mobile-optimization.esm.js +378 -0
- package/dist/hooks/use-mobile-optimization.js +378 -0
- package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
- package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
- package/dist/hooks/use-mobile-skeleton.js +369 -0
- package/dist/hooks/use-mobile-touch.d.ts +412 -0
- package/dist/hooks/use-mobile-touch.esm.js +379 -0
- package/dist/hooks/use-mobile-touch.js +379 -0
- package/dist/hooks/use-performance-throttling.d.ts +346 -0
- package/dist/hooks/use-performance-throttling.esm.js +324 -0
- package/dist/hooks/use-performance-throttling.js +324 -0
- package/dist/hooks/use-performance.d.ts +314 -0
- package/dist/hooks/use-performance.esm.js +278 -0
- package/dist/hooks/use-performance.js +278 -0
- package/dist/hooks/use-reusable-architecture.d.ts +412 -0
- package/dist/hooks/use-reusable-architecture.esm.js +385 -0
- package/dist/hooks/use-reusable-architecture.js +385 -0
- package/dist/hooks/use-semantic-input-types.d.ts +354 -0
- package/dist/hooks/use-semantic-input-types.esm.js +315 -0
- package/dist/hooks/use-semantic-input-types.js +315 -0
- package/dist/hooks/use-semantic-input.d.ts +563 -0
- package/dist/hooks/use-semantic-input.esm.js +513 -0
- package/dist/hooks/use-semantic-input.js +513 -0
- package/dist/hooks/use-tablet-layout.d.ts +382 -0
- package/dist/hooks/use-tablet-layout.esm.js +355 -0
- package/dist/hooks/use-tablet-layout.js +355 -0
- package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
- package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
- package/dist/hooks/use-touch-friendly-input.js +480 -0
- package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
- package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
- package/dist/hooks/use-touch-friendly-interface.js +299 -0
- package/dist/hooks/use-touch-optimization.d.ts +373 -0
- package/dist/hooks/use-touch-optimization.esm.js +348 -0
- package/dist/hooks/use-touch-optimization.js +348 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.esm.js +6 -0
- package/dist/lib/utils.js +6 -0
- package/dist/plugins/theme-css-generator.d.ts +345 -0
- package/dist/plugins/theme-css-generator.esm.js +305 -0
- package/dist/plugins/theme-css-generator.js +305 -0
- package/dist/styles.css +1 -1
- package/dist/themes/ThemeContext.d.ts +27 -0
- package/dist/themes/ThemeContext.esm.js +31 -0
- package/dist/themes/ThemeContext.js +31 -0
- package/dist/themes/ThemeProvider.d.ts +222 -0
- package/dist/themes/ThemeProvider.esm.js +229 -0
- package/dist/themes/ThemeProvider.js +229 -0
- package/dist/themes/accessibility/index.d.ts +7 -0
- package/dist/themes/accessibility/index.esm.js +27 -0
- package/dist/themes/accessibility/index.js +27 -0
- package/dist/themes/accessibility.d.ts +259 -0
- package/dist/themes/accessibility.esm.js +220 -0
- package/dist/themes/accessibility.js +220 -0
- package/dist/themes/aria-patterns.d.ts +418 -0
- package/dist/themes/aria-patterns.esm.js +384 -0
- package/dist/themes/aria-patterns.js +384 -0
- package/dist/themes/base-themes.d.ts +34 -0
- package/dist/themes/base-themes.esm.js +52 -0
- package/dist/themes/base-themes.js +52 -0
- package/dist/themes/colorManager.d.ts +327 -0
- package/dist/themes/colorManager.esm.js +362 -0
- package/dist/themes/colorManager.js +362 -0
- package/dist/themes/examples/dark-theme.d.ts +139 -0
- package/dist/themes/examples/dark-theme.esm.js +124 -0
- package/dist/themes/examples/dark-theme.js +124 -0
- package/dist/themes/examples/minimal-theme.d.ts +93 -0
- package/dist/themes/examples/minimal-theme.esm.js +86 -0
- package/dist/themes/examples/minimal-theme.js +86 -0
- package/dist/themes/focus-management.d.ts +699 -0
- package/dist/themes/focus-management.esm.js +642 -0
- package/dist/themes/focus-management.js +642 -0
- package/dist/themes/fontLoader.d.ts +163 -0
- package/dist/themes/fontLoader.esm.js +192 -0
- package/dist/themes/fontLoader.js +192 -0
- package/dist/themes/high-contrast.d.ts +619 -0
- package/dist/themes/high-contrast.esm.js +573 -0
- package/dist/themes/high-contrast.js +573 -0
- package/dist/themes/index.d.ts +11 -0
- package/dist/themes/index.esm.js +19 -0
- package/dist/themes/index.js +19 -0
- package/dist/themes/inheritance.d.ts +160 -0
- package/dist/themes/inheritance.esm.js +219 -0
- package/dist/themes/inheritance.js +219 -0
- package/dist/themes/keyboard-navigation.d.ts +550 -0
- package/dist/themes/keyboard-navigation.esm.js +521 -0
- package/dist/themes/keyboard-navigation.js +521 -0
- package/dist/themes/motion-reduction.d.ts +660 -0
- package/dist/themes/motion-reduction.esm.js +602 -0
- package/dist/themes/motion-reduction.js +602 -0
- package/dist/themes/navigation.d.ts +232 -0
- package/dist/themes/navigation.esm.js +238 -0
- package/dist/themes/navigation.js +238 -0
- package/dist/themes/screen-reader.d.ts +645 -0
- package/dist/themes/screen-reader.esm.js +580 -0
- package/dist/themes/screen-reader.js +580 -0
- package/dist/themes/systemThemeDetector.d.ts +148 -0
- package/dist/themes/systemThemeDetector.esm.js +174 -0
- package/dist/themes/systemThemeDetector.js +174 -0
- package/dist/themes/themeCSSUpdater.d.ts +229 -0
- package/dist/themes/themeCSSUpdater.esm.js +250 -0
- package/dist/themes/themeCSSUpdater.js +250 -0
- package/dist/themes/themePersistence.d.ts +192 -0
- package/dist/themes/themePersistence.esm.js +217 -0
- package/dist/themes/themePersistence.js +217 -0
- package/dist/themes/themes/stan-design.d.ts +678 -0
- package/dist/themes/themes/stan-design.esm.js +518 -0
- package/dist/themes/themes/stan-design.js +518 -0
- package/dist/themes/types.d.ts +454 -0
- package/dist/themes/types.esm.js +446 -0
- package/dist/themes/types.js +446 -0
- package/dist/themes/useSystemTheme.d.ts +43 -0
- package/dist/themes/useSystemTheme.esm.js +48 -0
- package/dist/themes/useSystemTheme.js +48 -0
- package/dist/themes/useTheme.d.ts +20 -0
- package/dist/themes/useTheme.esm.js +87 -0
- package/dist/themes/useTheme.js +87 -0
- package/dist/themes/validation.d.ts +406 -0
- package/dist/themes/validation.esm.js +411 -0
- package/dist/themes/validation.js +411 -0
- package/dist/tokens/index.d.ts +25 -0
- package/dist/tokens/index.esm.js +23 -0
- package/dist/tokens/index.js +23 -0
- package/dist/tokens/tokenExporter.d.ts +336 -0
- package/dist/tokens/tokenExporter.esm.js +371 -0
- package/dist/tokens/tokenExporter.js +371 -0
- package/dist/tokens/tokenGenerator.d.ts +250 -0
- package/dist/tokens/tokenGenerator.esm.js +267 -0
- package/dist/tokens/tokenGenerator.js +267 -0
- package/dist/tokens/tokenManager.d.ts +194 -0
- package/dist/tokens/tokenManager.esm.js +235 -0
- package/dist/tokens/tokenManager.js +235 -0
- package/dist/tokens/tokenValidator.d.ts +488 -0
- package/dist/tokens/tokenValidator.esm.js +497 -0
- package/dist/tokens/tokenValidator.js +497 -0
- package/dist/tokens/types.d.ts +78 -0
- package/dist/tokens/types.esm.js +64 -0
- package/dist/tokens/types.js +64 -0
- package/dist/utils/bundle-analyzer.d.ts +260 -0
- package/dist/utils/bundle-analyzer.esm.js +242 -0
- package/dist/utils/bundle-analyzer.js +242 -0
- package/dist/utils/bundle-splitting.d.ts +483 -0
- package/dist/utils/bundle-splitting.esm.js +458 -0
- package/dist/utils/bundle-splitting.js +458 -0
- package/dist/utils/lazy-loading.d.ts +437 -0
- package/dist/utils/lazy-loading.esm.js +415 -0
- package/dist/utils/lazy-loading.js +415 -0
- package/dist/utils/performance-monitor.d.ts +513 -0
- package/dist/utils/performance-monitor.esm.js +472 -0
- package/dist/utils/performance-monitor.js +472 -0
- package/dist/utils/tree-shaking.d.ts +274 -0
- package/dist/utils/tree-shaking.esm.js +266 -0
- package/dist/utils/tree-shaking.js +266 -0
- package/package.json +1 -1
|
@@ -0,0 +1,718 @@
|
|
|
1
|
+
export const AdvancedComponentArchitectureDemo: React.FC = () => {
|
|
2
|
+
const [activeTab, setActiveTab] = useState<'patterns' | 'performance' | 'mobile' | 'architecture' | 'accessibility'>('patterns')
|
|
3
|
+
const [showPatternDemo, setShowPatternDemo] = useState(true)
|
|
4
|
+
const [showPerformanceDemo, setShowPerformanceDemo] = useState(true)
|
|
5
|
+
const [showMobileDemo, setShowMobileDemo] = useState(true)
|
|
6
|
+
const [showArchitectureDemo, setShowArchitectureDemo] = useState(true)
|
|
7
|
+
const [showAccessibilityDemo, setShowAccessibilityDemo] = useState(true)
|
|
8
|
+
|
|
9
|
+
// Hooks
|
|
10
|
+
const advancedPatterns = useAdvancedPatterns({
|
|
11
|
+
enableCompoundComponents: true,
|
|
12
|
+
enableRenderProps: true,
|
|
13
|
+
enableHigherOrderComponents: true,
|
|
14
|
+
enableCustomHooks: true,
|
|
15
|
+
enablePerformanceOptimization: true,
|
|
16
|
+
enableAccessibilitySupport: true
|
|
17
|
+
}, {
|
|
18
|
+
onPatternApplied: (pattern, component) => }',
|
|
19
|
+
variables: { '--demo-color': 'blue' },
|
|
20
|
+
breakpoints: { mobile: 'max-width: 768px' },
|
|
21
|
+
usage: ['Component1']
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
// Demonstrate behavior sharing
|
|
25
|
+
const behaviorId = reusableArchitecture.shareBehavior({
|
|
26
|
+
name: 'Demo Behavior',
|
|
27
|
+
description: 'A demonstration behavior',
|
|
28
|
+
hook: 'useDemoBehavior',
|
|
29
|
+
dependencies: ['react'],
|
|
30
|
+
usage: ['Component1']
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
// Demonstrate component registry
|
|
34
|
+
reusableArchitecture.registerComponent('DemoComponent', BaseComponent, {
|
|
35
|
+
name: 'Demo Component',
|
|
36
|
+
description: 'A demonstration component',
|
|
37
|
+
category: 'demo',
|
|
38
|
+
tags: ['demo', 'example']
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
console.log('Architecture demonstrated:', {
|
|
42
|
+
enhancedComponent,
|
|
43
|
+
templateId,
|
|
44
|
+
patternId,
|
|
45
|
+
styleId,
|
|
46
|
+
behaviorId
|
|
47
|
+
})
|
|
48
|
+
}, [reusableArchitecture])
|
|
49
|
+
|
|
50
|
+
const demonstrateAccessibility = useCallback(() => {
|
|
51
|
+
// Demonstrate ARIA support
|
|
52
|
+
accessibilitySupport.enhanceAriaSupport('DemoElement', {
|
|
53
|
+
'aria-label': 'Demo Element',
|
|
54
|
+
'aria-describedby': 'demo-description',
|
|
55
|
+
'role': 'button'
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
// Demonstrate keyboard navigation
|
|
59
|
+
accessibilitySupport.enableKeyboardNavigation('DemoElement', {
|
|
60
|
+
'Enter': 'Activate',
|
|
61
|
+
'Space': 'Toggle',
|
|
62
|
+
'Tab': 'Navigate'
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
// Demonstrate screen reader support
|
|
66
|
+
accessibilitySupport.enhanceScreenReaderSupport('DemoElement', 'This is a demo element for screen readers')
|
|
67
|
+
|
|
68
|
+
// Demonstrate focus management
|
|
69
|
+
accessibilitySupport.improveFocusManagement('DemoElement', 'trap')
|
|
70
|
+
|
|
71
|
+
// Demonstrate high contrast
|
|
72
|
+
accessibilitySupport.enableHighContrast()
|
|
73
|
+
|
|
74
|
+
// Demonstrate reduced motion
|
|
75
|
+
accessibilitySupport.enableReducedMotion()
|
|
76
|
+
|
|
77
|
+
// Demonstrate voice control
|
|
78
|
+
accessibilitySupport.enableVoiceControl()
|
|
79
|
+
|
|
80
|
+
// Demonstrate auto-enhancement
|
|
81
|
+
accessibilitySupport.autoEnhanceAccessibility()
|
|
82
|
+
}, [accessibilitySupport])
|
|
83
|
+
|
|
84
|
+
// Auto-demonstrate all features
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
const timer = setTimeout(() => {
|
|
87
|
+
demonstratePatterns()
|
|
88
|
+
demonstratePerformance()
|
|
89
|
+
demonstrateMobileOptimization()
|
|
90
|
+
demonstrateArchitecture()
|
|
91
|
+
demonstrateAccessibility()
|
|
92
|
+
}, 1000)
|
|
93
|
+
|
|
94
|
+
return () => clearTimeout(timer)
|
|
95
|
+
}, [demonstratePatterns, demonstratePerformance, demonstrateMobileOptimization, demonstrateArchitecture, demonstrateAccessibility])
|
|
96
|
+
|
|
97
|
+
const tabs = [
|
|
98
|
+
{ id: 'patterns', label: 'Advanced Patterns', icon: '🧩' },
|
|
99
|
+
{ id: 'performance', label: 'Performance', icon: '⚡' },
|
|
100
|
+
{ id: 'mobile', label: 'Mobile Optimization', icon: '📱' },
|
|
101
|
+
{ id: 'architecture', label: 'Reusable Architecture', icon: '🏗️' },
|
|
102
|
+
{ id: 'accessibility', label: 'Accessibility', icon: '♿' }
|
|
103
|
+
]
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<div className="space-y-6">
|
|
107
|
+
<div className="text-center">
|
|
108
|
+
<h1 className="text-3xl font-bold text-cs-text-primary mb-2">
|
|
109
|
+
🏗️ Advanced Component Architecture & Patterns
|
|
110
|
+
</h1>
|
|
111
|
+
<p className="text-lg text-cs-text-secondary mb-4">
|
|
112
|
+
Story 10 Implementation - Sophisticated component patterns, performance optimization, mobile optimization, reusable architecture, and accessibility support
|
|
113
|
+
</p>
|
|
114
|
+
<div className="flex items-center justify-center gap-2">
|
|
115
|
+
<Badge variant="default">Story 10</Badge>
|
|
116
|
+
<Badge variant="outline">Advanced Patterns</Badge>
|
|
117
|
+
<Badge variant="secondary">Performance Optimized</Badge>
|
|
118
|
+
<Badge variant="outline">Mobile First</Badge>
|
|
119
|
+
<Badge variant="secondary">Reusable Architecture</Badge>
|
|
120
|
+
<Badge variant="outline">Accessibility First</Badge>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
{/* Tab Navigation */}
|
|
125
|
+
<div className="flex flex-wrap gap-2 border-b pb-4">
|
|
126
|
+
{tabs.map((tab) => (
|
|
127
|
+
<Button
|
|
128
|
+
key={tab.id}
|
|
129
|
+
variant={activeTab === tab.id ? 'default' : 'outline'}
|
|
130
|
+
size="sm"
|
|
131
|
+
onClick={() => setActiveTab(tab.id as any)}
|
|
132
|
+
className="flex items-center gap-2"
|
|
133
|
+
>
|
|
134
|
+
<span>{tab.icon}</span>
|
|
135
|
+
{tab.label}
|
|
136
|
+
</Button>
|
|
137
|
+
))}
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
{/* Advanced Patterns Tab */}
|
|
141
|
+
{activeTab === 'patterns' && (
|
|
142
|
+
<Card className="border-2 border-cs-primary">
|
|
143
|
+
<CardHeader>
|
|
144
|
+
<CardTitle className="text-xl flex items-center gap-2">
|
|
145
|
+
🧩 Advanced Component Patterns
|
|
146
|
+
<Badge variant="outline">{advancedPatterns.patterns.length} Patterns</Badge>
|
|
147
|
+
</CardTitle>
|
|
148
|
+
<CardDescription>
|
|
149
|
+
Advanced component patterns including compound components, render props, higher-order components, and custom hooks
|
|
150
|
+
</CardDescription>
|
|
151
|
+
</CardHeader>
|
|
152
|
+
<CardContent className="space-y-4">
|
|
153
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
154
|
+
<div className="space-y-3">
|
|
155
|
+
<h4 className="font-medium">Pattern Status</h4>
|
|
156
|
+
<div className="space-y-2">
|
|
157
|
+
<div className="flex justify-between">
|
|
158
|
+
<span className="text-sm">Compound Components:</span>
|
|
159
|
+
<Badge variant={advancedPatterns.hasPattern('Compound Components') ? 'default' : 'secondary'}>
|
|
160
|
+
{advancedPatterns.hasPattern('Compound Components') ? 'Active' : 'Inactive'}
|
|
161
|
+
</Badge>
|
|
162
|
+
</div>
|
|
163
|
+
<div className="flex justify-between">
|
|
164
|
+
<span className="text-sm">Render Props:</span>
|
|
165
|
+
<Badge variant={advancedPatterns.hasPattern('Render Props') ? 'default' : 'secondary'}>
|
|
166
|
+
{advancedPatterns.hasPattern('Render Props') ? 'Active' : 'Inactive'}
|
|
167
|
+
</Badge>
|
|
168
|
+
</div>
|
|
169
|
+
<div className="flex justify-between">
|
|
170
|
+
<span className="text-sm">Higher-Order Components:</span>
|
|
171
|
+
<Badge variant={advancedPatterns.hasPattern('Higher-Order Components') ? 'default' : 'secondary'}>
|
|
172
|
+
{advancedPatterns.hasPattern('Higher-Order Components') ? 'Active' : 'Inactive'}
|
|
173
|
+
</Badge>
|
|
174
|
+
</div>
|
|
175
|
+
<div className="flex justify-between">
|
|
176
|
+
<span className="text-sm">Custom Hooks:</span>
|
|
177
|
+
<Badge variant={advancedPatterns.hasPattern('Custom Hooks') ? 'default' : 'secondary'}>
|
|
178
|
+
{advancedPatterns.hasPattern('Custom Hooks') ? 'Active' : 'Inactive'}
|
|
179
|
+
</Badge>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<div className="space-y-3">
|
|
185
|
+
<h4 className="font-medium">Pattern Analysis</h4>
|
|
186
|
+
<div className="space-y-2">
|
|
187
|
+
<div className="flex justify-between">
|
|
188
|
+
<span className="text-sm">Total Patterns:</span>
|
|
189
|
+
<span className="text-sm text-cs-text-secondary">{advancedPatterns.patterns.length}</span>
|
|
190
|
+
</div>
|
|
191
|
+
<div className="flex justify-between">
|
|
192
|
+
<span className="text-sm">Unique Patterns:</span>
|
|
193
|
+
<span className="text-sm text-cs-text-secondary">{advancedPatterns.analyzePatterns().uniquePatterns}</span>
|
|
194
|
+
</div>
|
|
195
|
+
<div className="flex justify-between">
|
|
196
|
+
<span className="text-sm">Optimization Level:</span>
|
|
197
|
+
<Badge variant="outline">{advancedPatterns.patterns.length > 0 ? 'Optimized' : 'Not Optimized'}</Badge>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
|
|
203
|
+
{/* Pattern Controls */}
|
|
204
|
+
<div className="flex gap-2">
|
|
205
|
+
<Button
|
|
206
|
+
variant="default"
|
|
207
|
+
onClick={demonstratePatterns}
|
|
208
|
+
disabled={advancedPatterns.isOptimizing}
|
|
209
|
+
>
|
|
210
|
+
Demonstrate Patterns
|
|
211
|
+
</Button>
|
|
212
|
+
<Button
|
|
213
|
+
variant="outline"
|
|
214
|
+
onClick={() => advancedPatterns.clearPatterns()}
|
|
215
|
+
>
|
|
216
|
+
Clear Patterns
|
|
217
|
+
</Button>
|
|
218
|
+
</div>
|
|
219
|
+
|
|
220
|
+
{/* Pattern Recommendations */}
|
|
221
|
+
{advancedPatterns.getPatternRecommendations().length > 0 && (
|
|
222
|
+
<div className="p-3 bg-cs-accent/10 rounded-lg">
|
|
223
|
+
<h4 className="font-medium text-sm mb-2">Pattern Recommendations:</h4>
|
|
224
|
+
<ul className="text-xs text-cs-text-secondary space-y-1">
|
|
225
|
+
{advancedPatterns.getPatternRecommendations().map((recommendation, index) => (
|
|
226
|
+
<li key={index}>• {recommendation}</li>
|
|
227
|
+
))}
|
|
228
|
+
</ul>
|
|
229
|
+
</div>
|
|
230
|
+
)}
|
|
231
|
+
|
|
232
|
+
{/* Pattern Validation */}
|
|
233
|
+
{advancedPatterns.validatePatterns().warnings.length > 0 && (
|
|
234
|
+
<div className="p-3 bg-yellow-50 border border-yellow-200 rounded-lg">
|
|
235
|
+
<h4 className="font-medium text-sm mb-2 text-yellow-800">Pattern Warnings:</h4>
|
|
236
|
+
<ul className="text-xs text-yellow-700 space-y-1">
|
|
237
|
+
{advancedPatterns.validatePatterns().warnings.map((warning, index) => (
|
|
238
|
+
<li key={index}>• {warning}</li>
|
|
239
|
+
))}
|
|
240
|
+
</ul>
|
|
241
|
+
</div>
|
|
242
|
+
)}
|
|
243
|
+
</CardContent>
|
|
244
|
+
</Card>
|
|
245
|
+
)}
|
|
246
|
+
|
|
247
|
+
{/* Performance Tab */}
|
|
248
|
+
{activeTab === 'performance' && (
|
|
249
|
+
<Card className="border-2 border-cs-secondary">
|
|
250
|
+
<CardHeader>
|
|
251
|
+
<CardTitle className="text-xl flex items-center gap-2">
|
|
252
|
+
⚡ Component Performance Optimization
|
|
253
|
+
<Badge variant={componentPerformance.isPerformanceOptimized() ? 'default' : 'secondary'}>
|
|
254
|
+
{componentPerformance.isPerformanceOptimized() ? 'Optimized' : 'Not Optimized'}
|
|
255
|
+
</Badge>
|
|
256
|
+
</CardTitle>
|
|
257
|
+
<CardDescription>
|
|
258
|
+
Performance optimization including memoization, lazy loading, virtualization, and performance monitoring
|
|
259
|
+
</CardDescription>
|
|
260
|
+
</CardHeader>
|
|
261
|
+
<CardContent className="space-y-4">
|
|
262
|
+
<div className="grid grid-cols-2 lg:grid-cols-4 gap-4 text-center">
|
|
263
|
+
<div>
|
|
264
|
+
<p className="text-2xl font-bold text-cs-primary">
|
|
265
|
+
{componentPerformance.metrics.renderTime.toFixed(2)}ms
|
|
266
|
+
</p>
|
|
267
|
+
<p className="text-sm text-cs-text-secondary">Render Time</p>
|
|
268
|
+
</div>
|
|
269
|
+
<div>
|
|
270
|
+
<p className="text-2xl font-bold text-cs-secondary">
|
|
271
|
+
{componentPerformance.metrics.memoryUsage.toFixed(1)}%
|
|
272
|
+
</p>
|
|
273
|
+
<p className="text-sm text-cs-text-secondary">Memory Usage</p>
|
|
274
|
+
</div>
|
|
275
|
+
<div>
|
|
276
|
+
<p className="text-2xl font-bold text-cs-accent">
|
|
277
|
+
{componentPerformance.metrics.reRenderCount}
|
|
278
|
+
</p>
|
|
279
|
+
<p className="text-sm text-cs-text-secondary">Re-render Count</p>
|
|
280
|
+
</div>
|
|
281
|
+
<div>
|
|
282
|
+
<p className="text-2xl font-bold text-cs-primary">
|
|
283
|
+
{componentPerformance.getPerformanceScore()}
|
|
284
|
+
</p>
|
|
285
|
+
<p className="text-sm text-cs-text-secondary">Performance Score</p>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
{/* Performance Controls */}
|
|
290
|
+
<div className="flex gap-2">
|
|
291
|
+
<Button
|
|
292
|
+
variant="default"
|
|
293
|
+
onClick={demonstratePerformance}
|
|
294
|
+
disabled={componentPerformance.isOptimizing}
|
|
295
|
+
>
|
|
296
|
+
Demonstrate Performance
|
|
297
|
+
</Button>
|
|
298
|
+
<Button
|
|
299
|
+
variant="outline"
|
|
300
|
+
onClick={() => componentPerformance.clearOptimizations()}
|
|
301
|
+
>
|
|
302
|
+
Clear Optimizations
|
|
303
|
+
</Button>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
{/* Performance Analysis */}
|
|
307
|
+
<div className="p-3 bg-cs-accent/10 rounded-lg">
|
|
308
|
+
<h4 className="font-medium text-sm mb-2">Performance Analysis:</h4>
|
|
309
|
+
<div className="grid grid-cols-2 gap-4 text-sm">
|
|
310
|
+
<div>
|
|
311
|
+
<span className="font-medium">Needs Optimization:</span>
|
|
312
|
+
<div className="text-cs-text-secondary">
|
|
313
|
+
{componentPerformance.analyzePerformance().needsOptimization ? 'Yes' : 'No'}
|
|
314
|
+
</div>
|
|
315
|
+
</div>
|
|
316
|
+
<div>
|
|
317
|
+
<span className="font-medium">Optimization Score:</span>
|
|
318
|
+
<div className="text-cs-text-secondary">
|
|
319
|
+
{componentPerformance.analyzePerformance().optimizationScore.toFixed(1)}%
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
{/* Performance Recommendations */}
|
|
326
|
+
{componentPerformance.analyzePerformance().recommendations.length > 0 && (
|
|
327
|
+
<div className="p-3 bg-blue-50 border border-blue-200 rounded-lg">
|
|
328
|
+
<h4 className="font-medium text-sm mb-2 text-blue-800">Performance Recommendations:</h4>
|
|
329
|
+
<ul className="text-xs text-blue-700 space-y-1">
|
|
330
|
+
{componentPerformance.analyzePerformance().recommendations.map((recommendation, index) => (
|
|
331
|
+
<li key={index}>• {recommendation}</li>
|
|
332
|
+
))}
|
|
333
|
+
</ul>
|
|
334
|
+
</div>
|
|
335
|
+
)}
|
|
336
|
+
</CardContent>
|
|
337
|
+
</Card>
|
|
338
|
+
)}
|
|
339
|
+
|
|
340
|
+
{/* Mobile Optimization Tab */}
|
|
341
|
+
{activeTab === 'mobile' && (
|
|
342
|
+
<Card className="border-2 border-cs-accent">
|
|
343
|
+
<CardHeader>
|
|
344
|
+
<CardTitle className="text-xl flex items-center gap-2">
|
|
345
|
+
📱 Mobile Optimization
|
|
346
|
+
<Badge variant={mobileOptimization.isMobileOptimized() ? 'default' : 'secondary'}>
|
|
347
|
+
{mobileOptimization.isMobileOptimized() ? 'Optimized' : 'Not Optimized'}
|
|
348
|
+
</Badge>
|
|
349
|
+
</CardTitle>
|
|
350
|
+
<CardDescription>
|
|
351
|
+
Mobile-specific optimizations including touch optimization, performance optimization, battery optimization, and accessibility optimization
|
|
352
|
+
</CardDescription>
|
|
353
|
+
</CardHeader>
|
|
354
|
+
<CardContent className="space-y-4">
|
|
355
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
356
|
+
<div className="space-y-3">
|
|
357
|
+
<h4 className="font-medium">Device Information</h4>
|
|
358
|
+
<div className="space-y-2">
|
|
359
|
+
<div className="flex justify-between">
|
|
360
|
+
<span className="text-sm">Device Type:</span>
|
|
361
|
+
<Badge variant={mobileOptimization.state.isMobile ? 'default' : 'secondary'}>
|
|
362
|
+
{mobileOptimization.state.isMobile ? 'Mobile' : 'Desktop'}
|
|
363
|
+
</Badge>
|
|
364
|
+
</div>
|
|
365
|
+
<div className="flex justify-between">
|
|
366
|
+
<span className="text-sm">Touch Device:</span>
|
|
367
|
+
<Badge variant={mobileOptimization.state.isTouchDevice ? 'default' : 'secondary'}>
|
|
368
|
+
{mobileOptimization.state.isTouchDevice ? 'Yes' : 'No'}
|
|
369
|
+
</Badge>
|
|
370
|
+
</div>
|
|
371
|
+
<div className="flex justify-between">
|
|
372
|
+
<span className="text-sm">Screen Size:</span>
|
|
373
|
+
<Badge variant="outline">{mobileOptimization.state.screenSize}</Badge>
|
|
374
|
+
</div>
|
|
375
|
+
<div className="flex justify-between">
|
|
376
|
+
<span className="text-sm">Orientation:</span>
|
|
377
|
+
<Badge variant="outline">{mobileOptimization.state.orientation}</Badge>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
<div className="space-y-3">
|
|
383
|
+
<h4 className="font-medium">Optimization Status</h4>
|
|
384
|
+
<div className="space-y-2">
|
|
385
|
+
<div className="flex justify-between">
|
|
386
|
+
<span className="text-sm">Touch Optimized:</span>
|
|
387
|
+
<Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().touchOptimized ? 'Yes' : 'No'}</Badge>
|
|
388
|
+
</div>
|
|
389
|
+
<div className="flex justify-between">
|
|
390
|
+
<span className="text-sm">Performance Optimized:</span>
|
|
391
|
+
<Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().performanceOptimized ? 'Yes' : 'No'}</Badge>
|
|
392
|
+
</div>
|
|
393
|
+
<div className="flex justify-between">
|
|
394
|
+
<span className="text-sm">Battery Optimized:</span>
|
|
395
|
+
<Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().batteryOptimized ? 'Yes' : 'No'}</Badge>
|
|
396
|
+
</div>
|
|
397
|
+
<div className="flex justify-between">
|
|
398
|
+
<span className="text-sm">Accessibility Optimized:</span>
|
|
399
|
+
<Badge variant="outline">{mobileOptimization.analyzeMobileOptimization().accessibilityOptimized ? 'Yes' : 'No'}</Badge>
|
|
400
|
+
</div>
|
|
401
|
+
</div>
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
|
|
405
|
+
{/* Mobile Controls */}
|
|
406
|
+
<div className="flex gap-2">
|
|
407
|
+
<Button
|
|
408
|
+
variant="default"
|
|
409
|
+
onClick={demonstrateMobileOptimization}
|
|
410
|
+
disabled={mobileOptimization.isOptimizing}
|
|
411
|
+
>
|
|
412
|
+
Demonstrate Mobile Optimization
|
|
413
|
+
</Button>
|
|
414
|
+
<Button
|
|
415
|
+
variant="outline"
|
|
416
|
+
onClick={() => mobileOptimization.clearOptimizations()}
|
|
417
|
+
>
|
|
418
|
+
Clear Optimizations
|
|
419
|
+
</Button>
|
|
420
|
+
</div>
|
|
421
|
+
|
|
422
|
+
{/* Mobile Recommendations */}
|
|
423
|
+
{mobileOptimization.analyzeMobileOptimization().recommendations.length > 0 && (
|
|
424
|
+
<div className="p-3 bg-green-50 border border-green-200 rounded-lg">
|
|
425
|
+
<h4 className="font-medium text-sm mb-2 text-green-800">Mobile Optimization Recommendations:</h4>
|
|
426
|
+
<ul className="text-xs text-green-700 space-y-1">
|
|
427
|
+
{mobileOptimization.analyzeMobileOptimization().recommendations.map((recommendation, index) => (
|
|
428
|
+
<li key={index}>• {recommendation}</li>
|
|
429
|
+
))}
|
|
430
|
+
</ul>
|
|
431
|
+
</div>
|
|
432
|
+
)}
|
|
433
|
+
</CardContent>
|
|
434
|
+
</Card>
|
|
435
|
+
)}
|
|
436
|
+
|
|
437
|
+
{/* Reusable Architecture Tab */}
|
|
438
|
+
{activeTab === 'architecture' && (
|
|
439
|
+
<Card className="border-2 border-cs-primary">
|
|
440
|
+
<CardHeader>
|
|
441
|
+
<CardTitle className="text-xl flex items-center gap-2">
|
|
442
|
+
🏗️ Reusable Component Architecture
|
|
443
|
+
<Badge variant="outline">{reusableArchitecture.templates.length} Templates</Badge>
|
|
444
|
+
</CardTitle>
|
|
445
|
+
<CardDescription>
|
|
446
|
+
Reusable component architecture including component composition, pattern sharing, style sharing, and behavior sharing
|
|
447
|
+
</CardDescription>
|
|
448
|
+
</CardHeader>
|
|
449
|
+
<CardContent className="space-y-4">
|
|
450
|
+
<div className="grid grid-cols-2 lg:grid-cols-4 gap-4 text-center">
|
|
451
|
+
<div>
|
|
452
|
+
<p className="text-2xl font-bold text-cs-primary">
|
|
453
|
+
{reusableArchitecture.templates.length}
|
|
454
|
+
</p>
|
|
455
|
+
<p className="text-sm text-cs-text-secondary">Templates</p>
|
|
456
|
+
</div>
|
|
457
|
+
<div>
|
|
458
|
+
<p className="text-2xl font-bold text-cs-secondary">
|
|
459
|
+
{reusableArchitecture.sharedPatterns.length}
|
|
460
|
+
</p>
|
|
461
|
+
<p className="text-sm text-cs-text-secondary">Shared Patterns</p>
|
|
462
|
+
</div>
|
|
463
|
+
<div>
|
|
464
|
+
<p className="text-2xl font-bold text-cs-accent">
|
|
465
|
+
{reusableArchitecture.sharedStyles.length}
|
|
466
|
+
</p>
|
|
467
|
+
<p className="text-sm text-cs-text-secondary">Shared Styles</p>
|
|
468
|
+
</div>
|
|
469
|
+
<div>
|
|
470
|
+
<p className="text-2xl font-bold text-cs-primary">
|
|
471
|
+
{reusableArchitecture.sharedBehaviors.length}
|
|
472
|
+
</p>
|
|
473
|
+
<p className="text-sm text-cs-text-secondary">Shared Behaviors</p>
|
|
474
|
+
</div>
|
|
475
|
+
</div>
|
|
476
|
+
|
|
477
|
+
{/* Architecture Controls */}
|
|
478
|
+
<div className="flex gap-2">
|
|
479
|
+
<Button
|
|
480
|
+
variant="default"
|
|
481
|
+
onClick={demonstrateArchitecture}
|
|
482
|
+
disabled={reusableArchitecture.isOptimizing}
|
|
483
|
+
>
|
|
484
|
+
Demonstrate Architecture
|
|
485
|
+
</Button>
|
|
486
|
+
<Button
|
|
487
|
+
variant="outline"
|
|
488
|
+
onClick={() => reusableArchitecture.clearOptimizations()}
|
|
489
|
+
>
|
|
490
|
+
Clear Optimizations
|
|
491
|
+
</Button>
|
|
492
|
+
</div>
|
|
493
|
+
|
|
494
|
+
{/* Architecture Analysis */}
|
|
495
|
+
<div className="p-3 bg-cs-accent/10 rounded-lg">
|
|
496
|
+
<h4 className="font-medium text-sm mb-2">Architecture Analysis:</h4>
|
|
497
|
+
<div className="grid grid-cols-2 gap-4 text-sm">
|
|
498
|
+
<div>
|
|
499
|
+
<span className="font-medium">Composition Level:</span>
|
|
500
|
+
<div className="text-cs-text-secondary">
|
|
501
|
+
{reusableArchitecture.analyzeArchitecture().compositionLevel}
|
|
502
|
+
</div>
|
|
503
|
+
</div>
|
|
504
|
+
<div>
|
|
505
|
+
<span className="font-medium">Reusability Score:</span>
|
|
506
|
+
<div className="text-cs-text-secondary">
|
|
507
|
+
{reusableArchitecture.analyzeArchitecture().reusabilityScore.toFixed(1)}%
|
|
508
|
+
</div>
|
|
509
|
+
</div>
|
|
510
|
+
</div>
|
|
511
|
+
</div>
|
|
512
|
+
|
|
513
|
+
{/* Architecture Recommendations */}
|
|
514
|
+
{reusableArchitecture.analyzeArchitecture().recommendations.length > 0 && (
|
|
515
|
+
<div className="p-3 bg-blue-50 border border-blue-200 rounded-lg">
|
|
516
|
+
<h4 className="font-medium text-sm mb-2 text-blue-800">Architecture Recommendations:</h4>
|
|
517
|
+
<ul className="text-xs text-blue-700 space-y-1">
|
|
518
|
+
{reusableArchitecture.analyzeArchitecture().recommendations.map((recommendation, index) => (
|
|
519
|
+
<li key={index}>• {recommendation}</li>
|
|
520
|
+
))}
|
|
521
|
+
</ul>
|
|
522
|
+
</div>
|
|
523
|
+
)}
|
|
524
|
+
</CardContent>
|
|
525
|
+
</Card>
|
|
526
|
+
)}
|
|
527
|
+
|
|
528
|
+
{/* Accessibility Tab */}
|
|
529
|
+
{activeTab === 'accessibility' && (
|
|
530
|
+
<Card className="border-2 border-cs-secondary">
|
|
531
|
+
<CardHeader>
|
|
532
|
+
<CardTitle className="text-xl flex items-center gap-2">
|
|
533
|
+
♿ Accessibility Support
|
|
534
|
+
<Badge variant={accessibilitySupport.isAccessibilityEnhanced() ? 'default' : 'secondary'}>
|
|
535
|
+
{accessibilitySupport.isAccessibilityEnhanced() ? 'Enhanced' : 'Basic'}
|
|
536
|
+
</Badge>
|
|
537
|
+
</CardTitle>
|
|
538
|
+
<CardDescription>
|
|
539
|
+
Accessibility support including ARIA support, keyboard navigation, screen reader support, and focus management
|
|
540
|
+
</CardDescription>
|
|
541
|
+
</CardHeader>
|
|
542
|
+
<CardContent className="space-y-4">
|
|
543
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
544
|
+
<div className="space-y-3">
|
|
545
|
+
<h4 className="font-medium">Accessibility Features</h4>
|
|
546
|
+
<div className="space-y-2">
|
|
547
|
+
<div className="flex justify-between">
|
|
548
|
+
<span className="text-sm">ARIA Support:</span>
|
|
549
|
+
<Badge variant={accessibilitySupport.state.hasAriaLabels ? 'default' : 'secondary'}>
|
|
550
|
+
{accessibilitySupport.state.hasAriaLabels ? 'Enabled' : 'Disabled'}
|
|
551
|
+
</Badge>
|
|
552
|
+
</div>
|
|
553
|
+
<div className="flex justify-between">
|
|
554
|
+
<span className="text-sm">Keyboard Navigation:</span>
|
|
555
|
+
<Badge variant={accessibilitySupport.state.hasKeyboardNavigation ? 'default' : 'secondary'}>
|
|
556
|
+
{accessibilitySupport.state.hasKeyboardNavigation ? 'Enabled' : 'Disabled'}
|
|
557
|
+
</Badge>
|
|
558
|
+
</div>
|
|
559
|
+
<div className="flex justify-between">
|
|
560
|
+
<span className="text-sm">Screen Reader:</span>
|
|
561
|
+
<Badge variant={accessibilitySupport.state.hasScreenReaderSupport ? 'default' : 'secondary'}>
|
|
562
|
+
{accessibilitySupport.state.hasScreenReaderSupport ? 'Enabled' : 'Disabled'}
|
|
563
|
+
</Badge>
|
|
564
|
+
</div>
|
|
565
|
+
<div className="flex justify-between">
|
|
566
|
+
<span className="text-sm">Focus Management:</span>
|
|
567
|
+
<Badge variant={accessibilitySupport.state.hasFocusManagement ? 'default' : 'secondary'}>
|
|
568
|
+
{accessibilitySupport.state.hasFocusManagement ? 'Enabled' : 'Disabled'}
|
|
569
|
+
</Badge>
|
|
570
|
+
</div>
|
|
571
|
+
</div>
|
|
572
|
+
</div>
|
|
573
|
+
|
|
574
|
+
<div className="space-y-3">
|
|
575
|
+
<h4 className="font-medium">Accessibility Preferences</h4>
|
|
576
|
+
<div className="space-y-2">
|
|
577
|
+
<div className="flex justify-between">
|
|
578
|
+
<span className="text-sm">High Contrast:</span>
|
|
579
|
+
<Badge variant={accessibilitySupport.state.isHighContrast ? 'default' : 'secondary'}>
|
|
580
|
+
{accessibilitySupport.state.isHighContrast ? 'Enabled' : 'Disabled'}
|
|
581
|
+
</Badge>
|
|
582
|
+
</div>
|
|
583
|
+
<div className="flex justify-between">
|
|
584
|
+
<span className="text-sm">Reduced Motion:</span>
|
|
585
|
+
<Badge variant={accessibilitySupport.state.isReducedMotion ? 'default' : 'secondary'}>
|
|
586
|
+
{accessibilitySupport.state.isReducedMotion ? 'Enabled' : 'Disabled'}
|
|
587
|
+
</Badge>
|
|
588
|
+
</div>
|
|
589
|
+
<div className="flex justify-between">
|
|
590
|
+
<span className="text-sm">Voice Control:</span>
|
|
591
|
+
<Badge variant={accessibilitySupport.state.isVoiceControlEnabled ? 'default' : 'secondary'}>
|
|
592
|
+
{accessibilitySupport.state.isVoiceControlEnabled ? 'Enabled' : 'Disabled'}
|
|
593
|
+
</Badge>
|
|
594
|
+
</div>
|
|
595
|
+
<div className="flex justify-between">
|
|
596
|
+
<span className="text-sm">Accessibility Level:</span>
|
|
597
|
+
<Badge variant="outline">{accessibilitySupport.state.accessibilityLevel}</Badge>
|
|
598
|
+
</div>
|
|
599
|
+
</div>
|
|
600
|
+
</div>
|
|
601
|
+
</div>
|
|
602
|
+
|
|
603
|
+
{/* Accessibility Controls */}
|
|
604
|
+
<div className="flex gap-2">
|
|
605
|
+
<Button
|
|
606
|
+
variant="default"
|
|
607
|
+
onClick={demonstrateAccessibility}
|
|
608
|
+
disabled={accessibilitySupport.isEnhancing}
|
|
609
|
+
>
|
|
610
|
+
Demonstrate Accessibility
|
|
611
|
+
</Button>
|
|
612
|
+
<Button
|
|
613
|
+
variant="outline"
|
|
614
|
+
onClick={() => accessibilitySupport.clearEnhancements()}
|
|
615
|
+
>
|
|
616
|
+
Clear Enhancements
|
|
617
|
+
</Button>
|
|
618
|
+
</div>
|
|
619
|
+
|
|
620
|
+
{/* Accessibility Analysis */}
|
|
621
|
+
<div className="p-3 bg-cs-accent/10 rounded-lg">
|
|
622
|
+
<h4 className="font-medium text-sm mb-2">Accessibility Analysis:</h4>
|
|
623
|
+
<div className="grid grid-cols-2 gap-4 text-sm">
|
|
624
|
+
<div>
|
|
625
|
+
<span className="font-medium">Accessibility Level:</span>
|
|
626
|
+
<div className="text-cs-text-secondary">
|
|
627
|
+
{accessibilitySupport.analyzeAccessibility().level}
|
|
628
|
+
</div>
|
|
629
|
+
</div>
|
|
630
|
+
<div>
|
|
631
|
+
<span className="font-medium">Feature Coverage:</span>
|
|
632
|
+
<div className="text-cs-text-secondary">
|
|
633
|
+
{accessibilitySupport.analyzeAccessibility().coverage.toFixed(1)}%
|
|
634
|
+
</div>
|
|
635
|
+
</div>
|
|
636
|
+
</div>
|
|
637
|
+
</div>
|
|
638
|
+
|
|
639
|
+
{/* Accessibility Recommendations */}
|
|
640
|
+
{accessibilitySupport.analyzeAccessibility().recommendations.length > 0 && (
|
|
641
|
+
<div className="p-3 bg-green-50 border border-green-200 rounded-lg">
|
|
642
|
+
<h4 className="font-medium text-sm mb-2 text-green-800">Accessibility Recommendations:</h4>
|
|
643
|
+
<ul className="text-xs text-green-700 space-y-1">
|
|
644
|
+
{accessibilitySupport.analyzeAccessibility().recommendations.map((recommendation, index) => (
|
|
645
|
+
<li key={index}>• {recommendation}</li>
|
|
646
|
+
))}
|
|
647
|
+
</ul>
|
|
648
|
+
</div>
|
|
649
|
+
)}
|
|
650
|
+
|
|
651
|
+
{/* Accessibility Warnings */}
|
|
652
|
+
{accessibilitySupport.accessibilityWarnings.length > 0 && (
|
|
653
|
+
<div className="p-3 bg-yellow-50 border border-yellow-200 rounded-lg">
|
|
654
|
+
<h4 className="font-medium text-sm mb-2 text-yellow-800">Accessibility Warnings:</h4>
|
|
655
|
+
<ul className="text-xs text-yellow-700 space-y-1">
|
|
656
|
+
{accessibilitySupport.accessibilityWarnings.map((warning, index) => (
|
|
657
|
+
<li key={index}>• {warning}</li>
|
|
658
|
+
))}
|
|
659
|
+
</ul>
|
|
660
|
+
</div>
|
|
661
|
+
)}
|
|
662
|
+
</CardContent>
|
|
663
|
+
</Card>
|
|
664
|
+
)}
|
|
665
|
+
|
|
666
|
+
{/* Demo Controls */}
|
|
667
|
+
<Card className="border border-cs-border">
|
|
668
|
+
<CardHeader>
|
|
669
|
+
<CardTitle className="text-lg">Demo Controls</CardTitle>
|
|
670
|
+
<CardDescription>
|
|
671
|
+
Configure and test different advanced component architecture features
|
|
672
|
+
</CardDescription>
|
|
673
|
+
</CardHeader>
|
|
674
|
+
<CardContent className="space-y-4">
|
|
675
|
+
<div className="flex flex-wrap gap-4">
|
|
676
|
+
<Button
|
|
677
|
+
variant={showPatternDemo ? 'default' : 'outline'}
|
|
678
|
+
size="sm"
|
|
679
|
+
onClick={() => setShowPatternDemo(!showPatternDemo)}
|
|
680
|
+
>
|
|
681
|
+
{showPatternDemo ? 'Hide' : 'Show'} Pattern Demo
|
|
682
|
+
</Button>
|
|
683
|
+
<Button
|
|
684
|
+
variant={showPerformanceDemo ? 'default' : 'outline'}
|
|
685
|
+
size="sm"
|
|
686
|
+
onClick={() => setShowPerformanceDemo(!showPerformanceDemo)}
|
|
687
|
+
>
|
|
688
|
+
{showPerformanceDemo ? 'Hide' : 'Show'} Performance Demo
|
|
689
|
+
</Button>
|
|
690
|
+
<Button
|
|
691
|
+
variant={showMobileDemo ? 'default' : 'outline'}
|
|
692
|
+
size="sm"
|
|
693
|
+
onClick={() => setShowMobileDemo(!showMobileDemo)}
|
|
694
|
+
>
|
|
695
|
+
{showMobileDemo ? 'Hide' : 'Show'} Mobile Demo
|
|
696
|
+
</Button>
|
|
697
|
+
<Button
|
|
698
|
+
variant={showArchitectureDemo ? 'default' : 'outline'}
|
|
699
|
+
size="sm"
|
|
700
|
+
onClick={() => setShowArchitectureDemo(!showArchitectureDemo)}
|
|
701
|
+
>
|
|
702
|
+
{showArchitectureDemo ? 'Hide' : 'Show'} Architecture Demo
|
|
703
|
+
</Button>
|
|
704
|
+
<Button
|
|
705
|
+
variant={showAccessibilityDemo ? 'default' : 'outline'}
|
|
706
|
+
size="sm"
|
|
707
|
+
onClick={() => setShowAccessibilityDemo(!showAccessibilityDemo)}
|
|
708
|
+
>
|
|
709
|
+
{showAccessibilityDemo ? 'Hide' : 'Show'} Accessibility Demo
|
|
710
|
+
</Button>
|
|
711
|
+
</div>
|
|
712
|
+
</CardContent>
|
|
713
|
+
</Card>
|
|
714
|
+
</div>
|
|
715
|
+
)
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
export default AdvancedComponentArchitectureDemo
|