@rakeyshgidwani/roger-ui-bank-theme-jeremy 0.5.3
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 +23 -0
- package/README.md +137 -0
- package/dist/components/ui/accessibility-demo.d.ts +7 -0
- package/dist/components/ui/accessibility-demo.d.ts.map +1 -0
- package/dist/components/ui/accessibility-demo.esm.js +95 -0
- package/dist/components/ui/accessibility-demo.js +95 -0
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +4 -0
- package/dist/components/ui/advanced-component-architecture-demo.d.ts.map +1 -0
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +257 -0
- package/dist/components/ui/advanced-component-architecture-demo.js +257 -0
- package/dist/components/ui/advanced-transition-system-demo.d.ts +3 -0
- package/dist/components/ui/advanced-transition-system-demo.d.ts.map +1 -0
- package/dist/components/ui/advanced-transition-system-demo.esm.js +60 -0
- package/dist/components/ui/advanced-transition-system-demo.js +60 -0
- package/dist/components/ui/advanced-transition-system.d.ts +45 -0
- package/dist/components/ui/advanced-transition-system.d.ts.map +1 -0
- package/dist/components/ui/advanced-transition-system.esm.js +213 -0
- package/dist/components/ui/advanced-transition-system.js +213 -0
- package/dist/components/ui/animation/animated-container.d.ts +13 -0
- package/dist/components/ui/animation/animated-container.d.ts.map +1 -0
- package/dist/components/ui/animation/animated-container.esm.js +106 -0
- package/dist/components/ui/animation/animated-container.js +106 -0
- package/dist/components/ui/animation/index.d.ts +7 -0
- package/dist/components/ui/animation/index.d.ts.map +1 -0
- package/dist/components/ui/animation/index.esm.js +4 -0
- package/dist/components/ui/animation/index.js +4 -0
- package/dist/components/ui/animation/staggered-container.d.ts +10 -0
- package/dist/components/ui/animation/staggered-container.d.ts.map +1 -0
- package/dist/components/ui/animation/staggered-container.esm.js +37 -0
- package/dist/components/ui/animation/staggered-container.js +37 -0
- package/dist/components/ui/animation-demo.d.ts +3 -0
- package/dist/components/ui/animation-demo.d.ts.map +1 -0
- package/dist/components/ui/animation-demo.esm.js +31 -0
- package/dist/components/ui/animation-demo.js +31 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.esm.js +20 -0
- package/dist/components/ui/badge.js +20 -0
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +4 -0
- package/dist/components/ui/battery-conscious-animation-demo.d.ts.map +1 -0
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +140 -0
- package/dist/components/ui/battery-conscious-animation-demo.js +140 -0
- package/dist/components/ui/border-radius-shadow-demo.d.ts +3 -0
- package/dist/components/ui/border-radius-shadow-demo.d.ts.map +1 -0
- package/dist/components/ui/border-radius-shadow-demo.esm.js +7 -0
- package/dist/components/ui/border-radius-shadow-demo.js +7 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.esm.js +19 -0
- package/dist/components/ui/button.js +19 -0
- package/dist/components/ui/card.d.ts +37 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.esm.js +93 -0
- package/dist/components/ui/card.js +93 -0
- package/dist/components/ui/checkbox.d.ts +8 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.esm.js +12 -0
- package/dist/components/ui/checkbox.js +12 -0
- package/dist/components/ui/color-preview.d.ts +16 -0
- package/dist/components/ui/color-preview.d.ts.map +1 -0
- package/dist/components/ui/color-preview.esm.js +57 -0
- package/dist/components/ui/color-preview.js +57 -0
- package/dist/components/ui/data-display/chart.d.ts +5 -0
- package/dist/components/ui/data-display/chart.d.ts.map +1 -0
- package/dist/components/ui/data-display/chart.esm.js +233 -0
- package/dist/components/ui/data-display/chart.js +233 -0
- package/dist/components/ui/data-display/data-grid-simple.d.ts +5 -0
- package/dist/components/ui/data-display/data-grid-simple.d.ts.map +1 -0
- package/dist/components/ui/data-display/data-grid-simple.esm.js +19 -0
- package/dist/components/ui/data-display/data-grid-simple.js +19 -0
- package/dist/components/ui/data-display/data-grid.d.ts +5 -0
- package/dist/components/ui/data-display/data-grid.d.ts.map +1 -0
- package/dist/components/ui/data-display/data-grid.esm.js +195 -0
- package/dist/components/ui/data-display/data-grid.js +195 -0
- package/dist/components/ui/data-display/list.d.ts +5 -0
- package/dist/components/ui/data-display/list.d.ts.map +1 -0
- package/dist/components/ui/data-display/list.esm.js +100 -0
- package/dist/components/ui/data-display/list.js +100 -0
- package/dist/components/ui/data-display/table.d.ts +5 -0
- package/dist/components/ui/data-display/table.d.ts.map +1 -0
- package/dist/components/ui/data-display/table.esm.js +125 -0
- package/dist/components/ui/data-display/table.js +125 -0
- package/dist/components/ui/data-display/timeline.d.ts +5 -0
- package/dist/components/ui/data-display/timeline.d.ts.map +1 -0
- package/dist/components/ui/data-display/timeline.esm.js +104 -0
- package/dist/components/ui/data-display/timeline.js +104 -0
- package/dist/components/ui/data-display/tree.d.ts +5 -0
- package/dist/components/ui/data-display/tree.d.ts.map +1 -0
- package/dist/components/ui/data-display/tree.esm.js +231 -0
- package/dist/components/ui/data-display/tree.js +231 -0
- package/dist/components/ui/data-display/types.d.ts +483 -0
- package/dist/components/ui/data-display/types.d.ts.map +1 -0
- package/dist/components/ui/data-display/types.esm.js +8 -0
- package/dist/components/ui/data-display/types.js +8 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +3 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts.map +1 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +77 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.js +77 -0
- package/dist/components/ui/enterprise-mobile-experience.d.ts +72 -0
- package/dist/components/ui/enterprise-mobile-experience.d.ts.map +1 -0
- package/dist/components/ui/enterprise-mobile-experience.esm.js +157 -0
- package/dist/components/ui/enterprise-mobile-experience.js +157 -0
- package/dist/components/ui/feedback/alert.d.ts +5 -0
- package/dist/components/ui/feedback/alert.d.ts.map +1 -0
- package/dist/components/ui/feedback/alert.esm.js +51 -0
- package/dist/components/ui/feedback/alert.js +51 -0
- package/dist/components/ui/feedback/index.d.ts +10 -0
- package/dist/components/ui/feedback/index.d.ts.map +1 -0
- package/dist/components/ui/feedback/index.esm.js +10 -0
- package/dist/components/ui/feedback/index.js +10 -0
- package/dist/components/ui/feedback/progress.d.ts +5 -0
- package/dist/components/ui/feedback/progress.d.ts.map +1 -0
- package/dist/components/ui/feedback/progress.esm.js +77 -0
- package/dist/components/ui/feedback/progress.js +77 -0
- package/dist/components/ui/feedback/skeleton.d.ts +8 -0
- package/dist/components/ui/feedback/skeleton.d.ts.map +1 -0
- package/dist/components/ui/feedback/skeleton.esm.js +77 -0
- package/dist/components/ui/feedback/skeleton.js +77 -0
- package/dist/components/ui/feedback/status-alert-example.d.ts +3 -0
- package/dist/components/ui/feedback/status-alert-example.d.ts.map +1 -0
- package/dist/components/ui/feedback/status-alert-example.esm.js +68 -0
- package/dist/components/ui/feedback/status-alert-example.js +68 -0
- package/dist/components/ui/feedback/toast-context.d.ts +27 -0
- package/dist/components/ui/feedback/toast-context.d.ts.map +1 -0
- package/dist/components/ui/feedback/toast-context.esm.js +95 -0
- package/dist/components/ui/feedback/toast-context.js +95 -0
- package/dist/components/ui/feedback/toast-example.d.ts +4 -0
- package/dist/components/ui/feedback/toast-example.d.ts.map +1 -0
- package/dist/components/ui/feedback/toast-example.esm.js +40 -0
- package/dist/components/ui/feedback/toast-example.js +40 -0
- package/dist/components/ui/feedback/toast-renderer.d.ts +11 -0
- package/dist/components/ui/feedback/toast-renderer.d.ts.map +1 -0
- package/dist/components/ui/feedback/toast-renderer.esm.js +23 -0
- package/dist/components/ui/feedback/toast-renderer.js +23 -0
- package/dist/components/ui/feedback/toast.d.ts +8 -0
- package/dist/components/ui/feedback/toast.d.ts.map +1 -0
- package/dist/components/ui/feedback/toast.esm.js +143 -0
- package/dist/components/ui/feedback/toast.js +143 -0
- package/dist/components/ui/feedback/types.d.ts +127 -0
- package/dist/components/ui/feedback/types.d.ts.map +1 -0
- package/dist/components/ui/feedback/types.esm.js +2 -0
- package/dist/components/ui/feedback/types.js +2 -0
- package/dist/components/ui/font-preview.d.ts +15 -0
- package/dist/components/ui/font-preview.d.ts.map +1 -0
- package/dist/components/ui/font-preview.esm.js +62 -0
- package/dist/components/ui/font-preview.js +62 -0
- package/dist/components/ui/form-demo.d.ts +4 -0
- package/dist/components/ui/form-demo.d.ts.map +1 -0
- package/dist/components/ui/form-demo.esm.js +192 -0
- package/dist/components/ui/form-demo.js +192 -0
- package/dist/components/ui/hardware-acceleration-demo.d.ts +4 -0
- package/dist/components/ui/hardware-acceleration-demo.d.ts.map +1 -0
- package/dist/components/ui/hardware-acceleration-demo.esm.js +107 -0
- package/dist/components/ui/hardware-acceleration-demo.js +107 -0
- package/dist/components/ui/input.d.ts +9 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.esm.js +17 -0
- package/dist/components/ui/input.js +17 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.esm.js +6 -0
- package/dist/components/ui/label.js +6 -0
- package/dist/components/ui/layout/container.d.ts +57 -0
- package/dist/components/ui/layout/container.d.ts.map +1 -0
- package/dist/components/ui/layout/container.esm.js +173 -0
- package/dist/components/ui/layout/container.js +173 -0
- package/dist/components/ui/layout/index.d.ts +9 -0
- package/dist/components/ui/layout/index.d.ts.map +1 -0
- package/dist/components/ui/layout/index.esm.js +6 -0
- package/dist/components/ui/layout/index.js +6 -0
- package/dist/components/ui/layout/responsive-grid.d.ts +93 -0
- package/dist/components/ui/layout/responsive-grid.d.ts.map +1 -0
- package/dist/components/ui/layout/responsive-grid.esm.js +124 -0
- package/dist/components/ui/layout/responsive-grid.js +124 -0
- package/dist/components/ui/layout-demo.d.ts +4 -0
- package/dist/components/ui/layout-demo.d.ts.map +1 -0
- package/dist/components/ui/layout-demo.esm.js +77 -0
- package/dist/components/ui/layout-demo.js +77 -0
- package/dist/components/ui/layouts/adaptive-layout.d.ts +18 -0
- package/dist/components/ui/layouts/adaptive-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/adaptive-layout.esm.js +54 -0
- package/dist/components/ui/layouts/adaptive-layout.js +54 -0
- package/dist/components/ui/layouts/desktop-layout.d.ts +15 -0
- package/dist/components/ui/layouts/desktop-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/desktop-layout.esm.js +40 -0
- package/dist/components/ui/layouts/desktop-layout.js +40 -0
- package/dist/components/ui/layouts/index.d.ts +9 -0
- package/dist/components/ui/layouts/index.d.ts.map +1 -0
- package/dist/components/ui/layouts/index.esm.js +4 -0
- package/dist/components/ui/layouts/index.js +4 -0
- package/dist/components/ui/layouts/mobile-layout.d.ts +15 -0
- package/dist/components/ui/layouts/mobile-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/mobile-layout.esm.js +50 -0
- package/dist/components/ui/layouts/mobile-layout.js +50 -0
- package/dist/components/ui/layouts/tablet-layout.d.ts +15 -0
- package/dist/components/ui/layouts/tablet-layout.d.ts.map +1 -0
- package/dist/components/ui/layouts/tablet-layout.esm.js +54 -0
- package/dist/components/ui/layouts/tablet-layout.js +54 -0
- package/dist/components/ui/mobile-form-validation.d.ts +32 -0
- package/dist/components/ui/mobile-form-validation.d.ts.map +1 -0
- package/dist/components/ui/mobile-form-validation.esm.js +218 -0
- package/dist/components/ui/mobile-form-validation.js +218 -0
- package/dist/components/ui/mobile-input-demo.d.ts +3 -0
- package/dist/components/ui/mobile-input-demo.d.ts.map +1 -0
- package/dist/components/ui/mobile-input-demo.esm.js +15 -0
- package/dist/components/ui/mobile-input-demo.js +15 -0
- package/dist/components/ui/mobile-input.d.ts +66 -0
- package/dist/components/ui/mobile-input.d.ts.map +1 -0
- package/dist/components/ui/mobile-input.esm.js +199 -0
- package/dist/components/ui/mobile-input.js +199 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +4 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts.map +1 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +145 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.js +145 -0
- package/dist/components/ui/navigation/breadcrumb.d.ts +9 -0
- package/dist/components/ui/navigation/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/navigation/breadcrumb.esm.js +60 -0
- package/dist/components/ui/navigation/breadcrumb.js +60 -0
- package/dist/components/ui/navigation/index.d.ts +16 -0
- package/dist/components/ui/navigation/index.d.ts.map +1 -0
- package/dist/components/ui/navigation/index.esm.js +15 -0
- package/dist/components/ui/navigation/index.js +15 -0
- package/dist/components/ui/navigation/menu.d.ts +9 -0
- package/dist/components/ui/navigation/menu.d.ts.map +1 -0
- package/dist/components/ui/navigation/menu.esm.js +192 -0
- package/dist/components/ui/navigation/menu.js +192 -0
- package/dist/components/ui/navigation/navigation-demo.d.ts +8 -0
- package/dist/components/ui/navigation/navigation-demo.d.ts.map +1 -0
- package/dist/components/ui/navigation/navigation-demo.esm.js +144 -0
- package/dist/components/ui/navigation/navigation-demo.js +144 -0
- package/dist/components/ui/navigation/pagination.d.ts +9 -0
- package/dist/components/ui/navigation/pagination.d.ts.map +1 -0
- package/dist/components/ui/navigation/pagination.esm.js +155 -0
- package/dist/components/ui/navigation/pagination.js +155 -0
- package/dist/components/ui/navigation/progressive-navigation.d.ts +37 -0
- package/dist/components/ui/navigation/progressive-navigation.d.ts.map +1 -0
- package/dist/components/ui/navigation/progressive-navigation.esm.js +145 -0
- package/dist/components/ui/navigation/progressive-navigation.js +145 -0
- package/dist/components/ui/navigation/sidebar.d.ts +9 -0
- package/dist/components/ui/navigation/sidebar.d.ts.map +1 -0
- package/dist/components/ui/navigation/sidebar.esm.js +176 -0
- package/dist/components/ui/navigation/sidebar.js +176 -0
- package/dist/components/ui/navigation/stepper.d.ts +9 -0
- package/dist/components/ui/navigation/stepper.d.ts.map +1 -0
- package/dist/components/ui/navigation/stepper.esm.js +144 -0
- package/dist/components/ui/navigation/stepper.js +144 -0
- package/dist/components/ui/navigation/subscription-badge.d.ts +9 -0
- package/dist/components/ui/navigation/subscription-badge.d.ts.map +1 -0
- package/dist/components/ui/navigation/subscription-badge.esm.js +58 -0
- package/dist/components/ui/navigation/subscription-badge.js +58 -0
- package/dist/components/ui/navigation/tabs.d.ts +9 -0
- package/dist/components/ui/navigation/tabs.d.ts.map +1 -0
- package/dist/components/ui/navigation/tabs.esm.js +101 -0
- package/dist/components/ui/navigation/tabs.js +101 -0
- package/dist/components/ui/navigation/types.d.ts +277 -0
- package/dist/components/ui/navigation/types.d.ts.map +1 -0
- package/dist/components/ui/navigation/types.esm.js +5 -0
- package/dist/components/ui/navigation/types.js +5 -0
- package/dist/components/ui/navigation/user-avatar.d.ts +9 -0
- package/dist/components/ui/navigation/user-avatar.d.ts.map +1 -0
- package/dist/components/ui/navigation/user-avatar.esm.js +55 -0
- package/dist/components/ui/navigation/user-avatar.js +55 -0
- package/dist/components/ui/navigation/user-menu-examples.d.ts +8 -0
- package/dist/components/ui/navigation/user-menu-examples.d.ts.map +1 -0
- package/dist/components/ui/navigation/user-menu-examples.esm.js +125 -0
- package/dist/components/ui/navigation/user-menu-examples.js +125 -0
- package/dist/components/ui/navigation/user-menu-types.d.ts +218 -0
- package/dist/components/ui/navigation/user-menu-types.d.ts.map +1 -0
- package/dist/components/ui/navigation/user-menu-types.esm.js +5 -0
- package/dist/components/ui/navigation/user-menu-types.js +5 -0
- package/dist/components/ui/navigation/user-menu.d.ts +9 -0
- package/dist/components/ui/navigation/user-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation/user-menu.esm.js +205 -0
- package/dist/components/ui/navigation/user-menu.js +205 -0
- package/dist/components/ui/overlay/backdrop.d.ts +15 -0
- package/dist/components/ui/overlay/backdrop.d.ts.map +1 -0
- package/dist/components/ui/overlay/backdrop.esm.js +44 -0
- package/dist/components/ui/overlay/backdrop.js +44 -0
- package/dist/components/ui/overlay/focus-manager.d.ts +13 -0
- package/dist/components/ui/overlay/focus-manager.d.ts.map +1 -0
- package/dist/components/ui/overlay/focus-manager.esm.js +101 -0
- package/dist/components/ui/overlay/focus-manager.js +101 -0
- package/dist/components/ui/overlay/index.d.ts +10 -0
- package/dist/components/ui/overlay/index.d.ts.map +1 -0
- package/dist/components/ui/overlay/index.esm.js +9 -0
- package/dist/components/ui/overlay/index.js +9 -0
- package/dist/components/ui/overlay/modal.d.ts +8 -0
- package/dist/components/ui/overlay/modal.d.ts.map +1 -0
- package/dist/components/ui/overlay/modal.esm.js +118 -0
- package/dist/components/ui/overlay/modal.js +118 -0
- package/dist/components/ui/overlay/overlay-manager.d.ts +17 -0
- package/dist/components/ui/overlay/overlay-manager.d.ts.map +1 -0
- package/dist/components/ui/overlay/overlay-manager.esm.js +73 -0
- package/dist/components/ui/overlay/overlay-manager.js +73 -0
- package/dist/components/ui/overlay/popover.d.ts +9 -0
- package/dist/components/ui/overlay/popover.d.ts.map +1 -0
- package/dist/components/ui/overlay/popover.esm.js +284 -0
- package/dist/components/ui/overlay/popover.js +284 -0
- package/dist/components/ui/overlay/portal.d.ts +5 -0
- package/dist/components/ui/overlay/portal.d.ts.map +1 -0
- package/dist/components/ui/overlay/portal.esm.js +52 -0
- package/dist/components/ui/overlay/portal.js +52 -0
- package/dist/components/ui/overlay/tooltip.d.ts +6 -0
- package/dist/components/ui/overlay/tooltip.d.ts.map +1 -0
- package/dist/components/ui/overlay/tooltip.esm.js +219 -0
- package/dist/components/ui/overlay/tooltip.js +219 -0
- package/dist/components/ui/overlay/types.d.ts +171 -0
- package/dist/components/ui/overlay/types.d.ts.map +1 -0
- package/dist/components/ui/overlay/types.esm.js +2 -0
- package/dist/components/ui/overlay/types.js +2 -0
- package/dist/components/ui/performance-demo.d.ts +3 -0
- package/dist/components/ui/performance-demo.d.ts.map +1 -0
- package/dist/components/ui/performance-demo.esm.js +111 -0
- package/dist/components/ui/performance-demo.js +111 -0
- package/dist/components/ui/semantic-input-system-demo.d.ts +3 -0
- package/dist/components/ui/semantic-input-system-demo.d.ts.map +1 -0
- package/dist/components/ui/semantic-input-system-demo.esm.js +89 -0
- package/dist/components/ui/semantic-input-system-demo.js +89 -0
- package/dist/components/ui/theme-customizer.d.ts +27 -0
- package/dist/components/ui/theme-customizer.d.ts.map +1 -0
- package/dist/components/ui/theme-customizer.esm.js +140 -0
- package/dist/components/ui/theme-customizer.js +140 -0
- package/dist/components/ui/theme-preview.d.ts +11 -0
- package/dist/components/ui/theme-preview.d.ts.map +1 -0
- package/dist/components/ui/theme-preview.esm.js +49 -0
- package/dist/components/ui/theme-preview.js +49 -0
- package/dist/components/ui/theme-switcher.d.ts +11 -0
- package/dist/components/ui/theme-switcher.d.ts.map +1 -0
- package/dist/components/ui/theme-switcher.esm.js +87 -0
- package/dist/components/ui/theme-switcher.js +87 -0
- package/dist/components/ui/theme-toggle.d.ts +3 -0
- package/dist/components/ui/theme-toggle.d.ts.map +1 -0
- package/dist/components/ui/theme-toggle.esm.js +36 -0
- package/dist/components/ui/theme-toggle.js +36 -0
- package/dist/components/ui/token-demo.d.ts +3 -0
- package/dist/components/ui/token-demo.d.ts.map +1 -0
- package/dist/components/ui/token-demo.esm.js +50 -0
- package/dist/components/ui/token-demo.js +50 -0
- package/dist/components/ui/touch-demo.d.ts +3 -0
- package/dist/components/ui/touch-demo.d.ts.map +1 -0
- package/dist/components/ui/touch-demo.esm.js +97 -0
- package/dist/components/ui/touch-demo.js +97 -0
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +3 -0
- package/dist/components/ui/touch-friendly-interface-demo.d.ts.map +1 -0
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +64 -0
- package/dist/components/ui/touch-friendly-interface-demo.js +64 -0
- package/dist/components/ui/touch-friendly-interface.d.ts +31 -0
- package/dist/components/ui/touch-friendly-interface.d.ts.map +1 -0
- package/dist/components/ui/touch-friendly-interface.esm.js +119 -0
- package/dist/components/ui/touch-friendly-interface.js +119 -0
- package/dist/hooks/index.d.ts +47 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.esm.js +32 -0
- package/dist/hooks/index.js +32 -0
- package/dist/hooks/use-accessibility-support.d.ts +74 -0
- package/dist/hooks/use-accessibility-support.d.ts.map +1 -0
- package/dist/hooks/use-accessibility-support.esm.js +377 -0
- package/dist/hooks/use-accessibility-support.js +377 -0
- package/dist/hooks/use-adaptive-layout.d.ts +58 -0
- package/dist/hooks/use-adaptive-layout.d.ts.map +1 -0
- package/dist/hooks/use-adaptive-layout.esm.js +219 -0
- package/dist/hooks/use-adaptive-layout.js +219 -0
- package/dist/hooks/use-advanced-patterns.d.ts +88 -0
- package/dist/hooks/use-advanced-patterns.d.ts.map +1 -0
- package/dist/hooks/use-advanced-patterns.esm.js +186 -0
- package/dist/hooks/use-advanced-patterns.js +186 -0
- package/dist/hooks/use-advanced-transition-system.d.ts +59 -0
- package/dist/hooks/use-advanced-transition-system.d.ts.map +1 -0
- package/dist/hooks/use-advanced-transition-system.esm.js +287 -0
- package/dist/hooks/use-advanced-transition-system.js +287 -0
- package/dist/hooks/use-animation-profile.d.ts +45 -0
- package/dist/hooks/use-animation-profile.d.ts.map +1 -0
- package/dist/hooks/use-animation-profile.esm.js +226 -0
- package/dist/hooks/use-animation-profile.js +226 -0
- package/dist/hooks/use-battery-animations.d.ts +53 -0
- package/dist/hooks/use-battery-animations.d.ts.map +1 -0
- package/dist/hooks/use-battery-animations.esm.js +310 -0
- package/dist/hooks/use-battery-animations.js +310 -0
- package/dist/hooks/use-battery-conscious-loading.d.ts +58 -0
- package/dist/hooks/use-battery-conscious-loading.d.ts.map +1 -0
- package/dist/hooks/use-battery-conscious-loading.esm.js +381 -0
- package/dist/hooks/use-battery-conscious-loading.js +381 -0
- package/dist/hooks/use-battery-optimization.d.ts +45 -0
- package/dist/hooks/use-battery-optimization.d.ts.map +1 -0
- package/dist/hooks/use-battery-optimization.esm.js +268 -0
- package/dist/hooks/use-battery-optimization.js +268 -0
- package/dist/hooks/use-battery-status.d.ts +57 -0
- package/dist/hooks/use-battery-status.d.ts.map +1 -0
- package/dist/hooks/use-battery-status.esm.js +219 -0
- package/dist/hooks/use-battery-status.js +219 -0
- package/dist/hooks/use-component-performance.d.ts +67 -0
- package/dist/hooks/use-component-performance.d.ts.map +1 -0
- package/dist/hooks/use-component-performance.esm.js +239 -0
- package/dist/hooks/use-component-performance.js +239 -0
- package/dist/hooks/use-device-loading-states.d.ts +61 -0
- package/dist/hooks/use-device-loading-states.d.ts.map +1 -0
- package/dist/hooks/use-device-loading-states.esm.js +358 -0
- package/dist/hooks/use-device-loading-states.js +358 -0
- package/dist/hooks/use-device.d.ts +22 -0
- package/dist/hooks/use-device.d.ts.map +1 -0
- package/dist/hooks/use-device.esm.js +93 -0
- package/dist/hooks/use-device.js +93 -0
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +84 -0
- package/dist/hooks/use-enterprise-mobile-experience.d.ts.map +1 -0
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +350 -0
- package/dist/hooks/use-enterprise-mobile-experience.js +350 -0
- package/dist/hooks/use-form-feedback.d.ts +91 -0
- package/dist/hooks/use-form-feedback.d.ts.map +1 -0
- package/dist/hooks/use-form-feedback.esm.js +318 -0
- package/dist/hooks/use-form-feedback.js +318 -0
- package/dist/hooks/use-form-performance.d.ts +88 -0
- package/dist/hooks/use-form-performance.d.ts.map +1 -0
- package/dist/hooks/use-form-performance.esm.js +420 -0
- package/dist/hooks/use-form-performance.js +420 -0
- package/dist/hooks/use-frame-rate.d.ts +47 -0
- package/dist/hooks/use-frame-rate.d.ts.map +1 -0
- package/dist/hooks/use-frame-rate.esm.js +178 -0
- package/dist/hooks/use-frame-rate.js +178 -0
- package/dist/hooks/use-gestures.d.ts +94 -0
- package/dist/hooks/use-gestures.d.ts.map +1 -0
- package/dist/hooks/use-gestures.esm.js +236 -0
- package/dist/hooks/use-gestures.js +236 -0
- package/dist/hooks/use-hardware-acceleration.d.ts +53 -0
- package/dist/hooks/use-hardware-acceleration.d.ts.map +1 -0
- package/dist/hooks/use-hardware-acceleration.esm.js +248 -0
- package/dist/hooks/use-hardware-acceleration.js +248 -0
- package/dist/hooks/use-input-accessibility.d.ts +58 -0
- package/dist/hooks/use-input-accessibility.d.ts.map +1 -0
- package/dist/hooks/use-input-accessibility.esm.js +351 -0
- package/dist/hooks/use-input-accessibility.js +351 -0
- package/dist/hooks/use-input-performance.d.ts +55 -0
- package/dist/hooks/use-input-performance.d.ts.map +1 -0
- package/dist/hooks/use-input-performance.esm.js +423 -0
- package/dist/hooks/use-input-performance.js +423 -0
- package/dist/hooks/use-layout-performance.d.ts +39 -0
- package/dist/hooks/use-layout-performance.d.ts.map +1 -0
- package/dist/hooks/use-layout-performance.esm.js +233 -0
- package/dist/hooks/use-layout-performance.js +233 -0
- package/dist/hooks/use-loading-accessibility.d.ts +62 -0
- package/dist/hooks/use-loading-accessibility.d.ts.map +1 -0
- package/dist/hooks/use-loading-accessibility.esm.js +425 -0
- package/dist/hooks/use-loading-accessibility.js +425 -0
- package/dist/hooks/use-loading-performance.d.ts +51 -0
- package/dist/hooks/use-loading-performance.d.ts.map +1 -0
- package/dist/hooks/use-loading-performance.esm.js +402 -0
- package/dist/hooks/use-loading-performance.js +402 -0
- package/dist/hooks/use-memory-usage.d.ts +51 -0
- package/dist/hooks/use-memory-usage.d.ts.map +1 -0
- package/dist/hooks/use-memory-usage.esm.js +211 -0
- package/dist/hooks/use-memory-usage.js +211 -0
- package/dist/hooks/use-mobile-form-layout.d.ts +127 -0
- package/dist/hooks/use-mobile-form-layout.d.ts.map +1 -0
- package/dist/hooks/use-mobile-form-layout.esm.js +371 -0
- package/dist/hooks/use-mobile-form-layout.js +371 -0
- package/dist/hooks/use-mobile-form-validation.d.ts +100 -0
- package/dist/hooks/use-mobile-form-validation.d.ts.map +1 -0
- package/dist/hooks/use-mobile-form-validation.esm.js +405 -0
- package/dist/hooks/use-mobile-form-validation.js +405 -0
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +70 -0
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts.map +1 -0
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +358 -0
- package/dist/hooks/use-mobile-keyboard-optimization.js +358 -0
- package/dist/hooks/use-mobile-layout.d.ts +56 -0
- package/dist/hooks/use-mobile-layout.d.ts.map +1 -0
- package/dist/hooks/use-mobile-layout.esm.js +215 -0
- package/dist/hooks/use-mobile-layout.js +215 -0
- package/dist/hooks/use-mobile-optimization.d.ts +55 -0
- package/dist/hooks/use-mobile-optimization.d.ts.map +1 -0
- package/dist/hooks/use-mobile-optimization.esm.js +310 -0
- package/dist/hooks/use-mobile-optimization.js +310 -0
- package/dist/hooks/use-mobile-skeleton.d.ts +59 -0
- package/dist/hooks/use-mobile-skeleton.d.ts.map +1 -0
- package/dist/hooks/use-mobile-skeleton.esm.js +300 -0
- package/dist/hooks/use-mobile-skeleton.js +300 -0
- package/dist/hooks/use-mobile-touch.d.ts +86 -0
- package/dist/hooks/use-mobile-touch.d.ts.map +1 -0
- package/dist/hooks/use-mobile-touch.esm.js +316 -0
- package/dist/hooks/use-mobile-touch.js +316 -0
- package/dist/hooks/use-performance-throttling.d.ts +48 -0
- package/dist/hooks/use-performance-throttling.d.ts.map +1 -0
- package/dist/hooks/use-performance-throttling.esm.js +280 -0
- package/dist/hooks/use-performance-throttling.js +280 -0
- package/dist/hooks/use-performance.d.ts +73 -0
- package/dist/hooks/use-performance.d.ts.map +1 -0
- package/dist/hooks/use-performance.esm.js +219 -0
- package/dist/hooks/use-performance.js +219 -0
- package/dist/hooks/use-reusable-architecture.d.ts +94 -0
- package/dist/hooks/use-reusable-architecture.d.ts.map +1 -0
- package/dist/hooks/use-reusable-architecture.esm.js +261 -0
- package/dist/hooks/use-reusable-architecture.js +261 -0
- package/dist/hooks/use-semantic-input-types.d.ts +57 -0
- package/dist/hooks/use-semantic-input-types.d.ts.map +1 -0
- package/dist/hooks/use-semantic-input-types.esm.js +291 -0
- package/dist/hooks/use-semantic-input-types.js +291 -0
- package/dist/hooks/use-semantic-input.d.ts +73 -0
- package/dist/hooks/use-semantic-input.d.ts.map +1 -0
- package/dist/hooks/use-semantic-input.esm.js +462 -0
- package/dist/hooks/use-semantic-input.js +462 -0
- package/dist/hooks/use-tablet-layout.d.ts +74 -0
- package/dist/hooks/use-tablet-layout.d.ts.map +1 -0
- package/dist/hooks/use-tablet-layout.esm.js +279 -0
- package/dist/hooks/use-tablet-layout.js +279 -0
- package/dist/hooks/use-touch-friendly-input.d.ts +75 -0
- package/dist/hooks/use-touch-friendly-input.d.ts.map +1 -0
- package/dist/hooks/use-touch-friendly-input.esm.js +406 -0
- package/dist/hooks/use-touch-friendly-input.js +406 -0
- package/dist/hooks/use-touch-friendly-interface.d.ts +56 -0
- package/dist/hooks/use-touch-friendly-interface.d.ts.map +1 -0
- package/dist/hooks/use-touch-friendly-interface.esm.js +242 -0
- package/dist/hooks/use-touch-friendly-interface.js +242 -0
- package/dist/hooks/use-touch-optimization.d.ts +66 -0
- package/dist/hooks/use-touch-optimization.d.ts.map +1 -0
- package/dist/hooks/use-touch-optimization.esm.js +293 -0
- package/dist/hooks/use-touch-optimization.js +293 -0
- package/dist/index.d.ts +388 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +233 -0
- package/dist/index.js +233 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.esm.js +5 -0
- package/dist/lib/utils.js +5 -0
- package/dist/plugins/css-purge-optimizer.d.ts +25 -0
- package/dist/plugins/css-purge-optimizer.d.ts.map +1 -0
- package/dist/plugins/css-purge-optimizer.esm.js +414 -0
- package/dist/plugins/css-purge-optimizer.js +414 -0
- package/dist/plugins/performance-monitor.d.ts +29 -0
- package/dist/plugins/performance-monitor.d.ts.map +1 -0
- package/dist/plugins/performance-monitor.esm.js +221 -0
- package/dist/plugins/performance-monitor.js +221 -0
- package/dist/plugins/progressive-css-loader.d.ts +21 -0
- package/dist/plugins/progressive-css-loader.d.ts.map +1 -0
- package/dist/plugins/progressive-css-loader.esm.js +227 -0
- package/dist/plugins/progressive-css-loader.js +227 -0
- package/dist/plugins/theme-css-generator.d.ts +3 -0
- package/dist/plugins/theme-css-generator.d.ts.map +1 -0
- package/dist/plugins/theme-css-generator.esm.js +277 -0
- package/dist/plugins/theme-css-generator.js +277 -0
- package/dist/provider.d.ts +9 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.esm.js +4 -0
- package/dist/provider.js +4 -0
- package/dist/styles/layers/validation.d.ts +20 -0
- package/dist/styles/layers/validation.d.ts.map +1 -0
- package/dist/styles/layers/validation.esm.js +275 -0
- package/dist/styles/layers/validation.js +275 -0
- package/dist/styles.css +25372 -0
- package/dist/theme.d.ts +7 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.esm.js +679 -0
- package/dist/theme.js +679 -0
- package/dist/themes/ThemeContext.d.ts +23 -0
- package/dist/themes/ThemeContext.d.ts.map +1 -0
- package/dist/themes/ThemeContext.esm.js +5 -0
- package/dist/themes/ThemeContext.js +5 -0
- package/dist/themes/ThemeProvider.d.ts +3 -0
- package/dist/themes/ThemeProvider.d.ts.map +1 -0
- package/dist/themes/ThemeProvider.esm.js +200 -0
- package/dist/themes/ThemeProvider.js +200 -0
- package/dist/themes/accessibility/index.d.ts +19 -0
- package/dist/themes/accessibility/index.d.ts.map +1 -0
- package/dist/themes/accessibility/index.esm.js +23 -0
- package/dist/themes/accessibility/index.js +23 -0
- package/dist/themes/accessibility.d.ts +59 -0
- package/dist/themes/accessibility.d.ts.map +1 -0
- package/dist/themes/accessibility.esm.js +194 -0
- package/dist/themes/accessibility.js +194 -0
- package/dist/themes/aria-patterns.d.ts +153 -0
- package/dist/themes/aria-patterns.d.ts.map +1 -0
- package/dist/themes/aria-patterns.esm.js +364 -0
- package/dist/themes/aria-patterns.js +364 -0
- package/dist/themes/base-themes.d.ts +36 -0
- package/dist/themes/base-themes.d.ts.map +1 -0
- package/dist/themes/base-themes.esm.js +53 -0
- package/dist/themes/base-themes.js +53 -0
- package/dist/themes/colorManager.d.ts +64 -0
- package/dist/themes/colorManager.d.ts.map +1 -0
- package/dist/themes/colorManager.esm.js +316 -0
- package/dist/themes/colorManager.js +316 -0
- package/dist/themes/examples/dark-theme.d.ts +13 -0
- package/dist/themes/examples/dark-theme.d.ts.map +1 -0
- package/dist/themes/examples/dark-theme.esm.js +150 -0
- package/dist/themes/examples/dark-theme.js +150 -0
- package/dist/themes/examples/minimal-theme.d.ts +6 -0
- package/dist/themes/examples/minimal-theme.d.ts.map +1 -0
- package/dist/themes/examples/minimal-theme.esm.js +103 -0
- package/dist/themes/examples/minimal-theme.js +103 -0
- package/dist/themes/focus-management.d.ts +110 -0
- package/dist/themes/focus-management.d.ts.map +1 -0
- package/dist/themes/focus-management.esm.js +565 -0
- package/dist/themes/focus-management.js +565 -0
- package/dist/themes/fontLoader.d.ts +49 -0
- package/dist/themes/fontLoader.d.ts.map +1 -0
- package/dist/themes/fontLoader.esm.js +172 -0
- package/dist/themes/fontLoader.js +172 -0
- package/dist/themes/high-contrast.d.ts +70 -0
- package/dist/themes/high-contrast.d.ts.map +1 -0
- package/dist/themes/high-contrast.esm.js +457 -0
- package/dist/themes/high-contrast.js +457 -0
- package/dist/themes/index.d.ts +9 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.esm.js +13 -0
- package/dist/themes/index.js +13 -0
- package/dist/themes/inheritance.d.ts +90 -0
- package/dist/themes/inheritance.d.ts.map +1 -0
- package/dist/themes/inheritance.esm.js +192 -0
- package/dist/themes/inheritance.js +192 -0
- package/dist/themes/keyboard-navigation.d.ts +213 -0
- package/dist/themes/keyboard-navigation.d.ts.map +1 -0
- package/dist/themes/keyboard-navigation.esm.js +458 -0
- package/dist/themes/keyboard-navigation.js +458 -0
- package/dist/themes/motion-reduction.d.ts +121 -0
- package/dist/themes/motion-reduction.d.ts.map +1 -0
- package/dist/themes/motion-reduction.esm.js +505 -0
- package/dist/themes/motion-reduction.js +505 -0
- package/dist/themes/navigation.d.ts +201 -0
- package/dist/themes/navigation.d.ts.map +1 -0
- package/dist/themes/navigation.esm.js +5 -0
- package/dist/themes/navigation.js +5 -0
- package/dist/themes/phase1-constants.d.ts +23 -0
- package/dist/themes/phase1-constants.d.ts.map +1 -0
- package/dist/themes/phase1-constants.esm.js +180 -0
- package/dist/themes/phase1-constants.js +180 -0
- package/dist/themes/screen-reader.d.ts +86 -0
- package/dist/themes/screen-reader.d.ts.map +1 -0
- package/dist/themes/screen-reader.esm.js +544 -0
- package/dist/themes/screen-reader.js +544 -0
- package/dist/themes/systemThemeDetector.d.ts +58 -0
- package/dist/themes/systemThemeDetector.d.ts.map +1 -0
- package/dist/themes/systemThemeDetector.esm.js +153 -0
- package/dist/themes/systemThemeDetector.js +153 -0
- package/dist/themes/themeCSSUpdater.d.ts +46 -0
- package/dist/themes/themeCSSUpdater.d.ts.map +1 -0
- package/dist/themes/themeCSSUpdater.esm.js +227 -0
- package/dist/themes/themeCSSUpdater.js +227 -0
- package/dist/themes/themePersistence.d.ts +84 -0
- package/dist/themes/themePersistence.d.ts.map +1 -0
- package/dist/themes/themePersistence.esm.js +207 -0
- package/dist/themes/themePersistence.js +207 -0
- package/dist/themes/themes/default.d.ts +9 -0
- package/dist/themes/themes/default.d.ts.map +1 -0
- package/dist/themes/themes/default.esm.js +587 -0
- package/dist/themes/themes/default.js +587 -0
- package/dist/themes/themes/jeremy.d.ts +7 -0
- package/dist/themes/themes/jeremy.d.ts.map +1 -0
- package/dist/themes/themes/jeremy.esm.js +679 -0
- package/dist/themes/themes/jeremy.js +679 -0
- package/dist/themes/types.d.ts +462 -0
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.esm.js +3 -0
- package/dist/themes/types.js +3 -0
- package/dist/themes/useSystemTheme.d.ts +11 -0
- package/dist/themes/useSystemTheme.d.ts.map +1 -0
- package/dist/themes/useSystemTheme.esm.js +40 -0
- package/dist/themes/useSystemTheme.js +40 -0
- package/dist/themes/useTheme.d.ts +70 -0
- package/dist/themes/useTheme.d.ts.map +1 -0
- package/dist/themes/useTheme.esm.js +82 -0
- package/dist/themes/useTheme.js +82 -0
- package/dist/themes/validation.d.ts +88 -0
- package/dist/themes/validation.d.ts.map +1 -0
- package/dist/themes/validation.esm.js +627 -0
- package/dist/themes/validation.js +627 -0
- package/dist/tokens/index.d.ts +11 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.esm.js +11 -0
- package/dist/tokens/index.js +11 -0
- package/dist/tokens/tokenExporter.d.ts +84 -0
- package/dist/tokens/tokenExporter.d.ts.map +1 -0
- package/dist/tokens/tokenExporter.esm.js +333 -0
- package/dist/tokens/tokenExporter.js +333 -0
- package/dist/tokens/tokenGenerator.d.ts +37 -0
- package/dist/tokens/tokenGenerator.d.ts.map +1 -0
- package/dist/tokens/tokenGenerator.esm.js +244 -0
- package/dist/tokens/tokenGenerator.js +244 -0
- package/dist/tokens/tokenManager.d.ts +92 -0
- package/dist/tokens/tokenManager.d.ts.map +1 -0
- package/dist/tokens/tokenManager.esm.js +194 -0
- package/dist/tokens/tokenManager.js +194 -0
- package/dist/tokens/tokenValidator.d.ts +91 -0
- package/dist/tokens/tokenValidator.d.ts.map +1 -0
- package/dist/tokens/tokenValidator.esm.js +423 -0
- package/dist/tokens/tokenValidator.js +423 -0
- package/dist/tokens/types.d.ts +58 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.esm.js +1 -0
- package/dist/tokens/types.js +1 -0
- package/dist/types.d.ts +462 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.esm.js +3 -0
- package/dist/types.js +3 -0
- package/dist/utils/bundle-analyzer.d.ts +43 -0
- package/dist/utils/bundle-analyzer.d.ts.map +1 -0
- package/dist/utils/bundle-analyzer.esm.js +202 -0
- package/dist/utils/bundle-analyzer.js +202 -0
- package/dist/utils/bundle-splitting.d.ts +71 -0
- package/dist/utils/bundle-splitting.d.ts.map +1 -0
- package/dist/utils/bundle-splitting.esm.js +355 -0
- package/dist/utils/bundle-splitting.js +355 -0
- package/dist/utils/lazy-loading.d.ts +72 -0
- package/dist/utils/lazy-loading.d.ts.map +1 -0
- package/dist/utils/lazy-loading.esm.js +336 -0
- package/dist/utils/lazy-loading.js +336 -0
- package/dist/utils/performance-monitor.d.ts +81 -0
- package/dist/utils/performance-monitor.d.ts.map +1 -0
- package/dist/utils/performance-monitor.esm.js +392 -0
- package/dist/utils/performance-monitor.js +392 -0
- package/dist/utils/progressive-css-injector.d.ts +80 -0
- package/dist/utils/progressive-css-injector.d.ts.map +1 -0
- package/dist/utils/progressive-css-injector.esm.js +217 -0
- package/dist/utils/progressive-css-injector.js +217 -0
- package/dist/utils/tree-shaking.d.ts +47 -0
- package/dist/utils/tree-shaking.d.ts.map +1 -0
- package/dist/utils/tree-shaking.esm.js +204 -0
- package/dist/utils/tree-shaking.js +204 -0
- package/package.json +92 -0
- package/src/components/ui/accessibility-demo.tsx +274 -0
- package/src/components/ui/advanced-component-architecture-demo.tsx +919 -0
- package/src/components/ui/advanced-transition-system-demo.tsx +673 -0
- package/src/components/ui/advanced-transition-system.tsx +398 -0
- package/src/components/ui/animation/animated-container.tsx +169 -0
- package/src/components/ui/animation/index.ts +19 -0
- package/src/components/ui/animation/staggered-container.tsx +69 -0
- package/src/components/ui/animation-demo.tsx +253 -0
- package/src/components/ui/badge.tsx +33 -0
- package/src/components/ui/battery-conscious-animation-demo.tsx +571 -0
- package/src/components/ui/border-radius-shadow-demo.tsx +187 -0
- package/src/components/ui/button.tsx +41 -0
- package/src/components/ui/card.tsx +207 -0
- package/src/components/ui/checkbox.tsx +32 -0
- package/src/components/ui/color-preview.tsx +411 -0
- package/src/components/ui/data-display/chart.tsx +656 -0
- package/src/components/ui/data-display/data-grid-simple.tsx +76 -0
- package/src/components/ui/data-display/data-grid.tsx +684 -0
- package/src/components/ui/data-display/list.tsx +459 -0
- package/src/components/ui/data-display/table.tsx +486 -0
- package/src/components/ui/data-display/timeline.tsx +444 -0
- package/src/components/ui/data-display/tree.tsx +605 -0
- package/src/components/ui/data-display/types.ts +540 -0
- package/src/components/ui/enterprise-mobile-experience-demo.tsx +752 -0
- package/src/components/ui/enterprise-mobile-experience.tsx +467 -0
- package/src/components/ui/feedback/alert.tsx +163 -0
- package/src/components/ui/feedback/index.ts +35 -0
- package/src/components/ui/feedback/progress.tsx +279 -0
- package/src/components/ui/feedback/skeleton.tsx +185 -0
- package/src/components/ui/feedback/status-alert-example.ts +71 -0
- package/src/components/ui/feedback/toast-context.tsx +145 -0
- package/src/components/ui/feedback/toast-example.tsx +65 -0
- package/src/components/ui/feedback/toast-renderer.tsx +61 -0
- package/src/components/ui/feedback/toast.tsx +285 -0
- package/src/components/ui/feedback/types.ts +145 -0
- package/src/components/ui/font-preview.tsx +288 -0
- package/src/components/ui/form-demo.tsx +556 -0
- package/src/components/ui/hardware-acceleration-demo.tsx +550 -0
- package/src/components/ui/input.tsx +37 -0
- package/src/components/ui/label.tsx +16 -0
- package/src/components/ui/layout/container.tsx +312 -0
- package/src/components/ui/layout/index.ts +10 -0
- package/src/components/ui/layout/responsive-grid.tsx +286 -0
- package/src/components/ui/layout-demo.tsx +370 -0
- package/src/components/ui/layouts/adaptive-layout.tsx +120 -0
- package/src/components/ui/layouts/desktop-layout.tsx +213 -0
- package/src/components/ui/layouts/index.ts +10 -0
- package/src/components/ui/layouts/mobile-layout.tsx +165 -0
- package/src/components/ui/layouts/tablet-layout.tsx +200 -0
- package/src/components/ui/mobile-form-validation.tsx +454 -0
- package/src/components/ui/mobile-input-demo.tsx +201 -0
- package/src/components/ui/mobile-input.tsx +283 -0
- package/src/components/ui/mobile-skeleton-loading-demo.tsx +641 -0
- package/src/components/ui/navigation/breadcrumb.tsx +160 -0
- package/src/components/ui/navigation/index.ts +51 -0
- package/src/components/ui/navigation/menu.tsx +376 -0
- package/src/components/ui/navigation/navigation-demo.tsx +326 -0
- package/src/components/ui/navigation/pagination.tsx +274 -0
- package/src/components/ui/navigation/progressive-navigation.tsx +453 -0
- package/src/components/ui/navigation/sidebar.tsx +385 -0
- package/src/components/ui/navigation/stepper.tsx +305 -0
- package/src/components/ui/navigation/subscription-badge.tsx +110 -0
- package/src/components/ui/navigation/tabs.tsx +207 -0
- package/src/components/ui/navigation/types.ts +354 -0
- package/src/components/ui/navigation/user-avatar.tsx +111 -0
- package/src/components/ui/navigation/user-menu-examples.tsx +551 -0
- package/src/components/ui/navigation/user-menu-types.ts +308 -0
- package/src/components/ui/navigation/user-menu.tsx +414 -0
- package/src/components/ui/overlay/backdrop.tsx +83 -0
- package/src/components/ui/overlay/focus-manager.tsx +146 -0
- package/src/components/ui/overlay/index.ts +36 -0
- package/src/components/ui/overlay/modal.tsx +273 -0
- package/src/components/ui/overlay/overlay-manager.tsx +113 -0
- package/src/components/ui/overlay/popover.tsx +465 -0
- package/src/components/ui/overlay/portal.tsx +82 -0
- package/src/components/ui/overlay/tooltip.tsx +306 -0
- package/src/components/ui/overlay/types.ts +196 -0
- package/src/components/ui/performance-demo.tsx +599 -0
- package/src/components/ui/semantic-input-system-demo.tsx +505 -0
- package/src/components/ui/semantic-input-system-demo.tsx.disabled +873 -0
- package/src/components/ui/theme-customizer.tsx +389 -0
- package/src/components/ui/theme-preview.tsx +310 -0
- package/src/components/ui/theme-switcher.tsx +267 -0
- package/src/components/ui/theme-toggle.tsx +56 -0
- package/src/components/ui/token-demo.tsx +198 -0
- package/src/components/ui/touch-demo.tsx +465 -0
- package/src/components/ui/touch-friendly-interface-demo.tsx +522 -0
- package/src/components/ui/touch-friendly-interface.tsx +299 -0
- package/src/hooks/index.ts +190 -0
- package/src/hooks/use-accessibility-support.ts +518 -0
- package/src/hooks/use-adaptive-layout.ts +293 -0
- package/src/hooks/use-advanced-patterns.ts +294 -0
- package/src/hooks/use-advanced-transition-system.ts +393 -0
- package/src/hooks/use-animation-profile.ts +288 -0
- package/src/hooks/use-battery-animations.ts +384 -0
- package/src/hooks/use-battery-conscious-loading.ts +475 -0
- package/src/hooks/use-battery-optimization.ts +330 -0
- package/src/hooks/use-battery-status.ts +299 -0
- package/src/hooks/use-component-performance.ts +345 -0
- package/src/hooks/use-device-loading-states.ts +459 -0
- package/src/hooks/use-device.tsx +119 -0
- package/src/hooks/use-enterprise-mobile-experience.ts +488 -0
- package/src/hooks/use-form-feedback.ts +403 -0
- package/src/hooks/use-form-performance.ts +513 -0
- package/src/hooks/use-frame-rate.ts +251 -0
- package/src/hooks/use-gestures.ts +338 -0
- package/src/hooks/use-hardware-acceleration.ts +341 -0
- package/src/hooks/use-input-accessibility.ts +455 -0
- package/src/hooks/use-input-performance.ts +506 -0
- package/src/hooks/use-layout-performance.ts +319 -0
- package/src/hooks/use-loading-accessibility.ts +535 -0
- package/src/hooks/use-loading-performance.ts +473 -0
- package/src/hooks/use-memory-usage.ts +287 -0
- package/src/hooks/use-mobile-form-layout.ts +464 -0
- package/src/hooks/use-mobile-form-validation.ts +518 -0
- package/src/hooks/use-mobile-keyboard-optimization.ts +472 -0
- package/src/hooks/use-mobile-layout.ts +302 -0
- package/src/hooks/use-mobile-optimization.ts +406 -0
- package/src/hooks/use-mobile-skeleton.ts +402 -0
- package/src/hooks/use-mobile-touch.ts +414 -0
- package/src/hooks/use-performance-throttling.ts +348 -0
- package/src/hooks/use-performance.ts +316 -0
- package/src/hooks/use-reusable-architecture.ts +414 -0
- package/src/hooks/use-semantic-input-types.ts +357 -0
- package/src/hooks/use-semantic-input.ts +565 -0
- package/src/hooks/use-tablet-layout.ts +384 -0
- package/src/hooks/use-touch-friendly-input.ts +524 -0
- package/src/hooks/use-touch-friendly-interface.ts +331 -0
- package/src/hooks/use-touch-optimization.ts +375 -0
- package/src/index.css +1049 -0
- package/src/index.ts +412 -0
- package/src/lib/utils.ts +6 -0
- package/src/plugins/css-purge-optimizer.ts +491 -0
- package/src/plugins/performance-monitor.ts +292 -0
- package/src/plugins/progressive-css-loader.ts +269 -0
- package/src/plugins/theme-css-generator.ts +334 -0
- package/src/provider.tsx +20 -0
- package/src/styles/base/fonts.css +30 -0
- package/src/styles/base/index.css +7 -0
- package/src/styles/base/reset.css +48 -0
- package/src/styles/base/theme.css +1068 -0
- package/src/styles/base/typography.css +68 -0
- package/src/styles/base/variables.css +5 -0
- package/src/styles/components/CLAUDE.md +62 -0
- package/src/styles/components/base/badge.css +432 -0
- package/src/styles/components/base/button.css +980 -0
- package/src/styles/components/base/card.css +605 -0
- package/src/styles/components/base/checkbox.css +446 -0
- package/src/styles/components/base/index.css +9 -0
- package/src/styles/components/base/input.css +891 -0
- package/src/styles/components/base/label.css +300 -0
- package/src/styles/components/data-display/chart.css +353 -0
- package/src/styles/components/data-display/data-grid.css +619 -0
- package/src/styles/components/data-display/index.css +9 -0
- package/src/styles/components/data-display/list.css +560 -0
- package/src/styles/components/data-display/table.css +498 -0
- package/src/styles/components/data-display/timeline.css +764 -0
- package/src/styles/components/data-display/tree.css +881 -0
- package/src/styles/components/feedback/alert.css +358 -0
- package/src/styles/components/feedback/index.css +7 -0
- package/src/styles/components/feedback/progress.css +468 -0
- package/src/styles/components/feedback/skeleton.css +337 -0
- package/src/styles/components/feedback/toast.css +564 -0
- package/src/styles/components/index.css +20 -0
- package/src/styles/components/layout/container.css +466 -0
- package/src/styles/components/layout/index.css +5 -0
- package/src/styles/components/layout/responsive-grid.css +422 -0
- package/src/styles/components/navigation/breadcrumb.css +465 -0
- package/src/styles/components/navigation/index.css +11 -0
- package/src/styles/components/navigation/menu.css +572 -0
- package/src/styles/components/navigation/pagination.css +635 -0
- package/src/styles/components/navigation/progressive-navigation.css +633 -0
- package/src/styles/components/navigation/sidebar.css +807 -0
- package/src/styles/components/navigation/stepper.css +519 -0
- package/src/styles/components/navigation/tabs.css +404 -0
- package/src/styles/components/navigation/user-menu.css +582 -0
- package/src/styles/components/overlay/backdrop.css +243 -0
- package/src/styles/components/overlay/index.css +8 -0
- package/src/styles/components/overlay/modal.css +482 -0
- package/src/styles/components/overlay/popover.css +607 -0
- package/src/styles/components/overlay/portal.css +213 -0
- package/src/styles/components/overlay/tooltip.css +488 -0
- package/src/styles/components/ui/index.css +4 -0
- package/src/styles/components/ui/theme-toggle.css +200 -0
- package/src/styles/generated-theme-variables.css +1 -0
- package/src/styles/index.css +5 -0
- package/src/styles/layers/index.css +33 -0
- package/src/styles/layers/overrides.css +108 -0
- package/src/styles/layers/validation.css +159 -0
- package/src/styles/layers/validation.js +310 -0
- package/src/styles/progressive.css +17 -0
- package/src/styles/themes/jeremy.css +646 -0
- package/src/styles/utilities/advanced-transition-system.css +467 -0
- package/src/styles/utilities/battery-conscious-animations.css +289 -0
- package/src/styles/utilities/design-system-utilities.css +278 -0
- package/src/styles/utilities/enterprise-mobile-experience.css +817 -0
- package/src/styles/utilities/hardware-acceleration.css +121 -0
- package/src/styles/utilities/index.css +23 -0
- package/src/styles/utilities/mobile-skeleton-loading.css +596 -0
- package/src/styles/utilities/semantic-input-system.css +445 -0
- package/src/styles/utilities/touch-friendly-interface.css +247 -0
- package/src/styles/utilities/touch-optimization.css +165 -0
- package/src/theme.ts +683 -0
- package/src/themes/README.md +272 -0
- package/src/themes/ThemeContext.tsx +31 -0
- package/src/themes/ThemeProvider.tsx +232 -0
- package/src/themes/accessibility/index.ts +27 -0
- package/src/themes/accessibility.ts +259 -0
- package/src/themes/aria-patterns.ts +420 -0
- package/src/themes/base-themes.ts +64 -0
- package/src/themes/colorManager.ts +380 -0
- package/src/themes/examples/dark-theme.ts +154 -0
- package/src/themes/examples/minimal-theme.ts +108 -0
- package/src/themes/focus-management.ts +701 -0
- package/src/themes/fontLoader.ts +201 -0
- package/src/themes/high-contrast.ts +621 -0
- package/src/themes/index.ts +20 -0
- package/src/themes/inheritance.ts +227 -0
- package/src/themes/keyboard-navigation.ts +550 -0
- package/src/themes/motion-reduction.ts +662 -0
- package/src/themes/navigation.ts +238 -0
- package/src/themes/phase1-constants.ts +189 -0
- package/src/themes/screen-reader.ts +645 -0
- package/src/themes/systemThemeDetector.ts +182 -0
- package/src/themes/themeCSSUpdater.ts +262 -0
- package/src/themes/themePersistence.ts +238 -0
- package/src/themes/themes/default.ts +590 -0
- package/src/themes/themes/jeremy.ts +683 -0
- package/src/themes/types.ts +540 -0
- package/src/themes/useSystemTheme.ts +48 -0
- package/src/themes/useTheme.ts +87 -0
- package/src/themes/validation.ts +711 -0
- package/src/tokens/index.ts +34 -0
- package/src/tokens/tokenExporter.ts +397 -0
- package/src/tokens/tokenGenerator.ts +276 -0
- package/src/tokens/tokenManager.ts +248 -0
- package/src/tokens/tokenValidator.ts +543 -0
- package/src/tokens/types.ts +78 -0
- package/src/types.ts +540 -0
- package/src/utils/bundle-analyzer.ts +260 -0
- package/src/utils/bundle-splitting.ts +483 -0
- package/src/utils/lazy-loading.ts +441 -0
- package/src/utils/performance-monitor.ts +513 -0
- package/src/utils/progressive-css-injector.ts +254 -0
- package/src/utils/tree-shaking.ts +274 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef } from 'react';
|
|
4
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card.js';
|
|
5
|
+
import { Button } from './button.js';
|
|
6
|
+
import { Badge } from './badge.js';
|
|
7
|
+
import { Tabs } from './navigation/tabs.js';
|
|
8
|
+
import MobileFormValidation from './mobile-form-validation.js';
|
|
9
|
+
export const FormDemo = () => {
|
|
10
|
+
const [activeTab, setActiveTab] = useState('basic');
|
|
11
|
+
const [formResults, setFormResults] = useState([]);
|
|
12
|
+
const [enableEnhancedFeatures, setEnableEnhancedFeatures] = useState(true);
|
|
13
|
+
const basicFormRef = useRef(null);
|
|
14
|
+
const advancedFormRef = useRef(null);
|
|
15
|
+
// Basic form fields
|
|
16
|
+
const basicFields = [
|
|
17
|
+
{
|
|
18
|
+
name: 'name',
|
|
19
|
+
label: 'Full Name',
|
|
20
|
+
type: { type: 'text' },
|
|
21
|
+
placeholder: 'Enter your full name',
|
|
22
|
+
rules: [
|
|
23
|
+
{ type: 'required', message: 'Name is required' },
|
|
24
|
+
{ type: 'minLength', value: 2, message: 'Name must be at least 2 characters' }
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'email',
|
|
29
|
+
label: 'Email Address',
|
|
30
|
+
type: { type: 'email' },
|
|
31
|
+
placeholder: 'Enter your email',
|
|
32
|
+
rules: [
|
|
33
|
+
{ type: 'required', message: 'Email is required' },
|
|
34
|
+
{ type: 'email', message: 'Please enter a valid email address' }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
// Advanced form fields
|
|
39
|
+
const advancedFields = [
|
|
40
|
+
{
|
|
41
|
+
name: 'fullName',
|
|
42
|
+
label: 'Full Name',
|
|
43
|
+
type: { type: 'text' },
|
|
44
|
+
placeholder: 'Enter your full name',
|
|
45
|
+
rules: [
|
|
46
|
+
{ type: 'required', message: 'Full name is required' },
|
|
47
|
+
{ type: 'minLength', value: 3, message: 'Name must be at least 3 characters' },
|
|
48
|
+
{ type: 'maxLength', value: 50, message: 'Name must be less than 50 characters' }
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'emailAddress',
|
|
53
|
+
label: 'Email Address',
|
|
54
|
+
type: { type: 'email' },
|
|
55
|
+
placeholder: 'Enter your email address',
|
|
56
|
+
rules: [
|
|
57
|
+
{ type: 'required', message: 'Email is required' },
|
|
58
|
+
{ type: 'email', message: 'Please enter a valid email address' }
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'phoneNumber',
|
|
63
|
+
label: 'Phone Number',
|
|
64
|
+
type: { type: 'tel' },
|
|
65
|
+
placeholder: 'Enter your phone number',
|
|
66
|
+
rules: [
|
|
67
|
+
{ type: 'required', message: 'Phone number is required' },
|
|
68
|
+
{ type: 'pattern', value: /^[\+]?[0-9\s\-\(\)]{7,}$/, message: 'Please enter a valid phone number' }
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'website',
|
|
73
|
+
label: 'Website',
|
|
74
|
+
type: { type: 'url' },
|
|
75
|
+
placeholder: 'Enter your website URL',
|
|
76
|
+
rules: [
|
|
77
|
+
{ type: 'pattern', value: /^https?:\/\/.+/, message: 'Please enter a valid URL starting with http:// or https://' }
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'age',
|
|
82
|
+
label: 'Age',
|
|
83
|
+
type: { type: 'number' },
|
|
84
|
+
placeholder: 'Enter your age',
|
|
85
|
+
rules: [
|
|
86
|
+
{ type: 'required', message: 'Age is required' },
|
|
87
|
+
{ type: 'minLength', value: 1, message: 'Age must be at least 1' },
|
|
88
|
+
{ type: 'maxLength', value: 3, message: 'Age must be less than 1000' }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'password',
|
|
93
|
+
label: 'Password',
|
|
94
|
+
type: { type: 'password' },
|
|
95
|
+
placeholder: 'Enter your password',
|
|
96
|
+
rules: [
|
|
97
|
+
{ type: 'required', message: 'Password is required' },
|
|
98
|
+
{ type: 'minLength', value: 8, message: 'Password must be at least 8 characters' },
|
|
99
|
+
{ type: 'pattern', value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, message: 'Password must contain lowercase, uppercase, and number' }
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'confirmPassword',
|
|
104
|
+
label: 'Confirm Password',
|
|
105
|
+
type: { type: 'password' },
|
|
106
|
+
placeholder: 'Confirm your password',
|
|
107
|
+
rules: [
|
|
108
|
+
{ type: 'required', message: 'Please confirm your password' },
|
|
109
|
+
{ type: 'custom', message: 'Passwords do not match', validator: (value) => {
|
|
110
|
+
const passwordField = advancedFields.find(f => f.name === 'password');
|
|
111
|
+
const passwordValue = passwordField ? document.getElementById('password')?.value : '';
|
|
112
|
+
return value === passwordValue;
|
|
113
|
+
} }
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
// Handle form submission
|
|
118
|
+
const handleFormSubmit = (formData, formType) => {
|
|
119
|
+
const result = {
|
|
120
|
+
type: formType,
|
|
121
|
+
data: formData,
|
|
122
|
+
timestamp: new Date()
|
|
123
|
+
};
|
|
124
|
+
setFormResults(prev => [result, ...prev.slice(0, 9)]); // Keep last 10 results
|
|
125
|
+
console.log(`${formType} form submitted:`, formData);
|
|
126
|
+
};
|
|
127
|
+
// Handle form validation change
|
|
128
|
+
const handleValidationChange = (isValid, formType) => {
|
|
129
|
+
console.log(`${formType} form validation:`, isValid ? 'Valid' : 'Invalid');
|
|
130
|
+
};
|
|
131
|
+
// Clear form results
|
|
132
|
+
const clearResults = () => {
|
|
133
|
+
setFormResults([]);
|
|
134
|
+
};
|
|
135
|
+
// Test form submission programmatically
|
|
136
|
+
const testFormSubmission = async (formType) => {
|
|
137
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
138
|
+
if (formRef.current) {
|
|
139
|
+
try {
|
|
140
|
+
const result = await formRef.current.submit();
|
|
141
|
+
console.log(`${formType} form test submission:`, result);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
console.error(`${formType} form test submission error:`, error);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
// Test form validation programmatically
|
|
149
|
+
const testFormValidation = async (formType) => {
|
|
150
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
151
|
+
if (formRef.current) {
|
|
152
|
+
try {
|
|
153
|
+
const isValid = await formRef.current.validate();
|
|
154
|
+
console.log(`${formType} form validation test:`, isValid ? 'Valid' : 'Invalid');
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
console.error(`${formType} form validation test error:`, error);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
// Test form reset programmatically
|
|
162
|
+
const testFormReset = (formType) => {
|
|
163
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
164
|
+
if (formRef.current) {
|
|
165
|
+
formRef.current.reset();
|
|
166
|
+
console.log(`${formType} form reset`);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "text-center space-y-2", children: [_jsx("h1", { className: "text-3xl font-bold", children: "\uD83D\uDCF1 Mobile Form Validation Demo" }), _jsx("p", { className: "text-gray-600", children: "Advanced form system with mobile validation, animated feedback, and performance optimization" }), _jsx(Badge, { variant: "outline", className: "text-sm", children: "Story 6: Advanced Form System with Mobile Validation" })] }), _jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "flex items-center gap-2 p-3 bg-gray-50 rounded-lg", children: [_jsx("span", { className: "text-sm font-medium", children: "Enhanced Features:" }), _jsx(Button, { variant: enableEnhancedFeatures ? 'default' : 'outline', size: "sm", onClick: () => setEnableEnhancedFeatures(!enableEnhancedFeatures), children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }) }), _jsx(Tabs, { tabs: [
|
|
170
|
+
{
|
|
171
|
+
id: 'basic',
|
|
172
|
+
label: 'Basic Form',
|
|
173
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83D\uDE80 Basic Form Validation", _jsx(Badge, { variant: "secondary", children: "Simple Example" })] }), _jsx(CardDescription, { children: "Basic form with name and email validation. Demonstrates core validation features." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx(MobileFormValidation, { ref: basicFormRef, title: "Basic Contact Form", description: "Simple form with essential validation", fields: basicFields, onSubmit: (data) => handleFormSubmit(data, 'Basic'), onValidationChange: (isValid) => handleValidationChange(isValid, 'Basic'), enableEnhancedFeatures: enableEnhancedFeatures }), _jsxs("div", { className: "flex gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormSubmission('basic'), children: "Test Submit" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormValidation('basic'), children: "Test Validation" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormReset('basic'), children: "Test Reset" })] })] })] }) }))
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'advanced',
|
|
177
|
+
label: 'Advanced Form',
|
|
178
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83C\uDFAF Advanced Form Validation", _jsx(Badge, { variant: "default", children: "Full Featured" })] }), _jsx(CardDescription, { children: "Comprehensive form with multiple field types, complex validation rules, and all features enabled." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx(MobileFormValidation, { ref: advancedFormRef, title: "Advanced Registration Form", description: "Complete form with all validation types and optimizations", fields: advancedFields, onSubmit: (data) => handleFormSubmit(data, 'Advanced'), onValidationChange: (isValid) => handleValidationChange(isValid, 'Advanced'), enableEnhancedFeatures: enableEnhancedFeatures }), _jsxs("div", { className: "flex gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormSubmission('advanced'), children: "Test Submit" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormValidation('advanced'), children: "Test Validation" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormReset('advanced'), children: "Test Reset" })] })] })] }) }))
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 'performance',
|
|
182
|
+
label: 'Performance',
|
|
183
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\u26A1 Performance Monitoring", _jsx(Badge, { variant: "outline", children: "Real-time Metrics" })] }), _jsx(CardDescription, { children: "Monitor form performance, memory usage, battery status, and optimization scores." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Performance Features" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Validation Throttling:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Touch Event Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Memory Management:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Battery Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Optimization Benefits" }), _jsxs("div", { className: "space-y-2 text-sm text-gray-600", children: [_jsx("p", { children: "\u2022 Reduced validation frequency for better performance" }), _jsx("p", { children: "\u2022 Touch event throttling for smooth mobile experience" }), _jsx("p", { children: "\u2022 Automatic memory cleanup to prevent leaks" }), _jsx("p", { children: "\u2022 Battery-aware optimizations for mobile devices" }), _jsx("p", { children: "\u2022 Real-time performance scoring and recommendations" })] })] })] }), _jsxs("div", { className: "p-4 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-semibold text-blue-800 mb-2", children: "Performance Tips" }), _jsxs("ul", { className: "text-sm text-blue-700 space-y-1", children: [_jsx("li", { children: "\u2022 Use validation throttling to reduce unnecessary validations" }), _jsx("li", { children: "\u2022 Enable touch event optimization for better mobile performance" }), _jsx("li", { children: "\u2022 Monitor memory usage and enable cleanup when needed" }), _jsx("li", { children: "\u2022 Enable battery optimization for mobile devices" }), _jsx("li", { children: "\u2022 Check performance scores and apply recommendations" })] })] })] })] }) }))
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: 'semantic',
|
|
187
|
+
label: 'Semantic Input',
|
|
188
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83E\uDDE0 Semantic Input Optimization", _jsx(Badge, { variant: "outline", children: "Smart Detection" })] }), _jsx(CardDescription, { children: "Automatic input type detection, mobile keyboard optimization, and enhanced autocomplete." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Semantic Features" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Auto Type Detection:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Keyboard Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Autocomplete Enhancement:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Touch Optimization:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Detection Examples" }), _jsxs("div", { className: "space-y-2 text-sm text-gray-600", children: [_jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Email:" }), " Detects @ symbol, sets email keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Phone:" }), " Detects numeric patterns, sets phone keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "URL:" }), " Detects http/https, sets URL keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Search:" }), " Detects search context, optimizes input"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Number:" }), " Detects numeric patterns, sets numeric keyboard"] })] })] })] }), _jsxs("div", { className: "p-4 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-semibold text-green-800 mb-2", children: "Semantic Benefits" }), _jsxs("ul", { className: "text-sm text-green-700 space-y-1", children: [_jsx("li", { children: "\u2022 Automatic input type detection based on field name and content" }), _jsx("li", { children: "\u2022 Mobile keyboard optimization for better user experience" }), _jsx("li", { children: "\u2022 Enhanced autocomplete with appropriate suggestions" }), _jsx("li", { children: "\u2022 Touch-friendly input optimization" }), _jsx("li", { children: "\u2022 Accessibility improvements with proper input modes" })] })] })] })] }) }))
|
|
189
|
+
}
|
|
190
|
+
], activeTab: activeTab, onTabChange: (tabId) => setActiveTab(tabId), className: "w-full" }), formResults.length > 0 && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83D\uDCCA Form Submission Results", _jsx(Button, { variant: "outline", size: "sm", onClick: clearResults, children: "Clear Results" })] }), _jsx(CardDescription, { children: "Recent form submissions and their data" })] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-3 max-h-64 overflow-y-auto", children: formResults.map((result, index) => (_jsxs("div", { className: "p-3 bg-gray-50 rounded-lg", children: [_jsxs("div", { className: "flex justify-between items-start mb-2", children: [_jsx(Badge, { variant: "outline", children: result.type }), _jsx("span", { className: "text-xs text-gray-500", children: result.timestamp.toLocaleTimeString() })] }), _jsx("pre", { className: "text-xs bg-white p-2 rounded border overflow-x-auto", children: JSON.stringify(result.data, null, 2) })] }, index))) }) })] })), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "\uD83C\uDFAF Story 6 Implementation Summary" }), _jsx(CardDescription, { children: "Complete mobile form validation system with all requested features" })] }), _jsx(CardContent, { children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "\u2705 Completed Features" }), _jsxs("ul", { className: "text-sm space-y-1 text-gray-600", children: [_jsx("li", { children: "\u2022 Mobile form validation system" }), _jsx("li", { children: "\u2022 Animated success/error states" }), _jsx("li", { children: "\u2022 Touch-friendly form layouts" }), _jsx("li", { children: "\u2022 Semantic input optimization" }), _jsx("li", { children: "\u2022 Performance-optimized validation" }), _jsx("li", { children: "\u2022 Haptic feedback and touch sounds" }), _jsx("li", { children: "\u2022 Battery-aware optimizations" }), _jsx("li", { children: "\u2022 Memory management and cleanup" })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "\uD83D\uDE80 Advanced Capabilities" }), _jsxs("ul", { className: "text-sm space-y-1 text-gray-600", children: [_jsx("li", { children: "\u2022 Real-time performance monitoring" }), _jsx("li", { children: "\u2022 Automatic input type detection" }), _jsx("li", { children: "\u2022 Mobile keyboard optimization" }), _jsx("li", { children: "\u2022 Touch event throttling" }), _jsx("li", { children: "\u2022 Responsive layout adaptation" }), _jsx("li", { children: "\u2022 Accessibility enhancements" }), _jsx("li", { children: "\u2022 Performance scoring system" }), _jsx("li", { children: "\u2022 Optimization recommendations" })] })] })] }) })] })] }));
|
|
191
|
+
};
|
|
192
|
+
export default FormDemo;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef } from 'react';
|
|
4
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card.js';
|
|
5
|
+
import { Button } from './button.js';
|
|
6
|
+
import { Badge } from './badge.js';
|
|
7
|
+
import { Tabs } from './navigation/tabs.js';
|
|
8
|
+
import MobileFormValidation from './mobile-form-validation.js';
|
|
9
|
+
export const FormDemo = () => {
|
|
10
|
+
const [activeTab, setActiveTab] = useState('basic');
|
|
11
|
+
const [formResults, setFormResults] = useState([]);
|
|
12
|
+
const [enableEnhancedFeatures, setEnableEnhancedFeatures] = useState(true);
|
|
13
|
+
const basicFormRef = useRef(null);
|
|
14
|
+
const advancedFormRef = useRef(null);
|
|
15
|
+
// Basic form fields
|
|
16
|
+
const basicFields = [
|
|
17
|
+
{
|
|
18
|
+
name: 'name',
|
|
19
|
+
label: 'Full Name',
|
|
20
|
+
type: { type: 'text' },
|
|
21
|
+
placeholder: 'Enter your full name',
|
|
22
|
+
rules: [
|
|
23
|
+
{ type: 'required', message: 'Name is required' },
|
|
24
|
+
{ type: 'minLength', value: 2, message: 'Name must be at least 2 characters' }
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'email',
|
|
29
|
+
label: 'Email Address',
|
|
30
|
+
type: { type: 'email' },
|
|
31
|
+
placeholder: 'Enter your email',
|
|
32
|
+
rules: [
|
|
33
|
+
{ type: 'required', message: 'Email is required' },
|
|
34
|
+
{ type: 'email', message: 'Please enter a valid email address' }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
// Advanced form fields
|
|
39
|
+
const advancedFields = [
|
|
40
|
+
{
|
|
41
|
+
name: 'fullName',
|
|
42
|
+
label: 'Full Name',
|
|
43
|
+
type: { type: 'text' },
|
|
44
|
+
placeholder: 'Enter your full name',
|
|
45
|
+
rules: [
|
|
46
|
+
{ type: 'required', message: 'Full name is required' },
|
|
47
|
+
{ type: 'minLength', value: 3, message: 'Name must be at least 3 characters' },
|
|
48
|
+
{ type: 'maxLength', value: 50, message: 'Name must be less than 50 characters' }
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'emailAddress',
|
|
53
|
+
label: 'Email Address',
|
|
54
|
+
type: { type: 'email' },
|
|
55
|
+
placeholder: 'Enter your email address',
|
|
56
|
+
rules: [
|
|
57
|
+
{ type: 'required', message: 'Email is required' },
|
|
58
|
+
{ type: 'email', message: 'Please enter a valid email address' }
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'phoneNumber',
|
|
63
|
+
label: 'Phone Number',
|
|
64
|
+
type: { type: 'tel' },
|
|
65
|
+
placeholder: 'Enter your phone number',
|
|
66
|
+
rules: [
|
|
67
|
+
{ type: 'required', message: 'Phone number is required' },
|
|
68
|
+
{ type: 'pattern', value: /^[\+]?[0-9\s\-\(\)]{7,}$/, message: 'Please enter a valid phone number' }
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'website',
|
|
73
|
+
label: 'Website',
|
|
74
|
+
type: { type: 'url' },
|
|
75
|
+
placeholder: 'Enter your website URL',
|
|
76
|
+
rules: [
|
|
77
|
+
{ type: 'pattern', value: /^https?:\/\/.+/, message: 'Please enter a valid URL starting with http:// or https://' }
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'age',
|
|
82
|
+
label: 'Age',
|
|
83
|
+
type: { type: 'number' },
|
|
84
|
+
placeholder: 'Enter your age',
|
|
85
|
+
rules: [
|
|
86
|
+
{ type: 'required', message: 'Age is required' },
|
|
87
|
+
{ type: 'minLength', value: 1, message: 'Age must be at least 1' },
|
|
88
|
+
{ type: 'maxLength', value: 3, message: 'Age must be less than 1000' }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'password',
|
|
93
|
+
label: 'Password',
|
|
94
|
+
type: { type: 'password' },
|
|
95
|
+
placeholder: 'Enter your password',
|
|
96
|
+
rules: [
|
|
97
|
+
{ type: 'required', message: 'Password is required' },
|
|
98
|
+
{ type: 'minLength', value: 8, message: 'Password must be at least 8 characters' },
|
|
99
|
+
{ type: 'pattern', value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, message: 'Password must contain lowercase, uppercase, and number' }
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'confirmPassword',
|
|
104
|
+
label: 'Confirm Password',
|
|
105
|
+
type: { type: 'password' },
|
|
106
|
+
placeholder: 'Confirm your password',
|
|
107
|
+
rules: [
|
|
108
|
+
{ type: 'required', message: 'Please confirm your password' },
|
|
109
|
+
{ type: 'custom', message: 'Passwords do not match', validator: (value) => {
|
|
110
|
+
const passwordField = advancedFields.find(f => f.name === 'password');
|
|
111
|
+
const passwordValue = passwordField ? document.getElementById('password')?.value : '';
|
|
112
|
+
return value === passwordValue;
|
|
113
|
+
} }
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
// Handle form submission
|
|
118
|
+
const handleFormSubmit = (formData, formType) => {
|
|
119
|
+
const result = {
|
|
120
|
+
type: formType,
|
|
121
|
+
data: formData,
|
|
122
|
+
timestamp: new Date()
|
|
123
|
+
};
|
|
124
|
+
setFormResults(prev => [result, ...prev.slice(0, 9)]); // Keep last 10 results
|
|
125
|
+
console.log(`${formType} form submitted:`, formData);
|
|
126
|
+
};
|
|
127
|
+
// Handle form validation change
|
|
128
|
+
const handleValidationChange = (isValid, formType) => {
|
|
129
|
+
console.log(`${formType} form validation:`, isValid ? 'Valid' : 'Invalid');
|
|
130
|
+
};
|
|
131
|
+
// Clear form results
|
|
132
|
+
const clearResults = () => {
|
|
133
|
+
setFormResults([]);
|
|
134
|
+
};
|
|
135
|
+
// Test form submission programmatically
|
|
136
|
+
const testFormSubmission = async (formType) => {
|
|
137
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
138
|
+
if (formRef.current) {
|
|
139
|
+
try {
|
|
140
|
+
const result = await formRef.current.submit();
|
|
141
|
+
console.log(`${formType} form test submission:`, result);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
console.error(`${formType} form test submission error:`, error);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
// Test form validation programmatically
|
|
149
|
+
const testFormValidation = async (formType) => {
|
|
150
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
151
|
+
if (formRef.current) {
|
|
152
|
+
try {
|
|
153
|
+
const isValid = await formRef.current.validate();
|
|
154
|
+
console.log(`${formType} form validation test:`, isValid ? 'Valid' : 'Invalid');
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
console.error(`${formType} form validation test error:`, error);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
// Test form reset programmatically
|
|
162
|
+
const testFormReset = (formType) => {
|
|
163
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef;
|
|
164
|
+
if (formRef.current) {
|
|
165
|
+
formRef.current.reset();
|
|
166
|
+
console.log(`${formType} form reset`);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "text-center space-y-2", children: [_jsx("h1", { className: "text-3xl font-bold", children: "\uD83D\uDCF1 Mobile Form Validation Demo" }), _jsx("p", { className: "text-gray-600", children: "Advanced form system with mobile validation, animated feedback, and performance optimization" }), _jsx(Badge, { variant: "outline", className: "text-sm", children: "Story 6: Advanced Form System with Mobile Validation" })] }), _jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "flex items-center gap-2 p-3 bg-gray-50 rounded-lg", children: [_jsx("span", { className: "text-sm font-medium", children: "Enhanced Features:" }), _jsx(Button, { variant: enableEnhancedFeatures ? 'default' : 'outline', size: "sm", onClick: () => setEnableEnhancedFeatures(!enableEnhancedFeatures), children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }) }), _jsx(Tabs, { tabs: [
|
|
170
|
+
{
|
|
171
|
+
id: 'basic',
|
|
172
|
+
label: 'Basic Form',
|
|
173
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83D\uDE80 Basic Form Validation", _jsx(Badge, { variant: "secondary", children: "Simple Example" })] }), _jsx(CardDescription, { children: "Basic form with name and email validation. Demonstrates core validation features." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx(MobileFormValidation, { ref: basicFormRef, title: "Basic Contact Form", description: "Simple form with essential validation", fields: basicFields, onSubmit: (data) => handleFormSubmit(data, 'Basic'), onValidationChange: (isValid) => handleValidationChange(isValid, 'Basic'), enableEnhancedFeatures: enableEnhancedFeatures }), _jsxs("div", { className: "flex gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormSubmission('basic'), children: "Test Submit" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormValidation('basic'), children: "Test Validation" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormReset('basic'), children: "Test Reset" })] })] })] }) }))
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'advanced',
|
|
177
|
+
label: 'Advanced Form',
|
|
178
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83C\uDFAF Advanced Form Validation", _jsx(Badge, { variant: "default", children: "Full Featured" })] }), _jsx(CardDescription, { children: "Comprehensive form with multiple field types, complex validation rules, and all features enabled." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx(MobileFormValidation, { ref: advancedFormRef, title: "Advanced Registration Form", description: "Complete form with all validation types and optimizations", fields: advancedFields, onSubmit: (data) => handleFormSubmit(data, 'Advanced'), onValidationChange: (isValid) => handleValidationChange(isValid, 'Advanced'), enableEnhancedFeatures: enableEnhancedFeatures }), _jsxs("div", { className: "flex gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormSubmission('advanced'), children: "Test Submit" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormValidation('advanced'), children: "Test Validation" }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => testFormReset('advanced'), children: "Test Reset" })] })] })] }) }))
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 'performance',
|
|
182
|
+
label: 'Performance',
|
|
183
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\u26A1 Performance Monitoring", _jsx(Badge, { variant: "outline", children: "Real-time Metrics" })] }), _jsx(CardDescription, { children: "Monitor form performance, memory usage, battery status, and optimization scores." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Performance Features" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Validation Throttling:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Touch Event Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Memory Management:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Battery Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Optimization Benefits" }), _jsxs("div", { className: "space-y-2 text-sm text-gray-600", children: [_jsx("p", { children: "\u2022 Reduced validation frequency for better performance" }), _jsx("p", { children: "\u2022 Touch event throttling for smooth mobile experience" }), _jsx("p", { children: "\u2022 Automatic memory cleanup to prevent leaks" }), _jsx("p", { children: "\u2022 Battery-aware optimizations for mobile devices" }), _jsx("p", { children: "\u2022 Real-time performance scoring and recommendations" })] })] })] }), _jsxs("div", { className: "p-4 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsx("h4", { className: "font-semibold text-blue-800 mb-2", children: "Performance Tips" }), _jsxs("ul", { className: "text-sm text-blue-700 space-y-1", children: [_jsx("li", { children: "\u2022 Use validation throttling to reduce unnecessary validations" }), _jsx("li", { children: "\u2022 Enable touch event optimization for better mobile performance" }), _jsx("li", { children: "\u2022 Monitor memory usage and enable cleanup when needed" }), _jsx("li", { children: "\u2022 Enable battery optimization for mobile devices" }), _jsx("li", { children: "\u2022 Check performance scores and apply recommendations" })] })] })] })] }) }))
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: 'semantic',
|
|
187
|
+
label: 'Semantic Input',
|
|
188
|
+
content: (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83E\uDDE0 Semantic Input Optimization", _jsx(Badge, { variant: "outline", children: "Smart Detection" })] }), _jsx(CardDescription, { children: "Automatic input type detection, mobile keyboard optimization, and enhanced autocomplete." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Semantic Features" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Auto Type Detection:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Keyboard Optimization:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Autocomplete Enhancement:" }), _jsx(Badge, { variant: enableEnhancedFeatures ? 'default' : 'secondary', children: enableEnhancedFeatures ? 'Enabled' : 'Disabled' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Touch Optimization:" }), _jsx(Badge, { variant: "default", children: "Enabled" })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "Detection Examples" }), _jsxs("div", { className: "space-y-2 text-sm text-gray-600", children: [_jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Email:" }), " Detects @ symbol, sets email keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Phone:" }), " Detects numeric patterns, sets phone keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "URL:" }), " Detects http/https, sets URL keyboard"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Search:" }), " Detects search context, optimizes input"] }), _jsxs("p", { children: ["\u2022 ", _jsx("strong", { children: "Number:" }), " Detects numeric patterns, sets numeric keyboard"] })] })] })] }), _jsxs("div", { className: "p-4 bg-green-50 border border-green-200 rounded-lg", children: [_jsx("h4", { className: "font-semibold text-green-800 mb-2", children: "Semantic Benefits" }), _jsxs("ul", { className: "text-sm text-green-700 space-y-1", children: [_jsx("li", { children: "\u2022 Automatic input type detection based on field name and content" }), _jsx("li", { children: "\u2022 Mobile keyboard optimization for better user experience" }), _jsx("li", { children: "\u2022 Enhanced autocomplete with appropriate suggestions" }), _jsx("li", { children: "\u2022 Touch-friendly input optimization" }), _jsx("li", { children: "\u2022 Accessibility improvements with proper input modes" })] })] })] })] }) }))
|
|
189
|
+
}
|
|
190
|
+
], activeTab: activeTab, onTabChange: (tabId) => setActiveTab(tabId), className: "w-full" }), formResults.length > 0 && (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: ["\uD83D\uDCCA Form Submission Results", _jsx(Button, { variant: "outline", size: "sm", onClick: clearResults, children: "Clear Results" })] }), _jsx(CardDescription, { children: "Recent form submissions and their data" })] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-3 max-h-64 overflow-y-auto", children: formResults.map((result, index) => (_jsxs("div", { className: "p-3 bg-gray-50 rounded-lg", children: [_jsxs("div", { className: "flex justify-between items-start mb-2", children: [_jsx(Badge, { variant: "outline", children: result.type }), _jsx("span", { className: "text-xs text-gray-500", children: result.timestamp.toLocaleTimeString() })] }), _jsx("pre", { className: "text-xs bg-white p-2 rounded border overflow-x-auto", children: JSON.stringify(result.data, null, 2) })] }, index))) }) })] })), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "\uD83C\uDFAF Story 6 Implementation Summary" }), _jsx(CardDescription, { children: "Complete mobile form validation system with all requested features" })] }), _jsx(CardContent, { children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "\u2705 Completed Features" }), _jsxs("ul", { className: "text-sm space-y-1 text-gray-600", children: [_jsx("li", { children: "\u2022 Mobile form validation system" }), _jsx("li", { children: "\u2022 Animated success/error states" }), _jsx("li", { children: "\u2022 Touch-friendly form layouts" }), _jsx("li", { children: "\u2022 Semantic input optimization" }), _jsx("li", { children: "\u2022 Performance-optimized validation" }), _jsx("li", { children: "\u2022 Haptic feedback and touch sounds" }), _jsx("li", { children: "\u2022 Battery-aware optimizations" }), _jsx("li", { children: "\u2022 Memory management and cleanup" })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-semibold", children: "\uD83D\uDE80 Advanced Capabilities" }), _jsxs("ul", { className: "text-sm space-y-1 text-gray-600", children: [_jsx("li", { children: "\u2022 Real-time performance monitoring" }), _jsx("li", { children: "\u2022 Automatic input type detection" }), _jsx("li", { children: "\u2022 Mobile keyboard optimization" }), _jsx("li", { children: "\u2022 Touch event throttling" }), _jsx("li", { children: "\u2022 Responsive layout adaptation" }), _jsx("li", { children: "\u2022 Accessibility enhancements" }), _jsx("li", { children: "\u2022 Performance scoring system" }), _jsx("li", { children: "\u2022 Optimization recommendations" })] })] })] }) })] })] }));
|
|
191
|
+
};
|
|
192
|
+
export default FormDemo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hardware-acceleration-demo.d.ts","sourceRoot":"","sources":["../../../src/components/ui/hardware-acceleration-demo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAyhB5C,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
4
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card.js';
|
|
5
|
+
import { Badge } from './badge.js';
|
|
6
|
+
import { Button } from './button.js';
|
|
7
|
+
import { useHardwareAcceleration } from '../../hooks/use-hardware-acceleration.js';
|
|
8
|
+
import { useBatteryOptimization } from '../../hooks/use-battery-optimization.js';
|
|
9
|
+
export const HardwareAccelerationDemo = () => {
|
|
10
|
+
const [showGPUInfo, setShowGPUInfo] = useState(true);
|
|
11
|
+
const [showPerformanceMetrics, setShowPerformanceMetrics] = useState(true);
|
|
12
|
+
const [showBatteryInfo, setShowBatteryInfo] = useState(true);
|
|
13
|
+
const [enableHardwareAcceleration, setEnableHardwareAcceleration] = useState(true);
|
|
14
|
+
const [enableBatteryOptimization, setEnableBatteryOptimization] = useState(true);
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
// Hooks with error handling
|
|
17
|
+
const hardwareAcceleration = useHardwareAcceleration({
|
|
18
|
+
enableGPUMonitoring: true,
|
|
19
|
+
enablePerformanceTracking: true,
|
|
20
|
+
enableBatteryOptimization: true,
|
|
21
|
+
enableAutomaticOptimization: true
|
|
22
|
+
}, {
|
|
23
|
+
onGPUDetected: (gpuInfo) => console.log('GPU detected:', gpuInfo),
|
|
24
|
+
onPerformanceWarning: (warning, metrics) => console.log('Performance warning:', warning, metrics),
|
|
25
|
+
onBatteryWarning: (level, isLow) => console.log('Battery warning:', level, isLow),
|
|
26
|
+
onOptimizationApplied: (optimization) => console.log('Optimization applied:', optimization)
|
|
27
|
+
});
|
|
28
|
+
const batteryOptimization = useBatteryOptimization({
|
|
29
|
+
enableBatteryMonitoring: true,
|
|
30
|
+
enablePerformanceThrottling: true,
|
|
31
|
+
enableUserPreferences: true,
|
|
32
|
+
enableAdaptiveOptimization: true
|
|
33
|
+
}, {
|
|
34
|
+
onBatteryStatusChange: (status) => console.log('Battery status changed:', status),
|
|
35
|
+
onLowBatteryWarning: (status) => console.log('Low battery warning:', status),
|
|
36
|
+
onCriticalBatteryWarning: (status) => console.log('Critical battery warning:', status),
|
|
37
|
+
onPerformanceThrottled: (level, reason) => console.log('Performance throttled:', level, reason),
|
|
38
|
+
onOptimizationApplied: (optimization) => console.log('Battery optimization applied:', optimization)
|
|
39
|
+
});
|
|
40
|
+
// Error boundary effect
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const handleError = (error) => {
|
|
43
|
+
console.error('Hardware acceleration demo error:', error);
|
|
44
|
+
setError(error.message);
|
|
45
|
+
};
|
|
46
|
+
window.addEventListener('error', handleError);
|
|
47
|
+
return () => window.removeEventListener('error', handleError);
|
|
48
|
+
}, []);
|
|
49
|
+
// Demo animations with hardware acceleration
|
|
50
|
+
const [animationState, setAnimationState] = useState('idle');
|
|
51
|
+
const [animationType, setAnimationType] = useState('basic');
|
|
52
|
+
const startAnimation = useCallback(() => {
|
|
53
|
+
setAnimationState('running');
|
|
54
|
+
setTimeout(() => setAnimationState('idle'), 3000);
|
|
55
|
+
}, []);
|
|
56
|
+
const pauseAnimation = useCallback(() => {
|
|
57
|
+
setAnimationState('paused');
|
|
58
|
+
}, []);
|
|
59
|
+
const resumeAnimation = useCallback(() => {
|
|
60
|
+
setAnimationState('running');
|
|
61
|
+
}, []);
|
|
62
|
+
// Get animation classes based on type
|
|
63
|
+
const getAnimationClasses = useCallback((type) => {
|
|
64
|
+
const baseClasses = 'w-32 h-32 rounded-lg transition-all duration-1000 ease-in-out';
|
|
65
|
+
switch (type) {
|
|
66
|
+
case 'basic':
|
|
67
|
+
return `${baseClasses} bg-cs-primary hover:bg-cs-secondary`;
|
|
68
|
+
case 'gpu':
|
|
69
|
+
return `${baseClasses} bg-cs-secondary gpu-optimized hover:bg-cs-accent`;
|
|
70
|
+
case 'transform3d':
|
|
71
|
+
return `${baseClasses} bg-cs-accent transform3d-optimized hover:bg-cs-primary`;
|
|
72
|
+
case 'performance':
|
|
73
|
+
return `${baseClasses} bg-cs-primary performance-accelerated hover:bg-cs-secondary`;
|
|
74
|
+
default:
|
|
75
|
+
return baseClasses;
|
|
76
|
+
}
|
|
77
|
+
}, []);
|
|
78
|
+
// Get animation styles based on state
|
|
79
|
+
const getAnimationStyles = useCallback((state) => {
|
|
80
|
+
switch (state) {
|
|
81
|
+
case 'running':
|
|
82
|
+
return {
|
|
83
|
+
transform: 'translate3d(100px, 0, 0) rotate(360deg) scale(1.2)',
|
|
84
|
+
opacity: 0.8
|
|
85
|
+
};
|
|
86
|
+
case 'paused':
|
|
87
|
+
return {
|
|
88
|
+
transform: 'translate3d(50px, 0, 0) rotate(180deg) scale(1.1)',
|
|
89
|
+
opacity: 0.9
|
|
90
|
+
};
|
|
91
|
+
default:
|
|
92
|
+
return {
|
|
93
|
+
transform: 'translate3d(0, 0, 0) rotate(0deg) scale(1)',
|
|
94
|
+
opacity: 1
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}, []);
|
|
98
|
+
// Show error if any
|
|
99
|
+
if (error) {
|
|
100
|
+
return (_jsxs("div", { className: "p-6 bg-red-50 border border-red-200 rounded-lg", children: [_jsx("h2", { className: "text-lg font-semibold text-red-800 mb-2", children: "Error Loading Hardware Acceleration Demo" }), _jsx("p", { className: "text-red-600 mb-4", children: error }), _jsx(Button, { onClick: () => setError(null), variant: "outline", children: "Try Again" })] }));
|
|
101
|
+
}
|
|
102
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "text-center", children: [_jsx("h1", { className: "text-3xl font-bold text-cs-text-primary mb-2", children: "\uD83D\uDE80 Hardware Acceleration & GPU Optimization" }), _jsx("p", { className: "text-lg text-cs-text-secondary mb-4", children: "Story 8 Implementation - Advanced hardware acceleration with GPU optimization and battery awareness" }), _jsxs("div", { className: "flex items-center justify-center gap-2", children: [_jsx(Badge, { variant: "default", children: "Story 8" }), _jsx(Badge, { variant: "outline", children: "Hardware Acceleration" }), _jsx(Badge, { variant: "secondary", children: "GPU Optimization" }), _jsx(Badge, { variant: "outline", children: "Battery Optimization" })] })] }), showGPUInfo && hardwareAcceleration.gpuInfo && (_jsxs(Card, { className: "border-2 border-cs-primary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83C\uDFAE GPU Information", _jsx(Badge, { variant: hardwareAcceleration.isGPUSupported ? 'default' : 'secondary', children: hardwareAcceleration.isGPUSupported ? 'Supported' : 'Not Supported' })] }), _jsx(CardDescription, { children: "Real-time GPU capability detection and WebGL support information" })] }), _jsx(CardContent, { children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "Vendor:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: hardwareAcceleration.gpuInfo.vendor })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "Renderer:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: hardwareAcceleration.gpuInfo.renderer })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "Version:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: hardwareAcceleration.gpuInfo.version })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "WebGL Support:" }), _jsx(Badge, { variant: hardwareAcceleration.gpuInfo.isWebGLSupported ? 'default' : 'secondary', children: hardwareAcceleration.gpuInfo.isWebGLSupported ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "WebGL2 Support:" }), _jsx(Badge, { variant: hardwareAcceleration.gpuInfo.isWebGL2Supported ? 'default' : 'secondary', children: hardwareAcceleration.gpuInfo.isWebGL2Supported ? 'Yes' : 'No' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm font-medium", children: "Max Texture Size:" }), _jsx("span", { className: "text-sm text-cs-text-secondary", children: hardwareAcceleration.gpuInfo.maxTextureSize })] })] })] }) })] })), showPerformanceMetrics && (_jsxs(Card, { className: "border-2 border-cs-secondary", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83D\uDCCA Performance Metrics", _jsx(Badge, { variant: "outline", children: "Real-time" })] }), _jsx(CardDescription, { children: "Hardware acceleration performance monitoring and optimization status" })] }), _jsxs(CardContent, { children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-4 text-center", children: [_jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-primary", children: hardwareAcceleration.metrics.fps }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "FPS" })] }), _jsxs("div", { children: [_jsxs("p", { className: "text-2xl font-bold text-cs-secondary", children: [hardwareAcceleration.metrics.frameTime.toFixed(1), "ms"] }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Frame Time" })] }), _jsxs("div", { children: [_jsxs("p", { className: "text-2xl font-bold text-cs-accent", children: [hardwareAcceleration.metrics.gpuUtilization.toFixed(1), "%"] }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "GPU Usage" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-2xl font-bold text-cs-primary", children: hardwareAcceleration.metrics.performanceScore }), _jsx("p", { className: "text-sm text-cs-text-secondary", children: "Performance Score" })] })] }), _jsxs("div", { className: "mt-4 p-3 bg-cs-accent/10 rounded-lg", children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("span", { className: "font-medium text-sm", children: "Performance Level:" }), _jsx(Badge, { variant: hardwareAcceleration.performanceLevel === 'excellent' ? 'default' :
|
|
103
|
+
hardwareAcceleration.performanceLevel === 'good' ? 'default' :
|
|
104
|
+
hardwareAcceleration.performanceLevel === 'fair' ? 'secondary' : 'secondary', children: hardwareAcceleration.performanceLevel.toUpperCase() })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium text-sm", children: "Hardware Acceleration:" }), _jsx(Badge, { variant: hardwareAcceleration.isHardwareAccelerated ? 'default' : 'secondary', children: hardwareAcceleration.isHardwareAccelerated ? 'Enabled' : 'Disabled' })] })] })] })] })), showBatteryInfo && (_jsxs(Card, { className: "border-2 border-cs-accent", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "text-xl flex items-center gap-2", children: ["\uD83D\uDD0B Battery Optimization", _jsxs(Badge, { variant: batteryOptimization.isLowBattery ? 'secondary' : 'default', children: [batteryOptimization.batteryPercentage, "%"] })] }), _jsx(CardDescription, { children: "Battery-aware performance optimization and user preference management" })] }), _jsxs(CardContent, { children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Battery Status" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Level:" }), _jsxs("span", { className: "text-sm text-cs-text-secondary", children: [batteryOptimization.batteryPercentage, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Status:" }), _jsx(Badge, { variant: batteryOptimization.isCharging ? 'default' : 'secondary', children: batteryOptimization.isCharging ? 'Charging' : 'Discharging' })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Health:" }), _jsx(Badge, { variant: "outline", children: batteryOptimization.getBatteryHealth() })] })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("h4", { className: "font-medium", children: "Performance Settings" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Throttle Level:" }), _jsx(Badge, { variant: "outline", children: batteryOptimization.currentThrottleLevel })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "User Preference:" }), _jsx(Badge, { variant: "outline", children: batteryOptimization.userPreferences })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-sm", children: "Optimization:" }), _jsx(Badge, { variant: batteryOptimization.isOptimizing ? 'secondary' : 'default', children: batteryOptimization.isOptimizing ? 'Active' : 'Idle' })] })] })] })] }), _jsxs("div", { className: "mt-4 p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "User Preference:" }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: batteryOptimization.userPreferences === 'performance' ? 'default' : 'outline', size: "sm", onClick: () => batteryOptimization.updateUserPreferences('performance'), children: "Performance" }), _jsx(Button, { variant: batteryOptimization.userPreferences === 'balanced' ? 'default' : 'outline', size: "sm", onClick: () => batteryOptimization.updateUserPreferences('balanced'), children: "Balanced" }), _jsx(Button, { variant: batteryOptimization.userPreferences === 'battery' ? 'default' : 'outline', size: "sm", onClick: () => batteryOptimization.updateUserPreferences('battery'), children: "Battery" })] })] })] })] })), _jsxs(Card, { className: "border border-cs-border", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { className: "text-lg", children: "Hardware Acceleration Demo" }), _jsx(CardDescription, { children: "Test different types of hardware acceleration with real-time animations" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { variant: animationType === 'basic' ? 'default' : 'outline', size: "sm", onClick: () => setAnimationType('basic'), children: "Basic" }), _jsx(Button, { variant: animationType === 'gpu' ? 'default' : 'outline', size: "sm", onClick: () => setAnimationType('gpu'), children: "GPU Optimized" }), _jsx(Button, { variant: animationType === 'transform3d' ? 'default' : 'outline', size: "sm", onClick: () => setAnimationType('transform3d'), children: "Transform3D" }), _jsx(Button, { variant: animationType === 'performance' ? 'default' : 'outline', size: "sm", onClick: () => setAnimationType('performance'), children: "Performance" })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "default", onClick: startAnimation, disabled: animationState === 'running', children: "Start Animation" }), _jsx(Button, { variant: "outline", onClick: pauseAnimation, disabled: animationState !== 'running', children: "Pause" }), _jsx(Button, { variant: "outline", onClick: resumeAnimation, disabled: animationState !== 'paused', children: "Resume" })] }), _jsx("div", { className: "flex justify-center", children: _jsx("div", { className: getAnimationClasses(animationType), style: getAnimationStyles(animationState) }) }), _jsxs("div", { className: "text-center text-sm text-cs-text-secondary", children: [_jsxs("p", { children: ["Animation Type: ", _jsx("span", { className: "font-medium", children: animationType })] }), _jsxs("p", { children: ["State: ", _jsx("span", { className: "font-medium", children: animationState })] }), _jsxs("p", { children: ["Hardware Acceleration: ", _jsx("span", { className: "font-medium", children: hardwareAcceleration.isHardwareAccelerated ? 'Enabled' : 'Disabled' })] })] })] })] }), _jsxs(Card, { className: "border border-cs-border", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { className: "text-lg", children: "Demo Controls" }), _jsx(CardDescription, { children: "Configure and test different hardware acceleration features" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsxs(Button, { variant: showGPUInfo ? 'default' : 'outline', size: "sm", onClick: () => setShowGPUInfo(!showGPUInfo), children: [showGPUInfo ? 'Hide' : 'Show', " GPU Info"] }), _jsxs(Button, { variant: showPerformanceMetrics ? 'default' : 'outline', size: "sm", onClick: () => setShowPerformanceMetrics(!showPerformanceMetrics), children: [showPerformanceMetrics ? 'Hide' : 'Show', " Performance"] }), _jsxs(Button, { variant: showBatteryInfo ? 'default' : 'outline', size: "sm", onClick: () => setShowBatteryInfo(!showBatteryInfo), children: [showBatteryInfo ? 'Hide' : 'Show', " Battery Info"] })] }), _jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsxs(Button, { variant: enableHardwareAcceleration ? 'default' : 'outline', size: "sm", onClick: () => setEnableHardwareAcceleration(!enableHardwareAcceleration), children: [enableHardwareAcceleration ? 'Disable' : 'Enable', " Hardware Acceleration"] }), _jsxs(Button, { variant: enableBatteryOptimization ? 'default' : 'outline', size: "sm", onClick: () => setEnableBatteryOptimization(!enableBatteryOptimization), children: [enableBatteryOptimization ? 'Disable' : 'Enable', " Battery Optimization"] })] })] })] }), _jsxs(Card, { className: "border border-cs-border", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { className: "text-lg", children: "Optimization Status" }), _jsx(CardDescription, { children: "Current optimization status and recommendations" })] }), _jsxs(CardContent, { children: [_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Hardware Acceleration:" }), _jsx(Badge, { variant: hardwareAcceleration.isHardwareAccelerated ? 'default' : 'secondary', children: hardwareAcceleration.isHardwareAccelerated ? 'Optimal' : 'Needs Optimization' })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Performance Level:" }), _jsx(Badge, { variant: hardwareAcceleration.performanceLevel === 'excellent' || hardwareAcceleration.performanceLevel === 'good'
|
|
105
|
+
? 'default' : 'secondary', children: hardwareAcceleration.performanceLevel.toUpperCase() })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "Battery Optimization:" }), _jsx(Badge, { variant: batteryOptimization.isLowBattery ? 'secondary' : 'default', children: batteryOptimization.isLowBattery ? 'Needs Optimization' : 'Optimized' })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm", children: "GPU Utilization:" }), _jsx(Badge, { variant: hardwareAcceleration.metrics.gpuUtilization < 80 ? 'default' : 'secondary', children: hardwareAcceleration.metrics.gpuUtilization < 80 ? 'Optimal' : 'High Usage' })] })] }), hardwareAcceleration.optimizations.length > 0 && (_jsxs("div", { className: "mt-4 p-3 bg-cs-accent/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Recent Optimizations:" }), _jsx("ul", { className: "text-xs text-cs-text-secondary space-y-1", children: hardwareAcceleration.optimizations.slice(-3).map((optimization, index) => (_jsxs("li", { children: ["\u2022 ", optimization] }, index))) })] })), batteryOptimization.optimizationRecommendations.length > 0 && (_jsxs("div", { className: "mt-4 p-3 bg-cs-secondary/10 rounded-lg", children: [_jsx("h4", { className: "font-medium text-sm mb-2", children: "Battery Recommendations:" }), _jsx("ul", { className: "text-xs text-cs-text-secondary space-y-1", children: batteryOptimization.optimizationRecommendations.slice(0, 3).map((recommendation, index) => (_jsxs("li", { children: ["\u2022 ", recommendation] }, index))) })] }))] })] })] }));
|
|
106
|
+
};
|
|
107
|
+
export default HardwareAccelerationDemo;
|