@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.11

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.
Files changed (306) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.esm.js +30 -24
  3. package/dist/components/ui/accessibility-demo.js +30 -24
  4. package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
  5. package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
  6. package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
  7. package/dist/components/ui/advanced-transition-system-demo.js +110 -64
  8. package/dist/components/ui/advanced-transition-system.esm.js +166 -122
  9. package/dist/components/ui/advanced-transition-system.js +166 -122
  10. package/dist/components/ui/animation/animated-container.esm.js +52 -29
  11. package/dist/components/ui/animation/animated-container.js +52 -29
  12. package/dist/components/ui/animation/staggered-container.esm.js +18 -9
  13. package/dist/components/ui/animation/staggered-container.js +18 -9
  14. package/dist/components/ui/animation-demo.esm.js +67 -35
  15. package/dist/components/ui/animation-demo.js +67 -35
  16. package/dist/components/ui/badge.esm.js +9 -6
  17. package/dist/components/ui/badge.js +9 -6
  18. package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
  19. package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
  20. package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
  21. package/dist/components/ui/border-radius-shadow-demo.js +23 -12
  22. package/dist/components/ui/button.esm.js +8 -2
  23. package/dist/components/ui/button.js +8 -2
  24. package/dist/components/ui/card.esm.js +33 -8
  25. package/dist/components/ui/card.js +33 -8
  26. package/dist/components/ui/checkbox.esm.js +3 -3
  27. package/dist/components/ui/checkbox.js +3 -3
  28. package/dist/components/ui/color-preview.esm.js +68 -45
  29. package/dist/components/ui/color-preview.js +68 -45
  30. package/dist/components/ui/data-display/chart.esm.js +112 -84
  31. package/dist/components/ui/data-display/chart.js +112 -84
  32. package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
  33. package/dist/components/ui/data-display/data-grid-simple.js +1 -1
  34. package/dist/components/ui/data-display/data-grid.esm.js +80 -67
  35. package/dist/components/ui/data-display/data-grid.js +80 -67
  36. package/dist/components/ui/data-display/list.esm.js +53 -45
  37. package/dist/components/ui/data-display/list.js +53 -45
  38. package/dist/components/ui/data-display/table.esm.js +62 -54
  39. package/dist/components/ui/data-display/table.js +62 -54
  40. package/dist/components/ui/data-display/timeline.esm.js +39 -34
  41. package/dist/components/ui/data-display/timeline.js +39 -34
  42. package/dist/components/ui/data-display/tree.esm.js +116 -84
  43. package/dist/components/ui/data-display/tree.js +116 -84
  44. package/dist/components/ui/data-display/types.esm.js +389 -364
  45. package/dist/components/ui/data-display/types.js +389 -364
  46. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
  47. package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
  48. package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
  49. package/dist/components/ui/enterprise-mobile-experience.js +124 -73
  50. package/dist/components/ui/feedback/alert.esm.js +22 -15
  51. package/dist/components/ui/feedback/alert.js +22 -15
  52. package/dist/components/ui/feedback/progress.esm.js +47 -24
  53. package/dist/components/ui/feedback/progress.js +47 -24
  54. package/dist/components/ui/feedback/skeleton.esm.js +39 -29
  55. package/dist/components/ui/feedback/skeleton.js +39 -29
  56. package/dist/components/ui/feedback/toast.esm.js +62 -38
  57. package/dist/components/ui/feedback/toast.js +62 -38
  58. package/dist/components/ui/feedback/types.esm.js +83 -83
  59. package/dist/components/ui/feedback/types.js +83 -83
  60. package/dist/components/ui/font-preview.esm.js +41 -39
  61. package/dist/components/ui/font-preview.js +41 -39
  62. package/dist/components/ui/form-demo.esm.js +150 -113
  63. package/dist/components/ui/form-demo.js +150 -113
  64. package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
  65. package/dist/components/ui/hardware-acceleration-demo.js +137 -87
  66. package/dist/components/ui/input.esm.js +4 -1
  67. package/dist/components/ui/input.js +4 -1
  68. package/dist/components/ui/layout-demo.esm.js +81 -56
  69. package/dist/components/ui/layout-demo.js +81 -56
  70. package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
  71. package/dist/components/ui/layouts/adaptive-layout.js +27 -8
  72. package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
  73. package/dist/components/ui/layouts/desktop-layout.js +39 -19
  74. package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
  75. package/dist/components/ui/layouts/mobile-layout.js +19 -9
  76. package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
  77. package/dist/components/ui/layouts/tablet-layout.js +28 -14
  78. package/dist/components/ui/mobile-form-validation.esm.js +120 -87
  79. package/dist/components/ui/mobile-form-validation.js +120 -87
  80. package/dist/components/ui/mobile-input-demo.esm.js +19 -13
  81. package/dist/components/ui/mobile-input-demo.js +19 -13
  82. package/dist/components/ui/mobile-input.esm.js +185 -120
  83. package/dist/components/ui/mobile-input.js +185 -120
  84. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
  85. package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
  86. package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
  87. package/dist/components/ui/navigation/breadcrumb.js +17 -14
  88. package/dist/components/ui/navigation/index.esm.js +0 -1
  89. package/dist/components/ui/navigation/index.js +0 -1
  90. package/dist/components/ui/navigation/menu.esm.js +49 -35
  91. package/dist/components/ui/navigation/menu.js +49 -35
  92. package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
  93. package/dist/components/ui/navigation/navigation-demo.js +81 -74
  94. package/dist/components/ui/navigation/pagination.esm.js +62 -50
  95. package/dist/components/ui/navigation/pagination.js +62 -50
  96. package/dist/components/ui/navigation/sidebar.esm.js +56 -42
  97. package/dist/components/ui/navigation/sidebar.js +56 -42
  98. package/dist/components/ui/navigation/stepper.esm.js +34 -23
  99. package/dist/components/ui/navigation/stepper.js +34 -23
  100. package/dist/components/ui/navigation/tabs.esm.js +32 -21
  101. package/dist/components/ui/navigation/tabs.js +32 -21
  102. package/dist/components/ui/navigation/types.esm.js +196 -195
  103. package/dist/components/ui/navigation/types.js +196 -195
  104. package/dist/components/ui/overlay/backdrop.esm.js +17 -16
  105. package/dist/components/ui/overlay/backdrop.js +17 -16
  106. package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
  107. package/dist/components/ui/overlay/focus-manager.js +21 -19
  108. package/dist/components/ui/overlay/index.esm.js +0 -2
  109. package/dist/components/ui/overlay/index.js +0 -2
  110. package/dist/components/ui/overlay/modal.esm.js +38 -34
  111. package/dist/components/ui/overlay/modal.js +38 -34
  112. package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
  113. package/dist/components/ui/overlay/overlay-manager.js +25 -20
  114. package/dist/components/ui/overlay/popover.esm.js +74 -58
  115. package/dist/components/ui/overlay/popover.js +74 -58
  116. package/dist/components/ui/overlay/portal.esm.js +7 -7
  117. package/dist/components/ui/overlay/portal.js +7 -7
  118. package/dist/components/ui/overlay/tooltip.esm.js +54 -39
  119. package/dist/components/ui/overlay/tooltip.js +54 -39
  120. package/dist/components/ui/overlay/types.esm.js +132 -131
  121. package/dist/components/ui/overlay/types.js +132 -131
  122. package/dist/components/ui/performance-demo.esm.js +135 -88
  123. package/dist/components/ui/performance-demo.js +135 -88
  124. package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
  125. package/dist/components/ui/semantic-input-system-demo.js +117 -80
  126. package/dist/components/ui/theme-customizer.esm.js +84 -52
  127. package/dist/components/ui/theme-customizer.js +84 -52
  128. package/dist/components/ui/theme-preview.esm.js +95 -43
  129. package/dist/components/ui/theme-preview.js +95 -43
  130. package/dist/components/ui/theme-switcher.esm.js +70 -44
  131. package/dist/components/ui/theme-switcher.js +70 -44
  132. package/dist/components/ui/theme-toggle.esm.js +3 -3
  133. package/dist/components/ui/theme-toggle.js +3 -3
  134. package/dist/components/ui/token-demo.esm.js +33 -21
  135. package/dist/components/ui/token-demo.js +33 -21
  136. package/dist/components/ui/touch-demo.esm.js +102 -73
  137. package/dist/components/ui/touch-demo.js +102 -73
  138. package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
  139. package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
  140. package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
  141. package/dist/components/ui/touch-friendly-interface.js +85 -61
  142. package/dist/hooks/use-accessibility-support.esm.js +115 -85
  143. package/dist/hooks/use-accessibility-support.js +115 -85
  144. package/dist/hooks/use-adaptive-layout.esm.js +56 -33
  145. package/dist/hooks/use-adaptive-layout.js +56 -33
  146. package/dist/hooks/use-advanced-patterns.esm.js +57 -42
  147. package/dist/hooks/use-advanced-patterns.js +57 -42
  148. package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
  149. package/dist/hooks/use-advanced-transition-system.js +112 -71
  150. package/dist/hooks/use-animation-profile.esm.js +63 -34
  151. package/dist/hooks/use-animation-profile.js +63 -34
  152. package/dist/hooks/use-battery-animations.esm.js +80 -55
  153. package/dist/hooks/use-battery-animations.js +80 -55
  154. package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
  155. package/dist/hooks/use-battery-conscious-loading.js +166 -123
  156. package/dist/hooks/use-battery-optimization.esm.js +78 -55
  157. package/dist/hooks/use-battery-optimization.js +78 -55
  158. package/dist/hooks/use-battery-status.esm.js +73 -51
  159. package/dist/hooks/use-battery-status.js +73 -51
  160. package/dist/hooks/use-component-performance.esm.js +62 -47
  161. package/dist/hooks/use-component-performance.js +62 -47
  162. package/dist/hooks/use-device-loading-states.esm.js +152 -109
  163. package/dist/hooks/use-device-loading-states.js +152 -109
  164. package/dist/hooks/use-device.esm.js +25 -14
  165. package/dist/hooks/use-device.js +25 -14
  166. package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
  167. package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
  168. package/dist/hooks/use-form-feedback.esm.js +124 -81
  169. package/dist/hooks/use-form-feedback.js +124 -81
  170. package/dist/hooks/use-form-performance.esm.js +127 -92
  171. package/dist/hooks/use-form-performance.js +127 -92
  172. package/dist/hooks/use-frame-rate.esm.js +56 -37
  173. package/dist/hooks/use-frame-rate.js +56 -37
  174. package/dist/hooks/use-gestures.esm.js +96 -72
  175. package/dist/hooks/use-gestures.js +96 -72
  176. package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
  177. package/dist/hooks/use-hardware-acceleration.js +65 -37
  178. package/dist/hooks/use-input-accessibility.esm.js +157 -119
  179. package/dist/hooks/use-input-accessibility.js +157 -119
  180. package/dist/hooks/use-input-performance.esm.js +139 -104
  181. package/dist/hooks/use-input-performance.js +139 -104
  182. package/dist/hooks/use-layout-performance.esm.js +50 -29
  183. package/dist/hooks/use-layout-performance.js +50 -29
  184. package/dist/hooks/use-loading-accessibility.esm.js +209 -169
  185. package/dist/hooks/use-loading-accessibility.js +209 -169
  186. package/dist/hooks/use-loading-performance.esm.js +117 -93
  187. package/dist/hooks/use-loading-performance.js +117 -93
  188. package/dist/hooks/use-memory-usage.esm.js +57 -38
  189. package/dist/hooks/use-memory-usage.js +57 -38
  190. package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
  191. package/dist/hooks/use-mobile-form-layout.js +111 -74
  192. package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
  193. package/dist/hooks/use-mobile-form-validation.js +211 -144
  194. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
  195. package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
  196. package/dist/hooks/use-mobile-layout.esm.js +73 -51
  197. package/dist/hooks/use-mobile-layout.js +73 -51
  198. package/dist/hooks/use-mobile-optimization.esm.js +72 -44
  199. package/dist/hooks/use-mobile-optimization.js +72 -44
  200. package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
  201. package/dist/hooks/use-mobile-skeleton.js +97 -64
  202. package/dist/hooks/use-mobile-touch.esm.js +128 -93
  203. package/dist/hooks/use-mobile-touch.js +128 -93
  204. package/dist/hooks/use-performance-throttling.esm.js +72 -48
  205. package/dist/hooks/use-performance-throttling.js +72 -48
  206. package/dist/hooks/use-performance.esm.js +90 -52
  207. package/dist/hooks/use-performance.js +90 -52
  208. package/dist/hooks/use-reusable-architecture.esm.js +94 -65
  209. package/dist/hooks/use-reusable-architecture.js +94 -65
  210. package/dist/hooks/use-semantic-input-types.esm.js +166 -124
  211. package/dist/hooks/use-semantic-input-types.js +166 -124
  212. package/dist/hooks/use-semantic-input.esm.js +178 -126
  213. package/dist/hooks/use-semantic-input.js +178 -126
  214. package/dist/hooks/use-tablet-layout.esm.js +67 -38
  215. package/dist/hooks/use-tablet-layout.js +67 -38
  216. package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
  217. package/dist/hooks/use-touch-friendly-input.js +193 -149
  218. package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
  219. package/dist/hooks/use-touch-friendly-interface.js +99 -67
  220. package/dist/hooks/use-touch-optimization.esm.js +99 -72
  221. package/dist/hooks/use-touch-optimization.js +99 -72
  222. package/dist/index.esm.js +157 -281
  223. package/dist/index.js +157 -281
  224. package/dist/lib/utils.esm.js +1 -1
  225. package/dist/lib/utils.js +1 -1
  226. package/dist/plugins/theme-css-generator.esm.js +104 -55
  227. package/dist/plugins/theme-css-generator.js +104 -55
  228. package/dist/provider.esm.js +4 -4
  229. package/dist/provider.js +4 -4
  230. package/dist/styles.css +1 -1
  231. package/dist/theme.esm.js +633 -468
  232. package/dist/theme.js +633 -468
  233. package/dist/themes/ThemeContext.esm.js +15 -15
  234. package/dist/themes/ThemeContext.js +15 -15
  235. package/dist/themes/ThemeProvider.esm.js +25 -22
  236. package/dist/themes/ThemeProvider.js +25 -22
  237. package/dist/themes/accessibility.esm.js +147 -108
  238. package/dist/themes/accessibility.js +147 -108
  239. package/dist/themes/aria-patterns.esm.js +198 -162
  240. package/dist/themes/aria-patterns.js +198 -162
  241. package/dist/themes/base-themes.esm.js +14 -11
  242. package/dist/themes/base-themes.js +14 -11
  243. package/dist/themes/colorManager.esm.js +101 -83
  244. package/dist/themes/colorManager.js +101 -83
  245. package/dist/themes/examples/dark-theme.esm.js +133 -103
  246. package/dist/themes/examples/dark-theme.js +133 -103
  247. package/dist/themes/examples/minimal-theme.esm.js +83 -61
  248. package/dist/themes/examples/minimal-theme.js +83 -61
  249. package/dist/themes/focus-management.esm.js +202 -143
  250. package/dist/themes/focus-management.js +202 -143
  251. package/dist/themes/fontLoader.esm.js +28 -19
  252. package/dist/themes/fontLoader.js +28 -19
  253. package/dist/themes/high-contrast.esm.js +152 -104
  254. package/dist/themes/high-contrast.js +152 -104
  255. package/dist/themes/index.esm.js +1 -1
  256. package/dist/themes/index.js +1 -1
  257. package/dist/themes/inheritance.esm.js +35 -27
  258. package/dist/themes/inheritance.js +35 -27
  259. package/dist/themes/keyboard-navigation.esm.js +152 -123
  260. package/dist/themes/keyboard-navigation.js +152 -123
  261. package/dist/themes/motion-reduction.esm.js +193 -133
  262. package/dist/themes/motion-reduction.js +193 -133
  263. package/dist/themes/navigation.esm.js +146 -146
  264. package/dist/themes/navigation.js +146 -146
  265. package/dist/themes/screen-reader.esm.js +159 -94
  266. package/dist/themes/screen-reader.js +159 -94
  267. package/dist/themes/systemThemeDetector.esm.js +42 -34
  268. package/dist/themes/systemThemeDetector.js +42 -34
  269. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  270. package/dist/themes/themeCSSUpdater.js +21 -9
  271. package/dist/themes/themePersistence.esm.js +68 -47
  272. package/dist/themes/themePersistence.js +68 -47
  273. package/dist/themes/themes/stan-design.esm.js +633 -468
  274. package/dist/themes/themes/stan-design.js +633 -468
  275. package/dist/themes/types.esm.js +301 -287
  276. package/dist/themes/types.js +301 -287
  277. package/dist/themes/useSystemTheme.esm.js +4 -4
  278. package/dist/themes/useSystemTheme.js +4 -4
  279. package/dist/themes/useTheme.esm.js +4 -4
  280. package/dist/themes/useTheme.js +4 -4
  281. package/dist/themes/validation.esm.js +128 -77
  282. package/dist/themes/validation.js +128 -77
  283. package/dist/tokens/index.esm.js +1 -2
  284. package/dist/tokens/index.js +1 -2
  285. package/dist/tokens/tokenExporter.esm.js +87 -61
  286. package/dist/tokens/tokenExporter.js +87 -61
  287. package/dist/tokens/tokenGenerator.esm.js +86 -77
  288. package/dist/tokens/tokenGenerator.js +86 -77
  289. package/dist/tokens/tokenManager.esm.js +64 -51
  290. package/dist/tokens/tokenManager.js +64 -51
  291. package/dist/tokens/tokenValidator.esm.js +193 -147
  292. package/dist/tokens/tokenValidator.js +193 -147
  293. package/dist/tokens/types.esm.js +49 -35
  294. package/dist/tokens/types.js +49 -35
  295. package/dist/utils/bundle-analyzer.esm.js +83 -65
  296. package/dist/utils/bundle-analyzer.js +83 -65
  297. package/dist/utils/bundle-splitting.esm.js +142 -117
  298. package/dist/utils/bundle-splitting.js +142 -117
  299. package/dist/utils/lazy-loading.esm.js +132 -106
  300. package/dist/utils/lazy-loading.js +132 -106
  301. package/dist/utils/performance-monitor.esm.js +170 -129
  302. package/dist/utils/performance-monitor.js +170 -129
  303. package/dist/utils/tree-shaking.esm.js +69 -61
  304. package/dist/utils/tree-shaking.js +69 -61
  305. package/package.json +1 -1
  306. package/src/index.ts +146 -146
