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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.d.ts +259 -0
  3. package/dist/components/ui/accessibility-demo.esm.js +265 -0
  4. package/dist/components/ui/accessibility-demo.js +265 -0
  5. package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
  6. package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
  7. package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
  8. package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
  9. package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
  10. package/dist/components/ui/advanced-transition-system-demo.js +624 -0
  11. package/dist/components/ui/advanced-transition-system.d.ts +391 -0
  12. package/dist/components/ui/advanced-transition-system.esm.js +351 -0
  13. package/dist/components/ui/advanced-transition-system.js +351 -0
  14. package/dist/components/ui/animation/animated-container.d.ts +162 -0
  15. package/dist/components/ui/animation/animated-container.esm.js +143 -0
  16. package/dist/components/ui/animation/animated-container.js +143 -0
  17. package/dist/components/ui/animation/index.d.ts +9 -0
  18. package/dist/components/ui/animation/index.esm.js +19 -0
  19. package/dist/components/ui/animation/index.js +19 -0
  20. package/dist/components/ui/animation/staggered-container.d.ts +64 -0
  21. package/dist/components/ui/animation/staggered-container.esm.js +59 -0
  22. package/dist/components/ui/animation/staggered-container.js +59 -0
  23. package/dist/components/ui/animation-demo.d.ts +238 -0
  24. package/dist/components/ui/animation-demo.esm.js +218 -0
  25. package/dist/components/ui/animation-demo.js +218 -0
  26. package/dist/components/ui/badge.d.ts +28 -0
  27. package/dist/components/ui/badge.esm.js +30 -0
  28. package/dist/components/ui/badge.js +30 -0
  29. package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
  30. package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
  31. package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
  32. package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
  33. package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
  34. package/dist/components/ui/border-radius-shadow-demo.js +176 -0
  35. package/dist/components/ui/button.d.ts +33 -0
  36. package/dist/components/ui/button.esm.js +30 -0
  37. package/dist/components/ui/button.js +30 -0
  38. package/dist/components/ui/card.d.ts +205 -0
  39. package/dist/components/ui/card.esm.js +182 -0
  40. package/dist/components/ui/card.js +182 -0
  41. package/dist/components/ui/checkbox.d.ts +26 -0
  42. package/dist/components/ui/checkbox.esm.js +30 -0
  43. package/dist/components/ui/checkbox.js +30 -0
  44. package/dist/components/ui/color-preview.d.ts +402 -0
  45. package/dist/components/ui/color-preview.esm.js +388 -0
  46. package/dist/components/ui/color-preview.js +388 -0
  47. package/dist/components/ui/data-display/chart.d.ts +646 -0
  48. package/dist/components/ui/data-display/chart.esm.js +625 -0
  49. package/dist/components/ui/data-display/chart.js +625 -0
  50. package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
  51. package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
  52. package/dist/components/ui/data-display/data-grid-simple.js +76 -0
  53. package/dist/components/ui/data-display/data-grid.d.ts +670 -0
  54. package/dist/components/ui/data-display/data-grid.esm.js +667 -0
  55. package/dist/components/ui/data-display/data-grid.js +667 -0
  56. package/dist/components/ui/data-display/list.d.ts +448 -0
  57. package/dist/components/ui/data-display/list.esm.js +448 -0
  58. package/dist/components/ui/data-display/list.js +448 -0
  59. package/dist/components/ui/data-display/table.d.ts +472 -0
  60. package/dist/components/ui/data-display/table.esm.js +474 -0
  61. package/dist/components/ui/data-display/table.js +474 -0
  62. package/dist/components/ui/data-display/timeline.d.ts +433 -0
  63. package/dist/components/ui/data-display/timeline.esm.js +436 -0
  64. package/dist/components/ui/data-display/timeline.js +436 -0
  65. package/dist/components/ui/data-display/tree.d.ts +594 -0
  66. package/dist/components/ui/data-display/tree.esm.js +570 -0
  67. package/dist/components/ui/data-display/tree.js +570 -0
  68. package/dist/components/ui/data-display/types.d.ts +534 -0
  69. package/dist/components/ui/data-display/types.esm.js +511 -0
  70. package/dist/components/ui/data-display/types.js +511 -0
  71. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
  72. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
  73. package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
  74. package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
  75. package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
  76. package/dist/components/ui/enterprise-mobile-experience.js +413 -0
  77. package/dist/components/ui/feedback/alert.d.ts +154 -0
  78. package/dist/components/ui/feedback/alert.esm.js +150 -0
  79. package/dist/components/ui/feedback/alert.js +150 -0
  80. package/dist/components/ui/feedback/progress.d.ts +288 -0
  81. package/dist/components/ui/feedback/progress.esm.js +269 -0
  82. package/dist/components/ui/feedback/progress.js +269 -0
  83. package/dist/components/ui/feedback/skeleton.d.ts +182 -0
  84. package/dist/components/ui/feedback/skeleton.esm.js +175 -0
  85. package/dist/components/ui/feedback/skeleton.js +175 -0
  86. package/dist/components/ui/feedback/toast.d.ts +277 -0
  87. package/dist/components/ui/feedback/toast.esm.js +256 -0
  88. package/dist/components/ui/feedback/toast.js +256 -0
  89. package/dist/components/ui/feedback/types.d.ts +123 -0
  90. package/dist/components/ui/feedback/types.esm.js +125 -0
  91. package/dist/components/ui/feedback/types.js +125 -0
  92. package/dist/components/ui/font-preview.d.ts +282 -0
  93. package/dist/components/ui/font-preview.esm.js +286 -0
  94. package/dist/components/ui/font-preview.js +286 -0
  95. package/dist/components/ui/form-demo.d.ts +544 -0
  96. package/dist/components/ui/form-demo.esm.js +516 -0
  97. package/dist/components/ui/form-demo.js +516 -0
  98. package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
  99. package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
  100. package/dist/components/ui/hardware-acceleration-demo.js +497 -0
  101. package/dist/components/ui/input.d.ts +33 -0
  102. package/dist/components/ui/input.esm.js +32 -0
  103. package/dist/components/ui/input.js +32 -0
  104. package/dist/components/ui/label.d.ts +13 -0
  105. package/dist/components/ui/label.esm.js +16 -0
  106. package/dist/components/ui/label.js +16 -0
  107. package/dist/components/ui/layout-demo.d.ts +352 -0
  108. package/dist/components/ui/layout-demo.esm.js +342 -0
  109. package/dist/components/ui/layout-demo.js +342 -0
  110. package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
  111. package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
  112. package/dist/components/ui/layouts/adaptive-layout.js +120 -0
  113. package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
  114. package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
  115. package/dist/components/ui/layouts/desktop-layout.js +204 -0
  116. package/dist/components/ui/layouts/index.d.ts +5 -0
  117. package/dist/components/ui/layouts/index.esm.js +10 -0
  118. package/dist/components/ui/layouts/index.js +10 -0
  119. package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
  120. package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
  121. package/dist/components/ui/layouts/mobile-layout.js +152 -0
  122. package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
  123. package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
  124. package/dist/components/ui/layouts/tablet-layout.js +183 -0
  125. package/dist/components/ui/mobile-form-validation.d.ts +439 -0
  126. package/dist/components/ui/mobile-form-validation.esm.js +418 -0
  127. package/dist/components/ui/mobile-form-validation.js +418 -0
  128. package/dist/components/ui/mobile-input-demo.d.ts +197 -0
  129. package/dist/components/ui/mobile-input-demo.esm.js +195 -0
  130. package/dist/components/ui/mobile-input-demo.js +195 -0
  131. package/dist/components/ui/mobile-input.d.ts +273 -0
  132. package/dist/components/ui/mobile-input.esm.js +216 -0
  133. package/dist/components/ui/mobile-input.js +216 -0
  134. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
  135. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
  136. package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
  137. package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
  138. package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
  139. package/dist/components/ui/navigation/breadcrumb.js +155 -0
  140. package/dist/components/ui/navigation/index.d.ts +25 -0
  141. package/dist/components/ui/navigation/index.esm.js +14 -0
  142. package/dist/components/ui/navigation/index.js +14 -0
  143. package/dist/components/ui/navigation/menu.d.ts +366 -0
  144. package/dist/components/ui/navigation/menu.esm.js +360 -0
  145. package/dist/components/ui/navigation/menu.js +360 -0
  146. package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
  147. package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
  148. package/dist/components/ui/navigation/navigation-demo.js +317 -0
  149. package/dist/components/ui/navigation/pagination.d.ts +261 -0
  150. package/dist/components/ui/navigation/pagination.esm.js +260 -0
  151. package/dist/components/ui/navigation/pagination.js +260 -0
  152. package/dist/components/ui/navigation/sidebar.d.ts +375 -0
  153. package/dist/components/ui/navigation/sidebar.esm.js +369 -0
  154. package/dist/components/ui/navigation/sidebar.js +369 -0
  155. package/dist/components/ui/navigation/stepper.d.ts +294 -0
  156. package/dist/components/ui/navigation/stepper.esm.js +292 -0
  157. package/dist/components/ui/navigation/stepper.js +292 -0
  158. package/dist/components/ui/navigation/tabs.d.ts +196 -0
  159. package/dist/components/ui/navigation/tabs.esm.js +194 -0
  160. package/dist/components/ui/navigation/tabs.js +194 -0
  161. package/dist/components/ui/navigation/types.d.ts +293 -0
  162. package/dist/components/ui/navigation/types.esm.js +298 -0
  163. package/dist/components/ui/navigation/types.js +298 -0
  164. package/dist/components/ui/overlay/backdrop.d.ts +79 -0
  165. package/dist/components/ui/overlay/backdrop.esm.js +80 -0
  166. package/dist/components/ui/overlay/backdrop.js +80 -0
  167. package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
  168. package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
  169. package/dist/components/ui/overlay/focus-manager.js +141 -0
  170. package/dist/components/ui/overlay/index.d.ts +27 -0
  171. package/dist/components/ui/overlay/index.esm.js +16 -0
  172. package/dist/components/ui/overlay/index.js +16 -0
  173. package/dist/components/ui/overlay/modal.d.ts +262 -0
  174. package/dist/components/ui/overlay/modal.esm.js +266 -0
  175. package/dist/components/ui/overlay/modal.js +266 -0
  176. package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
  177. package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
  178. package/dist/components/ui/overlay/overlay-manager.js +105 -0
  179. package/dist/components/ui/overlay/popover.d.ts +450 -0
  180. package/dist/components/ui/overlay/popover.esm.js +446 -0
  181. package/dist/components/ui/overlay/popover.js +446 -0
  182. package/dist/components/ui/overlay/portal.d.ts +75 -0
  183. package/dist/components/ui/overlay/portal.esm.js +79 -0
  184. package/dist/components/ui/overlay/portal.js +79 -0
  185. package/dist/components/ui/overlay/tooltip.d.ts +298 -0
  186. package/dist/components/ui/overlay/tooltip.esm.js +288 -0
  187. package/dist/components/ui/overlay/tooltip.js +288 -0
  188. package/dist/components/ui/overlay/types.d.ts +194 -0
  189. package/dist/components/ui/overlay/types.esm.js +195 -0
  190. package/dist/components/ui/overlay/types.js +195 -0
  191. package/dist/components/ui/performance-demo.d.ts +583 -0
  192. package/dist/components/ui/performance-demo.esm.js +549 -0
  193. package/dist/components/ui/performance-demo.js +549 -0
  194. package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
  195. package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
  196. package/dist/components/ui/semantic-input-system-demo.js +465 -0
  197. package/dist/components/ui/theme-customizer.d.ts +378 -0
  198. package/dist/components/ui/theme-customizer.esm.js +354 -0
  199. package/dist/components/ui/theme-customizer.js +354 -0
  200. package/dist/components/ui/theme-preview.d.ts +305 -0
  201. package/dist/components/ui/theme-preview.esm.js +258 -0
  202. package/dist/components/ui/theme-preview.js +258 -0
  203. package/dist/components/ui/theme-switcher.d.ts +259 -0
  204. package/dist/components/ui/theme-switcher.esm.js +238 -0
  205. package/dist/components/ui/theme-switcher.js +238 -0
  206. package/dist/components/ui/theme-toggle.d.ts +34 -0
  207. package/dist/components/ui/theme-toggle.esm.js +38 -0
  208. package/dist/components/ui/theme-toggle.js +38 -0
  209. package/dist/components/ui/token-demo.d.ts +188 -0
  210. package/dist/components/ui/token-demo.esm.js +183 -0
  211. package/dist/components/ui/token-demo.js +183 -0
  212. package/dist/components/ui/touch-demo.d.ts +455 -0
  213. package/dist/components/ui/touch-demo.esm.js +433 -0
  214. package/dist/components/ui/touch-demo.js +433 -0
  215. package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
  216. package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
  217. package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
  218. package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
  219. package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
  220. package/dist/components/ui/touch-friendly-interface.js +272 -0
  221. package/dist/hooks/index.d.ts +161 -0
  222. package/dist/hooks/index.esm.js +190 -0
  223. package/dist/hooks/index.js +190 -0
  224. package/dist/hooks/use-accessibility-support.d.ts +516 -0
  225. package/dist/hooks/use-accessibility-support.esm.js +488 -0
  226. package/dist/hooks/use-accessibility-support.js +488 -0
  227. package/dist/hooks/use-adaptive-layout.d.ts +287 -0
  228. package/dist/hooks/use-adaptive-layout.esm.js +266 -0
  229. package/dist/hooks/use-adaptive-layout.js +266 -0
  230. package/dist/hooks/use-advanced-patterns.d.ts +292 -0
  231. package/dist/hooks/use-advanced-patterns.esm.js +279 -0
  232. package/dist/hooks/use-advanced-patterns.js +279 -0
  233. package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
  234. package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
  235. package/dist/hooks/use-advanced-transition-system.js +352 -0
  236. package/dist/hooks/use-animation-profile.d.ts +285 -0
  237. package/dist/hooks/use-animation-profile.esm.js +259 -0
  238. package/dist/hooks/use-animation-profile.js +259 -0
  239. package/dist/hooks/use-battery-animations.d.ts +382 -0
  240. package/dist/hooks/use-battery-animations.esm.js +359 -0
  241. package/dist/hooks/use-battery-animations.js +359 -0
  242. package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
  243. package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
  244. package/dist/hooks/use-battery-conscious-loading.js +432 -0
  245. package/dist/hooks/use-battery-optimization.d.ts +328 -0
  246. package/dist/hooks/use-battery-optimization.esm.js +307 -0
  247. package/dist/hooks/use-battery-optimization.js +307 -0
  248. package/dist/hooks/use-battery-status.d.ts +297 -0
  249. package/dist/hooks/use-battery-status.esm.js +277 -0
  250. package/dist/hooks/use-battery-status.js +277 -0
  251. package/dist/hooks/use-component-performance.d.ts +342 -0
  252. package/dist/hooks/use-component-performance.esm.js +329 -0
  253. package/dist/hooks/use-component-performance.js +329 -0
  254. package/dist/hooks/use-device-loading-states.d.ts +456 -0
  255. package/dist/hooks/use-device-loading-states.esm.js +416 -0
  256. package/dist/hooks/use-device-loading-states.js +416 -0
  257. package/dist/hooks/use-device.d.ts +104 -0
  258. package/dist/hooks/use-device.esm.js +99 -0
  259. package/dist/hooks/use-device.js +99 -0
  260. package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
  261. package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
  262. package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
  263. package/dist/hooks/use-form-feedback.d.ts +401 -0
  264. package/dist/hooks/use-form-feedback.esm.js +360 -0
  265. package/dist/hooks/use-form-feedback.js +360 -0
  266. package/dist/hooks/use-form-performance.d.ts +511 -0
  267. package/dist/hooks/use-form-performance.esm.js +478 -0
  268. package/dist/hooks/use-form-performance.js +478 -0
  269. package/dist/hooks/use-frame-rate.d.ts +249 -0
  270. package/dist/hooks/use-frame-rate.esm.js +232 -0
  271. package/dist/hooks/use-frame-rate.js +232 -0
  272. package/dist/hooks/use-gestures.d.ts +336 -0
  273. package/dist/hooks/use-gestures.esm.js +314 -0
  274. package/dist/hooks/use-gestures.js +314 -0
  275. package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
  276. package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
  277. package/dist/hooks/use-hardware-acceleration.js +313 -0
  278. package/dist/hooks/use-input-accessibility.d.ts +451 -0
  279. package/dist/hooks/use-input-accessibility.esm.js +417 -0
  280. package/dist/hooks/use-input-accessibility.js +417 -0
  281. package/dist/hooks/use-input-performance.d.ts +503 -0
  282. package/dist/hooks/use-input-performance.esm.js +471 -0
  283. package/dist/hooks/use-input-performance.js +471 -0
  284. package/dist/hooks/use-layout-performance.d.ts +317 -0
  285. package/dist/hooks/use-layout-performance.esm.js +298 -0
  286. package/dist/hooks/use-layout-performance.js +298 -0
  287. package/dist/hooks/use-loading-accessibility.d.ts +532 -0
  288. package/dist/hooks/use-loading-accessibility.esm.js +495 -0
  289. package/dist/hooks/use-loading-accessibility.js +495 -0
  290. package/dist/hooks/use-loading-performance.d.ts +471 -0
  291. package/dist/hooks/use-loading-performance.esm.js +449 -0
  292. package/dist/hooks/use-loading-performance.js +449 -0
  293. package/dist/hooks/use-memory-usage.d.ts +285 -0
  294. package/dist/hooks/use-memory-usage.esm.js +268 -0
  295. package/dist/hooks/use-memory-usage.js +268 -0
  296. package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
  297. package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
  298. package/dist/hooks/use-mobile-form-layout.js +427 -0
  299. package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
  300. package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
  301. package/dist/hooks/use-mobile-form-validation.js +451 -0
  302. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
  303. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
  304. package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
  305. package/dist/hooks/use-mobile-layout.d.ts +300 -0
  306. package/dist/hooks/use-mobile-layout.esm.js +280 -0
  307. package/dist/hooks/use-mobile-layout.js +280 -0
  308. package/dist/hooks/use-mobile-optimization.d.ts +404 -0
  309. package/dist/hooks/use-mobile-optimization.esm.js +378 -0
  310. package/dist/hooks/use-mobile-optimization.js +378 -0
  311. package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
  312. package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
  313. package/dist/hooks/use-mobile-skeleton.js +369 -0
  314. package/dist/hooks/use-mobile-touch.d.ts +412 -0
  315. package/dist/hooks/use-mobile-touch.esm.js +379 -0
  316. package/dist/hooks/use-mobile-touch.js +379 -0
  317. package/dist/hooks/use-performance-throttling.d.ts +346 -0
  318. package/dist/hooks/use-performance-throttling.esm.js +324 -0
  319. package/dist/hooks/use-performance-throttling.js +324 -0
  320. package/dist/hooks/use-performance.d.ts +314 -0
  321. package/dist/hooks/use-performance.esm.js +278 -0
  322. package/dist/hooks/use-performance.js +278 -0
  323. package/dist/hooks/use-reusable-architecture.d.ts +412 -0
  324. package/dist/hooks/use-reusable-architecture.esm.js +385 -0
  325. package/dist/hooks/use-reusable-architecture.js +385 -0
  326. package/dist/hooks/use-semantic-input-types.d.ts +354 -0
  327. package/dist/hooks/use-semantic-input-types.esm.js +315 -0
  328. package/dist/hooks/use-semantic-input-types.js +315 -0
  329. package/dist/hooks/use-semantic-input.d.ts +563 -0
  330. package/dist/hooks/use-semantic-input.esm.js +513 -0
  331. package/dist/hooks/use-semantic-input.js +513 -0
  332. package/dist/hooks/use-tablet-layout.d.ts +382 -0
  333. package/dist/hooks/use-tablet-layout.esm.js +355 -0
  334. package/dist/hooks/use-tablet-layout.js +355 -0
  335. package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
  336. package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
  337. package/dist/hooks/use-touch-friendly-input.js +480 -0
  338. package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
  339. package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
  340. package/dist/hooks/use-touch-friendly-interface.js +299 -0
  341. package/dist/hooks/use-touch-optimization.d.ts +373 -0
  342. package/dist/hooks/use-touch-optimization.esm.js +348 -0
  343. package/dist/hooks/use-touch-optimization.js +348 -0
  344. package/dist/lib/utils.d.ts +3 -0
  345. package/dist/lib/utils.esm.js +6 -0
  346. package/dist/lib/utils.js +6 -0
  347. package/dist/plugins/theme-css-generator.d.ts +345 -0
  348. package/dist/plugins/theme-css-generator.esm.js +305 -0
  349. package/dist/plugins/theme-css-generator.js +305 -0
  350. package/dist/styles.css +1 -1
  351. package/dist/themes/ThemeContext.d.ts +27 -0
  352. package/dist/themes/ThemeContext.esm.js +31 -0
  353. package/dist/themes/ThemeContext.js +31 -0
  354. package/dist/themes/ThemeProvider.d.ts +222 -0
  355. package/dist/themes/ThemeProvider.esm.js +229 -0
  356. package/dist/themes/ThemeProvider.js +229 -0
  357. package/dist/themes/accessibility/index.d.ts +7 -0
  358. package/dist/themes/accessibility/index.esm.js +27 -0
  359. package/dist/themes/accessibility/index.js +27 -0
  360. package/dist/themes/accessibility.d.ts +259 -0
  361. package/dist/themes/accessibility.esm.js +220 -0
  362. package/dist/themes/accessibility.js +220 -0
  363. package/dist/themes/aria-patterns.d.ts +418 -0
  364. package/dist/themes/aria-patterns.esm.js +384 -0
  365. package/dist/themes/aria-patterns.js +384 -0
  366. package/dist/themes/base-themes.d.ts +34 -0
  367. package/dist/themes/base-themes.esm.js +52 -0
  368. package/dist/themes/base-themes.js +52 -0
  369. package/dist/themes/colorManager.d.ts +327 -0
  370. package/dist/themes/colorManager.esm.js +362 -0
  371. package/dist/themes/colorManager.js +362 -0
  372. package/dist/themes/examples/dark-theme.d.ts +139 -0
  373. package/dist/themes/examples/dark-theme.esm.js +124 -0
  374. package/dist/themes/examples/dark-theme.js +124 -0
  375. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  376. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  377. package/dist/themes/examples/minimal-theme.js +86 -0
  378. package/dist/themes/focus-management.d.ts +699 -0
  379. package/dist/themes/focus-management.esm.js +642 -0
  380. package/dist/themes/focus-management.js +642 -0
  381. package/dist/themes/fontLoader.d.ts +163 -0
  382. package/dist/themes/fontLoader.esm.js +192 -0
  383. package/dist/themes/fontLoader.js +192 -0
  384. package/dist/themes/high-contrast.d.ts +619 -0
  385. package/dist/themes/high-contrast.esm.js +573 -0
  386. package/dist/themes/high-contrast.js +573 -0
  387. package/dist/themes/index.d.ts +11 -0
  388. package/dist/themes/index.esm.js +19 -0
  389. package/dist/themes/index.js +19 -0
  390. package/dist/themes/inheritance.d.ts +160 -0
  391. package/dist/themes/inheritance.esm.js +219 -0
  392. package/dist/themes/inheritance.js +219 -0
  393. package/dist/themes/keyboard-navigation.d.ts +550 -0
  394. package/dist/themes/keyboard-navigation.esm.js +521 -0
  395. package/dist/themes/keyboard-navigation.js +521 -0
  396. package/dist/themes/motion-reduction.d.ts +660 -0
  397. package/dist/themes/motion-reduction.esm.js +602 -0
  398. package/dist/themes/motion-reduction.js +602 -0
  399. package/dist/themes/navigation.d.ts +232 -0
  400. package/dist/themes/navigation.esm.js +238 -0
  401. package/dist/themes/navigation.js +238 -0
  402. package/dist/themes/screen-reader.d.ts +645 -0
  403. package/dist/themes/screen-reader.esm.js +580 -0
  404. package/dist/themes/screen-reader.js +580 -0
  405. package/dist/themes/systemThemeDetector.d.ts +148 -0
  406. package/dist/themes/systemThemeDetector.esm.js +174 -0
  407. package/dist/themes/systemThemeDetector.js +174 -0
  408. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  409. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  410. package/dist/themes/themeCSSUpdater.js +250 -0
  411. package/dist/themes/themePersistence.d.ts +192 -0
  412. package/dist/themes/themePersistence.esm.js +217 -0
  413. package/dist/themes/themePersistence.js +217 -0
  414. package/dist/themes/themes/stan-design.d.ts +678 -0
  415. package/dist/themes/themes/stan-design.esm.js +518 -0
  416. package/dist/themes/themes/stan-design.js +518 -0
  417. package/dist/themes/types.d.ts +454 -0
  418. package/dist/themes/types.esm.js +446 -0
  419. package/dist/themes/types.js +446 -0
  420. package/dist/themes/useSystemTheme.d.ts +43 -0
  421. package/dist/themes/useSystemTheme.esm.js +48 -0
  422. package/dist/themes/useSystemTheme.js +48 -0
  423. package/dist/themes/useTheme.d.ts +20 -0
  424. package/dist/themes/useTheme.esm.js +87 -0
  425. package/dist/themes/useTheme.js +87 -0
  426. package/dist/themes/validation.d.ts +406 -0
  427. package/dist/themes/validation.esm.js +411 -0
  428. package/dist/themes/validation.js +411 -0
  429. package/dist/tokens/index.d.ts +25 -0
  430. package/dist/tokens/index.esm.js +23 -0
  431. package/dist/tokens/index.js +23 -0
  432. package/dist/tokens/tokenExporter.d.ts +336 -0
  433. package/dist/tokens/tokenExporter.esm.js +371 -0
  434. package/dist/tokens/tokenExporter.js +371 -0
  435. package/dist/tokens/tokenGenerator.d.ts +250 -0
  436. package/dist/tokens/tokenGenerator.esm.js +267 -0
  437. package/dist/tokens/tokenGenerator.js +267 -0
  438. package/dist/tokens/tokenManager.d.ts +194 -0
  439. package/dist/tokens/tokenManager.esm.js +235 -0
  440. package/dist/tokens/tokenManager.js +235 -0
  441. package/dist/tokens/tokenValidator.d.ts +488 -0
  442. package/dist/tokens/tokenValidator.esm.js +497 -0
  443. package/dist/tokens/tokenValidator.js +497 -0
  444. package/dist/tokens/types.d.ts +78 -0
  445. package/dist/tokens/types.esm.js +64 -0
  446. package/dist/tokens/types.js +64 -0
  447. package/dist/utils/bundle-analyzer.d.ts +260 -0
  448. package/dist/utils/bundle-analyzer.esm.js +242 -0
  449. package/dist/utils/bundle-analyzer.js +242 -0
  450. package/dist/utils/bundle-splitting.d.ts +483 -0
  451. package/dist/utils/bundle-splitting.esm.js +458 -0
  452. package/dist/utils/bundle-splitting.js +458 -0
  453. package/dist/utils/lazy-loading.d.ts +437 -0
  454. package/dist/utils/lazy-loading.esm.js +415 -0
  455. package/dist/utils/lazy-loading.js +415 -0
  456. package/dist/utils/performance-monitor.d.ts +513 -0
  457. package/dist/utils/performance-monitor.esm.js +472 -0
  458. package/dist/utils/performance-monitor.js +472 -0
  459. package/dist/utils/tree-shaking.d.ts +274 -0
  460. package/dist/utils/tree-shaking.esm.js +266 -0
  461. package/dist/utils/tree-shaking.js +266 -0
  462. package/package.json +1 -1
