@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.7 → 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 (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,544 @@
1
+ export const FormDemo: React.FC = () => {
2
+ const [activeTab, setActiveTab] = useState<'basic' | 'advanced' | 'performance' | 'semantic'>('basic')
3
+ const [formResults, setFormResults] = useState<Array<{ type: string; data: any; timestamp: Date }>>([])
4
+ const [enableEnhancedFeatures, setEnableEnhancedFeatures] = useState(true)
5
+
6
+ const basicFormRef = useRef<MobileFormValidationRef>(null)
7
+ const advancedFormRef = useRef<MobileFormValidationRef>(null)
8
+
9
+ // Basic form fields
10
+ const basicFields = [
11
+ {
12
+ name: 'name',
13
+ label: 'Full Name',
14
+ type: { type: 'text' } as InputType,
15
+ placeholder: 'Enter your full name',
16
+ rules: [
17
+ { type: 'required' as const, message: 'Name is required' },
18
+ { type: 'minLength' as const, value: 2, message: 'Name must be at least 2 characters' }
19
+ ]
20
+ },
21
+ {
22
+ name: 'email',
23
+ label: 'Email Address',
24
+ type: { type: 'email' } as InputType,
25
+ placeholder: 'Enter your email',
26
+ rules: [
27
+ { type: 'required' as const, message: 'Email is required' },
28
+ { type: 'email' as const, message: 'Please enter a valid email address' }
29
+ ]
30
+ }
31
+ ]
32
+
33
+ // Advanced form fields
34
+ const advancedFields = [
35
+ {
36
+ name: 'fullName',
37
+ label: 'Full Name',
38
+ type: { type: 'text' } as InputType,
39
+ placeholder: 'Enter your full name',
40
+ rules: [
41
+ { type: 'required' as const, message: 'Full name is required' },
42
+ { type: 'minLength' as const, value: 3, message: 'Name must be at least 3 characters' },
43
+ { type: 'maxLength' as const, value: 50, message: 'Name must be less than 50 characters' }
44
+ ]
45
+ },
46
+ {
47
+ name: 'emailAddress',
48
+ label: 'Email Address',
49
+ type: { type: 'email' } as InputType,
50
+ placeholder: 'Enter your email address',
51
+ rules: [
52
+ { type: 'required' as const, message: 'Email is required' },
53
+ { type: 'email' as const, message: 'Please enter a valid email address' }
54
+ ]
55
+ },
56
+ {
57
+ name: 'phoneNumber',
58
+ label: 'Phone Number',
59
+ type: { type: 'tel' } as InputType,
60
+ placeholder: 'Enter your phone number',
61
+ rules: [
62
+ { type: 'required' as const, message: 'Phone number is required' },
63
+ { type: 'pattern' as const, value: /^[\+]?[0-9\s\-\(\)]{7,}$/, message: 'Please enter a valid phone number' }
64
+ ]
65
+ },
66
+ {
67
+ name: 'website',
68
+ label: 'Website',
69
+ type: { type: 'url' } as InputType,
70
+ placeholder: 'Enter your website URL',
71
+ rules: [
72
+ { type: 'pattern' as const, value: /^https?:\/\/.+/, message: 'Please enter a valid URL starting with http:// or https://' }
73
+ ]
74
+ },
75
+ {
76
+ name: 'age',
77
+ label: 'Age',
78
+ type: { type: 'number' } as InputType,
79
+ placeholder: 'Enter your age',
80
+ rules: [
81
+ { type: 'required' as const, message: 'Age is required' },
82
+ { type: 'minLength' as const, value: 1, message: 'Age must be at least 1' },
83
+ { type: 'maxLength' as const, value: 3, message: 'Age must be less than 1000' }
84
+ ]
85
+ },
86
+ {
87
+ name: 'password',
88
+ label: 'Password',
89
+ type: { type: 'password' } as InputType,
90
+ placeholder: 'Enter your password',
91
+ rules: [
92
+ { type: 'required' as const, message: 'Password is required' },
93
+ { type: 'minLength' as const, value: 8, message: 'Password must be at least 8 characters' },
94
+ { type: 'pattern' as const, value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/, message: 'Password must contain lowercase, uppercase, and number' }
95
+ ]
96
+ },
97
+ {
98
+ name: 'confirmPassword',
99
+ label: 'Confirm Password',
100
+ type: { type: 'password' } as InputType,
101
+ placeholder: 'Confirm your password',
102
+ rules: [
103
+ { type: 'required' as const, message: 'Please confirm your password' },
104
+ { type: 'custom' as const, message: 'Passwords do not match', validator: (value: any): boolean => {
105
+ const passwordField = advancedFields.find(f => f.name === 'password')
106
+ const passwordValue = passwordField ? (document.getElementById('password') as HTMLInputElement)?.value : ''
107
+ return value === passwordValue
108
+ }}
109
+ ]
110
+ }
111
+ ]
112
+
113
+ // Handle form submission
114
+ const handleFormSubmit = (formData: Record<string, any>, formType: string) => {
115
+ const result = {
116
+ type: formType,
117
+ data: formData,
118
+ timestamp: new Date()
119
+ }
120
+
121
+ setFormResults(prev => [result, ...prev.slice(0, 9)]) // Keep last 10 results
122
+
123
+ console.log(`${formType} form submitted:`, formData)
124
+ }
125
+
126
+ // Handle form validation change
127
+ const handleValidationChange = (isValid: boolean, formType: string) => {
128
+ console.log(`${formType} form validation:`, isValid ? 'Valid' : 'Invalid')
129
+ }
130
+
131
+ // Clear form results
132
+ const clearResults = () => {
133
+ setFormResults([])
134
+ }
135
+
136
+ // Test form submission programmatically
137
+ const testFormSubmission = async (formType: 'basic' | 'advanced') => {
138
+ const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
139
+
140
+ if (formRef.current) {
141
+ try {
142
+ const result = await formRef.current.submit()
143
+ console.log(`${formType} form test submission:`, result)
144
+ } catch (error) {
145
+ console.error(`${formType} form test submission error:`, error)
146
+ }
147
+ }
148
+ }
149
+
150
+ // Test form validation programmatically
151
+ const testFormValidation = async (formType: 'basic' | 'advanced') => {
152
+ const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
153
+
154
+ if (formRef.current) {
155
+ try {
156
+ const isValid = await formRef.current.validate()
157
+ console.log(`${formType} form validation test:`, isValid ? 'Valid' : 'Invalid')
158
+ } catch (error) {
159
+ console.error(`${formType} form validation test error:`, error)
160
+ }
161
+ }
162
+ }
163
+
164
+ // Test form reset programmatically
165
+ const testFormReset = (formType: 'basic' | 'advanced') => {
166
+ const formRef = formType === 'basic' ? basicFormRef : advancedFormRef
167
+
168
+ if (formRef.current) {
169
+ formRef.current.reset()
170
+ console.log(`${formType} form reset`)
171
+ }
172
+ }
173
+
174
+ return (
175
+ <div className="space-y-6">
176
+ {/* Header */}
177
+ <div className="text-center space-y-2">
178
+ <h1 className="text-3xl font-bold">📱 Mobile Form Validation Demo</h1>
179
+ <p className="text-gray-600">
180
+ Advanced form system with mobile validation, animated feedback, and performance optimization
181
+ </p>
182
+ <Badge variant="outline" className="text-sm">
183
+ Story 6: Advanced Form System with Mobile Validation
184
+ </Badge>
185
+ </div>
186
+
187
+ {/* Enhanced Features Toggle */}
188
+ <div className="flex justify-center">
189
+ <div className="flex items-center gap-2 p-3 bg-gray-50 rounded-lg">
190
+ <span className="text-sm font-medium">Enhanced Features:</span>
191
+ <Button
192
+ variant={enableEnhancedFeatures ? 'default' : 'outline'}
193
+ size="sm"
194
+ onClick={() => setEnableEnhancedFeatures(!enableEnhancedFeatures)}
195
+ >
196
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
197
+ </Button>
198
+ </div>
199
+ </div>
200
+
201
+ {/* Tab Navigation */}
202
+ <Tabs
203
+ tabs={[
204
+ {
205
+ id: 'basic',
206
+ label: 'Basic Form',
207
+ content: (
208
+ <div className="space-y-4">
209
+ <Card>
210
+ <CardHeader>
211
+ <CardTitle className="flex items-center gap-2">
212
+ 🚀 Basic Form Validation
213
+ <Badge variant="secondary">Simple Example</Badge>
214
+ </CardTitle>
215
+ <CardDescription>
216
+ Basic form with name and email validation. Demonstrates core validation features.
217
+ </CardDescription>
218
+ </CardHeader>
219
+ <CardContent className="space-y-4">
220
+ <MobileFormValidation
221
+ ref={basicFormRef}
222
+ title="Basic Contact Form"
223
+ description="Simple form with essential validation"
224
+ fields={basicFields}
225
+ onSubmit={(data) => handleFormSubmit(data, 'Basic')}
226
+ onValidationChange={(isValid) => handleValidationChange(isValid, 'Basic')}
227
+ enableEnhancedFeatures={enableEnhancedFeatures}
228
+ />
229
+
230
+ {/* Test Controls */}
231
+ <div className="flex gap-2 pt-4 border-t">
232
+ <Button
233
+ variant="outline"
234
+ size="sm"
235
+ onClick={() => testFormSubmission('basic')}
236
+ >
237
+ Test Submit
238
+ </Button>
239
+ <Button
240
+ variant="outline"
241
+ size="sm"
242
+ onClick={() => testFormValidation('basic')}
243
+ >
244
+ Test Validation
245
+ </Button>
246
+ <Button
247
+ variant="outline"
248
+ size="sm"
249
+ onClick={() => testFormReset('basic')}
250
+ >
251
+ Test Reset
252
+ </Button>
253
+ </div>
254
+ </CardContent>
255
+ </Card>
256
+ </div>
257
+ )
258
+ },
259
+ {
260
+ id: 'advanced',
261
+ label: 'Advanced Form',
262
+ content: (
263
+ <div className="space-y-4">
264
+ <Card>
265
+ <CardHeader>
266
+ <CardTitle className="flex items-center gap-2">
267
+ 🎯 Advanced Form Validation
268
+ <Badge variant="default">Full Featured</Badge>
269
+ </CardTitle>
270
+ <CardDescription>
271
+ Comprehensive form with multiple field types, complex validation rules, and all features enabled.
272
+ </CardDescription>
273
+ </CardHeader>
274
+ <CardContent className="space-y-4">
275
+ <MobileFormValidation
276
+ ref={advancedFormRef}
277
+ title="Advanced Registration Form"
278
+ description="Complete form with all validation types and optimizations"
279
+ fields={advancedFields}
280
+ onSubmit={(data) => handleFormSubmit(data, 'Advanced')}
281
+ onValidationChange={(isValid) => handleValidationChange(isValid, 'Advanced')}
282
+ enableEnhancedFeatures={enableEnhancedFeatures}
283
+ />
284
+
285
+ {/* Test Controls */}
286
+ <div className="flex gap-2 pt-4 border-t">
287
+ <Button
288
+ variant="outline"
289
+ size="sm"
290
+ onClick={() => testFormSubmission('advanced')}
291
+ >
292
+ Test Submit
293
+ </Button>
294
+ <Button
295
+ variant="outline"
296
+ size="sm"
297
+ onClick={() => testFormValidation('advanced')}
298
+ >
299
+ Test Validation
300
+ </Button>
301
+ <Button
302
+ variant="outline"
303
+ size="sm"
304
+ onClick={() => testFormReset('advanced')}
305
+ >
306
+ Test Reset
307
+ </Button>
308
+ </div>
309
+ </CardContent>
310
+ </Card>
311
+ </div>
312
+ )
313
+ },
314
+ {
315
+ id: 'performance',
316
+ label: 'Performance',
317
+ content: (
318
+ <div className="space-y-4">
319
+ <Card>
320
+ <CardHeader>
321
+ <CardTitle className="flex items-center gap-2">
322
+ ⚡ Performance Monitoring
323
+ <Badge variant="outline">Real-time Metrics</Badge>
324
+ </CardTitle>
325
+ <CardDescription>
326
+ Monitor form performance, memory usage, battery status, and optimization scores.
327
+ </CardDescription>
328
+ </CardHeader>
329
+ <CardContent className="space-y-4">
330
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
331
+ <div className="space-y-3">
332
+ <h4 className="font-semibold">Performance Features</h4>
333
+ <div className="space-y-2 text-sm">
334
+ <div className="flex justify-between">
335
+ <span>Validation Throttling:</span>
336
+ <Badge variant="default">Enabled</Badge>
337
+ </div>
338
+ <div className="flex justify-between">
339
+ <span>Touch Event Optimization:</span>
340
+ <Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
341
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
342
+ </Badge>
343
+ </div>
344
+ <div className="flex justify-between">
345
+ <span>Memory Management:</span>
346
+ <Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
347
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
348
+ </Badge>
349
+ </div>
350
+ <div className="flex justify-between">
351
+ <span>Battery Optimization:</span>
352
+ <Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
353
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
354
+ </Badge>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ <div className="space-y-3">
360
+ <h4 className="font-semibold">Optimization Benefits</h4>
361
+ <div className="space-y-2 text-sm text-gray-600">
362
+ <p>• Reduced validation frequency for better performance</p>
363
+ <p>• Touch event throttling for smooth mobile experience</p>
364
+ <p>• Automatic memory cleanup to prevent leaks</p>
365
+ <p>• Battery-aware optimizations for mobile devices</p>
366
+ <p>• Real-time performance scoring and recommendations</p>
367
+ </div>
368
+ </div>
369
+ </div>
370
+
371
+ <div className="p-4 bg-blue-50 border border-blue-200 rounded-lg">
372
+ <h4 className="font-semibold text-blue-800 mb-2">Performance Tips</h4>
373
+ <ul className="text-sm text-blue-700 space-y-1">
374
+ <li>• Use validation throttling to reduce unnecessary validations</li>
375
+ <li>• Enable touch event optimization for better mobile performance</li>
376
+ <li>• Monitor memory usage and enable cleanup when needed</li>
377
+ <li>• Enable battery optimization for mobile devices</li>
378
+ <li>• Check performance scores and apply recommendations</li>
379
+ </ul>
380
+ </div>
381
+ </CardContent>
382
+ </Card>
383
+ </div>
384
+ )
385
+ },
386
+ {
387
+ id: 'semantic',
388
+ label: 'Semantic Input',
389
+ content: (
390
+ <div className="space-y-4">
391
+ <Card>
392
+ <CardHeader>
393
+ <CardTitle className="flex items-center gap-2">
394
+ 🧠 Semantic Input Optimization
395
+ <Badge variant="outline">Smart Detection</Badge>
396
+ </CardTitle>
397
+ <CardDescription>
398
+ Automatic input type detection, mobile keyboard optimization, and enhanced autocomplete.
399
+ </CardDescription>
400
+ </CardHeader>
401
+ <CardContent className="space-y-4">
402
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
403
+ <div className="space-y-3">
404
+ <h4 className="font-semibold">Semantic Features</h4>
405
+ <div className="space-y-2 text-sm">
406
+ <div className="flex justify-between">
407
+ <span>Auto Type Detection:</span>
408
+ <Badge variant="default">Enabled</Badge>
409
+ </div>
410
+ <div className="flex justify-between">
411
+ <span>Keyboard Optimization:</span>
412
+ <Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
413
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
414
+ </Badge>
415
+ </div>
416
+ <div className="flex justify-between">
417
+ <span>Autocomplete Enhancement:</span>
418
+ <Badge variant={enableEnhancedFeatures ? 'default' : 'secondary'}>
419
+ {enableEnhancedFeatures ? 'Enabled' : 'Disabled'}
420
+ </Badge>
421
+ </div>
422
+ <div className="flex justify-between">
423
+ <span>Touch Optimization:</span>
424
+ <Badge variant="default">Enabled</Badge>
425
+ </div>
426
+ </div>
427
+ </div>
428
+
429
+ <div className="space-y-3">
430
+ <h4 className="font-semibold">Detection Examples</h4>
431
+ <div className="space-y-2 text-sm text-gray-600">
432
+ <p>• <strong>Email:</strong> Detects @ symbol, sets email keyboard</p>
433
+ <p>• <strong>Phone:</strong> Detects numeric patterns, sets phone keyboard</p>
434
+ <p>• <strong>URL:</strong> Detects http/https, sets URL keyboard</p>
435
+ <p>• <strong>Search:</strong> Detects search context, optimizes input</p>
436
+ <p>• <strong>Number:</strong> Detects numeric patterns, sets numeric keyboard</p>
437
+ </div>
438
+ </div>
439
+ </div>
440
+
441
+ <div className="p-4 bg-green-50 border border-green-200 rounded-lg">
442
+ <h4 className="font-semibold text-green-800 mb-2">Semantic Benefits</h4>
443
+ <ul className="text-sm text-green-700 space-y-1">
444
+ <li>• Automatic input type detection based on field name and content</li>
445
+ <li>• Mobile keyboard optimization for better user experience</li>
446
+ <li>• Enhanced autocomplete with appropriate suggestions</li>
447
+ <li>• Touch-friendly input optimization</li>
448
+ <li>• Accessibility improvements with proper input modes</li>
449
+ </ul>
450
+ </div>
451
+ </CardContent>
452
+ </Card>
453
+ </div>
454
+ )
455
+ }
456
+ ]}
457
+ activeTab={activeTab}
458
+ onTabChange={(tabId: string) => setActiveTab(tabId as 'basic' | 'advanced' | 'performance' | 'semantic')}
459
+ className="w-full"
460
+ />
461
+
462
+ {/* Form Results */}
463
+ {formResults.length > 0 && (
464
+ <Card>
465
+ <CardHeader>
466
+ <CardTitle className="flex items-center gap-2">
467
+ 📊 Form Submission Results
468
+ <Button
469
+ variant="outline"
470
+ size="sm"
471
+ onClick={clearResults}
472
+ >
473
+ Clear Results
474
+ </Button>
475
+ </CardTitle>
476
+ <CardDescription>
477
+ Recent form submissions and their data
478
+ </CardDescription>
479
+ </CardHeader>
480
+ <CardContent>
481
+ <div className="space-y-3 max-h-64 overflow-y-auto">
482
+ {formResults.map((result, index) => (
483
+ <div key={index} className="p-3 bg-gray-50 rounded-lg">
484
+ <div className="flex justify-between items-start mb-2">
485
+ <Badge variant="outline">{result.type}</Badge>
486
+ <span className="text-xs text-gray-500">
487
+ {result.timestamp.toLocaleTimeString()}
488
+ </span>
489
+ </div>
490
+ <pre className="text-xs bg-white p-2 rounded border overflow-x-auto">
491
+ {JSON.stringify(result.data, null, 2)}
492
+ </pre>
493
+ </div>
494
+ ))}
495
+ </div>
496
+ </CardContent>
497
+ </Card>
498
+ )}
499
+
500
+ {/* Feature Summary */}
501
+ <Card>
502
+ <CardHeader>
503
+ <CardTitle>🎯 Story 6 Implementation Summary</CardTitle>
504
+ <CardDescription>
505
+ Complete mobile form validation system with all requested features
506
+ </CardDescription>
507
+ </CardHeader>
508
+ <CardContent>
509
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
510
+ <div className="space-y-3">
511
+ <h4 className="font-semibold">✅ Completed Features</h4>
512
+ <ul className="text-sm space-y-1 text-gray-600">
513
+ <li>• Mobile form validation system</li>
514
+ <li>• Animated success/error states</li>
515
+ <li>• Touch-friendly form layouts</li>
516
+ <li>• Semantic input optimization</li>
517
+ <li>• Performance-optimized validation</li>
518
+ <li>• Haptic feedback and touch sounds</li>
519
+ <li>• Battery-aware optimizations</li>
520
+ <li>• Memory management and cleanup</li>
521
+ </ul>
522
+ </div>
523
+
524
+ <div className="space-y-3">
525
+ <h4 className="font-semibold">🚀 Advanced Capabilities</h4>
526
+ <ul className="text-sm space-y-1 text-gray-600">
527
+ <li>• Real-time performance monitoring</li>
528
+ <li>• Automatic input type detection</li>
529
+ <li>• Mobile keyboard optimization</li>
530
+ <li>• Touch event throttling</li>
531
+ <li>• Responsive layout adaptation</li>
532
+ <li>• Accessibility enhancements</li>
533
+ <li>• Performance scoring system</li>
534
+ <li>• Optimization recommendations</li>
535
+ </ul>
536
+ </div>
537
+ </div>
538
+ </CardContent>
539
+ </Card>
540
+ </div>
541
+ )
542
+ }
543
+
544
+ export default FormDemo