@@ -1,27 +1,51 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface InputAccessibilityConfig {
4
- enableARIA?, string>
5
- focusTrap?}
4
+ enableARIA?: boolean
5
+ enableKeyboardNavigation?: boolean
6
+ enableScreenReader?: boolean
7
+ enableFocusManagement?: boolean
8
+ enableHighContrast?: boolean
9
+ enableReducedMotion?: boolean
10
+ enableVoiceControl?: boolean
11
+ ariaLabels?: Record<string, string>
12
+ focusTrap?: boolean
13
+ skipLinks?: boolean
14
+ }
6
15
 
7
16
  export interface AccessibilityFeature {
8
- id}
17
+ id: string
18
+ name: string
19
+ type: 'aria' | 'keyboard' | 'screen-reader' | 'focus' | 'contrast' | 'motion' | 'voice'
20
+ enabled: boolean
21
+ impact: 'low' | 'medium' | 'high'
22
+ description: string
23
+ ariaLabel?: string
24
+ keyboardShortcut?: string
25
+ }
9
26
 
10
27
  export interface AccessibilityState {
11
- isHighContrast]
28
+ isHighContrast: boolean
29
+ isReducedMotion: boolean
30
+ isVoiceControl: boolean
31
+ isKeyboardNavigating: boolean
32
+ isScreenReaderActive: boolean
33
+ focusIndex: number
34
+ accessibilityScore: number
35
+ activeFeatures: string[]
12
36
  }
