@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
@@ -0,0 +1,660 @@
1
+ // Motion reduction theme configuration
2
+ export interface MotionReductionThemeConfig {
3
+ motion: {
4
+ reduced: boolean;
5
+ duration: {
6
+ fast: string;
7
+ normal: string;
8
+ slow: string;
9
+ };
10
+ easing: {
11
+ ease: string;
12
+ easeIn: string;
13
+ easeOut: string;
14
+ easeInOut: string;
15
+ };
16
+ animations: {
17
+ enabled: boolean;
18
+ type: 'none' | 'reduced' | 'full';
19
+ preferences: {
20
+ reduceMotion: boolean;
21
+ reduceAnimation: boolean;
22
+ reduceTransition: boolean;
23
+ reduceTransform: boolean;
24
+ };
25
+ };
26
+ };
27
+ }
28
+
29
+ // Motion reduction utilities
30
+ export class MotionReductionManager {
31
+ private isReducedMotion: boolean = false;
32
+ private isReducedAnimation: boolean = false;
33
+ private isReducedTransition: boolean = false;
34
+ private isReducedTransform: boolean = false;
35
+ // private motionPreferences: Set<string> = new Set(); // Unused for now
36
+ private originalStyles: Map<HTMLElement, string> = new Map();
37
+ private reducedMotionStyles: Map<HTMLElement, string> = new Map();
38
+
39
+ constructor() {
40
+ this.initializeSystemPreference();
41
+ this.setupEventListeners();
42
+ }
43
+
44
+ // Initialize system preference detection
45
+ private initializeSystemPreference(): void {
46
+ if (typeof window !== 'undefined' && window.matchMedia) {
47
+ const reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
48
+ this.isReducedMotion = reducedMotionQuery.matches;
49
+
50
+ reducedMotionQuery.addEventListener('change', (e) => {
51
+ this.isReducedMotion = e.matches;
52
+ this.applyMotionReduction();
53
+ });
54
+ }
55
+ }
56
+
57
+ // Setup event listeners
58
+ private setupEventListeners(): void {
59
+ // Listen for preference changes
60
+ if (typeof window !== 'undefined') {
61
+ window.addEventListener('storage', (e) => {
62
+ if (e.key === 'motion-reduction-preferences') {
63
+ this.loadPreferences();
64
+ }
65
+ });
66
+ }
67
+ }
68
+
69
+ // Enable motion reduction
70
+ enable(): void {
71
+ this.isReducedMotion = true;
72
+ this.applyMotionReduction();
73
+ }
74
+
75
+ // Disable motion reduction
76
+ disable(): void {
77
+ this.isReducedMotion = false;
78
+ this.removeMotionReduction();
79
+ }
80
+
81
+ // Toggle motion reduction
82
+ toggle(): void {
83
+ if (this.isReducedMotion) {
84
+ this.disable();
85
+ } else {
86
+ this.enable();
87
+ }
88
+ }
89
+
90
+ // Check if motion reduction is enabled
91
+ isMotionReduced(): boolean {
92
+ return this.isReducedMotion;
93
+ }
94
+
95
+ // Set specific motion reduction preferences
96
+ setPreferences(preferences: {
97
+ reduceAnimation?: boolean;
98
+ reduceTransition?: boolean;
99
+ reduceTransform?: boolean;
100
+ }): void {
101
+ if (preferences.reduceAnimation !== undefined) {
102
+ this.isReducedAnimation = preferences.reduceAnimation;
103
+ }
104
+ if (preferences.reduceTransition !== undefined) {
105
+ this.isReducedTransition = preferences.reduceTransition;
106
+ }
107
+ if (preferences.reduceTransform !== undefined) {
108
+ this.isReducedTransform = preferences.reduceTransform;
109
+ }
110
+
111
+ this.savePreferences();
112
+ this.applyMotionReduction();
113
+ }
114
+
115
+ // Get current motion reduction preferences
116
+ getPreferences(): {
117
+ reduceMotion: boolean;
118
+ reduceAnimation: boolean;
119
+ reduceTransition: boolean;
120
+ reduceTransform: boolean;
121
+ } {
122
+ return {
123
+ reduceMotion: this.isReducedMotion,
124
+ reduceAnimation: this.isReducedAnimation,
125
+ reduceTransition: this.isReducedTransition,
126
+ reduceTransform: this.isReducedTransform
127
+ };
128
+ }
129
+
130
+ // Apply motion reduction to the document
131
+ applyMotionReduction(): void {
132
+ if (!this.isReducedMotion) return;
133
+
134
+ // Add reduced motion class to document
135
+ document.documentElement.classList.add('reduced-motion');
136
+
137
+ // Apply reduced motion styles
138
+ this.applyReducedMotionStyles();
139
+
140
+ // Process existing elements
141
+ this.processExistingElements();
142
+
143
+ // Announce motion reduction change
144
+ if (screenReaderOptimizer) {
145
+ screenReaderOptimizer.announceMotionChange(true);
146
+ }
147
+ }
148
+
149
+ // Remove motion reduction from the document
150
+ removeMotionReduction(): void {
151
+ // Remove reduced motion class
152
+ document.documentElement.classList.remove('reduced-motion');
153
+
154
+ // Remove reduced motion styles
155
+ this.removeReducedMotionStyles();
156
+
157
+ // Restore original styles
158
+ this.restoreOriginalStyles();
159
+
160
+ // Announce motion reduction change
161
+ if (screenReaderOptimizer) {
162
+ screenReaderOptimizer.announceMotionChange(false);
163
+ }
164
+ }
165
+
166
+ // Apply reduced motion styles
167
+ private applyReducedMotionStyles(): void {
168
+ const style = document.createElement('style');
169
+ style.id = 'reduced-motion-styles';
170
+
171
+ style.textContent = `
172
+ .reduced-motion,
173
+ .reduced-motion * {
174
+ /* Disable animations */
175
+ animation-duration: 0.01ms !important;
176
+ animation-iteration-count: 1 !important;
177
+ animation-delay: 0s !important;
178
+
179
+ /* Disable transitions */
180
+ transition-duration: 0.01ms !important;
181
+ transition-delay: 0s !important;
182
+
183
+ /* Disable transforms */
184
+ transform: none !important;
185
+
186
+ /* Disable scroll behavior */
187
+ scroll-behavior: auto !important;
188
+ }
189
+
190
+ .reduced-motion .motion-safe,
191
+ .reduced-motion *[data-motion-safe="true"] {
192
+ /* Allow safe motion for essential animations */
193
+ animation-duration: 150ms !important;
194
+ transition-duration: 150ms !important;
195
+ }
196
+
197
+ .reduced-motion .motion-reduce,
198
+ .reduced-motion *[data-motion-reduce="true"] {
199
+ /* Apply reduced motion for non-essential animations */
200
+ animation-duration: 50ms !important;
201
+ transition-duration: 50ms !important;
202
+ }
203
+
204
+ /* Specific component overrides */
205
+ .reduced-motion .modal,
206
+ .reduced-motion .tooltip,
207
+ .reduced-motion .popover {
208
+ animation: none !important;
209
+ transition: none !important;
210
+ }
211
+
212
+ .reduced-motion .skeleton {
213
+ animation: none !important;
214
+ }
215
+
216
+ .reduced-motion .progress-bar {
217
+ transition: none !important;
218
+ }
219
+
220
+ .reduced-motion .carousel,
221
+ .reduced-motion .slider {
222
+ scroll-behavior: auto !important;
223
+ }
224
+ `;
225
+
226
+ document.head.appendChild(style);
227
+ }
228
+
229
+ // Remove reduced motion styles
230
+ private removeReducedMotionStyles(): void {
231
+ const style = document.getElementById('reduced-motion-styles');
232
+ if (style) {
233
+ style.remove();
234
+ }
235
+ }
236
+
237
+ // Process existing elements
238
+ private processExistingElements(): void {
239
+ // Process elements with animations
240
+ const animatedElements = document.querySelectorAll('[class*="animate"], [class*="transition"], [class*="transform"]');
241
+ animatedElements.forEach(element => {
242
+ this.processElement(element as HTMLElement);
243
+ });
244
+
245
+ // Process elements with data attributes
246
+ const motionElements = document.querySelectorAll('[data-motion], [data-animation], [data-transition]');
247
+ motionElements.forEach(element => {
248
+ this.processElement(element as HTMLElement);
249
+ });
250
+ }
251
+
252
+ // Process individual element
253
+ private processElement(element: HTMLElement): void {
254
+ // Store original styles if not already stored
255
+ if (!this.originalStyles.has(element)) {
256
+ this.originalStyles.set(element, element.style.cssText);
257
+ }
258
+
259
+ // Apply reduced motion styles
260
+ const reducedStyles = this.getReducedMotionStyles(element);
261
+ element.style.cssText = reducedStyles;
262
+
263
+ // Store reduced styles
264
+ this.reducedMotionStyles.set(element, reducedStyles);
265
+ }
266
+
267
+ // Get reduced motion styles for element
268
+ private getReducedMotionStyles(element: HTMLElement): string {
269
+ const originalStyles = element.style.cssText;
270
+
271
+ let reducedStyles = originalStyles;
272
+
273
+ // Remove animation properties
274
+ if (this.isReducedAnimation) {
275
+ reducedStyles = reducedStyles.replace(/animation[^;]*;?/g, '');
276
+ reducedStyles += 'animation: none !important;';
277
+ }
278
+
279
+ // Remove transition properties
280
+ if (this.isReducedTransition) {
281
+ reducedStyles = reducedStyles.replace(/transition[^;]*;?/g, '');
282
+ reducedStyles += 'transition: none !important;';
283
+ }
284
+
285
+ // Remove transform properties
286
+ if (this.isReducedTransform) {
287
+ reducedStyles = reducedStyles.replace(/transform[^;]*;?/g, '');
288
+ reducedStyles += 'transform: none !important;';
289
+ }
290
+
291
+ return reducedStyles;
292
+ }
293
+
294
+ // Restore original styles
295
+ private restoreOriginalStyles(): void {
296
+ this.originalStyles.forEach((originalStyle, element) => {
297
+ if (element && element.offsetParent !== null) {
298
+ element.style.cssText = originalStyle;
299
+ }
300
+ });
301
+
302
+ this.originalStyles.clear();
303
+ this.reducedMotionStyles.clear();
304
+ }
305
+
306
+ // Save preferences to localStorage
307
+ private savePreferences(): void {
308
+ if (typeof window !== 'undefined' && window.localStorage) {
309
+ const preferences = {
310
+ reduceAnimation: this.isReducedAnimation,
311
+ reduceTransition: this.isReducedTransition,
312
+ reduceTransform: this.isReducedTransform,
313
+ timestamp: Date.now()
314
+ };
315
+
316
+ window.localStorage.setItem('motion-reduction-preferences', JSON.stringify(preferences));
317
+ }
318
+ }
319
+
320
+ // Load preferences from localStorage
321
+ private loadPreferences(): void {
322
+ if (typeof window !== 'undefined' && window.localStorage) {
323
+ try {
324
+ const stored = window.localStorage.getItem('motion-reduction-preferences');
325
+ if (stored) {
326
+ const preferences = JSON.parse(stored);
327
+
328
+ this.isReducedAnimation = preferences.reduceAnimation || false;
329
+ this.isReducedTransition = preferences.reduceTransition || false;
330
+ this.isReducedTransform = preferences.reduceTransform || false;
331
+ }
332
+ } catch (error) {
333
+ console.warn('Failed to load motion reduction preferences:', error);
334
+ }
335
+ }
336
+ }
337
+
338
+ // Check if element should have motion reduced
339
+ shouldReduceMotion(element: HTMLElement): boolean {
340
+ if (!this.isReducedMotion) return false;
341
+
342
+ // Check for motion-safe override
343
+ if (element.classList.contains('motion-safe') || element.getAttribute('data-motion-safe') === 'true') {
344
+ return false;
345
+ }
346
+
347
+ // Check for motion-reduce override
348
+ if (element.classList.contains('motion-reduce') || element.getAttribute('data-motion-reduce') === 'true') {
349
+ return true;
350
+ }
351
+
352
+ return true;
353
+ }
354
+
355
+ // Get appropriate duration for element
356
+ getDuration(element: HTMLElement, defaultDuration: string, type: 'animation' | 'transition'): string {
357
+ if (!this.shouldReduceMotion(element)) {
358
+ return defaultDuration;
359
+ }
360
+
361
+ // Parse duration
362
+ const duration = parseFloat(defaultDuration);
363
+ const unit = defaultDuration.replace(/[\d.]/g, '');
364
+
365
+ if (type === 'animation') {
366
+ return this.isReducedAnimation ? '0.01ms' : `${Math.min(duration * 0.1, 50)}${unit}`;
367
+ } else {
368
+ return this.isReducedTransition ? '0.01ms' : `${Math.min(duration * 0.1, 50)}${unit}`;
369
+ }
370
+ }
371
+
372
+ // Get appropriate easing for element
373
+ getEasing(element: HTMLElement, defaultEasing: string): string {
374
+ if (!this.shouldReduceMotion(element)) {
375
+ return defaultEasing;
376
+ }
377
+
378
+ // Use linear easing for reduced motion
379
+ return 'linear';
380
+ }
381
+
382
+ // Create motion-safe wrapper
383
+ createMotionSafeWrapper(element: HTMLElement, callback: () => void): void {
384
+ if (!this.shouldReduceMotion(element)) {
385
+ callback();
386
+ return;
387
+ }
388
+
389
+ // Execute callback without motion
390
+ const originalReducedMotion = this.isReducedMotion;
391
+ this.isReducedMotion = false;
392
+
393
+ try {
394
+ callback();
395
+ } finally {
396
+ this.isReducedMotion = originalReducedMotion;
397
+ }
398
+ }
399
+
400
+ // Animate element with motion reduction awareness
401
+ animateElement(
402
+ element: HTMLElement,
403
+ keyframes: Keyframe[],
404
+ options: KeyframeAnimationOptions
405
+ ): Animation {
406
+ if (this.shouldReduceMotion(element)) {
407
+ // Apply reduced motion options
408
+ const reducedOptions = {
409
+ ...options,
410
+ duration: Math.min(typeof options.duration === 'number' ? options.duration : 300, 50),
411
+ easing: 'linear'
412
+ };
413
+
414
+ return element.animate(keyframes, reducedOptions);
415
+ }
416
+
417
+ return element.animate(keyframes, options);
418
+ }
419
+
420
+ // Add motion reduction observer
421
+ addMotionReductionObserver(callback: (isReduced: boolean) => void): () => void {
422
+ const observer = new MutationObserver(() => {
423
+ callback(this.isReducedMotion);
424
+ });
425
+
426
+ observer.observe(document.documentElement, {
427
+ attributes: true,
428
+ attributeFilter: ['class']
429
+ });
430
+
431
+ // Return cleanup function
432
+ return () => observer.disconnect();
433
+ }
434
+
435
+ // Get motion reduction statistics
436
+ getStatistics(): {
437
+ totalElements: number;
438
+ reducedElements: number;
439
+ safeElements: number;
440
+ preferences: {
441
+ reduceMotion: boolean;
442
+ reduceAnimation: boolean;
443
+ reduceTransition: boolean;
444
+ reduceTransform: boolean;
445
+ };
446
+ } {
447
+ const totalElements = document.querySelectorAll('*').length;
448
+ const reducedElements = document.querySelectorAll('.reduced-motion *').length;
449
+ const safeElements = document.querySelectorAll('.motion-safe, [data-motion-safe="true"]').length;
450
+
451
+ return {
452
+ totalElements,
453
+ reducedElements,
454
+ safeElements,
455
+ preferences: this.getPreferences()
456
+ };
457
+ }
458
+
459
+ // Reset all motion reduction settings
460
+ reset(): void {
461
+ this.isReducedMotion = false;
462
+ this.isReducedAnimation = false;
463
+ this.isReducedTransition = false;
464
+ this.isReducedTransform = false;
465
+
466
+ this.removeMotionReduction();
467
+ this.clearPreferences();
468
+ }
469
+
470
+ // Clear stored preferences
471
+ private clearPreferences(): void {
472
+ if (typeof window !== 'undefined' && window.localStorage) {
473
+ window.localStorage.removeItem('motion-reduction-preferences');
474
+ }
475
+
476
+ this.originalStyles.clear();
477
+ this.reducedMotionStyles.clear();
478
+ }
479
+
480
+ // Destroy motion reduction manager
481
+ destroy(): void {
482
+ this.removeMotionReduction();
483
+ this.clearPreferences();
484
+
485
+ // Remove event listeners
486
+ if (typeof window !== 'undefined') {
487
+ window.removeEventListener('storage', this.loadPreferences.bind(this));
488
+ }
489
+ }
490
+ }
491
+
492
+ // Motion reduction utilities
493
+ export class MotionReductionUtils {
494
+ // Check if motion should be reduced for element
495
+ static shouldReduceMotion(element: HTMLElement): boolean {
496
+ // Check system preference
497
+ if (typeof window !== 'undefined' && window.matchMedia) {
498
+ const reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
499
+ if (reducedMotionQuery.matches) return true;
500
+ }
501
+
502
+ // Check element attributes
503
+ if (element.classList.contains('motion-reduce') || element.getAttribute('data-motion-reduce') === 'true') {
504
+ return true;
505
+ }
506
+
507
+ // Check parent elements
508
+ const parent = element.closest('.motion-reduce, [data-motion-reduce="true"]');
509
+ if (parent) return true;
510
+
511
+ return false;
512
+ }
513
+
514
+ // Get reduced duration
515
+ static getReducedDuration(duration: string, reductionFactor: number = 0.1): string {
516
+ const parsed = parseFloat(duration);
517
+ const unit = duration.replace(/[\d.]/g, '');
518
+
519
+ return `${Math.max(parsed * reductionFactor, 1)}${unit}`;
520
+ }
521
+
522
+ // Get reduced easing
523
+ static getReducedEasing(_easing: string): string {
524
+ return 'linear';
525
+ }
526
+
527
+ // Create motion-safe animation
528
+ static createMotionSafeAnimation(
529
+ element: HTMLElement,
530
+ keyframes: Keyframe[],
531
+ options: KeyframeAnimationOptions
532
+ ): Animation | null {
533
+ if (this.shouldReduceMotion(element)) {
534
+ // Return null to indicate no animation should be performed
535
+ return null;
536
+ }
537
+
538
+ return element.animate(keyframes, options);
539
+ }
540
+
541
+ // Apply motion reduction to CSS custom properties
542
+ static applyMotionReductionToCSS(element: HTMLElement): void {
543
+ if (!this.shouldReduceMotion(element)) return;
544
+
545
+ const style = element.style;
546
+
547
+ // Reduce animation duration
548
+ if (style.getPropertyValue('--animation-duration')) {
549
+ const duration = style.getPropertyValue('--animation-duration');
550
+ style.setProperty('--animation-duration', this.getReducedDuration(duration));
551
+ }
552
+
553
+ // Reduce transition duration
554
+ if (style.getPropertyValue('--transition-duration')) {
555
+ const duration = style.getPropertyValue('--transition-duration');
556
+ style.setProperty('--transition-duration', this.getReducedDuration(duration));
557
+ }
558
+
559
+ // Set easing to linear
560
+ if (style.getPropertyValue('--animation-easing')) {
561
+ style.setProperty('--animation-easing', 'linear');
562
+ }
563
+
564
+ if (style.getPropertyValue('--transition-easing')) {
565
+ style.setProperty('--transition-easing', 'linear');
566
+ }
567
+ }
568
+
569
+ // Remove motion reduction from CSS custom properties
570
+ static removeMotionReductionFromCSS(element: HTMLElement): void {
571
+ const style = element.style;
572
+
573
+ // Remove custom properties
574
+ style.removeProperty('--animation-duration');
575
+ style.removeProperty('--transition-duration');
576
+ style.removeProperty('--animation-easing');
577
+ style.removeProperty('--transition-easing');
578
+ }
579
+
580
+ // Check if element has motion
581
+ static hasMotion(element: HTMLElement): boolean {
582
+ const computedStyle = window.getComputedStyle(element);
583
+
584
+ return (
585
+ computedStyle.animation !== 'none' ||
586
+ computedStyle.transition !== 'all 0s ease 0s' ||
587
+ computedStyle.transform !== 'none'
588
+ );
589
+ }
590
+
591
+ // Get motion information for element
592
+ static getMotionInfo(element: HTMLElement): {
593
+ hasAnimation: boolean;
594
+ hasTransition: boolean;
595
+ hasTransform: boolean;
596
+ animationDuration: string;
597
+ transitionDuration: string;
598
+ transform: string;
599
+ } {
600
+ const computedStyle = window.getComputedStyle(element);
601
+
602
+ return {
603
+ hasAnimation: computedStyle.animation !== 'none',
604
+ hasTransition: computedStyle.transition !== 'all 0s ease 0s',
605
+ hasTransform: computedStyle.transform !== 'none',
606
+ animationDuration: computedStyle.animationDuration,
607
+ transitionDuration: computedStyle.transitionDuration,
608
+ transform: computedStyle.transform
609
+ };
610
+ }
611
+ }
612
+
613
+ // Motion reduction hooks for React
614
+ export class MotionReductionHooks {
615
+ // Get motion reduction state
616
+ static useMotionReduction(): {
617
+ isReduced: boolean;
618
+ preferences: {
619
+ reduceAnimation: boolean;
620
+ reduceTransition: boolean;
621
+ reduceTransform: boolean;
622
+ };
623
+ shouldReduceMotion: (element: HTMLElement) => boolean;
624
+ } {
625
+ // This would be implemented in a React component
626
+ // For now, return a mock implementation
627
+ return {
628
+ isReduced: false,
629
+ preferences: {
630
+ reduceAnimation: false,
631
+ reduceTransition: false,
632
+ reduceTransform: false
633
+ },
634
+ shouldReduceMotion: () => false
635
+ };
636
+ }
637
+
638
+ // Get motion-safe duration
639
+ static useMotionSafeDuration(defaultDuration: string, _type: 'animation' | 'transition'): string {
640
+ // This would be implemented in a React component
641
+ return defaultDuration;
642
+ }
643
+
644
+ // Get motion-safe easing
645
+ static useMotionSafeEasing(defaultEasing: string): string {
646
+ // This would be implemented in a React component
647
+ return defaultEasing;
648
+ }
649
+ }
650
+
651
+ // Export default instances
652
+ export declare const motionReductionManager: new MotionReductionManager();
653
+
654
+ // Export default
655
+ export default {
656
+ MotionReductionManager,
657
+ MotionReductionUtils,
658
+ MotionReductionHooks,
659
+ motionReductionManager
660
+ };