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

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 (462) 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/lib/utils.d.ts +3 -0
  345. package/dist/lib/utils.esm.js +6 -0
  346. package/dist/lib/utils.js +6 -0
  347. package/dist/plugins/theme-css-generator.d.ts +345 -0
  348. package/dist/plugins/theme-css-generator.esm.js +305 -0
  349. package/dist/plugins/theme-css-generator.js +305 -0
  350. package/dist/styles.css +1 -1
  351. package/dist/themes/ThemeContext.d.ts +27 -0
  352. package/dist/themes/ThemeContext.esm.js +31 -0
  353. package/dist/themes/ThemeContext.js +31 -0
  354. package/dist/themes/ThemeProvider.d.ts +222 -0
  355. package/dist/themes/ThemeProvider.esm.js +229 -0
  356. package/dist/themes/ThemeProvider.js +229 -0
  357. package/dist/themes/accessibility/index.d.ts +7 -0
  358. package/dist/themes/accessibility/index.esm.js +27 -0
  359. package/dist/themes/accessibility/index.js +27 -0
  360. package/dist/themes/accessibility.d.ts +259 -0
  361. package/dist/themes/accessibility.esm.js +220 -0
  362. package/dist/themes/accessibility.js +220 -0
  363. package/dist/themes/aria-patterns.d.ts +418 -0
  364. package/dist/themes/aria-patterns.esm.js +384 -0
  365. package/dist/themes/aria-patterns.js +384 -0
  366. package/dist/themes/base-themes.d.ts +34 -0
  367. package/dist/themes/base-themes.esm.js +52 -0
  368. package/dist/themes/base-themes.js +52 -0
  369. package/dist/themes/colorManager.d.ts +327 -0
  370. package/dist/themes/colorManager.esm.js +362 -0
  371. package/dist/themes/colorManager.js +362 -0
  372. package/dist/themes/examples/dark-theme.d.ts +139 -0
  373. package/dist/themes/examples/dark-theme.esm.js +124 -0
  374. package/dist/themes/examples/dark-theme.js +124 -0
  375. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  376. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  377. package/dist/themes/examples/minimal-theme.js +86 -0
  378. package/dist/themes/focus-management.d.ts +699 -0
  379. package/dist/themes/focus-management.esm.js +642 -0
  380. package/dist/themes/focus-management.js +642 -0
  381. package/dist/themes/fontLoader.d.ts +163 -0
  382. package/dist/themes/fontLoader.esm.js +192 -0
  383. package/dist/themes/fontLoader.js +192 -0
  384. package/dist/themes/high-contrast.d.ts +619 -0
  385. package/dist/themes/high-contrast.esm.js +573 -0
  386. package/dist/themes/high-contrast.js +573 -0
  387. package/dist/themes/index.d.ts +11 -0
  388. package/dist/themes/index.esm.js +19 -0
  389. package/dist/themes/index.js +19 -0
  390. package/dist/themes/inheritance.d.ts +160 -0
  391. package/dist/themes/inheritance.esm.js +219 -0
  392. package/dist/themes/inheritance.js +219 -0
  393. package/dist/themes/keyboard-navigation.d.ts +550 -0
  394. package/dist/themes/keyboard-navigation.esm.js +521 -0
  395. package/dist/themes/keyboard-navigation.js +521 -0
  396. package/dist/themes/motion-reduction.d.ts +660 -0
  397. package/dist/themes/motion-reduction.esm.js +602 -0
  398. package/dist/themes/motion-reduction.js +602 -0
  399. package/dist/themes/navigation.d.ts +232 -0
  400. package/dist/themes/navigation.esm.js +238 -0
  401. package/dist/themes/navigation.js +238 -0
  402. package/dist/themes/screen-reader.d.ts +645 -0
  403. package/dist/themes/screen-reader.esm.js +580 -0
  404. package/dist/themes/screen-reader.js +580 -0
  405. package/dist/themes/systemThemeDetector.d.ts +148 -0
  406. package/dist/themes/systemThemeDetector.esm.js +174 -0
  407. package/dist/themes/systemThemeDetector.js +174 -0
  408. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  409. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  410. package/dist/themes/themeCSSUpdater.js +250 -0
  411. package/dist/themes/themePersistence.d.ts +192 -0
  412. package/dist/themes/themePersistence.esm.js +217 -0
  413. package/dist/themes/themePersistence.js +217 -0
  414. package/dist/themes/themes/stan-design.d.ts +678 -0
  415. package/dist/themes/themes/stan-design.esm.js +518 -0
  416. package/dist/themes/themes/stan-design.js +518 -0
  417. package/dist/themes/types.d.ts +454 -0
  418. package/dist/themes/types.esm.js +446 -0
  419. package/dist/themes/types.js +446 -0
  420. package/dist/themes/useSystemTheme.d.ts +43 -0
  421. package/dist/themes/useSystemTheme.esm.js +48 -0
  422. package/dist/themes/useSystemTheme.js +48 -0
  423. package/dist/themes/useTheme.d.ts +20 -0
  424. package/dist/themes/useTheme.esm.js +87 -0
  425. package/dist/themes/useTheme.js +87 -0
  426. package/dist/themes/validation.d.ts +406 -0
  427. package/dist/themes/validation.esm.js +411 -0
  428. package/dist/themes/validation.js +411 -0
  429. package/dist/tokens/index.d.ts +25 -0
  430. package/dist/tokens/index.esm.js +23 -0
  431. package/dist/tokens/index.js +23 -0
  432. package/dist/tokens/tokenExporter.d.ts +336 -0
  433. package/dist/tokens/tokenExporter.esm.js +371 -0
  434. package/dist/tokens/tokenExporter.js +371 -0
  435. package/dist/tokens/tokenGenerator.d.ts +250 -0
  436. package/dist/tokens/tokenGenerator.esm.js +267 -0
  437. package/dist/tokens/tokenGenerator.js +267 -0
  438. package/dist/tokens/tokenManager.d.ts +194 -0
  439. package/dist/tokens/tokenManager.esm.js +235 -0
  440. package/dist/tokens/tokenManager.js +235 -0
  441. package/dist/tokens/tokenValidator.d.ts +488 -0
  442. package/dist/tokens/tokenValidator.esm.js +497 -0
  443. package/dist/tokens/tokenValidator.js +497 -0
  444. package/dist/tokens/types.d.ts +78 -0
  445. package/dist/tokens/types.esm.js +64 -0
  446. package/dist/tokens/types.js +64 -0
  447. package/dist/utils/bundle-analyzer.d.ts +260 -0
  448. package/dist/utils/bundle-analyzer.esm.js +242 -0
  449. package/dist/utils/bundle-analyzer.js +242 -0
  450. package/dist/utils/bundle-splitting.d.ts +483 -0
  451. package/dist/utils/bundle-splitting.esm.js +458 -0
  452. package/dist/utils/bundle-splitting.js +458 -0
  453. package/dist/utils/lazy-loading.d.ts +437 -0
  454. package/dist/utils/lazy-loading.esm.js +415 -0
  455. package/dist/utils/lazy-loading.js +415 -0
  456. package/dist/utils/performance-monitor.d.ts +513 -0
  457. package/dist/utils/performance-monitor.esm.js +472 -0
  458. package/dist/utils/performance-monitor.js +472 -0
  459. package/dist/utils/tree-shaking.d.ts +274 -0
  460. package/dist/utils/tree-shaking.esm.js +266 -0
  461. package/dist/utils/tree-shaking.js +266 -0
  462. package/package.json +1 -1