13
37
 
14
38
  export interface InputAccessibilityCallbacks {
15
- onAccessibilityFeatureEnabled?) => void
16
- onKeyboardNavigationEnabled?) => void
17
- onScreenReaderOptimized?) => void
18
- onFocusManagementEnhanced?) => void
19
- onAccessibilityScoreChanged?) => void
39
+ onAccessibilityFeatureEnabled?: (feature: AccessibilityFeature) => void
40
+ onKeyboardNavigationEnabled?: (feature: string) => void
41
+ onScreenReaderOptimized?: (optimization: string) => void
42
+ onFocusManagementEnhanced?: (feature: string) => void
43
+ onAccessibilityScoreChanged?: (score: number) => void
20
44
  }
21
45
 
22
46
  export const useInputAccessibility = (
23
- config= {},
24
- callbacks= {}
47
+ config: InputAccessibilityConfig = {},
48
+ callbacks: InputAccessibilityCallbacks = {}
25
49
  ) => {
26
50
  const {
27
51
  enableARIA = true,
@@ -36,14 +60,14 @@ export const useInputAccessibility = (
36
60
 
37
61
  const [accessibilityFeatures, setAccessibilityFeatures] = useState<AccessibilityFeature[]>([])
38
62
  const [accessibilityState, setAccessibilityState] = useState<AccessibilityState>({
39
- isHighContrast,
40
- isReducedMotion,
41
- isVoiceControl,
42
- isKeyboardNavigating,
43
- isScreenReaderActive,
44
- focusIndex,
45
- accessibilityScore,
46
- activeFeatures]
63
+ isHighContrast: false,
64
+ isReducedMotion: false,
65
+ isVoiceControl: false,
66
+ isKeyboardNavigating: false,
67
+ isScreenReaderActive: false,
68
+ focusIndex: 0,
69
+ accessibilityScore: 0,
70
+ activeFeatures: []
47
71
  })
48
72
 
49
73
  const [isEnhancing, setIsEnhancing] = useState(false)
@@ -56,97 +80,106 @@ export const useInputAccessibility = (
56
80
 
57
81
  // Initialize accessibility features
58
82
  const initializeAccessibilityFeatures = useCallback(() => {
59
- const features] = [
83
+ const features: AccessibilityFeature[] = [
60
84
  {
61
- id,
62
- name,
63
- type,
64
- enabled,
65
- impact,
66
- description,
67
- ariaLabel},
85
+ id: 'aria-1',
86
+ name: 'ARIA Labels',
87
+ type: 'aria',
88
+ enabled: enableARIA,
89
+ impact: 'high',
90
+ description: 'Enhanced ARIA labels for screen readers',
91
+ ariaLabel: 'Enhanced accessibility labels'
92
+ },
68
93
  {
69
- id,
70
- name,
71
- type,
72
- enabled,
73
- impact,
74
- description,
75
- ariaLabel},
94
+ id: 'aria-2',
95
+ name: 'ARIA Descriptions',
96
+ type: 'aria',
97
+ enabled: enableARIA,
98
+ impact: 'medium',
99
+ description: 'Detailed ARIA descriptions for complex inputs',
100
+ ariaLabel: 'Detailed input descriptions'
101
+ },
76
102
  {
77
- id,
78
- name,
79
- type,
80
- enabled,
81
- impact,
82
- description,
83
- keyboardShortcut, Shift+Tab, Arrow keys'
103
+ id: 'keyboard-1',
104
+ name: 'Keyboard Navigation',
105
+ type: 'keyboard',
106
+ enabled: enableKeyboardNavigation,
107
+ impact: 'high',
108
+ description: 'Full keyboard navigation support',
109
+ keyboardShortcut: 'Tab, Shift+Tab, Arrow keys'
84
110
  },
85
111
  {
86
- id,
87
- name,
88
- type,
89
- enabled,
90
- impact,
91
- description,
92
- keyboardShortcut, Ctrl+Z, etc.'
112
+ id: 'keyboard-2',
113
+ name: 'Keyboard Shortcuts',
114
+ type: 'keyboard',
115
+ enabled: enableKeyboardNavigation,
116
+ impact: 'medium',
117
+ description: 'Custom keyboard shortcuts for common actions',
118
+ keyboardShortcut: 'Ctrl+S, Ctrl+Z, etc.'
93
119
  },
94
120
  {
95
- id,
96
- name,
97
- type,
98
- enabled,
99
- impact,
100
- description,
101
- ariaLabel},
121
+ id: 'screen-reader-1',
122
+ name: 'Screen Reader Support',
123
+ type: 'screen-reader',
124
+ enabled: enableScreenReader,
125
+ impact: 'high',
126
+ description: 'Optimized screen reader compatibility',
127
+ ariaLabel: 'Screen reader optimized'
128
+ },
102
129
  {
103
- id,
104
- name,
105
- type,
106
- enabled,
107
- impact,
108
- description,
109
- ariaLabel},
130
+ id: 'screen-reader-2',
131
+ name: 'Live Regions',
132
+ type: 'screen-reader',
133
+ enabled: enableScreenReader,
134
+ impact: 'medium',
135
+ description: 'Live regions for dynamic content updates',
136
+ ariaLabel: 'Live content updates'
137
+ },
110
138
  {
111
- id,
112
- name,
113
- type,
114
- enabled,
115
- impact,
116
- description,
117
- ariaLabel},
139
+ id: 'focus-1',
140
+ name: 'Focus Management',
141
+ type: 'focus',
142
+ enabled: enableFocusManagement,
143
+ impact: 'high',
144
+ description: 'Enhanced focus management and visible focus indicators',
145
+ ariaLabel: 'Focus management'
146
+ },
118
147
  {
119
- id,
120
- name,
121
- type,
122
- enabled,
123
- impact,
124
- description,
125
- ariaLabel},
148
+ id: 'focus-2',
149
+ name: 'Focus Trap',
150
+ type: 'focus',
151
+ enabled: enableFocusManagement && focusTrap,
152
+ impact: 'medium',
153
+ description: 'Focus trap for modal dialogs and overlays',
154
+ ariaLabel: 'Focus containment'
155
+ },
126
156
  {
127
- id,
128
- name,
129
- type,
130
- enabled,
131
- impact,
132
- description,
133
- ariaLabel},
157
+ id: 'contrast-1',
158
+ name: 'High Contrast',
159
+ type: 'contrast',
160
+ enabled: enableHighContrast,
161
+ impact: 'medium',
162
+ description: 'High contrast mode support',
163
+ ariaLabel: 'High contrast support'
164
+ },
134
165
  {
135
- id,
136
- name,
137
- type,
138
- enabled,
139
- impact,
140
- description,
141
- ariaLabel},
166
+ id: 'motion-1',
167
+ name: 'Reduced Motion',
168
+ type: 'motion',
169
+ enabled: enableReducedMotion,
170
+ impact: 'medium',
171
+ description: 'Reduced motion preference support',
172
+ ariaLabel: 'Reduced motion support'
173
+ },
142
174
  {
143
- id,
144
- name,
145
- type,
146
- enabled,
147
- impact,
148
- description,
149
- ariaLabel}
175
+ id: 'voice-1',
176
+ name: 'Voice Control',
177
+ type: 'voice',
178
+ enabled: enableVoiceControl,
179
+ impact: 'low',
180
+ description: 'Voice control and speech recognition support',
181
+ ariaLabel: 'Voice control support'
182
+ }
150
183
  ]