@@ -0,0 +1,628 @@
1
+ export const MobileSkeletonLoadingDemo: React.FC = () => {
2
+ const [activeTab, setActiveTab] = useState('overview')
3
+ const [isLoading, setIsLoading] = useState(false)
4
+ const [loadingProgress, setLoadingProgress] = useState(0)
5
+ const [showSkeletons, setShowSkeletons] = useState(true)
6
+
7
+ // Initialize all hooks
8
+ const mobileSkeleton = useMobileSkeleton(
9
+ {
10
+ enableMobileOptimization: true,
11
+ enablePerformanceOptimization: true,
12
+ enableBatteryOptimization: true,
13
+ enableAccessibilitySupport: true,
14
+ enableTouchOptimization: true
15
+ },
16
+ {
17
+ onSkeletonCreated: (variant) => console.log('Skeleton created:', variant),
18
+ onLoadingStateChanged: (state) => console.log('Loading state changed:', state),
19
+ onPerformanceOptimized: (optimization) => console.log('Performance optimized:', optimization),
20
+ onBatteryOptimized: (strategy) => console.log('Battery optimized:', strategy),
21
+ onAccessibilityEnhanced: (feature) => console.log('Accessibility enhanced:', feature)
22
+ }
23
+ )
24
+
25
+ const deviceLoadingStates = useDeviceLoadingStates(
26
+ {
27
+ enableMobileStates: true,
28
+ enableTabletStates: true,
29
+ enableDesktopStates: true,
30
+ enableAdaptiveBehavior: true,
31
+ enableOrientationSupport: true,
32
+ enablePerformanceAdaptation: true
33
+ },
34
+ {
35
+ onLoadingStateChanged: (state) => console.log('Device loading state changed:', state),
36
+ onDeviceStateChanged: (deviceState) => console.log('Device state changed:', deviceState),
37
+ onAdaptiveBehaviorEnabled: (behavior) => console.log('Adaptive behavior enabled:', behavior),
38
+ onPerformanceAdapted: (adaptation) => console.log('Performance adapted:', adaptation)
39
+ }
40
+ )
41
+
42
+ const loadingPerformance = useLoadingPerformance(
43
+ {
44
+ enableAnimationOptimization: true,
45
+ enableMemoryManagement: true,
46
+ enableBatteryOptimization: true,
47
+ enablePerformanceMonitoring: true,
48
+ enableAutoOptimization: true
49
+ },
50
+ {
51
+ onPerformanceOptimized: (strategy) => console.log('Loading performance optimized:', strategy),
52
+ onMemoryOptimized: (optimization) => console.log('Memory optimized:', optimization),
53
+ onBatteryOptimized: (strategy) => console.log('Battery optimized:', strategy),
54
+ onAnimationOptimized: (optimization) => console.log('Animation optimized:', optimization)
55
+ }
56
+ )
57
+
58
+ const batteryConsciousLoading = useBatteryConsciousLoading(
59
+ {
60
+ enableBatteryMonitoring: true,
61
+ enableLoadingOptimization: true,
62
+ enablePerformanceAdjustment: true,
63
+ enableUserNotification: true,
64
+ enableAutoOptimization: true
65
+ },
66
+ {
67
+ onBatteryLevelChanged: (batteryState) => console.log('Battery level changed:', batteryState),
68
+ onLoadingOptimized: (optimization) => console.log('Loading optimized for battery:', optimization),
69
+ onPerformanceAdjusted: (adjustment) => console.log('Performance adjusted:', adjustment),
70
+ onUserNotified: (notification) => console.log('User notified:', notification)
71
+ }
72
+ )
73
+
74
+ const loadingAccessibility = useLoadingAccessibility(
75
+ {
76
+ enableScreenReaderSupport: true,
77
+ enableReducedMotionSupport: true,
78
+ enableFocusManagement: true,
79
+ enableAriaSupport: true,
80
+ enableVoiceControl: true,
81
+ enableHighContrast: true,
82
+ enableKeyboardNavigation: true
83
+ },
84
+ {
85
+ onScreenReaderEnhanced: (feature) => console.log('Screen reader enhanced:', feature),
86
+ onReducedMotionApplied: (feature) => console.log('Reduced motion applied:', feature),
87
+ onFocusManaged: (feature) => console.log('Focus managed:', feature),
88
+ onAriaEnhanced: (feature) => console.log('ARIA enhanced:', feature),
89
+ onVoiceControlEnabled: (feature) => console.log('Voice control enabled:', feature),
90
+ onHighContrastApplied: (feature) => console.log('High contrast applied:', feature),
91
+ onKeyboardNavigationEnabled: (feature) => console.log('Keyboard navigation enabled:', feature)
92
+ }
93
+ )
94
+
95
+ // Simulate loading progress
96
+ useEffect(() => {
97
+ if (isLoading) {
98
+ const interval = setInterval(() => {
99
+ setLoadingProgress(prev => {
100
+ if (prev >= 100) {
101
+ setIsLoading(false)
102
+ setLoadingProgress(0)
103
+ return 0
104
+ }
105
+ return prev + 10
106
+ })
107
+ }, 200)
108
+ return () => clearInterval(interval)
109
+ }
110
+ }, [isLoading])
111
+
112
+ // Start loading simulation
113
+ const startLoading = () => {
114
+ setIsLoading(true)
115
+ setLoadingProgress(0)
116
+ }
117
+
118
+ // Toggle skeleton visibility
119
+ const toggleSkeletons = () => {
120
+ setShowSkeletons(!showSkeletons)
121
+ }
122
+
123
+ // Get device-specific loading class
124
+ const getLoadingStateClass = () => {
125
+ switch (deviceLoadingStates.deviceState.deviceType) {
126
+ case 'mobile': return 'loading-state-mobile'
127
+ case 'tablet': return 'loading-state-tablet'
128
+ case 'desktop': return 'loading-state-desktop'
129
+ default: return 'loading-state-mobile'
130
+ }
131
+ }
132
+
133
+ // Get battery-conscious class
134
+ const getBatteryClass = () => {
135
+ const batteryStatus = batteryConsciousLoading.batteryState.status
136
+ if (batteryStatus === 'critical') return 'battery-critical'
137
+ if (batteryStatus === 'low') return 'battery-low'
138
+ return ''
139
+ }
140
+
141
+ // Get performance class
142
+ const getPerformanceClass = () => {
143
+ const performanceHealth = loadingPerformance.performanceHealth
144
+ if (performanceHealth === 'poor') return 'performance-low'
145
+ if (performanceHealth === 'fair') return 'performance-medium'
146
+ return 'performance-high'
147
+ }
148
+
149
+ // Get accessibility class
150
+ const getAccessibilityClass = () => {
151
+ if (loadingAccessibility.accessibilityScore >= 80) return 'accessibility-enhanced'
152
+ return ''
153
+ }
154
+
155
+ return (
156
+ <div className="space-y-6">
157
+ {/* Header */}
158
+ <div className="text-center">
159
+ <h2 className="text-2xl font-bold text-gray-900 mb-2">
160
+ 📱 Mobile Skeleton & Loading State Sophistication
161
+ </h2>
162
+ <p className="text-gray-600 mb-4">
163
+ Advanced mobile-optimized skeleton components with device-specific loading states,
164
+ performance optimization, battery consciousness, and accessibility support.
165
+ </p>
166
+ <Badge variant="secondary">Story 11 Implementation</Badge>
167
+ </div>
168
+
169
+ {/* Main Demo */}
170
+ <Card className="p-6">
171
+ {/* Navigation */}
172
+ <div className="flex flex-wrap gap-2 mb-6">
173
+ <Button
174
+ variant={activeTab === 'overview' ? 'default' : 'outline'}
175
+ onClick={() => setActiveTab('overview')}
176
+ size="sm"
177
+ >
178
+ Overview
179
+ </Button>
180
+ <Button
181
+ variant={activeTab === 'skeletons' ? 'default' : 'outline'}
182
+ onClick={() => setActiveTab('skeletons')}
183
+ size="sm"
184
+ >
185
+ Skeletons
186
+ </Button>
187
+ <Button
188
+ variant={activeTab === 'loading' ? 'default' : 'outline'}
189
+ onClick={() => setActiveTab('loading')}
190
+ size="sm"
191
+ >
192
+ Loading States
193
+ </Button>
194
+ <Button
195
+ variant={activeTab === 'performance' ? 'default' : 'outline'}
196
+ onClick={() => setActiveTab('performance')}
197
+ size="sm"
198
+ >
199
+ Performance
200
+ </Button>
201
+ <Button
202
+ variant={activeTab === 'accessibility' ? 'default' : 'outline'}
203
+ onClick={() => setActiveTab('accessibility')}
204
+ size="sm"
205
+ >
206
+ Accessibility
207
+ </Button>
208
+ </div>
209
+
210
+ {/* Overview Section */}
211
+ {activeTab === 'overview' && (
212
+ <div className="space-y-6">
213
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
214
+ {/* Device State */}
215
+ <div className="p-4 bg-blue-50 rounded-lg">
216
+ <h3 className="font-semibold text-blue-900 mb-2">Device State</h3>
217
+ <div className="space-y-1 text-sm">
218
+ <p><span className="font-medium">Type:</span> {deviceLoadingStates.deviceState.deviceType}</p>
219
+ <p><span className="font-medium">Orientation:</span> {deviceLoadingStates.deviceState.orientation}</p>
220
+ <p><span className="font-medium">Screen:</span> {deviceLoadingStates.deviceState.screenSize}</p>
221
+ <p><span className="font-medium">Strategy:</span> {deviceLoadingStates.deviceState.loadingStates[0]?.type || 'skeleton'}</p>
222
+ </div>
223
+ </div>
224
+
225
+ {/* Battery Status */}
226
+ <div className="p-4 bg-yellow-50 rounded-lg">
227
+ <h3 className="font-semibold text-yellow-900 mb-2">Battery Status</h3>
228
+ <div className="space-y-1 text-sm">
229
+ <p><span className="font-medium">Level:</span> {batteryConsciousLoading.getBatteryPercentage()}%</p>
230
+ <p><span className="font-medium">Status:</span> {batteryConsciousLoading.batteryState.status}</p>
231
+ <p><span className="font-medium">Mode:</span> {batteryConsciousLoading.performanceMode}</p>
232
+ <p><span className="font-medium">Savings:</span> {batteryConsciousLoading.batterySavings}%</p>
233
+ </div>
234
+ </div>
235
+
236
+ {/* Performance Metrics */}
237
+ <div className="p-4 bg-green-50 rounded-lg">
238
+ <h3 className="font-semibold text-green-900 mb-2">Performance</h3>
239
+ <div className="space-y-1 text-sm">
240
+ <p><span className="font-medium">FPS:</span> {loadingPerformance.performanceMetrics.frameRate}</p>
241
+ <p><span className="font-medium">Render:</span> {Math.round(loadingPerformance.performanceMetrics.renderTime)}ms</p>
242
+ <p><span className="font-medium">Memory:</span> {loadingPerformance.performanceMetrics.memoryUsage}MB</p>
243
+ <p><span className="font-medium">Health:</span> {loadingPerformance.performanceHealth}</p>
244
+ </div>
245
+ </div>
246
+
247
+ {/* Accessibility Score */}
248
+ <div className="p-4 bg-purple-50 rounded-lg">
249
+ <h3 className="font-semibold text-purple-900 mb-2">Accessibility</h3>
250
+ <div className="space-y-1 text-sm">
251
+ <p><span className="font-medium">Score:</span> {loadingAccessibility.accessibilityScore}%</p>
252
+ <p><span className="font-medium">Features:</span> {loadingAccessibility.accessibilityFeatures.length}</p>
253
+ <p><span className="font-medium">Active:</span> {loadingAccessibility.activeFeatures.length}</p>
254
+ <p><span className="font-medium">Enhancing:</span> {loadingAccessibility.isEnhancing ? 'Yes' : 'No'}</p>
255
+ </div>
256
+ </div>
257
+ </div>
258
+
259
+ {/* Controls */}
260
+ <div className="flex flex-wrap gap-4 justify-center">
261
+ <Button onClick={startLoading} disabled={isLoading}>
262
+ {isLoading ? 'Loading...' : 'Start Loading Simulation'}
263
+ </Button>
264
+ <Button onClick={toggleSkeletons} variant="outline">
265
+ {showSkeletons ? 'Hide' : 'Show'} Skeletons
266
+ </Button>
267
+ <Button onClick={loadingPerformance.autoOptimize} variant="outline">
268
+ Auto-Optimize Performance
269
+ </Button>
270
+ <Button onClick={batteryConsciousLoading.optimizeLoadingForBattery} variant="outline">
271
+ Optimize for Battery
272
+ </Button>
273
+ <Button onClick={loadingAccessibility.autoEnableAccessibility} variant="outline">
274
+ Enable All Accessibility
275
+ </Button>
276
+ </div>
277
+ </div>
278
+ )}
279
+
280
+ {/* Skeletons Section */}
281
+ {activeTab === 'skeletons' && (
282
+ <div className="space-y-6">
283
+ <div className="text-center mb-6">
284
+ <h3 className="text-xl font-semibold mb-2">Mobile-Optimized Skeleton Components</h3>
285
+ <p className="text-gray-600">
286
+ Device-specific skeleton variants with performance optimization and touch-friendly interactions
287
+ </p>
288
+ </div>
289
+
290
+ <div className={`${getLoadingStateClass()} ${getBatteryClass()} ${getPerformanceClass()} ${getAccessibilityClass()}`}>
291
+ {showSkeletons && (
292
+ <>
293
+ {/* Text Line Skeletons */}
294
+ <div className="loading-skeleton">
295
+ <div className="mobile-skeleton text-line animation-pulse touch-friendly"
296
+ aria-label="Loading text line 1"></div>
297
+ <div className="mobile-skeleton text-line animation-pulse touch-friendly"
298
+ aria-label="Loading text line 2"></div>
299
+ <div className="mobile-skeleton text-line animation-pulse touch-friendly"
300
+ aria-label="Loading text line 3"></div>
301
+ </div>
302
+
303
+ {/* Avatar and Button Skeletons */}
304
+ <div className="flex items-center gap-4">
305
+ <div className="mobile-skeleton avatar animation-shimmer touch-friendly"
306
+ aria-label="Loading avatar"></div>
307
+ <div className="mobile-skeleton button animation-pulse touch-friendly"
308
+ aria-label="Loading button"></div>
309
+ </div>
310
+
311
+ {/* Card Skeleton */}
312
+ <div className="mobile-skeleton card animation-wave touch-friendly"
313
+ aria-label="Loading card content"></div>
314
+ </>
315
+ )}
316
+ </div>
317
+
318
+ {/* Skeleton Variants */}
319
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
320
+ <div className="p-4 bg-gray-50 rounded-lg">
321
+ <h4 className="font-semibold mb-2">Available Skeleton Variants</h4>
322
+ <div className="space-y-2 text-sm">
323
+ {mobileSkeleton.skeletonVariants.map(variant => (
324
+ <div key={variant.id} className="flex justify-between items-center">
325
+ <span>{variant.name}</span>
326
+ <Badge variant={variant.mobileOptimized ? "default" : "secondary"}>
327
+ {variant.animation}
328
+ </Badge>
329
+ </div>
330
+ ))}
331
+ </div>
332
+ </div>
333
+
334
+ <div className="p-4 bg-gray-50 rounded-lg">
335
+ <h4 className="font-semibold mb-2">Device Optimizations</h4>
336
+ <div className="space-y-2 text-sm">
337
+ <p><span className="font-medium">Mobile Optimized:</span> {mobileSkeleton.isMobileOptimized() ? 'Yes' : 'No'}</p>
338
+ <p><span className="font-medium">Loading Strategy:</span> {mobileSkeleton.getLoadingStrategy()}</p>
339
+ <p><span className="font-medium">Animation Intensity:</span> {mobileSkeleton.getAnimationIntensity()}</p>
340
+ <p><span className="font-medium">Touch Friendly:</span> {mobileSkeleton.skeletonVariants.some(v => v.touchFriendly) ? 'Yes' : 'No'}</p>
341
+ </div>
342
+ </div>
343
+ </div>
344
+ </div>
345
+ )}
346
+
347
+ {/* Loading States Section */}
348
+ {activeTab === 'loading' && (
349
+ <div className="space-y-6">
350
+ <div className="text-center mb-6">
351
+ <h3 className="text-xl font-semibold mb-2">Device-Specific Loading States</h3>
352
+ <p className="text-gray-600">
353
+ Adaptive loading states that automatically adjust based on device capabilities and battery level
354
+ </p>
355
+ </div>
356
+
357
+ {/* Loading Progress */}
358
+ {isLoading && (
359
+ <div className="space-y-4">
360
+ <div className="loading-progress">
361
+ <div
362
+ className="loading-progress-bar"
363
+ style={{ width: `${loadingProgress}%` }}
364
+ aria-label={`Loading progress: ${loadingProgress}%`}
365
+ ></div>
366
+ </div>
367
+ <p className="text-center text-sm text-gray-600">
368
+ Loading... {loadingProgress}%
369
+ </p>
370
+ </div>
371
+ )}
372
+
373
+ {/* Device Loading States */}
374
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
375
+ <div className="space-y-4">
376
+ <h4 className="font-semibold">Current Device State</h4>
377
+ <div className="p-4 bg-blue-50 rounded-lg space-y-2">
378
+ <p><span className="font-medium">Device:</span> {deviceLoadingStates.deviceState.deviceType}</p>
379
+ <p><span className="font-medium">Orientation:</span> {deviceLoadingStates.deviceState.orientation}</p>
380
+ <p><span className="font-medium">Performance:</span> {deviceLoadingStates.deviceState.performanceLevel}</p>
381
+ <p><span className="font-medium">Battery:</span> {deviceLoadingStates.deviceState.batteryLevel}</p>
382
+ <p><span className="font-medium">Adaptive:</span> {deviceLoadingStates.deviceState.adaptiveBehavior ? 'Yes' : 'No'}</p>
383
+ </div>
384
+ </div>
385
+
386
+ <div className="space-y-4">
387
+ <h4 className="font-semibold">Available Loading States</h4>
388
+ <div className="space-y-2">
389
+ {deviceLoadingStates.getLoadingStatesForDevice().map(state => (
390
+ <div key={state.id} className="p-3 bg-gray-50 rounded-lg">
391
+ <div className="flex justify-between items-center mb-1">
392
+ <span className="font-medium">{state.name}</span>
393
+ <Badge variant="outline">{state.type}</Badge>
394
+ </div>
395
+ <div className="text-sm text-gray-600">
396
+ <p>Duration: {state.duration}ms</p>
397
+ <p>Complexity: {state.complexity}</p>
398
+ <p>Performance: {state.performance}</p>
399
+ </div>
400
+ </div>
401
+ ))}
402
+ </div>
403
+ </div>
404
+ </div>
405
+
406
+ {/* Loading State Controls */}
407
+ <div className="flex flex-wrap gap-4 justify-center">
408
+ <Button onClick={deviceLoadingStates.enableAdaptiveBehavior} variant="outline">
409
+ Enable Adaptive Behavior
410
+ </Button>
411
+ <Button onClick={deviceLoadingStates.adaptToPerformance} variant="outline">
412
+ Adapt to Performance
413
+ </Button>
414
+ <Button onClick={deviceLoadingStates.clearAdaptations} variant="outline">
415
+ Clear Adaptations
416
+ </Button>
417
+ </div>
418
+ </div>
419
+ )}
420
+
421
+ {/* Performance Section */}
422
+ {activeTab === 'performance' && (
423
+ <div className="space-y-6">
424
+ <div className="text-center mb-6">
425
+ <h3 className="text-xl font-semibold mb-2">Loading Performance Optimization</h3>
426
+ <p className="text-gray-600">
427
+ Real-time performance monitoring with automatic optimization and battery-conscious strategies
428
+ </p>
429
+ </div>
430
+
431
+ {/* Performance Metrics */}
432
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
433
+ <div className="metric-item">
434
+ <div className="metric-value">{loadingPerformance.performanceMetrics.frameRate}</div>
435
+ <div className="metric-label">FPS</div>
436
+ </div>
437
+ <div className="metric-item">
438
+ <div className="metric-value">{Math.round(loadingPerformance.performanceMetrics.renderTime)}ms</div>
439
+ <div className="metric-label">Render Time</div>
440
+ </div>
441
+ <div className="metric-item">
442
+ <div className="metric-value">{loadingPerformance.performanceMetrics.memoryUsage}MB</div>
443
+ <div className="metric-label">Memory</div>
444
+ </div>
445
+ <div className="metric-item">
446
+ <div className="metric-value">{loadingPerformance.getPerformanceScore()}</div>
447
+ <div className="metric-label">Score</div>
448
+ </div>
449
+ </div>
450
+
451
+ {/* Performance Health */}
452
+ <div className="p-4 bg-gray-50 rounded-lg">
453
+ <h4 className="font-semibold mb-3">Performance Health: {loadingPerformance.performanceHealth}</h4>
454
+ <div className="space-y-2">
455
+ {loadingPerformance.getOptimizationRecommendations().map((recommendation, index) => (
456
+ <p key={index} className="text-sm text-gray-600">• {recommendation}</p>
457
+ ))}
458
+ </div>
459
+ </div>
460
+
461
+ {/* Optimization Strategies */}
462
+ <div className="space-y-4">
463
+ <h4 className="font-semibold">Applied Optimizations</h4>
464
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
465
+ {loadingPerformance.optimizationStrategies.map(strategy => (
466
+ <div key={strategy.id} className="p-3 bg-green-50 rounded-lg">
467
+ <div className="flex justify-between items-center mb-1">
468
+ <span className="font-medium">{strategy.name}</span>
469
+ <Badge variant={strategy.impact === 'high' ? 'default' : 'secondary'}>
470
+ {strategy.impact}
471
+ </Badge>
472
+ </div>
473
+ <p className="text-sm text-gray-600">{strategy.description}</p>
474
+ </div>
475
+ ))}
476
+ </div>
477
+ </div>
478
+
479
+ {/* Performance Controls */}
480
+ <div className="flex flex-wrap gap-4 justify-center">
481
+ <Button onClick={loadingPerformance.optimizeAnimations} variant="outline">
482
+ Optimize Animations
483
+ </Button>
484
+ <Button onClick={loadingPerformance.optimizeMemory} variant="outline">
485
+ Optimize Memory
486
+ </Button>
487
+ <Button onClick={loadingPerformance.optimizeBattery} variant="outline">
488
+ Optimize Battery
489
+ </Button>
490
+ <Button onClick={loadingPerformance.optimizePerformance} variant="outline">
491
+ Optimize Overall
492
+ </Button>
493
+ </div>
494
+ </div>
495
+ )}
496
+
497
+ {/* Accessibility Section */}
498
+ {activeTab === 'accessibility' && (
499
+ <div className="space-y-6">
500
+ <div className="text-center mb-6">
501
+ <h3 className="text-xl font-semibold mb-2">Loading Accessibility Support</h3>
502
+ <p className="text-gray-600">
503
+ Comprehensive accessibility features including screen reader support, reduced motion, focus management, and ARIA
504
+ </p>
505
+ </div>
506
+
507
+ {/* Accessibility Score */}
508
+ <div className="text-center p-6 bg-purple-50 rounded-lg">
509
+ <div className="text-4xl font-bold text-purple-600 mb-2">
510
+ {loadingAccessibility.accessibilityScore}%
511
+ </div>
512
+ <p className="text-purple-700 font-medium">Accessibility Score</p>
513
+ </div>
514
+
515
+ {/* Accessibility State */}
516
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
517
+ <div className="metric-item">
518
+ <div className="metric-value">{loadingAccessibility.accessibilityState.screenReaderActive ? '✓' : '✗'}</div>
519
+ <div className="metric-label">Screen Reader</div>
520
+ </div>
521
+ <div className="metric-item">
522
+ <div className="metric-value">{loadingAccessibility.accessibilityState.reducedMotionEnabled ? '✓' : '✗'}</div>
523
+ <div className="metric-label">Reduced Motion</div>
524
+ </div>
525
+ <div className="metric-item">
526
+ <div className="metric-value">{loadingAccessibility.accessibilityState.ariaLabelsActive ? '✓' : '✗'}</div>
527
+ <div className="metric-label">ARIA Labels</div>
528
+ </div>
529
+ <div className="metric-item">
530
+ <div className="metric-value">{loadingAccessibility.accessibilityState.keyboardNavigationActive ? '✓' : '✗'}</div>
531
+ <div className="metric-label">Keyboard Nav</div>
532
+ </div>
533
+ </div>
534
+
535
+ {/* Accessibility Features */}
536
+ <div className="space-y-4">
537
+ <h4 className="font-semibold">Active Accessibility Features</h4>
538
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
539
+ {loadingAccessibility.accessibilityFeatures.map(feature => (
540
+ <div key={feature.id} className="p-3 bg-purple-50 rounded-lg">
541
+ <div className="flex justify-between items-center mb-1">
542
+ <span className="font-medium">{feature.name}</span>
543
+ <Badge variant={feature.impact === 'high' ? 'default' : 'secondary'}>
544
+ {feature.impact}
545
+ </Badge>
546
+ </div>
547
+ <p className="text-sm text-gray-600">{feature.description}</p>
548
+ </div>
549
+ ))}
550
+ </div>
551
+ </div>
552
+
553
+ {/* Accessibility Recommendations */}
554
+ <div className="p-4 bg-blue-50 rounded-lg">
555
+ <h4 className="font-semibold mb-3">Accessibility Recommendations</h4>
556
+ <div className="space-y-2">
557
+ {loadingAccessibility.getAccessibilityRecommendations().map((recommendation, index) => (
558
+ <p key={index} className="text-sm text-gray-600">• {recommendation}</p>
559
+ ))}
560
+ </div>
561
+ </div>
562
+
563
+ {/* Accessibility Controls */}
564
+ <div className="flex flex-wrap gap-4 justify-center">
565
+ <Button onClick={loadingAccessibility.enableScreenReaderSupport} variant="outline">
566
+ Enable Screen Reader
567
+ </Button>
568
+ <Button onClick={loadingAccessibility.enableReducedMotionSupport} variant="outline">
569
+ Enable Reduced Motion
570
+ </Button>
571
+ <Button onClick={loadingAccessibility.enableAriaSupport} variant="outline">
572
+ Enable ARIA Support
573
+ </Button>
574
+ <Button onClick={loadingAccessibility.enableKeyboardNavigation} variant="outline">
575
+ Enable Keyboard Nav
576
+ </Button>
577
+ </div>
578
+ </div>
579
+ )}
580
+ </Card>
581
+
582
+ {/* Status Indicators */}
583
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
584
+ <div className={`loading-status ${getBatteryClass()}`}>
585
+ <div className="w-3 h-3 bg-current rounded-full"></div>
586
+ <span className="text-sm font-medium">
587
+ Battery: {batteryConsciousLoading.getBatteryStatus()}
588
+ </span>
589
+ </div>
590
+
591
+ <div className={`loading-status ${getPerformanceClass()}`}>
592
+ <div className="w-3 h-3 bg-current rounded-full"></div>
593
+ <span className="text-sm font-medium">
594
+ Performance: {loadingPerformance.performanceHealth}
595
+ </span>
596
+ </div>
597
+
598
+ <div className={`loading-status ${getAccessibilityClass()}`}>
599
+ <div className="w-3 h-3 bg-current rounded-full"></div>
600
+ <span className="text-sm font-medium">
601
+ Accessibility: {loadingAccessibility.accessibilityScore}%
602
+ </span>
603
+ </div>
604
+
605
+ <div className="loading-status">
606
+ <div className="w-3 h-3 bg-current rounded-full"></div>
607
+ <span className="text-sm font-medium">
608
+ Device: {deviceLoadingStates.deviceState.deviceType}
609
+ </span>
610
+ </div>
611
+ </div>
612
+
613
+ {/* Notifications */}
614
+ {batteryConsciousLoading.notifications.length > 0 && (
615
+ <div className="space-y-2">
616
+ <h4 className="font-semibold">Recent Notifications</h4>
617
+ {batteryConsciousLoading.notifications.slice(-3).map((notification, index) => (
618
+ <div key={index} className="p-3 bg-blue-50 border border-blue-200 rounded-lg">
619
+ <p className="text-sm text-blue-800">{notification}</p>
620
+ </div>
621
+ ))}
622
+ </div>
623
+ )}
624
+ </div>
625
+ )
626
+ }
627
+
628
+ export default MobileSkeletonLoadingDemo