@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.d.ts +259 -0
- package/dist/components/ui/accessibility-demo.esm.js +265 -0
- package/dist/components/ui/accessibility-demo.js +265 -0
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
- package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
- package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
- package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
- package/dist/components/ui/advanced-transition-system-demo.js +624 -0
- package/dist/components/ui/advanced-transition-system.d.ts +391 -0
- package/dist/components/ui/advanced-transition-system.esm.js +351 -0
- package/dist/components/ui/advanced-transition-system.js +351 -0
- package/dist/components/ui/animation/animated-container.d.ts +162 -0
- package/dist/components/ui/animation/animated-container.esm.js +143 -0
- package/dist/components/ui/animation/animated-container.js +143 -0
- package/dist/components/ui/animation/index.d.ts +9 -0
- package/dist/components/ui/animation/index.esm.js +19 -0
- package/dist/components/ui/animation/index.js +19 -0
- package/dist/components/ui/animation/staggered-container.d.ts +64 -0
- package/dist/components/ui/animation/staggered-container.esm.js +59 -0
- package/dist/components/ui/animation/staggered-container.js +59 -0
- package/dist/components/ui/animation-demo.d.ts +238 -0
- package/dist/components/ui/animation-demo.esm.js +218 -0
- package/dist/components/ui/animation-demo.js +218 -0
- package/dist/components/ui/badge.d.ts +28 -0
- package/dist/components/ui/badge.esm.js +30 -0
- package/dist/components/ui/badge.js +30 -0
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
- package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
- package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
- package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
- package/dist/components/ui/border-radius-shadow-demo.js +176 -0
- package/dist/components/ui/button.d.ts +33 -0
- package/dist/components/ui/button.esm.js +30 -0
- package/dist/components/ui/button.js +30 -0
- package/dist/components/ui/card.d.ts +205 -0
- package/dist/components/ui/card.esm.js +182 -0
- package/dist/components/ui/card.js +182 -0
- package/dist/components/ui/checkbox.d.ts +26 -0
- package/dist/components/ui/checkbox.esm.js +30 -0
- package/dist/components/ui/checkbox.js +30 -0
- package/dist/components/ui/color-preview.d.ts +402 -0
- package/dist/components/ui/color-preview.esm.js +388 -0
- package/dist/components/ui/color-preview.js +388 -0
- package/dist/components/ui/data-display/chart.d.ts +646 -0
- package/dist/components/ui/data-display/chart.esm.js +625 -0
- package/dist/components/ui/data-display/chart.js +625 -0
- package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
- package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
- package/dist/components/ui/data-display/data-grid-simple.js +76 -0
- package/dist/components/ui/data-display/data-grid.d.ts +670 -0
- package/dist/components/ui/data-display/data-grid.esm.js +667 -0
- package/dist/components/ui/data-display/data-grid.js +667 -0
- package/dist/components/ui/data-display/list.d.ts +448 -0
- package/dist/components/ui/data-display/list.esm.js +448 -0
- package/dist/components/ui/data-display/list.js +448 -0
- package/dist/components/ui/data-display/table.d.ts +472 -0
- package/dist/components/ui/data-display/table.esm.js +474 -0
- package/dist/components/ui/data-display/table.js +474 -0
- package/dist/components/ui/data-display/timeline.d.ts +433 -0
- package/dist/components/ui/data-display/timeline.esm.js +436 -0
- package/dist/components/ui/data-display/timeline.js +436 -0
- package/dist/components/ui/data-display/tree.d.ts +594 -0
- package/dist/components/ui/data-display/tree.esm.js +570 -0
- package/dist/components/ui/data-display/tree.js +570 -0
- package/dist/components/ui/data-display/types.d.ts +534 -0
- package/dist/components/ui/data-display/types.esm.js +511 -0
- package/dist/components/ui/data-display/types.js +511 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
- package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
- package/dist/components/ui/enterprise-mobile-experience.js +413 -0
- package/dist/components/ui/feedback/alert.d.ts +154 -0
- package/dist/components/ui/feedback/alert.esm.js +150 -0
- package/dist/components/ui/feedback/alert.js +150 -0
- package/dist/components/ui/feedback/progress.d.ts +288 -0
- package/dist/components/ui/feedback/progress.esm.js +269 -0
- package/dist/components/ui/feedback/progress.js +269 -0
- package/dist/components/ui/feedback/skeleton.d.ts +182 -0
- package/dist/components/ui/feedback/skeleton.esm.js +175 -0
- package/dist/components/ui/feedback/skeleton.js +175 -0
- package/dist/components/ui/feedback/toast.d.ts +277 -0
- package/dist/components/ui/feedback/toast.esm.js +256 -0
- package/dist/components/ui/feedback/toast.js +256 -0
- package/dist/components/ui/feedback/types.d.ts +123 -0
- package/dist/components/ui/feedback/types.esm.js +125 -0
- package/dist/components/ui/feedback/types.js +125 -0
- package/dist/components/ui/font-preview.d.ts +282 -0
- package/dist/components/ui/font-preview.esm.js +286 -0
- package/dist/components/ui/font-preview.js +286 -0
- package/dist/components/ui/form-demo.d.ts +544 -0
- package/dist/components/ui/form-demo.esm.js +516 -0
- package/dist/components/ui/form-demo.js +516 -0
- package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
- package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
- package/dist/components/ui/hardware-acceleration-demo.js +497 -0
- package/dist/components/ui/input.d.ts +33 -0
- package/dist/components/ui/input.esm.js +32 -0
- package/dist/components/ui/input.js +32 -0
- package/dist/components/ui/label.d.ts +13 -0
- package/dist/components/ui/label.esm.js +16 -0
- package/dist/components/ui/label.js +16 -0
- package/dist/components/ui/layout-demo.d.ts +352 -0
- package/dist/components/ui/layout-demo.esm.js +342 -0
- package/dist/components/ui/layout-demo.js +342 -0
- package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
- package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
- package/dist/components/ui/layouts/adaptive-layout.js +120 -0
- package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
- package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
- package/dist/components/ui/layouts/desktop-layout.js +204 -0
- package/dist/components/ui/layouts/index.d.ts +5 -0
- package/dist/components/ui/layouts/index.esm.js +10 -0
- package/dist/components/ui/layouts/index.js +10 -0
- package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
- package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
- package/dist/components/ui/layouts/mobile-layout.js +152 -0
- package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
- package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
- package/dist/components/ui/layouts/tablet-layout.js +183 -0
- package/dist/components/ui/mobile-form-validation.d.ts +439 -0
- package/dist/components/ui/mobile-form-validation.esm.js +418 -0
- package/dist/components/ui/mobile-form-validation.js +418 -0
- package/dist/components/ui/mobile-input-demo.d.ts +197 -0
- package/dist/components/ui/mobile-input-demo.esm.js +195 -0
- package/dist/components/ui/mobile-input-demo.js +195 -0
- package/dist/components/ui/mobile-input.d.ts +273 -0
- package/dist/components/ui/mobile-input.esm.js +216 -0
- package/dist/components/ui/mobile-input.js +216 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
- package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
- package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
- package/dist/components/ui/navigation/breadcrumb.js +155 -0
- package/dist/components/ui/navigation/index.d.ts +25 -0
- package/dist/components/ui/navigation/index.esm.js +14 -0
- package/dist/components/ui/navigation/index.js +14 -0
- package/dist/components/ui/navigation/menu.d.ts +366 -0
- package/dist/components/ui/navigation/menu.esm.js +360 -0
- package/dist/components/ui/navigation/menu.js +360 -0
- package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
- package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
- package/dist/components/ui/navigation/navigation-demo.js +317 -0
- package/dist/components/ui/navigation/pagination.d.ts +261 -0
- package/dist/components/ui/navigation/pagination.esm.js +260 -0
- package/dist/components/ui/navigation/pagination.js +260 -0
- package/dist/components/ui/navigation/sidebar.d.ts +375 -0
- package/dist/components/ui/navigation/sidebar.esm.js +369 -0
- package/dist/components/ui/navigation/sidebar.js +369 -0
- package/dist/components/ui/navigation/stepper.d.ts +294 -0
- package/dist/components/ui/navigation/stepper.esm.js +292 -0
- package/dist/components/ui/navigation/stepper.js +292 -0
- package/dist/components/ui/navigation/tabs.d.ts +196 -0
- package/dist/components/ui/navigation/tabs.esm.js +194 -0
- package/dist/components/ui/navigation/tabs.js +194 -0
- package/dist/components/ui/navigation/types.d.ts +293 -0
- package/dist/components/ui/navigation/types.esm.js +298 -0
- package/dist/components/ui/navigation/types.js +298 -0
- package/dist/components/ui/overlay/backdrop.d.ts +79 -0
- package/dist/components/ui/overlay/backdrop.esm.js +80 -0
- package/dist/components/ui/overlay/backdrop.js +80 -0
- package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
- package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
- package/dist/components/ui/overlay/focus-manager.js +141 -0
- package/dist/components/ui/overlay/index.d.ts +27 -0
- package/dist/components/ui/overlay/index.esm.js +16 -0
- package/dist/components/ui/overlay/index.js +16 -0
- package/dist/components/ui/overlay/modal.d.ts +262 -0
- package/dist/components/ui/overlay/modal.esm.js +266 -0
- package/dist/components/ui/overlay/modal.js +266 -0
- package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
- package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
- package/dist/components/ui/overlay/overlay-manager.js +105 -0
- package/dist/components/ui/overlay/popover.d.ts +450 -0
- package/dist/components/ui/overlay/popover.esm.js +446 -0
- package/dist/components/ui/overlay/popover.js +446 -0
- package/dist/components/ui/overlay/portal.d.ts +75 -0
- package/dist/components/ui/overlay/portal.esm.js +79 -0
- package/dist/components/ui/overlay/portal.js +79 -0
- package/dist/components/ui/overlay/tooltip.d.ts +298 -0
- package/dist/components/ui/overlay/tooltip.esm.js +288 -0
- package/dist/components/ui/overlay/tooltip.js +288 -0
- package/dist/components/ui/overlay/types.d.ts +194 -0
- package/dist/components/ui/overlay/types.esm.js +195 -0
- package/dist/components/ui/overlay/types.js +195 -0
- package/dist/components/ui/performance-demo.d.ts +583 -0
- package/dist/components/ui/performance-demo.esm.js +549 -0
- package/dist/components/ui/performance-demo.js +549 -0
- package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
- package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
- package/dist/components/ui/semantic-input-system-demo.js +465 -0
- package/dist/components/ui/theme-customizer.d.ts +378 -0
- package/dist/components/ui/theme-customizer.esm.js +354 -0
- package/dist/components/ui/theme-customizer.js +354 -0
- package/dist/components/ui/theme-preview.d.ts +305 -0
- package/dist/components/ui/theme-preview.esm.js +258 -0
- package/dist/components/ui/theme-preview.js +258 -0
- package/dist/components/ui/theme-switcher.d.ts +259 -0
- package/dist/components/ui/theme-switcher.esm.js +238 -0
- package/dist/components/ui/theme-switcher.js +238 -0
- package/dist/components/ui/theme-toggle.d.ts +34 -0
- package/dist/components/ui/theme-toggle.esm.js +38 -0
- package/dist/components/ui/theme-toggle.js +38 -0
- package/dist/components/ui/token-demo.d.ts +188 -0
- package/dist/components/ui/token-demo.esm.js +183 -0
- package/dist/components/ui/token-demo.js +183 -0
- package/dist/components/ui/touch-demo.d.ts +455 -0
- package/dist/components/ui/touch-demo.esm.js +433 -0
- package/dist/components/ui/touch-demo.js +433 -0
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
- package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
- package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
- package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
- package/dist/components/ui/touch-friendly-interface.js +272 -0
- package/dist/hooks/index.d.ts +161 -0
- package/dist/hooks/index.esm.js +190 -0
- package/dist/hooks/index.js +190 -0
- package/dist/hooks/use-accessibility-support.d.ts +516 -0
- package/dist/hooks/use-accessibility-support.esm.js +488 -0
- package/dist/hooks/use-accessibility-support.js +488 -0
- package/dist/hooks/use-adaptive-layout.d.ts +287 -0
- package/dist/hooks/use-adaptive-layout.esm.js +266 -0
- package/dist/hooks/use-adaptive-layout.js +266 -0
- package/dist/hooks/use-advanced-patterns.d.ts +292 -0
- package/dist/hooks/use-advanced-patterns.esm.js +279 -0
- package/dist/hooks/use-advanced-patterns.js +279 -0
- package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
- package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
- package/dist/hooks/use-advanced-transition-system.js +352 -0
- package/dist/hooks/use-animation-profile.d.ts +285 -0
- package/dist/hooks/use-animation-profile.esm.js +259 -0
- package/dist/hooks/use-animation-profile.js +259 -0
- package/dist/hooks/use-battery-animations.d.ts +382 -0
- package/dist/hooks/use-battery-animations.esm.js +359 -0
- package/dist/hooks/use-battery-animations.js +359 -0
- package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
- package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
- package/dist/hooks/use-battery-conscious-loading.js +432 -0
- package/dist/hooks/use-battery-optimization.d.ts +328 -0
- package/dist/hooks/use-battery-optimization.esm.js +307 -0
- package/dist/hooks/use-battery-optimization.js +307 -0
- package/dist/hooks/use-battery-status.d.ts +297 -0
- package/dist/hooks/use-battery-status.esm.js +277 -0
- package/dist/hooks/use-battery-status.js +277 -0
- package/dist/hooks/use-component-performance.d.ts +342 -0
- package/dist/hooks/use-component-performance.esm.js +329 -0
- package/dist/hooks/use-component-performance.js +329 -0
- package/dist/hooks/use-device-loading-states.d.ts +456 -0
- package/dist/hooks/use-device-loading-states.esm.js +416 -0
- package/dist/hooks/use-device-loading-states.js +416 -0
- package/dist/hooks/use-device.d.ts +104 -0
- package/dist/hooks/use-device.esm.js +99 -0
- package/dist/hooks/use-device.js +99 -0
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
- package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
- package/dist/hooks/use-form-feedback.d.ts +401 -0
- package/dist/hooks/use-form-feedback.esm.js +360 -0
- package/dist/hooks/use-form-feedback.js +360 -0
- package/dist/hooks/use-form-performance.d.ts +511 -0
- package/dist/hooks/use-form-performance.esm.js +478 -0
- package/dist/hooks/use-form-performance.js +478 -0
- package/dist/hooks/use-frame-rate.d.ts +249 -0
- package/dist/hooks/use-frame-rate.esm.js +232 -0
- package/dist/hooks/use-frame-rate.js +232 -0
- package/dist/hooks/use-gestures.d.ts +336 -0
- package/dist/hooks/use-gestures.esm.js +314 -0
- package/dist/hooks/use-gestures.js +314 -0
- package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
- package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
- package/dist/hooks/use-hardware-acceleration.js +313 -0
- package/dist/hooks/use-input-accessibility.d.ts +451 -0
- package/dist/hooks/use-input-accessibility.esm.js +417 -0
- package/dist/hooks/use-input-accessibility.js +417 -0
- package/dist/hooks/use-input-performance.d.ts +503 -0
- package/dist/hooks/use-input-performance.esm.js +471 -0
- package/dist/hooks/use-input-performance.js +471 -0
- package/dist/hooks/use-layout-performance.d.ts +317 -0
- package/dist/hooks/use-layout-performance.esm.js +298 -0
- package/dist/hooks/use-layout-performance.js +298 -0
- package/dist/hooks/use-loading-accessibility.d.ts +532 -0
- package/dist/hooks/use-loading-accessibility.esm.js +495 -0
- package/dist/hooks/use-loading-accessibility.js +495 -0
- package/dist/hooks/use-loading-performance.d.ts +471 -0
- package/dist/hooks/use-loading-performance.esm.js +449 -0
- package/dist/hooks/use-loading-performance.js +449 -0
- package/dist/hooks/use-memory-usage.d.ts +285 -0
- package/dist/hooks/use-memory-usage.esm.js +268 -0
- package/dist/hooks/use-memory-usage.js +268 -0
- package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
- package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
- package/dist/hooks/use-mobile-form-layout.js +427 -0
- package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
- package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
- package/dist/hooks/use-mobile-form-validation.js +451 -0
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
- package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
- package/dist/hooks/use-mobile-layout.d.ts +300 -0
- package/dist/hooks/use-mobile-layout.esm.js +280 -0
- package/dist/hooks/use-mobile-layout.js +280 -0
- package/dist/hooks/use-mobile-optimization.d.ts +404 -0
- package/dist/hooks/use-mobile-optimization.esm.js +378 -0
- package/dist/hooks/use-mobile-optimization.js +378 -0
- package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
- package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
- package/dist/hooks/use-mobile-skeleton.js +369 -0
- package/dist/hooks/use-mobile-touch.d.ts +412 -0
- package/dist/hooks/use-mobile-touch.esm.js +379 -0
- package/dist/hooks/use-mobile-touch.js +379 -0
- package/dist/hooks/use-performance-throttling.d.ts +346 -0
- package/dist/hooks/use-performance-throttling.esm.js +324 -0
- package/dist/hooks/use-performance-throttling.js +324 -0
- package/dist/hooks/use-performance.d.ts +314 -0
- package/dist/hooks/use-performance.esm.js +278 -0
- package/dist/hooks/use-performance.js +278 -0
- package/dist/hooks/use-reusable-architecture.d.ts +412 -0
- package/dist/hooks/use-reusable-architecture.esm.js +385 -0
- package/dist/hooks/use-reusable-architecture.js +385 -0
- package/dist/hooks/use-semantic-input-types.d.ts +354 -0
- package/dist/hooks/use-semantic-input-types.esm.js +315 -0
- package/dist/hooks/use-semantic-input-types.js +315 -0
- package/dist/hooks/use-semantic-input.d.ts +563 -0
- package/dist/hooks/use-semantic-input.esm.js +513 -0
- package/dist/hooks/use-semantic-input.js +513 -0
- package/dist/hooks/use-tablet-layout.d.ts +382 -0
- package/dist/hooks/use-tablet-layout.esm.js +355 -0
- package/dist/hooks/use-tablet-layout.js +355 -0
- package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
- package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
- package/dist/hooks/use-touch-friendly-input.js +480 -0
- package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
- package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
- package/dist/hooks/use-touch-friendly-interface.js +299 -0
- package/dist/hooks/use-touch-optimization.d.ts +373 -0
- package/dist/hooks/use-touch-optimization.esm.js +348 -0
- package/dist/hooks/use-touch-optimization.js +348 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.esm.js +6 -0
- package/dist/lib/utils.js +6 -0
- package/dist/plugins/theme-css-generator.d.ts +345 -0
- package/dist/plugins/theme-css-generator.esm.js +305 -0
- package/dist/plugins/theme-css-generator.js +305 -0
- package/dist/styles.css +1 -1
- package/dist/themes/ThemeContext.d.ts +27 -0
- package/dist/themes/ThemeContext.esm.js +31 -0
- package/dist/themes/ThemeContext.js +31 -0
- package/dist/themes/ThemeProvider.d.ts +222 -0
- package/dist/themes/ThemeProvider.esm.js +229 -0
- package/dist/themes/ThemeProvider.js +229 -0
- package/dist/themes/accessibility/index.d.ts +7 -0
- package/dist/themes/accessibility/index.esm.js +27 -0
- package/dist/themes/accessibility/index.js +27 -0
- package/dist/themes/accessibility.d.ts +259 -0
- package/dist/themes/accessibility.esm.js +220 -0
- package/dist/themes/accessibility.js +220 -0
- package/dist/themes/aria-patterns.d.ts +418 -0
- package/dist/themes/aria-patterns.esm.js +384 -0
- package/dist/themes/aria-patterns.js +384 -0
- package/dist/themes/base-themes.d.ts +34 -0
- package/dist/themes/base-themes.esm.js +52 -0
- package/dist/themes/base-themes.js +52 -0
- package/dist/themes/colorManager.d.ts +327 -0
- package/dist/themes/colorManager.esm.js +362 -0
- package/dist/themes/colorManager.js +362 -0
- package/dist/themes/examples/dark-theme.d.ts +139 -0
- package/dist/themes/examples/dark-theme.esm.js +124 -0
- package/dist/themes/examples/dark-theme.js +124 -0
- package/dist/themes/examples/minimal-theme.d.ts +93 -0
- package/dist/themes/examples/minimal-theme.esm.js +86 -0
- package/dist/themes/examples/minimal-theme.js +86 -0
- package/dist/themes/focus-management.d.ts +699 -0
- package/dist/themes/focus-management.esm.js +642 -0
- package/dist/themes/focus-management.js +642 -0
- package/dist/themes/fontLoader.d.ts +163 -0
- package/dist/themes/fontLoader.esm.js +192 -0
- package/dist/themes/fontLoader.js +192 -0
- package/dist/themes/high-contrast.d.ts +619 -0
- package/dist/themes/high-contrast.esm.js +573 -0
- package/dist/themes/high-contrast.js +573 -0
- package/dist/themes/index.d.ts +11 -0
- package/dist/themes/index.esm.js +19 -0
- package/dist/themes/index.js +19 -0
- package/dist/themes/inheritance.d.ts +160 -0
- package/dist/themes/inheritance.esm.js +219 -0
- package/dist/themes/inheritance.js +219 -0
- package/dist/themes/keyboard-navigation.d.ts +550 -0
- package/dist/themes/keyboard-navigation.esm.js +521 -0
- package/dist/themes/keyboard-navigation.js +521 -0
- package/dist/themes/motion-reduction.d.ts +660 -0
- package/dist/themes/motion-reduction.esm.js +602 -0
- package/dist/themes/motion-reduction.js +602 -0
- package/dist/themes/navigation.d.ts +232 -0
- package/dist/themes/navigation.esm.js +238 -0
- package/dist/themes/navigation.js +238 -0
- package/dist/themes/screen-reader.d.ts +645 -0
- package/dist/themes/screen-reader.esm.js +580 -0
- package/dist/themes/screen-reader.js +580 -0
- package/dist/themes/systemThemeDetector.d.ts +148 -0
- package/dist/themes/systemThemeDetector.esm.js +174 -0
- package/dist/themes/systemThemeDetector.js +174 -0
- package/dist/themes/themeCSSUpdater.d.ts +229 -0
- package/dist/themes/themeCSSUpdater.esm.js +250 -0
- package/dist/themes/themeCSSUpdater.js +250 -0
- package/dist/themes/themePersistence.d.ts +192 -0
- package/dist/themes/themePersistence.esm.js +217 -0
- package/dist/themes/themePersistence.js +217 -0
- package/dist/themes/themes/stan-design.d.ts +678 -0
- package/dist/themes/themes/stan-design.esm.js +518 -0
- package/dist/themes/themes/stan-design.js +518 -0
- package/dist/themes/types.d.ts +454 -0
- package/dist/themes/types.esm.js +446 -0
- package/dist/themes/types.js +446 -0
- package/dist/themes/useSystemTheme.d.ts +43 -0
- package/dist/themes/useSystemTheme.esm.js +48 -0
- package/dist/themes/useSystemTheme.js +48 -0
- package/dist/themes/useTheme.d.ts +20 -0
- package/dist/themes/useTheme.esm.js +87 -0
- package/dist/themes/useTheme.js +87 -0
- package/dist/themes/validation.d.ts +406 -0
- package/dist/themes/validation.esm.js +411 -0
- package/dist/themes/validation.js +411 -0
- package/dist/tokens/index.d.ts +25 -0
- package/dist/tokens/index.esm.js +23 -0
- package/dist/tokens/index.js +23 -0
- package/dist/tokens/tokenExporter.d.ts +336 -0
- package/dist/tokens/tokenExporter.esm.js +371 -0
- package/dist/tokens/tokenExporter.js +371 -0
- package/dist/tokens/tokenGenerator.d.ts +250 -0
- package/dist/tokens/tokenGenerator.esm.js +267 -0
- package/dist/tokens/tokenGenerator.js +267 -0
- package/dist/tokens/tokenManager.d.ts +194 -0
- package/dist/tokens/tokenManager.esm.js +235 -0
- package/dist/tokens/tokenManager.js +235 -0
- package/dist/tokens/tokenValidator.d.ts +488 -0
- package/dist/tokens/tokenValidator.esm.js +497 -0
- package/dist/tokens/tokenValidator.js +497 -0
- package/dist/tokens/types.d.ts +78 -0
- package/dist/tokens/types.esm.js +64 -0
- package/dist/tokens/types.js +64 -0
- package/dist/utils/bundle-analyzer.d.ts +260 -0
- package/dist/utils/bundle-analyzer.esm.js +242 -0
- package/dist/utils/bundle-analyzer.js +242 -0
- package/dist/utils/bundle-splitting.d.ts +483 -0
- package/dist/utils/bundle-splitting.esm.js +458 -0
- package/dist/utils/bundle-splitting.js +458 -0
- package/dist/utils/lazy-loading.d.ts +437 -0
- package/dist/utils/lazy-loading.esm.js +415 -0
- package/dist/utils/lazy-loading.js +415 -0
- package/dist/utils/performance-monitor.d.ts +513 -0
- package/dist/utils/performance-monitor.esm.js +472 -0
- package/dist/utils/performance-monitor.js +472 -0
- package/dist/utils/tree-shaking.d.ts +274 -0
- package/dist/utils/tree-shaking.esm.js +266 -0
- package/dist/utils/tree-shaking.js +266 -0
- package/package.json +1 -1
|
@@ -0,0 +1,544 @@
|
|
|
1
|
+
export const FormDemo: React.FC = () => {
|
|
2
|
+
const [activeTab, setActiveTab] = useState<'basic' | 'advanced' | 'performance' | 'semantic'>('basic')
|
|
3
|
+
const [formResults, setFormResults] = useState<Array<{ type: string; data: any; timestamp: Date }>>([])
|
|
4
|
+
const [enableEnhancedFeatures, setEnableEnhancedFeatures] = useState(true)
|
|
5
|
+
|
|
6
|
+
const basicFormRef = useRef<MobileFormValidationRef>(null)
|
|
7
|
+
const advancedFormRef = useRef<MobileFormValidationRef>(null)
|
|
8
|
+
|
|
9
|
+
// Basic form fields
|
|
10
|
+
const basicFields = [
|
|
11
|
+
{
|
|
12
|
+
name: 'name',
|
|
13
|
+
label: 'Full Name',
|
|
14
|
+
type: { type: 'text' } as InputType,
|
|
15
|
+
placeholder: 'Enter your full name',
|
|
16
|
+
rules: [
|
|
17
|
+
{ type: 'required' as const, message: 'Name is required' },
|
|
18
|
+
{ type: 'minLength' as const, value: 2, message: 'Name must be at least 2 characters' }
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'email',
|
|
23
|
+
label: 'Email Address',
|
|
24
|
+
type: { type: 'email' } as InputType,
|
|
25
|
+
placeholder: 'Enter your email',
|
|
26
|
+
rules: [
|
|
27
|
+
{ type: 'required' as const, message: 'Email is required' },
|
|
28
|
+
{ type: 'email' as const, message: 'Please enter a valid email address' }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
// Advanced form fields
|
|
34
|
+
const advancedFields = [
|
|
35
|
+
{
|
|
36
|
+
name: 'fullName',
|
|
37
|
+
label: 'Full Name',
|
|
38
|
+
type: { type: 'text' } as InputType,
|
|
39
|
+
placeholder: 'Enter your full name',
|
|
40
|
+
rules: [
|
|
41
|
+
{ type: 'required' as const, message: 'Full name is required' },
|
|
42
|
+
{ type: 'minLength' as const, value: 3, message: 'Name must be at least 3 characters' },
|
|
43
|
+
{ type: 'maxLength' as const, value: 50, message: 'Name must be less than 50 characters' }
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'emailAddress',
|
|
48
|
+
label: 'Email Address',
|
|
49
|
+
type: { type: 'email' } as InputType,
|
|
50
|
+
placeholder: 'Enter your email address',
|
|
51
|
+
rules: [
|
|
52
|
+
{ type: 'required' as const, message: 'Email is required' },
|
|
53
|
+
{ type: 'email' as const, message: 'Please enter a valid email address' }
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'phoneNumber',
|
|
58
|
+
label: 'Phone Number',
|
|
59
|
+
type: { type: 'tel' } as InputType,
|
|
60
|
+
placeholder: 'Enter your phone number',
|
|
61
|
+
rules: [
|
|
62
|
+
{ type: 'required' as const, message: 'Phone number is required' },
|
|
63
|
+
{ type: 'pattern' as const, value: /^[\+]?[0-9\s\-\(\)]{7,}$/, message: 'Please enter a valid phone number' }
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'website',
|
|
68
|
+
label: 'Website',
|
|
69
|
+
type: { type: 'url' } as InputType,
|
|
70
|
+
placeholder: 'Enter your website URL',
|
|
71
|
+
rules: [
|
|
72
|
+
{ type: 'pattern' as const, value: /^https?:\/\/.+/, message: 'Please enter a valid URL starting with http:// or https://' }
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'age',
|
|
77
|
+
label: 'Age',
|
|
78
|
+
type: { type: 'number' } as InputType,
|
|
79
|
+
placeholder: 'Enter your age',
|
|
80
|
+
rules: [
|
|
81
|
+
{ type: 'required' as const, message: 'Age is required' },
|
|
82
|
+
{ type: 'minLength' as const, value: 1, message: 'Age must be at least 1' },
|
|
83
|
+
{ type: 'maxLength' as const, value: 3, message: 'Age must be less than 1000' }
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'password',
|
|
88
|
+
label: 'Password',
|
|
89
|
+
type: { type: 'password' } as InputType,
|
|
90
|
+
placeholder: 'Enter your password',
|
|
91
|
+
rules: [
|
|
92
|
+
{ type: 'required' as const, message: 'Password is required' },
|
|
93
|
+
{ type: 'minLength' as const, value: 8, message: 'Password must be at least 8 characters' },
|
|
94
|
+
{ type: 'pattern' as const, value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, message: 'Password must contain lowercase, uppercase, and number' }
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'confirmPassword',
|
|
99
|
+
label: 'Confirm Password',
|
|
100
|
+
type: { type: 'password' } as InputType,
|
|
101
|
+
placeholder: 'Confirm your password',
|
|
102
|
+
rules: [
|
|
103
|
+
{ type: 'required' as const, message: 'Please confirm your password' },
|
|
104
|
+
{ type: 'custom' as const, message: 'Passwords do not match', validator: (value: any): boolean => {
|
|
105
|
+
const passwordField = advancedFields.find(f => f.name === 'password')
|
|
106
|
+
const passwordValue = passwordField ? (document.getElementById('password') as HTMLInputElement)?.value : ''
|
|
107
|
+
return value === passwordValue
|
|
108
|
+
}}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
// Handle form submission
|
|
114
|
+
const handleFormSubmit = (formData: Record<string, any>, formType: string) => {
|
|
115
|
+
const result = {
|
|
116
|
+
type: formType,
|
|
117
|
+
data: formData,
|
|
118
|
+
timestamp: new Date()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
setFormResults(prev => [result, ...prev.slice(0, 9)]) // Keep last 10 results
|
|
122
|
+
|
|
123
|
+
console.log(`${formType} form submitted:`, formData)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Handle form validation change
|
|
127
|
+
const handleValidationChange = (isValid: boolean, formType: string) => {
|
|
128
|
+
console.log(`${formType} form validation:`, isValid ? 'Valid' : 'Invalid')
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Clear form results
|
|
132
|
+
const clearResults = () => {
|
|
133
|
+
setFormResults([])
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Test form submission programmatically
|
|
137
|
+
const testFormSubmission = async (formType: 'basic' | 'advanced') => {
|
|
138
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
|
|
139
|
+
|
|
140
|
+
if (formRef.current) {
|
|
141
|
+
try {
|
|
142
|
+
const result = await formRef.current.submit()
|
|
143
|
+
console.log(`${formType} form test submission:`, result)
|
|
144
|
+
} catch (error) {
|
|
145
|
+
console.error(`${formType} form test submission error:`, error)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Test form validation programmatically
|
|
151
|
+
const testFormValidation = async (formType: 'basic' | 'advanced') => {
|
|
152
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
|
|
153
|
+
|
|
154
|
+
if (formRef.current) {
|
|
155
|
+
try {
|
|
156
|
+
const isValid = await formRef.current.validate()
|
|
157
|
+
console.log(`${formType} form validation test:`, isValid ? 'Valid' : 'Invalid')
|
|
158
|
+
} catch (error) {
|
|
159
|
+
console.error(`${formType} form validation test error:`, error)
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Test form reset programmatically
|
|
165
|
+
const testFormReset = (formType: 'basic' | 'advanced') => {
|
|
166
|
+
const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
|
|
167
|
+
|
|
168
|
+
if (formRef.current) {
|
|
169
|
+
formRef.current.reset()
|
|
170
|
+
console.log(`${formType} form reset`)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<div className="space-y-6">
|
|
176
|
+
{/* Header */}
|
|
177
|
+
<div className="text-center space-y-2">
|
|
178
|
+
<h1 className="text-3xl font-bold">📱 Mobile Form Validation Demo</h1>
|
|
179
|
+
<p className="text-gray-600">
|
|
180
|
+
Advanced form system with mobile validation, animated feedback, and performance optimization
|
|
181
|
+
</p>
|
|
182
|
+
<Badge variant="outline" className="text-sm">
|
|
183
|
+
Story 6: Advanced Form System with Mobile Validation
|
|
184
|
+
</Badge>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
{/* Enhanced Features Toggle */}
|
|
188
|
+
<div className="flex justify-center">
|
|
189
|
+
<div className="flex items-center gap-2 p-3 bg-gray-50 rounded-lg">
|
|
190
|
+
<span className="text-sm font-medium">Enhanced Features:</span>
|
|
191
|
+
<Button
|
|
192
|
+
variant={enableEnhancedFeatures ? 'default' : 'outline'}
|
|
193
|
+
size="sm"
|
|
194
|
+
onClick={() => setEnableEnhancedFeatures(!enableEnhancedFeatures)}
|
|
195
|
+
>
|
|
196
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
197
|
+
</Button>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
{/* Tab Navigation */}
|
|
202
|
+
<Tabs
|
|
203
|
+
tabs={[
|
|
204
|
+
{
|
|
205
|
+
id: 'basic',
|
|
206
|
+
label: 'Basic Form',
|
|
207
|
+
content: (
|
|
208
|
+
<div className="space-y-4">
|
|
209
|
+
<Card>
|
|
210
|
+
<CardHeader>
|
|
211
|
+
<CardTitle className="flex items-center gap-2">
|
|
212
|
+
🚀 Basic Form Validation
|
|
213
|
+
<Badge variant="secondary">Simple Example</Badge>
|
|
214
|
+
</CardTitle>
|
|
215
|
+
<CardDescription>
|
|
216
|
+
Basic form with name and email validation. Demonstrates core validation features.
|
|
217
|
+
</CardDescription>
|
|
218
|
+
</CardHeader>
|
|
219
|
+
<CardContent className="space-y-4">
|
|
220
|
+
<MobileFormValidation
|
|
221
|
+
ref={basicFormRef}
|
|
222
|
+
title="Basic Contact Form"
|
|
223
|
+
description="Simple form with essential validation"
|
|
224
|
+
fields={basicFields}
|
|
225
|
+
onSubmit={(data) => handleFormSubmit(data, 'Basic')}
|
|
226
|
+
onValidationChange={(isValid) => handleValidationChange(isValid, 'Basic')}
|
|
227
|
+
enableEnhancedFeatures={enableEnhancedFeatures}
|
|
228
|
+
/>
|
|
229
|
+
|
|
230
|
+
{/* Test Controls */}
|
|
231
|
+
<div className="flex gap-2 pt-4 border-t">
|
|
232
|
+
<Button
|
|
233
|
+
variant="outline"
|
|
234
|
+
size="sm"
|
|
235
|
+
onClick={() => testFormSubmission('basic')}
|
|
236
|
+
>
|
|
237
|
+
Test Submit
|
|
238
|
+
</Button>
|
|
239
|
+
<Button
|
|
240
|
+
variant="outline"
|
|
241
|
+
size="sm"
|
|
242
|
+
onClick={() => testFormValidation('basic')}
|
|
243
|
+
>
|
|
244
|
+
Test Validation
|
|
245
|
+
</Button>
|
|
246
|
+
<Button
|
|
247
|
+
variant="outline"
|
|
248
|
+
size="sm"
|
|
249
|
+
onClick={() => testFormReset('basic')}
|
|
250
|
+
>
|
|
251
|
+
Test Reset
|
|
252
|
+
</Button>
|
|
253
|
+
</div>
|
|
254
|
+
</CardContent>
|
|
255
|
+
</Card>
|
|
256
|
+
</div>
|
|
257
|
+
)
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: 'advanced',
|
|
261
|
+
label: 'Advanced Form',
|
|
262
|
+
content: (
|
|
263
|
+
<div className="space-y-4">
|
|
264
|
+
<Card>
|
|
265
|
+
<CardHeader>
|
|
266
|
+
<CardTitle className="flex items-center gap-2">
|
|
267
|
+
🎯 Advanced Form Validation
|
|
268
|
+
<Badge variant="default">Full Featured</Badge>
|
|
269
|
+
</CardTitle>
|
|
270
|
+
<CardDescription>
|
|
271
|
+
Comprehensive form with multiple field types, complex validation rules, and all features enabled.
|
|
272
|
+
</CardDescription>
|
|
273
|
+
</CardHeader>
|
|
274
|
+
<CardContent className="space-y-4">
|
|
275
|
+
<MobileFormValidation
|
|
276
|
+
ref={advancedFormRef}
|
|
277
|
+
title="Advanced Registration Form"
|
|
278
|
+
description="Complete form with all validation types and optimizations"
|
|
279
|
+
fields={advancedFields}
|
|
280
|
+
onSubmit={(data) => handleFormSubmit(data, 'Advanced')}
|
|
281
|
+
onValidationChange={(isValid) => handleValidationChange(isValid, 'Advanced')}
|
|
282
|
+
enableEnhancedFeatures={enableEnhancedFeatures}
|
|
283
|
+
/>
|
|
284
|
+
|
|
285
|
+
{/* Test Controls */}
|
|
286
|
+
<div className="flex gap-2 pt-4 border-t">
|
|
287
|
+
<Button
|
|
288
|
+
variant="outline"
|
|
289
|
+
size="sm"
|
|
290
|
+
onClick={() => testFormSubmission('advanced')}
|
|
291
|
+
>
|
|
292
|
+
Test Submit
|
|
293
|
+
</Button>
|
|
294
|
+
<Button
|
|
295
|
+
variant="outline"
|
|
296
|
+
size="sm"
|
|
297
|
+
onClick={() => testFormValidation('advanced')}
|
|
298
|
+
>
|
|
299
|
+
Test Validation
|
|
300
|
+
</Button>
|
|
301
|
+
<Button
|
|
302
|
+
variant="outline"
|
|
303
|
+
size="sm"
|
|
304
|
+
onClick={() => testFormReset('advanced')}
|
|
305
|
+
>
|
|
306
|
+
Test Reset
|
|
307
|
+
</Button>
|
|
308
|
+
</div>
|
|
309
|
+
</CardContent>
|
|
310
|
+
</Card>
|
|
311
|
+
</div>
|
|
312
|
+
)
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
id: 'performance',
|
|
316
|
+
label: 'Performance',
|
|
317
|
+
content: (
|
|
318
|
+
<div className="space-y-4">
|
|
319
|
+
<Card>
|
|
320
|
+
<CardHeader>
|
|
321
|
+
<CardTitle className="flex items-center gap-2">
|
|
322
|
+
⚡ Performance Monitoring
|
|
323
|
+
<Badge variant="outline">Real-time Metrics</Badge>
|
|
324
|
+
</CardTitle>
|
|
325
|
+
<CardDescription>
|
|
326
|
+
Monitor form performance, memory usage, battery status, and optimization scores.
|
|
327
|
+
</CardDescription>
|
|
328
|
+
</CardHeader>
|
|
329
|
+
<CardContent className="space-y-4">
|
|
330
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
331
|
+
<div className="space-y-3">
|
|
332
|
+
<h4 className="font-semibold">Performance Features</h4>
|
|
333
|
+
<div className="space-y-2 text-sm">
|
|
334
|
+
<div className="flex justify-between">
|
|
335
|
+
<span>Validation Throttling:</span>
|
|
336
|
+
<Badge variant="default">Enabled</Badge>
|
|
337
|
+
</div>
|
|
338
|
+
<div className="flex justify-between">
|
|
339
|
+
<span>Touch Event Optimization:</span>
|
|
340
|
+
<Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
|
|
341
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
342
|
+
</Badge>
|
|
343
|
+
</div>
|
|
344
|
+
<div className="flex justify-between">
|
|
345
|
+
<span>Memory Management:</span>
|
|
346
|
+
<Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
|
|
347
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
348
|
+
</Badge>
|
|
349
|
+
</div>
|
|
350
|
+
<div className="flex justify-between">
|
|
351
|
+
<span>Battery Optimization:</span>
|
|
352
|
+
<Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
|
|
353
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
354
|
+
</Badge>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
|
|
359
|
+
<div className="space-y-3">
|
|
360
|
+
<h4 className="font-semibold">Optimization Benefits</h4>
|
|
361
|
+
<div className="space-y-2 text-sm text-gray-600">
|
|
362
|
+
<p>• Reduced validation frequency for better performance</p>
|
|
363
|
+
<p>• Touch event throttling for smooth mobile experience</p>
|
|
364
|
+
<p>• Automatic memory cleanup to prevent leaks</p>
|
|
365
|
+
<p>• Battery-aware optimizations for mobile devices</p>
|
|
366
|
+
<p>• Real-time performance scoring and recommendations</p>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
<div className="p-4 bg-blue-50 border border-blue-200 rounded-lg">
|
|
372
|
+
<h4 className="font-semibold text-blue-800 mb-2">Performance Tips</h4>
|
|
373
|
+
<ul className="text-sm text-blue-700 space-y-1">
|
|
374
|
+
<li>• Use validation throttling to reduce unnecessary validations</li>
|
|
375
|
+
<li>• Enable touch event optimization for better mobile performance</li>
|
|
376
|
+
<li>• Monitor memory usage and enable cleanup when needed</li>
|
|
377
|
+
<li>• Enable battery optimization for mobile devices</li>
|
|
378
|
+
<li>• Check performance scores and apply recommendations</li>
|
|
379
|
+
</ul>
|
|
380
|
+
</div>
|
|
381
|
+
</CardContent>
|
|
382
|
+
</Card>
|
|
383
|
+
</div>
|
|
384
|
+
)
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
id: 'semantic',
|
|
388
|
+
label: 'Semantic Input',
|
|
389
|
+
content: (
|
|
390
|
+
<div className="space-y-4">
|
|
391
|
+
<Card>
|
|
392
|
+
<CardHeader>
|
|
393
|
+
<CardTitle className="flex items-center gap-2">
|
|
394
|
+
🧠 Semantic Input Optimization
|
|
395
|
+
<Badge variant="outline">Smart Detection</Badge>
|
|
396
|
+
</CardTitle>
|
|
397
|
+
<CardDescription>
|
|
398
|
+
Automatic input type detection, mobile keyboard optimization, and enhanced autocomplete.
|
|
399
|
+
</CardDescription>
|
|
400
|
+
</CardHeader>
|
|
401
|
+
<CardContent className="space-y-4">
|
|
402
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
403
|
+
<div className="space-y-3">
|
|
404
|
+
<h4 className="font-semibold">Semantic Features</h4>
|
|
405
|
+
<div className="space-y-2 text-sm">
|
|
406
|
+
<div className="flex justify-between">
|
|
407
|
+
<span>Auto Type Detection:</span>
|
|
408
|
+
<Badge variant="default">Enabled</Badge>
|
|
409
|
+
</div>
|
|
410
|
+
<div className="flex justify-between">
|
|
411
|
+
<span>Keyboard Optimization:</span>
|
|
412
|
+
<Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
|
|
413
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
414
|
+
</Badge>
|
|
415
|
+
</div>
|
|
416
|
+
<div className="flex justify-between">
|
|
417
|
+
<span>Autocomplete Enhancement:</span>
|
|
418
|
+
<Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
|
|
419
|
+
{enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
|
|
420
|
+
</Badge>
|
|
421
|
+
</div>
|
|
422
|
+
<div className="flex justify-between">
|
|
423
|
+
<span>Touch Optimization:</span>
|
|
424
|
+
<Badge variant="default">Enabled</Badge>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
|
|
429
|
+
<div className="space-y-3">
|
|
430
|
+
<h4 className="font-semibold">Detection Examples</h4>
|
|
431
|
+
<div className="space-y-2 text-sm text-gray-600">
|
|
432
|
+
<p>• <strong>Email:</strong> Detects @ symbol, sets email keyboard</p>
|
|
433
|
+
<p>• <strong>Phone:</strong> Detects numeric patterns, sets phone keyboard</p>
|
|
434
|
+
<p>• <strong>URL:</strong> Detects http/https, sets URL keyboard</p>
|
|
435
|
+
<p>• <strong>Search:</strong> Detects search context, optimizes input</p>
|
|
436
|
+
<p>• <strong>Number:</strong> Detects numeric patterns, sets numeric keyboard</p>
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
|
|
441
|
+
<div className="p-4 bg-green-50 border border-green-200 rounded-lg">
|
|
442
|
+
<h4 className="font-semibold text-green-800 mb-2">Semantic Benefits</h4>
|
|
443
|
+
<ul className="text-sm text-green-700 space-y-1">
|
|
444
|
+
<li>• Automatic input type detection based on field name and content</li>
|
|
445
|
+
<li>• Mobile keyboard optimization for better user experience</li>
|
|
446
|
+
<li>• Enhanced autocomplete with appropriate suggestions</li>
|
|
447
|
+
<li>• Touch-friendly input optimization</li>
|
|
448
|
+
<li>• Accessibility improvements with proper input modes</li>
|
|
449
|
+
</ul>
|
|
450
|
+
</div>
|
|
451
|
+
</CardContent>
|
|
452
|
+
</Card>
|
|
453
|
+
</div>
|
|
454
|
+
)
|
|
455
|
+
}
|
|
456
|
+
]}
|
|
457
|
+
activeTab={activeTab}
|
|
458
|
+
onTabChange={(tabId: string) => setActiveTab(tabId as 'basic' | 'advanced' | 'performance' | 'semantic')}
|
|
459
|
+
className="w-full"
|
|
460
|
+
/>
|
|
461
|
+
|
|
462
|
+
{/* Form Results */}
|
|
463
|
+
{formResults.length > 0 && (
|
|
464
|
+
<Card>
|
|
465
|
+
<CardHeader>
|
|
466
|
+
<CardTitle className="flex items-center gap-2">
|
|
467
|
+
📊 Form Submission Results
|
|
468
|
+
<Button
|
|
469
|
+
variant="outline"
|
|
470
|
+
size="sm"
|
|
471
|
+
onClick={clearResults}
|
|
472
|
+
>
|
|
473
|
+
Clear Results
|
|
474
|
+
</Button>
|
|
475
|
+
</CardTitle>
|
|
476
|
+
<CardDescription>
|
|
477
|
+
Recent form submissions and their data
|
|
478
|
+
</CardDescription>
|
|
479
|
+
</CardHeader>
|
|
480
|
+
<CardContent>
|
|
481
|
+
<div className="space-y-3 max-h-64 overflow-y-auto">
|
|
482
|
+
{formResults.map((result, index) => (
|
|
483
|
+
<div key={index} className="p-3 bg-gray-50 rounded-lg">
|
|
484
|
+
<div className="flex justify-between items-start mb-2">
|
|
485
|
+
<Badge variant="outline">{result.type}</Badge>
|
|
486
|
+
<span className="text-xs text-gray-500">
|
|
487
|
+
{result.timestamp.toLocaleTimeString()}
|
|
488
|
+
</span>
|
|
489
|
+
</div>
|
|
490
|
+
<pre className="text-xs bg-white p-2 rounded border overflow-x-auto">
|
|
491
|
+
{JSON.stringify(result.data, null, 2)}
|
|
492
|
+
</pre>
|
|
493
|
+
</div>
|
|
494
|
+
))}
|
|
495
|
+
</div>
|
|
496
|
+
</CardContent>
|
|
497
|
+
</Card>
|
|
498
|
+
)}
|
|
499
|
+
|
|
500
|
+
{/* Feature Summary */}
|
|
501
|
+
<Card>
|
|
502
|
+
<CardHeader>
|
|
503
|
+
<CardTitle>🎯 Story 6 Implementation Summary</CardTitle>
|
|
504
|
+
<CardDescription>
|
|
505
|
+
Complete mobile form validation system with all requested features
|
|
506
|
+
</CardDescription>
|
|
507
|
+
</CardHeader>
|
|
508
|
+
<CardContent>
|
|
509
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
510
|
+
<div className="space-y-3">
|
|
511
|
+
<h4 className="font-semibold">✅ Completed Features</h4>
|
|
512
|
+
<ul className="text-sm space-y-1 text-gray-600">
|
|
513
|
+
<li>• Mobile form validation system</li>
|
|
514
|
+
<li>• Animated success/error states</li>
|
|
515
|
+
<li>• Touch-friendly form layouts</li>
|
|
516
|
+
<li>• Semantic input optimization</li>
|
|
517
|
+
<li>• Performance-optimized validation</li>
|
|
518
|
+
<li>• Haptic feedback and touch sounds</li>
|
|
519
|
+
<li>• Battery-aware optimizations</li>
|
|
520
|
+
<li>• Memory management and cleanup</li>
|
|
521
|
+
</ul>
|
|
522
|
+
</div>
|
|
523
|
+
|
|
524
|
+
<div className="space-y-3">
|
|
525
|
+
<h4 className="font-semibold">🚀 Advanced Capabilities</h4>
|
|
526
|
+
<ul className="text-sm space-y-1 text-gray-600">
|
|
527
|
+
<li>• Real-time performance monitoring</li>
|
|
528
|
+
<li>• Automatic input type detection</li>
|
|
529
|
+
<li>• Mobile keyboard optimization</li>
|
|
530
|
+
<li>• Touch event throttling</li>
|
|
531
|
+
<li>• Responsive layout adaptation</li>
|
|
532
|
+
<li>• Accessibility enhancements</li>
|
|
533
|
+
<li>• Performance scoring system</li>
|
|
534
|
+
<li>• Optimization recommendations</li>
|
|
535
|
+
</ul>
|
|
536
|
+
</div>
|
|
537
|
+
</div>
|
|
538
|
+
</CardContent>
|
|
539
|
+
</Card>
|
|
540
|
+
</div>
|
|
541
|
+
)
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
export default FormDemo
|