151
184
 
152
185
  setAccessibilityFeatures(features)
@@ -157,34 +190,38 @@ export const useInputAccessibility = (
157
190
  const monitorSystemPreferences = useCallback(() => {
158
191
  // Monitor reduced motion preference
159
192
  if (enableReducedMotion) {
160
- motionQueryRef.current = window.matchMedia('(prefers-reduced-motion)')
161
- const handleMotionChange = (e) => {
193
+ motionQueryRef.current = window.matchMedia('(prefers-reduced-motion: reduce)')
194
+ const handleMotionChange = (e: MediaQueryListEvent) => {
162
195
  setAccessibilityState(prev => ({
163
196
  ...prev,
164
- isReducedMotion}))
197
+ isReducedMotion: e.matches
198
+ }))
165
199
  }
166
200
  motionQueryRef.current.addEventListener('change', handleMotionChange)
167
201
 
168
202
  // Set initial state
169
203
  setAccessibilityState(prev => ({
170
204
  ...prev,
171
- isReducedMotion}))
205
+ isReducedMotion: motionQueryRef.current?.matches || false
206
+ }))
172
207
  }
173
208
 
174
209
  // Monitor high contrast preference
175
210
  if (enableHighContrast) {
176
- contrastQueryRef.current = window.matchMedia('(prefers-contrast)')
177
- const handleContrastChange = (e) => {
211
+ contrastQueryRef.current = window.matchMedia('(prefers-contrast: high)')
212
+ const handleContrastChange = (e: MediaQueryListEvent) => {
178
213
  setAccessibilityState(prev => ({
179
214
  ...prev,
180
- isHighContrast}))
215
+ isHighContrast: e.matches
216
+ }))
181
217
  }