@@ -0,0 +1,642 @@
1
+ import { screenReaderOptimizer } from './screen-reader';
2
+
3
+ // Focus management utilities
4
+ export class AccessibilityFocusManager {
5
+ private focusableSelectors];
6
+ private focusableElements];
7
+ private lastFocusedElement;
8
+ private focusTraps, FocusTrap>;
9
+ private focusHistory];
10
+ private maxHistorySize;
11
+
12
+ constructor() {
13
+ this.focusableSelectors = [
14
+ 'a[href]',
15
+ 'button])',
16
+ 'input])',
17
+ 'select])',
18
+ 'textarea])',
19
+ '[tabindex]="-1"])',
20
+ '[contenteditable="true"]',
21
+ 'audio[controls]',
22
+ 'video[controls]',
23
+ 'iframe'
24
+ ];
25
+
26
+ this.focusableElements = [];
27
+ this.lastFocusedElement = null;
28
+ this.focusTraps = new Map();
29
+ this.focusHistory = [];
30
+ this.maxHistorySize = 10;
31
+
32
+ this.initialize();
33
+ }
34
+
35
+ // Initialize focus management
36
+ private initialize());
37
+ this.setupEventListeners();
38
+ }
39
+
40
+ // Update list of focusable elements
41
+ private updateFocusableElements()= Array.from(
42
+ document.querySelectorAll(this.focusableSelectors.join(','))
43
+ ) as HTMLElement[];
44
+ }
45
+
46
+ // Setup event listeners
47
+ private setupEventListeners(), this.handleFocusIn.bind(this));
48
+ document.addEventListener('focusout', this.handleFocusOut.bind(this));
49
+
50
+ // Handle tab key navigation
51
+ document.addEventListener('keydown', this.handleKeyDown.bind(this));
52
+
53
+ // Update focusable elements when DOM changes
54
+ const observer = new MutationObserver(() => {
55
+ this.updateFocusableElements();
56
+ });
57
+
58
+ observer.observe(document.body, {
59
+ childList,
60
+ subtree});
61
+ }
62
+
63
+ // Handle focus in events
64
+ private handleFocusIn(event)= event.target as HTMLElement;
65
+
66
+ if (target && target !== this.lastFocusedElement) {
67
+ // Add to focus history
68
+ this.addToFocusHistory(target);
69
+
70
+ // Update last focused element
71
+ this.lastFocusedElement = target;
72
+
73
+ // Announce focus change for screen readers
74
+ if (screenReaderOptimizer) {
75
+ screenReaderOptimizer.announceFocusChange(
76
+ this.getElementDescription(target),
77
+ this.getElementContext(target)
78
+ );
79
+ }
80
+ }
81
+ }
82
+
83
+ // Handle focus out events
84
+ private handleFocusOut(_event)}
85
+
86
+ // Handle key down events
87
+ private handleKeyDown(event)=== 'Tab') {
88
+ this.handleTabNavigation(event);
89
+ }
90
+ }
91
+
92
+ // Handle tab navigation
93
+ private handleTabNavigation(event)= event.shiftKey;
94
+ const currentElement = event.target as HTMLElement;
95
+
96
+ // Check if we're in a focus trap
97
+ const activeTrap = this.getActiveFocusTrap(currentElement);
98
+ if (activeTrap) {
99
+ event.preventDefault();
100
+ this.navigateInFocusTrap(activeTrap, isShiftTab);
101
+ return;
102
+ }
103
+
104
+ // Normal tab navigation
105
+ this.navigateFocusableElements(isShiftTab);
106
+ }
107
+
108
+ // Get active focus trap for element
109
+ private getActiveFocusTrap(element))) {
110
+ if (trap.isActive && trap.container.contains(element)) {
111
+ return trap;
112
+ }
113
+ }
114
+ return null;
115
+ }
116
+
117
+ // Navigate within a focus trap
118
+ private navigateInFocusTrap(trap, isShiftTab)= trap.getFocusableElements();
119
+ if (focusableElements.length === 0) return;
120
+
121
+ const currentIndex = focusableElements.indexOf(document.activeElement as HTMLElement);
122
+ let nextIndex;
123
+
124
+ if (isShiftTab) {
125
+ nextIndex = currentIndex > 0 ? currentIndex - 1 ;
126
+ } else {
127
+ nextIndex = currentIndex < focusableElements.length - 1 ? currentIndex + 1 ;
128
+ }
129
+
130
+ focusableElements[nextIndex]?.focus();
131
+ }
132
+
133
+ // Navigate focusable elements
134
+ private navigateFocusableElements(isShiftTab)= this.focusableElements.indexOf(document.activeElement as HTMLElement);
135
+ let nextIndex;
136
+
137
+ if (isShiftTab) {
138
+ nextIndex = currentIndex > 0 ? currentIndex - 1 ;
139
+ } else {
140
+ nextIndex = currentIndex < this.focusableElements.length - 1 ? currentIndex + 1 ;
141
+ }
142
+
143
+ this.focusableElements[nextIndex]?.focus();
144
+ }
145
+
146
+ // Add element to focus history
147
+ private addToFocusHistory(element)= this.focusHistory.filter(el => el !== element);
148
+
149
+ // Add to beginning
150
+ this.focusHistory.unshift(element);
151
+
152
+ // Maintain history size
153
+ if (this.focusHistory.length > this.maxHistorySize) {
154
+ this.focusHistory.pop();
155
+ }
156
+ }
157
+
158
+ // Get element description for screen readers
159
+ private getElementDescription(element)= element.getAttribute('aria-label');
160
+ if (ariaLabel) return ariaLabel;
161
+
162
+ const ariaLabelledBy = element.getAttribute('aria-labelledby');
163
+ if (ariaLabelledBy) {
164
+ const labelElement = document.getElementById(ariaLabelledBy);
165
+ if (labelElement) return labelElement.textContent || '';
166
+ }
167
+
168
+ const placeholder = element.getAttribute('placeholder');
169
+ if (placeholder) return placeholder;
170
+
171
+ const title = element.getAttribute('title');
172
+ if (title) return title;
173
+
174
+ return element.textContent || element.tagName.toLowerCase();
175
+ }
176
+
177
+ // Get element context for screen readers
178
+ private getElementContext(element)= element.closest('[role], section, article, aside, nav, header, footer, main');
179
+ if (landmark) {
180
+ const role = landmark.getAttribute('role');
181
+ const ariaLabel = landmark.getAttribute('aria-label');
182
+ return ariaLabel || role || landmark.tagName.toLowerCase();
183
+ }
184
+ return undefined;
185
+ }
186
+
187
+ // Create focus trap
188
+ createFocusTrap(container, options= {})= new FocusTrap(container, options);
189
+ this.focusTraps.set(trap.id, trap);
190
+ return trap;
191
+ }
192
+
193
+ // Remove focus trap
194
+ removeFocusTrap(trapId)= this.focusTraps.get(trapId);
195
+ if (trap) {
196
+ trap.deactivate();
197
+ this.focusTraps.delete(trapId);
198
+ }
199
+ }
200
+
201
+ // Focus first focusable element
202
+ focusFirst()= this.focusableElements[0];
203
+ if (firstElement) {
204
+ firstElement.focus();
205
+ }
206
+ }
207
+
208
+ // Focus last focusable element
209
+ focusLast()= this.focusableElements[this.focusableElements.length - 1];
210
+ if (lastElement) {
211
+ lastElement.focus();
212
+ }
213
+ }
214
+
215
+ // Focus next element
216
+ focusNext()= this.focusableElements.indexOf(document.activeElement as HTMLElement);
217
+ const nextIndex = currentIndex < this.focusableElements.length - 1 ? currentIndex + 1 ;
218
+ this.focusableElements[nextIndex]?.focus();
219
+ }
220
+
221
+ // Focus previous element
222
+ focusPrevious()= this.focusableElements.indexOf(document.activeElement as HTMLElement);
223
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 ;
224
+ this.focusableElements[prevIndex]?.focus();
225
+ }
226
+
227
+ // Focus element by index
228
+ focusByIndex(index)= 0 && index < this.focusableElements.length) {
229
+ this.focusableElements[index].focus();
230
+ }
231
+ }
232
+
233
+ // Focus element by ID
234
+ focusById(id)= document.getElementById(id);
235
+ if (element && this.focusableElements.includes(element)) {
236
+ element.focus();
237
+ }
238
+ }
239
+
240
+ // Focus element by data attribute
241
+ focusByDataAttribute(attribute, value)= document.querySelector(`[data-${attribute}="${value}"]`) as HTMLElement;
242
+ if (element && this.focusableElements.includes(element)) {
243
+ element.focus();
244
+ }
245
+ }
246
+
247
+ // Restore previous focus
248
+ restoreFocus()== null) {
249
+ this.lastFocusedElement.focus();
250
+ }
251
+ }
252
+
253
+ // Get focus history
254
+ getFocusHistory()] {
255
+ return [...this.focusHistory];
256
+ }
257
+
258
+ // Clear focus history
259
+ clearFocusHistory()= [];
260
+ }
261
+
262
+ // Get current focus information
263
+ getCurrentFocusInfo();
264
+ index;
265
+ total;
266
+ context;
267
+ } {
268
+ const currentElement = document.activeElement as HTMLElement;
269
+ const index = this.focusableElements.indexOf(currentElement);
270
+
271
+ return {
272
+ element,
273
+ index= 0 ? index ,
274
+ total,
275
+ context) };
276
+ }
277
+
278
+ // Check if element is focusable
279
+ isFocusable(element));
280
+ }
281
+
282
+ // Get all focusable elements
283
+ getAllFocusableElements()] {
284
+ return [...this.focusableElements];
285
+ }
286
+
287
+ // Get focusable elements within container
288
+ getFocusableElementsInContainer(container)] {
289
+ return this.focusableElements.filter(element =>
290
+ container.contains(element)
291
+ );
292
+ }
293
+
294
+ // Update focusable elements manually
295
+ refreshFocusableElements());
296
+ }
297
+
298
+ // Destroy focus manager
299
+ destroy()=> trap.deactivate());
300
+ this.focusTraps.clear();
301
+
302
+ // Clear focus history
303
+ this.focusHistory = [];
304
+
305
+ // Remove event listeners
306
+ document.removeEventListener('focusin', this.handleFocusIn.bind(this));
307
+ document.removeEventListener('focusout', this.handleFocusOut.bind(this));
308
+ document.removeEventListener('keydown', this.handleKeyDown.bind(this));
309
+ }
310
+ }
311
+
312
+ // Focus trap options
313
+ export interface FocusTrapOptions {
314
+ autoFocus?;
315
+ returnFocus?;
316
+ escapeDeactivates?;
317
+ clickOutsideDeactivates?;
318
+ allowOutsideClick?;
319
+ fallbackFocus?;
320
+ }
321
+
322
+ // Focus trap class
323
+ export class FocusTrap {
324
+ public readonly id;
325
+ public readonly container;
326
+ public readonly options;
327
+ public isActive= false;
328
+
329
+ private returnFocusElement= null;
330
+ private focusableElements] = [];
331
+ private eventListeners; handler) => void }> = [];
332
+
333
+ constructor(container, options= {}) {
334
+ this.id = `focus-trap-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
335
+ this.container = container;
336
+ this.options = {
337
+ autoFocus,
338
+ returnFocus,
339
+ escapeDeactivates,
340
+ clickOutsideDeactivates,
341
+ allowOutsideClick,
342
+ fallbackFocus,
343
+ ...options
344
+ };
345
+ }
346
+
347
+ // Activate focus trap
348
+ activate()) return;
349
+
350
+ // Store current focus for return
351
+ if (this.options.returnFocus) {
352
+ this.returnFocusElement = document.activeElement as HTMLElement;
353
+ }
354
+
355
+ // Get focusable elements within container
356
+ this.focusableElements = this.getFocusableElements();
357
+
358
+ // Auto-focus first element or fallback
359
+ if (this.options.autoFocus && this.focusableElements.length > 0) {
360
+ this.focusableElements[0].focus();
361
+ } else if (this.options.fallbackFocus) {
362
+ this.options.fallbackFocus.focus();
363
+ }
364
+
365
+ // Setup event listeners
366
+ this.setupEventListeners();
367
+
368
+ this.isActive = true;
369
+ }
370
+
371
+ // Deactivate focus trap
372
+ deactivate()) return;
373
+
374
+ // Remove event listeners
375
+ this.removeEventListeners();
376
+
377
+ // Return focus if requested
378
+ if (this.options.returnFocus && this.returnFocusElement) {
379
+ this.returnFocusElement.focus();
380
+ }
381
+
382
+ this.isActive = false;
383
+ }
384
+
385
+ // Get focusable elements within container
386
+ getFocusableElements()] {
387
+ const focusableSelectors = [
388
+ 'a[href]',
389
+ 'button])',
390
+ 'input])',
391
+ 'select])',
392
+ 'textarea])',
393
+ '[tabindex]="-1"])',
394
+ '[contenteditable="true"]'
395
+ ];
396
+
397
+ return Array.from(
398
+ this.container.querySelectorAll(focusableSelectors.join(','))
399
+ ) as HTMLElement[];
400
+ }
401
+
402
+ // Setup event listeners
403
+ private setupEventListeners()) {
404
+ const escapeHandler = (event) => {
405
+ if (event.key === 'Escape') {
406
+ this.deactivate();
407
+ }
408
+ };
409
+
410
+ document.addEventListener('keydown', escapeHandler);
411
+ this.eventListeners.push({ event, handler});
412
+ }
413
+
414
+ // Handle click outside
415
+ if (this.options.clickOutsideDeactivates) {
416
+ const clickHandler = (event) => {
417
+ if (!this.container.contains(event.target as Node)) {
418
+ this.deactivate();
419
+ }
420
+ };
421
+
422
+ document.addEventListener('click', clickHandler);
423
+ this.eventListeners.push({ event, handler});
424
+ }
425
+
426
+ // Handle tab key within trap
427
+ const tabHandler = (event) => {
428
+ if (event.key === 'Tab') {
429
+ event.preventDefault();
430
+ this.handleTabNavigation(event.shiftKey);
431
+ }
432
+ };
433
+
434
+ this.container.addEventListener('keydown', tabHandler);
435
+ this.eventListeners.push({ event, handler});
436
+ }
437
+
438
+ // Remove event listeners
439
+ private removeEventListeners(), handler }) => {
440
+ if (event === 'keydown' && handler.toString().includes('tabHandler')) {
441
+ this.container.removeEventListener(event, handler);
442
+ } else {
443
+ document.removeEventListener(event, handler);
444
+ }
445
+ });
446
+
447
+ this.eventListeners = [];
448
+ }
449
+
450
+ // Handle tab navigation within trap
451
+ private handleTabNavigation(isShiftTab)=== 0) return;
452
+
453
+ const currentIndex = this.focusableElements.indexOf(document.activeElement as HTMLElement);
454
+ let nextIndex;
455
+
456
+ if (isShiftTab) {
457
+ nextIndex = currentIndex > 0 ? currentIndex - 1 ;
458
+ } else {
459
+ nextIndex = currentIndex < this.focusableElements.length - 1 ? currentIndex + 1 ;
460
+ }
461
+
462
+ this.focusableElements[nextIndex]?.focus();
463
+ }
464
+
465
+ // Focus first element in trap
466
+ focusFirst()) {
467
+ this.focusableElements[0].focus();
468
+ }
469
+ }
470
+
471
+ // Focus last element in trap
472
+ focusLast()) {
473
+ this.focusableElements[this.focusableElements.length - 1].focus();
474
+ }
475
+ }
476
+
477
+ // Focus next element in trap
478
+ focusNext()=== 0) return;
479
+
480
+ const currentIndex = this.focusableElements.indexOf(document.activeElement as HTMLElement);
481
+ const nextIndex = currentIndex < this.focusableElements.length - 1 ? currentIndex + 1 ;
482
+ this.focusableElements[nextIndex]?.focus();
483
+ }
484
+
485
+ // Focus previous element in trap
486
+ focusPrevious()=== 0) return;
487
+
488
+ const currentIndex = this.focusableElements.indexOf(document.activeElement as HTMLElement);
489
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 ;
490
+ this.focusableElements[prevIndex]?.focus();
491
+ }
492
+
493
+ // Get trap information
494
+ getInfo();
495
+ isActive;
496
+ focusableElementsCount;
497
+ currentFocusIndex;
498
+ container;
499
+ } {
500
+ const currentIndex = this.focusableElements.indexOf(document.activeElement as HTMLElement);
501
+
502
+ return {
503
+ id,
504
+ isActive,
505
+ focusableElementsCount,
506
+ currentFocusIndex= 0 ? currentIndex ,
507
+ container};
508
+ }
509
+ }
510
+
511
+ // Focus restoration utilities
512
+ export class FocusRestoration {
513
+ private focusStack] = [];
514
+ private maxStackSize= 20;
515
+
516
+ // Push current focus to stack
517
+ pushFocus()= document.activeElement as HTMLElement;
518
+ if (currentElement && currentElement !== document.body) {
519
+ this.focusStack.push(currentElement);
520
+
521
+ // Maintain stack size
522
+ if (this.focusStack.length > this.maxStackSize) {
523
+ this.focusStack.shift();
524
+ }
525
+ }
526
+ }
527
+
528
+ // Pop and restore focus from stack
529
+ popFocus()= this.focusStack.pop();
530
+ if (element && element.offsetParent !== null) {
531
+ element.focus();
532
+ return true;
533
+ }
534
+ return false;
535
+ }
536
+
537
+ // Peek at top of focus stack
538
+ peekFocus()];
539
+ }
540
+
541
+ // Clear focus stack
542
+ clear()= [];
543
+ }
544
+
545
+ // Get stack size
546
+ getSize();
547
+ }
548
+
549
+ // Check if stack is empty
550
+ isEmpty()=== 0;
551
+ }
552
+ }
553
+
554
+ // Focus navigation utilities
555
+ export class FocusNavigation {
556
+ // Navigate to next heading
557
+ static focusNextHeading()= Array.from(document.querySelectorAll('h1, h2, h3, h4, h5, h6'));
558
+ const currentIndex = headings.indexOf(document.activeElement as HTMLElement);
559
+ const nextIndex = currentIndex < headings.length - 1 ? currentIndex + 1 ;
560
+
561
+ if (headings[nextIndex]) {
562
+ (headings[nextIndex] as HTMLElement).focus();
563
+ }
564
+ }
565
+
566
+ // Navigate to previous heading
567
+ static focusPreviousHeading()= Array.from(document.querySelectorAll('h1, h2, h3, h4, h5, h6'));
568
+ const currentIndex = headings.indexOf(document.activeElement as HTMLElement);
569
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 ;
570
+
571
+ if (headings[prevIndex]) {
572
+ (headings[prevIndex] as HTMLElement).focus();
573
+ }
574
+ }
575
+
576
+ // Navigate to next landmark
577
+ static focusNextLandmark()= Array.from(document.querySelectorAll('[role="banner"], [role="main"], [role="navigation"], [role="complementary"], [role="contentinfo"]'));
578
+ const currentIndex = landmarks.indexOf(document.activeElement as HTMLElement);
579
+ const nextIndex = currentIndex < landmarks.length - 1 ? currentIndex + 1 ;
580
+
581
+ if (landmarks[nextIndex]) {
582
+ (landmarks[nextIndex] as HTMLElement).focus();
583
+ }
584
+ }
585
+
586
+ // Navigate to previous landmark
587
+ static focusPreviousLandmark()= Array.from(document.querySelectorAll('[role="banner"], [role="main"], [role="navigation"], [role="complementary"], [role="contentinfo"]'));
588
+ const currentIndex = landmarks.indexOf(document.activeElement as HTMLElement);
589
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 ;
590
+
591
+ if (landmarks[prevIndex]) {
592
+ (landmarks[prevIndex] as HTMLElement).focus();
593
+ }
594
+ }
595
+
596
+ // Focus first focusable element in container
597
+ static focusFirstInContainer(container)= [
598
+ 'a[href]',
599
+ 'button])',
600
+ 'input])',
601
+ 'select])',
602
+ 'textarea])',
603
+ '[tabindex]="-1"])'
604
+ ];
605
+
606
+ const firstElement = container.querySelector(focusableSelectors.join(','));
607
+ if (firstElement) {
608
+ (firstElement as HTMLElement).focus();
609
+ }
610
+ }
611
+
612
+ // Focus last focusable element in container
613
+ static focusLastInContainer(container)= [
614
+ 'a[href]',
615
+ 'button])',
616
+ 'input])',
617
+ 'select])',
618
+ 'textarea])',
619
+ '[tabindex]="-1"])'
620
+ ];
621
+
622
+ const elements = Array.from(container.querySelectorAll(focusableSelectors.join(',')));
623
+ const lastElement = elements[elements.length - 1];
624
+ if (lastElement) {
625
+ (lastElement as HTMLElement).focus();
626
+ }
627
+ }
628
+ }
629
+
630
+ // Export default instances
631
+ export const focusManager = new AccessibilityFocusManager();
632
+ export const focusRestoration = new FocusRestoration();
633
+
634
+ // Export default
635
+ export default {
636
+ AccessibilityFocusManager,
637
+ FocusTrap,
638
+ FocusRestoration,
639
+ FocusNavigation,
640
+ focusManager,
641
+ focusRestoration
642
+ };