@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,352 @@
1
+ import { useState, useCallback, useRef, useEffect } from 'react'
2
+
3
+ export interface TransitionConfig {
4
+ duration?}
5
+
6
+ export interface TransitionState {
7
+ isTransitioning}
8
+
9
+ export interface TransitionPerformanceMetrics {
10
+ frameRate}
11
+
12
+ export interface AdvancedTransitionSystemCallbacks {
13
+ onTransitionStart?) => void
14
+ onTransitionComplete?) => void
15
+ onPerformanceOptimized?) => void
16
+ onDeviceOptimized?) => void
17
+ onAccessibilityEnhanced?) => void
18
+ }
19
+
20
+ export const useAdvancedTransitionSystem = (
21
+ config= {},
22
+ callbacks= {}
23
+ ) => {
24
+ const {
25
+ duration = 300,
26
+ easing = 'ease-out',
27
+ delay = 0,
28
+ performance= true,
29
+ deviceOptimization = true,
30
+ accessibility = true,
31
+ batteryAware = true
32
+ } = config
33
+
34
+ const [transitionState, setTransitionState] = useState<TransitionState>({
35
+ isTransitioning,
36
+ currentEasing,
37
+ currentDuration,
38
+ currentDelay,
39
+ performanceScore,
40
+ deviceType,
41
+ batteryLevel,
42
+ reducedMotion})
43
+
44
+ const [performanceMetrics, setPerformanceMetrics] = useState<TransitionPerformanceMetrics>({
45
+ frameRate,
46
+ memoryUsage,
47
+ transitionTime,
48
+ smoothness,
49
+ batteryImpact})
50
+
51
+ const [isOptimizing, setIsOptimizing] = useState(false)
52
+ const [optimizations, setOptimizations] = useState<string[]>([])
53
+
54
+ const transitionStartTimeRef = useRef(0)
55
+ const frameCountRef = useRef(0)
56
+ const lastFrameTimeRef = useRef(0)
57
+ const performanceTimerRef = useRef<number | null>(null)
58
+
59
+
60
+ // Detect device type and optimize transitions accordingly
61
+ const detectDeviceType = useCallback(() => {
62
+ const width = window.innerWidth
63
+
64
+ let deviceType] = 'desktop'
65
+
66
+ if (width <= 480) {
67
+ deviceType = 'mobile'
68
+ } else if (width <= 768) {
69
+ deviceType = 'tablet'
70
+ } else {
71
+ deviceType = 'desktop'
72
+ }
73
+
74
+ setTransitionState(prev => ({
75
+ ...prev,
76
+ deviceType
77
+ }))
78
+
79
+ return deviceType
80
+ }, [])
81
+
82
+ // Detect reduced motion preference
83
+ const detectReducedMotion = useCallback(() => {
84
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion)').matches
85
+
86
+ setTransitionState(prev => ({
87
+ ...prev,
88
+ reducedMotion}))
89
+
90
+ return prefersReducedMotion
91
+ }, [])
92
+
93
+ // Simulate battery level detection (in real app, use Battery API)
94
+ const detectBatteryLevel = useCallback(() => {
95
+ // Simulate battery levels for demo purposes
96
+ const batteryLevels = ['normal', 'low', 'critical'] as const
97
+ const randomLevel = batteryLevels[Math.floor(Math.random() * batteryLevels.length)]
98
+
99
+ setTransitionState(prev => ({
100
+ ...prev,
101
+ batteryLevel}))
102
+
103
+ return randomLevel
104
+ }, [])
105
+
106
+ // Optimize transition duration based on device and battery
107
+ const optimizeTransitionDuration = useCallback((baseDuration) => {
108
+ let optimizedDuration = baseDuration
109
+
110
+ // Device-specific optimization
111
+ if (deviceOptimization) {
112
+ switch (transitionState.deviceType) {
113
+ case 'mobile'= Math.min(baseDuration, 200)
114
+ break
115
+ case 'tablet'= Math.min(baseDuration, 300)
116
+ break
117
+ case 'desktop'= baseDuration
118
+ break
119
+ }
120
+ }
121
+
122
+ // Battery-aware optimization
123
+ if (batteryAware) {
124
+ switch (transitionState.batteryLevel) {
125
+ case 'low'= Math.min(optimizedDuration, 150)
126
+ break
127
+ case 'critical'= Math.min(optimizedDuration, 100)
128
+ break
129
+ case 'normal'}
130
+ }
131
+
132
+ // Reduced motion optimization
133
+ if (transitionState.reducedMotion) {
134
+ optimizedDuration = 0
135
+ }
136
+
137
+ return optimizedDuration
138
+ }, [deviceOptimization, batteryAware, transitionState.deviceType, transitionState.batteryLevel, transitionState.reducedMotion])
139
+
140
+ // Start a transition with optimization
141
+ const startTransition = useCallback((customConfig?) => {
142
+ const finalConfig = { ...config, ...customConfig }
143
+ const optimizedDuration = optimizeTransitionDuration(finalConfig.duration || duration)
144
+
145
+ setTransitionState(prev => ({
146
+ ...prev,
147
+ isTransitioning,
148
+ currentDuration,
149
+ currentDelay,
150
+ currentEasing}))
151
+
152
+ transitionStartTimeRef.current = performance.now()
153
+ frameCountRef.current = 0
154
+ lastFrameTimeRef.current = performance.now()
155
+
156
+ callbacks.onTransitionStart?.(finalConfig)
157
+
158
+ // Complete transition after duration
159
+ setTimeout(() => {
160
+ setTransitionState(prev => ({
161
+ ...prev,
162
+ isTransitioning}))
163
+
164
+ const actualDuration = performance.now() - transitionStartTimeRef.current
165
+ callbacks.onTransitionComplete?.(actualDuration)
166
+ }, optimizedDuration + (finalConfig.delay || delay))
167
+ }, [config, duration, delay, easing, optimizeTransitionDuration, callbacks])
168
+
169
+ // Performance monitoring
170
+ const startPerformanceMonitoring = useCallback(() => {
171
+ if (!enablePerformance) return () => {}
172
+
173
+ const measurePerformance = () => {
174
+ const currentTime = performance.now()
175
+ const deltaTime = currentTime - lastFrameTimeRef.current
176
+
177
+ if (deltaTime > 0) {
178
+ frameCountRef.current++
179
+ const currentFrameRate = 1000 / deltaTime
180
+
181
+ // Calculate smoothness based on frame rate consistency
182
+ const smoothness = Math.max(0, 100 - Math.abs(currentFrameRate - 60))
183
+
184
+ // Simulate memory usage (in real app, use Performance API)
185
+ const memoryUsage = Math.random() * 100
186
+
187
+ // Calculate transition time if transitioning
188
+ const transitionTime = transitionState.isTransitioning
189
+ ? currentTime - transitionStartTimeRef.current
190
+ = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
191
+
192
+ setPerformanceMetrics({
193
+ frameRate),
194
+ memoryUsage),
195
+ transitionTime),
196
+ smoothness),
197
+ batteryImpact)
198
+ })
199
+
200
+ // Update performance score
201
+ const overallScore = Math.round((smoothness + batteryImpact) / 2)
202
+ setTransitionState(prev => ({
203
+ ...prev,
204
+ performanceScore}))
205
+
206
+ lastFrameTimeRef.current = currentTime
207
+
208
+ callbacks.onPerformanceOptimized?.({
209
+ frameRate),
210
+ memoryUsage),
211
+ transitionTime),
212
+ smoothness),
213
+ batteryImpact)
214
+ })
215
+ }
216
+
217
+ performanceTimerRef.current = requestAnimationFrame(measurePerformance)
218
+ }
219
+
220
+ performanceTimerRef.current = requestAnimationFrame(measurePerformance)
221
+
222
+ return () => {
223
+ if (performanceTimerRef.current) {
224
+ cancelAnimationFrame(performanceTimerRef.current)
225
+ }
226
+ }
227
+ }, [performance, transitionState.isTransitioning, callbacks])
228
+
229
+ // Device optimization
230
+ const optimizeForDevice = useCallback(() => {
231
+ if (!deviceOptimization) return
232
+
233
+ const deviceType = detectDeviceType()
234
+ const optimizations] = []
235
+
236
+ switch (deviceType) {
237
+ case 'mobile')')
238
+ optimizations.push('Reduced animation complexity')
239
+ optimizations.push('Touch-friendly timing')
240
+ break
241
+ case 'tablet')')
242
+ optimizations.push('Balanced performance and smoothness')
243
+ break
244
+ case 'desktop')')
245
+ optimizations.push('Maximum visual quality')
246
+ break
247
+ }
248
+
249
+ setOptimizations(prev => [...prev, ...optimizations])
250
+ callbacks.onDeviceOptimized?.(deviceType)
251
+ }, [deviceOptimization, detectDeviceType, callbacks])
252
+
253
+ // Accessibility enhancement
254
+ const enhanceAccessibility = useCallback(() => {
255
+ if (!accessibility) return
256
+
257
+ const enhancements = [
258
+ 'Reduced motion support',
259
+ 'Screen reader compatibility',
260
+ 'Focus management during transitions',
261
+ 'ARIA transition states',
262
+ 'Keyboard navigation support'
263
+ ]
264
+
265
+ enhancements.forEach(enhancement => {
266
+ callbacks.onAccessibilityEnhanced?.(enhancement)
267
+ })
268
+ }, [accessibility, callbacks])
269
+
270
+ // Auto-optimize on mount
271
+ const autoOptimize = useCallback(() => {
272
+ setIsOptimizing(true)
273
+
274
+ setTimeout(() => {
275
+ detectDeviceType()
276
+ detectReducedMotion()
277
+ detectBatteryLevel()
278
+ optimizeForDevice()
279
+ enhanceAccessibility()
280
+
281
+ setIsOptimizing(false)
282
+ }, 200)
283
+ }, [detectDeviceType, detectReducedMotion, detectBatteryLevel, optimizeForDevice, enhanceAccessibility])
284
+
285
+ // Initialize on mount
286
+ useEffect(() => {
287
+ autoOptimize()
288
+
289
+ const stopPerformanceMonitoring = startPerformanceMonitoring()
290
+
291
+ // Listen for device changes
292
+ const handleResize = () => {
293
+ detectDeviceType()
294
+ }
295
+
296
+ // Listen for reduced motion changes
297
+ const mediaQuery = window.matchMedia('(prefers-reduced-motion)')
298
+ const handleMotionChange = () => {
299
+ detectReducedMotion()
300
+ }
301
+
302
+ window.addEventListener('resize', handleResize)
303
+ mediaQuery.addEventListener('change', handleMotionChange)
304
+
305
+ return () => {
306
+ stopPerformanceMonitoring()
307
+ window.removeEventListener('resize', handleResize)
308
+ mediaQuery.removeEventListener('change', handleMotionChange)
309
+ }
310
+ }, [autoOptimize, startPerformanceMonitoring, detectDeviceType, detectReducedMotion])
311
+
312
+ // Cleanup on unmount
313
+ useEffect(() => {
314
+ return () => {
315
+ if (performanceTimerRef.current) {
316
+ cancelAnimationFrame(performanceTimerRef.current)
317
+ }
318
+ }
319
+ }, [])
320
+
321
+ return {
322
+ // State
323
+ transitionState,
324
+ performanceMetrics,
325
+ isOptimizing,
326
+ optimizations,
327
+
328
+ // Functions
329
+ startTransition,
330
+ optimizeForDevice,
331
+ enhanceAccessibility,
332
+ startPerformanceMonitoring,
333
+ autoOptimize,
334
+
335
+ // Utility functions
336
+ getTransitionDuration) => transitionState.currentDuration,
337
+ getTransitionEasing) => transitionState.currentEasing,
338
+ getTransitionDelay) => transitionState.currentDelay,
339
+ isTransitionActive) => transitionState.isTransitioning,
340
+ getDeviceType) => transitionState.deviceType,
341
+ getBatteryLevel) => transitionState.batteryLevel,
342
+ getReducedMotion) => transitionState.reducedMotion,
343
+ getPerformanceScore) => transitionState.performanceScore,
344
+ isPerformanceOptimal) => transitionState.performanceScore >= 80,
345
+ getFrameRate) => performanceMetrics.frameRate,
346
+ getSmoothness) => performanceMetrics.smoothness,
347
+ getBatteryImpact) => performanceMetrics.batteryImpact,
348
+ clearOptimizations) => setOptimizations([])
349
+ }
350
+ }
351
+
352
+ export default useAdvancedTransitionSystem
@@ -0,0 +1,352 @@
1
+ import { useState, useCallback, useRef, useEffect } from 'react'
2
+
3
+ export interface TransitionConfig {
4
+ duration?}
5
+
6
+ export interface TransitionState {
7
+ isTransitioning}
8
+
9
+ export interface TransitionPerformanceMetrics {
10
+ frameRate}
11
+
12
+ export interface AdvancedTransitionSystemCallbacks {
13
+ onTransitionStart?) => void
14
+ onTransitionComplete?) => void
15
+ onPerformanceOptimized?) => void
16
+ onDeviceOptimized?) => void
17
+ onAccessibilityEnhanced?) => void
18
+ }
19
+
20
+ export const useAdvancedTransitionSystem = (
21
+ config= {},
22
+ callbacks= {}
23
+ ) => {
24
+ const {
25
+ duration = 300,
26
+ easing = 'ease-out',
27
+ delay = 0,
28
+ performance= true,
29
+ deviceOptimization = true,
30
+ accessibility = true,
31
+ batteryAware = true
32
+ } = config
33
+
34
+ const [transitionState, setTransitionState] = useState<TransitionState>({
35
+ isTransitioning,
36
+ currentEasing,
37
+ currentDuration,
38
+ currentDelay,
39
+ performanceScore,
40
+ deviceType,
41
+ batteryLevel,
42
+ reducedMotion})
43
+
44
+ const [performanceMetrics, setPerformanceMetrics] = useState<TransitionPerformanceMetrics>({
45
+ frameRate,
46
+ memoryUsage,
47
+ transitionTime,
48
+ smoothness,
49
+ batteryImpact})
50
+
51
+ const [isOptimizing, setIsOptimizing] = useState(false)
52
+ const [optimizations, setOptimizations] = useState<string[]>([])
53
+
54
+ const transitionStartTimeRef = useRef(0)
55
+ const frameCountRef = useRef(0)
56
+ const lastFrameTimeRef = useRef(0)
57
+ const performanceTimerRef = useRef<number | null>(null)
58
+
59
+
60
+ // Detect device type and optimize transitions accordingly
61
+ const detectDeviceType = useCallback(() => {
62
+ const width = window.innerWidth
63
+
64
+ let deviceType] = 'desktop'
65
+
66
+ if (width <= 480) {
67
+ deviceType = 'mobile'
68
+ } else if (width <= 768) {
69
+ deviceType = 'tablet'
70
+ } else {
71
+ deviceType = 'desktop'
72
+ }
73
+
74
+ setTransitionState(prev => ({
75
+ ...prev,
76
+ deviceType
77
+ }))
78
+
79
+ return deviceType
80
+ }, [])
81
+
82
+ // Detect reduced motion preference
83
+ const detectReducedMotion = useCallback(() => {
84
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion)').matches
85
+
86
+ setTransitionState(prev => ({
87
+ ...prev,
88
+ reducedMotion}))
89
+
90
+ return prefersReducedMotion
91
+ }, [])
92
+
93
+ // Simulate battery level detection (in real app, use Battery API)
94
+ const detectBatteryLevel = useCallback(() => {
95
+ // Simulate battery levels for demo purposes
96
+ const batteryLevels = ['normal', 'low', 'critical'] as const
97
+ const randomLevel = batteryLevels[Math.floor(Math.random() * batteryLevels.length)]
98
+
99
+ setTransitionState(prev => ({
100
+ ...prev,
101
+ batteryLevel}))
102
+
103
+ return randomLevel
104
+ }, [])
105
+
106
+ // Optimize transition duration based on device and battery
107
+ const optimizeTransitionDuration = useCallback((baseDuration) => {
108
+ let optimizedDuration = baseDuration
109
+
110
+ // Device-specific optimization
111
+ if (deviceOptimization) {
112
+ switch (transitionState.deviceType) {
113
+ case 'mobile'= Math.min(baseDuration, 200)
114
+ break
115
+ case 'tablet'= Math.min(baseDuration, 300)
116
+ break
117
+ case 'desktop'= baseDuration
118
+ break
119
+ }
120
+ }
121
+
122
+ // Battery-aware optimization
123
+ if (batteryAware) {
124
+ switch (transitionState.batteryLevel) {
125
+ case 'low'= Math.min(optimizedDuration, 150)
126
+ break
127
+ case 'critical'= Math.min(optimizedDuration, 100)
128
+ break
129
+ case 'normal'}
130
+ }
131
+
132
+ // Reduced motion optimization
133
+ if (transitionState.reducedMotion) {
134
+ optimizedDuration = 0
135
+ }
136
+
137
+ return optimizedDuration
138
+ }, [deviceOptimization, batteryAware, transitionState.deviceType, transitionState.batteryLevel, transitionState.reducedMotion])
139
+
140
+ // Start a transition with optimization
141
+ const startTransition = useCallback((customConfig?) => {
142
+ const finalConfig = { ...config, ...customConfig }
143
+ const optimizedDuration = optimizeTransitionDuration(finalConfig.duration || duration)
144
+
145
+ setTransitionState(prev => ({
146
+ ...prev,
147
+ isTransitioning,
148
+ currentDuration,
149
+ currentDelay,
150
+ currentEasing}))
151
+
152
+ transitionStartTimeRef.current = performance.now()
153
+ frameCountRef.current = 0
154
+ lastFrameTimeRef.current = performance.now()
155
+
156
+ callbacks.onTransitionStart?.(finalConfig)
157
+
158
+ // Complete transition after duration
159
+ setTimeout(() => {
160
+ setTransitionState(prev => ({
161
+ ...prev,
162
+ isTransitioning}))
163
+
164
+ const actualDuration = performance.now() - transitionStartTimeRef.current
165
+ callbacks.onTransitionComplete?.(actualDuration)
166
+ }, optimizedDuration + (finalConfig.delay || delay))
167
+ }, [config, duration, delay, easing, optimizeTransitionDuration, callbacks])
168
+
169
+ // Performance monitoring
170
+ const startPerformanceMonitoring = useCallback(() => {
171
+ if (!enablePerformance) return () => {}
172
+
173
+ const measurePerformance = () => {
174
+ const currentTime = performance.now()
175
+ const deltaTime = currentTime - lastFrameTimeRef.current
176
+
177
+ if (deltaTime > 0) {
178
+ frameCountRef.current++
179
+ const currentFrameRate = 1000 / deltaTime
180
+
181
+ // Calculate smoothness based on frame rate consistency
182
+ const smoothness = Math.max(0, 100 - Math.abs(currentFrameRate - 60))
183
+
184
+ // Simulate memory usage (in real app, use Performance API)
185
+ const memoryUsage = Math.random() * 100
186
+
187
+ // Calculate transition time if transitioning
188
+ const transitionTime = transitionState.isTransitioning
189
+ ? currentTime - transitionStartTimeRef.current
190
+ = Math.max(0, 100 - (currentFrameRate * 0.5) - memoryUsage * 0.3)
191
+
192
+ setPerformanceMetrics({
193
+ frameRate),
194
+ memoryUsage),
195
+ transitionTime),
196
+ smoothness),
197
+ batteryImpact)
198
+ })
199
+
200
+ // Update performance score
201
+ const overallScore = Math.round((smoothness + batteryImpact) / 2)
202
+ setTransitionState(prev => ({
203
+ ...prev,
204
+ performanceScore}))
205
+
206
+ lastFrameTimeRef.current = currentTime
207
+
208
+ callbacks.onPerformanceOptimized?.({
209
+ frameRate),
210
+ memoryUsage),
211
+ transitionTime),
212
+ smoothness),
213
+ batteryImpact)
214
+ })
215
+ }
216
+
217
+ performanceTimerRef.current = requestAnimationFrame(measurePerformance)
218
+ }
219
+
220
+ performanceTimerRef.current = requestAnimationFrame(measurePerformance)
221
+
222
+ return () => {
223
+ if (performanceTimerRef.current) {
224
+ cancelAnimationFrame(performanceTimerRef.current)
225
+ }
226
+ }
227
+ }, [performance, transitionState.isTransitioning, callbacks])
228
+
229
+ // Device optimization
230
+ const optimizeForDevice = useCallback(() => {
231
+ if (!deviceOptimization) return
232
+
233
+ const deviceType = detectDeviceType()
234
+ const optimizations] = []
235
+
236
+ switch (deviceType) {
237
+ case 'mobile')')
238
+ optimizations.push('Reduced animation complexity')
239
+ optimizations.push('Touch-friendly timing')
240
+ break
241
+ case 'tablet')')
242
+ optimizations.push('Balanced performance and smoothness')
243
+ break
244
+ case 'desktop')')
245
+ optimizations.push('Maximum visual quality')
246
+ break
247
+ }
248
+
249
+ setOptimizations(prev => [...prev, ...optimizations])
250
+ callbacks.onDeviceOptimized?.(deviceType)
251
+ }, [deviceOptimization, detectDeviceType, callbacks])
252
+
253
+ // Accessibility enhancement
254
+ const enhanceAccessibility = useCallback(() => {
255
+ if (!accessibility) return
256
+
257
+ const enhancements = [
258
+ 'Reduced motion support',
259
+ 'Screen reader compatibility',
260
+ 'Focus management during transitions',
261
+ 'ARIA transition states',
262
+ 'Keyboard navigation support'
263
+ ]
264
+
265
+ enhancements.forEach(enhancement => {
266
+ callbacks.onAccessibilityEnhanced?.(enhancement)
267
+ })
268
+ }, [accessibility, callbacks])
269
+
270
+ // Auto-optimize on mount
271
+ const autoOptimize = useCallback(() => {
272
+ setIsOptimizing(true)
273
+
274
+ setTimeout(() => {
275
+ detectDeviceType()
276
+ detectReducedMotion()
277
+ detectBatteryLevel()
278
+ optimizeForDevice()
279
+ enhanceAccessibility()
280
+
281
+ setIsOptimizing(false)
282
+ }, 200)
283
+ }, [detectDeviceType, detectReducedMotion, detectBatteryLevel, optimizeForDevice, enhanceAccessibility])
284
+
285
+ // Initialize on mount
286
+ useEffect(() => {
287
+ autoOptimize()
288
+
289
+ const stopPerformanceMonitoring = startPerformanceMonitoring()
290
+
291
+ // Listen for device changes
292
+ const handleResize = () => {
293
+ detectDeviceType()
294
+ }
295
+
296
+ // Listen for reduced motion changes
297
+ const mediaQuery = window.matchMedia('(prefers-reduced-motion)')
298
+ const handleMotionChange = () => {
299
+ detectReducedMotion()
300
+ }
301
+
302
+ window.addEventListener('resize', handleResize)
303
+ mediaQuery.addEventListener('change', handleMotionChange)
304
+
305
+ return () => {
306
+ stopPerformanceMonitoring()
307
+ window.removeEventListener('resize', handleResize)
308
+ mediaQuery.removeEventListener('change', handleMotionChange)
309
+ }
310
+ }, [autoOptimize, startPerformanceMonitoring, detectDeviceType, detectReducedMotion])
311
+
312
+ // Cleanup on unmount
313
+ useEffect(() => {
314
+ return () => {
315
+ if (performanceTimerRef.current) {
316
+ cancelAnimationFrame(performanceTimerRef.current)
317
+ }
318
+ }
319
+ }, [])
320
+
321
+ return {
322
+ // State
323
+ transitionState,
324
+ performanceMetrics,
325
+ isOptimizing,
326
+ optimizations,
327
+
328
+ // Functions
329
+ startTransition,
330
+ optimizeForDevice,
331
+ enhanceAccessibility,
332
+ startPerformanceMonitoring,
333
+ autoOptimize,
334
+
335
+ // Utility functions
336
+ getTransitionDuration) => transitionState.currentDuration,
337
+ getTransitionEasing) => transitionState.currentEasing,
338
+ getTransitionDelay) => transitionState.currentDelay,
339
+ isTransitionActive) => transitionState.isTransitioning,
340
+ getDeviceType) => transitionState.deviceType,
341
+ getBatteryLevel) => transitionState.batteryLevel,
342
+ getReducedMotion) => transitionState.reducedMotion,
343
+ getPerformanceScore) => transitionState.performanceScore,
344
+ isPerformanceOptimal) => transitionState.performanceScore >= 80,
345
+ getFrameRate) => performanceMetrics.frameRate,
346
+ getSmoothness) => performanceMetrics.smoothness,
347
+ getBatteryImpact) => performanceMetrics.batteryImpact,
348
+ clearOptimizations) => setOptimizations([])
349
+ }
350
+ }
351
+
352
+ export default useAdvancedTransitionSystem