182
218
  contrastQueryRef.current.addEventListener('change', handleContrastChange)
183
219
 
184
220
  // Set initial state
185
221
  setAccessibilityState(prev => ({
186
222
  ...prev,
187
- isHighContrast}))
223
+ isHighContrast: contrastQueryRef.current?.matches || false
224
+ }))
188
225
  }
189
226
 
190
227
  // Monitor voice control preference (simulated)
@@ -193,7 +230,7 @@ export const useInputAccessibility = (
193
230
  setTimeout(() => {
194
231
  setAccessibilityState(prev => ({
195
232
  ...prev,
196
- isVoiceControl) > 0.7 // 30% chance of voice control being active
233
+ isVoiceControl: Math.random() > 0.7 // 30% chance of voice control being active
197
234
  }))
198
235
  }, 1000)
199
236
  }
@@ -218,12 +255,13 @@ export const useInputAccessibility = (
218
255
 
219
256
  ariaEnhancements.forEach(enhancement => {
220
257
  callbacks.onAccessibilityFeatureEnabled?.({
221
- id,
222
- name,
223
- type,
224
- enabled,
225
- impact,
226
- description})
258
+ id: 'aria-enhancement',
259
+ name: 'ARIA Enhancement',
260
+ type: 'aria',
261
+ enabled: true,
262
+ impact: 'high',
263
+ description: enhancement
264
+ })
227
265
  })
