@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
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
interface AccessibilityDemoProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export const AccessibilityDemo: React.FC<AccessibilityDemoProps> = ({ className = '' }) => {
|
|
6
|
+
const [currentFocus, setCurrentFocus] = useState<string>('');
|
|
7
|
+
const [announcements, setAnnouncements] = useState<string[]>([]);
|
|
8
|
+
const [accessibilityConfig, setAccessibilityConfig] = useState(accessibilityManager.getConfig());
|
|
9
|
+
const [highContrastEnabled, setHighContrastEnabled] = useState(highContrastThemeManager.isHighContrastEnabled());
|
|
10
|
+
const [motionReduced, setMotionReduced] = useState(motionReductionManager.isMotionReduced());
|
|
11
|
+
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
// Subscribe to accessibility changes
|
|
14
|
+
const unsubscribeAccessibility = accessibilityManager.subscribe(() => {
|
|
15
|
+
setAccessibilityConfig(accessibilityManager.getConfig());
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Update state periodically since some managers don't have subscribe methods
|
|
19
|
+
const interval = setInterval(() => {
|
|
20
|
+
setHighContrastEnabled(highContrastThemeManager.isHighContrastEnabled());
|
|
21
|
+
setMotionReduced(motionReductionManager.isMotionReduced());
|
|
22
|
+
|
|
23
|
+
const focusInfo = focusManager.getCurrentFocusInfo();
|
|
24
|
+
if (focusInfo.element) {
|
|
25
|
+
setCurrentFocus(focusInfo.element.textContent || focusInfo.element.tagName);
|
|
26
|
+
}
|
|
27
|
+
}, 1000);
|
|
28
|
+
|
|
29
|
+
return () => {
|
|
30
|
+
unsubscribeAccessibility();
|
|
31
|
+
clearInterval(interval);
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
|
|
35
|
+
const addAnnouncement = (message: string) => {
|
|
36
|
+
setAnnouncements(prev => [message, ...prev.slice(0, 9)]);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const toggleHighContrast = () => {
|
|
40
|
+
if (highContrastEnabled) {
|
|
41
|
+
highContrastThemeManager.disable();
|
|
42
|
+
addAnnouncement('High contrast mode disabled');
|
|
43
|
+
} else {
|
|
44
|
+
highContrastThemeManager.enable();
|
|
45
|
+
addAnnouncement('High contrast mode enabled');
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const toggleMotionReduction = () => {
|
|
50
|
+
if (motionReduced) {
|
|
51
|
+
motionReductionManager.disable();
|
|
52
|
+
addAnnouncement('Motion reduction disabled');
|
|
53
|
+
} else {
|
|
54
|
+
motionReductionManager.enable();
|
|
55
|
+
addAnnouncement('Motion reduction enabled');
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const testScreenReaderAnnouncement = () => {
|
|
60
|
+
const message = 'This is a test announcement for screen readers';
|
|
61
|
+
screenReaderOptimizer.announce(message, 'normal');
|
|
62
|
+
addAnnouncement(`Announced: ${message}`);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const testFocusManagement = () => {
|
|
66
|
+
const container = document.getElementById('accessibility-demo-container');
|
|
67
|
+
if (container) {
|
|
68
|
+
// Focus management is already active by default
|
|
69
|
+
addAnnouncement('Focus management is active for this container');
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const testAriaPatterns = () => {
|
|
74
|
+
const button = document.getElementById('test-aria-button');
|
|
75
|
+
if (button) {
|
|
76
|
+
const ariaProps = AriaPatternGenerator.generateAriaAttributes({
|
|
77
|
+
disabled: false,
|
|
78
|
+
readonly: false,
|
|
79
|
+
required: true,
|
|
80
|
+
invalid: false,
|
|
81
|
+
label: 'Test button for ARIA patterns',
|
|
82
|
+
describedby: 'button-description'
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
Object.entries(ariaProps).forEach(([key, value]) => {
|
|
86
|
+
if (value !== undefined) {
|
|
87
|
+
button.setAttribute(key, String(value));
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
addAnnouncement('ARIA patterns applied to test button');
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<div id="accessibility-demo-container" className={`accessibility-demo ${className} max-w-full overflow-hidden`}>
|
|
97
|
+
<Card className="mb-6">
|
|
98
|
+
<h2 className="text-2xl font-bold mb-4 break-words">Accessibility Features Demo</h2>
|
|
99
|
+
<p className="text-gray-600 mb-4 break-words">
|
|
100
|
+
This component demonstrates all the accessibility features implemented in the design system.
|
|
101
|
+
</p>
|
|
102
|
+
|
|
103
|
+
{/* Current Status */}
|
|
104
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
|
|
105
|
+
<div className="p-4 bg-gray-50 rounded-lg">
|
|
106
|
+
<h3 className="font-semibold mb-2">Current Focus</h3>
|
|
107
|
+
<p className="text-sm text-gray-600 break-words">{currentFocus || 'No focus'}</p>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<div className="p-4 bg-gray-50 rounded-lg">
|
|
111
|
+
<h3 className="font-semibold mb-2">High Contrast</h3>
|
|
112
|
+
<Badge variant={highContrastEnabled ? 'default' : 'secondary'}>
|
|
113
|
+
{highContrastEnabled ? 'Enabled' : 'Disabled'}
|
|
114
|
+
</Badge>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<div className="p-4 bg-gray-50 rounded-lg">
|
|
118
|
+
<h3 className="font-semibold mb-2">Motion Reduction</h3>
|
|
119
|
+
<Badge variant={motionReduced ? 'destructive' : 'secondary'}>
|
|
120
|
+
{motionReduced ? 'Enabled' : 'Disabled'}
|
|
121
|
+
</Badge>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
{/* Accessibility Controls */}
|
|
126
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4 mb-6">
|
|
127
|
+
<div className="min-w-0">
|
|
128
|
+
<h3 className="font-semibold mb-3 break-words">Accessibility Controls</h3>
|
|
129
|
+
<div className="space-y-3">
|
|
130
|
+
<Button onClick={toggleHighContrast} variant="outline" className="w-full">
|
|
131
|
+
{highContrastEnabled ? 'Disable' : 'Enable'} High Contrast
|
|
132
|
+
</Button>
|
|
133
|
+
|
|
134
|
+
<Button onClick={toggleMotionReduction} variant="outline" className="w-full">
|
|
135
|
+
{motionReduced ? 'Disable' : 'Enable'} Motion Reduction
|
|
136
|
+
</Button>
|
|
137
|
+
|
|
138
|
+
<Button onClick={testScreenReaderAnnouncement} variant="outline" className="w-full">
|
|
139
|
+
Test Screen Reader Announcement
|
|
140
|
+
</Button>
|
|
141
|
+
|
|
142
|
+
<Button onClick={testFocusManagement} variant="outline" className="w-full">
|
|
143
|
+
Activate Focus Management
|
|
144
|
+
</Button>
|
|
145
|
+
|
|
146
|
+
<Button onClick={testAriaPatterns} variant="outline" className="w-full">
|
|
147
|
+
Test ARIA Patterns
|
|
148
|
+
</Button>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<div className="min-w-0">
|
|
153
|
+
<h3 className="font-semibold mb-3 break-words">Test Interactive Elements</h3>
|
|
154
|
+
<div className="space-y-3">
|
|
155
|
+
<Input
|
|
156
|
+
placeholder="Test input field"
|
|
157
|
+
aria-label="Test input for accessibility"
|
|
158
|
+
aria-describedby="input-description"
|
|
159
|
+
/>
|
|
160
|
+
<p id="input-description" className="text-sm text-gray-500 break-words">
|
|
161
|
+
This input field has proper ARIA labels and descriptions.
|
|
162
|
+
</p>
|
|
163
|
+
|
|
164
|
+
<Button
|
|
165
|
+
id="test-aria-button"
|
|
166
|
+
variant="default"
|
|
167
|
+
aria-describedby="button-description"
|
|
168
|
+
>
|
|
169
|
+
Test Button
|
|
170
|
+
</Button>
|
|
171
|
+
<p id="button-description" className="text-sm text-gray-500 break-words">
|
|
172
|
+
This button will have ARIA patterns applied when you click the test button above.
|
|
173
|
+
</p>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
{/* Accessibility Configuration */}
|
|
179
|
+
<div className="mb-6">
|
|
180
|
+
<h3 className="font-semibold mb-3">Current Accessibility Configuration</h3>
|
|
181
|
+
<div className="bg-blue-50 p-4 rounded-lg border-2 border-blue-300">
|
|
182
|
+
<div className="text-sm text-blue-800">
|
|
183
|
+
<p className="mb-2"><strong>High Contrast:</strong> {accessibilityConfig.highContrast ? '✅ Enabled' : '❌ Disabled'}</p>
|
|
184
|
+
<p className="mb-2"><strong>Reduced Motion:</strong> {accessibilityConfig.reducedMotion ? '✅ Enabled' : '❌ Disabled'}</p>
|
|
185
|
+
<p className="mb-2"><strong>Focus Visible:</strong> {accessibilityConfig.focusVisible ? '✅ Enabled' : '❌ Disabled'}</p>
|
|
186
|
+
<p className="mb-2"><strong>Contrast Target:</strong> {accessibilityConfig.contrast.target}:1 ratio</p>
|
|
187
|
+
<p className="mb-0"><strong>Touch Target Size:</strong> {accessibilityConfig.spacing.touchTarget}</p>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
{/* Recent Announcements */}
|
|
193
|
+
<div>
|
|
194
|
+
<h3 className="font-semibold mb-3">Recent Screen Reader Announcements</h3>
|
|
195
|
+
<div className="bg-gray-50 p-4 rounded-lg max-h-40 overflow-y-auto">
|
|
196
|
+
{announcements.length === 0 ? (
|
|
197
|
+
<p className="text-gray-500 text-sm">No announcements yet. Use the controls above to test.</p>
|
|
198
|
+
) : (
|
|
199
|
+
<div className="space-y-2">
|
|
200
|
+
{announcements.map((announcement, index) => (
|
|
201
|
+
<div key={index} className="text-sm text-gray-700 p-2 bg-white rounded border break-words">
|
|
202
|
+
{announcement}
|
|
203
|
+
</div>
|
|
204
|
+
))}
|
|
205
|
+
</div>
|
|
206
|
+
)}
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
</Card>
|
|
210
|
+
|
|
211
|
+
{/* Accessibility Information */}
|
|
212
|
+
<Card>
|
|
213
|
+
<h3 className="text-xl font-semibold mb-4 break-words">Accessibility Features Overview</h3>
|
|
214
|
+
|
|
215
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
216
|
+
<div className="min-w-0">
|
|
217
|
+
<h4 className="font-semibold mb-2 break-words">High Contrast Support</h4>
|
|
218
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
219
|
+
<li className="break-words">• Automatic system preference detection</li>
|
|
220
|
+
<li className="break-words">• Enhanced color palettes for better visibility</li>
|
|
221
|
+
<li className="break-words">• WCAG AAA contrast ratio compliance</li>
|
|
222
|
+
<li className="break-words">• Border and text emphasis options</li>
|
|
223
|
+
</ul>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<div className="min-w-0">
|
|
227
|
+
<h4 className="font-semibold mb-2 break-words">Motion Reduction</h4>
|
|
228
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
229
|
+
<li className="break-words">• Respects user's motion preferences</li>
|
|
230
|
+
<li className="break-words">• Reduces animation and transition durations</li>
|
|
231
|
+
<li className="break-words">• Maintains essential motion for functionality</li>
|
|
232
|
+
<li className="break-words">• Customizable reduction levels</li>
|
|
233
|
+
</ul>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
<div className="min-w-0">
|
|
237
|
+
<h4 className="font-semibold mb-2 break-words">Focus Management</h4>
|
|
238
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
239
|
+
<li className="break-words">• Comprehensive focus tracking</li>
|
|
240
|
+
<li className="break-words">• Focus trap implementation</li>
|
|
241
|
+
<li className="break-words">• Focus restoration and history</li>
|
|
242
|
+
<li className="break-words">• Keyboard navigation support</li>
|
|
243
|
+
</ul>
|
|
244
|
+
</div>
|
|
245
|
+
|
|
246
|
+
<div className="min-w-0">
|
|
247
|
+
<h4 className="font-semibold mb-2 break-words">Screen Reader Optimization</h4>
|
|
248
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
249
|
+
<li className="break-words">• Live region announcements</li>
|
|
250
|
+
<li className="break-words">• Priority-based messaging</li>
|
|
251
|
+
<li className="break-words">• Context-aware information</li>
|
|
252
|
+
<li className="break-words">• Comprehensive ARIA support</li>
|
|
253
|
+
</ul>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
</Card>
|
|
257
|
+
</div>
|
|
258
|
+
);
|
|
259
|
+
};
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { Card } from './card';
|
|
3
|
+
import { Button } from './button';
|
|
4
|
+
import { Badge } from './badge';
|
|
5
|
+
import { Input } from './input';
|
|
6
|
+
import { accessibilityManager } from '../../themes/accessibility';
|
|
7
|
+
import { screenReaderOptimizer } from '../../themes/screen-reader';
|
|
8
|
+
import { highContrastThemeManager } from '../../themes/high-contrast';
|
|
9
|
+
import { focusManager } from '../../themes/focus-management';
|
|
10
|
+
import { motionReductionManager } from '../../themes/motion-reduction';
|
|
11
|
+
import { ARIAUtils as AriaPatternGenerator } from '../../themes/aria-patterns';
|
|
12
|
+
|
|
13
|
+
interface AccessibilityDemoProps {
|
|
14
|
+
className?;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const AccessibilityDemo= ({ className = '' }) => {
|
|
18
|
+
const [currentFocus, setCurrentFocus] = useState<string>('');
|
|
19
|
+
const [announcements, setAnnouncements] = useState<string[]>([]);
|
|
20
|
+
const [accessibilityConfig, setAccessibilityConfig] = useState(accessibilityManager.getConfig());
|
|
21
|
+
const [highContrastEnabled, setHighContrastEnabled] = useState(highContrastThemeManager.isHighContrastEnabled());
|
|
22
|
+
const [motionReduced, setMotionReduced] = useState(motionReductionManager.isMotionReduced());
|
|
23
|
+
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
// Subscribe to accessibility changes
|
|
26
|
+
const unsubscribeAccessibility = accessibilityManager.subscribe(() => {
|
|
27
|
+
setAccessibilityConfig(accessibilityManager.getConfig());
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Update state periodically since some managers don't have subscribe methods
|
|
31
|
+
const interval = setInterval(() => {
|
|
32
|
+
setHighContrastEnabled(highContrastThemeManager.isHighContrastEnabled());
|
|
33
|
+
setMotionReduced(motionReductionManager.isMotionReduced());
|
|
34
|
+
|
|
35
|
+
const focusInfo = focusManager.getCurrentFocusInfo();
|
|
36
|
+
if (focusInfo.element) {
|
|
37
|
+
setCurrentFocus(focusInfo.element.textContent || focusInfo.element.tagName);
|
|
38
|
+
}
|
|
39
|
+
}, 1000);
|
|
40
|
+
|
|
41
|
+
return () => {
|
|
42
|
+
unsubscribeAccessibility();
|
|
43
|
+
clearInterval(interval);
|
|
44
|
+
};
|
|
45
|
+
}, []);
|
|
46
|
+
|
|
47
|
+
const addAnnouncement = (message) => {
|
|
48
|
+
setAnnouncements(prev => [message, ...prev.slice(0, 9)]);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const toggleHighContrast = () => {
|
|
52
|
+
if (highContrastEnabled) {
|
|
53
|
+
highContrastThemeManager.disable();
|
|
54
|
+
addAnnouncement('High contrast mode disabled');
|
|
55
|
+
} else {
|
|
56
|
+
highContrastThemeManager.enable();
|
|
57
|
+
addAnnouncement('High contrast mode enabled');
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const toggleMotionReduction = () => {
|
|
62
|
+
if (motionReduced) {
|
|
63
|
+
motionReductionManager.disable();
|
|
64
|
+
addAnnouncement('Motion reduction disabled');
|
|
65
|
+
} else {
|
|
66
|
+
motionReductionManager.enable();
|
|
67
|
+
addAnnouncement('Motion reduction enabled');
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const testScreenReaderAnnouncement = () => {
|
|
72
|
+
const message = 'This is a test announcement for screen readers';
|
|
73
|
+
screenReaderOptimizer.announce(message, 'normal');
|
|
74
|
+
addAnnouncement(`Announced}`);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const testFocusManagement = () => {
|
|
78
|
+
const container = document.getElementById('accessibility-demo-container');
|
|
79
|
+
if (container) {
|
|
80
|
+
// Focus management is already active by default
|
|
81
|
+
addAnnouncement('Focus management is active for this container');
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const testAriaPatterns = () => {
|
|
86
|
+
const button = document.getElementById('test-aria-button');
|
|
87
|
+
if (button) {
|
|
88
|
+
const ariaProps = AriaPatternGenerator.generateAriaAttributes({
|
|
89
|
+
disabled,
|
|
90
|
+
readonly,
|
|
91
|
+
required,
|
|
92
|
+
invalid,
|
|
93
|
+
label,
|
|
94
|
+
describedby});
|
|
95
|
+
|
|
96
|
+
Object.entries(ariaProps).forEach(([key, value]) => {
|
|
97
|
+
if (value !== undefined) {
|
|
98
|
+
button.setAttribute(key, String(value));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
addAnnouncement('ARIA patterns applied to test button');
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<div id="accessibility-demo-container" className={`accessibility-demo ${className} max-w-full overflow-hidden`}>
|
|
108
|
+
<Card className="mb-6">
|
|
109
|
+
<h2 className="text-2xl font-bold mb-4 break-words">Accessibility Features Demo</h2>
|
|
110
|
+
<p className="text-gray-600 mb-4 break-words">
|
|
111
|
+
This component demonstrates all the accessibility features implemented in the design system.
|
|
112
|
+
</p>
|
|
113
|
+
|
|
114
|
+
{/* Current Status */}
|
|
115
|
+
<div className="grid grid-cols-1 md="p-4 bg-gray-50 rounded-lg">
|
|
116
|
+
<h3 className="font-semibold mb-2">Current Focus</h3>
|
|
117
|
+
<p className="text-sm text-gray-600 break-words">{currentFocus || 'No focus'}</p>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<div className="p-4 bg-gray-50 rounded-lg">
|
|
121
|
+
<h3 className="font-semibold mb-2">High Contrast</h3>
|
|
122
|
+
<Badge variant={highContrastEnabled ? 'default' }>
|
|
123
|
+
{highContrastEnabled ? 'Enabled' }
|
|
124
|
+
</Badge>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<div className="p-4 bg-gray-50 rounded-lg">
|
|
128
|
+
<h3 className="font-semibold mb-2">Motion Reduction</h3>
|
|
129
|
+
<Badge variant={motionReduced ? 'destructive' }>
|
|
130
|
+
{motionReduced ? 'Enabled' }
|
|
131
|
+
</Badge>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
{/* Accessibility Controls */}
|
|
136
|
+
<div className="grid grid-cols-1 lg="min-w-0">
|
|
137
|
+
<h3 className="font-semibold mb-3 break-words">Accessibility Controls</h3>
|
|
138
|
+
<div className="space-y-3">
|
|
139
|
+
<Button onClick={toggleHighContrast} variant="outline" className="w-full">
|
|
140
|
+
{highContrastEnabled ? 'Disable' } High Contrast
|
|
141
|
+
</Button>
|
|
142
|
+
|
|
143
|
+
<Button onClick={toggleMotionReduction} variant="outline" className="w-full">
|
|
144
|
+
{motionReduced ? 'Disable' } Motion Reduction
|
|
145
|
+
</Button>
|
|
146
|
+
|
|
147
|
+
<Button onClick={testScreenReaderAnnouncement} variant="outline" className="w-full">
|
|
148
|
+
Test Screen Reader Announcement
|
|
149
|
+
</Button>
|
|
150
|
+
|
|
151
|
+
<Button onClick={testFocusManagement} variant="outline" className="w-full">
|
|
152
|
+
Activate Focus Management
|
|
153
|
+
</Button>
|
|
154
|
+
|
|
155
|
+
<Button onClick={testAriaPatterns} variant="outline" className="w-full">
|
|
156
|
+
Test ARIA Patterns
|
|
157
|
+
</Button>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<div className="min-w-0">
|
|
162
|
+
<h3 className="font-semibold mb-3 break-words">Test Interactive Elements</h3>
|
|
163
|
+
<div className="space-y-3">
|
|
164
|
+
<Input
|
|
165
|
+
placeholder="Test input field"
|
|
166
|
+
aria-label="Test input for accessibility"
|
|
167
|
+
aria-describedby="input-description"
|
|
168
|
+
/>
|
|
169
|
+
<p id="input-description" className="text-sm text-gray-500 break-words">
|
|
170
|
+
This input field has proper ARIA labels and descriptions.
|
|
171
|
+
</p>
|
|
172
|
+
|
|
173
|
+
<Button
|
|
174
|
+
id="test-aria-button"
|
|
175
|
+
variant="default"
|
|
176
|
+
aria-describedby="button-description"
|
|
177
|
+
>
|
|
178
|
+
Test Button
|
|
179
|
+
</Button>
|
|
180
|
+
<p id="button-description" className="text-sm text-gray-500 break-words">
|
|
181
|
+
This button will have ARIA patterns applied when you click the test button above.
|
|
182
|
+
</p>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
{/* Accessibility Configuration */}
|
|
188
|
+
<div className="mb-6">
|
|
189
|
+
<h3 className="font-semibold mb-3">Current Accessibility Configuration</h3>
|
|
190
|
+
<div className="bg-blue-50 p-4 rounded-lg border-2 border-blue-300">
|
|
191
|
+
<div className="text-sm text-blue-800">
|
|
192
|
+
<p className="mb-2"><strong>High Contrast}</p>
|
|
193
|
+
<p className="mb-2"><strong>Reduced Motion}</p>
|
|
194
|
+
<p className="mb-2"><strong>Focus Visible}</p>
|
|
195
|
+
<p className="mb-2"><strong>Contrast Target}="mb-0"><strong>Touch Target Size}</p>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
{/* Recent Announcements */}
|
|
201
|
+
<div>
|
|
202
|
+
<h3 className="font-semibold mb-3">Recent Screen Reader Announcements</h3>
|
|
203
|
+
<div className="bg-gray-50 p-4 rounded-lg max-h-40 overflow-y-auto">
|
|
204
|
+
{announcements.length === 0 ? (
|
|
205
|
+
<p className="text-gray-500 text-sm">No announcements yet. Use the controls above to test.</p>
|
|
206
|
+
) ="space-y-2">
|
|
207
|
+
{announcements.map((announcement, index) => (
|
|
208
|
+
<div key={index} className="text-sm text-gray-700 p-2 bg-white rounded border break-words">
|
|
209
|
+
{announcement}
|
|
210
|
+
</div>
|
|
211
|
+
))}
|
|
212
|
+
</div>
|
|
213
|
+
)}
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
</Card>
|
|
217
|
+
|
|
218
|
+
{/* Accessibility Information */}
|
|
219
|
+
<Card>
|
|
220
|
+
<h3 className="text-xl font-semibold mb-4 break-words">Accessibility Features Overview</h3>
|
|
221
|
+
|
|
222
|
+
<div className="grid grid-cols-1 lg="min-w-0">
|
|
223
|
+
<h4 className="font-semibold mb-2 break-words">High Contrast Support</h4>
|
|
224
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
225
|
+
<li className="break-words">• Automatic system preference detection</li>
|
|
226
|
+
<li className="break-words">• Enhanced color palettes for better visibility</li>
|
|
227
|
+
<li className="break-words">• WCAG AAA contrast ratio compliance</li>
|
|
228
|
+
<li className="break-words">• Border and text emphasis options</li>
|
|
229
|
+
</ul>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div className="min-w-0">
|
|
233
|
+
<h4 className="font-semibold mb-2 break-words">Motion Reduction</h4>
|
|
234
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
235
|
+
<li className="break-words">• Respects user's motion preferences</li>
|
|
236
|
+
<li className="break-words">• Reduces animation and transition durations</li>
|
|
237
|
+
<li className="break-words">• Maintains essential motion for functionality</li>
|
|
238
|
+
<li className="break-words">• Customizable reduction levels</li>
|
|
239
|
+
</ul>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
<div className="min-w-0">
|
|
243
|
+
<h4 className="font-semibold mb-2 break-words">Focus Management</h4>
|
|
244
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
245
|
+
<li className="break-words">• Comprehensive focus tracking</li>
|
|
246
|
+
<li className="break-words">• Focus trap implementation</li>
|
|
247
|
+
<li className="break-words">• Focus restoration and history</li>
|
|
248
|
+
<li className="break-words">• Keyboard navigation support</li>
|
|
249
|
+
</ul>
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<div className="min-w-0">
|
|
253
|
+
<h4 className="font-semibold mb-2 break-words">Screen Reader Optimization</h4>
|
|
254
|
+
<ul className="text-sm text-gray-600 space-y-1">
|
|
255
|
+
<li className="break-words">• Live region announcements</li>
|
|
256
|
+
<li className="break-words">• Priority-based messaging</li>
|
|
257
|
+
<li className="break-words">• Context-aware information</li>
|
|
258
|
+
<li className="break-words">• Comprehensive ARIA support</li>
|
|
259
|
+
</ul>
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
</Card>
|
|
263
|
+
</div>
|
|
264
|
+
);
|
|
265
|
+
};
|