@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
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  All notable changes to the stan-design theme package will be documented in this file.
4
4
 
5
- ## [0.2.9] - 2025-10-02
5
+ ## [0.2.11] - 2025-10-02
6
6
 
7
7
  ### Added
8
8
  - Initial release of stan-design theme package
@@ -11,10 +11,10 @@ import { motionReductionManager } from '../../themes/motion-reduction';
11
11
  import { ARIAUtils as AriaPatternGenerator } from '../../themes/aria-patterns';
12
12
 
13
13
  interface AccessibilityDemoProps {
14
- className?;
14
+ className?: string;
15
15
  }
16
16
 
17
- export const AccessibilityDemo= ({ className = '' }) => {
17
+ export const AccessibilityDemo: React.FC<AccessibilityDemoProps> = ({ className = '' }) => {
18
18
  const [currentFocus, setCurrentFocus] = useState<string>('');
19
19
  const [announcements, setAnnouncements] = useState<string[]>([]);
20
20
  const [accessibilityConfig, setAccessibilityConfig] = useState(accessibilityManager.getConfig());
@@ -44,7 +44,7 @@ export const AccessibilityDemo= ({ className = '' }) => {
44
44
  };
45
45
  }, []);
46
46
 
47
- const addAnnouncement = (message) => {
47
+ const addAnnouncement = (message: string) => {
48
48
  setAnnouncements(prev => [message, ...prev.slice(0, 9)]);
49
49
  };
50
50
 
@@ -71,7 +71,7 @@ export const AccessibilityDemo= ({ className = '' }) => {
71
71
  const testScreenReaderAnnouncement = () => {
72
72
  const message = 'This is a test announcement for screen readers';
73
73
  screenReaderOptimizer.announce(message, 'normal');
74
- addAnnouncement(`Announced}`);
74
+ addAnnouncement(`Announced: ${message}`);
75
75
  };
76
76
 
77
77
  const testFocusManagement = () => {
@@ -86,12 +86,13 @@ export const AccessibilityDemo= ({ className = '' }) => {
86
86
  const button = document.getElementById('test-aria-button');
87
87
  if (button) {
88
88
  const ariaProps = AriaPatternGenerator.generateAriaAttributes({
89
- disabled,
90
- readonly,
91
- required,
92
- invalid,
93
- label,
94
- describedby});
89
+ disabled: false,
90
+ readonly: false,
91
+ required: true,
92
+ invalid: false,
93
+ label: 'Test button for ARIA patterns',
94
+ describedby: 'button-description'
95
+ });
95
96
 
96
97
  Object.entries(ariaProps).forEach(([key, value]) => {
97
98
  if (value !== undefined) {
@@ -112,36 +113,38 @@ export const AccessibilityDemo= ({ className = '' }) => {
112
113
  </p>
113
114
 
114
115
  {/* Current Status */}
115
- <div className="grid grid-cols-1 md="p-4 bg-gray-50 rounded-lg">
116
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
117
+ <div className="p-4 bg-gray-50 rounded-lg">
116
118
  <h3 className="font-semibold mb-2">Current Focus</h3>
117
119
  <p className="text-sm text-gray-600 break-words">{currentFocus || 'No focus'}</p>
118
120
  </div>
119
121
 
120
122
  <div className="p-4 bg-gray-50 rounded-lg">
121
123
  <h3 className="font-semibold mb-2">High Contrast</h3>
122
- <Badge variant={highContrastEnabled ? 'default' }>
123
- {highContrastEnabled ? 'Enabled' }
124
+ <Badge variant={highContrastEnabled ? 'default' : 'secondary'}>
125
+ {highContrastEnabled ? 'Enabled' : 'Disabled'}
124
126
  </Badge>
125
127
  </div>
126
128
 
127
129
  <div className="p-4 bg-gray-50 rounded-lg">
128
130
  <h3 className="font-semibold mb-2">Motion Reduction</h3>
129
- <Badge variant={motionReduced ? 'destructive' }>
130
- {motionReduced ? 'Enabled' }
131
+ <Badge variant={motionReduced ? 'destructive' : 'secondary'}>
132
+ {motionReduced ? 'Enabled' : 'Disabled'}
131
133
  </Badge>
132
134
  </div>
133
135
  </div>
134
136
 
135
137
  {/* Accessibility Controls */}
136
- <div className="grid grid-cols-1 lg="min-w-0">
138
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4 mb-6">
139
+ <div className="min-w-0">
137
140
  <h3 className="font-semibold mb-3 break-words">Accessibility Controls</h3>
138
141
  <div className="space-y-3">
139
142
  <Button onClick={toggleHighContrast} variant="outline" className="w-full">
140
- {highContrastEnabled ? 'Disable' } High Contrast
143
+ {highContrastEnabled ? 'Disable' : 'Enable'} High Contrast
141
144
  </Button>
142
145
 
143
146
  <Button onClick={toggleMotionReduction} variant="outline" className="w-full">
144
- {motionReduced ? 'Disable' } Motion Reduction
147
+ {motionReduced ? 'Disable' : 'Enable'} Motion Reduction
145
148
  </Button>
146
149
 
147
150
  <Button onClick={testScreenReaderAnnouncement} variant="outline" className="w-full">
@@ -189,10 +192,11 @@ export const AccessibilityDemo= ({ className = '' }) => {
189
192
  <h3 className="font-semibold mb-3">Current Accessibility Configuration</h3>
190
193
  <div className="bg-blue-50 p-4 rounded-lg border-2 border-blue-300">
191
194
  <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>
195
+ <p className="mb-2"><strong>High Contrast:</strong> {accessibilityConfig.highContrast ? '✅ Enabled' : '❌ Disabled'}</p>
196
+ <p className="mb-2"><strong>Reduced Motion:</strong> {accessibilityConfig.reducedMotion ? '✅ Enabled' : '❌ Disabled'}</p>
197
+ <p className="mb-2"><strong>Focus Visible:</strong> {accessibilityConfig.focusVisible ? '✅ Enabled' : '❌ Disabled'}</p>
198
+ <p className="mb-2"><strong>Contrast Target:</strong> {accessibilityConfig.contrast.target}:1 ratio</p>
199
+ <p className="mb-0"><strong>Touch Target Size:</strong> {accessibilityConfig.spacing.touchTarget}</p>
196
200
  </div>
197
201
  </div>
198
202
  </div>
@@ -203,7 +207,8 @@ export const AccessibilityDemo= ({ className = '' }) => {
203
207
  <div className="bg-gray-50 p-4 rounded-lg max-h-40 overflow-y-auto">
204
208
  {announcements.length === 0 ? (
205
209
  <p className="text-gray-500 text-sm">No announcements yet. Use the controls above to test.</p>
206
- ) ="space-y-2">
210
+ ) : (
211
+ <div className="space-y-2">
207
212
  {announcements.map((announcement, index) => (
208
213
  <div key={index} className="text-sm text-gray-700 p-2 bg-white rounded border break-words">
209
214
  {announcement}
@@ -219,7 +224,8 @@ export const AccessibilityDemo= ({ className = '' }) => {
219
224
  <Card>
220
225
  <h3 className="text-xl font-semibold mb-4 break-words">Accessibility Features Overview</h3>
221
226
 
222
- <div className="grid grid-cols-1 lg="min-w-0">
227
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
228
+ <div className="min-w-0">
223
229
  <h4 className="font-semibold mb-2 break-words">High Contrast Support</h4>
224
230
  <ul className="text-sm text-gray-600 space-y-1">
225
231
  <li className="break-words">• Automatic system preference detection</li>
@@ -11,10 +11,10 @@ import { motionReductionManager } from '../../themes/motion-reduction';
11
11
  import { ARIAUtils as AriaPatternGenerator } from '../../themes/aria-patterns';
12
12
 
13
13
  interface AccessibilityDemoProps {
14
- className?;
14
+ className?: string;
15
15
  }
16
16
 
17
- export const AccessibilityDemo= ({ className = '' }) => {
17
+ export const AccessibilityDemo: React.FC<AccessibilityDemoProps> = ({ className = '' }) => {
18
18
  const [currentFocus, setCurrentFocus] = useState<string>('');
19
19
  const [announcements, setAnnouncements] = useState<string[]>([]);
20
20
  const [accessibilityConfig, setAccessibilityConfig] = useState(accessibilityManager.getConfig());
@@ -44,7 +44,7 @@ export const AccessibilityDemo= ({ className = '' }) => {
44
44
  };
45
45
  }, []);
46
46
 
47
- const addAnnouncement = (message) => {
47
+ const addAnnouncement = (message: string) => {
48
48
  setAnnouncements(prev => [message, ...prev.slice(0, 9)]);
49
49
  };
50
50
 
@@ -71,7 +71,7 @@ export const AccessibilityDemo= ({ className = '' }) => {
71
71
  const testScreenReaderAnnouncement = () => {
72
72
  const message = 'This is a test announcement for screen readers';
73
73
  screenReaderOptimizer.announce(message, 'normal');
74
- addAnnouncement(`Announced}`);
74
+ addAnnouncement(`Announced: ${message}`);
75
75
  };
76
76
 
77
77
  const testFocusManagement = () => {
@@ -86,12 +86,13 @@ export const AccessibilityDemo= ({ className = '' }) => {
86
86
  const button = document.getElementById('test-aria-button');
87
87
  if (button) {
88
88
  const ariaProps = AriaPatternGenerator.generateAriaAttributes({
89
- disabled,
90
- readonly,
91
- required,
92
- invalid,
93
- label,
94
- describedby});
89
+ disabled: false,
90
+ readonly: false,
91
+ required: true,
92
+ invalid: false,
93
+ label: 'Test button for ARIA patterns',
94
+ describedby: 'button-description'
95
+ });
95
96
 
96
97
  Object.entries(ariaProps).forEach(([key, value]) => {
97
98
  if (value !== undefined) {
@@ -112,36 +113,38 @@ export const AccessibilityDemo= ({ className = '' }) => {
112
113
  </p>
113
114
 
114
115
  {/* Current Status */}
115
- <div className="grid grid-cols-1 md="p-4 bg-gray-50 rounded-lg">
116
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
117
+ <div className="p-4 bg-gray-50 rounded-lg">
116
118
  <h3 className="font-semibold mb-2">Current Focus</h3>
117
119
  <p className="text-sm text-gray-600 break-words">{currentFocus || 'No focus'}</p>
118
120
  </div>
119
121
 
120
122
  <div className="p-4 bg-gray-50 rounded-lg">
121
123
  <h3 className="font-semibold mb-2">High Contrast</h3>
122
- <Badge variant={highContrastEnabled ? 'default' }>
123
- {highContrastEnabled ? 'Enabled' }
124
+ <Badge variant={highContrastEnabled ? 'default' : 'secondary'}>
125
+ {highContrastEnabled ? 'Enabled' : 'Disabled'}
124
126
  </Badge>
125
127
  </div>
126
128
 
127
129
  <div className="p-4 bg-gray-50 rounded-lg">
128
130
  <h3 className="font-semibold mb-2">Motion Reduction</h3>
129
- <Badge variant={motionReduced ? 'destructive' }>
130
- {motionReduced ? 'Enabled' }
131
+ <Badge variant={motionReduced ? 'destructive' : 'secondary'}>
132
+ {motionReduced ? 'Enabled' : 'Disabled'}
131
133
  </Badge>
132
134
  </div>
133
135
  </div>
134
136
 
135
137
  {/* Accessibility Controls */}
136
- <div className="grid grid-cols-1 lg="min-w-0">
138
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4 mb-6">
139
+ <div className="min-w-0">
137
140
  <h3 className="font-semibold mb-3 break-words">Accessibility Controls</h3>
138
141
  <div className="space-y-3">
139
142
  <Button onClick={toggleHighContrast} variant="outline" className="w-full">
140
- {highContrastEnabled ? 'Disable' } High Contrast
143
+ {highContrastEnabled ? 'Disable' : 'Enable'} High Contrast
141
144
  </Button>
142
145
 
143
146
  <Button onClick={toggleMotionReduction} variant="outline" className="w-full">
144
- {motionReduced ? 'Disable' } Motion Reduction
147
+ {motionReduced ? 'Disable' : 'Enable'} Motion Reduction
145
148
  </Button>
146
149
 
147
150
  <Button onClick={testScreenReaderAnnouncement} variant="outline" className="w-full">
@@ -189,10 +192,11 @@ export const AccessibilityDemo= ({ className = '' }) => {
189
192
  <h3 className="font-semibold mb-3">Current Accessibility Configuration</h3>
190
193
  <div className="bg-blue-50 p-4 rounded-lg border-2 border-blue-300">
191
194
  <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>
195
+ <p className="mb-2"><strong>High Contrast:</strong> {accessibilityConfig.highContrast ? '✅ Enabled' : '❌ Disabled'}</p>
196
+ <p className="mb-2"><strong>Reduced Motion:</strong> {accessibilityConfig.reducedMotion ? '✅ Enabled' : '❌ Disabled'}</p>
197
+ <p className="mb-2"><strong>Focus Visible:</strong> {accessibilityConfig.focusVisible ? '✅ Enabled' : '❌ Disabled'}</p>
198
+ <p className="mb-2"><strong>Contrast Target:</strong> {accessibilityConfig.contrast.target}:1 ratio</p>
199
+ <p className="mb-0"><strong>Touch Target Size:</strong> {accessibilityConfig.spacing.touchTarget}</p>
196
200
  </div>
197
201
  </div>
198
202
  </div>
@@ -203,7 +207,8 @@ export const AccessibilityDemo= ({ className = '' }) => {
203
207
  <div className="bg-gray-50 p-4 rounded-lg max-h-40 overflow-y-auto">
204
208
  {announcements.length === 0 ? (
205
209
  <p className="text-gray-500 text-sm">No announcements yet. Use the controls above to test.</p>
206
- ) ="space-y-2">
210
+ ) : (
211
+ <div className="space-y-2">
207
212
  {announcements.map((announcement, index) => (
208
213
  <div key={index} className="text-sm text-gray-700 p-2 bg-white rounded border break-words">
209
214
  {announcement}
@@ -219,7 +224,8 @@ export const AccessibilityDemo= ({ className = '' }) => {
219
224
  <Card>
220
225
  <h3 className="text-xl font-semibold mb-4 break-words">Accessibility Features Overview</h3>
221
226
 
222
- <div className="grid grid-cols-1 lg="min-w-0">
227
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
228
+ <div className="min-w-0">
223
229
  <h4 className="font-semibold mb-2 break-words">High Contrast Support</h4>
224
230
  <ul className="text-sm text-gray-600 space-y-1">
225
231
  <li className="break-words">• Automatic system preference detection</li>