@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.6 → 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.
Files changed (468) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.d.ts +259 -0
  3. package/dist/components/ui/accessibility-demo.esm.js +265 -0
  4. package/dist/components/ui/accessibility-demo.js +265 -0
  5. package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
  6. package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
  7. package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
  8. package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
  9. package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
  10. package/dist/components/ui/advanced-transition-system-demo.js +624 -0
  11. package/dist/components/ui/advanced-transition-system.d.ts +391 -0
  12. package/dist/components/ui/advanced-transition-system.esm.js +351 -0
  13. package/dist/components/ui/advanced-transition-system.js +351 -0
  14. package/dist/components/ui/animation/animated-container.d.ts +162 -0
  15. package/dist/components/ui/animation/animated-container.esm.js +143 -0
  16. package/dist/components/ui/animation/animated-container.js +143 -0
  17. package/dist/components/ui/animation/index.d.ts +9 -0
  18. package/dist/components/ui/animation/index.esm.js +19 -0
  19. package/dist/components/ui/animation/index.js +19 -0
  20. package/dist/components/ui/animation/staggered-container.d.ts +64 -0
  21. package/dist/components/ui/animation/staggered-container.esm.js +59 -0
  22. package/dist/components/ui/animation/staggered-container.js +59 -0
  23. package/dist/components/ui/animation-demo.d.ts +238 -0
  24. package/dist/components/ui/animation-demo.esm.js +218 -0
  25. package/dist/components/ui/animation-demo.js +218 -0
  26. package/dist/components/ui/badge.d.ts +28 -0
  27. package/dist/components/ui/badge.esm.js +30 -0
  28. package/dist/components/ui/badge.js +30 -0
  29. package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
  30. package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
  31. package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
  32. package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
  33. package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
  34. package/dist/components/ui/border-radius-shadow-demo.js +176 -0
  35. package/dist/components/ui/button.d.ts +33 -0
  36. package/dist/components/ui/button.esm.js +30 -0
  37. package/dist/components/ui/button.js +30 -0
  38. package/dist/components/ui/card.d.ts +205 -0
  39. package/dist/components/ui/card.esm.js +182 -0
  40. package/dist/components/ui/card.js +182 -0
  41. package/dist/components/ui/checkbox.d.ts +26 -0
  42. package/dist/components/ui/checkbox.esm.js +30 -0
  43. package/dist/components/ui/checkbox.js +30 -0
  44. package/dist/components/ui/color-preview.d.ts +402 -0
  45. package/dist/components/ui/color-preview.esm.js +388 -0
  46. package/dist/components/ui/color-preview.js +388 -0
  47. package/dist/components/ui/data-display/chart.d.ts +646 -0
  48. package/dist/components/ui/data-display/chart.esm.js +625 -0
  49. package/dist/components/ui/data-display/chart.js +625 -0
  50. package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
  51. package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
  52. package/dist/components/ui/data-display/data-grid-simple.js +76 -0
  53. package/dist/components/ui/data-display/data-grid.d.ts +670 -0
  54. package/dist/components/ui/data-display/data-grid.esm.js +667 -0
  55. package/dist/components/ui/data-display/data-grid.js +667 -0
  56. package/dist/components/ui/data-display/list.d.ts +448 -0
  57. package/dist/components/ui/data-display/list.esm.js +448 -0
  58. package/dist/components/ui/data-display/list.js +448 -0
  59. package/dist/components/ui/data-display/table.d.ts +472 -0
  60. package/dist/components/ui/data-display/table.esm.js +474 -0
  61. package/dist/components/ui/data-display/table.js +474 -0
  62. package/dist/components/ui/data-display/timeline.d.ts +433 -0
  63. package/dist/components/ui/data-display/timeline.esm.js +436 -0
  64. package/dist/components/ui/data-display/timeline.js +436 -0
  65. package/dist/components/ui/data-display/tree.d.ts +594 -0
  66. package/dist/components/ui/data-display/tree.esm.js +570 -0
  67. package/dist/components/ui/data-display/tree.js +570 -0
  68. package/dist/components/ui/data-display/types.d.ts +534 -0
  69. package/dist/components/ui/data-display/types.esm.js +511 -0
  70. package/dist/components/ui/data-display/types.js +511 -0
  71. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
  72. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
  73. package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
  74. package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
  75. package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
  76. package/dist/components/ui/enterprise-mobile-experience.js +413 -0
  77. package/dist/components/ui/feedback/alert.d.ts +154 -0
  78. package/dist/components/ui/feedback/alert.esm.js +150 -0
  79. package/dist/components/ui/feedback/alert.js +150 -0
  80. package/dist/components/ui/feedback/progress.d.ts +288 -0
  81. package/dist/components/ui/feedback/progress.esm.js +269 -0
  82. package/dist/components/ui/feedback/progress.js +269 -0
  83. package/dist/components/ui/feedback/skeleton.d.ts +182 -0
  84. package/dist/components/ui/feedback/skeleton.esm.js +175 -0
  85. package/dist/components/ui/feedback/skeleton.js +175 -0
  86. package/dist/components/ui/feedback/toast.d.ts +277 -0
  87. package/dist/components/ui/feedback/toast.esm.js +256 -0
  88. package/dist/components/ui/feedback/toast.js +256 -0
  89. package/dist/components/ui/feedback/types.d.ts +123 -0
  90. package/dist/components/ui/feedback/types.esm.js +125 -0
  91. package/dist/components/ui/feedback/types.js +125 -0
  92. package/dist/components/ui/font-preview.d.ts +282 -0
  93. package/dist/components/ui/font-preview.esm.js +286 -0
  94. package/dist/components/ui/font-preview.js +286 -0
  95. package/dist/components/ui/form-demo.d.ts +544 -0
  96. package/dist/components/ui/form-demo.esm.js +516 -0
  97. package/dist/components/ui/form-demo.js +516 -0
  98. package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
  99. package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
  100. package/dist/components/ui/hardware-acceleration-demo.js +497 -0
  101. package/dist/components/ui/input.d.ts +33 -0
  102. package/dist/components/ui/input.esm.js +32 -0
  103. package/dist/components/ui/input.js +32 -0
  104. package/dist/components/ui/label.d.ts +13 -0
  105. package/dist/components/ui/label.esm.js +16 -0
  106. package/dist/components/ui/label.js +16 -0
  107. package/dist/components/ui/layout-demo.d.ts +352 -0
  108. package/dist/components/ui/layout-demo.esm.js +342 -0
  109. package/dist/components/ui/layout-demo.js +342 -0
  110. package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
  111. package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
  112. package/dist/components/ui/layouts/adaptive-layout.js +120 -0
  113. package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
  114. package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
  115. package/dist/components/ui/layouts/desktop-layout.js +204 -0
  116. package/dist/components/ui/layouts/index.d.ts +5 -0
  117. package/dist/components/ui/layouts/index.esm.js +10 -0
  118. package/dist/components/ui/layouts/index.js +10 -0
  119. package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
  120. package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
  121. package/dist/components/ui/layouts/mobile-layout.js +152 -0
  122. package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
  123. package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
  124. package/dist/components/ui/layouts/tablet-layout.js +183 -0
  125. package/dist/components/ui/mobile-form-validation.d.ts +439 -0
  126. package/dist/components/ui/mobile-form-validation.esm.js +418 -0
  127. package/dist/components/ui/mobile-form-validation.js +418 -0
  128. package/dist/components/ui/mobile-input-demo.d.ts +197 -0
  129. package/dist/components/ui/mobile-input-demo.esm.js +195 -0
  130. package/dist/components/ui/mobile-input-demo.js +195 -0
  131. package/dist/components/ui/mobile-input.d.ts +273 -0
  132. package/dist/components/ui/mobile-input.esm.js +216 -0
  133. package/dist/components/ui/mobile-input.js +216 -0
  134. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
  135. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
  136. package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
  137. package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
  138. package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
  139. package/dist/components/ui/navigation/breadcrumb.js +155 -0
  140. package/dist/components/ui/navigation/index.d.ts +25 -0
  141. package/dist/components/ui/navigation/index.esm.js +14 -0
  142. package/dist/components/ui/navigation/index.js +14 -0
  143. package/dist/components/ui/navigation/menu.d.ts +366 -0
  144. package/dist/components/ui/navigation/menu.esm.js +360 -0
  145. package/dist/components/ui/navigation/menu.js +360 -0
  146. package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
  147. package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
  148. package/dist/components/ui/navigation/navigation-demo.js +317 -0
  149. package/dist/components/ui/navigation/pagination.d.ts +261 -0
  150. package/dist/components/ui/navigation/pagination.esm.js +260 -0
  151. package/dist/components/ui/navigation/pagination.js +260 -0
  152. package/dist/components/ui/navigation/sidebar.d.ts +375 -0
  153. package/dist/components/ui/navigation/sidebar.esm.js +369 -0
  154. package/dist/components/ui/navigation/sidebar.js +369 -0
  155. package/dist/components/ui/navigation/stepper.d.ts +294 -0
  156. package/dist/components/ui/navigation/stepper.esm.js +292 -0
  157. package/dist/components/ui/navigation/stepper.js +292 -0
  158. package/dist/components/ui/navigation/tabs.d.ts +196 -0
  159. package/dist/components/ui/navigation/tabs.esm.js +194 -0
  160. package/dist/components/ui/navigation/tabs.js +194 -0
  161. package/dist/components/ui/navigation/types.d.ts +293 -0
  162. package/dist/components/ui/navigation/types.esm.js +298 -0
  163. package/dist/components/ui/navigation/types.js +298 -0
  164. package/dist/components/ui/overlay/backdrop.d.ts +79 -0
  165. package/dist/components/ui/overlay/backdrop.esm.js +80 -0
  166. package/dist/components/ui/overlay/backdrop.js +80 -0
  167. package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
  168. package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
  169. package/dist/components/ui/overlay/focus-manager.js +141 -0
  170. package/dist/components/ui/overlay/index.d.ts +27 -0
  171. package/dist/components/ui/overlay/index.esm.js +16 -0
  172. package/dist/components/ui/overlay/index.js +16 -0
  173. package/dist/components/ui/overlay/modal.d.ts +262 -0
  174. package/dist/components/ui/overlay/modal.esm.js +266 -0
  175. package/dist/components/ui/overlay/modal.js +266 -0
  176. package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
  177. package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
  178. package/dist/components/ui/overlay/overlay-manager.js +105 -0
  179. package/dist/components/ui/overlay/popover.d.ts +450 -0
  180. package/dist/components/ui/overlay/popover.esm.js +446 -0
  181. package/dist/components/ui/overlay/popover.js +446 -0
  182. package/dist/components/ui/overlay/portal.d.ts +75 -0
  183. package/dist/components/ui/overlay/portal.esm.js +79 -0
  184. package/dist/components/ui/overlay/portal.js +79 -0
  185. package/dist/components/ui/overlay/tooltip.d.ts +298 -0
  186. package/dist/components/ui/overlay/tooltip.esm.js +288 -0
  187. package/dist/components/ui/overlay/tooltip.js +288 -0
  188. package/dist/components/ui/overlay/types.d.ts +194 -0
  189. package/dist/components/ui/overlay/types.esm.js +195 -0
  190. package/dist/components/ui/overlay/types.js +195 -0
  191. package/dist/components/ui/performance-demo.d.ts +583 -0
  192. package/dist/components/ui/performance-demo.esm.js +549 -0
  193. package/dist/components/ui/performance-demo.js +549 -0
  194. package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
  195. package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
  196. package/dist/components/ui/semantic-input-system-demo.js +465 -0
  197. package/dist/components/ui/theme-customizer.d.ts +378 -0
  198. package/dist/components/ui/theme-customizer.esm.js +354 -0
  199. package/dist/components/ui/theme-customizer.js +354 -0
  200. package/dist/components/ui/theme-preview.d.ts +305 -0
  201. package/dist/components/ui/theme-preview.esm.js +258 -0
  202. package/dist/components/ui/theme-preview.js +258 -0
  203. package/dist/components/ui/theme-switcher.d.ts +259 -0
  204. package/dist/components/ui/theme-switcher.esm.js +238 -0
  205. package/dist/components/ui/theme-switcher.js +238 -0
  206. package/dist/components/ui/theme-toggle.d.ts +34 -0
  207. package/dist/components/ui/theme-toggle.esm.js +38 -0
  208. package/dist/components/ui/theme-toggle.js +38 -0
  209. package/dist/components/ui/token-demo.d.ts +188 -0
  210. package/dist/components/ui/token-demo.esm.js +183 -0
  211. package/dist/components/ui/token-demo.js +183 -0
  212. package/dist/components/ui/touch-demo.d.ts +455 -0
  213. package/dist/components/ui/touch-demo.esm.js +433 -0
  214. package/dist/components/ui/touch-demo.js +433 -0
  215. package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
  216. package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
  217. package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
  218. package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
  219. package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
  220. package/dist/components/ui/touch-friendly-interface.js +272 -0
  221. package/dist/hooks/index.d.ts +161 -0
  222. package/dist/hooks/index.esm.js +190 -0
  223. package/dist/hooks/index.js +190 -0
  224. package/dist/hooks/use-accessibility-support.d.ts +516 -0
  225. package/dist/hooks/use-accessibility-support.esm.js +488 -0
  226. package/dist/hooks/use-accessibility-support.js +488 -0
  227. package/dist/hooks/use-adaptive-layout.d.ts +287 -0
  228. package/dist/hooks/use-adaptive-layout.esm.js +266 -0
  229. package/dist/hooks/use-adaptive-layout.js +266 -0
  230. package/dist/hooks/use-advanced-patterns.d.ts +292 -0
  231. package/dist/hooks/use-advanced-patterns.esm.js +279 -0
  232. package/dist/hooks/use-advanced-patterns.js +279 -0
  233. package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
  234. package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
  235. package/dist/hooks/use-advanced-transition-system.js +352 -0
  236. package/dist/hooks/use-animation-profile.d.ts +285 -0
  237. package/dist/hooks/use-animation-profile.esm.js +259 -0
  238. package/dist/hooks/use-animation-profile.js +259 -0
  239. package/dist/hooks/use-battery-animations.d.ts +382 -0
  240. package/dist/hooks/use-battery-animations.esm.js +359 -0
  241. package/dist/hooks/use-battery-animations.js +359 -0
  242. package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
  243. package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
  244. package/dist/hooks/use-battery-conscious-loading.js +432 -0
  245. package/dist/hooks/use-battery-optimization.d.ts +328 -0
  246. package/dist/hooks/use-battery-optimization.esm.js +307 -0
  247. package/dist/hooks/use-battery-optimization.js +307 -0
  248. package/dist/hooks/use-battery-status.d.ts +297 -0
  249. package/dist/hooks/use-battery-status.esm.js +277 -0
  250. package/dist/hooks/use-battery-status.js +277 -0
  251. package/dist/hooks/use-component-performance.d.ts +342 -0
  252. package/dist/hooks/use-component-performance.esm.js +329 -0
  253. package/dist/hooks/use-component-performance.js +329 -0
  254. package/dist/hooks/use-device-loading-states.d.ts +456 -0
  255. package/dist/hooks/use-device-loading-states.esm.js +416 -0
  256. package/dist/hooks/use-device-loading-states.js +416 -0
  257. package/dist/hooks/use-device.d.ts +104 -0
  258. package/dist/hooks/use-device.esm.js +99 -0
  259. package/dist/hooks/use-device.js +99 -0
  260. package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
  261. package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
  262. package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
  263. package/dist/hooks/use-form-feedback.d.ts +401 -0
  264. package/dist/hooks/use-form-feedback.esm.js +360 -0
  265. package/dist/hooks/use-form-feedback.js +360 -0
  266. package/dist/hooks/use-form-performance.d.ts +511 -0
  267. package/dist/hooks/use-form-performance.esm.js +478 -0
  268. package/dist/hooks/use-form-performance.js +478 -0
  269. package/dist/hooks/use-frame-rate.d.ts +249 -0
  270. package/dist/hooks/use-frame-rate.esm.js +232 -0
  271. package/dist/hooks/use-frame-rate.js +232 -0
  272. package/dist/hooks/use-gestures.d.ts +336 -0
  273. package/dist/hooks/use-gestures.esm.js +314 -0
  274. package/dist/hooks/use-gestures.js +314 -0
  275. package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
  276. package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
  277. package/dist/hooks/use-hardware-acceleration.js +313 -0
  278. package/dist/hooks/use-input-accessibility.d.ts +451 -0
  279. package/dist/hooks/use-input-accessibility.esm.js +417 -0
  280. package/dist/hooks/use-input-accessibility.js +417 -0
  281. package/dist/hooks/use-input-performance.d.ts +503 -0
  282. package/dist/hooks/use-input-performance.esm.js +471 -0
  283. package/dist/hooks/use-input-performance.js +471 -0
  284. package/dist/hooks/use-layout-performance.d.ts +317 -0
  285. package/dist/hooks/use-layout-performance.esm.js +298 -0
  286. package/dist/hooks/use-layout-performance.js +298 -0
  287. package/dist/hooks/use-loading-accessibility.d.ts +532 -0
  288. package/dist/hooks/use-loading-accessibility.esm.js +495 -0
  289. package/dist/hooks/use-loading-accessibility.js +495 -0
  290. package/dist/hooks/use-loading-performance.d.ts +471 -0
  291. package/dist/hooks/use-loading-performance.esm.js +449 -0
  292. package/dist/hooks/use-loading-performance.js +449 -0
  293. package/dist/hooks/use-memory-usage.d.ts +285 -0
  294. package/dist/hooks/use-memory-usage.esm.js +268 -0
  295. package/dist/hooks/use-memory-usage.js +268 -0
  296. package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
  297. package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
  298. package/dist/hooks/use-mobile-form-layout.js +427 -0
  299. package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
  300. package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
  301. package/dist/hooks/use-mobile-form-validation.js +451 -0
  302. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
  303. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
  304. package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
  305. package/dist/hooks/use-mobile-layout.d.ts +300 -0
  306. package/dist/hooks/use-mobile-layout.esm.js +280 -0
  307. package/dist/hooks/use-mobile-layout.js +280 -0
  308. package/dist/hooks/use-mobile-optimization.d.ts +404 -0
  309. package/dist/hooks/use-mobile-optimization.esm.js +378 -0
  310. package/dist/hooks/use-mobile-optimization.js +378 -0
  311. package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
  312. package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
  313. package/dist/hooks/use-mobile-skeleton.js +369 -0
  314. package/dist/hooks/use-mobile-touch.d.ts +412 -0
  315. package/dist/hooks/use-mobile-touch.esm.js +379 -0
  316. package/dist/hooks/use-mobile-touch.js +379 -0
  317. package/dist/hooks/use-performance-throttling.d.ts +346 -0
  318. package/dist/hooks/use-performance-throttling.esm.js +324 -0
  319. package/dist/hooks/use-performance-throttling.js +324 -0
  320. package/dist/hooks/use-performance.d.ts +314 -0
  321. package/dist/hooks/use-performance.esm.js +278 -0
  322. package/dist/hooks/use-performance.js +278 -0
  323. package/dist/hooks/use-reusable-architecture.d.ts +412 -0
  324. package/dist/hooks/use-reusable-architecture.esm.js +385 -0
  325. package/dist/hooks/use-reusable-architecture.js +385 -0
  326. package/dist/hooks/use-semantic-input-types.d.ts +354 -0
  327. package/dist/hooks/use-semantic-input-types.esm.js +315 -0
  328. package/dist/hooks/use-semantic-input-types.js +315 -0
  329. package/dist/hooks/use-semantic-input.d.ts +563 -0
  330. package/dist/hooks/use-semantic-input.esm.js +513 -0
  331. package/dist/hooks/use-semantic-input.js +513 -0
  332. package/dist/hooks/use-tablet-layout.d.ts +382 -0
  333. package/dist/hooks/use-tablet-layout.esm.js +355 -0
  334. package/dist/hooks/use-tablet-layout.js +355 -0
  335. package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
  336. package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
  337. package/dist/hooks/use-touch-friendly-input.js +480 -0
  338. package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
  339. package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
  340. package/dist/hooks/use-touch-friendly-interface.js +299 -0
  341. package/dist/hooks/use-touch-optimization.d.ts +373 -0
  342. package/dist/hooks/use-touch-optimization.esm.js +348 -0
  343. package/dist/hooks/use-touch-optimization.js +348 -0
  344. package/dist/index.esm.js +2 -2
  345. package/dist/index.js +2 -2
  346. package/dist/lib/utils.d.ts +3 -0
  347. package/dist/lib/utils.esm.js +6 -0
  348. package/dist/lib/utils.js +6 -0
  349. package/dist/plugins/theme-css-generator.d.ts +345 -0
  350. package/dist/plugins/theme-css-generator.esm.js +305 -0
  351. package/dist/plugins/theme-css-generator.js +305 -0
  352. package/dist/styles.css +1 -1
  353. package/dist/themes/ThemeContext.d.ts +27 -0
  354. package/dist/themes/ThemeContext.esm.js +31 -0
  355. package/dist/themes/ThemeContext.js +31 -0
  356. package/dist/themes/ThemeProvider.d.ts +222 -0
  357. package/dist/themes/ThemeProvider.esm.js +229 -0
  358. package/dist/themes/ThemeProvider.js +229 -0
  359. package/dist/themes/accessibility/index.d.ts +7 -0
  360. package/dist/themes/accessibility/index.esm.js +27 -0
  361. package/dist/themes/accessibility/index.js +27 -0
  362. package/dist/themes/accessibility.d.ts +259 -0
  363. package/dist/themes/accessibility.esm.js +220 -0
  364. package/dist/themes/accessibility.js +220 -0
  365. package/dist/themes/aria-patterns.d.ts +418 -0
  366. package/dist/themes/aria-patterns.esm.js +384 -0
  367. package/dist/themes/aria-patterns.js +384 -0
  368. package/dist/themes/base-themes.d.ts +34 -0
  369. package/dist/themes/base-themes.esm.js +52 -0
  370. package/dist/themes/base-themes.js +52 -0
  371. package/dist/themes/colorManager.d.ts +327 -0
  372. package/dist/themes/colorManager.esm.js +362 -0
  373. package/dist/themes/colorManager.js +362 -0
  374. package/dist/themes/examples/dark-theme.d.ts +139 -0
  375. package/dist/themes/examples/dark-theme.esm.js +124 -0
  376. package/dist/themes/examples/dark-theme.js +124 -0
  377. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  378. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  379. package/dist/themes/examples/minimal-theme.js +86 -0
  380. package/dist/themes/focus-management.d.ts +699 -0
  381. package/dist/themes/focus-management.esm.js +642 -0
  382. package/dist/themes/focus-management.js +642 -0
  383. package/dist/themes/fontLoader.d.ts +163 -0
  384. package/dist/themes/fontLoader.esm.js +192 -0
  385. package/dist/themes/fontLoader.js +192 -0
  386. package/dist/themes/high-contrast.d.ts +619 -0
  387. package/dist/themes/high-contrast.esm.js +573 -0
  388. package/dist/themes/high-contrast.js +573 -0
  389. package/dist/themes/index.d.ts +11 -0
  390. package/dist/themes/index.esm.js +19 -0
  391. package/dist/themes/index.js +19 -0
  392. package/dist/themes/inheritance.d.ts +160 -0
  393. package/dist/themes/inheritance.esm.js +219 -0
  394. package/dist/themes/inheritance.js +219 -0
  395. package/dist/themes/keyboard-navigation.d.ts +550 -0
  396. package/dist/themes/keyboard-navigation.esm.js +521 -0
  397. package/dist/themes/keyboard-navigation.js +521 -0
  398. package/dist/themes/motion-reduction.d.ts +660 -0
  399. package/dist/themes/motion-reduction.esm.js +602 -0
  400. package/dist/themes/motion-reduction.js +602 -0
  401. package/dist/themes/navigation.d.ts +232 -0
  402. package/dist/themes/navigation.esm.js +238 -0
  403. package/dist/themes/navigation.js +238 -0
  404. package/dist/themes/screen-reader.d.ts +645 -0
  405. package/dist/themes/screen-reader.esm.js +580 -0
  406. package/dist/themes/screen-reader.js +580 -0
  407. package/dist/themes/systemThemeDetector.d.ts +148 -0
  408. package/dist/themes/systemThemeDetector.esm.js +174 -0
  409. package/dist/themes/systemThemeDetector.js +174 -0
  410. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  411. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  412. package/dist/themes/themeCSSUpdater.js +250 -0
  413. package/dist/themes/themePersistence.d.ts +192 -0
  414. package/dist/themes/themePersistence.esm.js +217 -0
  415. package/dist/themes/themePersistence.js +217 -0
  416. package/dist/themes/themes/stan-design.d.ts +678 -0
  417. package/dist/themes/themes/stan-design.esm.js +518 -0
  418. package/dist/themes/themes/stan-design.js +518 -0
  419. package/dist/themes/types.d.ts +454 -0
  420. package/dist/themes/types.esm.js +446 -0
  421. package/dist/themes/types.js +446 -0
  422. package/dist/themes/useSystemTheme.d.ts +43 -0
  423. package/dist/themes/useSystemTheme.esm.js +48 -0
  424. package/dist/themes/useSystemTheme.js +48 -0
  425. package/dist/themes/useTheme.d.ts +20 -0
  426. package/dist/themes/useTheme.esm.js +87 -0
  427. package/dist/themes/useTheme.js +87 -0
  428. package/dist/themes/validation.d.ts +406 -0
  429. package/dist/themes/validation.esm.js +411 -0
  430. package/dist/themes/validation.js +411 -0
  431. package/dist/tokens/index.d.ts +25 -0
  432. package/dist/tokens/index.esm.js +23 -0
  433. package/dist/tokens/index.js +23 -0
  434. package/dist/tokens/tokenExporter.d.ts +336 -0
  435. package/dist/tokens/tokenExporter.esm.js +371 -0
  436. package/dist/tokens/tokenExporter.js +371 -0
  437. package/dist/tokens/tokenGenerator.d.ts +250 -0
  438. package/dist/tokens/tokenGenerator.esm.js +267 -0
  439. package/dist/tokens/tokenGenerator.js +267 -0
  440. package/dist/tokens/tokenManager.d.ts +194 -0
  441. package/dist/tokens/tokenManager.esm.js +235 -0
  442. package/dist/tokens/tokenManager.js +235 -0
  443. package/dist/tokens/tokenValidator.d.ts +488 -0
  444. package/dist/tokens/tokenValidator.esm.js +497 -0
  445. package/dist/tokens/tokenValidator.js +497 -0
  446. package/dist/tokens/types.d.ts +78 -0
  447. package/dist/tokens/types.esm.js +64 -0
  448. package/dist/tokens/types.js +64 -0
  449. package/dist/utils/bundle-analyzer.d.ts +260 -0
  450. package/dist/utils/bundle-analyzer.esm.js +242 -0
  451. package/dist/utils/bundle-analyzer.js +242 -0
  452. package/dist/utils/bundle-splitting.d.ts +483 -0
  453. package/dist/utils/bundle-splitting.esm.js +458 -0
  454. package/dist/utils/bundle-splitting.js +458 -0
  455. package/dist/utils/lazy-loading.d.ts +437 -0
  456. package/dist/utils/lazy-loading.esm.js +415 -0
  457. package/dist/utils/lazy-loading.js +415 -0
  458. package/dist/utils/performance-monitor.d.ts +513 -0
  459. package/dist/utils/performance-monitor.esm.js +472 -0
  460. package/dist/utils/performance-monitor.js +472 -0
  461. package/dist/utils/tree-shaking.d.ts +274 -0
  462. package/dist/utils/tree-shaking.esm.js +266 -0
  463. package/dist/utils/tree-shaking.js +266 -0
  464. package/package.json +1 -1
  465. package/src/index.ts +2 -2
  466. package/src/themes/accessibility/index.ts +1 -1
  467. package/src/themes/focus-management.ts +3 -3
  468. package/src/themes/keyboard-navigation.ts +3 -3
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.6] - 2025-10-02
5
+ ## [0.2.8] - 2025-10-02
6
6
 
7
7
  ### Added
8
8
  - Initial release of stan-design theme package
@@ -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
+ };