228
266
  }, 200)
229
267
  }, [enableARIA, callbacks])
@@ -320,7 +358,7 @@ export const useInputAccessibility = (
320
358
 
321
359
  setAccessibilityState(prev => ({
322
360
  ...prev,
323
- accessibilityScore)
361
+ accessibilityScore: Math.round(score)
324
362
  }))
325
363
 
326
364
  callbacks.onAccessibilityScoreChanged?.(score)
@@ -337,7 +375,7 @@ export const useInputAccessibility = (
337
375
 
338
376
  // Get accessibility recommendations
339
377
  const getAccessibilityRecommendations = useCallback(() => {
340
- const recommendations] = []
378
+ const recommendations: string[] = []
341
379
 
342
380
  if (accessibilityState.accessibilityScore < 70) {
343
381
  recommendations.push('Accessibility score is low, consider enabling more features')
@@ -404,12 +442,12 @@ export const useInputAccessibility = (
404
442
  autoEnhanceAccessibility,
405
443
 
406
444
  // Utility functions
407
- isFeatureEnabled) => accessibilityFeatures.find(f => f.id === featureId)?.enabled || false,
408
- getFeatureByName) => accessibilityFeatures.find(f => f.name.toLowerCase().includes(name.toLowerCase())),
409
- getAccessibilityScore) => accessibilityState.accessibilityScore,
410
- isAccessibilityOptimal) => accessibilityState.accessibilityScore >= 80,
445
+ isFeatureEnabled: (featureId: string) => accessibilityFeatures.find(f => f.id === featureId)?.enabled || false,
446
+ getFeatureByName: (name: string) => accessibilityFeatures.find(f => f.name.toLowerCase().includes(name.toLowerCase())),
447
+ getAccessibilityScore: () => accessibilityState.accessibilityScore,
448
+ isAccessibilityOptimal: () => accessibilityState.accessibilityScore >= 80,
411
449
  getAccessibilityRecommendations,
412
- clearEnhancements) => setEnhancements([])
450
+ clearEnhancements: () => setEnhancements([])
413
451
  }
414
452
  }
415
453